def get(self, *args, **kwargs): from pyboleto.pdf import BoletoPDF from models import Boleto buffer = StringIO() boleto_pdf = BoletoPDF(buffer) boleto_id = self.get_argument("boleto_id", default="-1", strip=False) download = int(self.get_argument("download", default="0", strip=False)) if boleto_id: boleto_id = int(boleto_id) boleto = self.application.session.query(Boleto).filter_by(id=boleto_id).first() if boleto: boleto.print_pdf_pagina(boleto_pdf) self.set_header("Content-Type", "application/pdf") if download == 1: self.set_header("Content-Disposition", "attachment; filename=boleto_%s.pdf"% boleto.id ) boleto_pdf.save() pdf_file = buffer.getvalue() self.write( pdf_file ) else: self.write('Erro imprimindo Boleto')
def generate_invoice_pdf(due_date, value, user, profile): pdf_buffer = StringIO() boleto_pdf = BoletoPDF(pdf_buffer) d = BoletoItau() d.carteira = settings.CLUB_BANK_PORTFOLIO d.cedente = settings.CLUB_NAME d.cedente_documento = settings.CLUB_CNPJ d.cedente_endereco = settings.CLUB_ADDRESS d.agencia_cedente = settings.CLUB_BANK_AGENCY d.conta_cedente = settings.CLUB_BANK_ACCOUNT d.data_vencimento = due_date d.data_documento = datetime.date.today() d.data_processamento = datetime.date.today() d.valor = value d.valor_documento = d.valor d.nosso_numero = settings.CLUB_BANK_OUR_NUMBER d.numero_documento = d.nosso_numero d.instrucoes = settings.CLUB_CASHIER_INSTRUCTIONS d.demonstrativo = [ _('MONTHLY FEE FOR MONTH %(month)s/%(year)s') % { 'month': due_date.month, 'year': due_date.year}, ] d.sacado = [ "%s %s" % (user.first_name, user.last_name), "%s %s" % (profile.street, profile.postal_code), "%s %s %s" % (profile.street2, profile.city, profile.state_province) ] boleto_pdf.drawBoleto(d) boleto_pdf.save() return pdf_buffer.getvalue()
def write_brazilian_deposit_system(self,deposit): deposit_data = deposit.get('Data') if 'data_documento' in deposit_data and deposit_data['data_documento']: deposit_data['data_documento'] = datetime.datetime.strptime( deposit_data['data_documento'] , "%Y-%m-%d").date() if 'data_vencimento' in deposit_data and deposit_data['data_vencimento']: deposit_data['data_vencimento'] = datetime.datetime.strptime( deposit_data['data_vencimento'] , "%Y-%m-%d").date() if 'data_processamento' in deposit_data and deposit_data['data_processamento']: deposit_data['data_processamento'] = datetime.datetime.strptime( deposit_data['data_processamento'] , "%Y-%m-%d").date() buffer = StringIO() from pyboleto.pdf import BoletoPDF boleto_pdf = BoletoPDF(buffer) from pyboleto import bank ClasseBanco = bank.get_class_for_codigo(deposit_data['codigo_banco']) deposit_dados = ClasseBanco() for field_name, field_value in deposit_data.iteritems(): if field_value: setattr(deposit_dados, field_name, field_value) boleto_pdf.drawBoleto(deposit_dados) self.set_header("Content-Type", "application/pdf") boleto_pdf.save() pdf_file = buffer.getvalue() self.write( pdf_file )
def as_pdf(self, boleto_data, document_hash, dest_dir): filename = "boleto-{}.pdf".format(document_hash) path = os.path.join(dest_dir, filename) pdf = BoletoPDF(path) pdf.drawBoleto(boleto_data) pdf.save() return filename
def print_real(): listaDadosReal = [] for i in range(2): d = BoletoReal() d.carteira = "57" # Contrato firmado com o Banco Real 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 = "0531" d.conta_cedente = "5705853" 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 = 5.00 d.nosso_numero = "%d" % (i + 2) d.numero_documento = "%d" % (i + 2) d.sacado = ["Cliente Teste %d" % (i + 1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", ""] listaDadosReal.append(d) # Real Formato normal - uma pagina por folha A4 boleto = BoletoPDF("boleto-real-formato-noral-teste.pdf") for i in range(len(listaDadosReal)): boleto.drawBoleto(listaDadosReal[i]) boleto.nextPage() boleto.save()
def print_all(): banks = { # "itau": "Itau", "bb": "Banco do Brasil", "caixa": "Caixa", "real": "Real", "santander": "Santander", "bradesco": "Bradesco", } for bank in banks: print("Gerando boleto para o banco " + banks[bank]) data_func_name = "get_data_" + bank data_func = eval(data_func_name) boleto_datas = data_func() if sys.version_info < (3,): boleto_PDF = BoletoPDF('boleto-' + bank + '-normal-teste.pdf') boleto_HTML = BoletoHTML('boleto-' + bank + '-normal-teste.html') for boleto_data in boleto_datas: if sys.version_info < (3,): boleto_PDF.drawBoleto(boleto_data) boleto_PDF.nextPage() boleto_PDF.save() boleto_HTML.drawBoleto(boleto_data) boleto_HTML.nextPage() boleto_HTML.save()
def print_santander(): listaDadosSantander = [] for i in range(2): d = BoletoSantander() d.agencia_cedente = "1333" d.conta_cedente = "0707077" d.data_vencimento = datetime.date(2012, 7, 22) d.data_documento = datetime.date(2012, 7, 17) d.data_processamento = datetime.date(2012, 7, 17) d.valor_documento = 2952.95 d.nosso_numero = "1234567" d.numero_documento = "12345" d.ios = "0" 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.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", ""] listaDadosSantander.append(d) # Caixa Formato normal - uma pagina por folha A4 boleto = BoletoPDF("boleto-santander-formato-normal-teste.pdf") for i in range(len(listaDadosSantander)): boleto.drawBoleto(listaDadosSantander[i]) boleto.nextPage() boleto.save()
def print_santander(request): listaDadosSantander = [] for i in range(12): d = BoletoSantander() d.agencia_cedente = '1333' d.conta_cedente = '0707077' d.data_vencimento = datetime.date(2013, (i+1), 22) d.data_documento = datetime.date(2013, 7, 17) d.data_processamento = datetime.date(2012, 7, 17) d.valor_documento = 2952.95 d.nosso_numero = '1234569' d.numero_documento = '12347' d.ios = '0' 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.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", "" ] listaDadosSantander.append(d) # Caixa Formato normal - uma pagina por folha A4 buffer = StringIO() boleto = BoletoPDF(buffer) #boleto = canvas.Canvas(response) for i in range(len(listaDadosSantander)): boleto.drawBoleto(listaDadosSantander[i]) boleto.nextPage() #boleto.showPage() boleto.save() pdf_file = buffer.getvalue() response = HttpResponse(mimetype='application/pdf') response['Content-Disposition'] = 'attachment; filename=%s' % ( u'boletos_%s.pdf' % ( date.today().strftime('%Y%m%d'), ), ) response.write(pdf_file) return response
def print_boletos(modeladmin, request, queryset): buffer = StringIO() boleto_pdf = BoletoPDF(buffer) for b in queryset: b.print_pdf_pagina(boleto_pdf) boleto_pdf.nextPage() boleto_pdf.save() pdf_file = buffer.getvalue() response = HttpResponse() response['Content-Disposition'] = 'attachment; filename=%s' % ( u'boletos_%s.pdf' % ( date.today().strftime('%Y%m%d'), ), ) response.write(pdf_file) return response
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 test_pdf_rendering(self): dados = self.dados[0] bank = type(dados).__name__ filename = tempfile.mktemp(prefix="pyboleto-", suffix=".pdf") boleto = BoletoPDF(filename, True) boleto.drawBoleto(dados) boleto.nextPage() boleto.save() generated = filename + ".xml" pdftoxml(filename, generated) expected = self._get_expected(bank, generated) diff = diff_pdf_htmls(expected, generated) if diff: self.fail("Error while checking xml for %r:\n%s" % (bank, diff)) os.unlink(generated)
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, company_id, partner_id, context=None): boleto_obj = self.pool.get("boleto.boleto") fbuffer = StringIO() boleto_pdf = BoletoPDF(fbuffer) company = self.pool.get("res.company").browse(cr, uid, [company_id])[0] partner = self.pool.get("res.partner").browse(cr, uid, [partner_id])[0] partner_ad = partner.address[0] 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() boleto.cedente = company.name 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 = [ "%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_file = fbuffer.getvalue().encode("base64") fbuffer.close() return boleto_file
def print_sicredi(): listaDados = [] for i in range(2): d = BoletoSicredi('06','5','1') d.nosso_numero = '13871' d.numero_documento = '2700' d.especie_documento = 'DS' d.carteira = '1' 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 = '1234' d.conta_cedente = '12345' d.conta_cedente_dv = '6' d.inicio_nosso_numero='08' d.data_vencimento = datetime.date(2008, 6, 27) d.data_documento = datetime.date(2008, 6, 5) d.data_processamento = datetime.date(2008, 6,5) 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 = 2950.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-sicredi-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): partner = bol.sacado 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.cedente = bol.cedente.name 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') boleto.sacado = [ "%s" % bol.sacado.legal_name or bol.sacado.name, "%s, %s - %s - %s - Cep. %s" % (partner.street, partner.number, partner.district, partner.city, partner.zip), "" ] boleto_pdf.drawBoleto(boleto) boleto_pdf.nextPage() boleto_pdf.save() boleto_file = fbuffer.getvalue().encode("base64") fbuffer.close() return boleto_file
def print_banrisul(): listaDados = [] x = 0 #impressão de 10 boletos para homologação no banrisul for i in range(10): d = BoletoBanrisul() x += 1 d.nosso_numero = str(x) d.numero_documento = '2029.0201.0000.072013' d.carteira = '2' d.cedente = 'Empresa ACME LTDA' d.cedente_documento = "99.999.999/9999-99" d.cedente_endereco = "Rua de Teste, 99/9999 - Bairro de Teste - Teste - Cep. 99999-999" d.agencia_cedente = '9999' d.conta_cedente = '9999999' d.aceite = 'A' d.data_vencimento = datetime.date(2013, 7, 10) d.data_documento = datetime.date(2013, 7, 4) d.data_processamento = datetime.date(2013, 7, 4) d.instrucoes = [ "- Linha 1", "- Sr Caixa, cobrar multa de 2% após o vencimento", "- Receber até 10 dias após o vencimento", ] d.demonstrativo = [ "", ] d.valor_documento = 200.00 + i d.sacado = [ "Cliente Teste %d" % (i + 1), "Rua de Teste %d, 99/9999 - Bairro de Teste - Teste - Cep. 99999-999" % (i + 1), "" ] listaDados.append(d) boleto = BoletoPDF('boleto-banrisul-homologa.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 Empresa Empresa Empresa Empresa LTDA' d.agencia_cedente = '9999' d.conta_cedente = '99999' d.data_vencimento = datetime.date(2010, 3, 27) d.data_documento = datetime.date(2010, 02, 12) d.data_processamento = datetime.date(2010, 02, 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 ) print "Normal" boleto = BoletoPDF( 'boleto-bb-formato-normal-teste.pdf' ) for i in range(len(listaDados)): print i boleto.drawBoleto(listaDados[i]) boleto.nextPage() boleto.save()
def print_bradesco(): listaDadosBradesco = [] for i in range(2): d = BoletoBradesco() d.carteira = '06' # Contrato firmado com o Banco Bradesco d.cedente = 'DECORO ESCRITORIO DE CONTABILIDADE, AUDITORIA' d.cedente_documento = "015.682.241/0001-35" d.cedente_endereco = "Estrada São Francisco, 2008 - CJ 204, Taboão da Serra" d.agencia_cedente = '0348-1' d.conta_cedente = '24217-9' d.data_vencimento = datetime.date(2016, 3, 15) d.data_documento = datetime.date(2016, 3, 15) d.data_processamento = datetime.date(2016, 3, 15) d.instrucoes = [ "- Sr Caixa, cobrar multa de 2% após o vencimento", "- Sr Caixa, cobrar juros de 1% ao dia", ] d.demonstrativo = [ "- Serviços Contais R$ 1,00", "- Reembolso de Imposto R$ 1.00", ] d.valor_documento = 3.00 d.nosso_numero = "1112011668" d.numero_documento = "1112011668" d.sacado = [ "Clodonil Honorio Trigo", "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDadosBradesco.append(d) # Bradesco Formato carne - duas paginas por folha A4 boleto = BoletoPDF('boleto-novo.pdf', True) for i in range(0, len(listaDadosBradesco), 2): boleto.drawBoletoCarneDuplo( listaDadosBradesco[i], listaDadosBradesco[i + 1] ) boleto.nextPage() boleto.save()
def test_pdf_triplo_rendering(self): bank = type(self.dados[0]).__name__ filename = tempfile.mktemp(prefix="pyboleto-triplo-", suffix=".pdf") boleto = BoletoPDF(filename, True) for d in self.dados: boleto.drawBoleto(d) boleto.nextPage() boleto.save() generated = filename + '.xml' pdftoxml(filename, generated) expected = self._get_expected('Triplo-' + bank, generated, "xml", "xml") diff = diff_pdf_htmls(expected, generated) if diff: self.fail("Error while checking xml for %r:\n%s" % ( bank, diff)) os.unlink(generated)
def generate_invoice_booklet_pdf(invoices, user, profile): boletos = [] for invoice in invoices: d = BoletoItau() d.carteira = settings.CLUB_BANK_PORTFOLIO d.cedente = settings.CLUB_NAME d.cedente_documento = settings.CLUB_CNPJ d.cedente_endereco = settings.CLUB_ADDRESS d.agencia_cedente = settings.CLUB_BANK_AGENCY d.conta_cedente = settings.CLUB_BANK_ACCOUNT d.data_vencimento = invoice.due_date d.data_documento = datetime.date.today() d.data_processamento = datetime.date.today() d.valor = invoice.value d.valor_documento = d.valor d.nosso_numero = settings.CLUB_BANK_OUR_NUMBER d.numero_documento = d.nosso_numero d.instrucoes = settings.CLUB_CASHIER_INSTRUCTIONS d.demonstrativo = [ _('MONTHLY FEE FOR MONTH %(month)s/%(year)s') % { 'month': invoice.due_date.month, 'year': invoice.due_date.year}, ] d.sacado = [ "%s %s" % (user.first_name, user.last_name), "%s %s" % (profile.street, profile.postal_code), "%s %s %s" % (profile.street2, profile.city, profile.state_province) ] bisect.insort(boletos, d) ##boletos.append(d) pdf_buffer = StringIO() boleto_pdf = BoletoPDF(pdf_buffer, True) for i in range(0, len(boletos), 2): boleto_pdf.drawBoletoCarneDuplo( boletos[i], boletos[i + 1] ) boleto_pdf.nextPage() boleto_pdf.save() return pdf_buffer.getvalue()
def get_pdfs(cls, boletoList): """ :param boletoList: :return: """ fbuffer = StringIO() fbuffer.reset() from pyboleto.pdf import BoletoPDF boleto = BoletoPDF(fbuffer) for i in range(len(boletoList)): boleto.drawBoleto(boletoList[i]) boleto.nextPage() boleto.save() boleto_file = fbuffer.getvalue() fbuffer.close() return boleto_file
def print_sicoob(): listaDadosBancoob = [] for i in range(2): d = BoletoBancoob() d.carteira = '1' d.cedente = 'CLIENTE TESTE' d.cedente_documento = "102.323.777-01" d.cedente_endereco = "Rua Acme, 123 - Centro - Sao Paulo/SP - CEP: 12345-678" d.agencia_cedente = '4293' d.conta_cedente = '44563' d.convenio = '44563' d.modalidade_cobranca='02' d.numero_parcela='001' d.data_vencimento = datetime.date(2014, 9, 16) d.data_documento = datetime.date(2014, 6, 16) d.data_processamento = datetime.date(2014, 6, 16) 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 = 9.00 d.nosso_numero = "50149" d.numero_documento = "48958" d.sacado = [ "Cliente Teste %d" % (i + 1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDadosBancoob.append(d) # Bancoob Formato carne - duas paginas por folha A4 boleto = BoletoPDF('boleto-Bancoob-formato-carne-teste.pdf', True) for i in range(0, len(listaDadosBancoob), 2): boleto.drawBoletoCarneDuplo( listaDadosBancoob[i], listaDadosBancoob[i + 1] ) boleto.nextPage() boleto.save() # Bancoob Formato normal - uma pagina por folha A4 boleto = BoletoPDF('boleto-Bancoob-formato-normal-teste.pdf') for i in range(len(listaDadosBancoob)): boleto.drawBoleto(listaDadosBancoob[i]) boleto.nextPage() boleto.save()
def print_caixa(): listaDadosCaixa = [] for i in range(2): d = BoletoCaixaSIGCB() d.carteira = 'SR' # Contrato firmado com o Banco Bradesco 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 = '2010' d.conta_cedente = '074532' d.inicio_nosso_numero='24' d.data_vencimento = datetime.date(2011, 3, 10) d.data_documento = datetime.date(2012, 9, 22) d.data_processamento = datetime.date(2012, 9, 22) 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 = 50.00 d.nosso_numero = "605353" d.numero_documento = "5361" d.sacado = [ "Cliente Teste %d" % (i + 1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDadosCaixa.append(d) # Caixa Formato normal - uma pagina por folha A4 boleto = BoletoPDF('boleto-caixa-formato-carne-teste.pdf', True) for i in range(0, len(listaDadosCaixa), 2): boleto.drawBoletoCarneDuplo( listaDadosCaixa[i], listaDadosCaixa[i + 1] ) boleto.nextPage() boleto.save() # Caixa Formato normal - uma pagina por folha A4 boleto = BoletoPDF('boleto-caixa-formato-normal-teste.pdf') for i in range(len(listaDadosCaixa)): boleto.drawBoleto(listaDadosCaixa[i]) boleto.nextPage() boleto.save()
def print_bradesco(): listaDadosBradesco = [] for i in range(2): d = BoletoBradesco() d.carteira = '06' # Contrato firmado com o Banco Bradesco 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 = '0278-0' d.conta_cedente = '43905-3' d.data_vencimento = datetime.date(2011, 1, 25) 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 = 2158.41 d.nosso_numero = "1112011668" d.numero_documento = "1112011668" d.sacado = [ "Cliente Teste %d" % (i + 1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDadosBradesco.append(d) # Bradesco Formato carne - duas paginas por folha A4 boleto = BoletoPDF('boleto-bradesco-formato-carne-teste.pdf', True) for i in range(0, len(listaDadosBradesco), 2): boleto.drawBoletoCarneDuplo( listaDadosBradesco[i], listaDadosBradesco[i + 1] ) boleto.nextPage() boleto.save() # Bradesco Formato normal - uma pagina por folha A4 boleto = BoletoPDF('boleto-bradesco-formato-normal-teste.pdf') for i in range(len(listaDadosBradesco)): boleto.drawBoleto(listaDadosBradesco[i]) boleto.nextPage() boleto.save()
def print_brb(): listaDados = [] for i in range(2): d = BoletoBrb() d.cedente = "Yzx COLOR" d.cedente_documento = "01.689.998/0001-02" d.cedente_endereco = "RUA XXXXXX BAIRRO YYYY BRASILIA YYYYYYY" d.agencia_cedente = "106" d.conta_cedente = "6000970" d.instrucoes = [ "- Instruções de Responsabilidade do Cedente", "- Protestar após 5 dias de vencido,", "- Juros de Mora de 2,00 % ao Mês,", "- Cobrar multa de 2,00% após o vencimento.", ] ########## Boleto ######### d.convenio = "1" d.especie_documento = "NP" d.numero_documento = "8466" d.nosso_numero = "082983" d.data_vencimento = datetime.date(2012, 8, 21) d.data_documento = datetime.date(2012, 7, 28) d.data_processamento = datetime.date(2012, 8, 1) d.demonstrativo = ["- Venda Nro. 38310 FASEP ", "- Sol Formaturas 3233-9898"] d.valor_documento = 203.70 #### Geração de Numeração sequencial para homologação dos boletos ### d.numero_documento = str(int(d.numero_documento) + i) d.nosso_numero = str(int(d.nosso_numero) + i) #### d.sacado = [ "Cliente Teste xx %02d x ( %s )x-- (%s ) ---" % (i, d.numero_documento, d.nosso_numero), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "", ] listaDados.append(d) boleto = BoletoPDF("boleto-brb-formato-carne-teste.pdf", True) for i in range(0, len(listaDados), 2): boleto.drawBoletoCarneDuplo(listaDados[i + 1], listaDados[i]) boleto.nextPage() boleto.save() boleto = BoletoPDF("boleto-brb-formato-normal-teste.pdf") for i in range(len(listaDados)): boleto.drawBoleto(listaDados[i]) boleto.nextPage() boleto.save() boleto = BoletoHTML("boleto-brb-formato-normal-teste.html") for i in range(len(listaDados)): boleto.drawBoleto(listaDados[i]) boleto.nextPage() boleto.save()
def processa_dados_pagamento(self): banco = self.malote.banco_nome convenio = self.malote.banco_convenio boleto = None if banco == u'Bradesco': boleto = BoletoBradesco() elif banco == u'Banco Itaú': boleto = BoletoItau() elif banco == u'Banco do Brasil': boleto = BoletoBB(len(convenio), 2) elif banco == u'Caixa Econômica': boleto = BoletoCaixaSIGCB() elif banco == u'Santander': boleto = BoletoSantander() elif banco == u'HSBC': boleto = BoletoHsbc() if not boleto: raise BoletoInvalido(u'Boleto para {} ainda não implementado.'.format(banco)) carteira = self.malote.carteira_numero boleto.carteira = carteira.encode('utf-8') boleto.cedente = self.malote.empresa_beneficiario.encode('utf-8') tamanho_documento = len(self.malote.empresa_cnpj) tipo_documento = 'CNPJ' if tamanho_documento == 14 else 'CPF' documento = self.formatador.formata_cpf_cnpj(self.malote.empresa_cnpj.encode('utf-8')) boleto.cedente_documento = documento documento = ' / {}: {}'.format(tipo_documento, documento) limite = 80 - len(documento) cidade_estado = u', {}-{}'.format(self.malote.empresa_cidade, self.malote.empresa_estado).encode('utf-8') limite -= len(cidade_estado) rua = self.malote.empresa_endereco.encode('utf-8')[:limite] endereco = '{}{}{}'.format(rua, cidade_estado, documento) boleto.cedente_endereco = endereco boleto.agencia_cedente = self.malote.banco_agencia.encode('utf-8') boleto.conta_cedente = self.malote.banco_conta.encode('utf-8') if convenio: if banco in [u'Santander', u'HSBC', u'Bradesco', u'Caixa Econômica']: boleto.conta_cedente = convenio.encode('utf-8') else: boleto.convenio = convenio boleto.data_vencimento = self.malote.data_vencimento boleto.data_documento = self.malote.data_documento boleto.data_processamento = self.malote.data_processamento boleto.instrucoes = [self.malote.linha_1, self.malote.linha_2, self.malote.linha_3] boleto.instrucoes = [instrucao and instrucao.encode('utf-8') or instrucao for instrucao in boleto.instrucoes] boleto.valor_documento = self.malote.valor_documento sacado = self.malote.sacado if not isinstance(sacado, list): sacado = [sacado] boleto.sacado = sacado boleto.sacado = [self.formatador.string_para_ascii(texto) or texto for texto in boleto.sacado] boleto.sacado_documento = str(self.formatador.formata_cpf_cnpj(self.malote.sacado_documento)) boleto.numero_documento = str(self.malote.numero_documento) if self.malote.nosso_numero: boleto.nosso_numero = str(self.malote.nosso_numero) else: boleto.nosso_numero = str(self.malote.numero_documento) linha_digitavel = boleto.linha_digitavel if self.malote.formato == entidades.TipoBoleto.linha_digitavel: self.resultado = {'dados': linha_digitavel} elif self.malote.formato == entidades.TipoBoleto.html: f_html = StringIO.StringIO() boleto_html = BoletoHTML(f_html) boleto_html.drawBoleto(boleto) boleto_html.save() f_html.seek(0) self.resultado = {'dados': f_html.read()} elif self.malote.formato == entidades.TipoBoleto.pdf: f_pdf = StringIO.StringIO() boleto_pdf = BoletoPDF(f_pdf) boleto_pdf.drawBoleto(boleto) boleto_pdf.save() f_pdf.seek(0) self.resultado = {'dados': unicode(f_pdf.read(), 'ISO-8859-1'), 'pago': True}
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 print_bankofamerica(): listaDadosBankOfAmerica = [] for i in range(2): d = BoletoBankOfAmerica() d.carteira = '02' 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 = '0278-0' d.conta_cedente = '43905-3' d.data_vencimento = datetime.date(2011, 1, 25) 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 = 2158.41 d.nosso_numero = "1112011668" d.numero_documento = "1112011668" d.sacado = [ "Cliente Teste %d" % (i + 1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDadosBankOfAmerica.append(d) boleto = BoletoPDF('boleto-bankofamerica-formato-carne-teste.pdf', True) for i in range(0, len(listaDadosBankOfAmerica), 2): boleto.drawBoletoCarneDuplo(listaDadosBankOfAmerica[i], listaDadosBankOfAmerica[i + 1]) boleto.nextPage() boleto.save() boleto = BoletoPDF('boleto-bankofamerica-formato-normal-teste.pdf') for i in range(len(listaDadosBankOfAmerica)): boleto.drawBoleto(listaDadosBankOfAmerica[i]) boleto.nextPage() boleto.save()
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_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 print_sicoob(): listaDadosBancoob = [] for i in range(2): d = BoletoBancoob() d.carteira = '1' d.cedente = 'CLIENTE TESTE' d.cedente_documento = "102.323.777-01" d.cedente_endereco = "Rua Acme, 123 - Centro - Sao Paulo/SP - CEP: 12345-678" d.agencia_cedente = '4293' d.conta_cedente = '44563' d.convenio = '44563' d.modalidade_cobranca = '02' d.numero_parcela = '001' d.data_vencimento = datetime.date(2014, 9, 16) d.data_documento = datetime.date(2014, 6, 16) d.data_processamento = datetime.date(2014, 6, 16) 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 = 9.00 d.nosso_numero = "50149" d.numero_documento = "48958" d.sacado = [ "Cliente Teste %d" % (i + 1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDadosBancoob.append(d) # Bancoob Formato carne - duas paginas por folha A4 boleto = BoletoPDF('boleto-Bancoob-formato-carne-teste.pdf', True) for i in range(0, len(listaDadosBancoob), 2): boleto.drawBoletoCarneDuplo(listaDadosBancoob[i], listaDadosBancoob[i + 1]) boleto.nextPage() boleto.save() # Bancoob Formato normal - uma pagina por folha A4 boleto = BoletoPDF('boleto-Bancoob-formato-normal-teste.pdf') for i in range(len(listaDadosBancoob)): boleto.drawBoleto(listaDadosBancoob[i]) boleto.nextPage() boleto.save()
def print_banconordeste(): listaDadosBancoNordeste = [] for i in range(2): d = BoletoBancoNordeste() d.carteira = '51' # Contrato firmado com o Banco BancoNordeste d.cedente = 'CONNECT' d.cedente_documento = "102.323.777-01" d.cedente_endereco = "Rua Acme, 123 - Centro - Sao Paulo/SP - CEP: 12345-678" d.agencia_cedente = '0226' d.conta_cedente = '0000085-0' d.data_vencimento = datetime.date(2014, 6, 10) d.data_documento = datetime.date(2014, 4, 8) d.data_processamento = datetime.date(2015, 4, 8) 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 = 65.00 d.nosso_numero = "0055298" d.numero_documento = "55298" d.sacado = [ "Cliente Teste %d" % (i + 1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDadosBancoNordeste.append(d) # BancoNordeste Formato carne - duas paginas por folha A4 boleto = BoletoPDF('boleto-BancoNordeste-formato-carne-teste.pdf', True) for i in range(0, len(listaDadosBancoNordeste), 2): boleto.drawBoletoCarneDuplo(listaDadosBancoNordeste[i], listaDadosBancoNordeste[i + 1]) boleto.nextPage() boleto.save() # BancoNordeste Formato normal - uma pagina por folha A4 boleto = BoletoPDF('boleto-BancoNordeste-formato-normal-teste.pdf') for i in range(len(listaDadosBancoNordeste)): boleto.drawBoleto(listaDadosBancoNordeste[i]) boleto.nextPage() boleto.save()
def print_caixa(): listaDadosCaixa = [] for i in range(2): d = BoletoCaixaSIGCB() d.carteira = 'SR' # Contrato firmado com o Banco Bradesco 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 = '2010' d.conta_cedente = '074532' d.inicio_nosso_numero = '24' d.data_vencimento = datetime.date(2011, 3, 10) d.data_documento = datetime.date(2012, 9, 22) d.data_processamento = datetime.date(2012, 9, 22) 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 = 50.00 d.nosso_numero = "605353" d.numero_documento = "5361" d.sacado = [ "Cliente Teste %d" % (i + 1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDadosCaixa.append(d) # Caixa Formato normal - uma pagina por folha A4 boleto = BoletoPDF('boleto-caixa-formato-carne-teste.pdf', True) for i in range(0, len(listaDadosCaixa), 2): boleto.drawBoletoCarneDuplo(listaDadosCaixa[i], listaDadosCaixa[i + 1]) boleto.nextPage() boleto.save() # Caixa Formato normal - uma pagina por folha A4 boleto = BoletoPDF('boleto-caixa-formato-normal-teste.pdf') for i in range(len(listaDadosCaixa)): boleto.drawBoleto(listaDadosCaixa[i]) boleto.nextPage() boleto.save()
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 print_banconordeste(): listaDadosBancoNordeste = [] for i in range(2): d = BoletoBancoNordeste() d.carteira = '51' # Contrato firmado com o Banco BancoNordeste d.cedente = 'CONNECT' d.cedente_documento = "102.323.777-01" d.cedente_endereco = "Rua Acme, 123 - Centro - Sao Paulo/SP - CEP: 12345-678" d.agencia_cedente = '0226' d.conta_cedente = '0000085' d.conta_cednte_dv = '0' d.data_vencimento = datetime.date(2014, 6, 10) d.data_documento = datetime.date(2014, 4, 8) d.data_processamento = datetime.date(2015, 4, 8) 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 = 65.00 d.nosso_numero = "0055298" d.numero_documento = "55298" d.sacado = [ "Cliente Teste %d" % (i + 1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDadosBancoNordeste.append(d) # BancoNordeste Formato carne - duas paginas por folha A4 boleto = BoletoPDF('boleto-BancoNordeste-formato-carne-teste.pdf', True) for i in range(0, len(listaDadosBancoNordeste), 2): boleto.drawBoletoCarneDuplo( listaDadosBancoNordeste[i], listaDadosBancoNordeste[i + 1] ) boleto.nextPage() boleto.save() # BancoNordeste Formato normal - uma pagina por folha A4 boleto = BoletoPDF('boleto-BancoNordeste-formato-normal-teste.pdf') for i in range(len(listaDadosBancoNordeste)): boleto.drawBoleto(listaDadosBancoNordeste[i]) boleto.nextPage() boleto.save()
def make_boleto(self, dias): self.boleto.max_dias_apos_vencimento = dias self.boleto.boleto_desenhado = BoletoPDF('teste-recebimento.pdf') self.boleto.boleto_desenhado.drawBoleto(self.boleto)
def print_test(): listaDadosReal = [] for i in range(2): d = BoletoReal() d.carteira = '57' # Contrato firmado com o Banco Real d.cedente = 'Empresa Empresa Empresa Empresa Empresa LTDA' d.agencia_cedente = '0531' d.conta_cedente = '5705853' d.data_vencimento = datetime.date(2010, 3, 27) d.data_documento = datetime.date(2010, 02, 12) d.data_processamento = datetime.date(2010, 02, 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 = 5.00 d.nosso_numero = "%d" % (i+2) d.numero_documento = "%d" % (i+2) d.sacado = [ "Cliente Teste %d" % (i+1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDadosReal.append( d ) listaDadosBradesco = [] for i in range(2): d = BoletoBradesco() d.carteira = '06' # Contrato firmado com o Banco Bradesco d.cedente = 'Empresa Empresa Empresa Empresa Empresa LTDA' d.agencia_cedente = '0278-0' d.conta_cedente = '43905-3' d.data_vencimento = datetime.date(2011, 1, 25) d.data_documento = datetime.date(2010, 02, 12) d.data_processamento = datetime.date(2010, 02, 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 = 2158.41 d.nosso_numero = "1112011668" d.numero_documento = "1112011668" d.sacado = [ "Cliente Teste %d" % (i+1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDadosBradesco.append( d ) listaDadosCaixa = [] for i in range(2): d = BoletoCaixa() d.carteira = 'SR' # Contrato firmado com o Banco Bradesco d.cedente = 'Empresa Empresa Empresa Empresa Empresa LTDA' d.agencia_cedente = '1565' d.conta_cedente = '414-3' d.data_vencimento = datetime.date(2010, 3, 27) d.data_documento = datetime.date(2010, 02, 12) d.data_processamento = datetime.date(2010, 02, 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.nosso_numero = "%d" % (i+2) d.numero_documento = "%d" % (i+2) d.sacado = [ "Cliente Teste %d" % (i+1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDadosCaixa.append( d ) # Bradesco Formato carne - duas paginas por folha A4 print "Carne" boleto = BoletoPDF( 'boleto-bradesco-formato-carne-teste.pdf', True ) for i in range(0,len(listaDadosBradesco),2): print i, i+1 boleto.drawBoletoCarneDuplo( listaDadosBradesco[i], listaDadosBradesco[i+1] ) boleto.nextPage() boleto.save() # Bradesco Formato normal - uma pagina por folha A4 print "Normal" boleto = BoletoPDF( 'boleto-bradesco-formato-normal-teste.pdf' ) for i in range(len(listaDadosBradesco)): print i boleto.drawBoleto(listaDadosBradesco[i]) boleto.nextPage() boleto.save() # Real Formato normal - uma pagina por folha A4 print "Normal" boleto = BoletoPDF( 'boleto-real-formato-normal-teste.pdf' ) for i in range(len(listaDadosReal)): print i boleto.drawBoleto(listaDadosReal[i]) boleto.nextPage() boleto.save() # Caixa Formato normal - uma pagina por folha A4 print "Carne" boleto = BoletoPDF( 'boleto-caixa-formato-carne-teste.pdf', True ) for i in range(0,len(listaDadosCaixa),2): print i, i+1 boleto.drawBoletoCarneDuplo( listaDadosCaixa[i], listaDadosCaixa[i+1] ) boleto.nextPage() boleto.save() # Caixa Formato normal - uma pagina por folha A4 print "Normal" boleto = BoletoPDF( 'boleto-caixa-formato-normal-teste.pdf' ) for i in range(len(listaDadosCaixa)): print i boleto.drawBoleto(listaDadosCaixa[i]) boleto.nextPage() boleto.save() print "Ok"
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
"- Linha 1", "- Sr Caixa, cobrar multa de 2% apos o vencimento", "- Receber ate 10 dias apos o vencimento", ] d.demonstrativo = [ "- Servico Teste R$ 5,00", "- Total R$ 5,00", ] d.valor_documento = 255.00 d.sacado = [ "Cliente Teste", "Rua Desconhecida, 00/0000 - Nao Sei - Cidade - Cep. 00000-000", "" ] import io buf = io.BytesIO() boleto = BoletoPDF(buf) boleto.drawBoleto(d) boleto.nextPage() boleto.save() pdf_buffer = buf.getbuffer() file = open("boleto_buffer.pdf", "wb") file.write(pdf_buffer)
def print_bradesco(): listaDadosBradesco = [] for i in range(2): d = BoletoBradesco() d.carteira = "06" # Contrato firmado com o Banco Bradesco 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 = "0278-0" d.conta_cedente = "43905-3" d.data_vencimento = datetime.date(2011, 1, 25) 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 = 2158.41 d.nosso_numero = "1112011668" d.numero_documento = "1112011668" d.sacado = [ "Cliente Teste %d" % (i + 1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "", ] listaDadosBradesco.append(d) # Bradesco Formato carne - duas paginas por folha A4 boleto = BoletoPDF("boleto-bradesco-formato-carne-teste.pdf", True) for i in range(0, len(listaDadosBradesco), 2): boleto.drawBoletoCarneDuplo(listaDadosBradesco[i], listaDadosBradesco[i + 1]) boleto.nextPage() boleto.save() # Bradesco Formato normal - uma pagina por folha A4 boleto = BoletoPDF("boleto-bradesco-formato-normal-teste.pdf") for i in range(len(listaDadosBradesco)): boleto.drawBoleto(listaDadosBradesco[i]) boleto.nextPage() boleto.save()