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