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