def get_invoice(bill_to, amount, due_date): d = BoletoBB(7, 2) d.nosso_numero = '0000000127' d.numero_documento = '' d.convenio = '2301731' d.especie_documento = 'DM' d.carteira = '18' d.cedente = 'Confederação Brasileira de Karatê-Dô Tradicional' d.cedente_documento = "35.795.707/0001-16" d.cedente_endereco = "Rua Acme, 123 - Centro - Sao Paulo/SP - CEP: 12345-678" d.agencia_cedente = '1458' d.conta_cedente = '189448' d.data_vencimento = datetime.date(2011, 10, 25) d.data_documento = datetime.date(2010, 2, 12) d.data_processamento = datetime.date(2010, 2, 12) d.instrucoes = [ "- NÃO RECEBER APÓS 5 DIAS DE VENCIDO", "- APÓS O VENCIMENTO COBRAR 0,03% POR DIA DE ATRASO", "- APÓS O VENCIMENTO COBRAR MULTA DE 2%", ] d.demonstrativo = [ "- Anuidades", ] d.valor_documento = 120.00 d.sacado = [ "Cliente Teste", "" ] return d
def create(self, payment): boleto = BoletoBB(config.BOLETO_TIPO_CONVENIO, None) boleto.nosso_numero = payment.our_number boleto.convenio = config.BOLETO_CONVENIO boleto.numero_documento = "{}{}".format(boleto.convenio, boleto.nosso_numero) boleto.especie_documento = 'DM' boleto.carteira = config.BOLETO_CARTEIRA boleto.agencia_cedente = config.BOLETO_AGENCIA boleto.conta_cedente = config.BOLETO_CONTA # TODO: what about digito-verificador? boleto.cedente_documento = config.BOLETO_CNPJ boleto.cedente_endereco = config.BOLETO_ENDERECO boleto.cedente = config.BOLETO_EMPRESA boleto.data_vencimento = payment.due_date boleto.data_documento = date.today() boleto.data_processamento = date.today() boleto.instrucoes = self._build_instructions() boleto.demonstrativo = self._build_description(payment) boleto.sacado = self._build_sacado(payment) boleto.valor_documento = payment.amount return boleto
def get_data_bb(): listaDados = [] for i in range(2): d = BoletoBB(7, 2) d.nosso_numero = "87654" d.numero_documento = "27.030195.10" d.convenio = "7777777" d.especie_documento = "DM" d.carteira = "18" d.cedente = "Empresa ACME LTDA" d.cedente_documento = "102.323.777-01" d.cedente_endereco = "Rua Acme, 123 - Centro - Sao Paulo/SP - CEP: 12345-678" d.agencia_cedente = "9999" d.conta_cedente = "99999" d.data_vencimento = datetime.date(2010, 3, 27) d.data_documento = datetime.date(2010, 2, 12) d.data_processamento = datetime.date(2010, 2, 12) d.instrucoes = [ "- Linha 1", "- Sr Caixa, cobrar multa de 2% após o vencimento", "- Receber até 10 dias após o vencimento", ] d.demonstrativo = ["- Serviço Teste R$ 5,00", "- Total R$ 5,00"] d.valor_documento = 255.00 d.sacado = ["Cliente Teste %d" % (i + 1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", ""] listaDados.append(d) return listaDados
def gen_boleto(self, cr, uid, ids, boleto_ids, context=None): boleto_obj = self.pool.get('boleto.boleto') fbuffer = StringIO() boleto_pdf = BoletoPDF(fbuffer) for bol in boleto_obj.browse(cr, uid, boleto_ids, context=context): if bol.banco == 'bb': boleto = BoletoBB(7, 2) elif bol.banco == 'bradesco': boleto = BoletoBradesco() elif bol.banco == 'caixa': boleto = BoletoCaixa() elif bol.banco == 'real': boleto = BoletoReal() elif bol.banco == 'sicredi': boleto = BoletoSicredi(5,1) elif bol.banco == 'itau': boleto = BoletoItau() boleto.cedente = bol.cedente.partner_id.legal_name boleto.cedente_documento = bol.cedente.partner_id.cnpj_cpf boleto.cedente_uf = bol.cedente.partner_id.state_id.code boleto.cedente_logradouro = bol.cedente.partner_id.street boleto.cedente_cidade = bol.cedente.partner_id.l10n_br_city_id.name boleto.cedente_bairro = bol.cedente.partner_id.district boleto.cedente_cep = bol.cedente.partner_id.zip boleto.carteira = bol.carteira boleto.agencia_cedente = bol.agencia_cedente boleto.conta_cedente = bol.conta_cedente boleto.data_vencimento = datetime.date(datetime.strptime(bol.data_vencimento, '%Y-%m-%d')) boleto.data_documento = datetime.date(datetime.strptime(bol.data_documento, '%Y-%m-%d')) boleto.data_processamento = date.today() boleto.valor_documento = bol.valor boleto.nosso_numero = bol.numero_documento boleto.numero_documento = bol.numero_documento boleto.convenio = bol.convenio # se documento de origem contrato buscar datas #data_ini = bol.data_vencimento[8:11] + '/' + bol.data_vencimento[5:7] + '/' + bol.data_vencimento[0:4] #data_fim = datetime.strftime(boleto.data_vencimento+relativedelta(months=+1),'%Y-%m-%d') #data_final = data_fim[8:11] + '/' + data_fim[5:7] + '/' + data_fim[0:4] #instrucao = bol.instrucoes %(str(bol.valor*0.02), str(bol.valor*0.1), str(data_ini), str(data_final)) #boleto.instrucoes = instrucao.split('\n') if instrucao else "" boleto.instrucoes = bol.instrucao.split('\n') if bol.instrucao else "" boleto.sacado = [ "%s" % (bol.sacado.legal_name or bol.sacado.name), "CNPJ/CPF: %s" % (bol.sacado.cnpj_cpf), "%s, %s - %s - %s - Cep. %s" % (bol.sacado.street, bol.sacado.number, bol.sacado.district, bol.sacado.l10n_br_city_id.name + '-' + bol.sacado.state_id.code, bol.sacado.zip), ] boleto_pdf.drawBoleto(boleto) boleto_pdf.nextPage() boleto_pdf.save() boleto_file = fbuffer.getvalue().encode("base64") fbuffer.close() return boleto_file
def print_bb(Aluno): """ Recebe uma instância de Aluno e gera boletos com as insformações passadas """ listaDados = [] for i in range(1): d = BoletoBB(7, 2) d.nosso_numero = "%d" % (i + 1) d.numero_documento = "123456789" d.convenio = "7777777" d.especie_documento = "DM" d.carteira = "18" d.cedente = "Curso Opção Triunfo" d.cedente_documento = "05261501490" d.cedente_endereco = "Rua Alameda das Mansões" d.agencia_cedente = "2739" d.conta_cedente = "12097" d.data_vencimento = datetime.date(2015, 12, 21) d.data_documento = datetime.date(2015, 12, 20) d.data_processamento = datetime.date(2015, 12, 20) d.instrucoes = ["- Sr Caixa, cobrar multa de 2% após vencimento", "- Receber até 10 dias após vencimento"] d.demonstrativo = ["- Testando pagamento", "- Total R$ 5,00"] d.valor_documento = Decimal(600) d.sacado_nome = Aluno.first_name d.sacado_documento = Aluno.cpf d.sacado_cidade = Aluno.endereco d.sacado_uf = "RN" d.sacado_endereco = "Rua rua" d.sacado_bairro = "Sao Pedro" d.sacado_cep = "3333333" d.valor = Decimal(600) d.valor_documento = Decimal(600) d.quantidade = "1" d.barcode listaDados.append(d) boleto = BoletoPDF("curso/boletos/boleto-teste-%s.pdf" % d.sacado_nome) for i in listaDados: boleto.drawBoleto(i) boleto.nextPage() boleto.save()
def print_bb(): listaDados = [] for i in range(2): d = BoletoBB(7, 2) d.nosso_numero = '87654' d.numero_documento = '27.030195.10' d.convenio = '7777777' d.especie_documento = 'DM' d.carteira = '18' d.cedente = 'Educarinova' d.cedente_documento = "102.323.777-01" d.cedente_endereco = ("Rua Acme, 123 - " + "Centro - Sao Paulo/SP - " + "CEP: 12345-678") d.agencia_cedente = '9999111' d.conta_cedente = '999991111' d.data_vencimento = datetime.date(2010, 3, 27) d.data_documento = datetime.date(2010, 2, 12) d.data_processamento = datetime.date(2010, 2, 12) d.instrucoes = [ "- Linha 1", "- Sr Caixa, cobrar multa de 2% após o vencimento", "- Receber até 10 dias após o vencimento", ] d.demonstrativo = [ "- Serviço Teste R$ 5,00", "- Total R$ 5,00", ] d.valor_documento = 255.00 d.sacado = [ "Cliente Teste %d" % (i + 1), "Rua Desconhecidaasdasd, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDados.append(d) boleto = BoletoPDF('boleto-bb-formato-normal-teste.pdf') for i in range(len(listaDados)): boleto.drawBoleto(listaDados[i]) boleto.nextPage() boleto.save()
def gen_boleto(self, cr, uid, ids, boleto_ids, context=None): boleto_obj = self.pool.get('boleto.boleto') fbuffer = StringIO() boleto_pdf = BoletoPDF(fbuffer) for bol in boleto_obj.browse(cr, uid, boleto_ids, context=context): if bol.banco == 'bb': boleto = BoletoBB(7, 2) elif bol.banco == 'bradesco': boleto = BoletoBradesco() elif bol.banco == 'caixa': boleto = BoletoCaixa() elif bol.banco == 'real': boleto = BoletoReal() elif bol.banco == 'sicredi': boleto = BoletoSicredi(5,1) boleto.cedente = bol.cedente.name boleto.cedente_documento = bol.cedente.cnpj_cpf boleto.cedente_uf = bol.cedente.state_id.name boleto.cedente_logradouro = bol.sacado.street boleto.carteira = bol.carteira boleto.agencia_cedente = bol.agencia_cedente boleto.conta_cedente = bol.conta_cedente boleto.data_vencimento = datetime.date(datetime.strptime(bol.data_vencimento, '%Y-%m-%d')) boleto.data_documento = datetime.date(datetime.strptime(bol.data_documento, '%Y-%m-%d')) boleto.data_processamento = date.today() boleto.valor_documento = bol.valor boleto.nosso_numero = bol.numero_documento boleto.numero_documento = bol.numero_documento boleto.convenio = bol.convenio boleto.instrucoes = bol.instrucoes.split('\n') if bol.instrucoes else "" boleto.sacado = [ "%s" % (bol.sacado.legal_name or bol.sacado.name), "CNPJ/CPF: %s" % (bol.sacado.cnpj_cpf), "%s, %s - %s - %s - Cep. %s" % (bol.sacado.street, bol.sacado.number, bol.sacado.district, bol.sacado.city, bol.sacado.zip), ] boleto_pdf.drawBoleto(boleto) boleto_pdf.nextPage() boleto_pdf.save() boleto_file = fbuffer.getvalue().encode("base64") fbuffer.close() return boleto_file
def print_bb(prazo, valor, nomeCliente): listaDados = [] for i in range(1): d = BoletoBB(7, 2) d.nosso_numero = '87654' d.numero_documento = '27.030195.10' d.convenio = '7777777' d.especie_documento = 'DM' d.carteira = '18' d.cedente = 'AS PARTNERS LTDA' d.cedente_documento = "102.323.777-01" d.cedente_endereco = ("Avenida Cassiano Ricardo, 319," + "Sala 508-5ºAndar-" + "Jd.Aquarius-SJC/SP") d.agencia_cedente = '9999' d.conta_cedente = '99999' #today = date.today() + timedelta(prazo) d.data_vencimento = datetime.date(2018, 8, 29) d.data_documento = datetime.date(2010, 2, 12) d.data_processamento = datetime.date(2010, 2, 12) d.instrucoes = [ "- Linha 1", "- Sr Caixa, cobrar multa de 2% após o vencimento", "- Receber até 10 dias após o vencimento", ] d.demonstrativo = [ "- Serviço Teste R$ 5,00", "- Total R$ 5,00", ] d.valor_documento = valor d.sacado = [ nomeCliente, "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDados.append(d) boleto = BoletoPDF('boleto-bb-formato-normal-teste.pdf') for i in range(len(listaDados)): boleto.drawBoleto(listaDados[i]) boleto.nextPage() boleto.save()
def print_bb(): listaDados = [] for i in range(2): d = BoletoBB(7, 2) d.nosso_numero = '87654' d.numero_documento = '27.030195.10' d.convenio = '7777777' d.especie_documento = 'DM' d.carteira = '18' d.cedente = 'Empresa ACME LTDA' d.cedente_documento = "102.323.777-01" d.cedente_endereco = ("Rua Acme, 123 - " + "Centro - Sao Paulo/SP - " + "CEP: 12345-678") d.agencia_cedente = '9999' d.conta_cedente = '99999' d.data_vencimento = datetime.date(2010, 3, 27) d.data_documento = datetime.date(2010, 2, 12) d.data_processamento = datetime.date(2010, 2, 12) d.instrucoes = [ "- Linha 1", "- Sr Caixa, cobrar multa de 2% após o vencimento", "- Receber até 10 dias após o vencimento", ] d.demonstrativo = [ "- Serviço Teste R$ 5,00", "- Total R$ 5,00", ] d.valor_documento = 255.00 d.sacado = [ "Cliente Teste %d" % (i + 1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDados.append(d) boleto = BoletoPDF('boleto-bb-formato-normal-teste.pdf') for i in range(len(listaDados)): boleto.drawBoleto(listaDados[i]) boleto.nextPage() boleto.save()
def get_data_bb(): listaDados = [] for i in range(2): d = BoletoBB(7, 2) d.nosso_numero = "87654" d.numero_documento = "27.030195.10" d.convenio = "7777777" d.especie_documento = "DM" d.carteira = "18" d.cedente = "Empresa ACME LTDA" d.cedente_documento = "102.323.777-01" d.cedente_endereco = "Rua Acme, 123 - Centro - Sao Paulo/SP - CEP: 12345-678" d.agencia_cedente = "9999" d.conta_cedente = "99999" d.data_vencimento = datetime.date(2010, 3, 27) d.data_documento = datetime.date(2010, 2, 12) d.data_processamento = datetime.date(2010, 2, 12) d.instrucoes = [ "- Linha 1", "- Sr Caixa, cobrar multa de 2% após o vencimento", "- Receber até 10 dias após o vencimento", ] d.demonstrativo = [ "- Serviço Teste R$ 5,00", "- Total R$ 5,00", ] d.valor_documento = 255.00 d.sacado = [ "Cliente Teste %d" % (i + 1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "", ] listaDados.append(d) return listaDados
def gen_boleto(self, cr, uid, ids, boleto_ids, context=None): boleto_obj = self.pool.get('boleto.boleto') fbuffer = StringIO() boleto_pdf = BoletoPDF(fbuffer) #inv_obj = self.pool.get('account.invoice') #active_ids = context.get('active_ids', []) #for invoice in inv_obj.browse(cr, uid, active_ids, context=context): #inv_obj = self.pool.get('account.invoice') #for invoice in inv_obj.browse(cr, uid, ids, context=context): #contrato_obj = self.pool.get('account.analytic.account') #contrato_line = contrato_obj.search(cr, uid, [('code','=',invoice.origin)], context=context) #for contrato in contrato_line: # data_contrato = contrato.date # data_vencimento = contrato for bol in boleto_obj.browse(cr, uid, boleto_ids, context=context): if bol.banco == 'bb': boleto = BoletoBB(7, 2) elif bol.banco == 'bradesco': boleto = BoletoBradesco() elif bol.banco == 'caixa': boleto = BoletoCaixa() elif bol.banco == 'real': boleto = BoletoReal() elif bol.banco == 'sicredi': boleto = BoletoSicredi(5,1) elif bol.banco == 'itau': boleto = BoletoItau() boleto.cedente = bol.cedente.partner_id.legal_name boleto.cedente_documento = bol.cedente.partner_id.cnpj_cpf boleto.cedente_uf = bol.cedente.partner_id.state_id.code boleto.cedente_logradouro = bol.cedente.partner_id.street boleto.cedente_cidade = bol.cedente.partner_id.l10n_br_city_id.name boleto.cedente_bairro = bol.cedente.partner_id.district boleto.cedente_cep = bol.cedente.partner_id.zip boleto.carteira = bol.carteira boleto.agencia_cedente = bol.agencia_cedente boleto.conta_cedente = bol.conta_cedente boleto.data_vencimento = datetime.date(datetime.strptime(bol.data_vencimento, '%Y-%m-%d')) boleto.data_documento = datetime.date(datetime.strptime(bol.data_documento, '%Y-%m-%d')) boleto.data_processamento = date.today() boleto.valor_documento = bol.valor boleto.nosso_numero = bol.numero_documento boleto.numero_documento = bol.numero_documento boleto.convenio = bol.convenio # se documento de origem contrato buscar datas data_ini = bol.data_vencimento[8:11] + '/' + bol.data_vencimento[5:7] + '/' + bol.data_vencimento[0:4] data_fim = datetime.strftime(boleto.data_vencimento+relativedelta(months=+1),'%Y-%m-%d') data_final = data_fim[8:11] + '/' + data_fim[5:7] + '/' + data_fim[0:4] instrucao = bol.instrucoes %(str(bol.valor*0.02), str(bol.valor*0.1), str(data_ini), str(data_final)) boleto.instrucoes = instrucao.split('\n') if instrucao else "" boleto.sacado = [ "%s" % (bol.sacado.legal_name or bol.sacado.name), "CNPJ/CPF: %s" % (bol.sacado.cnpj_cpf), "%s, %s - %s - %s - Cep. %s" % (bol.sacado.street, bol.sacado.number, bol.sacado.district, bol.sacado.l10n_br_city_id.name + '-' + bol.sacado.state_id.code, bol.sacado.zip), ] boleto_pdf.drawBoleto(boleto) boleto_pdf.nextPage() boleto_pdf.save() boleto_file = fbuffer.getvalue().encode("base64") fbuffer.close() return boleto_file
def gen_boleto(self, cr, uid, ids, boleto_id, context=None): uid = 1 boleto_boleto = self.pool.get('boleto.boleto') account_analytic_account = self.pool.get('account.analytic.account') account_analytic_charges_line = self.pool.get( 'account.analytic.charges.line') res_company = self.pool.get('res.company').browse(cr, uid, 1) # res_currency = self.pool.get('res.currency').browse(cr, uid, res_company.currency_id.id) partner_obj = self.pool.get('') fbuffer = StringIO() boleto_pdf = BoletoPDF(fbuffer) lista_produtos = context['lista'] multa = 0 mora = 0 bol = boleto_boleto.browse(cr, uid, boleto_id, context=context) if bol.banco == 'bb': boleto = BoletoBB(7, 2) elif bol.banco == 'bradesco': boleto = BoletoBradesco() elif bol.banco == 'caixa': boleto = BoletoCaixa() elif bol.banco == 'real': boleto = BoletoReal() elif bol.banco == 'itau': boleto = BoletoItau() boleto.demonstrativo = [] end_company = "%s, %s %s %s" % ( bol.cedente.partner_id.street or '', bol.cedente.partner_id.number or '', bol.cedente.partner_id.district or '', bol.cedente.partner_id.city or '') boleto.cedente_documento = bol.cedente.partner_id.cnpj_cpf boleto.cedente = "%s CNPJ: %s" % (bol.cedente.name, bol.cedente.partner_id.cnpj_cpf) boleto.carteira = bol.carteira if bol.banco == 'caixa': boleto.carteira = 'SR' else: boleto.carteira = bol.carteira boleto.agencia_cedente = bol.agencia_cedente boleto.conta_cedente = bol.conta_cedente boleto.data_vencimento = datetime.date( datetime.strptime(bol.data_vencimento, '%Y-%m-%d')) boleto.data_documento = date.today( ) #datetime.date(datetime.strptime(bol.data_documento, '%Y-%m-%d')) boleto.data_processamento = date.today() boleto.nosso_numero = bol.nosso_numero if bol.banco == 'caixa': n = list(boleto.nosso_numero) n[0] = '2' n[1] = '4' n[2] = '2' boleto.nosso_numero = "".join(n) boleto.especie_documento = 'DS' boleto.numero_documento = bol.numero_documento boleto.convenio = bol.convenio pp = self.pool.get('boleto.partner_config').search( cr, uid, [('default_boleto', '=', True)]) if bol.instrucoes: instrucoes = bol.instrucoes elif pp: ppb = self.pool.get('boleto.partner_config').browse(cr, uid, pp[0]) instrucoes = ppb.instrucoes else: raise osv.except_osv((u'Atencao !'), ( "Para gerar boletos primeiro cadastre a configuracao de boleto deste cliente." )) boleto.instrucoes = [] contrato_id = account_analytic_account.search( cr, uid, [('code', '=', str(context['contrato']))]) # lista_encargos = account_analytic_charges_line.search(cr, uid, [('analytic_account_id', '=', contrato_id)]) # # for charge in account_analytic_charges_line.browse(cr, uid, lista_encargos): # if charge.type_charge == 'mora': # mora = charge.perc_charge # elif charge.type_charge == 'multa': # multa = charge.perc_charge # boleto.valor_documento = bol.valor multa_ok = 0 mora_ok = 0 # for k in bol.instrucoes.split('\n'): h = normalize('NFKD', unicode(instrucoes)).encode('ASCII', 'ignore') # if multa and multa_ok == 0: # #multa = "%s%s" % (multa, '%') # multa = multa / 100 # multa = str("%.2f" % (float(multa) * float(boleto.valor_documento))).replace('.',',') # multa = "%s%s" % ("R$", multa) # h = h.replace('@multa', multa) # multa_ok = 1 # if mora and mora_ok == 0: # #mora = "%s%s" % (mora, '%') # mora = mora / 100 # mora = str("%.2f" % (float(mora) * float(boleto.valor_documento))).replace('.',',') # mora = "%s%s" % ("R$", mora) # h = h.replace('@mora', mora) # mora_ok = 1 for k in h.split('\n'): boleto.instrucoes.append(k) boleto.cedente_endereco = normalize('NFKD', unicode(end_company or '')).encode( 'ASCII', 'ignore') sac = normalize( 'NFKD', unicode("%s CNPJ/CPF:%s" % (bol.sacado.legal_name or bol.sacado.name, bol.sacado.cnpj_cpf))).encode('ASCII', 'ignore') end = normalize( 'NFKD', unicode( "%s, %s %s %s" % (bol.sacado.street or '', bol.sacado.number or '', bol.sacado.street2 or '', bol.sacado.district or ''))).encode( 'ASCII', 'ignore') boleto.sacado = [ (normalize( 'NFKD', unicode('%s CNPJ/CPF: %s' % (bol.sacado.name or bol.sacado.legal_name or '', str(bol.sacado.cnpj_cpf)))).encode('ASCII', 'ignore')), end, ("%s CEP: %s" % (bol.sacado.city, bol.sacado.zip)) ] boleto.demonstrativo = [ str(sac[:90]), "%s" % (bol.name), str(end[:90]), "%s CEP: %s" % (bol.sacado.city, bol.sacado.zip), "__________________________________________________________________________________________", "REFERENTE A SERVIÇOS", "Produto".ljust(35) + "Valor".rjust(15), "", ] for i in lista_produtos: i = normalize('NFKD', unicode(i[:90])).encode('ASCII', 'ignore'), boleto.demonstrativo.append(str(unicode(i[0]))) print boleto boleto_pdf.drawBoleto(boleto) print boleto.linha_digitavel boleto_pdf.save() boleto_file = fbuffer.getvalue().encode("base64") fbuffer.close() return boleto_file
def gen_boleto(self, cr, uid, ids, boleto_id, context=None): uid = 1 boleto_boleto = self.pool.get('boleto.boleto') fbuffer = StringIO() boleto_pdf = BoletoPDF(fbuffer) lista_produtos = context['lista'] bol = boleto_boleto.browse(cr, uid, boleto_id, context=context) if bol.banco == 'bb': boleto = BoletoBB(7, 2) elif bol.banco == 'bradesco': boleto = BoletoBradesco() elif bol.banco == 'caixa': boleto = BoletoCaixa() elif bol.banco == 'real': boleto = BoletoReal() elif bol.banco == 'itau': boleto = BoletoItau() boleto.demonstrativo = [] end_company = "%s, %s %s %s" % (bol.cedente.partner_id.street or '', bol.cedente.partner_id.number or '', bol.cedente.partner_id.district or '', bol.cedente.partner_id.city or '') boleto.cedente_documento = bol.cedente.partner_id.cnpj_cpf boleto.cedente = "%s CNPJ: %s" % (bol.cedente.name,bol.cedente.partner_id.cnpj_cpf) boleto.carteira = bol.carteira if bol.banco == 'caixa': boleto.carteira = 'SR' else: boleto.carteira = bol.carteira boleto.agencia_cedente = bol.agencia_cedente boleto.conta_cedente = bol.conta_cedente boleto.data_vencimento = datetime.date(datetime.strptime(bol.data_vencimento, '%Y-%m-%d')) boleto.data_documento = date.today()#datetime.date(datetime.strptime(bol.data_documento, '%Y-%m-%d')) boleto.data_processamento = date.today() boleto.nosso_numero = bol.nosso_numero if bol.banco == 'caixa': n = list(boleto.nosso_numero) n[0] = '2' n[1] = '4' n[2] = '2' boleto.nosso_numero = "".join(n) boleto.especie_documento = 'DS' boleto.numero_documento = bol.numero_documento boleto.convenio = bol.convenio pp = self.pool.get('boleto.partner_config').search(cr, uid, [('default_boleto','=',True)]) if bol.instrucoes: instrucoes = bol.instrucoes elif pp: ppb = self.pool.get('boleto.partner_config').browse(cr, uid, pp[0]) instrucoes = ppb.instrucoes else: raise osv.except_osv((u'Atencao !'),("Para gerar boletos primeiro cadastre a configuracao de boleto deste cliente.")) boleto.instrucoes = [] boleto.valor_documento = bol.valor h = normalize('NFKD',unicode(instrucoes)).encode('ASCII','ignore') for k in h.split('\n'): boleto.instrucoes.append(k) boleto.cedente_endereco = normalize('NFKD',unicode(end_company or '')).encode('ASCII','ignore') sac = normalize('NFKD',unicode("%s CNPJ/CPF:%s" % (bol.sacado.legal_name or bol.sacado.name,bol.sacado.cnpj_cpf))).encode('ASCII','ignore') end = normalize('NFKD',unicode("%s, %s %s %s" % (bol.sacado.street or '', bol.sacado.number or '', bol.sacado.street2 or '', bol.sacado.district or ''))).encode('ASCII','ignore') boleto.sacado = [(normalize('NFKD',unicode('%s CNPJ/CPF: %s' % (bol.sacado.name or bol.sacado.legal_name or '', str(bol.sacado.cnpj_cpf)))).encode('ASCII','ignore')), end, ("%s CEP: %s" % (bol.sacado.city,bol.sacado.zip))] boleto.demonstrativo =[ str(sac[:90]), "%s" % (bol.name), str(end[:90]), "%s CEP: %s" % (bol.sacado.city,bol.sacado.zip), "__________________________________________________________________________________________", "REFERENTE A SERVIÇOS", "Produto".ljust(35) + "Valor".rjust(15), "", ] for i in lista_produtos: i = normalize('NFKD',unicode(i[:90])).encode('ASCII','ignore'), boleto.demonstrativo.append(str(unicode(i[0]))) print boleto boleto_pdf.drawBoleto(boleto) print boleto.linha_digitavel boleto_pdf.save() boleto_file = fbuffer.getvalue().encode("base64") fbuffer.close() return boleto_file
def create_boleto(self, cr, uid, ids, context=None): _logger.info("Inciando a Geracao do(s) PDF(s)") if context is None: context = {} #arquivo = tempfile.NamedTemporaryFile(prefix='boleto',suffix='.pdf', delete=False) boleto_obj = self.pool.get('boleto.boleto') active_ids = context.get('active_ids', []) for bol in boleto_obj.browse(cr, uid, active_ids, context=context): boleto_id = bol.id _logger.info("Gerando PDF do boleto %s" % boleto_id) fbuffer = StringIO() boleto_pdf = BoletoPDF(fbuffer) company = self.pool.get('res.company').browse(cr, uid, [bol.cedente.id])[0] partner = self.pool.get('res.partner').browse(cr, uid, [bol.sacado.id])[0] if partner.legal_name: partner_name = partner.legal_name else: partner_name = partner.name #partner_ad = partner.address[0] #bol_conf_id = company.boleto_company_config_ids.id #bol_conf = self.pool.get('boleto.company_config').browse(cr, uid, [bol_conf_id])[0] if bol.banco == 'bb': boleto = BoletoBB(7, 2) elif bol.banco == 'bradesco': boleto = BoletoBradesco() elif bol.banco == 'caixa': boleto = BoletoCaixa() elif bol.banco == 'real': boleto = BoletoReal() boleto.cedente = company.name boleto.cedente_documento = company.company_registry boleto.cedente_logradouro = company.street boleto.cedente_cep = company.zip boleto.cedente_cidade = company.city boleto.carteira = bol.carteira boleto.agencia_cedente = bol.agencia_cedente boleto.conta_cedente = bol.conta_cedente boleto.data_vencimento = datetime.date(datetime.strptime(bol.data_vencimento, '%Y-%m-%d')) boleto.data_documento = datetime.date(datetime.strptime(bol.data_documento, '%Y-%m-%d')) boleto.data_processamento = date.today() boleto.valor_documento = bol.valor boleto.nosso_numero = bol.numero_documento boleto.numero_documento = bol.numero_documento boleto.convenio = bol.convenio boleto.instrucoes = bol.instrucoes.split() boleto.sacado_documento = partner.cnpj_cpf boleto.sacado = [ partner_name, bol.endereco, "" ] # boleto.sacado = [ # "%s" % partner.legal_name or partner.name, # "%s, %s - %s - %s - Cep. %s" % (partner_ad.street, partner_ad.number, partner_ad.district, partner_ad.city, partner_ad.zip), # "" # ] boleto_pdf.drawBoleto(boleto) boleto_pdf.nextPage() boleto_pdf.save() #boleto_pdf.pdfCanvas.showPage() #arquivo.seek(0) #fl = arquivo.read() #boleto_file = fbuffer.getvalue().encode("base64") fbuffer.seek(0) conteudo = fbuffer.read() self.anexarFicheiro(cr,uid,boleto_id,conteudo) #self.write(cr,uid,ids,{'file': base64.b64encode(fl), 'state': 'done'}, context=context) #fbuffer.seek(0) #print fbuffer.read() fbuffer.close() self.write(cr, uid, ids, {'state': 'done'}, context=context) #arquivo.close() _logger.info("Finalizando a Geracao do PDF 7") #self.write(cr, uid, ids, {'file': boleto_file, 'state': 'get'}, context=context) return False
def gen_boleto(self, cr, uid, ids, boleto_ids, context=None): boleto_obj = self.pool.get("boleto.boleto") fbuffer = StringIO() boleto_pdf = BoletoPDF(fbuffer) for bol in boleto_obj.browse(cr, uid, boleto_ids, context=context): if bol.banco == "bb": boleto = BoletoBB(7, 2) elif bol.banco == "bradesco": boleto = BoletoBradesco() elif bol.banco == "caixa": boleto = BoletoCaixa() elif bol.banco == "real": boleto = BoletoReal() elif bol.banco == "sicredi": boleto = BoletoSicredi(5, 1) elif bol.banco == "itau": boleto = BoletoItau() boleto.cedente = bol.cedente.partner_id.legal_name boleto.cedente_documento = bol.cedente.partner_id.cnpj_cpf boleto.cedente_uf = bol.cedente.partner_id.state_id.code boleto.cedente_logradouro = bol.cedente.partner_id.street boleto.cedente_cidade = bol.cedente.partner_id.l10n_br_city_id.name boleto.cedente_bairro = bol.cedente.partner_id.district boleto.cedente_cep = bol.cedente.partner_id.zip boleto.carteira = bol.carteira boleto.agencia_cedente = bol.agencia_cedente boleto.conta_cedente = bol.conta_cedente boleto.data_vencimento = datetime.date(datetime.strptime(bol.data_vencimento, "%Y-%m-%d")) boleto.data_documento = datetime.date(datetime.strptime(bol.data_documento, "%Y-%m-%d")) boleto.data_processamento = date.today() boleto.valor_documento = bol.valor boleto.nosso_numero = bol.numero_documento boleto.numero_documento = bol.numero_documento boleto.convenio = bol.convenio # se documento de origem contrato buscar datas # data_ini = bol.data_vencimento[8:11] + '/' + bol.data_vencimento[5:7] + '/' + bol.data_vencimento[0:4] # data_fim = datetime.strftime(boleto.data_vencimento+relativedelta(months=+1),'%Y-%m-%d') # data_final = data_fim[8:11] + '/' + data_fim[5:7] + '/' + data_fim[0:4] # instrucao = bol.instrucoes %(str(bol.valor*0.02), str(bol.valor*0.1), str(data_ini), str(data_final)) # boleto.instrucoes = instrucao.split('\n') if instrucao else "" boleto.instrucoes = bol.instrucao.split("\n") if bol.instrucao else "" boleto.sacado = [ "%s" % (bol.sacado.legal_name or bol.sacado.name), "CNPJ/CPF: %s" % (bol.sacado.cnpj_cpf), "%s, %s - %s - %s - Cep. %s" % ( bol.sacado.street, bol.sacado.number, bol.sacado.district, bol.sacado.l10n_br_city_id.name + "-" + bol.sacado.state_id.code, bol.sacado.zip, ), ] boleto_pdf.drawBoleto(boleto) boleto_pdf.nextPage() boleto_pdf.save() boleto_file = fbuffer.getvalue().encode("base64") fbuffer.close() return boleto_file
def generate_boleto(self, cr, user, invoice, conta, linha): _logger.info('Invoice: '+str(invoice.partner_id.cnpj_cpf)) # if conta.bank.bic == "001": fbuffer = StringIO() boleto_pdf = BoletoPDF(fbuffer) boleto = BoletoBB(7, 2) try: juros_dia = float(linha[0]['ValorJurosDia']) except ValueError: juros_dia = 0 try: val_multa = float(linha[0]['ValorMulta']) except ValueError: val_multa = 0 _logger.info('Após vencimento, multa de R$ '+str(val_multa)+' e mora de R$ '+str(juros_dia)) MsgProtesto = linha[0]['MsgProtesto'] MsgSacador = False NomeSacador = False DocSacador = False if linha[0]['IndMensagemSacAva'] == 'A': if linha[0]['DocSacador'] and linha[0]['NomeSacador']: MsgSacador = True NomeSacador = linha[0]['NomeSacador'] DocSacador = linha[0]['DocSacador'] txtDemons = "" if linha[0]['txtDemonstra']: txtDemons = linha[0]['txtDemonstra'] #boleto_obj = self.pool.get('boleto.boleto') boleto.cedente = str(user.company_id.partner_id.legal_name) boleto.cedente_logradouro = user.company_id.partner_id.street + ', ' + user.company_id.partner_id.number boleto.cedente_cidade = 'Curitiba' #user.company_id.partner_id.l10n_br_city.name boleto.cedente_uf = 'PR' boleto.cedente_bairro = 'Centro' boleto.cedente_cep = str(user.company_id.partner_id.zip) boleto.sacado_nome = (invoice.partner_id.legal_name or invoice.partner_id.name) boleto.sacado_documento = str(invoice.partner_id.cnpj_cpf) boleto.sacado_cidade = invoice.partner_id.l10n_br_city_id.name boleto.sacado_uf = invoice.partner_id.state_id.code boleto.sacado_endereco = "%s, %s" % (invoice.partner_id.street, invoice.partner_id.number) boleto.sacado_bairro = invoice.partner_id.district boleto.sacado_cep = invoice.partner_id.zip if MsgSacador is True: boleto.sacador_documento = DocSacador boleto.sacador_nome = NomeSacador boleto.cedente_documento = str(user.company_id.partner_id.cnpj_cpf) boleto.carteira = str(conta.cod_carteira) boleto.agencia_cedente = conta.bra_number boleto.conta_cedente = conta.acc_number boleto.data_vencimento = datetime.date(datetime.strptime(invoice.date_due, '%Y-%m-%d')) boleto.data_documento = datetime.date(datetime.strptime(invoice.date_invoice, '%Y-%m-%d')) boleto.data_processamento = date.today() boleto.valor_documento = str(invoice.amount_total) #boleto.valor = '100' boleto.nosso_numero = invoice.number boleto.numero_documento = str(invoice.number) boleto.convenio = str(conta.nro_convenio) Linha_Juros = '' if juros_dia > 0 and val_multa > 0: Linha_Juros = u'Após vencimento, multa de R$ %.2f e mora de R$ %.2f ao dia.\r\n' % (val_multa,juros_dia) if MsgProtesto: Linha_Juros = Linha_Juros + MsgProtesto + '\r\n' if txtDemons: Linha_Juros = Linha_Juros + txtDemons + '\r\n' boleto.demonstrativo = txtDemons + '\r\n' if conta.instrucoes: boleto.instrucoes = Linha_Juros + conta.instrucoes + '\r\n' else: boleto.instrucoes = Linha_Juros boleto.especie = 'R$' boleto.especie_documento = 'DM' boleto.aceite = 'N' boleto.quantidade = '' #boleto.nosso_numero = 1 boleto.sacado = [ u"%s - %s" % (invoice.partner_id.cnpj_cpf,linha[0]['NomeSacado']), u"%s - %s - %s - %s - Cep. %s" % (linha[0]['EnderecoSacado'], linha[0]['BairroSacado'], linha[0]['CidadeSacado'], linha[0]['UfCidadeSacado'], linha[0]['CepSacado']), u'',] # boleto.sacado = [ # "%s" % (invoice.partner_id.legal_name or invoice.partner_id.name), # "%s, %s - %s - %s - Cep. %s" % (invoice.partner_id.street, invoice.partner_id.number, invoice.partner_id.district, invoice.partner_id.city, invoice.partner_id.zip), # "" # ] # nosso_numero = str(boleto.format_nosso_numero()) # linha[0]['NossoNumero'] = nosso_numero[:17] # _logger.info('NossoNumero: '+str(boleto.format_nosso_numero())) boleto_pdf.drawBoleto(boleto) boleto_pdf.nextPage() boleto_pdf.save() fbuffer.seek(0) conteudo = fbuffer.read() res = conteudo return res