diff --git a/academic/__manifest__.py b/academic/__manifest__.py index b33b072f..553e5bd4 100644 --- a/academic/__manifest__.py +++ b/academic/__manifest__.py @@ -19,7 +19,7 @@ ############################################################################## { 'name': 'Academic', - 'version': "17.0.1.14.0", + 'version': "17.0.1.15.0", 'sequence': 14, 'summary': '', 'author': 'ADHOC SA', diff --git a/academic/i18n/es.po b/academic/i18n/es.po index 778ef128..220aec45 100644 --- a/academic/i18n/es.po +++ b/academic/i18n/es.po @@ -1202,3 +1202,9 @@ msgstr "asignatura" #: model:ir.model.fields,help:academic.field_res_users__disabled_person msgid "¿Alumno/a con Dificultades de aprendizaje?" msgstr "" + +#. module: academic +#: model:ir.model.fields,field_description:academic.field_res_partner__payment_responsible_ids +#: model:ir.model.fields,field_description:academic.field_res_users__payment_responsible_ids +msgid "Payment Responsible" +msgstr "Responsables de pago" diff --git a/academic/models/account_move.py b/academic/models/account_move.py index 35c6b891..6c793db9 100644 --- a/academic/models/account_move.py +++ b/academic/models/account_move.py @@ -31,7 +31,7 @@ def _compute_student_ids(self): def _post(self, soft=True): for rec in self: - partners_invoice = rec.student_id.get_payment_responsible() if rec.student_id else self.env['res.partner'] + partners_invoice = rec.student_id.payment_responsible_ids if rec.student_id else self.env['res.partner'] rec.message_subscribe([ payment_responsible.id for payment_responsible in rec.partner_id | partners_invoice diff --git a/academic/models/res_partner.py b/academic/models/res_partner.py index 38481061..bce17ea1 100644 --- a/academic/models/res_partner.py +++ b/academic/models/res_partner.py @@ -80,6 +80,7 @@ class ResPartner(models.Model): student_link_ids = fields.One2many( 'res.partner.link', 'student_id', string='Contactos y Roles', copy=True, compute='_compute_student_links', readonly=False, store=True, recursive=True) + payment_responsible_ids = fields.Many2many('res.partner', 'payment_responsible_ids_student_id_rel', 'partner_id','student_id', compute='_compute_payment_responsible', store=True) @api.depends('parent_links_by_student', 'parent_id.student_link_ids') def _compute_student_links(self): @@ -229,9 +230,10 @@ def _compute_current_main_group(self): student_group = rec.student_group_ids.filtered(lambda g: g.year == date.today().year and not g.subject_id) rec.current_main_group_id = student_group[:1] - @api.model - def get_payment_responsible(self): - self.ensure_one() - return self.student_link_ids.filtered( + @api.depends('student_link_ids', 'student_link_ids.role_ids') + def _compute_payment_responsible(self): + for rec in self.filtered(lambda x: x.partner_type == 'student'): + partners = rec.student_link_ids.filtered( lambda x: self.env.ref('academic.paying_role') in x.role_ids ).mapped('partner_id') + rec.payment_responsible_ids = [(6, 0, partners.ids)] diff --git a/academic/models/sale_order.py b/academic/models/sale_order.py index 62d2bd2c..80e1148c 100644 --- a/academic/models/sale_order.py +++ b/academic/models/sale_order.py @@ -17,7 +17,7 @@ class SaleOrder(models.Model): def _compute_partner_invoice(self): orders = self.filtered('partner_id') for rec in orders: - rec.partner_invoice_ids = rec.partner_id.get_payment_responsible() + rec.partner_invoice_ids = rec.partner_id.payment_responsible_ids (self - orders).partner_invoice_ids = False @api.depends('partner_invoice_ids') diff --git a/academic/wizards/account_move_send.py b/academic/wizards/account_move_send.py index e13682dc..295b85a9 100644 --- a/academic/wizards/account_move_send.py +++ b/academic/wizards/account_move_send.py @@ -9,5 +9,5 @@ class AccountMoveSend(models.TransientModel): _inherit = 'account.move.send' def _get_default_mail_partner_ids(self, move, mail_template, mail_lang): - partners_invoice = move.student_id.get_payment_responsible() if move.student_id else self.env['res.partner'] + partners_invoice = move.student_id.payment_responsible_ids if move.student_id else self.env['res.partner'] return super()._get_default_mail_partner_ids(move, mail_template, mail_lang) | partners_invoice