add value 'otro' type_client#28

This commit is contained in:
sinergia 2022-07-03 08:30:23 -05:00
parent 0931aa7727
commit 9756cea8c1
3 changed files with 44 additions and 6 deletions

View File

@ -2,7 +2,8 @@ from trytond.pool import PoolMeta
from trytond.model import ModelSQL, ModelView, fields from trytond.model import ModelSQL, ModelView, fields
from . import equipment from . import equipment
_CLIENT_TYPE = [('ips', 'IPS'), _CLIENT_TYPE = [('otro', 'Otro'),
('ips', 'IPS'),
('optica', 'Optica')] ('optica', 'Optica')]
class Party(metaclass=PoolMeta): class Party(metaclass=PoolMeta):

View File

@ -1,7 +1,8 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of #This file is part of Tryton. The COPYRIGHT file at the top level of
#txhis repository contains the full copyright notices and license terms #txhis repository contains the full copyright notices and license terms
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, Workflow, fields)
from trytond.pyson import Eval, If, Bool from trytond.pyson import Eval, If, Bool
from trytond.exceptions import UserError from trytond.exceptions import UserError
from trytond.i18n import gettext from trytond.i18n import gettext
@ -106,6 +107,7 @@ class Line(metaclass=PoolMeta):
self.type = 'line' self.type = 'line'
self.amount = self.on_change_with_amount() self.amount = self.on_change_with_amount()
if self.product.equipment:
self.product_equipment = True self.product_equipment = True
def default_address_equipment(): def default_address_equipment():

View File

@ -1,10 +1,45 @@
from trytond.pool import PoolMeta from trytond.pool import Pool, PoolMeta
from trytond.model import ModelSQL, ModelView, fields from trytond.model import (
ModelSQL, ModelView, Workflow, fields)
from trytond.modules.company.model import set_employee
from trytond.exceptions import UserError
class Subscription(metaclass=PoolMeta): class Subscription(metaclass=PoolMeta):
__name__ = 'sale.subscription' __name__ = 'sale.subscription'
equipments = fields.Many2Many('sale.subscription-optical_equipment.equipment', 'subscription', 'equipment', "Equipments") equipments = fields.Many2Many('sale.subscription-optical_equipment.equipment', 'subscription',
'equipment', "Equipments")
@classmethod
@ModelView.button
@Workflow.transition('running')
@set_employee('run_by')
def run(cls, subscriptions):
pool = Pool()
Equipment = pool.get('optical_equipment.equipment')
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)
class SubscriptionEquipment(ModelSQL): class SubscriptionEquipment(ModelSQL):
'Optical Equipment - Subscription' 'Optical Equipment - Subscription'