Source code for pyboleto.bank.caixa

#-*- coding: utf-8 -*-
from pyboleto.data import BoletoData, custom_property
import os.path

### CAUTION - NÃO TESTADO ###
[docs]class BoletoCaixa( BoletoData ): ''' Gera Dados necessários para criação de boleto para o banco Caixa Economica Federal ''' def __init__(self, *args, **kwargs): super(BoletoCaixa , self).__init__(*args, **kwargs) self.codigo_banco = "104" self.logo_image_path = os.path.dirname(__file__) + \ "/../media/logo_bancocaixa.jpg" ''' Carteira SR: 80, 81 ou 82 - Carteira CR: 90 (Confirmar com gerente qual usar) ''' self.inicio_nosso_numero = '80' # Nosso numero (sem dv) sao 10 digitos def _nosso_numero_get(self): return self._nosso_numero ''' Nosso Número sem DV, máximo 8 chars ''' def _nosso_numero_set(self, val): try: self._nosso_numero = self.inicio_nosso_numero + \ self.formata_numero(val, 8) except AttributeError: pass nosso_numero = property(_nosso_numero_get, _nosso_numero_set) @property
[docs] def dv_nosso_numero(self): resto2 = self.modulo11(self.nosso_numero.split('-')[0],9,1) digito = 11 - resto2 if digito == 10 or digito == 11: dv = 0 else: dv = digito return dv
''' agencia do cedente sem DV ''' agencia_cedente = custom_property('agencia_cedente', 4) conta_cedente = custom_property('conta_cedente', 11) # Numero para o codigo de barras com 44 digitos @property
[docs] def barcode(self): num = "%3s%1s%1s%4s%10s%10s%4s%11s" % ( self.codigo_banco, self.moeda, 'X', self.fator_vencimento, self.formata_valor(self.valor_documento,10), self.nosso_numero, self.agencia_cedente, self.conta_cedente.split('-')[0], ) dv = self.calculate_dv_barcode(num.replace('X', '', 1)) num = num.replace('X', str(dv), 1) return num

Project Versions