diff --git a/__init__.py b/__init__.py index d87c25d..3dda22c 100644 --- a/__init__.py +++ b/__init__.py @@ -24,6 +24,7 @@ def register(): subscription.CreateInitialContract, subscription.CreateNextProrogue, subscription.ContractSupscription, + subscription.ContractEquipment, subscription.SubscriptionEquipment, module='optical_equipment', type_='model') Pool.register( diff --git a/equipment.py b/equipment.py index 55b306b..ac60e77 100644 --- a/equipment.py +++ b/equipment.py @@ -93,6 +93,10 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView): 'equipment','subscription', "Subscriptions", states={'readonly': True} ) + + contract_history = fields.Many2Many('optical_equipment.contract-optical_equipment.equipment', + 'equipment', 'contract') + maintenance_history = fields.Function( fields.Many2Many('optical_equipment.maintenance-optical_equipment.equipment', 'equipment', 'maintenance',"Maintenances"), 'get_maintenances_of_equipment') diff --git a/subscription.py b/subscription.py index e567ae2..a79df5b 100644 --- a/subscription.py +++ b/subscription.py @@ -68,8 +68,8 @@ class Contract(ModelSQL, ModelView): contract = fields.Many2One('sale.subscription', "Contract", readonly=True) prorogues = fields.Many2Many('sale.subscription-optical_equipment.contract', 'contract', 'subscription', 'Prorrogation') - equipments = fields.Many2Many('sale.subscription-optical_equipment.equipment', 'subscription', - 'equipment', "Equipments", readonly=True, + equipments = fields.Many2Many('optical_equipment.contract-optical_equipment.equipment', 'equipment', + 'contract', "Equipments", readonly=True, domain=[['OR', ('state', '=', 'registred'), ('state', '=', 'uncontrated')] @@ -223,10 +223,9 @@ class CreateProrogue(Wizard): contract.prorogues += (contract.id,) contract.equipments = equipments_to_subscription - - #raise UserError(str(contract.prorogues)) contract.save() + class CreateInitialContract(ModelView): 'Create Initial Contract' @@ -305,6 +304,8 @@ class CreateContract(Wizard): def _create_contract_base(self,dates, subscription): pool = Pool() + #Subscription = pool.get('sale.subscription') + #subscription = Subscription.search(['id', '=', subscription.id]) ContractBase = pool.get('optical_equipment.contract') a = self._subscription_start @@ -355,8 +356,12 @@ class CreateContract(Wizard): lines=subscription_lines, equipments=equipments_to_subscription, ) + antes = subscription.id subscription.save() - self._create_contract_base(a, subscription.id) + despues = subscription.id + andes = str(antes) + str(despues) + #raise UserError(str(andes)) + self._create_contract_base(a, subscription) class Subscription(metaclass=PoolMeta): @@ -464,6 +469,14 @@ class CreateSubscriptionInvoice(Wizard): return 'end' + +class ContractEquipment(ModelSQL): + 'Optical Equipment - Contract' + __name__ = 'optical_equipment.contract-optical_equipment.equipment' + + equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True) + contract = fields.Many2One('optical_equipment.contract', 'Contract', select=True) + class SubscriptionEquipment(ModelSQL): 'Optical Equipment - Subscription' __name__ = 'sale.subscription-optical_equipment.equipment'