示例#1
0
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)
示例#2
0
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
示例#3
0
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)
示例#4
0
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)
示例#5
0
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)
示例#6
0
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)