details:   https://code.openbravo.com/erp/devel/pi/rev/f98f86a4cf60
changeset: 24262:f98f86a4cf60
user:      Rafa Roda Palacios <rafa.roda <at> ubiquads.com>
date:      Thu Aug 14 14:21:48 2014 +0200
summary:   Fixes issue 26379 Now No Conversion Rate error message is properly 
handled in Accounting Server

details:   https://code.openbravo.com/erp/devel/pi/rev/5ca94c9c9989
changeset: 24263:5ca94c9c9989
user:      Rafa Roda Palacios <rafa.roda <at> ubiquads.com>
date:      Thu Aug 14 14:22:11 2014 +0200
summary:   Fixes issue 26464 Added Clause Left Part to Defined Selector Field 
PriceListVersionID of ProductSimple reference

details:   https://code.openbravo.com/erp/devel/pi/rev/f042a64ea3c7
changeset: 24264:f042a64ea3c7
user:      Rafa Roda Palacios <rafa.roda <at> ubiquads.com>
date:      Thu Aug 14 14:22:55 2014 +0200
summary:   Fixes issue 26844 Modified MA_PRODUCTION_COST to select the correct 
costing method in production

diffstat:

 src-db/database/model/functions/MA_PRODUCTION_COST.xml |  12 +++---
 src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml  |   1 +
 src/org/openbravo/erpCommon/ad_forms/AcctServer.java   |  32 +++++++++++++++--
 3 files changed, 35 insertions(+), 10 deletions(-)

diffs (120 lines):

diff -r a5a296d4988d -r f042a64ea3c7 
src-db/database/model/functions/MA_PRODUCTION_COST.xml
--- a/src-db/database/model/functions/MA_PRODUCTION_COST.xml    Thu Aug 14 
22:23:15 2014 +0200
+++ b/src-db/database/model/functions/MA_PRODUCTION_COST.xml    Thu Aug 14 
14:22:55 2014 +0200
@@ -199,8 +199,8 @@
                           AND ppl.PRODUCTIONTYPE = '-'
                           AND ppl.M_PRODUCTIONPLAN_ID = 
Cur_ProductionPlan.M_PRODUCTIONPLAN_ID
                           AND c.ISPRODUCTION='Y'
-                          AND ((c.COSTTYPE = 'AVA' AND v_iscostmigrated = 'Y')
-                               OR (c.COSTTYPE = 'AV' AND v_iscostmigrated = 
'N'))) LOOP
+                          AND ((c.COSTTYPE = (CASE WHEN (SELECT COUNT(1) FROM 
M_PRODUCT WHERE M_PRODUCT_ID = ppl.M_PRODUCT_ID AND PRODUCTTYPE = 'I' AND 
ISSTOCKED = 'Y') > 0 THEN 'AVA' ELSE 'STA' END) AND v_iscostmigrated = 'Y')
+                               OR (c.COSTTYPE IN ('AV','ST') AND 
v_iscostmigrated = 'N'))) LOOP
           v_ProductionCost_Tmp := v_ProductionCost_Tmp + 
COALESCE(Cur_WIP.cost,0);
           UPDATE M_PRODUCTIONLINE
           SET calccost = COALESCE(Cur_WIP.cost, 0)
@@ -218,8 +218,8 @@
                                   AND ppl.PRODUCTIONTYPE = '-'
                                   AND ppl.M_PRODUCTIONPLAN_ID = 
Cur_ProductionPlan.M_PRODUCTIONPLAN_ID
                                   AND c.ISPRODUCTION='N'
-                                                          AND ((c.COSTTYPE = 
'AVA' AND v_iscostmigrated = 'Y')
-                                                               OR (c.COSTTYPE 
= 'AV' AND v_iscostmigrated = 'N'))
+                                                          AND ((c.COSTTYPE = 
(CASE WHEN (SELECT COUNT(1) FROM M_PRODUCT WHERE M_PRODUCT_ID = 
ppl.M_PRODUCT_ID AND PRODUCTTYPE = 'I' AND ISSTOCKED = 'Y') > 0 THEN 'AVA' ELSE 
'STA' END) AND v_iscostmigrated = 'Y')
+                                                               OR (c.COSTTYPE 
IN ('AV','ST') AND v_iscostmigrated = 'N'))
                                   AND NOT EXISTS (SELECT 1
                                                   FROM M_COSTING, 
M_PRODUCTIONLINE
                                                   WHERE M_COSTING.M_PRODUCT_ID 
= M_PRODUCTIONLINE.M_PRODUCT_ID
@@ -228,8 +228,8 @@
                                                     AND 
M_PRODUCTIONLINE.PRODUCTIONTYPE = '-'
                                                     AND 
M_PRODUCTIONLINE.M_PRODUCT_ID = c.M_Product_ID
                                                     AND 
M_COSTING.ISPRODUCTION='Y'
-                                                   AND ((M_COSTING.COSTTYPE = 
'AVA' AND v_iscostmigrated = 'Y')
-                                                       OR (M_COSTING.COSTTYPE 
= 'AV' AND v_iscostmigrated = 'N')))) LOOP
+                                                   AND ((M_COSTING.COSTTYPE = 
(CASE WHEN (SELECT COUNT(1) FROM M_PRODUCT WHERE M_PRODUCT_ID = 
ppl.M_PRODUCT_ID AND PRODUCTTYPE = 'I' AND ISSTOCKED = 'Y') > 0 THEN 'AVA' ELSE 
'STA' END) AND v_iscostmigrated = 'Y')
+                                                       OR (M_COSTING.COSTTYPE 
IN ('AV','ST') AND v_iscostmigrated = 'N')))) LOOP
           v_ProductionCost_Tmp := v_ProductionCost_Tmp + 
COALESCE(Cur_RawMaterial.cost,0);
           UPDATE M_PRODUCTIONLINE
           SET calccost = COALESCE(Cur_RawMaterial.cost, 0)
diff -r a5a296d4988d -r f042a64ea3c7 
src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml
--- a/src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml     Thu Aug 14 
22:23:15 2014 +0200
+++ b/src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml     Thu Aug 14 
14:22:55 2014 +0200
@@ -1882,6 +1882,7 @@
 <!--9AB014C04115417395A89F1371848698-->  <ISOUTFIELD><![CDATA[N]]></ISOUTFIELD>
 <!--9AB014C04115417395A89F1371848698-->  
<DEFAULT_EXPRESSION><![CDATA[OB.getFilterExpression('org.openbravo.erpCommon.info.PriceListVersionFilterExpression');]]></DEFAULT_EXPRESSION>
 <!--9AB014C04115417395A89F1371848698-->  
<DISPLAY_EXPRESSION><![CDATA[priceListVersion]]></DISPLAY_EXPRESSION>
+<!--9AB014C04115417395A89F1371848698-->  
<CLAUSE_LEFT_PART><![CDATA[plv.id]]></CLAUSE_LEFT_PART>
 <!--9AB014C04115417395A89F1371848698-->  
<AD_REFERENCE_ID><![CDATA[13]]></AD_REFERENCE_ID>
 <!--9AB014C04115417395A89F1371848698-->  
<SHOWINPICKLIST><![CDATA[N]]></SHOWINPICKLIST>
 <!--9AB014C04115417395A89F1371848698--></OBUISEL_SELECTOR_FIELD>
diff -r a5a296d4988d -r f042a64ea3c7 
src/org/openbravo/erpCommon/ad_forms/AcctServer.java
--- a/src/org/openbravo/erpCommon/ad_forms/AcctServer.java      Thu Aug 14 
22:23:15 2014 +0200
+++ b/src/org/openbravo/erpCommon/ad_forms/AcctServer.java      Thu Aug 14 
14:22:55 2014 +0200
@@ -39,6 +39,7 @@
 import org.hibernate.criterion.Projections;
 import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.APRM_FinaccTransactionV;
+import org.openbravo.base.exception.OBException;
 import org.openbravo.base.secureApp.VariablesSecureApp;
 import org.openbravo.base.session.OBPropertiesProvider;
 import org.openbravo.client.kernel.RequestContext;
@@ -52,6 +53,7 @@
 import org.openbravo.erpCommon.utility.DateTimeData;
 import org.openbravo.erpCommon.utility.OBDateUtils;
 import org.openbravo.erpCommon.utility.OBError;
+import org.openbravo.erpCommon.utility.OBMessageUtils;
 import org.openbravo.erpCommon.utility.SequenceIdData;
 import org.openbravo.erpCommon.utility.Utility;
 import org.openbravo.exception.NoConnectionAvailableException;
@@ -1086,9 +1088,21 @@
     // createFacts
     try {
       m_fact[index] = createFact(m_as[index], conn, con, vars);
+    } catch (OBException e) {
+      log4j.warn(
+          "Accounting process failed. RecordID: " + Record_ID + " - TableId: " 
+ AD_Table_ID, e);
+      String strMessageError = e.getMessage();
+      if (strMessageError.indexOf("") != -1) {
+        setMessageResult(OBMessageUtils.translateError(strMessageError));
+        if ("@NotConvertible@".equals(strMessageError)) {
+          return STATUS_NotConvertible;
+        }
+      }
+      return STATUS_Error;
     } catch (Exception e) {
       log4j.warn(
           "Accounting process failed. RecordID: " + Record_ID + " - TableId: " 
+ AD_Table_ID, e);
+      return STATUS_Error;
     }
     if (!Status.equals(STATUS_NotPosted))
       return Status;
@@ -2393,8 +2407,13 @@
       if (conversionRateDoc != null) {
         amtFrom = applyRate(_amount, conversionRateDoc, false);
       } else {
-        amtFrom = new BigDecimal(getConvertedAmt(_amount.toString(), 
currencyIDFrom, currencyIDTo,
-            conversionDate, "", AD_Client_ID, AD_Org_ID, conn));
+        String convertedAmt = getConvertedAmt(_amount.toString(), 
currencyIDFrom, currencyIDTo,
+            conversionDate, "", AD_Client_ID, AD_Org_ID, conn);
+        if (convertedAmt != null && !"".equals(convertedAmt)) {
+          amtFrom = new BigDecimal(convertedAmt);
+        } else {
+          throw new OBException("@NotConvertible@");
+        }
       }
     }
     ConversionRateDoc conversionRateCurrentDoc = 
getConversionRateDoc(AD_Table_ID, Record_ID,
@@ -2439,8 +2458,13 @@
         amtTo = applyRate(_amount, conversionRateCurrentDoc, false);
         amtFromSourcecurrency = applyRate(amtFrom, conversionRateCurrentDoc, 
true);
       } else {
-        amtTo = new BigDecimal(getConvertedAmt(_amount.toString(), 
currencyIDFrom, currencyIDTo,
-            conversionDate, "", AD_Client_ID, AD_Org_ID, conn));
+        String convertedAmt = getConvertedAmt(_amount.toString(), 
currencyIDFrom, currencyIDTo,
+            conversionDate, "", AD_Client_ID, AD_Org_ID, conn);
+        if (convertedAmt != null && !"".equals(convertedAmt)) {
+          amtTo = new BigDecimal(convertedAmt);
+        } else {
+          throw new OBException("@NotConvertible@");
+        }
         amtFromSourcecurrency = amtFrom.multiply(_amount).divide(amtTo, 
conversionRatePrecision,
             BigDecimal.ROUND_HALF_EVEN);
       }

------------------------------------------------------------------------------
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to