details:   /erp/devel/pi/rev/72753e7c4861
changeset: 7401:72753e7c4861
user:      Sathiyan Sivaprakasam <sathiyan.sivaprakasam <at> openbravo.com>
date:      Wed May 19 11:50:42 2010 +0530
summary:   Fixes Issue 13203,13221: Regularization was done more than once

diffstat:

 src-db/database/sourcedata/AD_MESSAGE.xml                               |  11 +
 src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct.java      |  67 
+++++++--
 src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct_data.xsql |  17 
++-
 src/org/openbravo/erpCommon/ad_reports/ReportGeneralLedgerJournal.java  |   4 
+-
 4 files changed, 76 insertions(+), 23 deletions(-)

diffs (211 lines):

diff -r fb83ef0f2fbc -r 72753e7c4861 src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml Tue May 18 18:04:45 2010 +0200
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml Wed May 19 11:50:42 2010 +0530
@@ -31172,6 +31172,17 @@
 <!--684157E8D36E455DA27AB1C1C4987403-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
 <!--684157E8D36E455DA27AB1C1C4987403--></AD_MESSAGE>
 
+<!--68583385EDEF485C8EA8893117EF55CE--><AD_MESSAGE>
+<!--68583385EDEF485C8EA8893117EF55CE-->  
<AD_MESSAGE_ID><![CDATA[68583385EDEF485C8EA8893117EF55CE]]></AD_MESSAGE_ID>
+<!--68583385EDEF485C8EA8893117EF55CE-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--68583385EDEF485C8EA8893117EF55CE-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--68583385EDEF485C8EA8893117EF55CE-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--68583385EDEF485C8EA8893117EF55CE-->  
<VALUE><![CDATA[RegularizationDoneAlready]]></VALUE>
+<!--68583385EDEF485C8EA8893117EF55CE-->  <MSGTEXT><![CDATA[Regularization has 
been already done for given period.]]></MSGTEXT>
+<!--68583385EDEF485C8EA8893117EF55CE-->  <MSGTYPE><![CDATA[E]]></MSGTYPE>
+<!--68583385EDEF485C8EA8893117EF55CE-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--68583385EDEF485C8EA8893117EF55CE--></AD_MESSAGE>
+
 <!--69155DDA0CA84861A828892DB4DC2E7C--><AD_MESSAGE>
 <!--69155DDA0CA84861A828892DB4DC2E7C-->  
<AD_MESSAGE_ID><![CDATA[69155DDA0CA84861A828892DB4DC2E7C]]></AD_MESSAGE_ID>
 <!--69155DDA0CA84861A828892DB4DC2E7C-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r fb83ef0f2fbc -r 72753e7c4861 
src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct.java
--- a/src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct.java        
Tue May 18 18:04:45 2010 +0200
+++ b/src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct.java        
Wed May 19 11:50:42 2010 +0530
@@ -79,7 +79,7 @@
       String strOrgId, String windowId) {
 
     Connection conn = null;
-    OBError myError = null;
+    OBError myError = new OBError();
     try {
       conn = this.getTransactionConnection();
       String strRegId = SequenceIdData.getUUID();
@@ -94,6 +94,16 @@
         for (int i = 0; i < data.length; i++) {
           if (log4j.isDebugEnabled())
             log4j.debug("Output: Before buttonReg");
+          String strPediodId = CreateRegFactAcctData.getLastPeriod(this, 
strKey);
+          String regCount = CreateRegFactAcctData.getRegCount(this, 
vars.getClient(), data[i].org,
+              acctSchema[j].id, strPediodId);
+          if (new Integer(regCount).intValue() > 0) {
+            myError.setType("Error");
+            myError.setTitle("");
+            myError.setMessage(Utility.messageBD(this, 
"RegularizationDoneAlready", vars
+                .getLanguage()));
+            return myError;
+          }
           String strRegOut = processButtonReg(conn, vars, strKey, windowId, 
data[i].org, strRegId,
               acctSchema[j].id);
           String strCloseOut = processButtonClose(conn, vars, strKey, 
windowId, data[i].org,
@@ -125,7 +135,6 @@
         }
       }
       releaseCommitConnection(conn);
-      myError = new OBError();
       myError.setType("Success");
       myError.setTitle("");
       myError.setMessage(Utility.messageBD(this, "Success", 
vars.getLanguage()));
@@ -154,10 +163,13 @@
     String strRegEntry = Utility.messageBD(this, "RegularizationEntry", 
vars.getLanguage());
     int i;
     for (i = 0; i < expense.length; i++) {
-      ExpenseAmtDr = ExpenseAmtDr.add(new BigDecimal(expense[i].totalamtdr));
-      ExpenseAmtCr = ExpenseAmtCr.add(new BigDecimal(expense[i].totalamtcr));
+      BigDecimal totalExpenseAmountDr = new BigDecimal(expense[i].totalamtdr);
+      BigDecimal totalExpenseAmountCr = new BigDecimal(expense[i].totalamtcr);
+      ExpenseAmtDr = ExpenseAmtDr.add(totalExpenseAmountDr);
+      ExpenseAmtCr = ExpenseAmtCr.add(totalExpenseAmountCr);
       Fact_Acct_ID = SequenceIdData.getUUID();
-      if (!expense[i].totalamtdr.equals("0") || 
!expense[i].totalamtcr.equals("0"))
+      if (totalExpenseAmountDr.compareTo(BigDecimal.ZERO) != 0
+          || totalExpenseAmountCr.compareTo(BigDecimal.ZERO) != 0)
         CreateRegFactAcctData.insert(conn, this, Fact_Acct_ID, 
vars.getClient(), stradOrgId, vars
             .getUser(), strAcctSchema, expense[i].accountId, 
CreateRegFactAcctData.getEndDate(this,
             strPediodId), strPediodId, CreateRegFactAcctData.adTableId(this), 
"A",
@@ -168,10 +180,13 @@
             expense[i].mProductId, expense[i].aAssetId, strRegEntry);
     }
     for (int j = 0; j < revenue.length; j++) {
-      RevenueAmtDr = RevenueAmtDr.add(new BigDecimal(revenue[j].totalamtdr));
-      RevenueAmtCr = RevenueAmtCr.add(new BigDecimal(revenue[j].totalamtcr));
+      BigDecimal totalRevenueAmountDr = new BigDecimal(revenue[j].totalamtdr);
+      BigDecimal totalRevenueAmountCr = new BigDecimal(revenue[j].totalamtcr);
+      RevenueAmtDr = RevenueAmtDr.add(totalRevenueAmountDr);
+      RevenueAmtCr = RevenueAmtCr.add(totalRevenueAmountCr);
       Fact_Acct_ID = SequenceIdData.getUUID();
-      if (!revenue[j].totalamtdr.equals("0") || 
!revenue[j].totalamtcr.equals("0"))
+      if (totalRevenueAmountDr.compareTo(BigDecimal.ZERO) != 0
+          || totalRevenueAmountCr.compareTo(BigDecimal.ZERO) != 0)
         CreateRegFactAcctData.insert(conn, this, Fact_Acct_ID, 
vars.getClient(), stradOrgId, vars
             .getUser(), strAcctSchema, revenue[j].accountId, 
CreateRegFactAcctData.getEndDate(this,
             strPediodId), strPediodId, CreateRegFactAcctData.adTableId(this), 
"A",
@@ -278,10 +293,13 @@
         "'L','O'", stradOrgId, strAcctSchema);
     int i;
     for (i = 0; i < asset.length; i++) {
-      assetAmtDr = assetAmtDr.add(new BigDecimal(asset[i].totalamtdr));
-      assetAmtCr = assetAmtCr.add(new BigDecimal(asset[i].totalamtcr));
+      BigDecimal totalAssetAmtDr = new BigDecimal(asset[i].totalamtdr);
+      BigDecimal totalAssetAmtCr = new BigDecimal(asset[i].totalamtcr);
+      assetAmtDr = assetAmtDr.add(totalAssetAmtDr);
+      assetAmtCr = assetAmtCr.add(totalAssetAmtCr);
       Fact_Acct_ID = SequenceIdData.getUUID();
-      if (!asset[i].totalamtdr.equals("0") || !asset[i].totalamtcr.equals("0"))
+      if (totalAssetAmtDr.compareTo(BigDecimal.ZERO) != 0
+          || totalAssetAmtCr.compareTo(BigDecimal.ZERO) != 0)
         CreateRegFactAcctData.insertClose(conn, this, Fact_Acct_ID, 
vars.getClient(), stradOrgId,
             vars.getUser(), strAcctSchema, asset[i].accountId, 
CreateRegFactAcctData.getEndDate(
                 this, strPediodId), strPediodId, 
CreateRegFactAcctData.adTableId(this), "A",
@@ -292,10 +310,13 @@
             strClosingEntry);
     }
     for (int j = 0; j < liability.length; j++) {
-      liabilityAmtDr = liabilityAmtDr.add(new 
BigDecimal(liability[j].totalamtdr));
-      liabilityAmtCr = liabilityAmtCr.add(new 
BigDecimal(liability[j].totalamtcr));
+      BigDecimal totalLiabilityAmtDr = new BigDecimal(liability[j].totalamtdr);
+      BigDecimal totalLiabilityAmtCr = new BigDecimal(liability[j].totalamtcr);
+      liabilityAmtDr = liabilityAmtDr.add(totalLiabilityAmtDr);
+      liabilityAmtCr = liabilityAmtCr.add(totalLiabilityAmtCr);
       Fact_Acct_ID = SequenceIdData.getUUID();
-      if (!liability[j].totalamtdr.equals("0") || 
!liability[j].totalamtcr.equals("0"))
+      if (totalLiabilityAmtDr.compareTo(BigDecimal.ZERO) != 0
+          || totalLiabilityAmtCr.compareTo(BigDecimal.ZERO) != 0)
         CreateRegFactAcctData
             .insertClose(conn, this, Fact_Acct_ID, vars.getClient(), 
stradOrgId, vars.getUser(),
                 strAcctSchema, liability[j].accountId, 
CreateRegFactAcctData.getEndDate(this,
@@ -311,10 +332,13 @@
     String Fact_Acct_Group_ID2 = strOpenID;
     i = 0;
     for (i = 0; i < asset.length; i++) {
-      assetAmtDr = assetAmtDr.add(new BigDecimal(asset[i].totalamtdr));
-      assetAmtCr = assetAmtCr.add(new BigDecimal(asset[i].totalamtcr));
+      BigDecimal totalAssetAmtDr = new BigDecimal(asset[i].totalamtdr);
+      BigDecimal totalAssetAmtCr = new BigDecimal(asset[i].totalamtcr);
+      assetAmtDr = assetAmtDr.add(totalAssetAmtDr);
+      assetAmtCr = assetAmtCr.add(totalAssetAmtCr);
       Fact_Acct_ID = SequenceIdData.getUUID();
-      if (!asset[i].totalamtdr.equals("0") || !asset[i].totalamtcr.equals("0"))
+      if (totalAssetAmtDr.compareTo(BigDecimal.ZERO) != 0
+          || totalAssetAmtCr.compareTo(BigDecimal.ZERO) != 0)
         CreateRegFactAcctData.insertClose(conn, this, Fact_Acct_ID, 
vars.getClient(), stradOrgId,
             vars.getUser(), strAcctSchema, asset[i].accountId, 
CreateRegFactAcctData.getStartDate(
                 this, newPeriod), newPeriod, 
CreateRegFactAcctData.adTableId(this), "A",
@@ -325,10 +349,13 @@
             strOpeningEntry);
     }
     for (int j = 0; j < liability.length; j++) {
-      liabilityAmtDr = liabilityAmtDr.add(new 
BigDecimal(liability[j].totalamtdr));
-      liabilityAmtCr = liabilityAmtCr.add(new 
BigDecimal(liability[j].totalamtcr));
+      BigDecimal totalLiabilityAmtDr = new BigDecimal(liability[j].totalamtdr);
+      BigDecimal totalLiabilityAmtCr = new BigDecimal(liability[j].totalamtcr);
+      liabilityAmtDr = liabilityAmtDr.add(totalLiabilityAmtDr);
+      liabilityAmtCr = liabilityAmtCr.add(totalLiabilityAmtCr);
       Fact_Acct_ID = SequenceIdData.getUUID();
-      if (!liability[j].totalamtdr.equals("0") || 
!liability[j].totalamtcr.equals("0"))
+      if (totalLiabilityAmtDr.compareTo(BigDecimal.ZERO) != 0
+          || totalLiabilityAmtCr.compareTo(BigDecimal.ZERO) != 0)
         CreateRegFactAcctData
             .insertClose(conn, this, Fact_Acct_ID, vars.getClient(), 
stradOrgId, vars.getUser(),
                 strAcctSchema, liability[j].accountId, 
CreateRegFactAcctData.getStartDate(this,
diff -r fb83ef0f2fbc -r 72753e7c4861 
src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct_data.xsql
--- a/src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct_data.xsql   
Tue May 18 18:04:45 2010 +0200
+++ b/src/org/openbravo/erpCommon/ad_actionButton/CreateRegFactAcct_data.xsql   
Wed May 19 11:50:42 2010 +0530
@@ -29,7 +29,7 @@
       <![CDATA[
                select ad_org.ad_org_id as id, ad_org.name as name,
         '' AS TOTALAMTDR, '' AS TOTALAMTCR, '' AS ACCOUNT_ID, '' as org, '' as 
acctvalue, '' as acctdescription, '' as value,
-        '' as c_bpartner_id, '' as record_id2, '' as m_product_id, '' as 
a_asset_id
+        '' as c_bpartner_id, '' as record_id2, '' as m_product_id, '' as 
a_asset_id, '' AS REGCOUNT
                from ad_org
                where ad_org.isperiodcontrolallowed = 'Y'
                and ad_client_id = ?
@@ -385,4 +385,19 @@
     </Sql>
     <Parameter name="client"/>
   </SqlMethod>
+   <SqlMethod name="getRegCount" type="preparedStatement" return="string">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql><![CDATA[
+        SELECT COUNT(*) AS REGCOUNT FROM FACT_ACCT 
+        WHERE AD_CLIENT_ID = ? 
+        AND AD_ORG_ID = ? 
+        AND C_ACCTSCHEMA_ID = ? 
+        AND C_PERIOD_ID = ?
+        AND FACTACCTTYPE = 'R'
+     ]]></Sql>
+    <Parameter name="clientId"/>
+    <Parameter name="orgId"/>
+    <Parameter name="c_acctschema_id"/>
+     <Parameter name="c_period_id"/>
+  </SqlMethod>
 </SqlClass>
diff -r fb83ef0f2fbc -r 72753e7c4861 
src/org/openbravo/erpCommon/ad_reports/ReportGeneralLedgerJournal.java
--- a/src/org/openbravo/erpCommon/ad_reports/ReportGeneralLedgerJournal.java    
Tue May 18 18:04:45 2010 +0200
+++ b/src/org/openbravo/erpCommon/ad_reports/ReportGeneralLedgerJournal.java    
Wed May 19 11:50:42 2010 +0530
@@ -285,13 +285,13 @@
           acctEntries++;
         }
 
-        int intRecordRangeUsed;
+        int intRecordRangeUsed = 0;
         if (dataCountLines.length != acctEntries - 1) {
           if (i == 2) {
             // The first entry is bigger than the predefined range
             intRecordRangeUsed = groupedLines[i - 1];
             acctEntries++;
-          } else {
+          } else if (i - 2 >= 0) {
             intRecordRangeUsed = groupedLines[i - 2];
           }
         } else {

------------------------------------------------------------------------------

_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to