details:   https://code.openbravo.com/erp/devel/pi/rev/91dacdd3f33d
changeset: 15602:91dacdd3f33d
user:      Javier Etxarri <javier.echarri <at> openbravo.com>
date:      Thu Feb 23 13:08:35 2012 +0100
summary:   Fixes issue 19605 , Fixes issue 19606:
Generate Average Cost process should take into account goods receipts of same 
day checked as "permanent" and
Generate Average cost process is not raising unposting error if all costing 
lines are set as "permanent".
To solve the first problem I have added the permanets quantitites of the day 
first and to solve the second problem, now I take the min date from M_INOUT

diffstat:

 src-db/database/model/functions/M_GENERATE_AVERAGE_COSTS.xml |  39 +++++++++--
 1 files changed, 32 insertions(+), 7 deletions(-)

diffs (83 lines):

diff -r 8f8ae175ff2b -r 91dacdd3f33d 
src-db/database/model/functions/M_GENERATE_AVERAGE_COSTS.xml
--- a/src-db/database/model/functions/M_GENERATE_AVERAGE_COSTS.xml      Thu Feb 
23 12:45:14 2012 +0100
+++ b/src-db/database/model/functions/M_GENERATE_AVERAGE_COSTS.xml      Thu Feb 
23 13:08:35 2012 +0100
@@ -33,9 +33,11 @@
   v_Price NUMBER;
   v_DateOld DATE;
   v_MinDateCosting DATE;
+  v_MinFirstInOut DATE;
   v_FirstIteration BOOLEAN;
   v_CheckResultStr VARCHAR2(2000):='';
   v_CumQty NUMBER;
+  v_PermanentQty NUMBER;
   v_Processed VARCHAR2(60) ;
   v_count NUMBER;
   v_Deleted NUMBER;
@@ -100,11 +102,8 @@
     -- If a document has been posted, and in the entry the costing has been 
used to calculate any amount,
     -- process is not allowed to be launched.
 
-    IF (v_Incremental) THEN
-      -- In case of incremental computation, calculate since first 
m_inOut.MovementDate from the ones
-      -- not included yet in any costing
-      SELECT MIN(M_INOUT.MOVEMENTDATE)
-      INTO v_MinDateCosting
+    SELECT MIN(M_INOUT.MOVEMENTDATE)
+      INTO v_MinFirstInOut
       FROM M_INOUT, M_INOUTLINE, M_PRODUCT
       WHERE M_INOUT.M_INOUT_ID=M_INOUTLINE.M_INOUT_ID
         AND M_INOUTLINE.M_PRODUCT_ID=M_PRODUCT.M_PRODUCT_ID
@@ -116,6 +115,12 @@
         AND M_INOUT.AD_CLIENT_ID = v_Client
         AND NOT EXISTS
            (SELECT 1 FROM M_COSTING WHERE 
M_INOUTLINE_ID=M_INOUTLINE.M_INOUTLINE_ID);
+
+
+    IF (v_Incremental) THEN
+      -- In case of incremental computation, calculate since first 
m_inOut.MovementDate from the ones
+      -- not included yet in any costing
+       v_MinDateCosting := v_MinFirstInOut;
        IF (v_MinDateCosting IS NOT NULL) THEN
          v_MinDateCosting := TRUNC(v_MinDateCosting);
        ELSE
@@ -132,6 +137,10 @@
         AND COSTTYPE='AV'
         AND ISPRODUCTION = 'N'
         AND AD_CLIENT_ID = v_Client;
+
+      IF (v_MinDateCosting IS NULL OR v_MinFirstInOut < v_MinDateCosting) THEN
+        v_MinDateCosting := v_MinFirstInOut;
+      END IF;
     END IF;
 
     v_CheckResultStr := '';
@@ -320,11 +329,27 @@
       )
     LOOP
       v_ResultStr:='new albaran:   '||Cur_InOutLine.M_INOUTLINE_ID;
+
+      SELECT SUM(QTY)
+      INTO v_PermanentQty
+      FROM M_COSTING
+      WHERE ISPERMANENT='Y'
+        AND COSTTYPE='AV'
+        AND ISPRODUCTION = 'N'
+        AND M_INOUTLINE_ID IS NOT NULL
+        AND AD_CLIENT_ID = v_Client
+        AND M_PRODUCT_ID=Cur_InOutLine.M_PRODUCT_ID
+        AND DATEFROM = Cur_InOutLine.MOVEMENTDATE;
+
+      IF (v_PermanentQty IS NULL) THEN
+        v_PermanentQty:=0;
+      END IF;
+      
       IF(Cur_InOutLine.M_PRODUCT_ID<>v_ProductOld) THEN
         v_Date:=NULL;
-        v_CumQty:=0;
+        v_CumQty:=v_PermanentQty;
       ELSIF (Cur_InOutLine.MOVEMENTDATE<>v_DateOld) THEN
-        v_CumQty:=0;
+        v_CumQty:=v_PermanentQty;
       END IF;
       SELECT COUNT(*)
       INTO v_Count

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to