68 lines
2.4 KiB
Python
68 lines
2.4 KiB
Python
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)
|
|
|
|
@classmethod
|
|
def __setup__(cls):
|
|
super(SubscriptionEquipment, cls).__setup__()
|
|
cls._order = [
|
|
('start_date', 'DESC'),
|
|
('id', 'DESC'),
|
|
]
|