diff --git a/purchase.py b/purchase.py index dc0938b..54babb2 100644 --- a/purchase.py +++ b/purchase.py @@ -51,75 +51,22 @@ class Purchase(metaclass=PoolMeta): purchase.equipment_available = True cls.save(purchases) #raise UserError(str(purchase.equipment_available)) - else: raise InvalidNumberPurchases( gettext('purchase.msg_invalid_number_purchases')) - - - """ - @classmethod - @ModelView.button - def process(cls, purchases): - pool = Pool() - Equipment = pool.get('optical_equipment.equipment') - #raise UserError(str(type(Equipment))) - Line = pool.get('purchase.line') - lines = [] - process, done = [], [] - cls.lock(purchases) - for purchase in purchases: - if purchase.state not in {'confirmed', 'processing', 'done'}: - continue - purchase.create_invoice() - purchase.set_invoice_state() - purchase.create_move('in') - return_moves = purchase.create_move('return') - if return_moves: - purchase.create_return_shipment(return_moves) - purchase.set_shipment_state() - #raise UserError(str(dir(purchase))) - #equipment = Equipment() - for line in purchase.lines: - #raise UserError(str(dir(line))) - equipment = Equipment( - company=line.company, - equipment_type=line.product.equipment_type, - party_address=line.address_equipment, - product=line.product, - risk=line.product.risk, - use=line.product.use, - biomedical_class=line.product.biomedical_class, - calibration=line.product.calibration, - refurbish=line.refurbish, - serial=line.serial_equipment, - software_version=line.product.software_version, - ) - equipment.save() - #raise UserError(str([equipment.serial, equipment.software_version])) - line.set_actual_quantity() - lines.append(line) - - if purchase.is_done(): - if purchase.state != 'done': - if purchase.state == 'confirmed': - process.append(purchase) - done.append(purchase) - elif purchase.state != 'processing': - process.append(purchase) - Line.save(lines) - if process: - cls.proceed(process) - if done: - cls.do(done) - """ - class Line(metaclass=PoolMeta): __name__ = 'purchase.line' address_equipment = fields.Many2One('party.address', "Direccion") serial_equipment = fields.Char("Serial", size=None, required=True) refurbish = fields.Boolean("Refurbish") + + @classmethod + def view_attributes(cls): + return super(Line, cls).view_attributes() + [ + ('//page[@id="equipment"]', 'states', { + 'invisible': ~Eval('line.product.equipment'), + })]