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