diff --git a/sale.py b/sale.py
index f792a00..f9d8235 100644
--- a/sale.py
+++ b/sale.py
@@ -1,8 +1,9 @@
from trytond.pool import Pool, PoolMeta
from trytond.model import ModelView, ModelSQL, fields
+from trytond.modules.currency.fields import Monetary
from trytond.pyson import Eval, Bool, If
from decimal import Decimal
-
+from trytond.modules.product import price_digits
from trytond.transaction import Transaction
from trytond.exceptions import UserError
@@ -16,12 +17,15 @@ class CreateSubscriptionStart(ModelView):
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_recurrence = fields.Many2One('sale.subscription.recurrence.rule.set',
+ "Invoice Recurrence",required=True)
invoice_start_date = fields.Date("Invoice Start Date",
help='Billing start date')
service = fields.Many2One('sale.subscription.service', "Service")
quantity = fields.Float("Quantity", digits='unit')
+ unit_price = Monetary("Unit Price", currency='currency',
+ digits=price_digits,
+ )
@classmethod
def default_start_date(cls):
@@ -47,28 +51,45 @@ 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):
- #raise UserError(str(dir(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,
+ 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)
+ payment_term=sale.payment_term.id if sale.payment_term else None,
+ )
def do_create_subscription(self, action):
pool = Pool()
Subscription = pool.get('sale.subscription')
- #SubscriptionLine = pool.get('sale.subscription.line')
- raise UserError(str(dir(Subscription.lines)))
+ #raise UserError(str(dir(self)))
a = self._subscription_start
+ #self.get_subscription_lines()
+ #raise UserError(str(dir(Subscription)))
subscription = Subscription(
start_date=a['start_date'],
end_date=a['end_date'],
@@ -80,6 +101,7 @@ class CreateSubscription(Wizard):
invoice_address=a['invoice_address'],
payment_term=a['payment_term'],
)
+ subscription.lines.append(get_subscription_lines())
subscription.save()
#raise UserError(str(dir(subscription)))
@@ -96,8 +118,7 @@ class SaleLine(metaclass=PoolMeta):
address_equipment = fields.Many2One('party.address', "Direccion")
unit_digits = fields.Function(fields.Integer('Unit Digits'),
'on_change_with_unit_digits')
-
-
+
def on_change_with_unit_digits(self, name=None):
if self.unit:
return self.unit.digits
diff --git a/view/create_subscription_form.xml b/view/create_subscription_form.xml
index 55922b5..c407ca4 100644
--- a/view/create_subscription_form.xml
+++ b/view/create_subscription_form.xml
@@ -21,5 +21,7 @@ this repository contains the full copyright notices and license terms. -->
+
+