account_invoice.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. # -*- coding: utf-8 -*-
  2. from openerp import models, fields, api
  3. class AccountInvoice(models.Model):
  4. _inherit = 'account.invoice'
  5. description_completo = fields.Char(string='Descripción Completa', compute='_compute_description_completo_invoice', store=True)
  6. @api.depends('invoice_line')
  7. def _compute_description_completo_invoice(self):
  8. for invoice in self:
  9. descriptions = [line.name for line in invoice.invoice_line]
  10. invoice.description_completo = ', '.join(descriptions)
  11. @api.multi
  12. def action_invoice_paid(self):
  13. res = super(AccountInvoice, self).action_invoice_paid()
  14. # Copiar el valor de description_completo de account.invoice a account.bank.statement.line
  15. for invoice in self:
  16. if invoice.state in ('open', 'paid'):
  17. for statement in invoice.statement_ids:
  18. for line in statement.line_ids:
  19. line.write({'description_completo': invoice.description_completo}) # Usar el campo 'description_completo'
  20. return res
  21. class AccountBankStatementLine(models.Model):
  22. _inherit = 'account.bank.statement.line'
  23. description_completo = fields.Char(string='Descripción Completa', compute='_compute_description_completo_statement', store=True)
  24. @api.depends('name')
  25. def _compute_description_completo_statement(self):
  26. for line in self:
  27. # Buscar la factura relacionada por el número (number)
  28. invoice = self.env['account.invoice'].search([('number', '=', line.name)], limit=1)
  29. line.description_completo = invoice.description_completo if invoice else ''