示例#1
0
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')
示例#2
0
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()
示例#3
0
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')
示例#4
0
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()
示例#5
0
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
示例#7
0
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
示例#8
0
    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()