update format cv Equipment
This commit is contained in:
parent
113de78608
commit
f1e0d9b274
39
equipment.py
39
equipment.py
@ -100,17 +100,37 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
|
|||||||
states=_states,)
|
states=_states,)
|
||||||
|
|
||||||
maintenance_frequency = fields.Selection(_MAINTENANCE_FREQUENCY, "Maintenance Frequency",
|
maintenance_frequency = fields.Selection(_MAINTENANCE_FREQUENCY, "Maintenance Frequency",
|
||||||
depends=['propietary'])
|
depends=['propietary']
|
||||||
|
)
|
||||||
purchase_origin = fields.Reference("Purchase Origin", selection='get_origin',select=True,
|
purchase_origin = fields.Reference("Purchase Origin", selection='get_origin',select=True,
|
||||||
states={'readonly': True})
|
states={'readonly': True}
|
||||||
|
)
|
||||||
sale_destination = fields.Reference("Sale Destination", selection='get_destination',select=True,
|
sale_destination = fields.Reference("Sale Destination", selection='get_destination',select=True,
|
||||||
states={'readonly': True})
|
states={'readonly': True}
|
||||||
|
)
|
||||||
|
shipment_destination = fields.Reference("Stock Move", selection='get_shipment', select=True)
|
||||||
|
|
||||||
del _states_serial, _states, _depends
|
del _states_serial, _states, _depends
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _get_shipment():
|
||||||
|
'Return list of Model names for shipment Reference'
|
||||||
|
return [
|
||||||
|
'stock.shipment.in',
|
||||||
|
'stock.shipment.out',
|
||||||
|
'stock.shipment.out.return',
|
||||||
|
'stock.shipment.in.return',
|
||||||
|
'stock.shipment.internal',
|
||||||
|
]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_shipment(cls):
|
||||||
|
IrModel = Pool().get('ir.model')
|
||||||
|
get_name = IrModel.get_name
|
||||||
|
models = cls._get_shipment()
|
||||||
|
|
||||||
|
return [(None, '')] + [(m, get_name(m)) for m in models]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _get_origin(cls):
|
def _get_origin(cls):
|
||||||
'Return list of Model names for origin Reference'
|
'Return list of Model names for origin Reference'
|
||||||
@ -119,13 +139,6 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
|
|||||||
|
|
||||||
return [Purchase.__name__]
|
return [Purchase.__name__]
|
||||||
|
|
||||||
|
|
||||||
@property
|
|
||||||
def origin_name(self):
|
|
||||||
if isinstance(self.origin, self.__class__):
|
|
||||||
return self.origin.invoice.rec_name
|
|
||||||
return self.origin.rec_name if self.origin else None
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_origin(cls):
|
def get_origin(cls):
|
||||||
Model = Pool().get('ir.model')
|
Model = Pool().get('ir.model')
|
||||||
|
72
move.py
72
move.py
@ -1,11 +1,38 @@
|
|||||||
from trytond.model import fields
|
from trytond.model import fields, ModelSQL, ModelView, Workflow, dualmethod
|
||||||
|
from trytond.modules.company.model import employee_field, set_employee
|
||||||
from trytond.pool import Pool, PoolMeta
|
from trytond.pool import Pool, PoolMeta
|
||||||
|
from trytond.pyson import Eval, If
|
||||||
|
|
||||||
|
|
||||||
class Move(metaclass=PoolMeta):
|
class Move(metaclass=PoolMeta):
|
||||||
"Stock Move"
|
"Stock Move"
|
||||||
__name__ = "stock.move"
|
__name__ = "stock.move"
|
||||||
|
|
||||||
serial = fields.Char('Serial')
|
equipment = fields.Many2One('optical_equipment.equipment', "Equipment",
|
||||||
|
domain=[('state', '=', 'registred'),
|
||||||
|
('product','=', Eval('product'))
|
||||||
|
],
|
||||||
|
states={'invisible': If(~Eval('product_equipment'), True)},)
|
||||||
|
|
||||||
|
equipment_serial = fields.Char('Serial',states={'readonly': True})
|
||||||
|
|
||||||
|
|
||||||
|
@fields.depends('product', 'equipment', 'uom')
|
||||||
|
def on_change_product(self):
|
||||||
|
if self.product:
|
||||||
|
if (not self.uom
|
||||||
|
or self.uom.category != self.product.default_uom.category):
|
||||||
|
self.uom = self.product.default_uom
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def on_change_equipment(self):
|
||||||
|
if self.equipment:
|
||||||
|
self.product = self.equipment.product.id
|
||||||
|
self.equipment_serial = self.equipment.serial
|
||||||
|
|
||||||
|
else:
|
||||||
|
self.equipment_serial = None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -13,6 +40,46 @@ class ShipmentOut(metaclass=PoolMeta):
|
|||||||
"Customer Shipment"
|
"Customer Shipment"
|
||||||
__name__ = 'stock.shipment.out'
|
__name__ = 'stock.shipment.out'
|
||||||
|
|
||||||
|
|
||||||
|
@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')
|
||||||
|
|
||||||
|
|
||||||
|
pool = Pool()
|
||||||
|
Equipments = pool.get('optical_equipment.equipment')
|
||||||
|
|
||||||
|
for shipment in shipments:
|
||||||
|
for move in shipment.moves:
|
||||||
|
if move.product.equipment:
|
||||||
|
equipment=move.serial
|
||||||
|
equipment.propietary=shipment.customer.id
|
||||||
|
equipment.propietary_address= shipment.delivery_address.id
|
||||||
|
equipment.state="uncontrated"
|
||||||
|
equipment.shipment_destination = move
|
||||||
|
equipment.maintenance_frequency = "6" if sale.party.client_type == "ips" else "12"
|
||||||
|
equipment.save()
|
||||||
|
|
||||||
|
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,
|
||||||
|
})
|
||||||
|
|
||||||
def _get_inventory_move(self, move):
|
def _get_inventory_move(self, move):
|
||||||
'Return inventory move for the outgoing move if necessary'
|
'Return inventory move for the outgoing move if necessary'
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
@ -34,7 +101,6 @@ class ShipmentOut(metaclass=PoolMeta):
|
|||||||
from_location=self.warehouse_storage,
|
from_location=self.warehouse_storage,
|
||||||
to_location=move.from_location,
|
to_location=move.from_location,
|
||||||
product=move.product,
|
product=move.product,
|
||||||
serial=move.serial,
|
|
||||||
uom=move.uom,
|
uom=move.uom,
|
||||||
quantity=quantity,
|
quantity=quantity,
|
||||||
shipment=self,
|
shipment=self,
|
||||||
|
@ -286,10 +286,10 @@ class Template(metaclass=PoolMeta):
|
|||||||
def default_refurbish():
|
def default_refurbish():
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
@fields.depends('software_required', 'software_version')
|
@fields.depends('software_required', 'software_version')
|
||||||
def on_change_sotfware_required(self):
|
def on_change_with_sotfware_required(self):
|
||||||
if self.software_required:
|
self.software_version = None
|
||||||
self.software_version = None
|
|
||||||
|
|
||||||
@fields.depends('d_resolution', 'analog_resolution', 'a_factor_resolution')
|
@fields.depends('d_resolution', 'analog_resolution', 'a_factor_resolution')
|
||||||
def on_change_resolution_type(self):
|
def on_change_resolution_type(self):
|
||||||
|
488
report/cv.fods
488
report/cv.fods
File diff suppressed because it is too large
Load Diff
5
sale.py
5
sale.py
@ -18,6 +18,7 @@ class Sale(metaclass=PoolMeta):
|
|||||||
'Sale'
|
'Sale'
|
||||||
__name__ = 'sale.sale'
|
__name__ = 'sale.sale'
|
||||||
|
|
||||||
|
"""
|
||||||
@classmethod
|
@classmethod
|
||||||
@ModelView.button
|
@ModelView.button
|
||||||
@Workflow.transition('confirmed')
|
@Workflow.transition('confirmed')
|
||||||
@ -47,6 +48,7 @@ class Sale(metaclass=PoolMeta):
|
|||||||
queue_name='sale',
|
queue_name='sale',
|
||||||
queue_scheduled_at=config.sale_process_after):
|
queue_scheduled_at=config.sale_process_after):
|
||||||
cls.__queue__.process(sales)
|
cls.__queue__.process(sales)
|
||||||
|
"""
|
||||||
|
|
||||||
class SaleLine(metaclass=PoolMeta):
|
class SaleLine(metaclass=PoolMeta):
|
||||||
'SaleLine'
|
'SaleLine'
|
||||||
@ -106,9 +108,10 @@ class SaleLine(metaclass=PoolMeta):
|
|||||||
if self.product_equipment == False:
|
if self.product_equipment == False:
|
||||||
self.equipment = None
|
self.equipment = None
|
||||||
self.on_change_equipment()
|
self.on_change_equipment()
|
||||||
|
"""
|
||||||
else:
|
else:
|
||||||
self.quantity = 1
|
self.quantity = 1
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
@fields.depends('product', 'unit', 'quantity', 'sale',
|
@fields.depends('product', 'unit', 'quantity', 'sale',
|
||||||
|
@ -4,7 +4,9 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<data>
|
<data>
|
||||||
<xpath expr="/form/field[@name='product']" position="after">
|
<xpath expr="/form/field[@name='product']" position="after">
|
||||||
<newline/>
|
<newline/>
|
||||||
<label name="serial"/>
|
<label name="equipment"/>
|
||||||
<field name="serial"/>
|
<field name="equipment"/>
|
||||||
|
<label name="equipment_serial"/>
|
||||||
|
<field name="equipment_serial"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
</data>
|
</data>
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
<data>
|
<data>
|
||||||
<xpath
|
<xpath
|
||||||
expr="//field[@name='product']" position="after">
|
expr="//field[@name='product']" position="after">
|
||||||
<field name="serial"/>
|
<field name="equipment"/>
|
||||||
|
<field name="equipment_serial"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
</data>
|
</data>
|
||||||
|
@ -64,6 +64,8 @@
|
|||||||
<newline/>
|
<newline/>
|
||||||
<separator id="sale_destination" string="Sale Destination" colspan="4"/>
|
<separator id="sale_destination" string="Sale Destination" colspan="4"/>
|
||||||
<field name="sale_destination"/>
|
<field name="sale_destination"/>
|
||||||
|
<separator id="shipment_destination" string="Shipment Destination" colspan="4"/>
|
||||||
|
<field name="shipment_destination"/>
|
||||||
</page>
|
</page>
|
||||||
</notebook>
|
</notebook>
|
||||||
<group col="2" colspan="2" id="button">
|
<group col="2" colspan="2" id="button">
|
||||||
|
Loading…
Reference in New Issue
Block a user