initial model for wizard 'create_subscription'
This commit is contained in:
parent
a9f20c356f
commit
a8ba3f056c
@ -16,3 +16,7 @@ def register():
|
|||||||
subscription.Subscription,
|
subscription.Subscription,
|
||||||
subscription.SubscriptionEquipment,
|
subscription.SubscriptionEquipment,
|
||||||
module='optical_equipment', type_='model')
|
module='optical_equipment', type_='model')
|
||||||
|
Pool.register(
|
||||||
|
sale.CreateSubscriptionStart,
|
||||||
|
sale.CreateSubscription,
|
||||||
|
module='sale', type_='wizard')
|
||||||
|
@ -130,5 +130,3 @@ class OpticalEquipment(Workflow, ModelSQL, ModelView):
|
|||||||
@Workflow.transition('registred')
|
@Workflow.transition('registred')
|
||||||
def registred(cls, equipments):
|
def registred(cls, equipments):
|
||||||
cls.set_code(equipments)
|
cls.set_code(equipments)
|
||||||
|
|
||||||
|
|
||||||
|
30
product.py
30
product.py
@ -93,33 +93,33 @@ class Template(metaclass=PoolMeta):
|
|||||||
|
|
||||||
temperature = fields.Float("Temperature")
|
temperature = fields.Float("Temperature")
|
||||||
temperature_uom = fields.Many2One('product.uom', 'Temperature UOM',
|
temperature_uom = fields.Many2One('product.uom', 'Temperature UOM',
|
||||||
domain=[('category', '=', Id('optical_equipment', "uom_cat_temperature"))],
|
domain=[('category', '=', Id('optical_equipment', "uom_cat_temperature"))],
|
||||||
states={'invisible' : If(Eval('temperature') == None, True)},
|
states={'invisible' : If(Eval('temperature') == None, True)},
|
||||||
depends=['temperature']
|
depends=['temperature']
|
||||||
)
|
)
|
||||||
frequency = fields.Float("Frequency")
|
frequency = fields.Float("Frequency")
|
||||||
frequency_uom = fields.Many2One('product.uom', "Frequency UOM",
|
frequency_uom = fields.Many2One('product.uom', "Frequency UOM",
|
||||||
domain=[('category', '=', Id('optical_equipment', 'uom_cat_frequency'))],
|
domain=[('category', '=', Id('optical_equipment', 'uom_cat_frequency'))],
|
||||||
states={'invisible' : If(Eval('frequency') == None, True)},
|
states={'invisible' : If(Eval('frequency') == None, True)},
|
||||||
depends=['frequency']
|
depends=['frequency']
|
||||||
)
|
)
|
||||||
wet = fields.Float("Wet")
|
wet = fields.Float("Wet")
|
||||||
wet_uom = fields.Many2One('product.uom', "Wet UOM",
|
wet_uom = fields.Many2One('product.uom', "Wet UOM",
|
||||||
domain=[('category', '=', Id('optical_equipment', 'uom_cat_relative_humedity'))],
|
domain=[('category', '=', Id('optical_equipment', 'uom_cat_relative_humedity'))],
|
||||||
states={'invisible' : If(Eval('wet') == None, True)},
|
states={'invisible' : If(Eval('wet') == None, True)},
|
||||||
depends=['wet']
|
depends=['wet']
|
||||||
)
|
)
|
||||||
voltageAC = fields.Float("Voltage AC")
|
voltageAC = fields.Float("Voltage AC")
|
||||||
voltageAC_uom = fields.Many2One('product.uom', "Voltage AC UOM",
|
voltageAC_uom = fields.Many2One('product.uom', "Voltage AC UOM",
|
||||||
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))],
|
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))],
|
||||||
states={'invisible' : If(Eval('voltageAC') == None, True)},
|
states={'invisible' : If(Eval('voltageAC') == None, True)},
|
||||||
depends=['voltageAC']
|
depends=['voltageAC']
|
||||||
)
|
)
|
||||||
voltageDC = fields.Float("Voltage DC")
|
voltageDC = fields.Float("Voltage DC")
|
||||||
voltageDC_uom = fields.Many2One('product.uom', "Voltage DC UOM",
|
voltageDC_uom = fields.Many2One('product.uom', "Voltage DC UOM",
|
||||||
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))],
|
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))],
|
||||||
states={'invisible' : If(Eval('voltageDC') == None, True)},
|
states={'invisible' : If(Eval('voltageDC') == None, True)},
|
||||||
depends=['voltageDC'])
|
depends=['voltageDC'])
|
||||||
|
|
||||||
useful_life = fields.Integer("Useful life")
|
useful_life = fields.Integer("Useful life")
|
||||||
warranty = fields.Integer("Warranty")
|
warranty = fields.Integer("Warranty")
|
||||||
|
29
sale.py
29
sale.py
@ -3,8 +3,32 @@ from trytond.model import ModelView, ModelSQL, fields
|
|||||||
from trytond.pyson import Eval, Bool, If
|
from trytond.pyson import Eval, Bool, If
|
||||||
from trytond.transaction import Transaction
|
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):
|
class SaleLine(metaclass=PoolMeta):
|
||||||
'SaleLine'
|
'SaleLine'
|
||||||
__name__ = 'sale.line'
|
__name__ = 'sale.line'
|
||||||
@ -21,9 +45,8 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
return 2
|
return 2
|
||||||
|
|
||||||
@fields.depends('product', 'unit', 'quantity', 'sale',
|
@fields.depends('product', 'unit', 'quantity', 'sale',
|
||||||
'_parent_sale.party',
|
'_parent_sale.party',methods=['_get_tax_rule_pattern',
|
||||||
methods=['_get_tax_rule_pattern', '_get_context_sale_price',
|
'_get_context_sale_price','on_change_with_amount'])
|
||||||
'on_change_with_amount'])
|
|
||||||
def on_change_product(self):
|
def on_change_product(self):
|
||||||
Product = Pool().get('product.product')
|
Product = Pool().get('product.product')
|
||||||
if not self.product:
|
if not self.product:
|
||||||
|
15
sale.xml
15
sale.xml
@ -6,4 +6,19 @@
|
|||||||
<field name="inherit" ref="sale.sale_line_view_form"/>
|
<field name="inherit" ref="sale.sale_line_view_form"/>
|
||||||
<field name="name">sale_line_form</field>
|
<field name="name">sale_line_form</field>
|
||||||
</record>
|
</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>
|
</tryton>
|
||||||
|
@ -9,8 +9,8 @@ class Subscription(metaclass=PoolMeta):
|
|||||||
|
|
||||||
equipments = fields.Many2Many('sale.subscription-optical_equipment.equipment', 'subscription',
|
equipments = fields.Many2Many('sale.subscription-optical_equipment.equipment', 'subscription',
|
||||||
'equipment', "Equipments")
|
'equipment', "Equipments")
|
||||||
|
|
||||||
"""@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('running')
|
@Workflow.transition('running')
|
||||||
@set_employee('run_by')
|
@set_employee('run_by')
|
||||||
@ -20,36 +20,6 @@ class Subscription(metaclass=PoolMeta):
|
|||||||
Line = pool.get('sale.subscription.line')
|
Line = pool.get('sale.subscription.line')
|
||||||
lines = []
|
lines = []
|
||||||
subscription = subscriptions[0]
|
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):
|
class SubscriptionEquipment(ModelSQL):
|
||||||
'Optical Equipment - Subscription'
|
'Optical Equipment - Subscription'
|
||||||
@ -57,3 +27,8 @@ class SubscriptionEquipment(ModelSQL):
|
|||||||
|
|
||||||
subscription = fields.Many2One('sale.subscription', 'Subscription', select=True)
|
subscription = fields.Many2One('sale.subscription', 'Subscription', select=True)
|
||||||
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True)
|
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True)
|
||||||
|
|
||||||
|
|
||||||
|
class Line(metaclass=PoolMeta):
|
||||||
|
__name__ = 'sale.subscriptioin.line'
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user