details: https://code.openbravo.com/erp/devel/pi/rev/92d905a6c013 changeset: 28062:92d905a6c013 user: Alvaro Ferraz <alvaro.ferraz <at> openbravo.com> date: Thu Nov 26 17:08:45 2015 +0100 summary: Fixes issue 31415: Valued Stock Report is not filtering by CR startingdate
The valued stock report was not taking into account the starting date of the costing rule. diffstat: src/org/openbravo/erpCommon/ad_reports/ReportValuationStock.java | 20 +++++++++- src/org/openbravo/erpCommon/ad_reports/ReportValuationStock_data.xsql | 4 +- src/org/openbravo/erpCommon/utility/OBDateUtils.java | 19 +++++++++- 3 files changed, 40 insertions(+), 3 deletions(-) diffs (114 lines): diff -r 90a660b52e07 -r 92d905a6c013 src/org/openbravo/erpCommon/ad_reports/ReportValuationStock.java --- a/src/org/openbravo/erpCommon/ad_reports/ReportValuationStock.java Fri Nov 27 10:48:02 2015 +0100 +++ b/src/org/openbravo/erpCommon/ad_reports/ReportValuationStock.java Thu Nov 26 17:08:45 2015 +0100 @@ -29,6 +29,7 @@ import org.openbravo.base.secureApp.VariablesSecureApp; import org.openbravo.costing.CostingBackground; import org.openbravo.costing.CostingStatus; +import org.openbravo.costing.CostingUtils; import org.openbravo.dal.core.OBContext; import org.openbravo.dal.service.OBDal; import org.openbravo.dal.service.OBQuery; @@ -49,6 +50,7 @@ import org.openbravo.model.common.enterprise.Organization; import org.openbravo.model.common.enterprise.Warehouse; import org.openbravo.model.common.plm.Product; +import org.openbravo.model.materialmgmt.cost.CostingRule; import org.openbravo.model.materialmgmt.transaction.MaterialTransaction; import org.openbravo.xmlEngine.XmlDocument; @@ -119,13 +121,29 @@ Organization legalEntity = OBContext.getOBContext() .getOrganizationStructureProvider(wh.getClient().getId()) .getLegalEntity(wh.getOrganization()); + String strDateFrom = DateTimeData.nDaysAfter(this, strDate, "1"); if (legalEntity == null) { advise(request, response, "ERROR", Utility.messageBD(this, "WarehouseNotInLE", vars.getLanguage()), ""); + } else { + try { + CostingRule costingRule = CostingUtils.getCostDimensionRule(legalEntity, + OBDateUtils.getDate(strDate)); + strDateFrom = OBDateUtils.formatDateTime(CostingUtils + .getCostingRuleStartingDate(costingRule)); + } catch (Exception exception) { + advise( + request, + response, + "ERROR", + Utility.messageBD(this, "NoCostingRuleFoundForOrganizationAndDate", + vars.getLanguage()), ""); + } } data = ReportValuationStockData.select(this, vars.getLanguage(), strCurrencyId, (legalEntity == null) ? null : legalEntity.getId(), - DateTimeData.nDaysAfter(this, strDate, "1"), strWarehouse, strCategoryProduct); + DateTimeData.nDaysAfter(this, strDate, "1"), strDateFrom, strWarehouse, + strCategoryProduct); boolean hasTrxWithNoCost = hasTrxWithNoCost(strDate, strWarehouse, strCategoryProduct); if (hasTrxWithNoCost) { OBError warning = new OBError(); diff -r 90a660b52e07 -r 92d905a6c013 src/org/openbravo/erpCommon/ad_reports/ReportValuationStock_data.xsql --- a/src/org/openbravo/erpCommon/ad_reports/ReportValuationStock_data.xsql Fri Nov 27 10:48:02 2015 +0100 +++ b/src/org/openbravo/erpCommon/ad_reports/ReportValuationStock_data.xsql Thu Nov 26 17:08:45 2015 +0100 @@ -12,7 +12,7 @@ * under the License. * The Original Code is Openbravo ERP. * The Initial Developer of the Original Code is Openbravo SLU - * All portions are Copyright (C) 2001-2014 Openbravo SLU + * All portions are Copyright (C) 2001-2015 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************ @@ -51,6 +51,7 @@ WHERE COALESCE(DATEACCT, COSTDATE) < to_date(?) GROUP BY m_transaction_id, C_CURRENCY_ID, COALESCE(DATEACCT, COSTDATE)) TC ON TRX.M_TRANSACTION_ID = TC.M_TRANSACTION_ID WHERE TRX.MOVEMENTDATE < to_date(?) + AND TRX.TRXPROCESSDATE > to_date(?) AND L.M_WAREHOUSE_ID = ? GROUP BY TRX.M_TRANSACTION_ID, TRX.M_PRODUCT_ID, TRX.C_UOM_ID, TRX.AD_CLIENT_ID, TRX.ISCOSTCALCULATED, TC.C_CURRENCY_ID, TC.MOVEMENTDATE) A ON TR.M_TRANSACTION_ID = A.M_TRANSACTION_ID, C_UOM, @@ -72,6 +73,7 @@ <Parameter name="legalEntity"/> <Parameter name="datePlus"/> <Parameter name="datePlus"/> + <Parameter name="dateFrom"/> <Parameter name="warehouse"/> <Parameter name="categoryProduct" optional="true" after="AND 1 = 1"><![CDATA[ AND M_PRODUCT.M_PRODUCT_CATEGORY_ID= ? ]]></Parameter> </SqlMethod> diff -r 90a660b52e07 -r 92d905a6c013 src/org/openbravo/erpCommon/utility/OBDateUtils.java --- a/src/org/openbravo/erpCommon/utility/OBDateUtils.java Fri Nov 27 10:48:02 2015 +0100 +++ b/src/org/openbravo/erpCommon/utility/OBDateUtils.java Thu Nov 26 17:08:45 2015 +0100 @@ -11,7 +11,7 @@ * under the License. * The Original Code is Openbravo ERP. * The Initial Developer of the Original Code is Openbravo SLU - * All portions are Copyright (C) 2012 Openbravo SLU + * All portions are Copyright (C) 2012-2015 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************ @@ -51,6 +51,23 @@ } /** + * Returns an String with the date in the <i>dateTimeFormat.java</i> format defined in + * Openbravo.properties + * + * @see OBDateUtils#formatDate(Date, String) + * + * @param date + * Date to be formatted. + * @return String formatted. + */ + public static String formatDateTime(Date date) { + final String pattern = OBPropertiesProvider.getInstance().getOpenbravoProperties() + .getProperty("dateTimeFormat.java"); + final SimpleDateFormat dateFormatter = new SimpleDateFormat(pattern); + return dateFormatter.format(date); + } + + /** * Returns an String with the date in the specified format * * @param date ------------------------------------------------------------------------------ _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits