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

Reply via email to