details:   https://code.openbravo.com/erp/devel/pi/rev/cd6ca6343835
changeset: 19025:cd6ca6343835
user:      David Miguelez <david.miguelez <at> openbravo.com>
date:      Wed Dec 12 19:26:20 2012 +0100
summary:   Fixes Issues 22532, 22537. Checks before inserting a record in
M_MatchPO if there is an existing one. Checks in query if the
document status of the related M_InoutLine is Draft.

diffstat:

 src-db/database/model/functions/M_INOUT_POST.xml                      |  61 
++++++---
 src/org/openbravo/erpCommon/ad_forms/MaterialReceiptPending_data.xsql |   5 +-
 2 files changed, 42 insertions(+), 24 deletions(-)

diffs (93 lines):

diff -r 41ca7359b03c -r cd6ca6343835 
src-db/database/model/functions/M_INOUT_POST.xml
--- a/src-db/database/model/functions/M_INOUT_POST.xml  Wed Dec 12 17:34:26 
2012 +0100
+++ b/src-db/database/model/functions/M_INOUT_POST.xml  Wed Dec 12 19:26:20 
2012 +0100
@@ -522,29 +522,44 @@
                   AND sl.M_InOut_ID=Cur_InOut.M_InOut_ID
                 )
               LOOP
-                Ad_Sequence_Next('M_MatchPO', Cur_SLines.AD_Org_ID, 
v_MatchPO_ID) ;
-                -- The min qty. Modified by Ismael Ciordia
-                v_Qty:=Cur_SLines.MovementQty;
-                --IF (ABS(Cur_SLines.MovementQty) > 
ABS(Cur_SLines.QtyOrdered)) THEN
-                -- v_Qty := Cur_SLines.QtyOrdered;
-                --END IF;
-                v_ResultStr:='InsertMatchPO ' || v_MatchPO_ID;
-                INSERT
-                INTO M_MATCHPO
-                  (
-                    M_MatchPO_ID, AD_Client_ID, AD_Org_ID, IsActive,
-                    Created, CreatedBy, Updated, UpdatedBy,
-                    M_InOutLine_ID, C_OrderLine_ID, M_Product_ID, DateTrx,
-                    Qty, Processing, Processed, Posted
-                  )
-                  VALUES
-                  (
-                    v_MatchPO_ID, Cur_SLines.AD_Client_ID, 
Cur_SLines.AD_Org_ID, 'Y',
-                    now(), v_User, now(), v_User,
-                    Cur_SLines.M_InOutLine_ID, Cur_SLines.C_OrderLine_ID, 
Cur_SLines.M_Product_ID, now(),
-                    v_Qty, 'N', 'Y', 'N'
-                  )
-                  ;
+              
+                                                               SELECT 
M_MATCHPO_ID
+                                                               INTO 
v_MatchPO_ID
+                                                               FROM M_MATCHPO
+                                                               WHERE 
C_ORDERLINE_ID = Cur_SLines.C_OrderLine_ID
+                                                                 AND 
M_INOUTLINE_ID = Cur_SLines.M_InOutLine_ID;             
+
+                                                               
v_Qty:=Cur_SLines.MovementQty;
+                       --IF (ABS(Cur_SLines.MovementQty) > 
ABS(Cur_SLines.QtyOrdered)) THEN
+                       -- v_Qty := Cur_SLines.QtyOrdered;
+                       --END IF;
+
+                                                               IF 
(v_MatchPO_ID IS NULL) THEN
+                       Ad_Sequence_Next('M_MatchPO', Cur_SLines.AD_Org_ID, 
v_MatchPO_ID) ;
+                       -- The min qty. Modified by Ismael Ciordia
+                       v_ResultStr:='InsertMatchPO ' || v_MatchPO_ID;
+                       INSERT
+                       INTO M_MATCHPO
+                       (
+                       M_MatchPO_ID, AD_Client_ID, AD_Org_ID, IsActive,
+                       Created, CreatedBy, Updated, UpdatedBy,
+                       M_InOutLine_ID, C_OrderLine_ID, M_Product_ID, DateTrx,
+                       Qty, Processing, Processed, Posted
+                       )
+                       VALUES
+                       (
+                       v_MatchPO_ID, Cur_SLines.AD_Client_ID, 
Cur_SLines.AD_Org_ID, 'Y',
+                       now(), v_User, now(), v_User,
+                       Cur_SLines.M_InOutLine_ID, Cur_SLines.C_OrderLine_ID, 
Cur_SLines.M_Product_ID, now(),
+                       v_Qty, 'N', 'Y', 'N'
+                       )
+                       ;
+                 ELSE
+                       v_ResultStr:='UpdateMatchPO ' || v_MatchPO_ID;
+                       UPDATE M_MATCHPO
+                       SET DateTrx = now(), Qty =v_Qty, Processing = 'N', 
Processed = 'Y', Posted='N'
+                       WHERE M_MATCHPO_ID = v_MatchPO_ID;
+                                                                END IF;
               END LOOP;
               v_ResultStr:='MatchInv';
               FOR Cur_ILines IN
diff -r 41ca7359b03c -r cd6ca6343835 
src/org/openbravo/erpCommon/ad_forms/MaterialReceiptPending_data.xsql
--- a/src/org/openbravo/erpCommon/ad_forms/MaterialReceiptPending_data.xsql     
Wed Dec 12 17:34:26 2012 +0100
+++ b/src/org/openbravo/erpCommon/ad_forms/MaterialReceiptPending_data.xsql     
Wed Dec 12 19:26:20 2012 +0100
@@ -66,7 +66,9 @@
       C_ORDERLINE.QTYORDERED-SUM(COALESCE(M_MATCHPO.QTY,0)) AS QTYORDERED, 
'-1' AS ISACTIVE, C_ORDERLINE.LINE
       FROM C_ORDERLINE left join M_MATCHPO on C_ORDERLINE.C_ORDERLINE_ID = 
M_MATCHPO.C_ORDERLINE_ID
                                            and M_MATCHPO.M_INOUTLINE_ID IS NOT 
NULL
-                       left join M_ATTRIBUTESETINSTANCE on 
C_ORDERLINE.M_ATTRIBUTESETINSTANCE_ID = 
M_ATTRIBUTESETINSTANCE.M_ATTRIBUTESETINSTANCE_ID,
+                       left join M_ATTRIBUTESETINSTANCE on 
C_ORDERLINE.M_ATTRIBUTESETINSTANCE_ID = 
M_ATTRIBUTESETINSTANCE.M_ATTRIBUTESETINSTANCE_ID
+                       left join m_inoutline on m_inoutline.m_inoutline_id 
=M_MATCHPO.M_INOUTLINE_ID
+                       left join m_inout on 
m_inoutline.m_inout_id=m_inout.m_inout_id,
       C_ORDER,   C_BPARTNER, C_DOCTYPE
       WHERE C_ORDER.C_BPARTNER_ID = C_BPARTNER.C_BPARTNER_ID
       AND C_ORDER.C_ORDER_ID = C_ORDERLINE.C_ORDER_ID
@@ -76,6 +78,7 @@
       AND C_ORDER.DOCSTATUS = 'CO'
       AND C_ORDER.C_DOCTYPE_ID = C_DOCTYPE.C_DOCTYPE_ID
       AND C_DOCTYPE.ISRETURN = 'N'
+      and m_inout.docstatus<>'DR'
       GROUP BY C_ORDERLINE.C_ORDERLINE_ID, C_ORDER.C_ORDER_ID, 
C_ORDER.DOCUMENTNO, C_ORDER.DATEORDERED, C_BPARTNER.C_BPARTNER_ID,
       C_BPARTNER.NAME, C_ORDERLINE.M_PRODUCT_ID, 
M_ATTRIBUTESETINSTANCE.DESCRIPTION, C_ORDERLINE.QTYORDERED, C_ORDERLINE.LINE
       ) A

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to