Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
    def generate_boleto(self, cr, user, invoice, conta, linha):
        
        _logger.info('Invoice: '+str(invoice.partner_id.cnpj_cpf))
#        if conta.bank.bic == "001":
        fbuffer = StringIO()
        boleto_pdf = BoletoPDF(fbuffer)

        boleto = BoletoBB(7, 2)

        try:
            juros_dia = float(linha[0]['ValorJurosDia'])
        except ValueError:
            juros_dia = 0
            
        try:
            val_multa = float(linha[0]['ValorMulta'])
        except ValueError:
            val_multa = 0
           
        _logger.info('Após vencimento, multa de R$ '+str(val_multa)+' e mora de R$ '+str(juros_dia))
        
        MsgProtesto = linha[0]['MsgProtesto']

        MsgSacador = False
        NomeSacador = False
        DocSacador =  False


        if linha[0]['IndMensagemSacAva'] == 'A':
            if linha[0]['DocSacador'] and linha[0]['NomeSacador']:
                MsgSacador = True
                NomeSacador = linha[0]['NomeSacador']
                DocSacador =  linha[0]['DocSacador'] 
        
        txtDemons = ""
        if linha[0]['txtDemonstra']:
            txtDemons = linha[0]['txtDemonstra']
            
        #boleto_obj = self.pool.get('boleto.boleto')
        
        boleto.cedente = str(user.company_id.partner_id.legal_name)
        boleto.cedente_logradouro = user.company_id.partner_id.street + ', ' + user.company_id.partner_id.number
        boleto.cedente_cidade = 'Curitiba' #user.company_id.partner_id.l10n_br_city.name
        boleto.cedente_uf = 'PR'
        boleto.cedente_bairro = 'Centro'
        boleto.cedente_cep = str(user.company_id.partner_id.zip)
        
        boleto.sacado_nome = (invoice.partner_id.legal_name or invoice.partner_id.name)
        boleto.sacado_documento = str(invoice.partner_id.cnpj_cpf)
        boleto.sacado_cidade = invoice.partner_id.l10n_br_city_id.name
        boleto.sacado_uf = invoice.partner_id.state_id.code
        boleto.sacado_endereco = "%s, %s" % (invoice.partner_id.street, invoice.partner_id.number)
        boleto.sacado_bairro = invoice.partner_id.district
        boleto.sacado_cep = invoice.partner_id.zip
        
        if MsgSacador is True:
            boleto.sacador_documento = DocSacador
            boleto.sacador_nome = NomeSacador

        boleto.cedente_documento = str(user.company_id.partner_id.cnpj_cpf)
        boleto.carteira = str(conta.cod_carteira)
        boleto.agencia_cedente = conta.bra_number
        boleto.conta_cedente = conta.acc_number
        boleto.data_vencimento = datetime.date(datetime.strptime(invoice.date_due, '%Y-%m-%d'))
        boleto.data_documento = datetime.date(datetime.strptime(invoice.date_invoice, '%Y-%m-%d'))
        boleto.data_processamento = date.today()
        boleto.valor_documento = str(invoice.amount_total)
        #boleto.valor = '100'
        boleto.nosso_numero = invoice.number
        boleto.numero_documento = str(invoice.number)
        boleto.convenio = str(conta.nro_convenio)
        
        Linha_Juros = ''
        if juros_dia > 0 and val_multa > 0:
            Linha_Juros = u'Após vencimento, multa de R$ %.2f e mora de R$ %.2f ao dia.\r\n' % (val_multa,juros_dia)
        
        if MsgProtesto:
            Linha_Juros = Linha_Juros + MsgProtesto + '\r\n'
        
        if txtDemons:
            Linha_Juros = Linha_Juros + txtDemons  + '\r\n'
            boleto.demonstrativo = txtDemons  + '\r\n'
       
        if conta.instrucoes:
            boleto.instrucoes = Linha_Juros + conta.instrucoes + '\r\n'
        else:
            boleto.instrucoes = Linha_Juros
        
        
        boleto.especie = 'R$'
        boleto.especie_documento = 'DM'
        boleto.aceite = 'N'
        boleto.quantidade = ''
        #boleto.nosso_numero = 1
        boleto.sacado = [
                         u"%s - %s" % (invoice.partner_id.cnpj_cpf,linha[0]['NomeSacado']),
                         u"%s - %s - %s - %s - Cep. %s" % (linha[0]['EnderecoSacado'], linha[0]['BairroSacado'], 
                                                           linha[0]['CidadeSacado'], linha[0]['UfCidadeSacado'], 
                                                           linha[0]['CepSacado']),
                         u'',]

#             boleto.sacado = [
#                 "%s" % (invoice.partner_id.legal_name or invoice.partner_id.name),
#                 "%s, %s - %s - %s - Cep. %s" % (invoice.partner_id.street, invoice.partner_id.number, invoice.partner_id.district, invoice.partner_id.city, invoice.partner_id.zip),
#                 ""
#                 ]
#         nosso_numero = str(boleto.format_nosso_numero())
#         linha[0]['NossoNumero'] = nosso_numero[:17]
#         _logger.info('NossoNumero: '+str(boleto.format_nosso_numero()))

        boleto_pdf.drawBoleto(boleto)
        boleto_pdf.nextPage()

        boleto_pdf.save()

        fbuffer.seek(0)
        conteudo = fbuffer.read()
        res = conteudo
        return res