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.Line,
sale.Sale,
sale.SaleLine,
#sale.SaleLine,
sale.CreateSubscriptionStart,
equipment.OpticalEquipment,
equipment.EquipmentMaintenance,

78
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.pool import Pool, PoolMeta
from trytond.pyson import Eval, If
from trytond.exceptions import UserError
from itertools import groupby
from trytond.transaction import Transaction
class Move(metaclass=PoolMeta):
"Stock Move"
__name__ = "stock.move"
product_equipment = fields.Function(fields.Boolean("It Equipment"),'get_product_equipment')
equipment = fields.Many2One('optical_equipment.equipment', "Equipment",
domain=[('state', '=', 'registred'),
('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')
def on_change_product(self):
if self.product:
@ -25,12 +48,11 @@ class Move(metaclass=PoolMeta):
self.uom = self.product.default_uom
@fields.depends(methods=['get_equipment_serial'])
def on_change_equipment(self):
if self.equipment:
self.product = self.equipment.product.id
self.equipment_serial = self.equipment.serial
self.equipment_serial = self.get_equipment_serial(self.equipment)
else:
self.equipment_serial = None
@ -41,6 +63,22 @@ class ShipmentOut(metaclass=PoolMeta):
__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
@ModelView.button
@Workflow.transition('done')
@ -48,21 +86,37 @@ class ShipmentOut(metaclass=PoolMeta):
def done(cls, shipments):
pool = Pool()
Move = pool.get('stock.move')
#raise UserError(str(dir(cls)))
#cls.store_cache(shipments)
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
raise UserError(str(move.id))
#move = Move.search(['id', '=', move.id])[0]
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.state="uncontrated"
equipment.shipment_destination = move
equipment.maintenance_frequency = "6" if sale.party.client_type == "ips" else "12"
#equipment.shipment_destination = move
equipment.maintenance_frequency = "6" if shipment.customer.client_type == "ips" else "12"
#raise UserError(str(equipment.propietary))
equipment.save()
Move.delete([

View File

@ -50,6 +50,7 @@ class Sale(metaclass=PoolMeta):
cls.__queue__.process(sales)
"""
"""
class SaleLine(metaclass=PoolMeta):
'SaleLine'
__name__ = 'sale.line'
@ -108,10 +109,8 @@ class SaleLine(metaclass=PoolMeta):
if self.product_equipment == False:
self.equipment = None
self.on_change_equipment()
"""
else:
self.quantity = 1
"""
@fields.depends('product', 'unit', 'quantity', 'sale',
@ -167,7 +166,6 @@ class SaleLine(metaclass=PoolMeta):
if self.product.equipment:
self.product_equipment = True
def get_move(self, shipment_type):
'''
@ -242,6 +240,7 @@ class SaleLine(metaclass=PoolMeta):
'invisible': ~Eval('product_equipment', True),
})]
"""
class CreateSubscriptionStart(ModelView):
'Create Subscription Start'

View File

@ -1,6 +1,7 @@
<?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. -->
<tryton>
<!--
<record model="ir.ui.view" id="sale_line_view_form">
<field name="model">sale.line</field>
<field name="inherit" ref="sale.sale_line_view_form"/>
@ -15,7 +16,8 @@
<field name="model">sale.line</field>
<field name="inherit" ref="sale.sale_line_view_tree_sequence"/>
<field name="name">sale_line_tree_sequence</field>
</record>
</record>
-->
<record model="ir.ui.view" id="create_subscription_view_form">
<field name="model">sale.create.subscription.start</field>
<field name="type">form</field>