def linha_retorno_400(self, retorno): beneficiario = retorno.beneficiario linha = retorno.linhas[1] # # Beneficiario # beneficiario.cnpj_cpf = linha[3:17] beneficiario.agencia.numero = linha[17:21] beneficiario.codigo.numero = linha[23:28] beneficiario.codigo.digito = linha[28] beneficiario.conta.numero = linha[23:28] beneficiario.conta.digito = linha[28] for i in range(1, len(retorno.linhas) - 1): linha = retorno.linhas[i] boleto = Boleto() boleto.beneficiario = retorno.beneficiario boleto.banco = self boleto.identificacao = linha[37:62] boleto.nosso_numero = str(D(linha[62:70])) boleto.comando = linha[108:110] boleto.data_ocorrencia = parse_datetime(linha[110:116]) boleto.documento.numero = linha[116:126] if linha[146:152].strip() != '000000': boleto.data_vencimento = parse_datetime(linha[146:152]).date() boleto.documento.valor = D(linha[152:165]) / D('100') boleto.valor_despesa_cobranca = D(linha[175:188]) / D('100') #boleto.valor_outras_despesas = D(linha[188:201]) / D('100') #boleto.valor_multa = D(linha[188:201]) / D('100') boleto.valor_iof = D(linha[214:227]) / D('100') boleto.valor_abatimento = D(linha[227:240]) / D('100') boleto.valor_desconto = D(linha[240:253]) / D('100') boleto.valor_recebido = D(linha[253:266]) / D('100') boleto.valor_juros = D(linha[266:279]) / D('100') boleto.valor_outros_creditos = D(linha[279:292]) / D('100') if len(linha[295:301].strip()) > 0 and linha[295:301] != '000000': boleto.data_credito = parse_datetime(linha[295:301]).date() retorno.boletos.append(boleto)
def linha_retorno_240(self, retorno): beneficiario = retorno.beneficiario linha = retorno.linhas[1] # # Beneficiario # beneficiario.cnpj_cpf = linha[19:33] beneficiario.conta.numero = linha[64:71] beneficiario.conta.digito = linha[72] beneficiario.codigo.numero = linha[64:71] for i in range(1, len(retorno.linhas) - 1): linha = retorno.linhas[i] if linha[13] == 'T': boleto = Boleto() boleto.beneficiario = retorno.beneficiario boleto.banco = self boleto.nosso_numero = str(D(linha[37:57])) #boleto.nosso_numero_digito = linha[73] #boleto.parcela = int(linha[74:76]) #boleto.documento.especie = linha[83:85] #boleto.banco.modalidade = linha[106:108] boleto.comando = linha[15:17] #print(boleto.comando) boleto.identificacao = linha[105:130].replace('id ', 'ID_') boleto.data_vencimento = parse_datetime(linha[73:81]).date() boleto.documento.valor = D(linha[81:96]) / D('100') boleto.pagador.cnpj_cpf = linha[133:148] elif linha[13] == 'U': #boleto.valor_despesa_cobranca = D(linha[181:188]) / D('100') boleto.valor_desconto = D(linha[32:47]) / D('100') boleto.valor_juros = D(linha[18:32]) / D('100') boleto.valor_recebido = D(linha[92:107]) / D('100') boleto.valor_outros_creditos = D(linha[122:137]) / D('100') boleto.data_ocorrencia = parse_datetime(linha[137:145]) boleto.data_credito = parse_datetime(linha[145:153]) retorno.boletos.append(boleto) else: continue
def linha_retorno_400(self, retorno): beneficiario = retorno.beneficiario linha = retorno.linhas[1] # # Beneficiario # beneficiario.cnpj_cpf = linha[3:17] self.carteira = linha[23] beneficiario.agencia.numero = linha[25:29] beneficiario.conta.numero = linha[29:36] beneficiario.conta.digito = linha[36] for i in range(1, len(retorno.linhas) - 1): linha = retorno.linhas[i] boleto = Boleto() boleto.beneficiario = retorno.beneficiario boleto.banco = self # No processamento do CNAB (retorno de boletos), # na validacao de beneficiario, essa atribuição faz com que seja # esperado: # beneficiario da carteira == beneficiario unicred do retorno # Mas o beneficiario_unicred nao veio setado no retorno do banco # boleto.numero_beneficiario_unicred = linha[29:36] boleto.identificacao = linha[37:62] boleto.nosso_numero = unicode(D(linha[70:81])) #boleto.nosso_numero_digito = linha[82] boleto.banco.carteira = linha[107] boleto.comando = linha[108:110] boleto.data_ocorrencia = parse_datetime(linha[110:116]).date() boleto.documento.numero = linha[116:126] if linha[146:152].strip() != '000000': boleto.data_vencimento = parse_datetime(linha[146:152]).date() boleto.documento.valor = D(linha[152:165]) / D('100') boleto.valor_despesa_cobranca = D(linha[175:188]) / D('100') #boleto.valor_outras_despesas = D(linha[188:201]) / D('100') boleto.valor_multa = D(linha[188:201]) / D('100') boleto.valor_iof = D(linha[214:227]) / D('100') boleto.valor_abatimento = D(linha[227:240]) / D('100') boleto.valor_desconto = D(linha[240:253]) / D('100') boleto.valor_recebido = D(linha[253:266]) / D('100') boleto.valor_juros = D(linha[266:279]) / D('100') boleto.valor_outros_creditos = D(linha[279:292]) / D('100') if len(linha[295:301].strip()) > 0 and linha[295:301] != '000000': boleto.data_credito = parse_datetime(linha[295:301]).date() boleto.pagador.cnpj_cpf = linha[342:357] retorno.boletos.append(boleto)
def linha_retorno_400(self, retorno): beneficiario = retorno.beneficiario linha = retorno.linhas[1] # # Beneficiario # #beneficiario.cnpj_cpf = linha[3:17] #beneficiario.conta.numero = str(D(linha[22:30])) #beneficiario.conta.digito = linha[30] for i in range(1, len(retorno.linhas) - 1): linha = retorno.linhas[i] boleto = Boleto() boleto.beneficiario = retorno.beneficiario boleto.banco = self #boleto.nosso_numero = str(D(linha[47:56])) boleto.nosso_numero = str(D(linha[49:55])) #boleto.nosso_numero_digito = linha[73] #boleto.parcela = int(linha[74:76]) #boleto.documento.especie = linha[83:85] #boleto.banco.modalidade = linha[106:108] boleto.comando = linha[108:110] boleto.data_ocorrencia = parse_datetime(linha[110:116]) boleto.data_credito = parse_datetime(linha[328:336], ano_primeiro=True) boleto.valor_despesa_cobranca = D(linha[181:188]) / D('100') boleto.valor_multa = D(linha[188:201]) / D('100') boleto.valor_desconto = D(linha[240:253]) / D('100') boleto.valor_recebido = D(linha[253:266]) / D('100') boleto.valor_juros = D(linha[266:279]) / D('100') boleto.valor_outros_creditos = D(linha[279:292]) / D('100') boleto.documento.valor = boleto.valor_recebido boleto.documento.valor -= boleto.valor_juros boleto.documento.valor -= boleto.valor_multa boleto.documento.valor -= boleto.valor_outros_creditos boleto.documento.valor += boleto.valor_desconto #boleto.documento.valor += boleto.valor_despesa_cobranca #boleto.pagador.cnpj_cpf = linha[342:357] retorno.boletos.append(boleto)
def linha_retorno_400(self, retorno): beneficiario = retorno.beneficiario linha = retorno.linhas[1] # # Beneficiario # beneficiario.cnpj_cpf = linha[3:17] if linha[107] == '5': self.carteira = '101' else: self.carteira = '102' beneficiario.agencia.numero = linha[17:21] beneficiario.conta.numero = linha[21:29] #beneficiario.conta.digito = linha[36] for i in range(1, len(retorno.linhas) - 1): linha = retorno.linhas[i] boleto = Boleto() boleto.beneficiario = retorno.beneficiario boleto.banco = self boleto.identificacao = linha[37:62] # # Para pegar o último dígito (que não era o DV antes) - 01/06/2016 10:15 # boleto.nosso_numero = str(D(linha[62:70])) # # Para ignorar o último dígito (que passou a ser o DV) - 01/06/2016 10:15 # boleto.nosso_numero = str(D(linha[62:69])) # boleto.nosso_numero = str(D(linha[62:69])) #boleto.nosso_numero_digito = linha[82] if linha[107] == '5': boleto.banco.carteira = '101' else: boleto.banco.carteira = '102' boleto.comando = linha[108:110] boleto.data_ocorrencia = parse_datetime(linha[110:116]).date() boleto.documento.numero = linha[116:126] if linha[146:152].strip() != '000000': boleto.data_vencimento = parse_datetime(linha[146:152]).date() boleto.documento.valor = D(linha[152:165]) / D('100') boleto.valor_despesa_cobranca = D(linha[175:188]) / D('100') #boleto.valor_outras_despesas = D(linha[188:201]) / D('100') boleto.valor_multa = D(linha[188:201]) / D('100') boleto.valor_iof = D(linha[214:227]) / D('100') boleto.valor_abatimento = D(linha[227:240]) / D('100') boleto.valor_desconto = D(linha[240:253]) / D('100') boleto.valor_recebido = D(linha[253:266]) / D('100') boleto.valor_juros = D(linha[266:279]) / D('100') boleto.valor_outros_creditos = D(linha[279:292]) / D('100') if len(linha[295:301].strip()) > 0 and linha[295:301] != '000000': boleto.data_credito = parse_datetime(linha[295:301]).date() #boleto.pagador.cnpj_cpf = linha[342:357] retorno.boletos.append(boleto)
def linha_retorno_400(self, retorno): beneficiario = retorno.beneficiario linha = retorno.linhas[1] # # Beneficiario # beneficiario.cnpj_cpf = linha[3:17] beneficiario.conta.numero = str(D(linha[22:30])) beneficiario.conta.digito = linha[30] for i in range(1, len(retorno.linhas) - 1): linha = retorno.linhas[i] boleto = Boleto() boleto.beneficiario = retorno.beneficiario boleto.banco = self boleto.identificacao = linha[31:56] boleto.banco.modalidade = linha[56:58] boleto.nosso_numero = str(D(linha[58:73])) #boleto.nosso_numero_digito = linha[73] #boleto.parcela = int(linha[74:76]) #boleto.documento.especie = linha[83:85] boleto.comando = linha[108:110] boleto.data_ocorrencia = parse_datetime(linha[110:116]) boleto.data_credito = parse_datetime(linha[293:299]) boleto.valor_despesa_cobranca = D(linha[175:188]) / D('100') boleto.valor_desconto = D(linha[240:253]) / D('100') boleto.documento.valor = D(linha[253:266]) / D('100') boleto.valor_juros = D(linha[266:279]) / D('100') boleto.valor_multa = D(linha[279:292]) / D('100') boleto.valor_recebido = boleto.documento.valor - boleto.valor_desconto + boleto.valor_juros + boleto.valor_multa retorno.boletos.append(boleto)