models.py 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. # -*- coding: utf-8 -*-
  2. from openerp import models, fields, api
  3. class AccountInvoice(models.Model):
  4. _inherit = 'account.invoice'
  5. @api.model
  6. def getAccountInvoicePagare(self,domain):
  7. AccountInvoice = self.env['account.invoice'].search(domain)
  8. values = []
  9. for invoice in AccountInvoice:
  10. values.append({
  11. # ID
  12. 'id': invoice.id,
  13. 'number': invoice.number,
  14. 'origin': invoice.origin,
  15. 'date_invoice': invoice.date_invoice,
  16. 'user_name': invoice.user_id.name,
  17. 'amount_untaxed': invoice.amount_untaxed,
  18. 'amount_tax': invoice.amount_untaxed,
  19. 'amount_total': invoice.amount_total,
  20. 'comment': invoice.comment or "",
  21. 'cuota_total': invoice.cuota_total or "",
  22. # PARTNER INFO
  23. 'partner_id':[{
  24. 'id': invoice.partner_id.id,
  25. 'name': invoice.partner_id.name or "",
  26. 'ruc': invoice.partner_id.ruc or "",
  27. 'address': invoice.partner_id.street or "",
  28. 'city': invoice.partner_id.city or "",
  29. 'barrio': invoice.partner_id.street2 or "",
  30. 'email': invoice.partner_id.email,
  31. 'estado_civil': invoice.partner_id.estado_civil or "",
  32. 'phone': invoice.partner_id.phone or "",
  33. 'mobile': invoice.partner_id.mobile or "",
  34. 'trab_empresa': invoice.partner_id.trab_empresa or "",
  35. 'trab_telefono': invoice.partner_id.trab_telefono,
  36. 'trab_street': invoice.partner_id.trab_street or "",
  37. 'trab_city': invoice.partner_id.trab_city or "",
  38. 'trab_cargo': invoice.partner_id.trab_cargo or "",
  39. 'trab_antiguedad_a': invoice.partner_id.trab_antiguedad_a or "",
  40. 'trab_antiguedad_m': invoice.partner_id.trab_antiguedad_m or "",
  41. 'casa_propia': invoice.partner_id.casa_propia or "",
  42. 'casa_alquiler': invoice.partner_id.casa_alquiler or "",
  43. 'trab_salario': invoice.partner_id.trab_salario or "",
  44. 'conyuge_id':[{
  45. 'cony_id': invoice.partner_id.conyuge_id.id or "",
  46. 'cony_name': invoice.partner_id.conyuge_id.name or "",
  47. 'cony_ruc': invoice.partner_id.conyuge_id.ruc or "",
  48. 'cony_phone': invoice.partner_id.conyuge_id.phone or "",
  49. 'cony_mobile': invoice.partner_id.conyuge_id.mobile or "",
  50. 'cony_city': invoice.partner_id.conyuge_id.city or "",
  51. 'cony_street': invoice.partner_id.conyuge_id.street or "",
  52. 'cony_trab_empresa': invoice.partner_id.conyuge_id.trab_empresa or "",
  53. 'cony_trab_telefono': invoice.partner_id.conyuge_id.trab_telefono or "",
  54. }],
  55. 'ref_personal_ids': [{
  56. 'id': refPartner.id or "",
  57. 'name': refPartner.name or "",
  58. 'phone': refPartner.phone or "",
  59. 'email': refPartner.email or "",
  60. } for refPartner in invoice.partner_id.ref_personal_ids],
  61. 'ref_comercial_ids': [{
  62. 'id': comPartner.id or "",
  63. 'name': comPartner.name or "",
  64. 'phone': comPartner.phone or "",
  65. } for comPartner in invoice.partner_id.ref_comercial_ids],
  66. }],
  67. # COMPANY INFO
  68. 'company_id': [{
  69. 'id':invoice.user_id.company_id.id,
  70. 'name': invoice.user_id.company_id.name,
  71. 'logo': invoice.user_id.company_id.logo,
  72. 'phone': invoice.user_id.company_id.phone,
  73. }],
  74. # CURRENCY INFO
  75. 'currency_id':[{
  76. 'id': invoice.currency_id.id,
  77. 'name': invoice.currency_id.name,
  78. 'symbol': invoice.currency_id.symbol,
  79. 'thousands_separator': invoice.currency_id.thousands_separator,
  80. 'decimal_separator': invoice.currency_id.decimal_separator,
  81. 'decimal_places': invoice.currency_id.decimal_places,
  82. 'symbol_position': invoice.currency_id.symbol,
  83. }],
  84. })
  85. return values
  86. @api.model
  87. def getAccountInvoicePagareQuota(self,domain):
  88. AccountInvoice = self.env['account.invoice'].search(domain)
  89. AccountMoveLine = self.env['account.move.line'].search([('move_id','=',AccountInvoice.number),('debit','>',0),('date_maturity','!=', False)],order='date_maturity')
  90. i = 1
  91. x = len(AccountMoveLine)
  92. values = []
  93. for line in AccountMoveLine:
  94. amount = 0
  95. value = 0
  96. state = 'No pagado'
  97. if(line.reconcile_ref != False):
  98. if(line.amount_residual == 0):
  99. state = 'Pagado'
  100. if(line.amount_residual > 0):
  101. value = line.debit - line.amount_residual
  102. state = 'Amortizado'
  103. values.append({
  104. 'date': line.date_maturity,
  105. 'name': 'Cuota ' + str(i) + ' / ' + str(x),
  106. 'state': state,
  107. 'value': value,
  108. 'amount': line.debit,
  109. 'residual': line.amount_residual,
  110. 'tot_cuota': str(x),
  111. })
  112. i = i + 1
  113. return values
  114. class AccountInvoiceLine(models.Model):
  115. _inherit = 'account.invoice.line'
  116. @api.model
  117. def getAccountInvoiceLinePagare(self,domain):
  118. AccountInvoiceLine = self.env['account.invoice.line'].search(domain)
  119. values = []
  120. for line in AccountInvoiceLine:
  121. values.append({
  122. 'id': line.id or "",
  123. 'name': line.name or "",
  124. 'quantity': line.quantity or "",
  125. 'price_unit': line.price_unit or "",
  126. 'price_subtotal': line.price_subtotal or "",
  127. 'product_id': [
  128. line.product_id.id or "",
  129. line.product_id.list_price or "",
  130. line.product_id.t_descripcion or "",
  131. ],
  132. })
  133. return values