from trytond.pool import Pool, PoolMeta from trytond.model import ( ModelSQL, ModelView, Workflow, fields) from trytond.modules.company.model import set_employee from trytond.exceptions import UserError class Subscription(metaclass=PoolMeta): __name__ = 'sale.subscription' equipments = fields.Many2Many('sale.subscription-optical_equipment.equipment', 'subscription', 'equipment', "Equipments") """@classmethod @ModelView.button @Workflow.transition('running') @set_employee('run_by') def run(cls, subscriptions): pool = Pool() Equipment = pool.get('optical_equipment.equipment') Line = pool.get('sale.subscription.line') lines = [] subscription = subscriptions[0] for unit in subscription.equipments: unit.propietary=subscription.party, unit.propietary_address=subscription.invoice_address, unit.mark_category=unit.mark_category, unit.model_category=unit.model_category unit.save() for subscription in subscriptions: if not subscription.next_invoice_date: subscription.next_invoice_date = ( subscription.compute_next_invoice_date()) for line in subscription.lines: if (line.next_consumption_date is None and not line.consumed_until): line.next_consumption_date = ( line.compute_next_consumption_date()) lines.extend(subscription.lines) Line.save(lines) cls.save(subscriptions)""" """ @classmethod def __setup__(cls): super(Subscription, cls).__setup__() cls._order = [ ('end_date', 'DESC'), ('id', 'DESC'), ] """ class SubscriptionEquipment(ModelSQL): 'Optical Equipment - Subscription' __name__ = 'sale.subscription-optical_equipment.equipment' subscription = fields.Many2One('sale.subscription', 'Subscription', select=True) equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True)