details:   http://code.openbravo.com/erp/devel/pi/rev/3cb40e9246fc
changeset: 4313:3cb40e9246fc
user:      Vinoth Babu <vinoth.babu <at> openbravo.com>
date:      Sat Jul 11 12:24:59 2009 +0530
summary:   The new feature implementation \"Defining the new sub-account per 
Business Partner and Product\" has been done.

diffstat:

 src-db/database/model/functions/C_VALIDCOMBINATION_CLONE.xml |  195 
++++++++++++++++
 src-db/database/model/tables/AD_ORG_ACCTSCHEMA.xml           |   33 ++
 src-db/database/model/tables/C_ELEMENTVALUE.xml              |    4 -
 src-db/database/model/triggers/C_BPARTNER_TRG.xml            |  186 
+++++++++++----
 src-db/database/model/triggers/C_VALIDCOMBINATION_TRG.xml    |   30 +-
 src-db/database/model/triggers/M_PRODUCT_TRG.xml             |  112 ++++++---
 src-db/database/sourcedata/AD_COLUMN.xml                     |  188 
+++++++++++++++
 src-db/database/sourcedata/AD_ELEMENT.xml                    |   78 ++++++
 src-db/database/sourcedata/AD_FIELD.xml                      |  142 +++++++++++
 src-db/database/sourcedata/AD_TEXTINTERFACES.xml             |    2 +-
 10 files changed, 869 insertions(+), 101 deletions(-)

diffs (truncated from 1210 to 300 lines):

diff -r 786b89452eb1 -r 3cb40e9246fc 
src-db/database/model/functions/C_VALIDCOMBINATION_CLONE.xml
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/src-db/database/model/functions/C_VALIDCOMBINATION_CLONE.xml      Sat Jul 
11 12:24:59 2009 +0530
@@ -0,0 +1,195 @@
+<?xml version="1.0"?>
+  <database name="FUNCTION C_VALIDCOMBINATION_CLONE">
+    <function name="C_VALIDCOMBINATION_CLONE" type="VARCHAR">
+      <parameter name="p_orginal_validcombination" type="VARCHAR" mode="in">
+        <default/>
+      </parameter>
+      <parameter name="p_sequenceno" type="VARCHAR" mode="in">
+        <default/>
+      </parameter>
+      <parameter name="p_accountname" type="VARCHAR" mode="in">
+        <default/>
+      </parameter>
+      <parameter name="p_acct_length" type="NUMERIC" mode="in">
+        <default/>
+      </parameter>
+      <parameter name="p_subacct_length" type="NUMERIC" mode="in">
+        <default/>
+      </parameter>
+      
<body><![CDATA[/*************************************************************************
+* The contents of this file are subject to the Openbravo  Public  License
+* Version  1.0  (the  "License"),  being   the  Mozilla   Public  License
+* Version 1.1  with a permitted attribution clause; you may not  use this
+* file except in compliance with the License. You  may  obtain  a copy of
+* the License at http://www.openbravo.com/legal/license.html
+* Software distributed under the License  is  distributed  on  an "AS IS"
+* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+* License for the specific  language  governing  rights  and  limitations
+* under the License.
+* The Original Code is Openbravo ERP.
+* The Initial Developer of the Original Code is Openbravo SL
+* All portions are Copyright (C) 2001-2006 Openbravo SL
+* All Rights Reserved.
+* Contributor(s):  ______________________________________.
+************************************************************************/
+       v_Node_ID                                   VARCHAR(32) :=null;         
--OBTG:varchar2--
+       v_AD_TREE_ID                                VARCHAR(32) :=null; 
--OBTG:varchar2--
+       v_PARENT_ID                                   VARCHAR(32) :=null;       
--OBTG:varchar2--
+       v_SeqNo                                   NUMBER(38);
+       v_Next_Sequence_No                      VARCHAR(32) :=null;     
--OBTG:varchar2-- 
+       v_Account_No                                VARCHAR(32) :=null; 
--OBTG:varchar2-- 
+       v_Acct_No_For_SubAccount            VARCHAR(32) :=null; 
--OBTG:varchar2-- 
+       v_Subacct_No                                VARCHAR(32) :=null;         
--OBTG:varchar2-- 
+       v_New_SubAccount_No                   VARCHAR(32) :=null;       
--OBTG:varchar2-- 
+       v_Default_Account_No                  VARCHAR(32) :=null;       
--OBTG:varchar2-- 
+       v_Seq_No_For_Subaccount_No        VARCHAR(32) :=null;   
--OBTG:varchar2--       
+       v_Default_Account_Name              VARCHAR(60) :=null;         
--OBTG:varchar2--
+       v_Default_Account_Desc              CHARACTER VARYING(255); 
--OBTG:varchar2--
+       v_Default_Account_Client_ID     VARCHAR(32);            
--OBTG:varchar2--
+       v_Org_ID                                        VARCHAR(32);            
--OBTG:varchar2--
+       v_Account_ID                                VARCHAR(32);                
--OBTG:varchar2--
+       v_seq_name                                    CHARACTER VARYING(255); 
--OBTG:varchar2--
+       v_C_AcctSchema_ID                         VARCHAR(32) :=null;   
--OBTG:varchar2--
+       C_Out_New_Acct_Number                 VARCHAR(32) :=null;       
--OBTG:varchar2--
+       v_UpdateSequence                          CHAR;
+       tmp_Subaccout_no                          VARCHAR(32) :=null;   
--OBTG:varchar2--
+       v_C_ElementValue_ID                     VARCHAR(32) :=null;     
--OBTG:varchar2--
+       
+BEGIN
+  IF (p_orginal_validcombination IS NULL) THEN
+    RETURN NULL;
+  END IF;
+       v_C_ElementValue_ID := GET_UUID();
+
+       /* 
+               Querying the default Account NUMBER, Client ID, Account Schema 
ID for cloning.
+       */
+       SELECT 
+               C_ElementValue.Value, 
+               C_ElementValue.Name, 
+               C_ElementValue.Description, 
+               C_ElementValue.AD_Client_ID,
+               C_ElementValue.C_ElementValue_ID, 
+               C_ValidCombination.C_AcctSchema_ID, 
+               C_ElementValue.AD_Org_ID
+               INTO 
+               v_Default_Account_No,
+               v_Default_Account_Name,
+               v_Default_Account_Desc, 
+               v_Default_Account_Client_ID,
+               v_Node_ID, 
+               v_C_AcctSchema_ID, 
+               v_Org_ID 
+               FROM C_ValidCombination, C_ElementValue 
+               WHERE C_ValidCombination.Account_ID = 
C_ElementValue.C_ElementValue_ID
+               AND C_ValidCombination_ID =p_Orginal_Validcombination;
+
+       -- Logic for generating the New Sub account number from Original 
Accounts.
+       v_Acct_No_For_SubAccount:=SUBSTR(v_Default_Account_No,1,p_Acct_Length);
+       tmp_Subaccout_no := p_Subacct_Length - p_Acct_Length;
+       v_Seq_No_For_Subaccount_No:= lpad(p_SequenceNo,cast(tmp_Subaccout_no as 
integer),'0');
+       v_New_Subaccount_No:= v_Acct_No_For_SubAccount || 
v_Seq_No_For_Subaccount_No;
+  /*
+               Inserting the new element value for new account for Business 
Partner Or Product.        
+       */
+       INSERT INTO C_ElementValue
+               (
+               C_ElementValue_ID,
+               AD_Client_ID, 
+               AD_Org_ID, 
+               IsActive,
+               Created,
+               CreatedBy, 
+               Updated, 
+               UpdatedBy, 
+               Value, 
+               Name, 
+               Description,
+               AccountType, 
+               AccountSign,
+               IsDocControlled,
+               C_Element_ID,
+               IsSummary,      
+               ValidFrom,
+               ValidTo,
+               PostActual, 
+               PostBudget, 
+               PostEncumbrance,
+               PostStatistical, 
+               IsBankAccount,
+               C_BankAccount_ID, 
+               IsForeignCurrency, 
+               C_Currency_ID , 
+               ShowElement , 
+               ShowValueCond , 
+               ElementLevel)
+
+        SELECT 
+               v_C_ElementValue_ID, 
+               EV.AD_Client_ID, 
+               EV.AD_Org_ID, 
+               EV.IsActive, 
+               now(),
+               EV.CreatedBy, 
+               now(), 
+               EV.UpdatedBy, 
+               v_New_Subaccount_No, 
+               case when (p_accountName is not null) then (EV.Name || ' - ' || 
p_accountName) else EV.Name end, 
+               EV.Description,
+                EV.AccountType, 
+                EV.AccountSign, 
+                EV.IsDocControlled, 
+                EV.C_Element_ID, 
+                EV.IsSummary,
+                EV.ValidFrom, 
+                EV.ValidTo, 
+                EV.PostActual, 
+                EV.PostBudget, 
+                EV.PostEncumbrance,
+                EV.PostStatistical, 
+                EV.IsBankAccount, 
+                EV.C_BankAccount_ID, 
+                EV.IsForeignCurrency,
+                EV.C_Currency_ID, 
+                EV.ShowElement, 
+                EV.ShowValueCond, 
+                EV.ElementLevel
+                FROM C_ValidCombination VC, C_ElementValue EV        
+                WHERE VC.Account_ID = EV.C_ElementValue_ID
+                AND VC.C_ValidCombination_ID = p_orginal_validcombination;
+
+        SELECT AD_TREE_ID INTO v_AD_TREE_ID
+                FROM C_ACCTSCHEMA_ELEMENT, C_ELEMENT
+                WHERE C_ACCTSCHEMA_ELEMENT.C_ELEMENT_ID = 
C_ELEMENT.C_ELEMENT_ID
+                AND C_ACCTSCHEMA_ELEMENT.ELEMENTTYPE = 'AC'
+                AND C_ACCTSCHEMA_ELEMENT.C_ACCTSCHEMA_ID = v_C_AcctSchema_ID;
+
+
+       SELECT PARENT_ID INTO v_PARENT_ID
+                FROM ad_treenode
+                WHERE AD_TREE_ID = v_AD_TREE_ID
+                AND NODE_ID = v_Node_ID; 
+
+
+       SELECT MAX(COALESCE(SEQNO,0)) + 10 INTO v_SEQNO
+                FROM ad_treenode
+                WHERE AD_TREE_ID = v_AD_TREE_ID
+                AND PARENT_ID = v_PARENT_ID; 
+
+
+       UPDATE AD_TREENODE SET  PARENT_ID = (SELECT PARENT_ID 
+               FROM ad_treenode WHERE AD_TREE_ID = v_AD_TREE_ID
+               AND NODE_ID = v_Node_ID ), SEQNO =  v_SEQNO
+                WHERE NODE_ID = V_C_ElementValue_ID;
+                
+       /*
+               Function call to Retrieve the new account NUMBER for Business 
Partner or Product. */                                    
+               C_ValidCombination_Insert(C_Out_New_Acct_Number, 
v_Default_Account_Client_ID , v_Org_ID , v_C_AcctSchema_ID,
+         v_C_ElementValue_ID,NULL,     NULL, NULL, NULL, NULL, NULL, NULL, 
NULL,
+         NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+    
+       return C_Out_New_Acct_Number;
+END C_VALIDCOMBINATION_CLONE
+]]></body>
+    </function>
+  </database>
diff -r 786b89452eb1 -r 3cb40e9246fc 
src-db/database/model/tables/AD_ORG_ACCTSCHEMA.xml
--- a/src-db/database/model/tables/AD_ORG_ACCTSCHEMA.xml        Fri Jul 10 
21:36:24 2009 +0200
+++ b/src-db/database/model/tables/AD_ORG_ACCTSCHEMA.xml        Sat Jul 11 
12:24:59 2009 +0530
@@ -37,14 +37,47 @@
         <default/>
         <onCreateDefault/>
       </column>
+      <column name="AD_SEQUENCE_BP_ID" primaryKey="false" required="false" 
type="VARCHAR" size="32" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
+      <column name="AD_SEQUENCE_PR_ID" primaryKey="false" required="false" 
type="VARCHAR" size="32" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
+      <column name="ISBPNEWACCOUNT" primaryKey="false" required="true" 
type="CHAR" size="1" autoIncrement="false">
+        <default><![CDATA[N]]></default>
+        <onCreateDefault/>
+      </column>
+      <column name="ISPRNEWACCOUNT" primaryKey="false" required="true" 
type="CHAR" size="1" autoIncrement="false">
+        <default><![CDATA[N]]></default>
+        <onCreateDefault/>
+      </column>
+      <column name="ACCT_LENGTH" primaryKey="false" required="false" 
type="DECIMAL" size="10,0" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
+      <column name="SUBACCT_LENGTH" primaryKey="false" required="false" 
type="DECIMAL" size="10,0" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
       <foreign-key foreignTable="AD_CLIENT" name="ADCLIENT_ADORGACCTSCHEMA">
         <reference local="AD_CLIENT_ID" foreign="AD_CLIENT_ID"/>
       </foreign-key>
       <foreign-key foreignTable="AD_ORG" name="ADORG_ADORGACCTSCHEMA">
         <reference local="AD_ORG_ID" foreign="AD_ORG_ID"/>
       </foreign-key>
+      <foreign-key foreignTable="AD_SEQUENCE" 
name="ADSEQUENCEBP_ADORGACCTSCHEMA">
+        <reference local="AD_SEQUENCE_BP_ID" foreign="AD_SEQUENCE_ID"/>
+      </foreign-key>
+      <foreign-key foreignTable="AD_SEQUENCE" 
name="ADSEQUENCEPR_ADORGACCTSCHEMA">
+        <reference local="AD_SEQUENCE_PR_ID" foreign="AD_SEQUENCE_ID"/>
+      </foreign-key>
       <foreign-key foreignTable="C_ACCTSCHEMA" 
name="CACCTSCHEMA_ADORGACCTSCHEMA">
         <reference local="C_ACCTSCHEMA_ID" foreign="C_ACCTSCHEMA_ID"/>
       </foreign-key>
+      <check name="ADORGACCTSCH_ISACTIVE_CHECK"><![CDATA[ISACTIVE IN ('Y', 
'N')]]></check>
+      <check name="ADORGACCTSCH_ISBPNEWACCT_CHECK"><![CDATA[ISBPNEWACCOUNT IN 
('Y', 'N')]]></check>
+      <check name="ADORGACCTSCH_ISPRNEWACCT_CHECK"><![CDATA[ISPRNEWACCOUNT IN 
('Y', 'N')]]></check>
     </table>
   </database>
diff -r 786b89452eb1 -r 3cb40e9246fc 
src-db/database/model/tables/C_ELEMENTVALUE.xml
--- a/src-db/database/model/tables/C_ELEMENTVALUE.xml   Fri Jul 10 21:36:24 
2009 +0200
+++ b/src-db/database/model/tables/C_ELEMENTVALUE.xml   Sat Jul 11 12:24:59 
2009 +0530
@@ -135,10 +135,6 @@
       <index name="C_ELEMENTVALUE_NAME" unique="false">
         <index-column name="NAME"/>
       </index>
-      <unique name="C_ELEMENTVALUE_VALUE">
-        <unique-column name="C_ELEMENT_ID"/>
-        <unique-column name="VALUE"/>
-      </unique>
       <check name="C_ELEMENTVALUE_ISACTIVE_CHECK"><![CDATA[ISACTIVE IN ('Y', 
'N')]]></check>
       <check name="CELEMVAL_ISBANKACCOUNT_CHECK"><![CDATA[ISBANKACCOUNT IN 
('Y', 'N')]]></check>
       <check name="CELEMVAL_ISDOCCONTROL_CHECK"><![CDATA[ISDOCCONTROLLED IN 
('Y', 'N')]]></check>
diff -r 786b89452eb1 -r 3cb40e9246fc 
src-db/database/model/triggers/C_BPARTNER_TRG.xml
--- a/src-db/database/model/triggers/C_BPARTNER_TRG.xml Fri Jul 10 21:36:24 
2009 +0200
+++ b/src-db/database/model/triggers/C_BPARTNER_TRG.xml Sat Jul 11 12:24:59 
2009 +0530
@@ -34,11 +34,15 @@
    Cur_Defaults RECORD;
    Cur_Defaults2 RECORD;
 
-  v_xTree_ID        varchar2(32);
-  v_xParent_ID      varchar2(32);
-  v_BP_Acct_ID    varchar2(32);
-
-    
+  v_xTree_ID                  varchar2(32);
+  v_xParent_ID                varchar2(32);
+  v_BP_Acct_ID                varchar2(32);
+  v_C_Receivable_Acct         varchar2(32);
+  v_V_Liability_Acct          varchar2(32);
+  v_seq_name                         varchar2(32);
+  v_Sequence_No                            varchar2(32);
+  v_C_AcctSchema_ID              VARCHAR2(32);
+     
 BEGIN
     
     IF AD_isTriggerEnabled()='N' THEN RETURN;
@@ -46,59 +50,139 @@
 
 
     --  Default Accounts for all AcctSchema
- IF (INSERTING) THEN
-     FOR Cur_Defaults IN (
-               SELECT  distinct d1.*
-               FROM  C_BP_Group_Acct d1, ad_Org_AcctSchema a
-               WHERE  d1.C_BP_Group_ID=:new.C_BP_Group_ID
+       IF (INSERTING) THEN
+        v_C_AcctSchema_ID:=null;
+       FOR Cur_Defaults IN

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to