Skip to content

Instantly share code, notes, and snippets.

@rafaelreuber
Created April 23, 2019 03:19
Show Gist options
  • Save rafaelreuber/8f1f9483c1cd44da44edfc358ca5675f to your computer and use it in GitHub Desktop.
Save rafaelreuber/8f1f9483c1cd44da44edfc358ca5675f to your computer and use it in GitHub Desktop.
Geração de boleto usando python-boleto
def gerar_itau(fatura, bank, encargos=0):
invoice = BoletoItau()
invoice.data_vencimento = fatura.dtvencto.date()
invoice.data_documento = fatura.dtemissao
invoice.nosso_numero = fatura.nosso_numero
invoice.numero_documento = fatura.fatura
invoice.valor_documento = fatura.valor
empresa = Empresa.objects.get(pk=settings.STUR_EMPRESA)
endereco = "%s, %s(%s), CEP: %s" % (
empresa.endereco, empresa.cidade.nome,
empresa.cidade.estado, empresa.cep)
# Informações do Cedente
invoice.local_pagamento = 'ATÉ O VENCIMENTO, PREFERENCIALMENTE NO ITAÚ. APÓS O VENCIMENTO, SOMENTE NO ITAÚ.'
invoice.cedente = empresa.razaosocial
invoice.cedente_documento = empresa.cnpj
invoice.carteira = bank.carteira
invoice.agencia_cedente = bank.agencia
invoice.conta_cedente = bank.conta_cedente
invoice.especie_documento = 'DM'
invoice.cedente_endereco = endereco
if bank.cobrarmulta == 'S':
encargos = str(encargos / 100 * fatura.valor) + '0'
multa = str(bank.valor_multa / 100 * fatura.valor) + '0'
invoice.instrucoes = [
"Encargos por dia R$ " + encargos[:encargos.find('.')+3].replace('.',',') +
" após " + fatura.dtvencto.replace(day=fatura.dtvencto.day+bank.multa_apos_dias).strftime('%d/%m/%Y'),
"Após " + fatura.dtvencto.replace(day=fatura.dtvencto.day+bank.multa_apos_dias).strftime('%d/%m/%Y') +
" cobrar multa de R$ " + multa[:multa.find('.')+3].replace('.',',')
]
cliente = Cliente.objects.get(pk=fatura.cod_cliente)
invoice.sacado = ["%s - %s" % (cliente.nome, cliente.cgccpf),
cliente.endereco, '%s-%s CEP: %s' % (cliente.cidade.nome
, cliente.cidade.estado, cliente.cep)]
boleto = BoletoPDF(fatura.docto + '.pdf')
boleto.drawBoleto(invoice)
boleto.save()
buffer = BytesIO()
boleto = BoletoPDF(buffer)
boleto.drawBoleto(invoice)
boleto.save()
boleto = buffer.getvalue()
buffer.close()
return boleto
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment