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_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 test_html_rendering(self): dados = self.dados[0] bank = type(dados).__name__ filename = tempfile.mktemp(prefix="pyboleto-", suffix=".html") boleto = BoletoHTML(filename) boleto.drawBoleto(dados) boleto.nextPage() boleto.save() expected = self._get_expected(bank, filename, 'HTML') diff = diff_pdf_htmls(expected, filename) if diff: self.fail("Error while checking html for %r:\n%s" % (bank, diff)) os.unlink(filename)
def test_html_rendering(self): dados = self.dados[0] bank = type(dados).__name__ filename = tempfile.mktemp(prefix="pyboleto-", suffix=".html") boleto = BoletoHTML(filename) boleto.drawBoleto(dados) boleto.nextPage() boleto.save() expected = self._get_expected(bank, filename, "HTML") diff = diff_pdf_htmls(expected, filename) if diff: self.fail("Error while checking html for %r:\n%s" % (bank, diff)) os.unlink(filename)
def test_html_rendering(self): if "dados" not in dir(self): return dados = self.dados[0] bank = type(dados).__name__ filename = tempfile.mktemp(prefix="pyboleto-", suffix=".html") boleto = BoletoHTML(filename, False) boleto.drawBoleto(dados) boleto.nextPage() boleto.save() generated = filename expected = self._get_expected(bank, generated, f_type='html') diff = diff_files(expected, generated) os.unlink(generated) if diff: self.fail("Error while checking xml for %r:\n%s" % (bank, diff))
def print_boleto_html(uuid): 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 %s" % uuid, "Rua Desconhecida, 00/0000 - Não Sei - Cidade - \ Cep. 00000-000", "" ] boleto_HTML = BoletoHTML('boleto/' + uuid + '.html') boleto_HTML.drawBoleto(d) boleto_HTML.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 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 home(request): invoice = get_invoice('', 255.00, '') invoice_HTML = BoletoHTML('boleto-bb-normal-teste.html') invoice_HTML.drawBoleto(invoice) invoice_HTML.save() return render_to_response('home.html', context_instance=RequestContext(request))