コード例 #1
0
 def calc_nc_g(posicoes):
     digito_1 = gerador.modulo10(posicoes)
     digito_2 = gerador.modulo11(str(posicoes) + str(digito_1), 7, 1)
     if digito_2 == 1:
         digito_1 += 1
         digito_2 = gerador.modulo11(str(posicoes) + str(digito_1), 7, 1)
         digito_2 = 11 - digito_2
     elif digito_2 == 0:
         digito_2 = digito_2
     else:
         digito_2 = 11 - digito_2
     return [digito_1, digito_2]
コード例 #2
0
 def calc_nc(num):
     digito_1 = gerador.modulo10(num)
     digito_2 = gerador.modulo11(str(num) + str(digito_1), 7, 1)
     if digito_2 == 1:
         digito_1 += 1
         digito_2 = gerador.modulo11(str(num) + str(digito_1), 7, 1)
         digito_2 = 11 - digito_2
     elif digito_2 == 0:
         digito_2 = digito_2
     else:
         digito_2 = 11 - digito_2
     return [digito_1, digito_2]
コード例 #3
0
ファイル: banrisul.py プロジェクト: relsi/boleto2py
 def calc_nc_g(posicoes):
     digito_1 = gerador.modulo10(posicoes)
     digito_2 = gerador.modulo11(str(posicoes)+str(digito_1), 7, 1)
     if digito_2 == 1:
         digito_1 += 1
         digito_2 = gerador.modulo11(str(posicoes)+str(digito_1), 7, 1)
         digito_2 = 11 - digito_2
     elif digito_2 == 0:
         digito_2 = digito_2
     else:
         digito_2 = 11 - digito_2
     return [digito_1, digito_2]
コード例 #4
0
ファイル: banrisul.py プロジェクト: relsi/boleto2py
 def calc_nc(num):
     digito_1 = gerador.modulo10(num)
     digito_2 = gerador.modulo11(str(num)+str(digito_1), 7, 1)
     if digito_2 == 1:
         digito_1 += 1
         digito_2 = gerador.modulo11(str(num)+str(digito_1), 7, 1)
         digito_2 = 11 - digito_2
     elif digito_2 == 0:
         digito_2 = digito_2
     else:
         digito_2 = 11 - digito_2
     return [digito_1, digito_2]
コード例 #5
0
def gera_cod_barras(valor, nosso_numero, data_vencimento):
    nosso_numero = gerador.formata_numero(nosso_numero, 8)

    def calc_nc(num):
        digito_1 = gerador.modulo10(num)
        digito_2 = gerador.modulo11(str(num) + str(digito_1), 7, 1)
        if digito_2 == 1:
            digito_1 += 1
            digito_2 = gerador.modulo11(str(num) + str(digito_1), 7, 1)
            digito_2 = 11 - digito_2
        elif digito_2 == 0:
            digito_2 = digito_2
        else:
            digito_2 = 11 - digito_2
        return [digito_1, digito_2]

    duplo_digito = calc_nc(nosso_numero)
    nc_1 = duplo_digito[0]
    nc_2 = duplo_digito[1]

    ofator_vencimento = gerador.fator_vencimento(data_vencimento)

    digitos_calc_geral = "%1s%1s%4s%7s%8s%2s" % (
        '2', '1', ag_cedente, cod_cedente, nosso_numero, '40')

    def calc_nc_g(posicoes):
        digito_1 = gerador.modulo10(posicoes)
        digito_2 = gerador.modulo11(str(posicoes) + str(digito_1), 7, 1)
        if digito_2 == 1:
            digito_1 += 1
            digito_2 = gerador.modulo11(str(posicoes) + str(digito_1), 7, 1)
            digito_2 = 11 - digito_2
        elif digito_2 == 0:
            digito_2 = digito_2
        else:
            digito_2 = 11 - digito_2
        return [digito_1, digito_2]

    digito_nc = calc_nc_g(digitos_calc_geral)

    calc_dac = "%3s%1s%4s%10s%1s%1s%4s%7s%8s%2s%1s%1s" % (
        banco, moeda, ofator_vencimento, gerador.formata_numero(
            valor, 10), '2', '1', ag_cedente, cod_cedente, nosso_numero, '40',
        digito_nc[0], digito_nc[1])

    resto_dac = gerador.modulo11(calc_dac, 9, 1)
    if resto_dac in [0, 1, 10]:
        num_dac = 1
    else:
        num_dac = 11 - resto_dac

    cod_barra = "%3s%1s%1s%4s%10s%1s%1s%4s%7s%8s%2s%1s%1s" % (
        banco, moeda, num_dac, ofator_vencimento,
        gerador.formata_numero(valor, 10), '2', '1', ag_cedente, cod_cedente,
        nosso_numero, '40', digito_nc[0], digito_nc[1])
    dv_nosso_num = str(nc_1) + str(nc_2)
    return [cod_barra, nosso_numero, dv_nosso_num]
コード例 #6
0
ファイル: banrisul.py プロジェクト: relsi/boleto2py
def gera_cod_barras(valor, nosso_numero, data_vencimento):
    nosso_numero = gerador.formata_numero(nosso_numero, 8)

    def calc_nc(num):
        digito_1 = gerador.modulo10(num)
        digito_2 = gerador.modulo11(str(num)+str(digito_1), 7, 1)
        if digito_2 == 1:
            digito_1 += 1
            digito_2 = gerador.modulo11(str(num)+str(digito_1), 7, 1)
            digito_2 = 11 - digito_2
        elif digito_2 == 0:
            digito_2 = digito_2
        else:
            digito_2 = 11 - digito_2
        return [digito_1, digito_2]

    duplo_digito = calc_nc(nosso_numero)
    nc_1 = duplo_digito[0]
    nc_2 = duplo_digito[1]

    ofator_vencimento = gerador.fator_vencimento(data_vencimento)

    digitos_calc_geral = "%1s%1s%4s%7s%8s%2s" %('2','1',ag_cedente,cod_cedente,nosso_numero,'40')
    
    def calc_nc_g(posicoes):
        digito_1 = gerador.modulo10(posicoes)
        digito_2 = gerador.modulo11(str(posicoes)+str(digito_1), 7, 1)
        if digito_2 == 1:
            digito_1 += 1
            digito_2 = gerador.modulo11(str(posicoes)+str(digito_1), 7, 1)
            digito_2 = 11 - digito_2
        elif digito_2 == 0:
            digito_2 = digito_2
        else:
            digito_2 = 11 - digito_2
        return [digito_1, digito_2]

    digito_nc = calc_nc_g(digitos_calc_geral)

    calc_dac = "%3s%1s%4s%10s%1s%1s%4s%7s%8s%2s%1s%1s" % (
        banco, 
        moeda, 
        ofator_vencimento, 
        gerador.formata_numero(valor, 10), 
        '2', 
        '1', 
        ag_cedente, 
        cod_cedente, 
        nosso_numero, 
        '40', 
        digito_nc[0],
        digito_nc[1]
    )

    resto_dac = gerador.modulo11(calc_dac, 9, 1)
    if resto_dac in [0, 1, 10]:
        num_dac = 1
    else:
        num_dac = 11 - resto_dac

    cod_barra = "%3s%1s%1s%4s%10s%1s%1s%4s%7s%8s%2s%1s%1s" % (
        banco,
        moeda,
        num_dac,
        ofator_vencimento,
        gerador.formata_numero(valor, 10),
        '2',
        '1',
        ag_cedente,
        cod_cedente,
        nosso_numero,
        '40',
        digito_nc[0],
        digito_nc[1]
    )
    dv_nosso_num = str(nc_1)+str(nc_2)
    return [cod_barra, nosso_numero, dv_nosso_num]