Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #coding:utf-8
- import dateutil.parser
- from decimal import Decimal
- from django.utils.encoding import smart_unicode
- class Transacao:
- def __init__(self, transacao):
- self.transacao = transacao
- @property
- def id(self):
- return self.transacao['id']
- @property
- def numero_dos_lotes(self):
- if self.transacao['metadata'].has_key('numero_dos_lotes'):
- return self.transacao['metadata']['numero_dos_lotes']
- return ''
- @property
- def nome_leilao(self):
- if self.transacao['metadata'].has_key('nome_leilao'):
- return self.transacao['metadata']['nome_leilao']
- return ''
- @property
- def boleto_id(self):
- if self.transacao['metadata'].has_key('boleto_id'):
- return passtransacao['metadata']['boleto_id']
- return ''
- @property
- def data_criacao(self):
- return self._formata_data(self.transacao['date_created'])
- @property
- def valor_total(self):
- return self._formata_valor(self.transacao['amount'])
- @property
- def valor_pago(self):
- return self._formata_valor(self.transacao['paid_amount'])
- @property
- def vencimento(self):
- return self._formata_data(self.transacao['boleto_expiration_date'])
- @property
- def status(self):
- return self._converte_status(self.transacao['status'])
- @property
- def grv(self):
- if self.transacao['metadata'].has_key('grv'):
- return self.transacao['metadata']['grv']
- return ''
- @property
- def last_updated(self):
- return self._formata_data(self.transacao['date_updated'])
- def linha_extrato(self):
- columns = [
- self.nome_leilao,
- self.data_criacao,
- self.id,
- self.numero_dos_lotes,
- self.grv,
- self.valor_total,
- self.valor_pago,
- self.vencimento,
- self.last_updated,
- self.status,
- ]
- columns = map(lambda x: smart_unicode(x), columns)
- return u';'.join(columns)
- def _formata_valor(self, valor):
- valor = Decimal(valor)
- return valor / 100
- def _formata_data(self, data):
- valor = dateutil.parser.parse(data)
- return valor.strftime('%d/%m/%Y')
- def _converte_status(self, status):
- if status == 'paid':
- return 'PAGO'
- if status == 'waiting_payment':
- return 'NÃO PAGO'
Add Comment
Please, Sign In to add comment