update optical_equipment

This commit is contained in:
raskolnikov 2022-12-06 16:06:33 -05:00
parent 96c06074e5
commit e718afff36
9 changed files with 1200 additions and 1174 deletions

View File

@ -83,10 +83,12 @@ class Contract(Workflow, ModelSQL, ModelView):
]
cls._transitions = ({
('draft', 'running'),
('running', 'draft'),
('running', 'closed'),
('running', 'cancelled'),
})
cls._buttons.update({
'draft': {'invisible': Eval('state').in_(['draft','closed'])},
'running': {'invisible': Eval('state').in_(['cancelled', 'running'])},
'cancelled': {'invisible': Eval('state').in_(['draft', 'cancelled'])}
})
@ -116,6 +118,17 @@ class Contract(Workflow, ModelSQL, ModelView):
else:
raise UserError(gettext('optical_equipment.msg_not_sequence_equipment'))
@classmethod
@ModelView.button
@Workflow.transition('draft')
def draft(cls, contracts):
contract = contracts[0]
for equipment in contract.equipments:
equipment.state = "uncontrated"
equipment.contract_history += (contract.id,)
equipment.save()
@classmethod
@ModelView.button
@Workflow.transition('running')

View File

@ -56,6 +56,11 @@
<field name="domain"></field>
<field name="act_window" ref="act_contract_form"/>
</record>
<record model="ir.model.button" id="draft_running_button">
<field name="name">draft</field>
<field name="string">Draft</field>
<field name="model" search="[('model', '=', 'optical_equipment.contract')]"/>
</record>
<record model="ir.model.button" id="contrac_running_button">
<field name="name">running</field>
<field name="string">Run</field>

View File

@ -180,12 +180,13 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
super(OpticalEquipment, cls).__setup__()
cls._transitions = ({
('draft', 'registred'),
('registred', 'draft'),
('registred', 'uncontrated'),
('uncontrated', 'contrated'),
})
cls._buttons.update({
# 'draft': {
# 'invisible': Eval('state') == 'draft'},
'draft': {
'invisible': Eval('state') == 'draft'},
'registred': {
'invisible': Eval('state').in_(['registred', 'uncontrated', 'contrated'])}}
)
@ -287,7 +288,13 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
raise AccessError(
gettext('estos equipos no se pueden borrar'))
super(OpticalEquipment, cls).delete(equipments)
@classmethod
@ModelView.button
@Workflow.transition('draft')
def draft(cls, equipments):
pass
@classmethod
@ModelView.button
@Workflow.transition('registred')

View File

@ -91,7 +91,11 @@
<field name="domain"></field>
<field name="act_window" ref="act_optical_equipment_form"/>
</record>
<record model="ir.model.button" id="draft_equipment_button">
<field name="name">draft</field>
<field name="string">Draft</field>
<field name="model" search="[('model', '=', 'optical_equipment.equipment')]"/>
</record>
<record model="ir.model.button" id="registred_equipment_button">
<field name="name">registred</field>
<field name="string">Registred</field>

68
move.py
View File

@ -69,12 +69,8 @@ class ShipmentOut(metaclass=PoolMeta):
cls._buttons.update({
'maintenance_initial': {
'invisible': ((Eval('service_maintenance_initial',True))
| (Eval('sale_type').in_(['maintenance', 'replaces'])))},
'assign_wizard': {
'invisible': ((Eval('state') != 'waiting')
| (Eval('warehouse_storage') == Eval('warehouse_output'))) |
(If(Eval('service_maintenance_initial') == False, True))
},
| (Eval('sale_type').in_(['maintenance', 'replaces']))
| (Eval('state') == 'done'))}
})
def get_outgoing_moves(self, name):
@ -97,6 +93,48 @@ class ShipmentOut(metaclass=PoolMeta):
'invisible': False,
}),]
@classmethod
@ModelView.button
@Workflow.transition('done')
@set_employee('done_by')
def done(cls, shipments):
pool = Pool()
Move = pool.get('stock.move')
Date = pool.get('ir.date')
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
Move.delete([
m for s in shipments for m in s.outgoing_moves
if m.state == 'staging'])
Move.do([m for s in shipments for m in s.outgoing_moves])
for company, c_shipments in groupby(
shipments, key=lambda s: s.company):
with Transaction().set_context(company=company.id):
today = Date.today()
cls.write([s for s in c_shipments if not s.effective_date], {
'effective_date': today,
})
@classmethod
@ModelView.button
def maintenance_initial(cls, shipments):
@ -147,24 +185,6 @@ class ShipmentOut(metaclass=PoolMeta):
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()

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -40,7 +40,7 @@ this repository contains the full copyright notices and license terms. -->
<label name="state"/>
<field name="state"/>
<group col="2" colspan="2" id="button">
<!--<button name="draft"/> -->
<button name="draft"/>
<button name="cancelled"/>
<button name="running"/>
</group>

View File

@ -72,7 +72,7 @@
</page>
</notebook>
<group col="2" colspan="2" id="button">
<!--<button name="draft"/> -->
<button name="draft"/>
<button name="registred"/>
</group>
<label name="state"/>