changeset 461aca9ea143 in modules/stock_supply_production:default
details: 
https://hg.tryton.org/modules/stock_supply_production?cmd=changeset;node=461aca9ea143
description:
        Add sale_supply_production module

        issue3257
        review256721002
diffstat:

 production.py |  19 +++++++++++++++++--
 1 files changed, 17 insertions(+), 2 deletions(-)

diffs (65 lines):

diff -r 7929cb00d552 -r 461aca9ea143 production.py
--- a/production.py     Mon Mar 30 09:47:40 2020 +0200
+++ b/production.py     Mon Apr 13 14:49:07 2020 +0200
@@ -26,6 +26,11 @@
     __name__ = 'production'
 
     @classmethod
+    def _get_origin(cls):
+        origins = super()._get_origin()
+        return origins | {'stock.order_point'}
+
+    @classmethod
     def generate_requests(cls, clean=True, warehouses=None):
         """
         For each product compute the production request that must be created
@@ -47,6 +52,7 @@
         if clean:
             reqs = cls.search([
                     ('state', '=', 'request'),
+                    ('origin', 'like', 'stock.order_point,%'),
                     ])
             cls.delete(reqs)
 
@@ -111,8 +117,10 @@
                     if product.id not in shortages:
                         continue
                     for date, quantity in shortages[product.id]:
+                        order_point = product2ops.get(
+                            (warehouse.id, product.id))
                         req = cls.compute_request(product, warehouse,
-                            quantity, date, company)
+                            quantity, date, company, order_point)
                         req.planned_start_date = (
                             req.on_change_with_planned_start_date())
                         requests.append(req)
@@ -121,7 +129,9 @@
         return requests
 
     @classmethod
-    def compute_request(cls, product, warehouse, quantity, date, company):
+    def compute_request(
+            cls, product, warehouse, quantity, date, company,
+            order_point=None):
         """
         Return the value of the production request.
         """
@@ -134,6 +144,10 @@
             date -= datetime.timedelta(1)
         uom = product.default_uom
         quantity = uom.ceil(quantity)
+        if order_point:
+            origin = str(order_point)
+        else:
+            origin = 'stock.order_point,-1'
         return cls(
             planned_date=date,
             company=company,
@@ -144,6 +158,7 @@
             uom=uom,
             quantity=quantity,
             state='request',
+            origin=origin,
             )
 
     @classmethod

Reply via email to