add lines to subcription
This commit is contained in:
parent
76513e61c1
commit
3d14ee5dc0
39
sale.py
39
sale.py
@ -1,8 +1,9 @@
|
|||||||
from trytond.pool import Pool, PoolMeta
|
from trytond.pool import Pool, PoolMeta
|
||||||
from trytond.model import ModelView, ModelSQL, fields
|
from trytond.model import ModelView, ModelSQL, fields
|
||||||
|
from trytond.modules.currency.fields import Monetary
|
||||||
from trytond.pyson import Eval, Bool, If
|
from trytond.pyson import Eval, Bool, If
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
from trytond.modules.product import price_digits
|
||||||
from trytond.transaction import Transaction
|
from trytond.transaction import Transaction
|
||||||
from trytond.exceptions import UserError
|
from trytond.exceptions import UserError
|
||||||
|
|
||||||
@ -16,12 +17,15 @@ class CreateSubscriptionStart(ModelView):
|
|||||||
|
|
||||||
start_date = fields.Date("Start Date", required=True)
|
start_date = fields.Date("Start Date", required=True)
|
||||||
end_date = fields.Date("End Date", required=True)
|
end_date = fields.Date("End Date", required=True)
|
||||||
invoice_recurrence = fields.Many2One('sale.subscription.recurrence.rule.set', "Invoice Recurrence",
|
invoice_recurrence = fields.Many2One('sale.subscription.recurrence.rule.set',
|
||||||
required=True)
|
"Invoice Recurrence",required=True)
|
||||||
invoice_start_date = fields.Date("Invoice Start Date",
|
invoice_start_date = fields.Date("Invoice Start Date",
|
||||||
help='Billing start date')
|
help='Billing start date')
|
||||||
service = fields.Many2One('sale.subscription.service', "Service")
|
service = fields.Many2One('sale.subscription.service', "Service")
|
||||||
quantity = fields.Float("Quantity", digits='unit')
|
quantity = fields.Float("Quantity", digits='unit')
|
||||||
|
unit_price = Monetary("Unit Price", currency='currency',
|
||||||
|
digits=price_digits,
|
||||||
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def default_start_date(cls):
|
def default_start_date(cls):
|
||||||
@ -47,28 +51,45 @@ class CreateSubscription(Wizard):
|
|||||||
])
|
])
|
||||||
create_subscription = StateAction('sale_subscription.act_subscription_form')
|
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
|
@property
|
||||||
def _subscription_start(self):
|
def _subscription_start(self):
|
||||||
#raise UserError(str(dir(self)))
|
|
||||||
sale = self.records[0]
|
sale = self.records[0]
|
||||||
#raise UserError(str(dir(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,
|
return dict(start_date = self.start.start_date,
|
||||||
end_date = self.start.end_date,
|
end_date = self.start.end_date,
|
||||||
invoice_recurrence = self.start.invoice_recurrence,
|
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,
|
quantity = self.start.quantity,
|
||||||
party=sale.party.id,
|
party=sale.party.id,
|
||||||
contact=sale.contact.id if sale.contact else None,
|
contact=sale.contact.id if sale.contact else None,
|
||||||
invoice_party=sale.invoice_party.id if sale.invoice_party else None,
|
invoice_party=sale.invoice_party.id if sale.invoice_party else None,
|
||||||
invoice_address=sale.invoice_address.id,
|
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):
|
def do_create_subscription(self, action):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Subscription = pool.get('sale.subscription')
|
Subscription = pool.get('sale.subscription')
|
||||||
#SubscriptionLine = pool.get('sale.subscription.line')
|
#raise UserError(str(dir(self)))
|
||||||
raise UserError(str(dir(Subscription.lines)))
|
|
||||||
a = self._subscription_start
|
a = self._subscription_start
|
||||||
|
#self.get_subscription_lines()
|
||||||
|
#raise UserError(str(dir(Subscription)))
|
||||||
subscription = Subscription(
|
subscription = Subscription(
|
||||||
start_date=a['start_date'],
|
start_date=a['start_date'],
|
||||||
end_date=a['end_date'],
|
end_date=a['end_date'],
|
||||||
@ -80,6 +101,7 @@ class CreateSubscription(Wizard):
|
|||||||
invoice_address=a['invoice_address'],
|
invoice_address=a['invoice_address'],
|
||||||
payment_term=a['payment_term'],
|
payment_term=a['payment_term'],
|
||||||
)
|
)
|
||||||
|
subscription.lines.append(get_subscription_lines())
|
||||||
subscription.save()
|
subscription.save()
|
||||||
|
|
||||||
#raise UserError(str(dir(subscription)))
|
#raise UserError(str(dir(subscription)))
|
||||||
@ -97,7 +119,6 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
unit_digits = fields.Function(fields.Integer('Unit Digits'),
|
unit_digits = fields.Function(fields.Integer('Unit Digits'),
|
||||||
'on_change_with_unit_digits')
|
'on_change_with_unit_digits')
|
||||||
|
|
||||||
|
|
||||||
def on_change_with_unit_digits(self, name=None):
|
def on_change_with_unit_digits(self, name=None):
|
||||||
if self.unit:
|
if self.unit:
|
||||||
return self.unit.digits
|
return self.unit.digits
|
||||||
|
@ -21,5 +21,7 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<field name="service"/>
|
<field name="service"/>
|
||||||
<label name="quantity"/>
|
<label name="quantity"/>
|
||||||
<field name="quantity"/>
|
<field name="quantity"/>
|
||||||
|
<label name="unit_price"/>
|
||||||
|
<field name="unit_price"/>
|
||||||
</group>
|
</group>
|
||||||
</form>
|
</form>
|
||||||
|
Loading…
Reference in New Issue
Block a user