details: http://code.openbravo.com/erp/devel/pi/rev/3998e7028d13 changeset: 4465:3998e7028d13 user: David Alsasua <david.alsasua <at> openbravo.com> date: Fri Jul 31 18:39:58 2009 +0200 summary: Field Not Mandatory, corresponding to a non-nullable column
details: http://code.openbravo.com/erp/devel/pi/rev/fd9f5ae4943d changeset: 4466:fd9f5ae4943d user: David Alsasua <david.alsasua <at> openbravo.com> date: Fri Jul 31 18:43:19 2009 +0200 summary: Fixes issue 10113: process "import account" does not creates all accounts defaults diffstat: src-db/database/sourcedata/AD_COLUMN.xml | 2 +- src/org/openbravo/erpCommon/ad_process/ImportAccount.java | 132 ++++++++------ src/org/openbravo/erpCommon/ad_process/ImportAccount_data.xsql | 36 ++++ 3 files changed, 111 insertions(+), 59 deletions(-) diffs (253 lines): diff -r 74430855d834 -r fd9f5ae4943d src-db/database/sourcedata/AD_COLUMN.xml --- a/src-db/database/sourcedata/AD_COLUMN.xml Fri Jul 31 16:23:31 2009 +0530 +++ b/src-db/database/sourcedata/AD_COLUMN.xml Fri Jul 31 18:43:19 2009 +0200 @@ -97934,7 +97934,7 @@ <!--6493--> <FIELDLENGTH><![CDATA[60]]></FIELDLENGTH> <!--6493--> <ISKEY><![CDATA[N]]></ISKEY> <!--6493--> <ISPARENT><![CDATA[N]]></ISPARENT> -<!--6493--> <ISMANDATORY><![CDATA[N]]></ISMANDATORY> +<!--6493--> <ISMANDATORY><![CDATA[Y]]></ISMANDATORY> <!--6493--> <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE> <!--6493--> <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER> <!--6493--> <SEQNO><![CDATA[0]]></SEQNO> diff -r 74430855d834 -r fd9f5ae4943d src/org/openbravo/erpCommon/ad_process/ImportAccount.java --- a/src/org/openbravo/erpCommon/ad_process/ImportAccount.java Fri Jul 31 16:23:31 2009 +0530 +++ b/src/org/openbravo/erpCommon/ad_process/ImportAccount.java Fri Jul 31 18:43:19 2009 +0200 @@ -527,7 +527,7 @@ // Reset Processing Flag if (m_updateDefaultAccounts) { no = ImportAccountData.updateProcessed(con, conn, getAD_Client_ID(), "clause"); - updateDefaults(con, conn); + updateDefaults(con, conn, vars); } else { no = ImportAccountData.updateProcessed(con, conn, getAD_Client_ID(), ""); } @@ -565,7 +565,7 @@ return myError; } - private void updateDefaults(Connection con, ConnectionProvider conn) { + private void updateDefaults(Connection con, ConnectionProvider conn, VariablesSecureApp vars) { if (log4j.isDebugEnabled()) log4j.debug("ImportAccount.updateDefaults - CreateNewCombination= " + m_createNewCombination); int no = 0; @@ -573,7 +573,7 @@ ImportAccountData[] acctSchemas = ImportAccountData.selectAcctSchema(conn, m_C_Element_ID, getAD_Client_ID()); for (int i = 0; i < acctSchemas.length; i++) - updateDefaultAccounts(con, conn, acctSchemas[i].cAcctschemaId); + updateDefaultAccounts(con, conn, vars, acctSchemas[i].cAcctschemaId); no = ImportAccountData.updateDefaultAcct(con, conn, getAD_Client_ID()); if (log4j.isDebugEnabled()) log4j.debug("ImportAccount updated default acct = " + no); @@ -583,7 +583,8 @@ } } // updateDefaults - private void updateDefaultAccounts(Connection con, ConnectionProvider conn, String C_AcctSchema_ID) { + private void updateDefaultAccounts(Connection con, ConnectionProvider conn, + VariablesSecureApp vars, String C_AcctSchema_ID) { try { int no = 0; if (log4j.isDebugEnabled()) @@ -598,7 +599,7 @@ } ImportAccountData[] data = ImportAccountData.selectElementColumnTable(conn, m_C_Element_ID); for (int i = 0; i < data.length; i++) { - int u = updateDefaultAccount(con, conn, data[i].tablename, data[i].columnname, + int u = updateDefaultAccount(con, conn, vars, data[i].tablename, data[i].columnname, C_AcctSchema_ID, data[i].cElementvalueId); if (u != 0) { no = ImportAccountData.updateProcessingN(con, conn, data[i].iElementvalueId); @@ -613,8 +614,9 @@ } } - private int updateDefaultAccount(Connection con, ConnectionProvider conn, String TableName, - String ColumnName, String C_AcctSchema_ID, String C_ElementValue_ID) { + private int updateDefaultAccount(Connection con, ConnectionProvider conn, + VariablesSecureApp vars, String TableName, String ColumnName, String C_AcctSchema_ID, + String C_ElementValue_ID) { int no = 0; int retValue = UPDATE_ERROR; try { @@ -623,61 +625,75 @@ + C_ElementValue_ID); ImportAccountData[] data = ImportAccountData.selectValidCombination(conn, ColumnName, TableName, C_AcctSchema_ID); - if (data.length > 0) { - if (data[0].accountId.equals(C_ElementValue_ID)) { - retValue = UPDATE_SAME; + if (data.length == 0) { + if (log4j.isDebugEnabled()) + log4j + .debug("ImportAccount.updateDefaultAccount - Account not found. Creating a Valid Combination"); + ImportAccountData insertVC = ImportAccountData.insertValidCombination(con, conn, vars + .getClient(), vars.getOrg(), C_AcctSchema_ID, C_ElementValue_ID, "", "", + vars.getUser(), "", "", "", ""); + if (insertVC == null) { + log4j + .debug("ImportAccount.updateDefaultAccount - Account not found. Error creating Valid Combination for " + + ColumnName + " default."); + } else { + int num = ImportAccountData.addDefault(con, conn, TableName, ColumnName, + insertVC.cValidcombinationId, C_AcctSchema_ID); + if (num != 1) + log4j + .error("ImportAccount.updateDefaultAccount - Account not found. Error updating default value for " + + ColumnName + " default."); + } + } + if (data[0].accountId.equals(C_ElementValue_ID)) { + retValue = UPDATE_SAME; + if (log4j.isDebugEnabled()) + log4j.debug("Account_ID same as new value"); + } else { // update the account value + if (m_createNewCombination) { + ImportAccountData[] account = ImportAccountData.selectValidCombinationAll(conn, + data[0].cValidcombinationId); + ImportAccountData.updateAccountIdByVC(con, conn, C_ElementValue_ID, + data[0].cValidcombinationId); + RespuestaCS respuestaCS = ImportAccountData.getCValidCombination(con, conn, + account[0].adClientId, account[0].adOrgId, account[0].cAcctschemaId, String + .valueOf(C_ElementValue_ID), data[0].cValidcombinationId, + account[0].isfullyqualified, account[0].alias, account[0].createdby, + account[0].mProductId, account[0].cBpartnerId, account[0].adOrgtrxId, + account[0].cLocfromId, account[0].cLoctoId, account[0].cSalesregionId, + account[0].cProjectId, account[0].cCampaignId, account[0].cActivityId, + account[0].user1Id, account[0].user2Id); + int newC_ValidCombination_ID = Integer.valueOf(respuestaCS.CValidCombinationId) + .intValue(); + if (!data[0].cValidcombinationId.equals(String.valueOf(newC_ValidCombination_ID))) { + no = ImportAccountData.updateAbstract(con, conn, TableName, ColumnName, String + .valueOf(newC_ValidCombination_ID), C_AcctSchema_ID); + if (log4j.isDebugEnabled()) + log4j.debug("ImportAccount.updateDefaultAccount - #" + no + " - " + TableName + "." + + ColumnName + " - " + C_ElementValue_ID + " -- " + data[0].cValidcombinationId + + " -> " + newC_ValidCombination_ID); + if (no == 1) + retValue = UPDATE_YES; + } + } else { + no = ImportAccountData.updateAccountIdByVC(con, conn, C_ElementValue_ID, + data[0].cValidcombinationId); if (log4j.isDebugEnabled()) - log4j.debug("Account_ID same as new value"); - } else { // update the account value - if (m_createNewCombination) { - ImportAccountData[] account = ImportAccountData.selectValidCombinationAll(conn, - data[0].cValidcombinationId); - ImportAccountData.updateAccountIdByVC(con, conn, C_ElementValue_ID, - data[0].cValidcombinationId); - RespuestaCS respuestaCS = ImportAccountData.getCValidCombination(con, conn, - account[0].adClientId, account[0].adOrgId, account[0].cAcctschemaId, String - .valueOf(C_ElementValue_ID), data[0].cValidcombinationId, - account[0].isfullyqualified, account[0].alias, account[0].createdby, - account[0].mProductId, account[0].cBpartnerId, account[0].adOrgtrxId, - account[0].cLocfromId, account[0].cLoctoId, account[0].cSalesregionId, - account[0].cProjectId, account[0].cCampaignId, account[0].cActivityId, - account[0].user1Id, account[0].user2Id); - int newC_ValidCombination_ID = Integer.valueOf(respuestaCS.CValidCombinationId) - .intValue(); - if (!data[0].cValidcombinationId.equals(String.valueOf(newC_ValidCombination_ID))) { - no = ImportAccountData.updateAbstract(con, conn, TableName, ColumnName, String - .valueOf(newC_ValidCombination_ID), C_AcctSchema_ID); - if (log4j.isDebugEnabled()) - log4j.debug("ImportAccount.updateDefaultAccount - #" + no + " - " + TableName + "." - + ColumnName + " - " + C_ElementValue_ID + " -- " + data[0].cValidcombinationId - + " -> " + newC_ValidCombination_ID); - if (no == 1) - retValue = UPDATE_YES; - } - } else { - no = ImportAccountData.updateAccountIdByVC(con, conn, C_ElementValue_ID, - data[0].cValidcombinationId); + log4j.debug("ImportAccount.updateDefaultAccount - Replace #" + no + " - " + + "C_ValidCombination_ID=" + data[0].cValidcombinationId + ", New Account_ID=" + + C_ElementValue_ID); + if (no == 1) { + retValue = UPDATE_YES; + no = ImportAccountData.updateAccountId(con, conn, C_ElementValue_ID, data[0].accountId); if (log4j.isDebugEnabled()) - log4j.debug("ImportAccount.updateDefaultAccount - Replace #" + no + " - " - + "C_ValidCombination_ID=" + data[0].cValidcombinationId + ", New Account_ID=" - + C_ElementValue_ID); - if (no == 1) { - retValue = UPDATE_YES; - no = ImportAccountData.updateAccountId(con, conn, C_ElementValue_ID, - data[0].accountId); - if (log4j.isDebugEnabled()) - log4j.debug("ImportAccount.updateDefaultAccount - Replace VC #" + no + " - " - + "Account_ID=" + data[0].accountId + ", New Account_ID=" + C_ElementValue_ID); - no = ImportAccountData.updateFact(con, conn, C_ElementValue_ID, data[0].accountId); - if (log4j.isDebugEnabled()) - log4j.debug("ImportAccount.updateDefaultAccount - Replace Fact #" + no + " - " - + "Account_ID=" + data[0].accountId + ", New Account_ID=" + C_ElementValue_ID); - } + log4j.debug("ImportAccount.updateDefaultAccount - Replace VC #" + no + " - " + + "Account_ID=" + data[0].accountId + ", New Account_ID=" + C_ElementValue_ID); + no = ImportAccountData.updateFact(con, conn, C_ElementValue_ID, data[0].accountId); + if (log4j.isDebugEnabled()) + log4j.debug("ImportAccount.updateDefaultAccount - Replace Fact #" + no + " - " + + "Account_ID=" + data[0].accountId + ", New Account_ID=" + C_ElementValue_ID); } } - } else { - if (log4j.isDebugEnabled()) - log4j.debug("ImportAccount.updateDefaultAccount - Account not found."); } return retValue; } catch (Exception e) { diff -r 74430855d834 -r fd9f5ae4943d src/org/openbravo/erpCommon/ad_process/ImportAccount_data.xsql --- a/src/org/openbravo/erpCommon/ad_process/ImportAccount_data.xsql Fri Jul 31 16:23:31 2009 +0530 +++ b/src/org/openbravo/erpCommon/ad_process/ImportAccount_data.xsql Fri Jul 31 18:43:19 2009 +0200 @@ -555,6 +555,22 @@ <Parameter name="C_ACCTSCHEMA_DEFAULT_ID"/> </SqlMethod> + <SqlMethod name="addDefault" type="preparedStatement" connection="true" return="rowCount"> + <SqlMethodComment></SqlMethodComment> + <Sql> + <![CDATA[ + UPDATE C_ACCTSCHEMA_DEFAULT + SET AD_CLIENT_ID = + ? + WHERE C_ACCTSCHEMA_ID = ? + ]]> + </Sql> + <Parameter name="tablename" optional="true" type="replace" after="UPDATE " text="C_ACCTSCHEMA_DEFAULT"/> + <Parameter name="columnname" optional="true" type="replace" after="SET " text="AD_CLIENT_ID"/> + <Parameter name="defaultToUpdate"/> + <Parameter name="cAcctSchemaId"/> + </SqlMethod> + <SqlMethod name="insertOperands" type="preparedStatement" connection="true" return="rowCount"> <SqlMethodComment></SqlMethodComment> <Sql> @@ -924,6 +940,26 @@ <Parameter name="cValidcombinationId"/> </SqlMethod> + + <SqlMethod name="insertValidCombination" type="callableStatement" return="object" object="ImportAccountData" connection="true"> + <SqlMethodComment></SqlMethodComment> + <Sql> + CALL C_ValidCombination_Insert(?, ?, ?, ?, ?, ?, 'N', ?, ?, ?, ?, NULL, NULL, NULL, NULL, ?, ?, NULL, NULL, NULL) + </Sql> + <Parameter name="cValidcombinationId" type="out"/> + <Parameter name="adClientId"/> + <Parameter name="adOrgId"/> + <Parameter name="cAcctschemaId"/> + <Parameter name="accountId"/> + <Parameter name="cInValidcombinationId"/> + <Parameter name="alias"/> + <Parameter name="createdby"/> + <Parameter name="mProductId"/> + <Parameter name="cBpartnerId"/> + <Parameter name="cProjectId"/> + <Parameter name="cCampaignId"/> + </SqlMethod> + <SqlMethod name="getCValidCombination" connection="true" type="callableStatement" return="object" object="RespuestaCS"> <SqlMethodComment></SqlMethodComment> <Sql> ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits