details:   https://code.openbravo.com/erp/devel/pi/rev/e98c64d54d97
changeset: 21919:e98c64d54d97
user:      Javier Etxarri <javier.echarri <at> openbravo.com>
date:      Wed Feb 05 01:47:44 2014 +0100
summary:   Fixes issue 25661: BOM's are not setting fine the tax rate in 
exploded lines

diffstat:

 src-db/database/model/functions/M_EXPLODEBOMNOTSTOCK.xml    |  15 ++++++++----
 src-db/database/model/functions/M_INVEXPLODEBOMNOTSTOCK.xml |  15 +++++++++---
 2 files changed, 21 insertions(+), 9 deletions(-)

diffs (97 lines):

diff -r da579e3e0ea1 -r e98c64d54d97 
src-db/database/model/functions/M_EXPLODEBOMNOTSTOCK.xml
--- a/src-db/database/model/functions/M_EXPLODEBOMNOTSTOCK.xml  Tue Feb 04 
23:46:37 2014 +0100
+++ b/src-db/database/model/functions/M_EXPLODEBOMNOTSTOCK.xml  Wed Feb 05 
01:47:44 2014 +0100
@@ -30,6 +30,7 @@
   v_PriceList_ID VARCHAR2(32);
   v_PriceList_Version_ID VARCHAR2(32);
   v_Record_ID VARCHAR2(32);
+  v_C_Tax_ID VARCHAR2(32) ;
   TYPE RECORD IS REF CURSOR;
   Cur_Parameter RECORD;
   Cur_MPriceListVersion RECORD;
@@ -90,14 +91,14 @@
       v_PriceList_Version_ID:=Cur_MPriceListVersion.PriceList_Version_ID;
       EXIT;
     END LOOP;
- 
     -- Replace Lines
     v_ResultStr:='Inserting lines';
     FOR CUR_BOM_Line IN
-      (SELECT *
-       FROM C_ORDERLINE l
+      (SELECT l.*,o.M_Warehouse_ID,o.C_BPartner_Location_ID,o.issotrx
+       FROM C_ORDERLINE l,c_order o
        WHERE l.C_Orderline_ID=v_Record_ID
-         AND IsActive='Y'
+         AND l.c_order_id=o.c_order_id
+         AND l.IsActive='Y'
          AND EXISTS
            (SELECT *
             FROM M_PRODUCT p
@@ -119,6 +120,10 @@
          ORDER BY Line
          )
       LOOP
+        v_C_Tax_ID:=C_Gettax(CUR_BOM.M_ProductBOM_ID, 
CUR_BOM_Line.dateordered, 
+        CUR_BOM_Line.AD_Org_ID, CUR_BOM_Line.M_Warehouse_ID, 
CUR_BOM_Line.C_BPartner_Location_ID, 
+        CUR_BOM_Line.C_BPartner_Location_ID, null, CUR_BOM_Line.issotrx) ;
+
         v_Line:=v_Line + 1;
         INSERT
         INTO C_ORDERLINE
@@ -149,7 +154,7 @@
             M_BOM_PriceList(CUR_BOM.M_ProductBOM_ID, v_PriceList_Version_ID),
             M_Get_Offers_Price(CUR_BOM_Line.DateOrdered, v_CBPartner_ID, 
CUR_BOM.M_ProductBOM_ID, M_BOM_PriceStd(CUR_BOM.M_ProductBOM_ID, 
v_PriceList_Version_ID), CUR_BOM_Line.QtyInvoiced*CUR_BOM.BOMQty, 
v_PriceList_ID), M_BOM_PriceLimit(CUR_BOM.M_ProductBOM_ID, 
v_PriceList_Version_ID),
             M_Get_Offers_Price(CUR_BOM_Line.DateOrdered, v_CBPartner_ID, 
CUR_BOM.M_ProductBOM_ID, M_BOM_PriceStd(CUR_BOM.M_ProductBOM_ID, 
v_PriceList_Version_ID), CUR_BOM_Line.QtyInvoiced*CUR_BOM.BOMQty, 
v_PriceList_ID) * CUR_BOM_Line.QtyOrdered*CUR_BOM.BOMQty, CUR_BOM_Line.Discount,
-            CUR_BOM_Line.FreightAmt, CUR_BOM_Line.C_Charge_ID, 
CUR_BOM_Line.ChargeAmt, CUR_BOM_Line.C_Tax_ID,
+            CUR_BOM_Line.FreightAmt, CUR_BOM_Line.C_Charge_ID, 
CUR_BOM_Line.ChargeAmt, coalesce(v_C_Tax_ID,CUR_BOM_Line.c_tax_id),
             CUR_BOM_Line.QuantityOrder, CUR_BOM_Line.M_Product_UOM_ID, 
M_BOM_PriceStd(CUR_BOM.M_ProductBOM_ID, v_PriceList_Version_ID),
             CUR_BOM_Line.c_project_id, CUR_BOM_Line.a_asset_id, 
CUR_BOM_Line.c_costcenter_id,
             CUR_BOM_Line.user1_id, CUR_BOM_Line.user2_id, v_Record_ID
diff -r da579e3e0ea1 -r e98c64d54d97 
src-db/database/model/functions/M_INVEXPLODEBOMNOTSTOCK.xml
--- a/src-db/database/model/functions/M_INVEXPLODEBOMNOTSTOCK.xml       Tue Feb 
04 23:46:37 2014 +0100
+++ b/src-db/database/model/functions/M_INVEXPLODEBOMNOTSTOCK.xml       Wed Feb 
05 01:47:44 2014 +0100
@@ -30,6 +30,7 @@
   v_PriceList_ID VARCHAR2(32);
   v_PriceList_Version_ID VARCHAR2(32);
   v_Record_ID VARCHAR2(32);
+  v_C_Tax_ID VARCHAR2(32) ;
   TYPE RECORD IS REF CURSOR;
   Cur_Parameter RECORD;
   Cur_MPriceListVersion RECORD;
@@ -105,10 +106,11 @@
     v_ResultStr:='Inserting lines';
         
     FOR CUR_BOM_Line IN
-      (SELECT *
-       FROM C_INVOICELINE l
+      (SELECT l.*,i.dateinvoiced,i.C_BPartner_Location_ID,i.issotrx
+       FROM C_INVOICELINE l, c_invoice i
        WHERE l.C_invoiceline_ID=v_Record_ID
-         AND IsActive='Y'
+         AND l.c_invoice_id = i.c_invoice_id
+         AND l.IsActive='Y'
          AND EXISTS
            (SELECT *
             FROM M_PRODUCT p
@@ -166,6 +168,11 @@
             END IF;
           END IF;
         END IF;
+
+        v_C_Tax_ID:=C_Gettax(CUR_BOM.M_ProductBOM_ID, 
CUR_BOM_Line.dateinvoiced, 
+        CUR_BOM_Line.AD_Org_ID, null, CUR_BOM_Line.C_BPartner_Location_ID, 
+        CUR_BOM_Line.C_BPartner_Location_ID, null, CUR_BOM_Line.issotrx) ;
+
  
         INSERT INTO C_INVOICELINE
           (
@@ -189,7 +196,7 @@
             M_Get_Offers_Price(v_DateInvoiced, v_CBPartner_ID, 
CUR_BOM.M_ProductBOM_ID, M_BOM_PriceStd(CUR_BOM.M_ProductBOM_ID, 
v_PriceList_Version_ID),CUR_BOM_Line.QtyInvoiced*CUR_BOM.BOMQty, 
v_PriceList_ID),
             M_BOM_PriceLimit(CUR_BOM.M_ProductBOM_ID, v_PriceList_Version_ID),
             M_Get_Offers_Price(v_DateInvoiced, v_CBPartner_ID, 
CUR_BOM.M_ProductBOM_ID, M_BOM_PriceStd(CUR_BOM.M_ProductBOM_ID, 
v_PriceList_Version_ID),CUR_BOM_Line.QtyInvoiced*CUR_BOM.BOMQty, 
v_PriceList_ID) * CUR_BOM_Line.QtyInvoiced*CUR_BOM.BOMQty, 
CUR_BOM_Line.C_Charge_ID, CUR_BOM_Line.ChargeAmt,
-            CUR_BOM_Line.C_Tax_ID, M_BOM_PriceStd(CUR_BOM.M_ProductBOM_ID, 
v_PriceList_Version_ID),
+            coalesce(v_C_Tax_ID,CUR_BOM_Line.c_tax_id), 
M_BOM_PriceStd(CUR_BOM.M_ProductBOM_ID, v_PriceList_Version_ID),
             v_isdeferred_inv, v_defplantype_inv, v_periodnumber_inv, 
v_period_inv,
             CUR_BOM_Line.c_bpartner_id, CUR_BOM_Line.c_project_id, 
CUR_BOM_Line.c_projectline_id, CUR_BOM_Line.a_asset_id,
             CUR_BOM_Line.user1_id, CUR_BOM_Line.user2_id,v_Record_ID

------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to