def print_itau(): d = BoletoItau() d.carteira = '175' 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 = '1565' d.conta_cedente = '32414' 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.valor = 255.00 d.valor_documento = d.valor d.nosso_numero = "80195250" d.numero_documento = d.nosso_numero d.instrucoes = [ "1 - Sr. Caixa, cobrar multa de 2% após o vencimento", "2 - Receber até 10 dias após o vencimento", ] d.demonstrativo = [ "1 - Serviço Teste R$ 255,00", "2 - Total R$ 255,00", ] d.sacado = [ "John Doe", "Sesame Street, w/o number", "Nowhere Land, NL - 00000-000" ] print_teste_boleto(d, 'itau')
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 print_itau(): listaDadosCaixa = [] for i in range(2): d = BoletoItau() d.carteira = '18' # 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 = '1565' d.conta_cedente = '414-3' 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.nosso_numero = "801978" d.numero_documento = "8019525086" d.sacado = [ "Cliente Teste %d" % (i + 1), "Rua Desconhecida, 00/0000 - Não Sei - Cidade - Cep. 00000-000", "" ] listaDadosCaixa.append(d) # Itau Formato normal - uma pagina por folha A4 boleto = BoletoPDF('boleto-itau-formato-carne-teste.pdf', True) for i in range(0, len(listaDadosCaixa), 2): boleto.drawBoletoCarneDuplo(listaDadosCaixa[i], listaDadosCaixa[i + 1]) boleto.nextPage() boleto.save() # Itau Formato normal - uma pagina por folha A4 boleto = BoletoPDF('boleto-itau-formato-normal-teste.pdf') for i in range(len(listaDadosCaixa)): boleto.drawBoleto(listaDadosCaixa[i]) boleto.nextPage() boleto.save()
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_data_itau(): listaDados = [] for i in range(2): d = BoletoItau() d.nosso_numero = '87654' d.numero_documento = '27.030195.10' 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 gerar_boleto_itau(self, cr, uid, rec_account_move_line, context=None): obj_ir_attachment = self.pool.get('ir.attachment') obj_account_move_line = self.pool.get('account.move.line') if rec_account_move_line.payment_type.type_banking_billing == 'REG' or \ rec_account_move_line.payment_type.type_banking_billing == 'SRG': if not rec_account_move_line.payment_type.sequence_our_number: raise osv.except_osv( _('Atenção!'), _('Configure a sequencia do nosso número no tipo de pagamento' )) our_number = self.pool.get('ir.sequence').next_by_id( cr, uid, rec_account_move_line.payment_type.sequence_our_number.id) obj_account_move_line.write(cr, uid, rec_account_move_line.id, {'our_number': our_number}, context=context) if not rec_account_move_line.our_number: raise osv.except_osv( _('Error'), _('Error! Confirmation file has not validated by the bank!')) instruct = rec_account_move_line.payment_type.bank_account.instructions if instruct: fine = rec_account_move_line.payment_type.bank_account.monthly_fine interest = rec_account_move_line.payment_type.bank_account.monthly_interest value_fine = rec_account_move_line.debit / 100 value_fine = value_fine * fine value_fine = round(value_fine, 2) value_fine = str(value_fine) value_interest = rec_account_move_line.debit / 100 value_interest = value_interest * interest value_interest = round(value_interest, 2) value_interest = str(value_interest) instruct = instruct.replace('%(monthly_fine)s', value_fine) instruct = instruct.replace('%(monthly_interest)s', value_interest) if rec_account_move_line.partner_id.street2: sacado_endereco_1 = '%s, %s - %s - %s' % ( rec_account_move_line.partner_id.street, rec_account_move_line.partner_id.number, rec_account_move_line.partner_id.street2, rec_account_move_line.partner_id.district) else: sacado_endereco_1 = '%s, %s - %s' % ( rec_account_move_line.partner_id.street, rec_account_move_line.partner_id.number, rec_account_move_line.partner_id.district) sacado_endereco_2 = '%s - %s/%s' % ( rec_account_move_line.partner_id.zip, rec_account_move_line.partner_id.city, rec_account_move_line.partner_id.state_id.code) cedente_endereco = '%s, %s - %s - %s/%s' % ( rec_account_move_line.company_id.street, rec_account_move_line.company_id.number, rec_account_move_line.company_id.zip, rec_account_move_line.company_id.city, rec_account_move_line.company_id.state_id.code) cedente = rec_account_move_line.company_id.legal_name if len(cedente) > 40: difference = len(cedente) - 40 cedente = cedente[:len(cedente) - difference] sacado_nome = rec_account_move_line.partner_id.legal_name if len(sacado_nome) > 40: difference = len(sacado_nome) - 40 sacado_nome = sacado_nome[:len(sacado_nome) - difference] error = [] if not rec_account_move_line.company_id.partner_id.cnpj_cpf: error.append('CPF/CNPJ (cedente)') if not rec_account_move_line.payment_type.bank_col_service and not rec_account_move_line.payment_type.bank_account.bank_col_service: error.append('Carteira Bancaria') if error: raise orm.except_orm( _('Error'), _('Missing data for generating the payment slip:\n%s') % error) lista_dados_itau = [] obj_boleto = BoletoItau() obj_boleto.cedente = cedente obj_boleto.cedente_documento = rec_account_move_line.company_id.partner_id.cnpj_cpf obj_boleto.cedente_endereco = cedente_endereco obj_boleto.agencia_cedente = rec_account_move_line.payment_type.bank_account.bra_number obj_boleto.conta_cedente = rec_account_move_line.payment_type.bank_account.acc_number obj_boleto.data_vencimento = datetime.date( datetime.strptime(rec_account_move_line.date_maturity, '%Y-%m-%d')) obj_boleto.data_processamento = date.today() obj_boleto.data_documento = datetime.date( datetime.strptime(rec_account_move_line.date, '%Y-%m-%d')) obj_boleto.instrucoes = instruct or '' obj_boleto.valor_documento = rec_account_move_line.debit obj_boleto.nosso_numero = rec_account_move_line.our_number obj_boleto.numero_documento = rec_account_move_line.name obj_boleto.tipo_boleto = '1' obj_boleto.carteira = rec_account_move_line.payment_type.bank_col_service or rec_account_move_line.payment_type.bank_account.bank_col_service obj_boleto.demonstrativo = '' obj_boleto.sacado = [ '%s' % sacado_nome, '%s' % sacado_endereco_1, '%s' % sacado_endereco_2 ] lista_dados_itau.append(obj_boleto) if obj_boleto.tipo_boleto == '1': w_file = tempfile.NamedTemporaryFile(prefix='Slip', suffix='.pdf', delete=False) w_slip = BoletoPDF(w_file) for i in range(len(lista_dados_itau)): w_slip.drawBoleto(lista_dados_itau[i]) w_slip.nextPage() w_slip.save() due_date = datetime.date( datetime.strptime(rec_account_move_line.date_maturity, '%Y-%m-%d')) filename = 'BOL_%s_%04d%02d%02d.pdf' % ( rec_account_move_line.partner_id.name, due_date.year, due_date.month, due_date.day) w_file.seek(0) fl = w_file.read() src_ir_attachment = obj_ir_attachment.search( cr, uid, [('res_id', '=', rec_account_move_line.id)]) if src_ir_attachment: attach_val = { 'name': filename, 'datas_fname': filename, 'datas': base64.b64encode(fl) } obj_ir_attachment.write(cr, uid, src_ir_attachment, attach_val, context=context) else: attach_vals = { 'name': filename, 'datas_fname': filename, 'datas': base64.b64encode(fl), 'file_type': format, 'res_model': 'account.move.line', 'res_id': rec_account_move_line.id } obj_ir_attachment.create(cr, uid, attach_vals, context=context) pay_slip_vals = { 'filename': filename, 'slip_create_date': date.today() } obj_account_move_line.write(cr, uid, rec_account_move_line.id, pay_slip_vals, context=context) w_file.close()