add lines to subcription
This commit is contained in:
parent
76513e61c1
commit
3d14ee5dc0
41
sale.py
41
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
|
||||
|
@ -21,5 +21,7 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="service"/>
|
||||
<label name="quantity"/>
|
||||
<field name="quantity"/>
|
||||
<label name="unit_price"/>
|
||||
<field name="unit_price"/>
|
||||
</group>
|
||||
</form>
|
||||
|
Loading…
Reference in New Issue
Block a user