changeset f147d1316f01 in modules/stock_lot_sled:default
details: 
https://hg.tryton.org/modules/stock_lot_sled?cmd=changeset;node=f147d1316f01
description:
        Add wizard to add lots and sequence for lot number

        issue9800
        review326511002
diffstat:

 __init__.py |   5 +++++
 stock.py    |  25 ++++++++++++++++++++++---
 stock.xml   |   6 ++++++
 3 files changed, 33 insertions(+), 3 deletions(-)

diffs (93 lines):

diff -r 961ba91fb1a6 -r f147d1316f01 __init__.py
--- a/__init__.py       Sat Dec 19 17:08:47 2020 +0100
+++ b/__init__.py       Wed Feb 03 21:19:06 2021 +0100
@@ -5,6 +5,10 @@
 from . import product
 from . import stock
 
+from .stock import LotSledMixin
+
+__all__ = ['LotSledMixin', 'register']
+
 
 def register():
     Pool.register(
@@ -13,6 +17,7 @@
         stock.Configuration,
         stock.ConfigurationLotShelfLife,
         stock.Lot,
+        stock.MoveAddLotsStartLot,
         stock.Move,
         stock.Period,
         module='stock_lot_sled', type_='model')
diff -r 961ba91fb1a6 -r f147d1316f01 stock.py
--- a/stock.py  Sat Dec 19 17:08:47 2020 +0100
+++ b/stock.py  Wed Feb 03 21:19:06 2021 +0100
@@ -45,8 +45,7 @@
     shelf_life_delay = shelf_life_delay
 
 
-class Lot(metaclass=PoolMeta):
-    __name__ = 'stock.lot'
+class LotSledMixin:
 
     shelf_life_expiration_date = fields.Date('Shelf Life Expiration Date',
         states={
@@ -85,7 +84,7 @@
         pool = Pool()
         Date = pool.get('ir.date')
         try:
-            super(Lot, self).on_change_product()
+            super().on_change_product()
         except AttributeError:
             pass
         if self.product:
@@ -99,6 +98,10 @@
                 self.expiration_date = (today
                     + datetime.timedelta(days=self.product.expiration_time))
 
+
+class Lot(LotSledMixin, metaclass=PoolMeta):
+    __name__ = 'stock.lot'
+
     @classmethod
     def write(cls, *args):
         super(Lot, cls).write(*args)
@@ -138,6 +141,22 @@
                         move=move.rec_name))
 
 
+class MoveAddLotsStartLot(LotSledMixin, metaclass=PoolMeta):
+    __name__ = 'stock.move.add.lots.start.lot'
+
+    @fields.depends('shelf_life_expiration_date', 'expiration_date')
+    def _set_lot_values(self, lot):
+        super()._set_lot_values(lot)
+        self.shelf_life_expiration_date = lot.shelf_life_expiration_date
+        self.expiration_date = lot.expiration_date
+
+    def _get_lot_values(self, move):
+        values = super()._get_lot_values(move)
+        values['shelf_life_expiration_date'] = self.shelf_life_expiration_date
+        values['expiration_date'] = self.expiration_date
+        return values
+
+
 class Move(metaclass=PoolMeta):
     __name__ = 'stock.move'
 
diff -r 961ba91fb1a6 -r f147d1316f01 stock.xml
--- a/stock.xml Sat Dec 19 17:08:47 2020 +0100
+++ b/stock.xml Wed Feb 03 21:19:06 2021 +0100
@@ -28,5 +28,11 @@
             <field name="inherit" ref="stock_lot.lot_view_tree"/>
             <field name="name">lot_tree</field>
         </record>
+
+        <record model="ir.ui.view" id="move_add_lots_start_lot_view_list">
+            <field name="model">stock.move.add.lots.start.lot</field>
+            <field name="inherit" 
ref="stock_lot.move_add_lots_start_lot_view_list"/>
+            <field name="name">lot_tree</field>
+        </record>
     </data>
 </tryton>

Reply via email to