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]
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]
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]
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]
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]
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]