details: /erp/devel/int/rev/94a406d2d299
changeset: 6600:94a406d2d299
user: Adrián Romero <adrianromero <at> openbravo.com>
date: Wed Mar 03 17:36:36 2010 +0100
summary: Fixes issue 0012505: m_generate_average_costs when there is no
pricelist associated
details: /erp/devel/int/rev/2c71d76b9c31
changeset: 6601:2c71d76b9c31
user: David Baz Fayos <david.baz <at> openbravo.com>
date: Wed Mar 03 18:32:05 2010 +0100
summary: Related to issue 12538: Changed js to adapt changes to readOnlyLogic
diffstat:
src-db/database/model/functions/M_GENERATE_AVERAGE_COSTS.xml | 92 ++++++++---
src-db/database/sourcedata/AD_MESSAGE.xml | 33 ++++
src-db/database/sourcedata/AD_PROCESS.xml | 4 +-
src/org/openbravo/erpCommon/security/Login_F1.html | 2 +-
web/js/utils.js | 6 +-
5 files changed, 107 insertions(+), 30 deletions(-)
diffs (263 lines):
diff -r f7c2fc0000fc -r 2c71d76b9c31
src-db/database/model/functions/M_GENERATE_AVERAGE_COSTS.xml
--- a/src-db/database/model/functions/M_GENERATE_AVERAGE_COSTS.xml Wed Mar
03 13:44:47 2010 +0100
+++ b/src-db/database/model/functions/M_GENERATE_AVERAGE_COSTS.xml Wed Mar
03 18:32:05 2010 +0100
@@ -22,8 +22,9 @@
************************************************************************/
-- Logistice
v_ResultStr VARCHAR2(2000):='';
- v_Result NUMBER;
+ v_Result NUMBER:=1;
v_Message VARCHAR2(2000):='';
+ v_MessageCount NUMBER:=0;
v_Record_ID VARCHAR2(32);
v_Date DATE;
v_Qty NUMBER;
@@ -36,6 +37,8 @@
v_count NUMBER;
v_Deleted NUMBER;
v_ProductOld VARCHAR2(32);
+ v_CostNew NUMBER;
+ v_PriceNew NUMBER;
v_Client VARCHAR2(32);
v_BaseCurrency VARCHAR2(32);
-- Parameter
@@ -45,6 +48,7 @@
Cur_ProdCost RECORD;
Cur_PriceList RECORD;
Cur_ManualCost RECORD;
+ Cur_OldCost RECORD;
v_rowcount NUMBER;
BEGIN
v_Qty:=0;
@@ -111,11 +115,12 @@
v_ProductOld:='0';
v_DateOld:=TO_DATE('01-01-1900', 'DD-MM-YYYY') ;
FOR Cur_InOutLine IN
- (SELECT M_INOUTLINE.M_INOUTLINE_ID, M_INOUTLINE.MOVEMENTQTY,
M_PRODUCT.M_PRODUCT_ID, M_INOUT.MOVEMENTDATE,
- M_INOUTLINE.AD_CLIENT_ID, M_INOUTLINE.AD_ORG_ID, M_INOUT.C_BPARTNER_ID
- FROM M_INOUT, M_INOUTLINE, M_PRODUCT
+ (SELECT M_INOUTLINE.M_INOUTLINE_ID, M_INOUTLINE.MOVEMENTQTY,
M_PRODUCT.M_PRODUCT_ID, M_PRODUCT.NAME AS PRODUCT_NAME, M_INOUT.MOVEMENTDATE,
+ M_INOUTLINE.AD_CLIENT_ID, M_INOUTLINE.AD_ORG_ID,
M_INOUT.C_BPARTNER_ID, C_BPARTNER.NAME AS BPARTNER_NAME
+ FROM M_INOUT, M_INOUTLINE, M_PRODUCT, C_BPARTNER
WHERE M_INOUT.M_INOUT_ID=M_INOUTLINE.M_INOUT_ID
AND M_INOUTLINE.M_PRODUCT_ID=M_PRODUCT.M_PRODUCT_ID
+ AND M_INOUT.C_BPARTNER_ID = C_BPARTNER.C_BPARTNER_ID
AND M_PRODUCT.COSTTYPE='AV'
AND M_INOUT.ISSOTRX='N'
AND M_INOUT.PROCESSED='Y'
@@ -220,29 +225,64 @@
EXIT;
END LOOP;
END IF;
- v_ResultStr:='insert costing: '||Cur_InOutLine.M_INOUTLINE_ID;
- INSERT
- INTO M_COSTING
- (
- M_COSTING_ID, CREATED, CREATEDBY, UPDATED,
- UPDATEDBY, AD_CLIENT_ID, AD_ORG_ID, M_PRODUCT_ID,
- DATETO, DATEFROM, ISMANUAL, M_INOUTLINE_ID,
- C_INVOICELINE_ID, QTY, PRICE, CUMQTY,
- COST, COSTTYPE, ISPERMANENT
- )
- VALUES
- (
- Ad_Sequence_Nextno('M_Costing'), now(), v_User, now(),
- v_User, Cur_InOutLine.AD_CLIENT_ID, Cur_InOutLine.AD_ORG_ID,
Cur_InOutLine.M_PRODUCT_ID,
- COALESCE(v_Date, TO_DATE('31-12-9999', 'DD-MM-YYYY')),
Cur_InOutLine.MOVEMENTDATE, 'N', Cur_InOutLine.M_INOUTLINE_ID,
- NULL, Cur_InOutLine.MOVEMENTQTY, v_Price, COALESCE(v_Qty, 0) +
Cur_InOutLine.MOVEMENTQTY + v_CumQty,
- ROUND((CASE
+
+ v_CostNew := ROUND((CASE
WHEN v_Qty+v_CumQty<0 THEN v_Price
WHEN (v_Qty+Cur_InOutLine.MOVEMENTQTY+v_CumQty) = 0 THEN 0
- ELSE (((v_Qty+v_CumQty)*COALESCE(v_Cost, v_Price))
+(Cur_InOutLine.MOVEMENTQTY *v_Price))
/(v_Qty+Cur_InOutLine.MOVEMENTQTY+v_CumQty) END),
c_get_currency_precision(v_basecurrency, 'C')),
- 'AV', 'N'
- )
- ;
+ ELSE (((v_Qty+v_CumQty)*COALESCE(v_Cost, v_Price))
+(Cur_InOutLine.MOVEMENTQTY *v_Price))
/(v_Qty+Cur_InOutLine.MOVEMENTQTY+v_CumQty) END),
c_get_currency_precision(v_basecurrency, 'C'));
+ v_PriceNew := v_Price;
+
+ IF (v_PriceNew IS NULL) THEN
+ v_Result := 2;
+ v_MessageCount := v_MessageCount + 1;
+ IF (v_MessageCount < 20) THEN
+ v_Message := v_Message || '<br><br>@CannotCalcCosts@: ''' ||
Cur_InOutLine.BPARTNER_NAME || ''', ''' || Cur_InOutLine.PRODUCT_NAME || '''';
+ ELSE
+ IF (v_MessageCount = 20) THEN
+ v_Message := v_Message || '<br><br>@NoMoreMessages@';
+ END IF;
+ END IF;
+
+ FOR Cur_OldCost IN
+ (SELECT PRICE, COST
+ FROM M_COSTING
+ WHERE DATETO <= Cur_InOutLine.MOVEMENTDATE
+ AND M_PRODUCT_ID = Cur_InOutLine.M_PRODUCT_ID
+ AND COSTTYPE = 'AV'
+ ORDER BY DATETO DESC
+ )
+ LOOP
+ v_CostNew := COALESCE(v_CostNew, Cur_OldCost.COST);
+ v_PriceNew := COALESCE(v_PriceNew, Cur_OldCost.PRICE);
+ EXIT;
+ END LOOP;
+ END IF;
+
+ IF (v_PriceNew IS NULL) THEN
+ IF (v_MessageCount < 20) THEN
+ v_Message := v_Message || '. @CannotCalcPrevCost@';
+ END IF;
+ ELSE
+ v_ResultStr:='insert costing: '||Cur_InOutLine.M_INOUTLINE_ID;
+ INSERT
+ INTO M_COSTING
+ (
+ M_COSTING_ID, CREATED, CREATEDBY, UPDATED,
+ UPDATEDBY, AD_CLIENT_ID, AD_ORG_ID, M_PRODUCT_ID,
+ DATETO, DATEFROM, ISMANUAL, M_INOUTLINE_ID,
+ C_INVOICELINE_ID, QTY, PRICE, CUMQTY,
+ COST, COSTTYPE, ISPERMANENT
+ )
+ VALUES
+ (
+ Ad_Sequence_Nextno('M_Costing'), now(), v_User, now(),
+ v_User, Cur_InOutLine.AD_CLIENT_ID, Cur_InOutLine.AD_ORG_ID,
Cur_InOutLine.M_PRODUCT_ID,
+ COALESCE(v_Date, TO_DATE('31-12-9999', 'DD-MM-YYYY')),
Cur_InOutLine.MOVEMENTDATE, 'N', Cur_InOutLine.M_INOUTLINE_ID,
+ NULL, Cur_InOutLine.MOVEMENTQTY, v_PriceNew, COALESCE(v_Qty,
0) + Cur_InOutLine.MOVEMENTQTY + v_CumQty, v_CostNew,
+ 'AV', 'N'
+ );
+ END IF;
+
v_CumQty:=v_CumQty + Cur_InOutLine.MOVEMENTQTY;
v_DateOld:=Cur_InOutLine.MOVEMENTDATE;
v_ProductOld:=Cur_InOutLine.M_PRODUCT_ID;
@@ -250,7 +290,7 @@
--<<FINISH_PROCESS>>
-- Update AD_PInstance
DBMS_OUTPUT.PUT_LINE('Updating PInstance - Finished ' || v_Message);
- AD_UPDATE_PINSTANCE(p_PInstance_ID, v_User, 'N', 1, v_Message);
+ AD_UPDATE_PINSTANCE(p_PInstance_ID, v_User, 'N', v_Result, v_Message);
RETURN;
END; --BODY
EXCEPTION
diff -r f7c2fc0000fc -r 2c71d76b9c31 src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml Wed Mar 03 13:44:47 2010 +0100
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml Wed Mar 03 18:32:05 2010 +0100
@@ -29956,6 +29956,17 @@
<!--1DAB5DCDF04B4FEE97200DE4D2028FAB-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
<!--1DAB5DCDF04B4FEE97200DE4D2028FAB--></AD_MESSAGE>
+<!--1E4DFEDC675F4BD8AFA6A8D707D77FFF--><AD_MESSAGE>
+<!--1E4DFEDC675F4BD8AFA6A8D707D77FFF-->
<AD_MESSAGE_ID><![CDATA[1E4DFEDC675F4BD8AFA6A8D707D77FFF]]></AD_MESSAGE_ID>
+<!--1E4DFEDC675F4BD8AFA6A8D707D77FFF-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--1E4DFEDC675F4BD8AFA6A8D707D77FFF--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--1E4DFEDC675F4BD8AFA6A8D707D77FFF--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--1E4DFEDC675F4BD8AFA6A8D707D77FFF-->
<VALUE><![CDATA[NoMoreMessages]]></VALUE>
+<!--1E4DFEDC675F4BD8AFA6A8D707D77FFF--> <MSGTEXT><![CDATA[More messages are
not displayed...]]></MSGTEXT>
+<!--1E4DFEDC675F4BD8AFA6A8D707D77FFF--> <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--1E4DFEDC675F4BD8AFA6A8D707D77FFF-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--1E4DFEDC675F4BD8AFA6A8D707D77FFF--></AD_MESSAGE>
+
<!--1FBA26D3CE3F4C52B5B1EB2AA7E1C8D6--><AD_MESSAGE>
<!--1FBA26D3CE3F4C52B5B1EB2AA7E1C8D6-->
<AD_MESSAGE_ID><![CDATA[1FBA26D3CE3F4C52B5B1EB2AA7E1C8D6]]></AD_MESSAGE_ID>
<!--1FBA26D3CE3F4C52B5B1EB2AA7E1C8D6-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -30046,6 +30057,17 @@
<!--234443E5BAB34ABC892AFDE05F9C229D-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
<!--234443E5BAB34ABC892AFDE05F9C229D--></AD_MESSAGE>
+<!--239B36AC9A144464861B1E76C83A07E9--><AD_MESSAGE>
+<!--239B36AC9A144464861B1E76C83A07E9-->
<AD_MESSAGE_ID><![CDATA[239B36AC9A144464861B1E76C83A07E9]]></AD_MESSAGE_ID>
+<!--239B36AC9A144464861B1E76C83A07E9-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--239B36AC9A144464861B1E76C83A07E9--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--239B36AC9A144464861B1E76C83A07E9--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--239B36AC9A144464861B1E76C83A07E9-->
<VALUE><![CDATA[CannotCalcPrevCost]]></VALUE>
+<!--239B36AC9A144464861B1E76C83A07E9--> <MSGTEXT><![CDATA[Cannot insert
previous cost.]]></MSGTEXT>
+<!--239B36AC9A144464861B1E76C83A07E9--> <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--239B36AC9A144464861B1E76C83A07E9-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--239B36AC9A144464861B1E76C83A07E9--></AD_MESSAGE>
+
<!--23B122FD033649F7854EC76DCD746E72--><AD_MESSAGE>
<!--23B122FD033649F7854EC76DCD746E72-->
<AD_MESSAGE_ID><![CDATA[23B122FD033649F7854EC76DCD746E72]]></AD_MESSAGE_ID>
<!--23B122FD033649F7854EC76DCD746E72-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -31361,6 +31383,17 @@
<!--8437C016631646ED9643B0B53E4F2AF8-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
<!--8437C016631646ED9643B0B53E4F2AF8--></AD_MESSAGE>
+<!--86AB14C5F80B4241A3E75E7D45CE62F6--><AD_MESSAGE>
+<!--86AB14C5F80B4241A3E75E7D45CE62F6-->
<AD_MESSAGE_ID><![CDATA[86AB14C5F80B4241A3E75E7D45CE62F6]]></AD_MESSAGE_ID>
+<!--86AB14C5F80B4241A3E75E7D45CE62F6-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--86AB14C5F80B4241A3E75E7D45CE62F6--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--86AB14C5F80B4241A3E75E7D45CE62F6--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--86AB14C5F80B4241A3E75E7D45CE62F6-->
<VALUE><![CDATA[CannotCalcCosts]]></VALUE>
+<!--86AB14C5F80B4241A3E75E7D45CE62F6--> <MSGTEXT><![CDATA[Cannot calculate
costs for Business Partner and Product]]></MSGTEXT>
+<!--86AB14C5F80B4241A3E75E7D45CE62F6--> <MSGTYPE><![CDATA[W]]></MSGTYPE>
+<!--86AB14C5F80B4241A3E75E7D45CE62F6-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--86AB14C5F80B4241A3E75E7D45CE62F6--></AD_MESSAGE>
+
<!--873B575159384E1CAB008991116622BF--><AD_MESSAGE>
<!--873B575159384E1CAB008991116622BF-->
<AD_MESSAGE_ID><![CDATA[873B575159384E1CAB008991116622BF]]></AD_MESSAGE_ID>
<!--873B575159384E1CAB008991116622BF-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r f7c2fc0000fc -r 2c71d76b9c31 src-db/database/sourcedata/AD_PROCESS.xml
--- a/src-db/database/sourcedata/AD_PROCESS.xml Wed Mar 03 13:44:47 2010 +0100
+++ b/src-db/database/sourcedata/AD_PROCESS.xml Wed Mar 03 18:32:05 2010 +0100
@@ -3359,7 +3359,8 @@
<!--800085--> <VALUE><![CDATA[GenerateAverageCosts]]></VALUE>
<!--800085--> <NAME><![CDATA[Generate Average Costs]]></NAME>
<!--800085--> <DESCRIPTION><![CDATA[Generates raw materials average
costs.]]></DESCRIPTION>
-<!--800085--> <HELP><![CDATA[Using the previous raw material orders,
calculates its medium cost.]]></HELP>
+<!--800085--> <HELP><![CDATA[Using the previous raw material receipts,
calculates its medium cost.<br>
+The product price of each receipt is calculated based on the on the product
price in the purchase invoice. If the invoice does not exist the price of the
purchase order is used, if the order neither exists the price list of the
provider is used. If none of these criterias exist, a warning is generated and
the previous cost is used.]]></HELP>
<!--800085--> <ACCESSLEVEL><![CDATA[7]]></ACCESSLEVEL>
<!--800085--> <ISUSERSTARTABLE><![CDATA[Y]]></ISUSERSTARTABLE>
<!--800085-->
<PROCEDURENAME><![CDATA[M_Generate_Average_Costs]]></PROCEDURENAME>
@@ -3367,6 +3368,7 @@
<!--800085--> <ISDIRECTPRINT><![CDATA[N]]></ISDIRECTPRINT>
<!--800085--> <ISBACKGROUND><![CDATA[N]]></ISBACKGROUND>
<!--800085--> <ISJASPER><![CDATA[N]]></ISJASPER>
+<!--800085--> <ISEXTERNALSERVICE><![CDATA[N]]></ISEXTERNALSERVICE>
<!--800085--> <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
<!--800085--> <UIPATTERN><![CDATA[S]]></UIPATTERN>
<!--800085--></AD_PROCESS>
diff -r f7c2fc0000fc -r 2c71d76b9c31
src/org/openbravo/erpCommon/security/Login_F1.html
--- a/src/org/openbravo/erpCommon/security/Login_F1.html Wed Mar 03
13:44:47 2010 +0100
+++ b/src/org/openbravo/erpCommon/security/Login_F1.html Wed Mar 03
18:32:05 2010 +0100
@@ -90,7 +90,7 @@
clearForm();
} catch (e) {}
setWindowElementFocus('firstElement');
- if ((!revisionControl('6553')) || (isOpsInstance() !=
isOpsInstanceCached())) {
+ if ((!revisionControl('6601')) || (isOpsInstance() !=
isOpsInstanceCached())) {
alert(cacheMsg);
}
diff -r f7c2fc0000fc -r 2c71d76b9c31 web/js/utils.js
--- a/web/js/utils.js Wed Mar 03 13:44:47 2010 +0100
+++ b/web/js/utils.js Wed Mar 03 18:32:05 2010 +0100
@@ -74,7 +74,7 @@
* Return a number that would be checked at the Login screen to know if the
file is cached with the correct version
*/
function getCurrentRevision() {
- var number = '6553';
+ var number = '6601';
return number;
}
@@ -3439,8 +3439,9 @@
obj.className = obj.className.replace("ReadOnly","");
obj.className = obj.className.replace("readonly","");
obj.readOnly = false;
+ setObjAttribute(obj, 'readOnly', "false");
if (obj.setReadOnly) {
- obj.setReadOnly(false);
+ obj.setReadOnly(false);
}
if (obj.getAttribute('type') == "checkbox") {
var onclickTextB = getObjAttribute(obj, 'onclick');
@@ -3454,6 +3455,7 @@
}
if (obj.className.indexOf("Combo")!=-1) {
+ obj.className = className.replace("NoUpdatable","");
enableAttributeWithFunction(obj, 'obj', 'onChange');
if (obj.getAttribute("onChange")) {
onchange_combo = getObjAttribute(obj, 'onChange');
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits