diff --git a/__init__.py b/__init__.py
index d33d6d1..e4a80fb 100644
--- a/__init__.py
+++ b/__init__.py
@@ -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')
diff --git a/equipment.py b/equipment.py
index 9b22e41..6d5adf5 100644
--- a/equipment.py
+++ b/equipment.py
@@ -130,5 +130,3 @@ class OpticalEquipment(Workflow, ModelSQL, ModelView):
@Workflow.transition('registred')
def registred(cls, equipments):
cls.set_code(equipments)
-
-
diff --git a/product.py b/product.py
index bf245b3..4c79f88 100644
--- a/product.py
+++ b/product.py
@@ -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")
diff --git a/sale.py b/sale.py
index a916ec3..067a81b 100644
--- a/sale.py
+++ b/sale.py
@@ -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:
diff --git a/sale.xml b/sale.xml
index 706765d..78125ef 100644
--- a/sale.xml
+++ b/sale.xml
@@ -6,4 +6,19 @@
sale_line_form
+
+ sale.sale.subscription.start
+ form
+ create_subscription_form
+
+
+ Subscription
+ sale.sale.subscription
+ sale.sale
+
+
+ form_action
+ sale.sale,-1
+
+
diff --git a/subscription.py b/subscription.py
index bf259ad..b091b63 100644
--- a/subscription.py
+++ b/subscription.py
@@ -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'
+