initial model for wizard 'create_subscription'
This commit is contained in:
parent
a9f20c356f
commit
a8ba3f056c
@ -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')
|
||||
|
@ -130,5 +130,3 @@ class OpticalEquipment(Workflow, ModelSQL, ModelView):
|
||||
@Workflow.transition('registred')
|
||||
def registred(cls, equipments):
|
||||
cls.set_code(equipments)
|
||||
|
||||
|
||||
|
29
sale.py
29
sale.py
@ -3,6 +3,30 @@ 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):
|
||||
@ -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:
|
||||
|
15
sale.xml
15
sale.xml
@ -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>
|
||||
|
@ -10,7 +10,7 @@ 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')
|
||||
@ -21,39 +21,14 @@ class Subscription(metaclass=PoolMeta):
|
||||
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)
|
||||
|
||||
|
||||
class Line(metaclass=PoolMeta):
|
||||
__name__ = 'sale.subscriptioin.line'
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user