Exemple #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()
Exemple #2
0
    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
Exemple #3
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