details: https://code.openbravo.com/erp/devel/pi/rev/c3acd6c8dc33 changeset: 25905:c3acd6c8dc33 user: Unai Martirena <unai.martirena <at> openbravo.com> date: Thu Feb 12 09:06:42 2015 +0100 summary: Related to Bug 28890: Valued Stock Report shows correct qty with Cost Adjusments
The query is working in Postgres and in Oracle details: https://code.openbravo.com/erp/devel/pi/rev/77ed398f859c changeset: 25906:77ed398f859c user: Unai Martirena <unai.martirena <at> openbravo.com> date: Thu Feb 12 13:35:34 2015 +0100 summary: Related to bug 28896: Missing entry on group by clause details: https://code.openbravo.com/erp/devel/pi/rev/3cf79f7adef9 changeset: 25907:3cf79f7adef9 user: Unai Martirena <unai.martirena <at> openbravo.com> date: Thu Feb 12 18:43:18 2015 +0100 summary: Related to bug 28854: Fix on whereClause, add missing or clause diffstat: modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/hqlinjections/AddPaymentOrderInvoicesTransformer.java | 6 +- src/org/openbravo/erpCommon/ad_reports/ReportValuationStock_data.xsql | 60 +++++---- 2 files changed, 38 insertions(+), 28 deletions(-) diffs (118 lines): diff -r d66afa655b19 -r 3cf79f7adef9 modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/hqlinjections/AddPaymentOrderInvoicesTransformer.java --- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/hqlinjections/AddPaymentOrderInvoicesTransformer.java Fri Feb 13 13:44:15 2015 +0100 +++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/hqlinjections/AddPaymentOrderInvoicesTransformer.java Thu Feb 12 18:43:18 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) 2014 Openbravo SLU + * All portions are Copyright (C) 2014 - 2015 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************* @@ -242,7 +242,7 @@ isFirst = true; } } - whereClause.append(")"); + whereClause.append(") or "); } if ("I".equals(transactionType)) { @@ -294,6 +294,7 @@ groupByClause.append(" COALESCE(ipriority.priority, opriority.priority), "); groupByClause.append(" inv.salesTransaction, "); groupByClause.append(" oinfo.organization, "); + groupByClause.append(" oinfo.aPRMPaymentDescription, "); groupByClause.append(" inv.orderReference, "); } else if ("O".equals(transactionType)) { groupByClause.append(" ord.documentNo, "); @@ -310,6 +311,7 @@ groupByClause.append(" COALESCE(ipriority.priority, opriority.priority), "); groupByClause.append(" inv.salesTransaction, "); groupByClause.append(" oinfo.organization, "); + groupByClause.append(" oinfo.aPRMPaymentDescription, "); groupByClause.append(" inv.orderReference, "); } groupByClause.append(" COALESCE(invbp.id, ordbp.id), "); diff -r d66afa655b19 -r 3cf79f7adef9 src/org/openbravo/erpCommon/ad_reports/ReportValuationStock_data.xsql --- a/src/org/openbravo/erpCommon/ad_reports/ReportValuationStock_data.xsql Fri Feb 13 13:44:15 2015 +0100 +++ b/src/org/openbravo/erpCommon/ad_reports/ReportValuationStock_data.xsql Thu Feb 12 18:43:18 2015 +0100 @@ -28,36 +28,43 @@ <SqlMethodComment></SqlMethodComment> <Sql> <![CDATA[ - SELECT CATEGORY_NAME, M_PRODUCT_ID, PRODUCT_NAME, SUM(QTY) AS QTY, UOM_NAME, CASE ISCOSTCALCULATED - WHEN 'Y' THEN SUM(TOTAL_COST) / SUM(QTY) + SELECT CATEGORY_NAME, ZZ.M_PRODUCT_ID, PRODUCT_NAME, SUM(M.MOVEMENTQTY) AS QTY, UOM_NAME, + CASE ZZ.ISCOSTCALCULATED + WHEN 'Y' THEN SUM(TOTAL_COST) / SUM(M.MOVEMENTQTY) ELSE NULL END AS AVERAGE_COST, SUM(TOTAL_COST) AS TOTAL_COST - FROM (SELECT M_PRODUCT_CATEGORY.NAME AS CATEGORY_NAME, A.M_PRODUCT_ID, AD_COLUMN_IDENTIFIER (to_char('M_Product'),to_char(M_PRODUCT.M_PRODUCT_ID),to_char(?)) AS PRODUCT_NAME, - A.QTY, C_UOM.NAME AS UOM_NAME, - CASE a.iscostcalculated - WHEN 'Y' THEN C_CURRENCY_CONVERT_PRECISION (Suma,A.c_currency_id,?,A.movementdate,NULL,A.AD_CLIENT_ID,?,'C') + FROM M_TRANSACTION M + LEFT JOIN (SELECT M_PRODUCT_CATEGORY.NAME AS CATEGORY_NAME, A.M_PRODUCT_ID, AD_COLUMN_IDENTIFIER (to_char('M_Product'),to_char(M_PRODUCT.M_PRODUCT_ID),to_char(?)) AS PRODUCT_NAME, + C_UOM.NAME AS UOM_NAME, SUM(A.SUMA) AS TOTAL_COST, A.ISCOSTCALCULATED, A.AD_CLIENT_ID, A.C_CURRENCY_ID, A.M_TRANSACTION_ID + FROM M_PRODUCT_CATEGORY, + M_TRANSACTION TR + LEFT JOIN (SELECT TRX.M_TRANSACTION_ID, TRX.M_PRODUCT_ID, + CASE TRX.ISCOSTCALCULATED + WHEN 'Y' THEN C_CURRENCY_CONVERT_PRECISION (SUM(CASE WHEN TRX.MOVEMENTQTY < 0 THEN - TC.TRXCOST ELSE TC.TRXCOST END),TC.C_CURRENCY_ID,?,TC.MOVEMENTDATE,NULL,TRX.AD_CLIENT_ID,?,'C') ELSE NULL - END AS TOTAL_COST, A.ISCOSTCALCULATED, A.AD_CLIENT_ID, A.MOVEMENTDATE, A.C_CURRENCY_ID - FROM M_PRODUCT_CATEGORY, - (SELECT trx.m_transaction_id, trx.M_PRODUCT_ID, trx.MOVEMENTQTY AS QTY, sum(CASE WHEN trx.MOVEMENTQTY < 0 THEN- tc.cost ELSE tc.cost END) AS Suma, - trx.C_UOM_ID, trx.AD_CLIENT_ID, trx.iscostcalculated, tc.c_currency_id, coalesce(tc.dateacct, tc.COSTDATE) as movementdate - FROM M_TRANSACTION trx - JOIN M_LOCATOR l ON trx.M_LOCATOR_ID = l.M_LOCATOR_ID - LEFT JOIN M_TRANSACTION_COST tc ON trx.m_transaction_id = tc.m_transaction_id - WHERE trx.MOVEMENTDATE < to_date(?) - AND COALESCE(tc.DATEACCT, tc.COSTDATE) < to_date(?) - AND l.M_WAREHOUSE_ID = ? - GROUP BY trx.m_transaction_id, trx.M_PRODUCT_ID, trx.MOVEMENTQTY, trx.C_UOM_ID, trx.AD_CLIENT_ID, trx.iscostcalculated, tc.c_currency_id, coalesce(tc.dateacct, tc.COSTDATE)) A, - C_UOM, - M_PRODUCT - WHERE A.M_PRODUCT_ID = M_PRODUCT.M_PRODUCT_ID - AND A.C_UOM_ID = C_UOM.C_UOM_ID - AND M_PRODUCT.M_PRODUCT_CATEGORY_ID = M_PRODUCT_CATEGORY.M_PRODUCT_CATEGORY_ID - AND 1 = 1 - AND (A.QTY <> 0 OR A.Suma <> 0)) ZZ - GROUP BY ZZ.M_PRODUCT_ID, CATEGORY_NAME, PRODUCT_NAME, UOM_NAME, ISCOSTCALCULATED - HAVING SUM(QTY) <>0 + END AS SUMA, + TRX.C_UOM_ID, TRX.AD_CLIENT_ID, TRX.ISCOSTCALCULATED, TC.C_CURRENCY_ID + FROM M_TRANSACTION TRX + JOIN M_LOCATOR L ON TRX.M_LOCATOR_ID = L.M_LOCATOR_ID + LEFT JOIN (SELECT SUM(COST) AS TRXCOST, M_TRANSACTION_ID, C_CURRENCY_ID, COALESCE(DATEACCT, COSTDATE) as MOVEMENTDATE + FROM M_TRANSACTION_COST + 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 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, + M_PRODUCT + WHERE A.M_PRODUCT_ID = M_PRODUCT.M_PRODUCT_ID + AND A.C_UOM_ID = C_UOM.C_UOM_ID + AND M_PRODUCT.M_PRODUCT_CATEGORY_ID = M_PRODUCT_CATEGORY.M_PRODUCT_CATEGORY_ID + AND 1 = 1 + AND ( A.SUMA <> 0 OR TR.MOVEMENTQTY <> 0) + GROUP BY M_PRODUCT_CATEGORY.NAME, A.M_PRODUCT_ID, M_PRODUCT.M_PRODUCT_ID, AD_COLUMN_IDENTIFIER (to_char('M_Product'),to_char(M_PRODUCT.M_PRODUCT_ID),to_char(?)), C_UOM.NAME, A.ISCOSTCALCULATED, A.AD_CLIENT_ID, A.C_CURRENCY_ID, A.M_TRANSACTION_ID) ZZ + ON M.M_TRANSACTION_ID = ZZ.M_TRANSACTION_ID + GROUP BY ZZ.M_PRODUCT_ID, CATEGORY_NAME, PRODUCT_NAME, UOM_NAME, ZZ.ISCOSTCALCULATED + HAVING SUM(M.MOVEMENTQTY) <>0 ORDER BY CATEGORY_NAME, PRODUCT_NAME ]]></Sql> <Field name="rownum" value="count"/> @@ -67,6 +74,7 @@ <Parameter name="datePlus"/> <Parameter name="datePlus"/> <Parameter name="warehouse"/> + <Parameter name="adLanguage"/> <Parameter name="categoryProduct" optional="true" after="AND 1 = 1"><![CDATA[ AND M_PRODUCT.M_PRODUCT_CATEGORY_ID= ? ]]></Parameter> </SqlMethod> <SqlMethod name="set" type="constant" return="multiple"> ------------------------------------------------------------------------------ Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits