diff --git a/equipment.py b/equipment.py
index 6d5adf5..404ed92 100644
--- a/equipment.py
+++ b/equipment.py
@@ -58,6 +58,8 @@ class OpticalEquipment(Workflow, ModelSQL, ModelView):
states={'readonly': True})
current_subscription = fields.Many2One('sale.subscription')
+ software_version = fields.Char("Software version", size=None)
+
@classmethod
def __setup__(cls):
diff --git a/product.py b/product.py
index f8d71a3..525a0ca 100644
--- a/product.py
+++ b/product.py
@@ -49,15 +49,20 @@ class Template(metaclass=PoolMeta):
equipment = fields.Boolean('It is equipment',
states={'invisible': Eval('type', 'goods') != 'goods',
- },depends=['type'])
-
+ },depends=['type']
+ )
maintenance_activity = fields.Boolean('Maintenance Activity',
states={'invisible': Eval('type', 'service') != 'service',
- },depends=['type'])
+ 'readonly': If(Eval('equipment',True), True)
+ | If(Eval('replacement',True), True)
+ },depends=['type']
+ )
replacement = fields.Boolean('Replacement',
states={'invisible': Eval('type', 'goods') != 'goods',
- },depends=['type'])
-
+ 'readonly': If(Eval('equipment',True), True)
+ | If(Eval('maintenance_activity',True), True)
+ },depends=['type']
+ )
equipment_type = fields.Selection(_EQUIPMENT_TYPE, 'Equipment type',
states={'required': Eval('equipment', False)},
depends=['equipment']
@@ -89,10 +94,10 @@ class Template(metaclass=PoolMeta):
states={'required': Eval('equipment', False)},
depends=['equipment']
)
- reference = fields.Char("Reference", size=None)
+ reference_category = fields.Many2One('product.category', "Reference",
+ domain=[('parent', '=', Eval('model_category'))],
+ )
origin_country = fields.Many2One('country.country',"Origin Country")
- software_version = fields.Char(
- "Software version", size=None)
refurbish = fields.Boolean('Refurbish')
#These are measurements required for the equipments, are in this place
@@ -203,10 +208,16 @@ class Template(metaclass=PoolMeta):
return False
- @fields.depends('mark_category', 'model_category')
+ @fields.depends('mark_category', 'model_category', 'reference_category')
def on_change_mark_category(self):
- if self.mark_category:
+ if not self.mark_category:
self.model_category = None
+ self.reference_category = None
+
+ @fields.depends('model_category', 'reference_category')
+ def on_change_model_category(self):
+ if not self.model_category:
+ self.reference_category = None
@classmethod
def view_attributes(cls):
diff --git a/sale.py b/sale.py
index f12c216..a38ccbb 100644
--- a/sale.py
+++ b/sale.py
@@ -51,62 +51,52 @@ class CreateSubscription(Wizard):
])
create_subscription = StateAction('sale_subscription.act_subscription_form')
- def get_subscription_lines(self):
- pool = Pool()
- SubscriptionLine = pool.get('sale.subscription.line')
- subscription_line = SubscriptionLine()
- subscription_line.start_date = self.start_date
- subscription_line.end_date = self.end_date
- subscription_line.service = self.service
- subcription_line.quantity = self.quantity
- subcription_line.unit = self.service.product.unit
- subscription_line.consumpiton_recurrence = self.service.consumption_recurrence
- #raise UserError(str(dir(subscription_line)))
- return [subscription_line]
-
@property
def _subscription_start(self):
- sale = self.records[0]
- #raise UserError(str(dir(self.records[0])))
subscription_lines = []
- #subscription.lines.append(get_subscription_lines())
- return dict(start_date = self.start.start_date,
- end_date = self.start.end_date,
- invoice_recurrence = self.start.invoice_recurrence,
- invoice_start_date = self.start.invoice_start_date,
- service = self.start.service,
- quantity = self.start.quantity,
- party=sale.party.id,
- contact=sale.contact.id if sale.contact else None,
- invoice_party=sale.invoice_party.id if sale.invoice_party else None,
- invoice_address=sale.invoice_address.id,
- payment_term=sale.payment_term.id if sale.payment_term else None,
- )
-
+ return dict(start_date=self.start.start_date,
+ end_date=self.start.end_date,
+ invoice_recurrence=self.start.invoice_recurrence,
+ invoice_start_date=self.start.invoice_start_date,
+ service=self.start.service,
+ quantity=self.start.quantity,
+ unit_price=self.start.unit_price)
+
+
def do_create_subscription(self, action):
pool = Pool()
Subscription = pool.get('sale.subscription')
- #raise UserError(str(dir(self)))
+ SubscriptionLine = pool.get('sale.subscription.line')
+
+ sale = self.records[0]
a = self._subscription_start
- #self.get_subscription_lines()
- #raise UserError(str(dir(Subscription)))
+
+ subscription_lines = [SubscriptionLine(
+ start_date=a['start_date'],
+ end_date=a['end_date'],
+ consumption_recurrence=a['invoice_recurrence'],
+ service=a['service'],
+ unit=a['service'].product.default_uom,
+ quantity=a['quantity'],
+ unit_price=a['unit_price']
+ )]
+
subscription = Subscription(
start_date=a['start_date'],
end_date=a['end_date'],
invoice_recurrence=a['invoice_recurrence'],
invoice_start_date=a['invoice_start_date'],
- party=a['party'],
- contact=a['contact'],
- invoice_party=a['contact'],
- invoice_address=a['invoice_address'],
- payment_term=a['payment_term'],
+ party=sale.party.id,
+ contact=sale.contact.id if sale.contact else None,
+ invoice_party=sale.invoice_party.id if sale.invoice_party else None,
+ invoice_address=sale.invoice_address.id,
+ payment_term=sale.payment_term.id if sale.payment_term else None,
+ lines=subscription_lines,
)
- subscription.lines.append(get_subscription_lines())
subscription.save()
- #raise UserError(str(dir(subscription)))
-
-
+
+
class SaleLine(metaclass=PoolMeta):
'SaleLine'
__name__ = 'sale.line'
diff --git a/view/optical_equipment_form.xml b/view/optical_equipment_form.xml
index 20aed25..3648c1e 100644
--- a/view/optical_equipment_form.xml
+++ b/view/optical_equipment_form.xml
@@ -42,8 +42,7 @@
-
-
+
diff --git a/view/template_form.xml b/view/template_form.xml
index a6e717a..8b0de21 100644
--- a/view/template_form.xml
+++ b/view/template_form.xml
@@ -12,13 +12,13 @@ this repository contains the full copyright notices and license terms. -->
-
-
+
+
@@ -33,12 +33,11 @@ this repository contains the full copyright notices and license terms. -->
-
-
+