From a3046cf8f444208faeda4fe59ce2f00f3bd65b24 Mon Sep 17 00:00:00 2001 From: sinergia Date: Tue, 21 Jun 2022 19:41:18 -0500 Subject: [PATCH] relation Many2Many equipment to subscription in model equipment --- equipment.py | 38 +++++++++++++++++++++++---------- subscription.py | 2 +- view/optical_equipment_form.xml | 1 + 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/equipment.py b/equipment.py index 9222ddf..4643f5f 100644 --- a/equipment.py +++ b/equipment.py @@ -1,5 +1,7 @@ +from collections import defaultdict +from trytond.pool import Pool from trytond.model import ModelSQL, ModelView, fields - +from trytond.exceptions import UserError class OpticalEquipment(ModelSQL, ModelView): 'Optical Equipment' @@ -8,7 +10,6 @@ class OpticalEquipment(ModelSQL, ModelView): company = fields.Many2One('company.company', "Company") location = fields.Many2One('stock.location', "Location") party = fields.Many2One('party.party', "Party") - #equipment_party = fields.Many2Many('optical.equipment-party.party', 'party', 'equipment', "Equipments") party_address = fields.Many2One('party.address', "Party Address") #origin = fields.reference("Origin", selection='get_origin', select=True) product = fields.Many2One('product.product', "Product") @@ -29,15 +30,30 @@ class OpticalEquipment(ModelSQL, ModelView): serial = fields.Char("Serial", size=None) health_register = fields.Char("Health Register", size=None) + subscription_history = fields.Many2Many('sale.subscription-optical.equipment', 'equipment', 'subscription', "Subscriptions") + @staticmethod def get_origin(): return None -""" -class OpticalEquipmentParty(ModelSQL): - 'Optical Equipment - Party' - __name__ = 'optical.equipment-party.party' - _table = 'optical_equipment_party_party' - - party = fields.Many2One('party.party', 'Party', select=True) - equipment = fields.Many2One('optical.equipment', 'Equipment', select=True) -""" + + @classmethod + def get_subscription_history(cls, records, names): + pool = Pool() + ids = [] + for record in records: + ids.append(record.id) + + Subscriptions = pool.get('sale.subscription-optical.equipment') + subscriptions = Subscriptions.search([("equipment", 'in', ids)]) + #raise UserError(str(ids)) + subscriptions_history_id = [] + DICC = {} + + for subscription in subscriptions: + DICC[subscription.equipment.id] = subscription.id + + #raise UserError(str(type(subscriptions_history_id[0]))) + #raise UserError(str(list(subscriptions_history_id[0]))) + #raise UserError(str(type(subscriptions_history_id))) + + return DICC diff --git a/subscription.py b/subscription.py index 43406ae..cbe2ec7 100644 --- a/subscription.py +++ b/subscription.py @@ -10,5 +10,5 @@ class SubscriptionEquipment(ModelSQL): 'Optical Equipment - Subscription' __name__ = 'sale.subscription-optical.equipment' - subscription = fields.Many2One('sale.subscription.line', 'Subscription Line', select=True) + subscription = fields.Many2One('sale.subscription', 'Subscription', select=True) equipment = fields.Many2One('optical.equipment', 'Equipment', select=True) diff --git a/view/optical_equipment_form.xml b/view/optical_equipment_form.xml index 3a76d1e..90b5ca9 100644 --- a/view/optical_equipment_form.xml +++ b/view/optical_equipment_form.xml @@ -2,6 +2,7 @@
+