models.py 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. # -*- coding: utf-8 -*-
  2. from openerp import models, fields, api
  3. class AccountInvoice(models.Model):
  4. _inherit = 'account.invoice'
  5. ############################################################
  6. # ACCOUNT INVOICE
  7. ############################################################
  8. @api.model
  9. def getAccountInvoice(self,domain):
  10. AccountInvoice = self.env['account.invoice'].search(domain)
  11. decimal_precision = self.env['decimal.precision'].precision_get('Account')
  12. values = []
  13. for invoice in AccountInvoice:
  14. values.append({
  15. 'id': invoice.id,
  16. 'type': invoice.type,
  17. 'state': invoice.state,
  18. 'number': invoice.number,
  19. 'journal_id': [
  20. invoice.journal_id.id,
  21. invoice.journal_id.name
  22. ],
  23. 'invoice_currency': [
  24. invoice.currency_id.id,
  25. invoice.currency_id.name,
  26. invoice.currency_id.rate
  27. ],
  28. 'company_currency': [
  29. invoice.company_id.currency_id.id,
  30. invoice.company_id.currency_id.name,
  31. invoice.company_id.currency_id.rate
  32. ],
  33. 'date_invoice': invoice.date_invoice,
  34. 'date_due': invoice.date_invoice,
  35. 'partner_id': [
  36. invoice.partner_id.id,
  37. invoice.partner_id.name,
  38. ],
  39. 'supplier_invoice_number': invoice.supplier_invoice_number,
  40. 'user_id': [
  41. invoice.user_id.id,
  42. invoice.user_id.name
  43. ],
  44. 'period_id': [
  45. invoice.period_id.id,
  46. invoice.period_id.name
  47. ],
  48. 'origin': invoice.origin,
  49. 'reference': invoice.reference,
  50. 'payment_term': {
  51. 'id' : invoice.payment_term.id,
  52. 'name' : invoice.payment_term.name,
  53. 'check_credit' : invoice.payment_term.check_credit,
  54. },
  55. 'amount_untaxed': invoice.amount_untaxed,
  56. 'residual': invoice.residual,
  57. 'amount_tax': invoice.amount_tax,
  58. 'amount_total': invoice.amount_total,
  59. 'amount_untaxed_currency': invoice.amount_untaxed * (invoice.company_id.currency_id.rate / invoice.currency_id.rate),
  60. 'residual_currency': invoice.residual * (invoice.company_id.currency_id.rate / invoice.currency_id.rate),
  61. 'amount_tax_currency': invoice.amount_tax * (invoice.company_id.currency_id.rate / invoice.currency_id.rate),
  62. 'amount_total_currency': invoice.amount_total * (invoice.company_id.currency_id.rate / invoice.currency_id.rate),
  63. })
  64. return values
  65. class AccountInvoiceLine(models.Model):
  66. _inherit = 'account.invoice.line'
  67. ############################################################
  68. # ACCOUNT INVOICE LINE
  69. ############################################################
  70. @api.model
  71. def getAccountInvoiceLine(self,domain):
  72. AccountInvoiceLine = self.env['account.invoice.line'].search(domain)
  73. decimal_precision = self.env['decimal.precision'].precision_get('Account')
  74. values = []
  75. for line in AccountInvoiceLine:
  76. values.append({
  77. 'id': line.id,
  78. 'invoice_id':line.invoice_id.id,
  79. 'journal_id' : line.invoice_id.journal_id.id,
  80. 'product_id': {
  81. 'id' : line.product_id.id,
  82. 'name' : line.product_id.display_name,
  83. },
  84. 'name' : line.name,
  85. 'price_unit': line.price_unit,
  86. 'price_subtotal': line.price_subtotal,
  87. 'quantity' : line.quantity,
  88. 'company_currency':[
  89. line.invoice_id.company_id.currency_id.id,
  90. line.invoice_id.company_id.currency_id.name,
  91. line.invoice_id.company_id.currency_id.rate,
  92. ],
  93. 'invoice_currency':[
  94. line.invoice_id.currency_id.id,
  95. line.invoice_id.currency_id.name,
  96. line.invoice_id.currency_id.rate,
  97. ],
  98. 'price_unit_currency': round(line.price_unit * (line.invoice_id.company_id.currency_id.rate / line.invoice_id.currency_id.rate),decimal_precision),
  99. 'price_subtotal_currency': round(line.price_subtotal * (line.invoice_id.company_id.currency_id.rate / line.invoice_id.currency_id.rate),decimal_precision),
  100. 'tax_currency': round((line.price_unit * (line.invoice_id.company_id.currency_id.rate / line.invoice_id.currency_id.rate) * line.quantity) - line.price_subtotal * (line.invoice_id.company_id.currency_id.rate / line.invoice_id.currency_id.rate),decimal_precision),
  101. 'amount_currency': round((line.quantity * line.price_unit) * (line.invoice_id.company_id.currency_id.rate / line.invoice_id.currency_id.rate),decimal_precision),
  102. })
  103. return values
  104. class AccountVoucher(models.Model):
  105. _inherit = 'account.voucher'
  106. ############################################################
  107. # ACCONT VOUCHER
  108. ############################################################
  109. @api.model
  110. def getAccountVoucher(self,domain):
  111. AccountVoucher = self.env['account.voucher'].search(domain)
  112. values = []
  113. for voucher in AccountVoucher:
  114. values.append({
  115. 'id': voucher.id,
  116. 'number':voucher.number,
  117. 'create_uid': voucher.create_uid.name,
  118. 'journal_id': [
  119. voucher.journal_id.id,
  120. voucher.journal_id.name,
  121. ],
  122. 'amount': voucher.amount,
  123. 'currency_id': [
  124. voucher.currency_id.id,
  125. voucher.currency_id.name,
  126. ],
  127. 'reference': voucher.reference,
  128. 'date': voucher.date,
  129. 'amount': voucher.amount,
  130. 'amount_currency': voucher.amount * (voucher.company_id.currency_id.rate / voucher.currency_id.rate),
  131. })
  132. return values
  133. class AccountMoveLine(models.Model):
  134. _inherit = 'account.move.line'
  135. @api.model
  136. def getAccountMoveLine(self,domain):
  137. AccountMoveLine = self.env['account.move.line'].search(domain)
  138. decimal_precision = self.env['decimal.precision'].precision_get('Account')
  139. values = []
  140. for line in AccountMoveLine:
  141. values.append({
  142. 'id': line.id,
  143. 'name': line.name,
  144. 'date': line.date,
  145. 'date_maturity': line.date_maturity,
  146. 'reconcile_ref': line.reconcile_ref,
  147. 'amount_residual': line.amount_residual,
  148. 'partner_id': [
  149. line.partner_id.id,
  150. line.partner_id.name,
  151. ],
  152. 'move_id': [
  153. line.move_id.id,
  154. line.move_id.name,
  155. ],
  156. 'debit': line.credit,
  157. 'credit': line.debit,
  158. })
  159. return values
  160. class AccounPaymentTerm(models.Model):
  161. _inherit = 'account.payment.term'
  162. check_credit = fields.Boolean("Es crédito?", default=True)