pyboleto Package¶
pyboleto
Package¶
data
Module¶
pyboleto.data¶
Base para criação dos módulos dos bancos. Comtém funções genéricas relacionadas a geração dos dados necessários para o boleto bancário.
copyright: | © 2011 - 2012 by Eduardo Cereto Carvalho |
---|---|
license: | BSD, see LICENSE for more details. |
-
class
pyboleto.data.
BoletoData
(**kwargs)[código fonte]¶ Bases:
object
Interface para implementações específicas de bancos
Esta classe geralmente nunca será usada diretamente. Geralmente o usuário irá usar uma das subclasses com a implementação específica de cada banco.
As classes dentro do pacote
pyboleto.bank
extendem essa classe para implementar as especificações de cada banco. Portanto as especificações dentro desta classe são genéricas seguindo as normas da FEBRABAN.Todos os parâmetros devem ser passados como
**kwargs
para o construtor ou então devem ser passados depois, porém antes de imprimir o boleto.eg:
bData = BoletoData(agencia='123', valor='650') bData.cedente = u'João Ninguém' bData.cedente_cidade = u'Rio de Janeiro' bData.cedente_uf = u'RJ' # Assim por diante até preencher todos os campos obrigatórios.
Parâmetros obrigatórios:
Parâmetros: - aceite – ‘N’ para o caixa não acetitar o boleto após a validade ou ‘A’ para aceitar. (default: ‘N’)
- agencia_cedente – Tamanho pode variar com o banco.
- carteira – Depende do Banco.
- cedente – Nome do Cedente
- cedente_cidade –
- cedente_uf –
- cedente_logradouro – Endereço do Cedente
- cedente_bairro –
- cedente_cep –
- cedente_documento – CPF ou CNPJ do Cedente.
- conta_cedente – Conta do Cedente sem o dígito verificador.
- data_documento (datetime.date) –
- data_processamento (datetime.date) –
- data_vencimento (datetime.date) –
- numero_documento – Número Customizado para controle. Pode ter até 13 caracteres dependendo do banco.
- sacado_nome – Nome do Sacado
- sacado_documento – CPF ou CNPJ do Sacado
- sacado_cidade –
- sacado_uf –
- sacado_endereco – Endereco do Sacado
- sacado_bairro –
- sacado_cep –
Parâmetros não obrigatórios:
Parâmetros: - quantidade –
- especie – Nunca precisa mudar essa opção (default: ‘R$’)
- especie_documento –
- local_pagamento – (default: ‘Pagável em qualquer banco até o vencimento’)
- moeda – Nunca precisa mudar essa opção (default: ‘9’)
-
agencia_cedente
¶ Agência do Cedente geralmente tem 4 posições
Algumas subclasses podem alterar isso dependendo das normas do banco
-
agencia_conta_cedente
¶
-
barcode
¶ Essa função sempre é a mesma para todos os bancos. Então basta implementar o método
barcode()
para o pyboleto calcular a linha digitável.Posição # Conteúdo 01 a 03 03 Número do banco 04 01 Código da Moeda - 9 para Real 05 01 Digito verificador do Código de Barras 06 a 09 04 Data de vencimento em dias partis de 07/10/1997 10 a 19 10 Valor do boleto (8 inteiros e 2 decimais) 20 a 44 25 Campo Livre definido por cada banco Total 44
-
calculate_dv_barcode
(line)[código fonte]¶ Calcula DV para código de barras
Está é uma implementação genérica mas pode ser reimplementada pela classe derivada dependendo das definições de cada bancoGeralmente é implementado pela classe derivada.
-
campo_livre
¶ Must be overriden by child class property
Levanta: NotImplementedError – Needs to be implemented by derived class
-
cedente_endereco
¶ Endereço do Cedente com no máximo 80 caracteres
-
codigo_dv_banco
¶
-
conta_cedente
¶ Conta do Cedente geralmente tem 7 posições
Algumas subclasses podem alterar isso dependendo das normas do banco
-
demonstrativo
¶ Texto que vai impresso no corpo do Recibo do Sacado
Máximo de 12 linhas com 90 caracteres cada.
-
format_nosso_numero
()[código fonte]¶ Geralmente é implementado pela classe derivada. Usada para formatar como o noso número será impresso no boleto. Às vezes é o mesmo do numero_documento e às vezes contém outros campos juntos.
-
instrucoes
¶ Instruções para o caixa do banco que recebe o bilhete
Máximo de 7 linhas com 90 caracteres cada. Geralmente contém instruções para aplicar multa ou não aceitar caso tenha passado a data de validade.
-
linha_digitavel
¶ Monta a linha digitável a partir do barcode
Esta é a linha que o cliente pode utilizar para digitar se o código de barras não estiver legível.
-
static
modulo10
(num)[código fonte]¶
-
static
modulo11
(num, base=9, r=0)[código fonte]¶
-
nosso_numero
¶ Nosso Número geralmente tem 13 posições
Algumas subclasses podem alterar isso dependendo das normas do banco
-
sacado
¶ Campo sacado composto por até 3 linhas.
A primeira linha precisa ser o nome do sacado. As outras duas linhas devem ser usadas para o endereço do sacado.
-
valor
¶ Valor convertido para
Decimal
.Geralmente valor e valor_documento são o mesmo número.
Type: Decimal
-
valor_documento
¶ Valor do Documento convertido para
Decimal
.De preferência para passar um valor em
Decimal
, se não for passado outro tipo será feito um cast paraDecimal
.
-
exception
pyboleto.data.
BoletoException
(message)[código fonte]¶ Bases:
exceptions.Exception
Exceções para erros no pyboleto
-
class
pyboleto.data.
CustomProperty
(name, length)[código fonte]¶ Bases:
object
Função para criar propriedades nos boletos
Cria propriedades com getter, setter e delattr.
Propriedades criadas com essa função sempre são strings internamente.
O Setter sempre tentará remover qualquer digito verificador se existir.
Aceita um numero com ou sem DV e remove o DV caso exista. Então preenxe com zfill até o tamanho adequado. Note que sempre que possível não use DVs ao entrar valores no pyboleto. De preferência o pyboleto vai calcular todos os DVs quando necessário.
Parâmetros: - name (string) – O nome da propriedade.
- length (integer) – Tamanho para preencher com ‘0’ na frente.
pdf
Module¶
pyboleto.pdf¶
Classe Responsável por fazer o output do boleto em pdf usando Reportlab.
copyright: | © 2011 - 2012 by Eduardo Cereto Carvalho |
---|---|
license: | BSD, see LICENSE for more details. |
-
class
pyboleto.pdf.
BoletoPDF
(file_descr, landscape=False)[código fonte]¶ Bases:
object
Geração do Boleto em PDF
Esta classe é responsável por imprimir o boleto em PDF. Outras classes podem ser implementadas no futuro com a mesma interface, para fazer output em HTML, LaTeX, ...
Esta classe pode imprimir boletos em formato de carnê (2 boletos por página) ou em formato de folha cheia.
Parâmetros: - file_descr – Um arquivo ou file-like class.
- landscape – Formato da folha. Usar
True
para boleto tipo carnê.
-
drawBoleto
(boleto_dados)[código fonte]¶ Imprime Boleto Convencional
Você pode chamar este método diversas vezes para criar um arquivo com várias páginas, uma por boleto.
Parâmetros: boleto_dados ( pyboleto.data.BoletoData
) – Objeto com os dados do boleto a ser preenchido. Deve ser subclasse depyboleto.data.BoletoData
-
drawBoletoCarne
(boleto_dados, y)[código fonte]¶ Imprime apenas dos boletos do carnê.
Esta função não deve ser chamada diretamente, ao invés disso use a drawBoletoCarneDuplo.
Parâmetros: boleto_dados ( pyboleto.data.BoletoData
) – Objeto com os dados do boleto a ser preenchido. Deve ser subclasse depyboleto.data.BoletoData
-
drawBoletoCarneDuplo
(boletoDados1, boletoDados2=None)[código fonte]¶ Imprime um boleto tipo carnê com 2 boletos por página.
Parâmetros: - boletoDados1 (
pyboleto.data.BoletoData
) – Objeto com os dados do boleto a ser preenchido. Deve ser subclasse depyboleto.data.BoletoData
- boletoDados2 (
pyboleto.data.BoletoData
) – Objeto com os dados do boleto a ser preenchido. Deve ser subclasse depyboleto.data.BoletoData
- boletoDados1 (
-
nextPage
()[código fonte]¶ Força início de nova página
-
save
()[código fonte]¶ Fecha boleto e constroi o arquivo
-
pyboleto.pdf.
load_image
(logo_image)[código fonte]¶ Load Bank Image
html
Module¶
pyboleto.html¶
Classe Responsável por fazer o output do boleto em html.
copyright: | © 2012 by Artur Felipe de Sousa |
---|---|
license: | BSD, see LICENSE for more details. |
-
class
pyboleto.html.
BoletoHTML
(file_descr, landscape=False)[código fonte]¶ Bases:
object
Geração do Boleto em HTML
Esta classe é responsável por imprimir o boleto em HTML. Outras classes podem ser implementadas no futuro com a mesma interface, para fazer output em LaTeX, etc ...
Esta classe pode imprimir boletos em formato de carnê (2 boletos por página) ou em formato de folha cheia.
Parâmetros: - file_descr – Um arquivo ou file-like class.
- landscape – Formato da folha. Usar
True
para boleto tipo carnê.
-
drawBoleto
(boletoDados)[código fonte]¶ Imprime Boleto Convencional
Você pode chamar este método diversas vezes para criar um arquivo com várias páginas, uma por boleto.
Parâmetros: boletoDados ( pyboleto.data.BoletoData
) – Objeto com os dados do boleto a ser preenchido. Deve ser subclasse depyboleto.data.BoletoData
-
drawBoletoCarneDuplo
(boletoDados1, boletoDados2=None)[código fonte]¶ Imprime um boleto tipo carnê com 2 boletos por página.
Parâmetros: - boletoDados1 (
pyboleto.data.BoletoData
) – Objeto com os dados do boleto a ser preenchido. Deve ser subclasse depyboleto.data.BoletoData
- boletoDados2 (
pyboleto.data.BoletoData
) – Objeto com os dados do boleto a ser preenchido. Deve ser subclasse depyboleto.data.BoletoData
- boletoDados1 (
-
nextPage
()[código fonte]¶ Força início de nova página
-
save
()[código fonte]¶ Fecha boleto e constroi o arquivo