se cambia el parametro sale en set_number
This commit is contained in:
parent
5442a7cb0e
commit
e5d77c2f89
90
sale.py
90
sale.py
@ -28,11 +28,11 @@ class Sale(metaclass=PoolMeta):
|
|||||||
('preventive', 'Preventive'),
|
('preventive', 'Preventive'),
|
||||||
('corrective', 'Corrective')
|
('corrective', 'Corrective')
|
||||||
], "Maintenance Type",
|
], "Maintenance Type",
|
||||||
states={
|
states={
|
||||||
'invisible': Eval('sale_type') != "maintenance",
|
'invisible': Eval('sale_type') != "maintenance",
|
||||||
'required': Eval('sale_type') == "maintenance",
|
'required': Eval('sale_type') == "maintenance",
|
||||||
'readonly': Eval('state') != 'draft'},
|
'readonly': Eval('state') != 'draft'},
|
||||||
depends=['sale_type'])
|
depends=['sale_type'])
|
||||||
|
|
||||||
contract_ref = fields.Reference("Contract Base", selection='get_origin_contract',
|
contract_ref = fields.Reference("Contract Base", selection='get_origin_contract',
|
||||||
domain={'optical_equipment.contract': [
|
domain={'optical_equipment.contract': [
|
||||||
@ -41,7 +41,7 @@ class Sale(metaclass=PoolMeta):
|
|||||||
]},
|
]},
|
||||||
states={'invisible': (Eval('sale_type') != 'maintenance')},
|
states={'invisible': (Eval('sale_type') != 'maintenance')},
|
||||||
search_context={
|
search_context={
|
||||||
'related_party': Eval('party'),
|
'related_party': Eval('party'),
|
||||||
},)
|
},)
|
||||||
agended = fields.Boolean("Scheduling", states={
|
agended = fields.Boolean("Scheduling", states={
|
||||||
'invisible': (Eval('sale_type') != 'maintenance')})
|
'invisible': (Eval('sale_type') != 'maintenance')})
|
||||||
@ -60,25 +60,25 @@ class Sale(metaclass=PoolMeta):
|
|||||||
'invisible': (Eval('state').in_(
|
'invisible': (Eval('state').in_(
|
||||||
['cancelled', 'draft']))},
|
['cancelled', 'draft']))},
|
||||||
'report': {}})
|
'report': {}})
|
||||||
|
|
||||||
cls._transitions |= set((
|
cls._transitions |= set((
|
||||||
('draft', 'quotation'),
|
('draft', 'quotation'),
|
||||||
('quotation', 'confirmed'),
|
('quotation', 'confirmed'),
|
||||||
('confirmed', 'processing'),
|
('confirmed', 'processing'),
|
||||||
('confirmed', 'draft'),
|
('confirmed', 'draft'),
|
||||||
('processing', 'processing'),
|
('processing', 'processing'),
|
||||||
('processing', 'done'),
|
('processing', 'done'),
|
||||||
('done', 'processing'),
|
('done', 'processing'),
|
||||||
('draft', 'cancelled'),
|
('draft', 'cancelled'),
|
||||||
('quotation', 'cancelled'),
|
('quotation', 'cancelled'),
|
||||||
('quotation', 'draft'),
|
('quotation', 'draft'),
|
||||||
('cancelled', 'draft'),
|
('cancelled', 'draft'),
|
||||||
('processing', 'draft')
|
('processing', 'draft')
|
||||||
))
|
))
|
||||||
|
|
||||||
@fields.depends('lines', 'sale_type', 'agended')
|
@fields.depends('lines', 'sale_type', 'agended')
|
||||||
def on_chage_sale_type(self):
|
def on_chage_sale_type(self):
|
||||||
self.lines= []
|
self.lines = []
|
||||||
if self.sale_type != "maintenance":
|
if self.sale_type != "maintenance":
|
||||||
self.agended = False
|
self.agended = False
|
||||||
elif self.sale_type == "maintenance":
|
elif self.sale_type == "maintenance":
|
||||||
@ -87,7 +87,7 @@ class Sale(metaclass=PoolMeta):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def default_agended(self):
|
def default_agended(self):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _get_origin_contract(cls):
|
def _get_origin_contract(cls):
|
||||||
'Return list of Model names for origin Reference'
|
'Return list of Model names for origin Reference'
|
||||||
@ -96,12 +96,11 @@ class Sale(metaclass=PoolMeta):
|
|||||||
|
|
||||||
return [Contract.__name__]
|
return [Contract.__name__]
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_origin_contract(cls):
|
def get_origin_contract(cls):
|
||||||
Model = Pool().get('ir.model')
|
Model = Pool().get('ir.model')
|
||||||
get_name = Model.get_name
|
get_name = Model.get_name
|
||||||
models = cls._get_origin_contract()
|
models = cls._get_origin_contract()
|
||||||
|
|
||||||
return [(None, '')] + [(m, get_name(m)) for m in models]
|
return [(None, '')] + [(m, get_name(m)) for m in models]
|
||||||
|
|
||||||
@ -112,7 +111,7 @@ class Sale(metaclass=PoolMeta):
|
|||||||
'company': self.company,
|
'company': self.company,
|
||||||
'sale_type': self.sale_type,
|
'sale_type': self.sale_type,
|
||||||
'service_maintenance_initial': True if self.sale_type != 'equipments' else False,
|
'service_maintenance_initial': True if self.sale_type != 'equipments' else False,
|
||||||
}
|
}
|
||||||
values.update(dict(key))
|
values.update(dict(key))
|
||||||
|
|
||||||
return Shipment(**values)
|
return Shipment(**values)
|
||||||
@ -126,7 +125,7 @@ class Sale(metaclass=PoolMeta):
|
|||||||
Config = pool.get('optical_equipment.configuration')
|
Config = pool.get('optical_equipment.configuration')
|
||||||
config = Config(1)
|
config = Config(1)
|
||||||
for sale in sales:
|
for sale in sales:
|
||||||
if config.equipment_sequence != None:
|
if config.equipment_sequence is not None:
|
||||||
if not sale.quote_number:
|
if not sale.quote_number:
|
||||||
try:
|
try:
|
||||||
sale.quote_number = config.sale_quote_number.get()
|
sale.quote_number = config.sale_quote_number.get()
|
||||||
@ -135,7 +134,7 @@ class Sale(metaclass=PoolMeta):
|
|||||||
raise UserError(str('Validation Error'))
|
raise UserError(str('Validation Error'))
|
||||||
else:
|
else:
|
||||||
raise UserError(gettext('optical_equipment.msg_not_sequence_quote'))
|
raise UserError(gettext('optical_equipment.msg_not_sequence_quote'))
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def copy(cls, sales, default=None):
|
def copy(cls, sales, default=None):
|
||||||
if default is None:
|
if default is None:
|
||||||
@ -207,7 +206,7 @@ class Sale(metaclass=PoolMeta):
|
|||||||
sale.state = "confirmed"
|
sale.state = "confirmed"
|
||||||
sale.save()
|
sale.save()
|
||||||
|
|
||||||
cls.set_number([sale])
|
cls.set_number(sales)
|
||||||
with Transaction().set_context(
|
with Transaction().set_context(
|
||||||
queue_name='sale',
|
queue_name='sale',
|
||||||
queue_scheduled_at=config.sale_process_after):
|
queue_scheduled_at=config.sale_process_after):
|
||||||
@ -222,7 +221,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')
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def __setup__(cls):
|
def __setup__(cls):
|
||||||
super(SaleLine, cls).__setup__()
|
super(SaleLine, cls).__setup__()
|
||||||
@ -231,20 +229,18 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
[('type', '=', 'service'),
|
[('type', '=', 'service'),
|
||||||
('maintenance_activity', '=', True)], []))
|
('maintenance_activity', '=', True)], []))
|
||||||
cls.product.domain.append(If(Eval('_parent_sale.sale_type') == 'replaces',
|
cls.product.domain.append(If(Eval('_parent_sale.sale_type') == 'replaces',
|
||||||
[('replacement', '=', True)], []))
|
[('replacement', '=', True)], []))
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
return 2
|
return 2
|
||||||
|
|
||||||
|
|
||||||
@fields.depends('product', 'unit', 'quantity', 'sale',
|
@fields.depends('product', 'unit', 'quantity', 'sale',
|
||||||
'_parent_sale.party', '_parent_sale.sale_type', methods=['_get_tax_rule_pattern',
|
'_parent_sale.party', '_parent_sale.sale_type', methods=['_get_tax_rule_pattern',
|
||||||
'_get_context_sale_price','on_change_with_amount'])
|
'_get_context_sale_price', 'on_change_with_amount'])
|
||||||
def on_change_product(self):
|
def on_change_product(self):
|
||||||
Product = Pool().get('product.product')
|
Product = Pool().get('product.product')
|
||||||
if not self.product:
|
if not self.product:
|
||||||
self.product_equipment = False
|
self.product_equipment = False
|
||||||
self.unit = None
|
self.unit = None
|
||||||
@ -256,7 +252,7 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
|
|
||||||
if self.sale.sale_type == 'equipments':
|
if self.sale.sale_type == 'equipments':
|
||||||
self.quantity = 1
|
self.quantity = 1
|
||||||
|
|
||||||
if self.sale and self.sale.party:
|
if self.sale and self.sale.party:
|
||||||
self.product_equipment = False
|
self.product_equipment = False
|
||||||
party = self.sale.party
|
party = self.sale.party
|
||||||
@ -285,7 +281,7 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
|
|
||||||
with Transaction().set_context(self._get_context_sale_price()):
|
with Transaction().set_context(self._get_context_sale_price()):
|
||||||
self.unit_price = Product.get_sale_price([self.product],
|
self.unit_price = Product.get_sale_price([self.product],
|
||||||
self.quantity or 0)[self.product.id]
|
self.quantity or 0)[self.product.id]
|
||||||
|
|
||||||
if self.unit_price:
|
if self.unit_price:
|
||||||
self.unit_price = self.unit_price.quantize(
|
self.unit_price = self.unit_price.quantize(
|
||||||
@ -317,9 +313,8 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
if (shipment_type == 'out') != (self.quantity >= 0):
|
if (shipment_type == 'out') != (self.quantity >= 0):
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
quantity = (self._get_move_quantity(shipment_type)
|
quantity = (self._get_move_quantity(shipment_type)
|
||||||
- self._get_shipped_quantity(shipment_type))
|
- self._get_shipped_quantity(shipment_type))
|
||||||
|
|
||||||
quantity = self.unit.round(quantity)
|
quantity = self.unit.round(quantity)
|
||||||
|
|
||||||
@ -329,8 +324,8 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
if not self.sale.party.customer_location:
|
if not self.sale.party.customer_location:
|
||||||
raise PartyLocationError(
|
raise PartyLocationError(
|
||||||
gettext('sale.msg_sale_customer_location_required',
|
gettext('sale.msg_sale_customer_location_required',
|
||||||
sale=self.sale.rec_name,
|
sale=self.sale.rec_name,
|
||||||
party=self.sale.party.rec_name))
|
party=self.sale.party.rec_name))
|
||||||
|
|
||||||
move = Move()
|
move = Move()
|
||||||
move.quantity = quantity
|
move.quantity = quantity
|
||||||
@ -344,36 +339,37 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
if move.on_change_with_unit_price_required():
|
if move.on_change_with_unit_price_required():
|
||||||
move.unit_price = self.unit_price
|
move.unit_price = self.unit_price
|
||||||
move.currency = self.sale.currency
|
move.currency = self.sale.currency
|
||||||
|
|
||||||
move.planned_date = self.planned_shipping_date
|
move.planned_date = self.planned_shipping_date
|
||||||
move.invoice_lines = self._get_move_invoice_lines(shipment_type)
|
move.invoice_lines = self._get_move_invoice_lines(shipment_type)
|
||||||
move.origin = self
|
move.origin = self
|
||||||
|
|
||||||
return move
|
return move
|
||||||
|
|
||||||
|
|
||||||
class SaleDate(ModelView):
|
class SaleDate(ModelView):
|
||||||
'Confirmacíon Fecha de Venta'
|
'Confirmacíon Fecha de Venta'
|
||||||
__name__ = 'optical_equipment.confirm_sale_date.form'
|
__name__ = 'optical_equipment.confirm_sale_date.form'
|
||||||
|
|
||||||
sale_date = fields.Date("Fecha Venta", required=True)
|
sale_date = fields.Date("Fecha Venta", required=True)
|
||||||
|
|
||||||
|
|
||||||
class ConfirmSaleDate(Wizard):
|
class ConfirmSaleDate(Wizard):
|
||||||
'Confirmacíon Fecha de Venta'
|
'Confirmacíon Fecha de Venta'
|
||||||
__name__ = 'optical_equipment.confirm_sale_date'
|
__name__ = 'optical_equipment.confirm_sale_date'
|
||||||
|
|
||||||
start = StateView('optical_equipment.confirm_sale_date.form',
|
start = StateView('optical_equipment.confirm_sale_date.form',
|
||||||
'optical_equipment.confirm_sale_date_view_form',[
|
'optical_equipment.confirm_sale_date_view_form', [
|
||||||
Button('Confirmar', 'confirm_date', 'tryton-ok', default=True),
|
Button('Confirmar', 'confirm_date', 'tryton-ok', default=True),
|
||||||
])
|
])
|
||||||
|
|
||||||
confirm_date = StateAction('sale.act_sale_form')
|
confirm_date = StateAction('sale.act_sale_form')
|
||||||
|
|
||||||
def default_start(self, fields):
|
def default_start(self, fields):
|
||||||
if self.record:
|
if self.record:
|
||||||
return {'sale_date': self.record.sale_date}
|
return {'sale_date': self.record.sale_date}
|
||||||
|
|
||||||
def do_confirm_date(self, action):
|
def do_confirm_date(self, action):
|
||||||
self.record.sale_date = self.start.sale_date
|
self.record.sale_date = self.start.sale_date
|
||||||
self.record.state = 'processing'
|
self.record.state = 'processing'
|
||||||
self.record.save()
|
self.record.save()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user