model of move

This commit is contained in:
sinergia 2022-09-02 13:24:59 -05:00
parent f1e0d9b274
commit 6a3ce61e06
4 changed files with 75 additions and 20 deletions

View File

@ -12,7 +12,7 @@ def register():
purchase.Purchase, purchase.Purchase,
purchase.Line, purchase.Line,
sale.Sale, sale.Sale,
sale.SaleLine, #sale.SaleLine,
sale.CreateSubscriptionStart, sale.CreateSubscriptionStart,
equipment.OpticalEquipment, equipment.OpticalEquipment,
equipment.EquipmentMaintenance, equipment.EquipmentMaintenance,

82
move.py
View File

@ -2,21 +2,44 @@ from trytond.model import fields, ModelSQL, ModelView, Workflow, dualmethod
from trytond.modules.company.model import employee_field, set_employee 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 from trytond.pyson import Eval, If
from trytond.exceptions import UserError
from itertools import groupby
from trytond.transaction import Transaction
class Move(metaclass=PoolMeta): class Move(metaclass=PoolMeta):
"Stock Move" "Stock Move"
__name__ = "stock.move" __name__ = "stock.move"
product_equipment = fields.Function(fields.Boolean("It Equipment"),'get_product_equipment')
equipment = fields.Many2One('optical_equipment.equipment', "Equipment", equipment = fields.Many2One('optical_equipment.equipment', "Equipment",
domain=[('state', '=', 'registred'), domain=[('state', '=', 'registred'),
('product','=', Eval('product')) ('product','=', Eval('product'))
], ],
states={'invisible': If(~Eval('product_equipment'), True)},) states={'invisible': If(~Eval('product_equipment'), True),},
depends=['product_equipment'])
equipment_serial = fields.Char('Serial',states={'readonly': True}) equipment_serial = fields.Function(fields.Char('Serial',
states={'readonly': True,
'invisible': If(~Eval('product_equipment'), True)},
depends=['product_equipment']),
'get_equipment_serial')
@fields.depends('product')
def get_product_equipment(self, product):
if self.product.equipment:
return True
else:
return False
@fields.depends('equipment')
def get_equipment_serial(self, equipment):
if self.equipment:
return self.equipment.serial
else:
return None
@fields.depends('product', 'equipment', 'uom') @fields.depends('product', 'equipment', 'uom')
def on_change_product(self): def on_change_product(self):
if self.product: if self.product:
@ -25,12 +48,11 @@ class Move(metaclass=PoolMeta):
self.uom = self.product.default_uom self.uom = self.product.default_uom
@fields.depends(methods=['get_equipment_serial'])
def on_change_equipment(self): def on_change_equipment(self):
if self.equipment: if self.equipment:
self.product = self.equipment.product.id self.product = self.equipment.product.id
self.equipment_serial = self.equipment.serial self.equipment_serial = self.get_equipment_serial(self.equipment)
else: else:
self.equipment_serial = None self.equipment_serial = None
@ -41,6 +63,22 @@ class ShipmentOut(metaclass=PoolMeta):
__name__ = 'stock.shipment.out' __name__ = 'stock.shipment.out'
@classmethod
@ModelView.button
@Workflow.transition('picked')
@set_employee('picked_by')
def pick(cls, shipments):
pool = Pool()
Move = pool.get('stock.move')
raise UserError(str(dir(Move)))
Move.delete([
m for s in shipments for m in s.inventory_moves
if m.state == 'staging'])
Move.do([m for s in shipments for m in s.inventory_moves])
cls._sync_inventory_to_outgoing(shipments, quantity=True)
@classmethod @classmethod
@ModelView.button @ModelView.button
@Workflow.transition('done') @Workflow.transition('done')
@ -48,21 +86,37 @@ class ShipmentOut(metaclass=PoolMeta):
def done(cls, shipments): def done(cls, shipments):
pool = Pool() pool = Pool()
Move = pool.get('stock.move') Move = pool.get('stock.move')
#raise UserError(str(dir(cls)))
#cls.store_cache(shipments)
Date = pool.get('ir.date') Date = pool.get('ir.date')
pool = Pool()
Equipments = pool.get('optical_equipment.equipment') Equipments = pool.get('optical_equipment.equipment')
for shipment in shipments: for shipment in shipments:
for move in shipment.moves: for move in shipment.moves:
if move.product.equipment: raise UserError(str(move.id))
equipment=move.serial #move = Move.search(['id', '=', move.id])[0]
equipment.propietary=shipment.customer.id if move.product_equipment:
equipment = move.equipment
Id = equipment.id
serial = equipment.serial
move.equipment = Id
move.serial = serial
move.save()
#raise UserError(str(Id))
#raise UserError(str((equipment.id)))
#raise UserError(str(dir(move.equipment.propietary)))
#Id=int(move.equipment.id)
equipment = Equipments.search(['id', '=',Id])[0]
#raise UserError(str(equipment))
#raise UserError(str(Id.id))
equipment.propietary = shipment.customer.id
equipment.propietary_address= shipment.delivery_address.id equipment.propietary_address= shipment.delivery_address.id
equipment.state="uncontrated" equipment.state="uncontrated"
equipment.shipment_destination = move #equipment.shipment_destination = move
equipment.maintenance_frequency = "6" if sale.party.client_type == "ips" else "12" equipment.maintenance_frequency = "6" if shipment.customer.client_type == "ips" else "12"
#raise UserError(str(equipment.propietary))
equipment.save() equipment.save()
Move.delete([ Move.delete([

View File

@ -49,7 +49,8 @@ class Sale(metaclass=PoolMeta):
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'
__name__ = 'sale.line' __name__ = 'sale.line'
@ -108,10 +109,8 @@ 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',
@ -167,7 +166,6 @@ class SaleLine(metaclass=PoolMeta):
if self.product.equipment: if self.product.equipment:
self.product_equipment = True self.product_equipment = True
def get_move(self, shipment_type): def get_move(self, shipment_type):
''' '''
@ -242,6 +240,7 @@ class SaleLine(metaclass=PoolMeta):
'invisible': ~Eval('product_equipment', True), 'invisible': ~Eval('product_equipment', True),
})] })]
"""
class CreateSubscriptionStart(ModelView): class CreateSubscriptionStart(ModelView):
'Create Subscription Start' 'Create Subscription Start'

View File

@ -1,6 +1,7 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!--This file file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms. --> <!--This file file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms. -->
<tryton> <tryton>
<!--
<record model="ir.ui.view" id="sale_line_view_form"> <record model="ir.ui.view" id="sale_line_view_form">
<field name="model">sale.line</field> <field name="model">sale.line</field>
<field name="inherit" ref="sale.sale_line_view_form"/> <field name="inherit" ref="sale.sale_line_view_form"/>
@ -15,7 +16,8 @@
<field name="model">sale.line</field> <field name="model">sale.line</field>
<field name="inherit" ref="sale.sale_line_view_tree_sequence"/> <field name="inherit" ref="sale.sale_line_view_tree_sequence"/>
<field name="name">sale_line_tree_sequence</field> <field name="name">sale_line_tree_sequence</field>
</record> </record>
-->
<record model="ir.ui.view" id="create_subscription_view_form"> <record model="ir.ui.view" id="create_subscription_view_form">
<field name="model">sale.create.subscription.start</field> <field name="model">sale.create.subscription.start</field>
<field name="type">form</field> <field name="type">form</field>