Guest User

Untitled

a guest
Jan 17th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. #coding:utf-8
  2.  
  3. import dateutil.parser
  4. from decimal import Decimal
  5.  
  6. from django.utils.encoding import smart_unicode
  7.  
  8. class Transacao:
  9.  
  10. def __init__(self, transacao):
  11.  
  12. self.transacao = transacao
  13.  
  14. @property
  15. def id(self):
  16. return self.transacao['id']
  17.  
  18. @property
  19. def numero_dos_lotes(self):
  20.  
  21. if self.transacao['metadata'].has_key('numero_dos_lotes'):
  22. return self.transacao['metadata']['numero_dos_lotes']
  23. return ''
  24.  
  25. @property
  26. def nome_leilao(self):
  27.  
  28. if self.transacao['metadata'].has_key('nome_leilao'):
  29. return self.transacao['metadata']['nome_leilao']
  30. return ''
  31.  
  32. @property
  33. def boleto_id(self):
  34.  
  35. if self.transacao['metadata'].has_key('boleto_id'):
  36. return passtransacao['metadata']['boleto_id']
  37. return ''
  38.  
  39. @property
  40. def data_criacao(self):
  41. return self._formata_data(self.transacao['date_created'])
  42.  
  43. @property
  44. def valor_total(self):
  45. return self._formata_valor(self.transacao['amount'])
  46.  
  47. @property
  48. def valor_pago(self):
  49. return self._formata_valor(self.transacao['paid_amount'])
  50.  
  51. @property
  52. def vencimento(self):
  53. return self._formata_data(self.transacao['boleto_expiration_date'])
  54.  
  55. @property
  56. def status(self):
  57. return self._converte_status(self.transacao['status'])
  58.  
  59. @property
  60. def grv(self):
  61. if self.transacao['metadata'].has_key('grv'):
  62. return self.transacao['metadata']['grv']
  63. return ''
  64.  
  65. @property
  66. def last_updated(self):
  67. return self._formata_data(self.transacao['date_updated'])
  68.  
  69. def linha_extrato(self):
  70.  
  71. columns = [
  72. self.nome_leilao,
  73. self.data_criacao,
  74. self.id,
  75. self.numero_dos_lotes,
  76. self.grv,
  77. self.valor_total,
  78. self.valor_pago,
  79. self.vencimento,
  80. self.last_updated,
  81. self.status,
  82. ]
  83.  
  84. columns = map(lambda x: smart_unicode(x), columns)
  85.  
  86. return u';'.join(columns)
  87.  
  88.  
  89. def _formata_valor(self, valor):
  90.  
  91. valor = Decimal(valor)
  92.  
  93. return valor / 100
  94.  
  95. def _formata_data(self, data):
  96.  
  97. valor = dateutil.parser.parse(data)
  98.  
  99. return valor.strftime('%d/%m/%Y')
  100.  
  101. def _converte_status(self, status):
  102.  
  103. if status == 'paid':
  104. return 'PAGO'
  105.  
  106. if status == 'waiting_payment':
  107. return 'NÃO PAGO'
Add Comment
Please, Sign In to add comment