예제 #1
0
def gera_linha_digitavel(cod_barra):

    num_d1 = "%4s%1s%1s%3s" % (cod_barra[0:4], cod_barra[19:20],
                               cod_barra[20:21], cod_barra[21:24])
    ver_d1 = gerador.modulo10(num_d1)

    num_d2 = "%1s%7s%2s" % (cod_barra[24:25], cod_barra[25:32],
                            cod_barra[32:34])
    ver_d2 = gerador.modulo10(num_d2)

    num_d3 = "%6s%2s%2s" % (cod_barra[34:40], cod_barra[40:42],
                            cod_barra[42:44])
    ver_d3 = gerador.modulo10(num_d3)

    campo_1 = "%4s%1s%1s%1s%3s%1s%2s" % (cod_barra[0:4], cod_barra[19:20], '.',
                                         cod_barra[20:21], cod_barra[21:24],
                                         ver_d1, '  ')
    campo_2 = "%1s%4s%1s%3s%2s%1s%2s" % (cod_barra[24:25], cod_barra[25:29],
                                         '.', cod_barra[29:32],
                                         cod_barra[32:34], ver_d2, '  ')
    campo_3 = "%5s%1s%1s%2s%2s%1s%2s" % (cod_barra[34:39], '.',
                                         cod_barra[39:40], cod_barra[40:42],
                                         cod_barra[42:44], ver_d3, '  ')
    dac = "%1s%2s" % (cod_barra[4:5], '  ')
    fat_vcto = "%4s" % (cod_barra[5:9])
    valor = "%10s" % (cod_barra[9:19])

    linha_digitavel = campo_1 + campo_2 + campo_3 + dac + fat_vcto + valor

    return linha_digitavel
예제 #2
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]
예제 #3
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]
예제 #4
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]
예제 #5
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]
예제 #6
0
파일: banrisul.py 프로젝트: relsi/boleto2py
def gera_linha_digitavel(cod_barra):

        num_d1 = "%4s%1s%1s%3s" % (cod_barra[0:4],cod_barra[19:20],cod_barra[20:21],cod_barra[21:24])
        ver_d1 = gerador.modulo10(num_d1)

        num_d2 = "%1s%7s%2s" % (cod_barra[24:25],cod_barra[25:32],cod_barra[32:34])
        ver_d2 = gerador.modulo10(num_d2)

        num_d3 = "%6s%2s%2s" % (cod_barra[34:40],cod_barra[40:42],cod_barra[42:44])
        ver_d3 = gerador.modulo10(num_d3)
        
        campo_1 = "%4s%1s%1s%1s%3s%1s%2s" % (cod_barra[0:4],cod_barra[19:20],'.',cod_barra[20:21],cod_barra[21:24],ver_d1,'  ')
        campo_2 = "%1s%4s%1s%3s%2s%1s%2s" % (cod_barra[24:25],cod_barra[25:29],'.',cod_barra[29:32],cod_barra[32:34],ver_d2,'  ') 
        campo_3 = "%5s%1s%1s%2s%2s%1s%2s" % (cod_barra[34:39],'.',cod_barra[39:40],cod_barra[40:42],cod_barra[42:44],ver_d3,'  ')
        dac = "%1s%2s" % (cod_barra[4:5],'  ')
        fat_vcto = "%4s" % (cod_barra[5:9])
        valor = "%10s" % (cod_barra[9:19])

        linha_digitavel = campo_1+campo_2+campo_3+dac+fat_vcto+valor

        return linha_digitavel