initial model for wizard 'create_subscription'

This commit is contained in:
sinergia 2022-07-07 18:10:19 -05:00
parent a9f20c356f
commit a8ba3f056c
6 changed files with 67 additions and 52 deletions

View File

@ -16,3 +16,7 @@ def register():
subscription.Subscription,
subscription.SubscriptionEquipment,
module='optical_equipment', type_='model')
Pool.register(
sale.CreateSubscriptionStart,
sale.CreateSubscription,
module='sale', type_='wizard')

View File

@ -130,5 +130,3 @@ class OpticalEquipment(Workflow, ModelSQL, ModelView):
@Workflow.transition('registred')
def registred(cls, equipments):
cls.set_code(equipments)

View File

@ -93,33 +93,33 @@ class Template(metaclass=PoolMeta):
temperature = fields.Float("Temperature")
temperature_uom = fields.Many2One('product.uom', 'Temperature UOM',
domain=[('category', '=', Id('optical_equipment', "uom_cat_temperature"))],
states={'invisible' : If(Eval('temperature') == None, True)},
depends=['temperature']
domain=[('category', '=', Id('optical_equipment', "uom_cat_temperature"))],
states={'invisible' : If(Eval('temperature') == None, True)},
depends=['temperature']
)
frequency = fields.Float("Frequency")
frequency_uom = fields.Many2One('product.uom', "Frequency UOM",
domain=[('category', '=', Id('optical_equipment', 'uom_cat_frequency'))],
states={'invisible' : If(Eval('frequency') == None, True)},
depends=['frequency']
domain=[('category', '=', Id('optical_equipment', 'uom_cat_frequency'))],
states={'invisible' : If(Eval('frequency') == None, True)},
depends=['frequency']
)
wet = fields.Float("Wet")
wet_uom = fields.Many2One('product.uom', "Wet UOM",
domain=[('category', '=', Id('optical_equipment', 'uom_cat_relative_humedity'))],
states={'invisible' : If(Eval('wet') == None, True)},
depends=['wet']
domain=[('category', '=', Id('optical_equipment', 'uom_cat_relative_humedity'))],
states={'invisible' : If(Eval('wet') == None, True)},
depends=['wet']
)
voltageAC = fields.Float("Voltage AC")
voltageAC_uom = fields.Many2One('product.uom', "Voltage AC UOM",
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))],
states={'invisible' : If(Eval('voltageAC') == None, True)},
depends=['voltageAC']
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))],
states={'invisible' : If(Eval('voltageAC') == None, True)},
depends=['voltageAC']
)
voltageDC = fields.Float("Voltage DC")
voltageDC_uom = fields.Many2One('product.uom', "Voltage DC UOM",
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))],
states={'invisible' : If(Eval('voltageDC') == None, True)},
depends=['voltageDC'])
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))],
states={'invisible' : If(Eval('voltageDC') == None, True)},
depends=['voltageDC'])
useful_life = fields.Integer("Useful life")
warranty = fields.Integer("Warranty")

29
sale.py
View File

@ -3,8 +3,32 @@ from trytond.model import ModelView, ModelSQL, fields
from trytond.pyson import Eval, Bool, If
from trytond.transaction import Transaction
from trytond.wizard import (
Button, StateAction, StateTransition, StateView, Wizard)
class CreateSubscriptionStart(ModelView):
'Create Subscription Start'
__name__ = 'sale.sale.subscription.start'
start_date = fields.Date("Start Date", required=True)
end_date = fields.Date("End Date", required=True)
invoice_recurrence = fields.Many2One('sale.subscription.recurrence.rule.set', "Invoice Recurrence",
required=True)
invoice_start_date = fields.Date("Invoice Start Date",
help='Billing start date')
class CreateSubscription(Wizard):
'Create Subscription'
__name__ = 'sale.sale.subscription'
start = StateView('sale.sale.subscription.start',
'sale.create_subscription_view_form',[
Button('Cancel', 'cancel', 'tryton-cancel'),
Button('Create', 'create', 'tryton-ok', default=True),
])
class SaleLine(metaclass=PoolMeta):
'SaleLine'
__name__ = 'sale.line'
@ -21,9 +45,8 @@ class SaleLine(metaclass=PoolMeta):
return 2
@fields.depends('product', 'unit', 'quantity', 'sale',
'_parent_sale.party',
methods=['_get_tax_rule_pattern', '_get_context_sale_price',
'on_change_with_amount'])
'_parent_sale.party',methods=['_get_tax_rule_pattern',
'_get_context_sale_price','on_change_with_amount'])
def on_change_product(self):
Product = Pool().get('product.product')
if not self.product:

View File

@ -6,4 +6,19 @@
<field name="inherit" ref="sale.sale_line_view_form"/>
<field name="name">sale_line_form</field>
</record>
<record model="ir.ui.view" id="create_subscription_view_form">
<field name="model">sale.sale.subscription.start</field>
<field name="type">form</field>
<field name="name">create_subscription_form</field>
</record>
<record model="ir.action.wizard" id="create_subscription">
<field name="name">Subscription</field>
<field name="wiz_name">sale.sale.subscription</field>
<field name="model">sale.sale</field>
</record>
<record model="ir.action.keyword" id="create_subscription_keyword">
<field name="keyword">form_action</field>
<field name="model">sale.sale,-1</field>
<field name="action" ref="create_subscription"/>
</record>
</tryton>

View File

@ -9,8 +9,8 @@ class Subscription(metaclass=PoolMeta):
equipments = fields.Many2Many('sale.subscription-optical_equipment.equipment', 'subscription',
'equipment', "Equipments")
"""@classmethod
@classmethod
@ModelView.button
@Workflow.transition('running')
@set_employee('run_by')
@ -20,36 +20,6 @@ class Subscription(metaclass=PoolMeta):
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'
@ -57,3 +27,8 @@ class SubscriptionEquipment(ModelSQL):
subscription = fields.Many2One('sale.subscription', 'Subscription', select=True)
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True)
class Line(metaclass=PoolMeta):
__name__ = 'sale.subscriptioin.line'