details: /erp/devel/pi/rev/f2c30fd7b2f8
changeset: 8451:f2c30fd7b2f8
user: Víctor Martínez Romanos <victor.martinez <at> openbravo.com>
date: Mon Sep 27 10:13:22 2010 +0200
summary: Fixed bug 11460: Unpost a document in a closed period
Added a check in the FACT_ACCT_RESET process that is run
only when the user manually tries to unpost a document. If the
period is closed, an error is shown.
However, the global 'Reset accounting' process will not show any error in
case it finds any document in a closed period.
diffstat:
src-db/database/model/functions/FACT_ACCT_RESET.xml | 36 +++++++++++++++++++-
src-db/database/sourcedata/AD_MESSAGE.xml | 11 ++++++
2 files changed, 44 insertions(+), 3 deletions(-)
diffs (94 lines):
diff -r 6000237719aa -r f2c30fd7b2f8
src-db/database/model/functions/FACT_ACCT_RESET.xml
--- a/src-db/database/model/functions/FACT_ACCT_RESET.xml Mon Sep 27
11:39:06 2010 +0200
+++ b/src-db/database/model/functions/FACT_ACCT_RESET.xml Mon Sep 27
10:13:22 2010 +0200
@@ -19,7 +19,7 @@
* parts created by ComPiere are Copyright (C) ComPiere, Inc.;
* All Rights Reserved.
* Contributor(s): Openbravo SLU
- * Contributions are Copyright (C) 2001-2009 Openbravo, S.L.U.
+ * Contributions are Copyright (C) 2001-2010 Openbravo, S.L.U.
*
* Specifically, this derivative work is based upon the following Compiere
* file and version.
@@ -62,6 +62,8 @@
v_DocAction VARCHAR2(60);
v_UpdatedBy AD_PINSTANCE.UpdatedBy%TYPE;
v_DeleteFact varchar2(1):='Y';
+
+ v_isacctle AD_OrgType.IsAcctLegalEntity%TYPE:='N';
BEGIN
-- Update AD_PInstance
DBMS_OUTPUT.PUT_LINE('Updating PInstance - Processing ' || p_PInstance_ID)
;
@@ -119,14 +121,41 @@
WHERE ' || v_TableName || '_ID =''' || v_Record_ID || ''' AND
AD_CLIENT_ID =''' || v_AD_Client_ID || ''' '
INTO v_AD_Org_ID;
END IF;
+
+ -- Check the period control is opened (only if it is legal entity with
accounting)
+ SELECT COALESCE(t.ISACCTLEGALENTITY, 'N')
+ INTO v_isacctle
+ FROM AD_Org o JOIN AD_OrgType t ON (o.ad_orgtype_id=t.ad_orgtype_id)
+ WHERE AD_IsOrgIncluded(v_AD_Org_ID, o.ad_org_id , v_AD_Client_ID) <> -1
+ AND t.ISACCTLEGALENTITY='Y';
+ IF (v_isacctle='Y') THEN
+ DECLARE
+ v_available_period NUMBER:=0;
+ TYPE RECORD IS REF CURSOR;
+ Cur_Fact_Records RECORD;
+ BEGIN
+ FOR Cur_Fact_Records IN
+ (SELECT DATEACCT, DOCBASETYPE, C_DOCTYPE_ID
+ FROM FACT_ACCT
+ WHERE AD_TABLE_ID=v_AD_Table_ID
+ AND Record_ID = v_Record_ID
+ )
+ LOOP
+ v_available_period:=C_CHK_OPEN_PERIOD(v_AD_Org_ID,
Cur_Fact_Records.DATEACCT, Cur_Fact_Records.DOCBASETYPE,
Cur_Fact_Records.C_DOCTYPE_ID);
+ IF (v_available_period<>1) THEN
+ RAISE_APPLICATION_ERROR(-20000, '@PeriodClosedForUnPosting@');
+ END IF;
+ END LOOP;
+ END;
+ END IF;
END IF;
DBMS_OUTPUT.PUT_LINE(' Record_ID=' || v_Record_ID) ;
- -- Fact_Acct_Rest - Finish_Process Extension Point
+ -- Fact_Acct_Rest - Start_Process Extension Point
SELECT count(*) INTO v_count
FROM DUAL
where exists (select 1 from ad_ep_procedures where ad_extension_points_id =
'E1F9635815BF4A44B88E3EAADBD0D10E');
- IF (v_count=1) THEN
+ IF (v_count=1) THEN
DECLARE
v_ep_instance VARCHAR(32);
v_extension_point_id VARCHAR(32) := 'E1F9635815BF4A44B88E3EAADBD0D10E';
@@ -166,6 +195,7 @@
WHERE ad_ep_instance_id = v_ep_instance;
END;
END IF;
+ -- Fact_Acct_Rest - Finish_Process Extension Point
DECLARE
TYPE RECORD IS REF CURSOR;
Cur_Clients RECORD;
diff -r 6000237719aa -r f2c30fd7b2f8 src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml Mon Sep 27 11:39:06 2010 +0200
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml Mon Sep 27 10:13:22 2010 +0200
@@ -30581,6 +30581,17 @@
<!--39123BCA49CE46DAA39B17D86C454097-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
<!--39123BCA49CE46DAA39B17D86C454097--></AD_MESSAGE>
+<!--39BE25502DD04076ACBC01B3A50A422B--><AD_MESSAGE>
+<!--39BE25502DD04076ACBC01B3A50A422B-->
<AD_MESSAGE_ID><![CDATA[39BE25502DD04076ACBC01B3A50A422B]]></AD_MESSAGE_ID>
+<!--39BE25502DD04076ACBC01B3A50A422B-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--39BE25502DD04076ACBC01B3A50A422B--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--39BE25502DD04076ACBC01B3A50A422B--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--39BE25502DD04076ACBC01B3A50A422B-->
<VALUE><![CDATA[PeriodClosedForUnPosting]]></VALUE>
+<!--39BE25502DD04076ACBC01B3A50A422B--> <MSGTEXT><![CDATA[Period Closed. It
is not possible to unpost a document in a closed period]]></MSGTEXT>
+<!--39BE25502DD04076ACBC01B3A50A422B--> <MSGTYPE><![CDATA[E]]></MSGTYPE>
+<!--39BE25502DD04076ACBC01B3A50A422B-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--39BE25502DD04076ACBC01B3A50A422B--></AD_MESSAGE>
+
<!--39F0C9BD955741B9BC82FC6ACE49F19B--><AD_MESSAGE>
<!--39F0C9BD955741B9BC82FC6ACE49F19B-->
<AD_MESSAGE_ID><![CDATA[39F0C9BD955741B9BC82FC6ACE49F19B]]></AD_MESSAGE_ID>
<!--39F0C9BD955741B9BC82FC6ACE49F19B-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits