update optical_equipment

This commit is contained in:
raskolnikov 2022-11-21 00:24:14 -05:00
parent 244979e7b0
commit d24c3751ff
3 changed files with 54 additions and 24 deletions

View File

@ -1290,3 +1290,11 @@ msgstr "Nueva Dirección"
msgctxt "field:optical_equipment.change_propietary.form,change_date:"
msgid "Change Date"
msgstr "Fecha de Cambio"
msgctxt "field:stock.shipment.out,service_maintenance_initial:"
msgid "Maintenance Initial"
msgstr "Mantenimiento Inicial"
msgctxt "model:ir.model.button,string:maintenance_initial_button"
msgid "Maintenance Initial"
msgstr "Mantenimiento Inicial"

51
move.py
View File

@ -61,13 +61,22 @@ class ShipmentOut(metaclass=PoolMeta):
__name__ = 'stock.shipment.out'
service_maintenance_initial = fields.Boolean('Maintenance Initial', states={'readonly': True})
sale_type = fields.Char('Type sale origin')
@classmethod
def __setup__(cls):
super(ShipmentOut, cls).__setup__()
cls._buttons.update({
'maintenance_initial': {'invisible': If(Eval('service_maintenance_initial') == True, True)}})
'maintenance_initial': {
'invisible': (If(Eval('service_maintenance_initial') == True, True))
| (If(Eval('sale_type') != 'equipments', True))},
'assign_wizard': {
'invisible': ((Eval('state') != 'waiting')
| (Eval('warehouse_storage') == Eval('warehouse_output'))) |
(If(Eval('service_maintenance_initial') == False, True))
},
})
def get_outgoing_moves(self, name):
moves = []
if self.state == 'done':
@ -98,25 +107,6 @@ class ShipmentOut(metaclass=PoolMeta):
Equipments = pool.get('optical_equipment.equipment')
for shipment in shipments:
for move in shipment.inventory_moves:
count = 0
if move.equipment:
equipment = move.equipment
Id = equipment.id
equipment = Equipments.search(['id', '=',Id])[0]
equipment.propietary = shipment.customer.id
equipment.propietary_address= shipment.delivery_address.id
equipment.state="uncontrated"
equipment.shipment_destination = shipment
equipment.sale_destination = shipment.outgoing_moves[count].origin
equipment.propietarys += (shipment.customer,)
equipment.maintenance_frequency = "6" if shipment.customer.client_type == "ips" else "12"
count+=1
equipment.save()
else:
count+=1
for shipment in shipments:
sale_origin = shipment.outgoing_moves[0].origin.sale.id
saleLine = SaleLine(
@ -151,9 +141,28 @@ class ShipmentOut(metaclass=PoolMeta):
equipment=move.equipment.id)
maintenance.save()
shipment.service_maintenance_initial = True
shipment.save()
else:
raise UserError(str('Por favor Primero debe Asignar un serial a todos los Equipos.'))
for move in shipment.inventory_moves:
count = 0
if move.equipment:
equipment = move.equipment
Id = equipment.id
equipment = Equipments.search(['id', '=',Id])[0]
equipment.propietary = shipment.customer.id
equipment.propietary_address= shipment.delivery_address.id
equipment.state="uncontrated"
equipment.shipment_destination = shipment
equipment.sale_destination = shipment.outgoing_moves[count].origin
equipment.propietarys += (shipment.customer,)
equipment.maintenance_frequency = "6" if shipment.customer.client_type == "ips" else "12"
count+=1
equipment.save()
else:
count+=1
def _get_inventory_move(self, move):
'Return inventory move for the outgoing move if necessary'
pool = Pool()

19
sale.py
View File

@ -69,6 +69,7 @@ class Sale(metaclass=PoolMeta):
('cancelled', 'draft'),
('processing', 'draft')
))
@fields.depends('lines', 'sale_type', 'agended')
def on_chage_sale_type(self):
self.lines= []
@ -94,7 +95,20 @@ class Sale(metaclass=PoolMeta):
models = cls._get_origin_contract()
return [(None, '')] + [(m, get_name(m)) for m in models]
def _get_shipment_sale(self, Shipment, key):
values = {
'customer': self.shipment_party or self.party,
'delivery_address': self.shipment_address,
'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)
@classmethod
@ModelView.button
@Workflow.transition('confirmed')
@ -158,8 +172,7 @@ class SaleLine(metaclass=PoolMeta):
cls.product.domain.append(If(Eval('_parent_sale.sale_type') == 'equipments',
[('equipment', '=', True)], []))
cls.product.domain.append(If(Eval('_parent_sale.sale_type') == 'replaces',
[('replacement', '=', True),
('maintenance_activity', '=', True)], []))
[('replacement', '=', True)], []))
cls.quantity.states['readonly'] = Eval('_parent_sale.sale_type') == 'equipments'
def on_change_with_unit_digits(self, name=None):