Exemplo n.º 1
0
    def create(self, payment):
        boleto = BoletoBB(config.BOLETO_TIPO_CONVENIO, None)

        boleto.nosso_numero      = payment.our_number
        boleto.convenio          = config.BOLETO_CONVENIO
        boleto.numero_documento  = "{}{}".format(boleto.convenio, boleto.nosso_numero)
        boleto.especie_documento = 'DM'

        boleto.carteira          = config.BOLETO_CARTEIRA
        boleto.agencia_cedente   = config.BOLETO_AGENCIA
        boleto.conta_cedente     = config.BOLETO_CONTA # TODO: what about digito-verificador?
        boleto.cedente_documento = config.BOLETO_CNPJ
        boleto.cedente_endereco  = config.BOLETO_ENDERECO
        boleto.cedente           = config.BOLETO_EMPRESA

        boleto.data_vencimento    = payment.due_date
        boleto.data_documento     = date.today()
        boleto.data_processamento = date.today()

        boleto.instrucoes    = self._build_instructions()
        boleto.demonstrativo = self._build_description(payment)
        boleto.sacado        = self._build_sacado(payment)

        boleto.valor_documento = payment.amount
        return boleto
Exemplo n.º 2
0
def get_invoice(bill_to, amount, due_date):
    d = BoletoBB(7, 2)
    d.nosso_numero = '0000000127'
    d.numero_documento = ''
    d.convenio = '2301731'
    d.especie_documento = 'DM'

    d.carteira = '18'
    d.cedente = 'Confederação Brasileira de Karatê-Dô Tradicional'
    d.cedente_documento = "35.795.707/0001-16"
    d.cedente_endereco = "Rua Acme, 123 - Centro - Sao Paulo/SP - CEP: 12345-678"
    d.agencia_cedente = '1458'
    d.conta_cedente = '189448'

    d.data_vencimento = datetime.date(2011, 10, 25)
    d.data_documento = datetime.date(2010, 2, 12)
    d.data_processamento = datetime.date(2010, 2, 12)

    d.instrucoes = [
        "- NÃO RECEBER APÓS 5 DIAS DE VENCIDO",
        "- APÓS O VENCIMENTO COBRAR 0,03% POR DIA DE ATRASO",
        "- APÓS O VENCIMENTO COBRAR MULTA DE 2%",
        ]
    d.demonstrativo = [
        "- Anuidades",
        ]
    d.valor_documento = 120.00

    d.sacado = [
        "Cliente Teste",
        ""
        ]
    return d
Exemplo n.º 3
0
def get_data_bb():
    listaDados = []
    for i in range(2):
        d = BoletoBB(7, 2)
        d.nosso_numero = "87654"
        d.numero_documento = "27.030195.10"
        d.convenio = "7777777"
        d.especie_documento = "DM"

        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
Exemplo n.º 4
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()
Exemplo n.º 5
0
def print_bb():
    listaDados = []
    for i in range(2):
        d = BoletoBB(7, 2)
        d.nosso_numero = '87654'
        d.numero_documento = '27.030195.10'
        d.convenio = '7777777'
        d.especie_documento = 'DM'

        d.carteira = '18'
        d.cedente = 'Educarinova'
        d.cedente_documento = "102.323.777-01"
        d.cedente_endereco = ("Rua Acme, 123 - " +
                              "Centro - Sao Paulo/SP - " +
                              "CEP: 12345-678")
        d.agencia_cedente = '9999111'
        d.conta_cedente = '999991111'

        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 Desconhecidaasdasd, 00/0000 - Não Sei - Cidade - Cep. 00000-000",
            ""
            ]
        listaDados.append(d)

    boleto = BoletoPDF('boleto-bb-formato-normal-teste.pdf')
    for i in range(len(listaDados)):
        boleto.drawBoleto(listaDados[i])
        boleto.nextPage()
    boleto.save()
Exemplo n.º 6
0
def print_bb():
    listaDados = []
    for i in range(2):
        d = BoletoBB(7,2)
        d.nosso_numero = '87654'
        d.numero_documento = '27.030195.10'
        d.convenio = '7777777'
        d.especie_documento = 'DM'

        d.carteira = '18'
        d.cedente = 'Empresa Empresa Empresa Empresa Empresa LTDA'
        d.agencia_cedente = '9999'
        d.conta_cedente = '99999'

        d.data_vencimento = datetime.date(2010, 3, 27)
        d.data_documento = datetime.date(2010, 02, 12)
        d.data_processamento = datetime.date(2010, 02, 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 )

    print "Normal"
    boleto = BoletoPDF( 'boleto-bb-formato-normal-teste.pdf' )
    for i in range(len(listaDados)):
        print i
        boleto.drawBoleto(listaDados[i])
        boleto.nextPage()
    boleto.save()
Exemplo n.º 7
0
def print_bb():
    listaDados = []
    for i in range(2):
        d = BoletoBB(7, 2)
        d.nosso_numero = '87654'
        d.numero_documento = '27.030195.10'
        d.convenio = '7777777'
        d.especie_documento = 'DM'

        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)

    boleto = BoletoPDF('boleto-bb-formato-normal-teste.pdf')
    for i in range(len(listaDados)):
        boleto.drawBoleto(listaDados[i])
        boleto.nextPage()
    boleto.save()
Exemplo n.º 8
0
def get_data_bb():
    listaDados = []
    for i in range(2):
        d = BoletoBB(7, 2)
        d.nosso_numero = "87654"
        d.numero_documento = "27.030195.10"
        d.convenio = "7777777"
        d.especie_documento = "DM"

        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
Exemplo n.º 9
0
    def gen_boleto(self, cr, uid, ids, boleto_id, context=None):
        uid = 1
        boleto_boleto = self.pool.get('boleto.boleto')
        account_analytic_account = self.pool.get('account.analytic.account')
        account_analytic_charges_line = self.pool.get(
            'account.analytic.charges.line')
        res_company = self.pool.get('res.company').browse(cr, uid, 1)
        #  res_currency                  = self.pool.get('res.currency').browse(cr, uid, res_company.currency_id.id)

        partner_obj = self.pool.get('')
        fbuffer = StringIO()
        boleto_pdf = BoletoPDF(fbuffer)
        lista_produtos = context['lista']
        multa = 0
        mora = 0
        bol = boleto_boleto.browse(cr, uid, boleto_id, context=context)

        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()
        elif bol.banco == 'itau':
            boleto = BoletoItau()

        boleto.demonstrativo = []

        end_company = "%s, %s  %s  %s" % (
            bol.cedente.partner_id.street or '', bol.cedente.partner_id.number
            or '', bol.cedente.partner_id.district
            or '', bol.cedente.partner_id.city or '')
        boleto.cedente_documento = bol.cedente.partner_id.cnpj_cpf
        boleto.cedente = "%s   CNPJ: %s" % (bol.cedente.name,
                                            bol.cedente.partner_id.cnpj_cpf)
        boleto.carteira = bol.carteira
        if bol.banco == 'caixa':
            boleto.carteira = 'SR'
        else:
            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 = date.today(
        )  #datetime.date(datetime.strptime(bol.data_documento, '%Y-%m-%d'))
        boleto.data_processamento = date.today()
        boleto.nosso_numero = bol.nosso_numero
        if bol.banco == 'caixa':
            n = list(boleto.nosso_numero)
            n[0] = '2'
            n[1] = '4'
            n[2] = '2'
            boleto.nosso_numero = "".join(n)
            boleto.especie_documento = 'DS'
        boleto.numero_documento = bol.numero_documento
        boleto.convenio = bol.convenio
        pp = self.pool.get('boleto.partner_config').search(
            cr, uid, [('default_boleto', '=', True)])
        if bol.instrucoes:
            instrucoes = bol.instrucoes
        elif pp:
            ppb = self.pool.get('boleto.partner_config').browse(cr, uid, pp[0])
            instrucoes = ppb.instrucoes
        else:
            raise osv.except_osv((u'Atencao !'), (
                "Para gerar boletos primeiro cadastre a configuracao de boleto deste cliente."
            ))
        boleto.instrucoes = []

        contrato_id = account_analytic_account.search(
            cr, uid, [('code', '=', str(context['contrato']))])

        #         lista_encargos = account_analytic_charges_line.search(cr, uid, [('analytic_account_id', '=', contrato_id)])
        #
        #         for charge in account_analytic_charges_line.browse(cr, uid, lista_encargos):
        #             if charge.type_charge == 'mora':
        #                 mora = charge.perc_charge
        #             elif charge.type_charge == 'multa':
        #                 multa = charge.perc_charge
        #
        boleto.valor_documento = bol.valor
        multa_ok = 0
        mora_ok = 0
        #         for k in bol.instrucoes.split('\n'):
        h = normalize('NFKD', unicode(instrucoes)).encode('ASCII', 'ignore')
        #         if multa and multa_ok == 0:
        #             #multa = "%s%s" % (multa, '%')
        #             multa = multa / 100
        #             multa = str("%.2f" % (float(multa) * float(boleto.valor_documento))).replace('.',',')
        #             multa = "%s%s" % ("R$", multa)
        #             h = h.replace('@multa', multa)
        #             multa_ok = 1
        #         if mora and mora_ok == 0:
        #             #mora = "%s%s" % (mora, '%')
        #             mora = mora / 100
        #             mora = str("%.2f" % (float(mora) * float(boleto.valor_documento))).replace('.',',')
        #             mora = "%s%s" % ("R$", mora)
        #             h = h.replace('@mora', mora)
        #             mora_ok = 1
        for k in h.split('\n'):
            boleto.instrucoes.append(k)

        boleto.cedente_endereco = normalize('NFKD',
                                            unicode(end_company or '')).encode(
                                                'ASCII', 'ignore')
        sac = normalize(
            'NFKD',
            unicode("%s           CNPJ/CPF:%s" %
                    (bol.sacado.legal_name or bol.sacado.name,
                     bol.sacado.cnpj_cpf))).encode('ASCII', 'ignore')
        end = normalize(
            'NFKD',
            unicode(
                "%s, %s  %s  %s" %
                (bol.sacado.street or '', bol.sacado.number or '',
                 bol.sacado.street2 or '', bol.sacado.district or ''))).encode(
                     'ASCII', 'ignore')
        boleto.sacado = [
            (normalize(
                'NFKD',
                unicode('%s  CNPJ/CPF: %s' %
                        (bol.sacado.name or bol.sacado.legal_name or '',
                         str(bol.sacado.cnpj_cpf)))).encode('ASCII',
                                                            'ignore')), end,
            ("%s            CEP: %s" % (bol.sacado.city, bol.sacado.zip))
        ]
        boleto.demonstrativo = [
            str(sac[:90]),
            "%s" % (bol.name),
            str(end[:90]),
            "%s            CEP: %s" % (bol.sacado.city, bol.sacado.zip),
            "__________________________________________________________________________________________",
            "REFERENTE A SERVIÇOS",
            "Produto".ljust(35) + "Valor".rjust(15),
            "",
        ]
        for i in lista_produtos:
            i = normalize('NFKD', unicode(i[:90])).encode('ASCII', 'ignore'),
            boleto.demonstrativo.append(str(unicode(i[0])))

        print boleto
        boleto_pdf.drawBoleto(boleto)
        print boleto.linha_digitavel
        boleto_pdf.save()

        boleto_file = fbuffer.getvalue().encode("base64")
        fbuffer.close()
        return boleto_file
Exemplo n.º 10
0
    def gen_boleto(self, cr, uid, ids, boleto_id, context=None):
        uid = 1
        boleto_boleto                 = self.pool.get('boleto.boleto')
        fbuffer     = StringIO()
        boleto_pdf  = BoletoPDF(fbuffer)
        lista_produtos = context['lista']
        bol = boleto_boleto.browse(cr, uid, boleto_id, context=context)

        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()
        elif bol.banco == 'itau':
            boleto = BoletoItau()
            
        boleto.demonstrativo = []
        
        end_company = "%s, %s  %s  %s" % (bol.cedente.partner_id.street or '', 
                                          bol.cedente.partner_id.number or '', 
                                          bol.cedente.partner_id.district or '', 
                                          bol.cedente.partner_id.city or '')
        boleto.cedente_documento = bol.cedente.partner_id.cnpj_cpf
        boleto.cedente  = "%s   CNPJ: %s" % (bol.cedente.name,bol.cedente.partner_id.cnpj_cpf)
        boleto.carteira = bol.carteira
        if bol.banco == 'caixa':
            boleto.carteira = 'SR'
        else:
            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   = date.today()#datetime.date(datetime.strptime(bol.data_documento, '%Y-%m-%d'))
        boleto.data_processamento = date.today()
        boleto.nosso_numero     = bol.nosso_numero
        if bol.banco == 'caixa':
            n = list(boleto.nosso_numero)
            n[0] = '2'
            n[1] = '4'
            n[2] = '2'
            boleto.nosso_numero = "".join(n)
            boleto.especie_documento = 'DS'
        boleto.numero_documento = bol.numero_documento
        boleto.convenio         = bol.convenio
        pp = self.pool.get('boleto.partner_config').search(cr, uid, [('default_boleto','=',True)])
        if bol.instrucoes:
            instrucoes = bol.instrucoes
        elif pp:
            ppb = self.pool.get('boleto.partner_config').browse(cr, uid, pp[0])
            instrucoes = ppb.instrucoes
        else:
            raise osv.except_osv((u'Atencao !'),("Para gerar boletos primeiro cadastre a configuracao de boleto deste cliente."))
        boleto.instrucoes = []
        
        boleto.valor_documento  = bol.valor
        h = normalize('NFKD',unicode(instrucoes)).encode('ASCII','ignore')
        for k in h.split('\n'):
            boleto.instrucoes.append(k)
            
        boleto.cedente_endereco = normalize('NFKD',unicode(end_company or '')).encode('ASCII','ignore')
        sac = normalize('NFKD',unicode("%s           CNPJ/CPF:%s" 
            % (bol.sacado.legal_name or bol.sacado.name,bol.sacado.cnpj_cpf))).encode('ASCII','ignore')
        end = normalize('NFKD',unicode("%s, %s  %s  %s" 
            % (bol.sacado.street or '', bol.sacado.number or '', bol.sacado.street2 or '', bol.sacado.district or ''))).encode('ASCII','ignore')
        boleto.sacado = [(normalize('NFKD',unicode('%s  CNPJ/CPF: %s' 
                        % (bol.sacado.name or bol.sacado.legal_name or '',
                           str(bol.sacado.cnpj_cpf)))).encode('ASCII','ignore')), end,
                         ("%s            CEP: %s" % (bol.sacado.city,bol.sacado.zip))]
        boleto.demonstrativo =[
            str(sac[:90]),
            "%s" % (bol.name),
            str(end[:90]),
            "%s            CEP: %s" % (bol.sacado.city,bol.sacado.zip),
            "__________________________________________________________________________________________",              
            "REFERENTE A SERVIÇOS",
            "Produto".ljust(35)  + "Valor".rjust(15),
            "",
            ]
        for i in lista_produtos:
            i = normalize('NFKD',unicode(i[:90])).encode('ASCII','ignore'),
            boleto.demonstrativo.append(str(unicode(i[0]))) 
            
        print boleto
        boleto_pdf.drawBoleto(boleto)
        print boleto.linha_digitavel
        boleto_pdf.save()
            
        boleto_file = fbuffer.getvalue().encode("base64")
        fbuffer.close()
        return boleto_file
Exemplo n.º 11
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