comparing with https://code.openbravo.com/erp/devel/pi
searching for changes
changeset:   12425:be7a11869d41
parent:      12339:4e790673106e
user:        David Alsasua <david.alsasua@openbravo.com>
date:        Tue May 31 22:10:04 2011 +0200
summary:     Fixes issue 15100.

diff --git a/referencedata/standard/Initial_Setup.xml b/referencedata/standard/Initial_Setup.xml
--- a/referencedata/standard/Initial_Setup.xml
+++ b/referencedata/standard/Initial_Setup.xml
@@ -162,150 +162,6 @@
     <default>true</default>
     <language id="192" entity-name="ADLanguage" identifier="English (USA)"/>
   </EmailTemplate>
-  <FinancialMgmtGLCategory id="102C08DF5D4341D5B7FDF758632503D2" identifier="AR Invoice">
-    <id>102C08DF5D4341D5B7FDF758632503D2</id>
-    <active>true</active>
-    <name>AR Invoice</name>
-    <description xsi:nil="true"/>
-    <categoryType>D</categoryType>
-    <default>false</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
-  <FinancialMgmtGLCategory id="160C37CC0D36480E8B91B015FAC747DC" identifier="Material Management">
-    <id>160C37CC0D36480E8B91B015FAC747DC</id>
-    <active>true</active>
-    <name>Material Management</name>
-    <description xsi:nil="true"/>
-    <categoryType>D</categoryType>
-    <default>false</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
-  <FinancialMgmtGLCategory id="3005499D637B41AF86222E4BDA29D415" identifier="Movement">
-    <id>3005499D637B41AF86222E4BDA29D415</id>
-    <active>true</active>
-    <name>Movement</name>
-    <description xsi:nil="true"/>
-    <categoryType>D</categoryType>
-    <default>false</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
-  <FinancialMgmtGLCategory id="37501231BC434F2DB0BF5F706CEBCC1F" identifier="Production">
-    <id>37501231BC434F2DB0BF5F706CEBCC1F</id>
-    <active>true</active>
-    <name>Production</name>
-    <description xsi:nil="true"/>
-    <categoryType>D</categoryType>
-    <default>false</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
-  <FinancialMgmtGLCategory id="47D760C2B9C942EA86D47E6422C3BF9C" identifier="Manual">
-    <id>47D760C2B9C942EA86D47E6422C3BF9C</id>
-    <active>true</active>
-    <name>Manual</name>
-    <description xsi:nil="true"/>
-    <categoryType>M</categoryType>
-    <default>false</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
-  <FinancialMgmtGLCategory id="5106A21601924DA9996DC40C34954F8A" identifier="Inventory">
-    <id>5106A21601924DA9996DC40C34954F8A</id>
-    <active>true</active>
-    <name>Inventory</name>
-    <description xsi:nil="true"/>
-    <categoryType>D</categoryType>
-    <default>false</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
-  <FinancialMgmtGLCategory id="745A2B441A2644DF934D1B1E462292E9" identifier="None">
-    <id>745A2B441A2644DF934D1B1E462292E9</id>
-    <active>true</active>
-    <name>None</name>
-    <description xsi:nil="true"/>
-    <categoryType>D</categoryType>
-    <default>false</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
-  <FinancialMgmtGLCategory id="82B88F71CF71401584FC1DFEFD9EB33D" identifier="MatchInv">
-    <id>82B88F71CF71401584FC1DFEFD9EB33D</id>
-    <active>true</active>
-    <name>MatchInv</name>
-    <description xsi:nil="true"/>
-    <categoryType>D</categoryType>
-    <default>false</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
-  <FinancialMgmtGLCategory id="844F34E0FA4045C6A3D00B6D4D53107B" identifier="Settlement">
-    <id>844F34E0FA4045C6A3D00B6D4D53107B</id>
-    <active>true</active>
-    <name>Settlement</name>
-    <description xsi:nil="true"/>
-    <categoryType>D</categoryType>
-    <default>false</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
-  <FinancialMgmtGLCategory id="A431AFE1356141728139523053B672C4" identifier="AP Invoice">
-    <id>A431AFE1356141728139523053B672C4</id>
-    <active>true</active>
-    <name>AP Invoice</name>
-    <description xsi:nil="true"/>
-    <categoryType>D</categoryType>
-    <default>false</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
-  <FinancialMgmtGLCategory id="AAB8DB8C913E4AA0A651A5C0DC061C1A" identifier="Bank Statement">
-    <id>AAB8DB8C913E4AA0A651A5C0DC061C1A</id>
-    <active>true</active>
-    <name>Bank Statement</name>
-    <description xsi:nil="true"/>
-    <categoryType>D</categoryType>
-    <default>false</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
-  <FinancialMgmtGLCategory id="C79381E3F81140DBAAD73E6B0CD74901" identifier="AP Payment">
-    <id>C79381E3F81140DBAAD73E6B0CD74901</id>
-    <active>true</active>
-    <name>AP Payment</name>
-    <description xsi:nil="true"/>
-    <categoryType>D</categoryType>
-    <default>false</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
-  <FinancialMgmtGLCategory id="D6A6F219061F4C34B87E1CC4DD6797F3" identifier="Cash">
-    <id>D6A6F219061F4C34B87E1CC4DD6797F3</id>
-    <active>true</active>
-    <name>Cash</name>
-    <description xsi:nil="true"/>
-    <categoryType>D</categoryType>
-    <default>false</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
-  <FinancialMgmtGLCategory id="E8752D97421B434F8355331B680DC652" identifier="AR Receipt">
-    <id>E8752D97421B434F8355331B680DC652</id>
-    <active>true</active>
-    <name>AR Receipt</name>
-    <description xsi:nil="true"/>
-    <categoryType>D</categoryType>
-    <default>false</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
-  <FinancialMgmtGLCategory id="FA9102F37B904275A3CCD9935D69ED51" identifier="MatchPO">
-    <id>FA9102F37B904275A3CCD9935D69ED51</id>
-    <active>true</active>
-    <name>MatchPO</name>
-    <description xsi:nil="true"/>
-    <categoryType>D</categoryType>
-    <default>false</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
-  <FinancialMgmtGLCategory id="FC670B83E59C4E7CBD6B999D3F28B251" identifier="Standard">
-    <id>FC670B83E59C4E7CBD6B999D3F28B251</id>
-    <active>true</active>
-    <name>Standard</name>
-    <description xsi:nil="true"/>
-    <categoryType>M</categoryType>
-    <default>true</default>
-    <documentCategory inactive="true" xsi:nil="true"/>
-  </FinancialMgmtGLCategory>
   <ADPreference id="AAEF5567618F49FE8BA729E550614AA0" identifier="C_DocTypeTarget_ID - ">
     <id>AAEF5567618F49FE8BA729E550614AA0</id>
     <active>true</active>
@@ -334,7 +190,7 @@
     <documentTypeForInvoice id="0" entity-name="DocumentType" identifier="** New **"/>
     <sequencedDocument>true</sequencedDocument>
     <documentSequence id="81F0991C4D884F82AF34E6CD72C0BFEC" entity-name="ADSequence" identifier="Quotation"/>
-    <gLCategory id="745A2B441A2644DF934D1B1E462292E9" entity-name="FinancialMgmtGLCategory" identifier="None"/>
+    <gLCategory id="0" entity-name="FinancialMgmtGLCategory" identifier="None"/>
     <comments xsi:nil="true"/>
     <default>false</default>
     <numberOfCopies>0</numberOfCopies>
@@ -380,7 +236,7 @@
     <documentTypeForInvoice id="0" entity-name="DocumentType" identifier="** New **"/>
     <sequencedDocument>true</sequencedDocument>
     <documentSequence id="8547DE01C56D4C67A28F37AA5E72046D" entity-name="ADSequence" identifier="Proposal"/>
-    <gLCategory id="745A2B441A2644DF934D1B1E462292E9" entity-name="FinancialMgmtGLCategory" identifier="None"/>
+    <gLCategory id="0" entity-name="FinancialMgmtGLCategory" identifier="None"/>
     <comments xsi:nil="true"/>
     <default>false</default>
     <numberOfCopies>0</numberOfCopies>
@@ -403,7 +259,7 @@
     <documentTypeForInvoice id="40EE9B1CD3B345FABEFDA62B407B407F" entity-name="DocumentType" identifier="AR Invoice"/>
     <sequencedDocument>true</sequencedDocument>
     <documentSequence id="6D3C7477332F47CD8A0F6A5C4805EBD4" entity-name="ADSequence" identifier="Prepay Order"/>
-    <gLCategory id="745A2B441A2644DF934D1B1E462292E9" entity-name="FinancialMgmtGLCategory" identifier="None"/>
+    <gLCategory id="0" entity-name="FinancialMgmtGLCategory" identifier="None"/>
     <comments xsi:nil="true"/>
     <default>false</default>
     <numberOfCopies>0</numberOfCopies>
@@ -449,7 +305,7 @@
     <documentTypeForInvoice id="40EE9B1CD3B345FABEFDA62B407B407F" entity-name="DocumentType" identifier="AR Invoice"/>
     <sequencedDocument>true</sequencedDocument>
     <documentSequence id="A6A631F13B004AB8AD39573E95EE992E" entity-name="ADSequence" identifier="Return Material"/>
-    <gLCategory id="745A2B441A2644DF934D1B1E462292E9" entity-name="FinancialMgmtGLCategory" identifier="None"/>
+    <gLCategory id="0" entity-name="FinancialMgmtGLCategory" identifier="None"/>
     <comments xsi:nil="true"/>
     <default>false</default>
     <numberOfCopies>0</numberOfCopies>
@@ -564,7 +420,7 @@
     <documentTypeForInvoice id="40EE9B1CD3B345FABEFDA62B407B407F" entity-name="DocumentType" identifier="AR Invoice"/>
     <sequencedDocument>true</sequencedDocument>
     <documentSequence id="FFB42B38D6A34634B534AB499B13644C" entity-name="ADSequence" identifier="POS Order"/>
-    <gLCategory id="745A2B441A2644DF934D1B1E462292E9" entity-name="FinancialMgmtGLCategory" identifier="None"/>
+    <gLCategory id="0" entity-name="FinancialMgmtGLCategory" identifier="None"/>
     <comments xsi:nil="true"/>
     <default>false</default>
     <numberOfCopies>0</numberOfCopies>
@@ -702,7 +558,7 @@
     <documentTypeForInvoice id="0" entity-name="DocumentType" identifier="** New **"/>
     <sequencedDocument>true</sequencedDocument>
     <documentSequence id="74C3CC2BCDDA45F5BBFE8DF603728749" entity-name="ADSequence" identifier="Purchase Requisition"/>
-    <gLCategory id="745A2B441A2644DF934D1B1E462292E9" entity-name="FinancialMgmtGLCategory" identifier="None"/>
+    <gLCategory id="0" entity-name="FinancialMgmtGLCategory" identifier="None"/>
     <comments xsi:nil="true"/>
     <default>false</default>
     <numberOfCopies>0</numberOfCopies>
@@ -725,7 +581,7 @@
     <documentTypeForInvoice id="40EE9B1CD3B345FABEFDA62B407B407F" entity-name="DocumentType" identifier="AR Invoice"/>
     <sequencedDocument>true</sequencedDocument>
     <documentSequence id="F6907986413D46C4BE3E27174895CC48" entity-name="ADSequence" identifier="Warehouse Order"/>
-    <gLCategory id="745A2B441A2644DF934D1B1E462292E9" entity-name="FinancialMgmtGLCategory" identifier="None"/>
+    <gLCategory id="0" entity-name="FinancialMgmtGLCategory" identifier="None"/>
     <comments xsi:nil="true"/>
     <default>false</default>
     <numberOfCopies>0</numberOfCopies>
@@ -748,7 +604,7 @@
     <documentTypeForInvoice id="0" entity-name="DocumentType" identifier="** New **"/>
     <sequencedDocument>true</sequencedDocument>
     <documentSequence id="AE79ADF07A5E4E6E9C5367505C1C3463" entity-name="ADSequence" identifier="Purchase Order"/>
-    <gLCategory id="745A2B441A2644DF934D1B1E462292E9" entity-name="FinancialMgmtGLCategory" identifier="None"/>
+    <gLCategory id="0" entity-name="FinancialMgmtGLCategory" identifier="None"/>
     <comments xsi:nil="true"/>
     <default>true</default>
     <numberOfCopies>0</numberOfCopies>
@@ -955,7 +811,7 @@
     <documentTypeForInvoice id="40EE9B1CD3B345FABEFDA62B407B407F" entity-name="DocumentType" identifier="AR Invoice"/>
     <sequencedDocument>true</sequencedDocument>
     <documentSequence id="0FBF9530BC584A6E9415F7AD01A23201" entity-name="ADSequence" identifier="Standard Order"/>
-    <gLCategory id="745A2B441A2644DF934D1B1E462292E9" entity-name="FinancialMgmtGLCategory" identifier="None"/>
+    <gLCategory id="0" entity-name="FinancialMgmtGLCategory" identifier="None"/>
     <comments xsi:nil="true"/>
     <default>true</default>
     <numberOfCopies>0</numberOfCopies>
@@ -1001,7 +857,7 @@
     <documentTypeForInvoice id="40EE9B1CD3B345FABEFDA62B407B407F" entity-name="DocumentType" identifier="AR Invoice"/>
     <sequencedDocument>true</sequencedDocument>
     <documentSequence id="F4F629F131124F198601A47F5FEDF53A" entity-name="ADSequence" identifier="Credit Order"/>
-    <gLCategory id="745A2B441A2644DF934D1B1E462292E9" entity-name="FinancialMgmtGLCategory" identifier="None"/>
+    <gLCategory id="0" entity-name="FinancialMgmtGLCategory" identifier="None"/>
     <comments xsi:nil="true"/>
     <default>false</default>
     <numberOfCopies>0</numberOfCopies>
diff --git a/src-db/database/sourcedata/referencedData/GL_CATEGORY.xml b/src-db/database/sourcedata/referencedData/GL_CATEGORY.xml
--- a/src-db/database/sourcedata/referencedData/GL_CATEGORY.xml
+++ b/src-db/database/sourcedata/referencedData/GL_CATEGORY.xml
@@ -5,13 +5,237 @@
 <!--0-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
 <!--0-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--0-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
-<!--0-->  <CREATED><![CDATA[2011-02-22 17:06:39.0]]></CREATED>
+<!--0-->  <CREATED><![CDATA[2011-05-22 03:34:04.0]]></CREATED>
 <!--0-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
-<!--0-->  <UPDATED><![CDATA[2011-02-22 17:06:39.0]]></UPDATED>
+<!--0-->  <UPDATED><![CDATA[2011-05-22 03:34:04.0]]></UPDATED>
 <!--0-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
 <!--0-->  <NAME><![CDATA[None]]></NAME>
 <!--0-->  <CATEGORYTYPE><![CDATA[M]]></CATEGORYTYPE>
 <!--0-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
 <!--0--></GL_CATEGORY>
 
+<!--0881F8B0B3134347AD537E83E737B9EF--><GL_CATEGORY>
+<!--0881F8B0B3134347AD537E83E737B9EF-->  <GL_CATEGORY_ID><![CDATA[0881F8B0B3134347AD537E83E737B9EF]]></GL_CATEGORY_ID>
+<!--0881F8B0B3134347AD537E83E737B9EF-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--0881F8B0B3134347AD537E83E737B9EF-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--0881F8B0B3134347AD537E83E737B9EF-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--0881F8B0B3134347AD537E83E737B9EF-->  <CREATED><![CDATA[2011-05-22 03:48:28.0]]></CREATED>
+<!--0881F8B0B3134347AD537E83E737B9EF-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--0881F8B0B3134347AD537E83E737B9EF-->  <UPDATED><![CDATA[2011-05-22 03:48:28.0]]></UPDATED>
+<!--0881F8B0B3134347AD537E83E737B9EF-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--0881F8B0B3134347AD537E83E737B9EF-->  <NAME><![CDATA[Financial]]></NAME>
+<!--0881F8B0B3134347AD537E83E737B9EF-->  <CATEGORYTYPE><![CDATA[D]]></CATEGORYTYPE>
+<!--0881F8B0B3134347AD537E83E737B9EF-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--0881F8B0B3134347AD537E83E737B9EF--></GL_CATEGORY>
+
+<!--102C08DF5D4341D5B7FDF758632503D2--><GL_CATEGORY>
+<!--102C08DF5D4341D5B7FDF758632503D2-->  <GL_CATEGORY_ID><![CDATA[102C08DF5D4341D5B7FDF758632503D2]]></GL_CATEGORY_ID>
+<!--102C08DF5D4341D5B7FDF758632503D2-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--102C08DF5D4341D5B7FDF758632503D2-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--102C08DF5D4341D5B7FDF758632503D2-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--102C08DF5D4341D5B7FDF758632503D2-->  <CREATED><![CDATA[2011-05-22 03:48:27.0]]></CREATED>
+<!--102C08DF5D4341D5B7FDF758632503D2-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--102C08DF5D4341D5B7FDF758632503D2-->  <UPDATED><![CDATA[2011-05-22 03:48:27.0]]></UPDATED>
+<!--102C08DF5D4341D5B7FDF758632503D2-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--102C08DF5D4341D5B7FDF758632503D2-->  <NAME><![CDATA[AR Invoice]]></NAME>
+<!--102C08DF5D4341D5B7FDF758632503D2-->  <CATEGORYTYPE><![CDATA[D]]></CATEGORYTYPE>
+<!--102C08DF5D4341D5B7FDF758632503D2-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--102C08DF5D4341D5B7FDF758632503D2--></GL_CATEGORY>
+
+<!--160C37CC0D36480E8B91B015FAC747DC--><GL_CATEGORY>
+<!--160C37CC0D36480E8B91B015FAC747DC-->  <GL_CATEGORY_ID><![CDATA[160C37CC0D36480E8B91B015FAC747DC]]></GL_CATEGORY_ID>
+<!--160C37CC0D36480E8B91B015FAC747DC-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--160C37CC0D36480E8B91B015FAC747DC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--160C37CC0D36480E8B91B015FAC747DC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--160C37CC0D36480E8B91B015FAC747DC-->  <CREATED><![CDATA[2011-05-22 03:48:27.0]]></CREATED>
+<!--160C37CC0D36480E8B91B015FAC747DC-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--160C37CC0D36480E8B91B015FAC747DC-->  <UPDATED><![CDATA[2011-05-22 03:48:27.0]]></UPDATED>
+<!--160C37CC0D36480E8B91B015FAC747DC-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--160C37CC0D36480E8B91B015FAC747DC-->  <NAME><![CDATA[Material Management]]></NAME>
+<!--160C37CC0D36480E8B91B015FAC747DC-->  <CATEGORYTYPE><![CDATA[D]]></CATEGORYTYPE>
+<!--160C37CC0D36480E8B91B015FAC747DC-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--160C37CC0D36480E8B91B015FAC747DC--></GL_CATEGORY>
+
+<!--3005499D637B41AF86222E4BDA29D415--><GL_CATEGORY>
+<!--3005499D637B41AF86222E4BDA29D415-->  <GL_CATEGORY_ID><![CDATA[3005499D637B41AF86222E4BDA29D415]]></GL_CATEGORY_ID>
+<!--3005499D637B41AF86222E4BDA29D415-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--3005499D637B41AF86222E4BDA29D415-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--3005499D637B41AF86222E4BDA29D415-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--3005499D637B41AF86222E4BDA29D415-->  <CREATED><![CDATA[2011-05-22 03:48:34.0]]></CREATED>
+<!--3005499D637B41AF86222E4BDA29D415-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--3005499D637B41AF86222E4BDA29D415-->  <UPDATED><![CDATA[2011-05-22 03:48:34.0]]></UPDATED>
+<!--3005499D637B41AF86222E4BDA29D415-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--3005499D637B41AF86222E4BDA29D415-->  <NAME><![CDATA[Movement]]></NAME>
+<!--3005499D637B41AF86222E4BDA29D415-->  <CATEGORYTYPE><![CDATA[D]]></CATEGORYTYPE>
+<!--3005499D637B41AF86222E4BDA29D415-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--3005499D637B41AF86222E4BDA29D415--></GL_CATEGORY>
+
+<!--37501231BC434F2DB0BF5F706CEBCC1F--><GL_CATEGORY>
+<!--37501231BC434F2DB0BF5F706CEBCC1F-->  <GL_CATEGORY_ID><![CDATA[37501231BC434F2DB0BF5F706CEBCC1F]]></GL_CATEGORY_ID>
+<!--37501231BC434F2DB0BF5F706CEBCC1F-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--37501231BC434F2DB0BF5F706CEBCC1F-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--37501231BC434F2DB0BF5F706CEBCC1F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--37501231BC434F2DB0BF5F706CEBCC1F-->  <CREATED><![CDATA[2011-05-22 03:48:34.0]]></CREATED>
+<!--37501231BC434F2DB0BF5F706CEBCC1F-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--37501231BC434F2DB0BF5F706CEBCC1F-->  <UPDATED><![CDATA[2011-05-22 03:48:34.0]]></UPDATED>
+<!--37501231BC434F2DB0BF5F706CEBCC1F-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--37501231BC434F2DB0BF5F706CEBCC1F-->  <NAME><![CDATA[Production]]></NAME>
+<!--37501231BC434F2DB0BF5F706CEBCC1F-->  <CATEGORYTYPE><![CDATA[D]]></CATEGORYTYPE>
+<!--37501231BC434F2DB0BF5F706CEBCC1F-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--37501231BC434F2DB0BF5F706CEBCC1F--></GL_CATEGORY>
+
+<!--47D760C2B9C942EA86D47E6422C3BF9C--><GL_CATEGORY>
+<!--47D760C2B9C942EA86D47E6422C3BF9C-->  <GL_CATEGORY_ID><![CDATA[47D760C2B9C942EA86D47E6422C3BF9C]]></GL_CATEGORY_ID>
+<!--47D760C2B9C942EA86D47E6422C3BF9C-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--47D760C2B9C942EA86D47E6422C3BF9C-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--47D760C2B9C942EA86D47E6422C3BF9C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--47D760C2B9C942EA86D47E6422C3BF9C-->  <CREATED><![CDATA[2011-05-22 03:48:34.0]]></CREATED>
+<!--47D760C2B9C942EA86D47E6422C3BF9C-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--47D760C2B9C942EA86D47E6422C3BF9C-->  <UPDATED><![CDATA[2011-05-22 03:48:34.0]]></UPDATED>
+<!--47D760C2B9C942EA86D47E6422C3BF9C-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--47D760C2B9C942EA86D47E6422C3BF9C-->  <NAME><![CDATA[Manual]]></NAME>
+<!--47D760C2B9C942EA86D47E6422C3BF9C-->  <CATEGORYTYPE><![CDATA[M]]></CATEGORYTYPE>
+<!--47D760C2B9C942EA86D47E6422C3BF9C-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--47D760C2B9C942EA86D47E6422C3BF9C--></GL_CATEGORY>
+
+<!--5106A21601924DA9996DC40C34954F8A--><GL_CATEGORY>
+<!--5106A21601924DA9996DC40C34954F8A-->  <GL_CATEGORY_ID><![CDATA[5106A21601924DA9996DC40C34954F8A]]></GL_CATEGORY_ID>
+<!--5106A21601924DA9996DC40C34954F8A-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--5106A21601924DA9996DC40C34954F8A-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--5106A21601924DA9996DC40C34954F8A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--5106A21601924DA9996DC40C34954F8A-->  <CREATED><![CDATA[2011-05-22 03:48:34.0]]></CREATED>
+<!--5106A21601924DA9996DC40C34954F8A-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--5106A21601924DA9996DC40C34954F8A-->  <UPDATED><![CDATA[2011-05-22 03:48:34.0]]></UPDATED>
+<!--5106A21601924DA9996DC40C34954F8A-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--5106A21601924DA9996DC40C34954F8A-->  <NAME><![CDATA[Inventory]]></NAME>
+<!--5106A21601924DA9996DC40C34954F8A-->  <CATEGORYTYPE><![CDATA[D]]></CATEGORYTYPE>
+<!--5106A21601924DA9996DC40C34954F8A-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--5106A21601924DA9996DC40C34954F8A--></GL_CATEGORY>
+
+<!--82B88F71CF71401584FC1DFEFD9EB33D--><GL_CATEGORY>
+<!--82B88F71CF71401584FC1DFEFD9EB33D-->  <GL_CATEGORY_ID><![CDATA[82B88F71CF71401584FC1DFEFD9EB33D]]></GL_CATEGORY_ID>
+<!--82B88F71CF71401584FC1DFEFD9EB33D-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--82B88F71CF71401584FC1DFEFD9EB33D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--82B88F71CF71401584FC1DFEFD9EB33D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--82B88F71CF71401584FC1DFEFD9EB33D-->  <CREATED><![CDATA[2011-05-22 03:48:34.0]]></CREATED>
+<!--82B88F71CF71401584FC1DFEFD9EB33D-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--82B88F71CF71401584FC1DFEFD9EB33D-->  <UPDATED><![CDATA[2011-05-22 03:48:34.0]]></UPDATED>
+<!--82B88F71CF71401584FC1DFEFD9EB33D-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--82B88F71CF71401584FC1DFEFD9EB33D-->  <NAME><![CDATA[MatchInv]]></NAME>
+<!--82B88F71CF71401584FC1DFEFD9EB33D-->  <CATEGORYTYPE><![CDATA[D]]></CATEGORYTYPE>
+<!--82B88F71CF71401584FC1DFEFD9EB33D-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--82B88F71CF71401584FC1DFEFD9EB33D--></GL_CATEGORY>
+
+<!--844F34E0FA4045C6A3D00B6D4D53107B--><GL_CATEGORY>
+<!--844F34E0FA4045C6A3D00B6D4D53107B-->  <GL_CATEGORY_ID><![CDATA[844F34E0FA4045C6A3D00B6D4D53107B]]></GL_CATEGORY_ID>
+<!--844F34E0FA4045C6A3D00B6D4D53107B-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--844F34E0FA4045C6A3D00B6D4D53107B-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--844F34E0FA4045C6A3D00B6D4D53107B-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--844F34E0FA4045C6A3D00B6D4D53107B-->  <CREATED><![CDATA[2011-05-22 03:48:37.0]]></CREATED>
+<!--844F34E0FA4045C6A3D00B6D4D53107B-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--844F34E0FA4045C6A3D00B6D4D53107B-->  <UPDATED><![CDATA[2011-05-22 03:48:37.0]]></UPDATED>
+<!--844F34E0FA4045C6A3D00B6D4D53107B-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--844F34E0FA4045C6A3D00B6D4D53107B-->  <NAME><![CDATA[Settlement]]></NAME>
+<!--844F34E0FA4045C6A3D00B6D4D53107B-->  <CATEGORYTYPE><![CDATA[D]]></CATEGORYTYPE>
+<!--844F34E0FA4045C6A3D00B6D4D53107B-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--844F34E0FA4045C6A3D00B6D4D53107B--></GL_CATEGORY>
+
+<!--A431AFE1356141728139523053B672C4--><GL_CATEGORY>
+<!--A431AFE1356141728139523053B672C4-->  <GL_CATEGORY_ID><![CDATA[A431AFE1356141728139523053B672C4]]></GL_CATEGORY_ID>
+<!--A431AFE1356141728139523053B672C4-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--A431AFE1356141728139523053B672C4-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--A431AFE1356141728139523053B672C4-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--A431AFE1356141728139523053B672C4-->  <CREATED><![CDATA[2011-05-22 03:48:28.0]]></CREATED>
+<!--A431AFE1356141728139523053B672C4-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--A431AFE1356141728139523053B672C4-->  <UPDATED><![CDATA[2011-05-22 03:48:28.0]]></UPDATED>
+<!--A431AFE1356141728139523053B672C4-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--A431AFE1356141728139523053B672C4-->  <NAME><![CDATA[AP Invoice]]></NAME>
+<!--A431AFE1356141728139523053B672C4-->  <CATEGORYTYPE><![CDATA[D]]></CATEGORYTYPE>
+<!--A431AFE1356141728139523053B672C4-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--A431AFE1356141728139523053B672C4--></GL_CATEGORY>
+
+<!--AAB8DB8C913E4AA0A651A5C0DC061C1A--><GL_CATEGORY>
+<!--AAB8DB8C913E4AA0A651A5C0DC061C1A-->  <GL_CATEGORY_ID><![CDATA[AAB8DB8C913E4AA0A651A5C0DC061C1A]]></GL_CATEGORY_ID>
+<!--AAB8DB8C913E4AA0A651A5C0DC061C1A-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--AAB8DB8C913E4AA0A651A5C0DC061C1A-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--AAB8DB8C913E4AA0A651A5C0DC061C1A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--AAB8DB8C913E4AA0A651A5C0DC061C1A-->  <CREATED><![CDATA[2011-05-22 03:48:37.0]]></CREATED>
+<!--AAB8DB8C913E4AA0A651A5C0DC061C1A-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--AAB8DB8C913E4AA0A651A5C0DC061C1A-->  <UPDATED><![CDATA[2011-05-22 03:48:37.0]]></UPDATED>
+<!--AAB8DB8C913E4AA0A651A5C0DC061C1A-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--AAB8DB8C913E4AA0A651A5C0DC061C1A-->  <NAME><![CDATA[Bank Statement]]></NAME>
+<!--AAB8DB8C913E4AA0A651A5C0DC061C1A-->  <CATEGORYTYPE><![CDATA[D]]></CATEGORYTYPE>
+<!--AAB8DB8C913E4AA0A651A5C0DC061C1A-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--AAB8DB8C913E4AA0A651A5C0DC061C1A--></GL_CATEGORY>
+
+<!--C79381E3F81140DBAAD73E6B0CD74901--><GL_CATEGORY>
+<!--C79381E3F81140DBAAD73E6B0CD74901-->  <GL_CATEGORY_ID><![CDATA[C79381E3F81140DBAAD73E6B0CD74901]]></GL_CATEGORY_ID>
+<!--C79381E3F81140DBAAD73E6B0CD74901-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--C79381E3F81140DBAAD73E6B0CD74901-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--C79381E3F81140DBAAD73E6B0CD74901-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--C79381E3F81140DBAAD73E6B0CD74901-->  <CREATED><![CDATA[2011-05-22 03:48:27.0]]></CREATED>
+<!--C79381E3F81140DBAAD73E6B0CD74901-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--C79381E3F81140DBAAD73E6B0CD74901-->  <UPDATED><![CDATA[2011-05-22 03:48:27.0]]></UPDATED>
+<!--C79381E3F81140DBAAD73E6B0CD74901-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--C79381E3F81140DBAAD73E6B0CD74901-->  <NAME><![CDATA[AP Payment]]></NAME>
+<!--C79381E3F81140DBAAD73E6B0CD74901-->  <CATEGORYTYPE><![CDATA[D]]></CATEGORYTYPE>
+<!--C79381E3F81140DBAAD73E6B0CD74901-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--C79381E3F81140DBAAD73E6B0CD74901--></GL_CATEGORY>
+
+<!--D6A6F219061F4C34B87E1CC4DD6797F3--><GL_CATEGORY>
+<!--D6A6F219061F4C34B87E1CC4DD6797F3-->  <GL_CATEGORY_ID><![CDATA[D6A6F219061F4C34B87E1CC4DD6797F3]]></GL_CATEGORY_ID>
+<!--D6A6F219061F4C34B87E1CC4DD6797F3-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--D6A6F219061F4C34B87E1CC4DD6797F3-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--D6A6F219061F4C34B87E1CC4DD6797F3-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--D6A6F219061F4C34B87E1CC4DD6797F3-->  <CREATED><![CDATA[2011-05-22 03:48:37.0]]></CREATED>
+<!--D6A6F219061F4C34B87E1CC4DD6797F3-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--D6A6F219061F4C34B87E1CC4DD6797F3-->  <UPDATED><![CDATA[2011-05-22 03:48:37.0]]></UPDATED>
+<!--D6A6F219061F4C34B87E1CC4DD6797F3-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--D6A6F219061F4C34B87E1CC4DD6797F3-->  <NAME><![CDATA[Cash]]></NAME>
+<!--D6A6F219061F4C34B87E1CC4DD6797F3-->  <CATEGORYTYPE><![CDATA[D]]></CATEGORYTYPE>
+<!--D6A6F219061F4C34B87E1CC4DD6797F3-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--D6A6F219061F4C34B87E1CC4DD6797F3--></GL_CATEGORY>
+
+<!--E8752D97421B434F8355331B680DC652--><GL_CATEGORY>
+<!--E8752D97421B434F8355331B680DC652-->  <GL_CATEGORY_ID><![CDATA[E8752D97421B434F8355331B680DC652]]></GL_CATEGORY_ID>
+<!--E8752D97421B434F8355331B680DC652-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--E8752D97421B434F8355331B680DC652-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--E8752D97421B434F8355331B680DC652-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--E8752D97421B434F8355331B680DC652-->  <CREATED><![CDATA[2011-05-22 03:48:27.0]]></CREATED>
+<!--E8752D97421B434F8355331B680DC652-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--E8752D97421B434F8355331B680DC652-->  <UPDATED><![CDATA[2011-05-22 03:48:27.0]]></UPDATED>
+<!--E8752D97421B434F8355331B680DC652-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--E8752D97421B434F8355331B680DC652-->  <NAME><![CDATA[AR Receipt]]></NAME>
+<!--E8752D97421B434F8355331B680DC652-->  <CATEGORYTYPE><![CDATA[D]]></CATEGORYTYPE>
+<!--E8752D97421B434F8355331B680DC652-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--E8752D97421B434F8355331B680DC652--></GL_CATEGORY>
+
+<!--FA9102F37B904275A3CCD9935D69ED51--><GL_CATEGORY>
+<!--FA9102F37B904275A3CCD9935D69ED51-->  <GL_CATEGORY_ID><![CDATA[FA9102F37B904275A3CCD9935D69ED51]]></GL_CATEGORY_ID>
+<!--FA9102F37B904275A3CCD9935D69ED51-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FA9102F37B904275A3CCD9935D69ED51-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FA9102F37B904275A3CCD9935D69ED51-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FA9102F37B904275A3CCD9935D69ED51-->  <CREATED><![CDATA[2011-05-22 03:48:34.0]]></CREATED>
+<!--FA9102F37B904275A3CCD9935D69ED51-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--FA9102F37B904275A3CCD9935D69ED51-->  <UPDATED><![CDATA[2011-05-22 03:48:34.0]]></UPDATED>
+<!--FA9102F37B904275A3CCD9935D69ED51-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--FA9102F37B904275A3CCD9935D69ED51-->  <NAME><![CDATA[MatchPO]]></NAME>
+<!--FA9102F37B904275A3CCD9935D69ED51-->  <CATEGORYTYPE><![CDATA[D]]></CATEGORYTYPE>
+<!--FA9102F37B904275A3CCD9935D69ED51-->  <ISDEFAULT><![CDATA[N]]></ISDEFAULT>
+<!--FA9102F37B904275A3CCD9935D69ED51--></GL_CATEGORY>
+
+<!--FC670B83E59C4E7CBD6B999D3F28B251--><GL_CATEGORY>
+<!--FC670B83E59C4E7CBD6B999D3F28B251-->  <GL_CATEGORY_ID><![CDATA[FC670B83E59C4E7CBD6B999D3F28B251]]></GL_CATEGORY_ID>
+<!--FC670B83E59C4E7CBD6B999D3F28B251-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FC670B83E59C4E7CBD6B999D3F28B251-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FC670B83E59C4E7CBD6B999D3F28B251-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FC670B83E59C4E7CBD6B999D3F28B251-->  <CREATED><![CDATA[2011-05-22 03:48:34.0]]></CREATED>
+<!--FC670B83E59C4E7CBD6B999D3F28B251-->  <CREATEDBY><![CDATA[0]]></CREATEDBY>
+<!--FC670B83E59C4E7CBD6B999D3F28B251-->  <UPDATED><![CDATA[2011-05-22 03:48:34.0]]></UPDATED>
+<!--FC670B83E59C4E7CBD6B999D3F28B251-->  <UPDATEDBY><![CDATA[0]]></UPDATEDBY>
+<!--FC670B83E59C4E7CBD6B999D3F28B251-->  <NAME><![CDATA[Standard]]></NAME>
+<!--FC670B83E59C4E7CBD6B999D3F28B251-->  <CATEGORYTYPE><![CDATA[M]]></CATEGORYTYPE>
+<!--FC670B83E59C4E7CBD6B999D3F28B251-->  <ISDEFAULT><![CDATA[Y]]></ISDEFAULT>
+<!--FC670B83E59C4E7CBD6B999D3F28B251--></GL_CATEGORY>
+
 </data>
diff --git a/src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/GLCategoriesAtSystemLevel.class b/src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/GLCategoriesAtSystemLevel.class
new file mode 100644
index 0000000000000000000000000000000000000000..8f77b34199832ccdbbb27f3984139f860e8c3cd1
GIT binary patch
literal 4638
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
DpS~C!

diff --git a/src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/GLCategoriesAtSystemLevelData.class b/src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/GLCategoriesAtSystemLevelData.class
new file mode 100644
index 0000000000000000000000000000000000000000..bc8cfa01a15425a83a243d52859bbee03ad0c197
GIT binary patch
literal 7026
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

diff --git a/src-util/buildvalidation/build/javasqlc/src/org/openbravo/buildvalidation/GLCategoriesAtSystemLevelData.java b/src-util/buildvalidation/build/javasqlc/src/org/openbravo/buildvalidation/GLCategoriesAtSystemLevelData.java
new file mode 100644
--- /dev/null
+++ b/src-util/buildvalidation/build/javasqlc/src/org/openbravo/buildvalidation/GLCategoriesAtSystemLevelData.java
@@ -0,0 +1,171 @@
+//Sqlc generated V1.O00-1
+package org.openbravo.buildvalidation;
+
+import java.sql.*;
+
+import org.apache.log4j.Logger;
+
+import javax.servlet.ServletException;
+
+import org.openbravo.data.FieldProvider;
+import org.openbravo.database.ConnectionProvider;
+import org.openbravo.data.UtilSql;
+import java.util.*;
+
+class GLCategoriesAtSystemLevelData implements FieldProvider {
+static Logger log4j = Logger.getLogger(GLCategoriesAtSystemLevelData.class);
+  private String InitRecordNumber="0";
+  public String countglcategories;
+  public String clientname;
+  public String categoryname;
+
+  public String getInitRecordNumber() {
+    return InitRecordNumber;
+  }
+
+  public String getField(String fieldName) {
+    if (fieldName.equalsIgnoreCase("countglcategories"))
+      return countglcategories;
+    else if (fieldName.equalsIgnoreCase("clientname"))
+      return clientname;
+    else if (fieldName.equalsIgnoreCase("categoryname"))
+      return categoryname;
+   else {
+     log4j.debug("Field does not exist: " + fieldName);
+     return null;
+   }
+ }
+
+  public static boolean select(ConnectionProvider connectionProvider)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "      select '' as countGLCategories, '' as clientname, '' as categoryname from gl_category";
+
+    ResultSet result;
+    boolean boolReturn = true;
+    PreparedStatement st = null;
+
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+
+      result = st.executeQuery();
+      if(result.next()) {
+        boolReturn = !UtilSql.getValue(result, "countglcategories").equals("0");
+      }
+      result.close();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    return(boolReturn);
+  }
+
+  public static boolean existsSystemGLCategoryWithSameName(ConnectionProvider connectionProvider, String id, String name)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "      select count(*) as countGLCategories" +
+      "      from gl_category" +
+      "      where ad_client_id='0'" +
+      "        and gl_category_id <> ?" +
+      "        and name = ?";
+
+    ResultSet result;
+    boolean boolReturn = true;
+    PreparedStatement st = null;
+
+    int iParameter = 0;
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, id);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, name);
+
+      result = st.executeQuery();
+      if(result.next()) {
+        boolReturn = !UtilSql.getValue(result, "countglcategories").equals("0");
+      }
+      result.close();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    return(boolReturn);
+  }
+
+  public static GLCategoriesAtSystemLevelData[] existsRenamedGLCategories(ConnectionProvider connectionProvider, String id, String name)    throws ServletException {
+    return existsRenamedGLCategories(connectionProvider, id, name, 0, 0);
+  }
+
+  public static GLCategoriesAtSystemLevelData[] existsRenamedGLCategories(ConnectionProvider connectionProvider, String id, String name, int firstRegister, int numberRegisters)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "      select ad_client.name as clientname, gl_category.name as categoryname" +
+      "      from gl_category left join ad_client on gl_category.ad_client_id = ad_client.ad_client_id" +
+      "      where gl_category.gl_category_id = ?" +
+      "        and gl_category.name <> ?";
+
+    ResultSet result;
+    Vector<java.lang.Object> vector = new Vector<java.lang.Object>(0);
+    PreparedStatement st = null;
+
+    int iParameter = 0;
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, id);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, name);
+
+      result = st.executeQuery();
+      long countRecord = 0;
+      long countRecordSkip = 1;
+      boolean continueResult = true;
+      while(countRecordSkip < firstRegister && continueResult) {
+        continueResult = result.next();
+        countRecordSkip++;
+      }
+      while(continueResult && result.next()) {
+        countRecord++;
+        GLCategoriesAtSystemLevelData objectGLCategoriesAtSystemLevelData = new GLCategoriesAtSystemLevelData();
+        objectGLCategoriesAtSystemLevelData.clientname = UtilSql.getValue(result, "clientname");
+        objectGLCategoriesAtSystemLevelData.categoryname = UtilSql.getValue(result, "categoryname");
+        objectGLCategoriesAtSystemLevelData.InitRecordNumber = Integer.toString(firstRegister);
+        vector.addElement(objectGLCategoriesAtSystemLevelData);
+        if (countRecord >= numberRegisters && numberRegisters != 0) {
+          continueResult = false;
+        }
+      }
+      result.close();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    GLCategoriesAtSystemLevelData objectGLCategoriesAtSystemLevelData[] = new GLCategoriesAtSystemLevelData[vector.size()];
+    vector.copyInto(objectGLCategoriesAtSystemLevelData);
+    return(objectGLCategoriesAtSystemLevelData);
+  }
+}
diff --git a/src-util/buildvalidation/src/org/openbravo/buildvalidation/GLCategoriesAtSystemLevel.java b/src-util/buildvalidation/src/org/openbravo/buildvalidation/GLCategoriesAtSystemLevel.java
new file mode 100644
--- /dev/null
+++ b/src-util/buildvalidation/src/org/openbravo/buildvalidation/GLCategoriesAtSystemLevel.java
@@ -0,0 +1,88 @@
+/*
+ *************************************************************************
+ * 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 SLU
+ * All portions are Copyright (C) 2011 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+package org.openbravo.buildvalidation;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import org.openbravo.database.ConnectionProvider;
+
+/**
+ * Related to issue https://issues.openbravo.com/view.php?id=15100 Checks that the user has not
+ * defined any gl_category at System level (in except of the one with gl_category_id='0', and name
+ * 'None'), and that, if the Initial_Setup dataset was applied, the name of the GL Categories added
+ * in that dataset where not modified. This validation is a pre-requisite for the module script
+ * named UpdateClientGLCategory. If this two checks are met, then the module script will be able to
+ * move the GL Categories from the client to which the module was applied, to System
+ */
+public class GLCategoriesAtSystemLevel extends BuildValidation {
+
+  @Override
+  public List<String> execute() {
+    ConnectionProvider cp = getConnectionProvider();
+    ArrayList<String> errors = new ArrayList<String>();
+    HashMap<String, String> map = new HashMap<String, String>();
+
+    map.put("102C08DF5D4341D5B7FDF758632503D2", "AR Invoice");
+    map.put("160C37CC0D36480E8B91B015FAC747DC", "Material Management");
+    map.put("3005499D637B41AF86222E4BDA29D415", "Movement");
+    map.put("37501231BC434F2DB0BF5F706CEBCC1F", "Production");
+    map.put("47D760C2B9C942EA86D47E6422C3BF9C", "Manual");
+    map.put("5106A21601924DA9996DC40C34954F8A", "Inventory");
+    map.put("82B88F71CF71401584FC1DFEFD9EB33D", "MatchInv");
+    map.put("844F34E0FA4045C6A3D00B6D4D53107B", "Settlement");
+    map.put("A431AFE1356141728139523053B672C4", "AP Invoice");
+    map.put("AAB8DB8C913E4AA0A651A5C0DC061C1A", "Bank Statement");
+    map.put("C79381E3F81140DBAAD73E6B0CD74901", "AP Payment");
+    map.put("D6A6F219061F4C34B87E1CC4DD6797F3", "Cash");
+    map.put("E8752D97421B434F8355331B680DC652", "AR Receipt");
+    map.put("FA9102F37B904275A3CCD9935D69ED51", "MatchPO");
+    map.put("FC670B83E59C4E7CBD6B999D3F28B251", "Standard");
+ 
+    try {
+      for (String id : map.keySet())
+        if (GLCategoriesAtSystemLevelData.existsSystemGLCategoryWithSameName(cp, id, map.get(id)))
+          errors
+              .add("You can not apply this MP because your instance fails in a pre-validation: There exists GL Category elements defined at a system level. <br>"
+                  + "This update will add some G/L Categories at a system level. "
+                  + "There exists one G/L Category already created at System level that uses the same name of one of the included in this MP: "
+                  + map.get(id)
+                  + ". Please rename it, so there is no collision with the ones provided in this core version.");
+        else {
+          GLCategoriesAtSystemLevelData[] data = GLCategoriesAtSystemLevelData
+              .existsRenamedGLCategories(cp, id, map.get(id));
+
+          for (GLCategoriesAtSystemLevelData element : data)
+            errors
+                .add("You can not apply this MP because your instance fails in a pre-validation: A GL Category has been renamed. <br>"
+                    + "The Initial Setup dataset was applied to the client named "
+                    + element.clientname
+                    + ". After that, the GL Category included in the dataset and named "
+                    + map.get(id)
+                    + " has been renamed to "
+                    + element.categoryname
+                    + ". Please restore the original name, so there is no collision with the ones provided in this core version.");
+        }
+      return errors;
+    } catch (Exception e) {
+      return handleError(e);
+    }
+  }
+}
diff --git a/src-util/buildvalidation/src/org/openbravo/buildvalidation/GLCategoriesAtSystemLevel_data.xsql b/src-util/buildvalidation/src/org/openbravo/buildvalidation/GLCategoriesAtSystemLevel_data.xsql
new file mode 100644
--- /dev/null
+++ b/src-util/buildvalidation/src/org/openbravo/buildvalidation/GLCategoriesAtSystemLevel_data.xsql
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ *************************************************************************
+ * 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 SLU
+ * All portions are Copyright (C) 2011 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+-->
+
+<SqlClass name="GLCategoriesAtSystemLevelData" package="org.openbravo.buildvalidation">
+  <SqlMethod name="select" type="preparedStatement" return="boolean" default="true">
+    <Sql><![CDATA[
+      select '' as countGLCategories, '' as clientname, '' as categoryname from gl_category
+        ]]>
+    </Sql>
+  </SqlMethod>
+  <SqlMethod name="existsSystemGLCategoryWithSameName" type="preparedStatement" return="boolean" default="true">
+    <Sql><![CDATA[
+      select count(*) as countGLCategories
+      from gl_category
+      where ad_client_id='0'
+        and gl_category_id <> ?
+        and name = ?
+        ]]>
+    </Sql>
+    <Parameter name="id"/>
+    <Parameter name="name"/>
+  </SqlMethod>
+</SqlClass>
\ No newline at end of file
diff --git a/src-util/modulescript/build/classes/org/openbravo/modulescript/UpdateClientGLCategory$glCategory.class b/src-util/modulescript/build/classes/org/openbravo/modulescript/UpdateClientGLCategory$glCategory.class
new file mode 100644
index 0000000000000000000000000000000000000000..3e6e443077b48d4bd16484ff6d98b372f46218f3
GIT binary patch
literal 895
zc$}qD%Wl&^6g}fOapStwE#;9GXrL)--G_PYsJaOPAw{rg>3-r2?o`e=8atJ`>5~6p
zVIi^L1NbP!y;e{cuxYX7b00Hv?>X1=^Vjzu0AAo}8y?nt%;5oh4;daYtTS{yJn^t0
z;OLRS^59IK%Q%xJjgLyJP5N5EHFB&3f<%@o&F#hU#e~APF5alma+;L_t@2bCy=MY1
z2f0n-e4@<I%JV!P=c8$+ip1(k8Go9Ls6s!}%9QU0{aH0?&^pjYmxltETQ@lWH|3jU
zwogcEKOd2{#ep{J!*o1U_E-)x#e>NcnVm?hIi4k5mM!3?*&i}ArT4}t+s|ZCC|Wzb
zzM$S!Ihu`sluvD<-fC{R_U{w>tR=uLECvYC3($riV4fjhSb*<gQ{do#xCn$-Bl|c!
zQwja}#uiWQ`L*lfF<remx}Ht?h%NY;pV?q$7ubd&>!L`|8)AuYnW8Un&?4K7b}ESI
z8=PpjLL=I%;6@#{LNn?#E404S9tXDxSL^-T)GeZlJCxf+2YXn@K2~VuRn4V~JGftW
j@7BDW+GA#o+GB2R?J>J1t#|4UtGGwjCw3lby9@CfbCBJ}

diff --git a/src-util/modulescript/build/classes/org/openbravo/modulescript/UpdateClientGLCategory.class b/src-util/modulescript/build/classes/org/openbravo/modulescript/UpdateClientGLCategory.class
new file mode 100644
index 0000000000000000000000000000000000000000..0f6c842cba3f9c837912bec242ddee3ad9be82fb
GIT binary patch
literal 4520
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

diff --git a/src-util/modulescript/build/classes/org/openbravo/modulescript/UpdateClientGLCategoryData.class b/src-util/modulescript/build/classes/org/openbravo/modulescript/UpdateClientGLCategoryData.class
new file mode 100644
index 0000000000000000000000000000000000000000..b113e2f85cfa1a021e5877f4ab4adddab4832e84
GIT binary patch
literal 9204
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
ImAKvV|3m@si2wiq

diff --git a/src-util/modulescript/build/javasqlc/src/org/openbravo/modulescript/UpdateClientGLCategoryData.java b/src-util/modulescript/build/javasqlc/src/org/openbravo/modulescript/UpdateClientGLCategoryData.java
new file mode 100644
--- /dev/null
+++ b/src-util/modulescript/build/javasqlc/src/org/openbravo/modulescript/UpdateClientGLCategoryData.java
@@ -0,0 +1,222 @@
+//Sqlc generated V1.O00-1
+package org.openbravo.modulescript;
+
+import java.sql.*;
+
+import org.apache.log4j.Logger;
+
+import javax.servlet.ServletException;
+
+import org.openbravo.data.FieldProvider;
+import org.openbravo.database.ConnectionProvider;
+import org.openbravo.data.UtilSql;
+import java.util.*;
+
+class UpdateClientGLCategoryData implements FieldProvider {
+static Logger log4j = Logger.getLogger(UpdateClientGLCategoryData.class);
+  private String InitRecordNumber="0";
+  public String clientname;
+  public String categoryname;
+  public String glCategoryId;
+
+  public String getInitRecordNumber() {
+    return InitRecordNumber;
+  }
+
+  public String getField(String fieldName) {
+    if (fieldName.equalsIgnoreCase("clientname"))
+      return clientname;
+    else if (fieldName.equalsIgnoreCase("categoryname"))
+      return categoryname;
+    else if (fieldName.equalsIgnoreCase("gl_category_id") || fieldName.equals("glCategoryId"))
+      return glCategoryId;
+   else {
+     log4j.debug("Field does not exist: " + fieldName);
+     return null;
+   }
+ }
+
+  public static UpdateClientGLCategoryData[] existsRenamedGLCategories(ConnectionProvider connectionProvider, String id, String name)    throws ServletException {
+    return existsRenamedGLCategories(connectionProvider, id, name, 0, 0);
+  }
+
+  public static UpdateClientGLCategoryData[] existsRenamedGLCategories(ConnectionProvider connectionProvider, String id, String name, int firstRegister, int numberRegisters)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "      select ad_client.name as clientname, gl_category.name as categoryname, '' as gl_category_id" +
+      "      from gl_category left join ad_client on gl_category.ad_client_id = ad_client.ad_client_id" +
+      "      where gl_category.gl_category_id = ?" +
+      "        and gl_category.name <> ?";
+
+    ResultSet result;
+    Vector<java.lang.Object> vector = new Vector<java.lang.Object>(0);
+    PreparedStatement st = null;
+
+    int iParameter = 0;
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, id);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, name);
+
+      result = st.executeQuery();
+      long countRecord = 0;
+      long countRecordSkip = 1;
+      boolean continueResult = true;
+      while(countRecordSkip < firstRegister && continueResult) {
+        continueResult = result.next();
+        countRecordSkip++;
+      }
+      while(continueResult && result.next()) {
+        countRecord++;
+        UpdateClientGLCategoryData objectUpdateClientGLCategoryData = new UpdateClientGLCategoryData();
+        objectUpdateClientGLCategoryData.clientname = UtilSql.getValue(result, "clientname");
+        objectUpdateClientGLCategoryData.categoryname = UtilSql.getValue(result, "categoryname");
+        objectUpdateClientGLCategoryData.glCategoryId = UtilSql.getValue(result, "gl_category_id");
+        objectUpdateClientGLCategoryData.InitRecordNumber = Integer.toString(firstRegister);
+        vector.addElement(objectUpdateClientGLCategoryData);
+        if (countRecord >= numberRegisters && numberRegisters != 0) {
+          continueResult = false;
+        }
+      }
+      result.close();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    UpdateClientGLCategoryData objectUpdateClientGLCategoryData[] = new UpdateClientGLCategoryData[vector.size()];
+    vector.copyInto(objectUpdateClientGLCategoryData);
+    return(objectUpdateClientGLCategoryData);
+  }
+
+  public static UpdateClientGLCategoryData[] selectExistingGLCategories(ConnectionProvider connectionProvider)    throws ServletException {
+    return selectExistingGLCategories(connectionProvider, 0, 0);
+  }
+
+  public static UpdateClientGLCategoryData[] selectExistingGLCategories(ConnectionProvider connectionProvider, int firstRegister, int numberRegisters)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "      select gl_category_id" +
+      "      from gl_category" +
+      "      where ad_client_id='0'";
+
+    ResultSet result;
+    Vector<java.lang.Object> vector = new Vector<java.lang.Object>(0);
+    PreparedStatement st = null;
+
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+
+      result = st.executeQuery();
+      long countRecord = 0;
+      long countRecordSkip = 1;
+      boolean continueResult = true;
+      while(countRecordSkip < firstRegister && continueResult) {
+        continueResult = result.next();
+        countRecordSkip++;
+      }
+      while(continueResult && result.next()) {
+        countRecord++;
+        UpdateClientGLCategoryData objectUpdateClientGLCategoryData = new UpdateClientGLCategoryData();
+        objectUpdateClientGLCategoryData.glCategoryId = UtilSql.getValue(result, "gl_category_id");
+        objectUpdateClientGLCategoryData.InitRecordNumber = Integer.toString(firstRegister);
+        vector.addElement(objectUpdateClientGLCategoryData);
+        if (countRecord >= numberRegisters && numberRegisters != 0) {
+          continueResult = false;
+        }
+      }
+      result.close();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    UpdateClientGLCategoryData objectUpdateClientGLCategoryData[] = new UpdateClientGLCategoryData[vector.size()];
+    vector.copyInto(objectUpdateClientGLCategoryData);
+    return(objectUpdateClientGLCategoryData);
+  }
+
+  public static int update(ConnectionProvider connectionProvider)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "        update gl_category" +
+      "        set ad_client_id='0'" +
+      "        where gl_category_id in ('102C08DF5D4341D5B7FDF758632503D2','160C37CC0D36480E8B91B015FAC747DC','3005499D637B41AF86222E4BDA29D415'," +
+      "                                 '37501231BC434F2DB0BF5F706CEBCC1F','47D760C2B9C942EA86D47E6422C3BF9C','5106A21601924DA9996DC40C34954F8A'," +
+      "                                 '82B88F71CF71401584FC1DFEFD9EB33D','844F34E0FA4045C6A3D00B6D4D53107B','A431AFE1356141728139523053B672C4'," +
+      "                                 'AAB8DB8C913E4AA0A651A5C0DC061C1A','C79381E3F81140DBAAD73E6B0CD74901','D6A6F219061F4C34B87E1CC4DD6797F3'," +
+      "                                 'E8752D97421B434F8355331B680DC652','FA9102F37B904275A3CCD9935D69ED51','FC670B83E59C4E7CBD6B999D3F28B251')";
+
+    int updateCount = 0;
+    PreparedStatement st = null;
+
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+
+      updateCount = st.executeUpdate();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    return(updateCount);
+  }
+
+  public static int insert(ConnectionProvider connectionProvider, String id, String name, String categoryType, String isDefault)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "        insert into gl_category(gl_category_id, ad_client_id, ad_org_id, isactive, created, createdby, updated, updatedby, name, description, categorytype, isdefault, docbasetype)" +
+      "        values (?, '0', '0', 'Y', now(), '100', now(), '100', ?, null, ?, ?, null)";
+
+    int updateCount = 0;
+    PreparedStatement st = null;
+
+    int iParameter = 0;
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, id);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, name);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, categoryType);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, isDefault);
+
+      updateCount = st.executeUpdate();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    return(updateCount);
+  }
+}
diff --git a/src-util/modulescript/src/org/openbravo/modulescript/UpdateClientGLCategory.java b/src-util/modulescript/src/org/openbravo/modulescript/UpdateClientGLCategory.java
new file mode 100644
--- /dev/null
+++ b/src-util/modulescript/src/org/openbravo/modulescript/UpdateClientGLCategory.java
@@ -0,0 +1,105 @@
+/*
+ *************************************************************************
+ * 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 SLU
+ * All portions are Copyright (C) 2011 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+package org.openbravo.modulescript;
+
+import org.apache.log4j.Logger;
+import org.openbravo.database.ConnectionProvider;
+import org.openbravo.modulescript.ModuleScript;
+
+/**
+ * Updates those GL Category elements inserted through the Initial Setup dataset to
+ * ad_client_id='0', while fixing the issue https://issues.openbravo.com/view.php?id=15100. In order
+ * to ensure that this module script is executed correctly, the build validation
+ * GLCategoriesAtSystemLevel must be met
+ */
+public class UpdateClientGLCategory extends ModuleScript {
+
+  private static final Logger log4j = Logger.getLogger(UpdateClientGLCategory.class);
+
+  public class glCategory {
+    String id;
+    String name;
+    String categoryType;
+    String isDefault;
+
+    public glCategory(String id, String name, String categoryType, String isDefault) {
+      this.id = id;
+      this.name = name;
+      this.categoryType = categoryType;
+      this.isDefault = isDefault;
+    }
+  }
+
+  private final glCategory[] glCategories = {
+      new glCategory("C79381E3F81140DBAAD73E6B0CD74901", "AP Payment", "D", "N"),
+      new glCategory("160C37CC0D36480E8B91B015FAC747DC", "Material Management", "D", "N"),
+      new glCategory("A431AFE1356141728139523053B672C4", "AP Invoice", "D", "N"),
+      new glCategory("4028E6113045578D0130455BF156000A", "Settlement 2", "D", "N"),
+      new glCategory("4028E6113045578D0130455BCFEA0007", "kk", "D", "N"),
+      new glCategory("102C08DF5D4341D5B7FDF758632503D2", "AR Invoice", "D", "N"),
+      new glCategory("E8752D97421B434F8355331B680DC652", "AR Receipt", "D", "N"),
+      new glCategory("37501231BC434F2DB0BF5F706CEBCC1F", "Production", "D", "N"),
+      new glCategory("D6A6F219061F4C34B87E1CC4DD6797F3", "Cash", "D", "N"),
+      new glCategory("FC670B83E59C4E7CBD6B999D3F28B251", "Standard", "M", "Y"),
+      new glCategory("FA9102F37B904275A3CCD9935D69ED51", "MatchPO", "D", "N"),
+      new glCategory("5106A21601924DA9996DC40C34954F8A", "Inventory", "D", "N"),
+      new glCategory("AAB8DB8C913E4AA0A651A5C0DC061C1A", "Bank Statement", "D", "N"),
+      new glCategory("82B88F71CF71401584FC1DFEFD9EB33D", "MatchInv", "D", "N"),
+      new glCategory("47D760C2B9C942EA86D47E6422C3BF9C", "Manual", "M", "N"),
+      new glCategory("3005499D637B41AF86222E4BDA29D415", "Movement", "D", "N"),
+      new glCategory("844F34E0FA4045C6A3D00B6D4D53107B", "Settlement", "D", "N") };
+
+  @Override
+  public void execute() {
+    try {
+      ConnectionProvider cp = getConnectionProvider();
+      // All GL Categories are moved to System level
+      Integer numRowsUpdated = 0;
+      numRowsUpdated = UpdateClientGLCategoryData.update(cp);
+      if (numRowsUpdated != 0)
+        log4j.debug("Updated " + numRowsUpdated
+            + " GL Category elements due to the UpdateClientGLCategory module script execution.");
+      else
+        log4j.debug("No rows updated due to the UpdateClientGLCategory module script execution.");
+
+      // All the GL Categories at System Level are retrieved
+      UpdateClientGLCategoryData[] dataInDb = UpdateClientGLCategoryData
+          .selectExistingGLCategories(cp);
+      for (int indGLCats = 0; indGLCats < glCategories.length; indGLCats++) {
+        boolean present = false;
+        for (int indInDb = 0; indInDb < dataInDb.length; indInDb++) {
+          if (dataInDb[indInDb].glCategoryId.equals(glCategories[indGLCats].id))
+            present = true;
+        }
+        if (!present) {
+          log4j.debug("G/L Category " + glCategories[indGLCats].name + " will be inserted.");
+          int rowsInserted = UpdateClientGLCategoryData.insert(cp, glCategories[indGLCats].id,
+              glCategories[indGLCats].name, glCategories[indGLCats].categoryType,
+              glCategories[indGLCats].isDefault);
+          if (rowsInserted == 1)
+            log4j.debug("Inserted Correctly");
+          else
+            log4j.error("Couldn't insert correctly G/L Category" + glCategories[indGLCats].name);
+        }
+      }
+    } catch (Exception e) {
+      handleError(e);
+    }
+  }
+}
\ No newline at end of file
diff --git a/src-util/modulescript/src/org/openbravo/modulescript/UpdateClientGLCategory_data.xsql b/src-util/modulescript/src/org/openbravo/modulescript/UpdateClientGLCategory_data.xsql
new file mode 100644
--- /dev/null
+++ b/src-util/modulescript/src/org/openbravo/modulescript/UpdateClientGLCategory_data.xsql
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ *************************************************************************
+ * 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 SLU
+ * All portions are Copyright (C) 2011 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+-->
+<SqlClass name="UpdateClientGLCategoryData" package="org.openbravo.modulescript">
+  <SqlMethod name="existsRenamedGLCategories" type="preparedStatement" return="multiple">
+    <Sql><![CDATA[
+      select ad_client.name as clientname, gl_category.name as categoryname, '' as gl_category_id
+      from gl_category left join ad_client on gl_category.ad_client_id = ad_client.ad_client_id
+      where gl_category.gl_category_id = ?
+        and gl_category.name <> ?
+        ]]>
+      </Sql>
+    <Parameter name="id"/>
+    <Parameter name="name"/>
+  </SqlMethod>
+  <SqlMethod name="selectExistingGLCategories" type="preparedStatement" return="multiple">
+    <Sql><![CDATA[
+      select gl_category_id
+      from gl_category
+      where ad_client_id='0'
+        ]]>
+      </Sql>
+  </SqlMethod>
+  <SqlMethod name="update" type="preparedStatement" return="rowCount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        update gl_category
+        set ad_client_id='0'
+        where gl_category_id in ('102C08DF5D4341D5B7FDF758632503D2','160C37CC0D36480E8B91B015FAC747DC','3005499D637B41AF86222E4BDA29D415',
+                                 '37501231BC434F2DB0BF5F706CEBCC1F','47D760C2B9C942EA86D47E6422C3BF9C','5106A21601924DA9996DC40C34954F8A',
+                                 '82B88F71CF71401584FC1DFEFD9EB33D','844F34E0FA4045C6A3D00B6D4D53107B','A431AFE1356141728139523053B672C4',
+                                 'AAB8DB8C913E4AA0A651A5C0DC061C1A','C79381E3F81140DBAAD73E6B0CD74901','D6A6F219061F4C34B87E1CC4DD6797F3',
+                                 'E8752D97421B434F8355331B680DC652','FA9102F37B904275A3CCD9935D69ED51','FC670B83E59C4E7CBD6B999D3F28B251')
+      ]]>
+    </Sql>
+  </SqlMethod>
+  <SqlMethod name="insert" type="preparedStatement" return="rowCount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        insert into gl_category(gl_category_id, ad_client_id, ad_org_id, isactive, created, createdby, updated, updatedby, name, description, categorytype, isdefault, docbasetype)
+        values (?, '0', '0', 'Y', now(), '100', now(), '100', ?, null, ?, ?, null)
+      ]]>
+    </Sql>
+    <Parameter name="id"/>
+    <Parameter name="name"/>
+    <Parameter name="categoryType"/>
+    <Parameter name="isDefault"/>
+  </SqlMethod>
+</SqlClass>
\ No newline at end of file

changeset:   12580:ddd020560847
tag:         tip
parent:      12425:be7a11869d41
user:        David Alsasua <david.alsasua@openbravo.com>
date:        Thu Jun 16 14:13:06 2011 +0200
summary:     Fixes issue 15054.

diff --git a/src-util/modulescript/build/classes/org/openbravo/modulescript/ApplyInitialSetupDataset.class b/src-util/modulescript/build/classes/org/openbravo/modulescript/ApplyInitialSetupDataset.class
new file mode 100644
index 0000000000000000000000000000000000000000..a6c286740d892c16c2ae163df34ece1c7f85b179
GIT binary patch
literal 11683
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

diff --git a/src-util/modulescript/build/classes/org/openbravo/modulescript/ApplyInitialSetupDatasetData.class b/src-util/modulescript/build/classes/org/openbravo/modulescript/ApplyInitialSetupDatasetData.class
new file mode 100644
index 0000000000000000000000000000000000000000..b0696219b48afd5e916ed9b0b533f16b9edf6bd5
GIT binary patch
literal 9169
zc$~#p4SZD9mH*$&$9wbg5+IV`AmTt3CLs{82<z}=NJ5PbM3R6a+Blhc34@b)VP+D+
z?sj)8l<fy@TeT}_yIs32ZdWOy1`q|ewcV}Tk8NwU^`q=sb=%$Uwzk`~tzFaqz3<Ir
zW->u6yT8pZx%b?A&pqedbI<wT^YYZ2kDdf@shDY?1E1FMR{_k!y*j!Kd<K6l2cOmP
zIUU_{d{B<>)6paQztOQt_Mg|WS@wS`oBK69V4y}yIwboq$mXzt2XVyU@<Tcv*71mr
zQ5{Eh9Mf@J$D=w<Xn4%P96Vl$lQ>n0C-8Tb_#(cf;Yqpe(+0kbuNe4y{Db8Bs$6?Y
zvi_rnuNhc~uWR^*j&JJtC#mmSQs1{Vd`HLA2Ac3)9nZ-ASp!S)JsscI@toZCtQ7XV
zY+lguqK+TvIIZKKb^MEtm!!%c>UdelE7G1<b^NQ2A4$nS*6?o{{$0SAv<H@M7YKIP
z>4B!`P&Bs9YEpAe9rnP0m0lq*wLO){c3Cky9p5lK*k`2$YC5(@N1{#1XlkITJDX0V
z2FT}4MF%YbBN}f>CahGpJuXl^Vx=<)I~5%o;v6R`<B9(MSlWta<)|XT#=kN_1*-)-
z;rh)K(_+UdW=cmQWjXqKqJ2qADz#(L<mPBPA;<2dH@hv75x890Zx30izI1fNZW^@X
z!$~U>ODBf1P0dukOCBN-O?F$^;i1-OHkz@rvZLMS4OrQUN1Pt6FLy|t%<B?Xl6KDv
zPh=>&C(ti9Y*5~*>dr=EH?5Bjx%T@rR?>=P1qQ+;M~Kt9KAPFoVy9AMp%<@C+arlM
zFQtC#Ih?m9HbJ1kg14cacigr!W(~<n`abb?EN^c=C)?-RecLJVOk9kym_3|wuTwx=
z#b7F!>Aop3#K5EzvWe8N)n#Rdlk~s1j+c=bNZD!LN^QY4=8sDCf@?FJwakuWQ}@P>
z!qp0ECoi}^k<L)nKq8Zsjuq`xpHe}Uo6N{-&!)R~BuS)Q{nN+AIwtX4l<6PgaqaPx
z8_p(@O`Fx6)R^JUS>rpePFq9Kv=wKNWvxNxAbBF^;_tfRoZB^&%e#3K%vo9BvrctO
zD^{=2@DmOHq2WJ?jv9VStRu{6_!)m0Mb=LGgE=CRV(;6DqKR4d`^}V3*Q`9E3uZAp
zIXswh2ELJKa#-eUOyL_jd5c|iS~^9}#MRL>*?7NvK!_@dRK`j(5c;JnJM3s&0^Z2~
z%PARxdMuC0fdMOJr4unp8<`<1mgsi|nmV|oDu;(?nAIY)hN0&i#X<G;DtZL2IJc81
zn^w{&2l|a}dpI4l)+MCqIcEyWMN*WBYj7=dYq5!|v5^sG;x+u-L>D#+n9+EzbK2fS
z+{7>NUnaV-(L|4IHpynQY&M{i*<5Pb+Tlb}A!40^`B2=pGNF{64XI#_giQPr|83%R
z^lJE(iC^P4CgMm4KwwMA{c%7&6k8+%r;&Z3NgUfznSfR}Hn_-rARFyGSs#jKLN49x
zyqk>zcZQ08vUab7D&cTWTTbd=A{CBj7rC!&ePhbLIb2^K>QCE)p;&L+j%At0p?EfQ
z^EN9ji6Zk>6<b>$T1fkIvZQJ91#fZ2v};C*UGwKl9{H}HpPN#O^D;v*fmqR&q}87d
zZMPGtaV7_&Lb1V+ohotPDmtxj9EzsmA!p9nC3)sAo-YucTnj_jRbiJ?VV9^-I_z>f
z^2g`PVx>cUyWC4>*;ERUGHBl*Ae#6s{)b>_;!TVZ8chbW5Lo_uqO>L|OyLn;P52m=
z!fy(VF)4IhYl?s{h(u-HGE-E_1gb6jl<_g*Fl43Eb~;3V?HIPwyCR{&XFtL;5T+@r
z@Ed{IQp(OIV#G+&$~JX7eStXt6)l~uZL3UCEvE3WSD0cddg%@^jjHl|MXEGs3t4N#
z6jPihrt=xi`MSHUqphWfT!G&9)?Bz%<yO~qb*|@Hb#8pkm2F*ZobZNLh1Ss8@sMcV
z&>CuP?QQ93Z`;r#MUlZ2wW3bogu~Ikp}VcChh0yn<m_r&*W23M)7;z9+1%RJ8VWNY
z(pG=3#J=97!g!V7#p&+En<5jLD3NhQVuG7NIihb@W5_|>c%G1Rg(24%a-mz%Iq1&m
zQ0Of)R-n_desgojrnc@dOV-}u;Y2)K-xylc7-HPA*}_Hv1L-A;7f%=|t~JhYy(wnM
zo4c#5QyllL?`+-F(WX37n8N?J?#Lmg!2AA}PMiZ%S8^V^T(ocyvlIsE>7esPFqiWM
zC6GX9;w#ytUY7CNyZ)>n(jpDcd&TE@V&Nz-bMl(72oZX=rR|%Yl5VQCV>p`3w5uAp
zg$58G%6;O<LfK(0VQ{NH#lR0fE5)o_cvc@t?xQQeud;UTTr(#5BxNBMxB7+$CebcG
zA;aymo6ayObNa=Tn>1MsZCX36*l^a`DB+2vLAbtrweC$>JG1ITmOhwS=H@r?IZ$=K
z{Epo0l#`KgIbmm6tWF!BYfoh@<(^s|zZ@^W%;RlI*9*Q_(w0|zewqQ#%P!-ni^6B}
ziuCZ5A&SnbPuiYzG-j3DckW8gaNj=l%Fx5~N1G&_uYY=w1){;p^;RYm9hfW@<z;6Q
zw^*{kwTJjbW^H*rTg%6Vp2<7C?Tlw@Z$GQLnwMPVM#d%uQL4Dk=EAhG(BhV4G?Sq#
zCi_1NLYRjR7Ln_rL6^lTfC^dOLY9_YZr|<pJ#N3r?Ki7Fz&}>TvJ@qCIrp<JMP<WL
zh=!VqN8ou-3B8W3!5)|bFQ#EDDbr!a^|(O^d=GkEF-`2{ny=wucn;?U_|;^vV6!j3
z`9?(D&EJDZDcZiE#ybk%e(03qKfItu<LCg)1vUC80?xF->B>Bl$x&5)RL#+p{AlXo
zBbasqHCvA2yqf8ws9nInQPhoMhL9F|l!celF5p6XWj3mD5j`BjC76Rnn2UGf9axEr
z(af2v==n~Bu?_X=G<A-}?r9{|NAI#~C9T6>J<VHHRYj?BSmczaTtbb~16qT}a}4K~
zI%!dXlQi^Wfc-Z9c{#IG2}(GEyo)(Eg&usiCb+>p-$EX(W~OW|kj*UFTqv8_vbjh$
zA?NhmF=vbCDCS0dBI0jYcpUGjK*S&PAIHUn8E;^@W-JeQmsQpUF4%L&J(yWrxgWJb
z?{QorAZLx}^1#8dm*w;=?(}{P)oGm9PGBCbnIAEOX3$&XJ%;cj@GDwVw4vxqMLRrI
zimq1l6h%)Bnim{HJ>xLw3!0;7sMBWcx#Mmav-ZR9Syp*)Y_C+iK%hYy-B^Kxcr2m?
z87qqp;z&d*xb?+6vvSQ6Hj?8~b^q@?fu&n=JeRpk%cxYcE_cU&;P~q(E<aTyGjbL(
zSGY?n3uIJ{n`=a>gVi)QSamAs8^x-}F^>oE$sMbM+F=I7n9zj$*X>$T)0ted-{y|*
z=hYt)qvALgvfw==#|#J=NRKjzWJG%yxtC!T)?hVvG~?Z9Ar`bU>)Xh;juHDV#_N^H
zpdEk6)ejR>K1NJAKt%Z*qx=XF<s_r|DI&@<M3d9p{VGx9=R}ZS5;=awFdRc4zacDI
z858`t71Pj9ORp1k*eWi^^|bZ|u^sOb`_M}Zqv8<xN6CMj{3po&1nDnfKztqB#M2CI
z8T|KRDs9+G+irmT5V{XHA<1O84xhy!sQ~BiMG7`5sndrc?0`m%T}bmR8uhJ3R?VGo
zSF2^3xXC1`VT{NGBXu*W3V5h{Cr|1@kGK`Pa0@-TM%;z>(l0)&6?fu~@ILryr9rFy
zn6~_ho1_lcpOQ;v{3lU4M&k?(?-z8-tr~V~*rVYCUN6<negiuz#)zTXgmrMVcZ?^?
zFJXM)&t6A2mtRMVh7XQWZFMP=`qA(qCB{F-6O~a>j3Xb$M_e5F8I7+Z2+gSpMtpAQ
z%6P1;S>wcQ@$7=HNF)wANL&*<2=9V&Y&BQNrukeXtSvX&$jyyKn;Xk+ZjnuEZiz?J
zL`3&23p50M4%X@8W*mU0XfUpWgWUlU)N2D%O|kG8+O8QN2EB3|)E&fB(5XPs4Ehy@
zF_--=K<RGApNtqmLjlyo5u*g49J3Xg7?UHEQG!rLF+v$72=$giSGY@s5LG#Dupu#A
zLR94`g-GIBaifS4fnFgsNJNtT7oBm1#vlq*OskkqL>eTe<zLrNVLsbI244y@nUT%R
z$?KV;w=xs=GY6kw_C3!WJIyS6iMjO(-jAPh^|#m~0@%yk{-C%79}<`0BVsl7i7RoN
z*ocpcYq4M4h<j+!0b${8X8tE>)yIU5kBi%JJ1x6IJc&ESkMIdvb5}(G`zxm59$I*y
zq7HXgTtIp@t&^y88>%V8!3%>Dx)quj+~1<m#NZBR)s)GSLlaW_)Qc~v+elR?>dzIL
zNa~}cyzo|Bs1U|S`+ukq#*fotE%A0E6Za*tMj?z&Kd!{biAe#8Ct?$(j}gTEOlFnJ
z<G(V~Z*S$_n5-Pitn<9Lvw!c|v5lM^+ZcUelv!5Y2j~OS97CiWi-IASX`_pEXOiT=
zUXOykRu}fnGw>II-&^P}!ofRmr-OqPukd<#wW4_f4z82UyK-3KS>_iJ&9h9;Ly5Lq
z7eTF7CnzjX7?B?~77rH|4_yS&j^j!eRsIG^xi}FB23(v7OpX(Q$#Ei3f)jyaoCr*g
z6Xk`jaF+^k!WcK$h*SnEB~BQpYW?>!ws$g%ZzV2-N$n#}$o?f~EQkf7UMvwyIo?NV
zejX=ASb@v;-;2+%20zH!`##p(pXaXoS<gH`+&ILV<O}@VILz1o2xXq2o|Dw{81~?C
z#=t3Rdx+WhFxy9{aTG7(sL*kYS{@bkI3bqcBsD)Kmf>-+g7j*lkIetwd<6Hn86Kbn
zC;tQ7@8o}gJDk-@86^2?q8XoX@}JaSIQdWNE+_v<?RWBDta9=nbHzohZbs;%OT;Xd
z^%}w=sIp#HRmAns#(1Q_#3&ZI+}PV*CO;}C+mKI=U(>q6;J+L9xWS*MW&9!(Mon<N
zd*||9t!bCdRnDca_pBBXuV<OBq0xzZ?`|JsxYn18ds&b(l2<oK!mY^pF1i)Dza)?w
z^C9P-JdXV(aqKUSV}D5;zm?1t?oweGYvbk`5k08OFxF08D5JQQ6>%q{^kPz57{#)G
zz#YFvKmG!5;7yLVka{g2#oPJD0Z(%DWz51?`9=8@za+oLUEd(@H~B63E$)AgvR|b1
z=NT0*u%i9}rF@%__#H;X)70`^#`!axd6tsDPx;SL*NfElJVWgT;lqoJ>eDK6`&pH4
zbYs)c8K(~RbH7su`vu%pUEXj$at$|fJ&cW=DspGzCn`2QwD-p<Hodg^RTY~~g?p8Z
z&CY^1qBJCnD^<OOZ<0vVSvlwa6ERnP`U1vzn0E~CehAYZRR1R!|3se3_EYM!`7eJ5
DmFx$C

diff --git a/src-util/modulescript/build/javasqlc/src/org/openbravo/modulescript/ApplyInitialSetupDatasetData.java b/src-util/modulescript/build/javasqlc/src/org/openbravo/modulescript/ApplyInitialSetupDatasetData.java
new file mode 100644
--- /dev/null
+++ b/src-util/modulescript/build/javasqlc/src/org/openbravo/modulescript/ApplyInitialSetupDatasetData.java
@@ -0,0 +1,225 @@
+//Sqlc generated V1.O00-1
+package org.openbravo.modulescript;
+
+import java.sql.*;
+
+import org.apache.log4j.Logger;
+
+import javax.servlet.ServletException;
+
+import org.openbravo.data.FieldProvider;
+import org.openbravo.database.ConnectionProvider;
+import org.openbravo.data.UtilSql;
+import java.util.*;
+
+class ApplyInitialSetupDatasetData implements FieldProvider {
+static Logger log4j = Logger.getLogger(ApplyInitialSetupDatasetData.class);
+  private String InitRecordNumber="0";
+  public String name;
+  public String adClientId;
+  public String versionapplied;
+  public String diffcreated;
+  public String id;
+
+  public String getInitRecordNumber() {
+    return InitRecordNumber;
+  }
+
+  public String getField(String fieldName) {
+    if (fieldName.equalsIgnoreCase("name"))
+      return name;
+    else if (fieldName.equalsIgnoreCase("ad_client_id") || fieldName.equals("adClientId"))
+      return adClientId;
+    else if (fieldName.equalsIgnoreCase("versionapplied"))
+      return versionapplied;
+    else if (fieldName.equalsIgnoreCase("diffcreated"))
+      return diffcreated;
+    else if (fieldName.equalsIgnoreCase("id"))
+      return id;
+   else {
+     log4j.debug("Field does not exist: " + fieldName);
+     return null;
+   }
+ }
+
+  public static ApplyInitialSetupDatasetData[] select(ConnectionProvider connectionProvider)    throws ServletException {
+    return select(connectionProvider, 0, 0);
+  }
+
+  public static ApplyInitialSetupDatasetData[] select(ConnectionProvider connectionProvider, int firstRegister, int numberRegisters)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "        select c.name, c.ad_client_id, coalesce(cm.version,om.version) as versionApplied," +
+      "               to_number((select coalesce(min(dt.created),now()) from c_doctype dt where dt.ad_client_id=c.ad_client_id) - c.created) as diffCreated," +
+      "               '' as id" +
+      "        from ad_client c" +
+      "             left join ad_clientmodule cm on c.ad_client_id=cm.ad_client_id and cm.ad_module_id='0'" +
+      "             left join ad_orgmodule om on c.ad_client_id=om.ad_client_id  and om.ad_module_id='0'" +
+      "        order by c.name";
+
+    ResultSet result;
+    Vector<java.lang.Object> vector = new Vector<java.lang.Object>(0);
+    PreparedStatement st = null;
+
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+
+      result = st.executeQuery();
+      long countRecord = 0;
+      long countRecordSkip = 1;
+      boolean continueResult = true;
+      while(countRecordSkip < firstRegister && continueResult) {
+        continueResult = result.next();
+        countRecordSkip++;
+      }
+      while(continueResult && result.next()) {
+        countRecord++;
+        ApplyInitialSetupDatasetData objectApplyInitialSetupDatasetData = new ApplyInitialSetupDatasetData();
+        objectApplyInitialSetupDatasetData.name = UtilSql.getValue(result, "name");
+        objectApplyInitialSetupDatasetData.adClientId = UtilSql.getValue(result, "ad_client_id");
+        objectApplyInitialSetupDatasetData.versionapplied = UtilSql.getValue(result, "versionapplied");
+        objectApplyInitialSetupDatasetData.diffcreated = UtilSql.getValue(result, "diffcreated");
+        objectApplyInitialSetupDatasetData.id = UtilSql.getValue(result, "id");
+        objectApplyInitialSetupDatasetData.InitRecordNumber = Integer.toString(firstRegister);
+        vector.addElement(objectApplyInitialSetupDatasetData);
+        if (countRecord >= numberRegisters && numberRegisters != 0) {
+          continueResult = false;
+        }
+      }
+      result.close();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    ApplyInitialSetupDatasetData objectApplyInitialSetupDatasetData[] = new ApplyInitialSetupDatasetData[vector.size()];
+    vector.copyInto(objectApplyInitialSetupDatasetData);
+    return(objectApplyInitialSetupDatasetData);
+  }
+
+  public static String existingId(ConnectionProvider connectionProvider, String tablename, String columnname, String value, String client)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "        SELECT ";
+    strSql = strSql + ((tablename==null || tablename.equals(""))?"":tablename);
+    strSql = strSql + 
+      "_ID as id" +
+      "        FROM ";
+    strSql = strSql + ((tablename==null || tablename.equals(""))?"":tablename);
+    strSql = strSql + 
+      "        WHERE ";
+    strSql = strSql + ((columnname==null || columnname.equals(""))?"":columnname);
+    strSql = strSql + 
+      " = ?" +
+      "          AND AD_CLIENT_ID = ?";
+
+    ResultSet result;
+    String strReturn = "";
+    PreparedStatement st = null;
+
+    int iParameter = 0;
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+      if (tablename != null && !(tablename.equals(""))) {
+        }
+      if (tablename != null && !(tablename.equals(""))) {
+        }
+      if (columnname != null && !(columnname.equals(""))) {
+        }
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, value);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, client);
+
+      result = st.executeQuery();
+      if(result.next()) {
+        strReturn = UtilSql.getValue(result, "id");
+      }
+      result.close();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    return(strReturn);
+  }
+
+  public static int insertRefDataLoaded(ConnectionProvider connectionProvider, String clientId, String genericId, String specificId, String tableId)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "      INSERT INTO AD_REF_DATA_LOADED (ad_ref_data_loaded_id, ad_client_id, ad_org_id, isactive, created, createdby, updated, updatedby, ad_module_id, generic_id, specific_id, ad_table_id)" +
+      "      VALUES(get_uuid(), ?, '0', 'Y', now(), '100', now(), '100', '0', ?, ?, ?)";
+
+    int updateCount = 0;
+    PreparedStatement st = null;
+
+    int iParameter = 0;
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, clientId);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, genericId);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, specificId);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, tableId);
+
+      updateCount = st.executeUpdate();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    return(updateCount);
+  }
+
+  public static int insertClientModule(ConnectionProvider connectionProvider, String clientId)    throws ServletException {
+    String strSql = "";
+    strSql = strSql + 
+      "      INSERT INTO AD_CLIENTMODULE (ad_clientmodule_id, ad_client_id, ad_org_id, isactive, created, createdby, updated, updatedby, ad_module_id, version)" +
+      "      VALUES(get_uuid(), ?, '0', 'Y', now(), '100', now(), '100', '0', (select version from ad_module where ad_module_id='0'))";
+
+    int updateCount = 0;
+    PreparedStatement st = null;
+
+    int iParameter = 0;
+    try {
+    st = connectionProvider.getPreparedStatement(strSql);
+      iParameter++; UtilSql.setValue(st, iParameter, 12, null, clientId);
+
+      updateCount = st.executeUpdate();
+    } catch(SQLException e){
+      log4j.error("SQL error in query: " + strSql + "Exception:"+ e);
+      throw new ServletException("@CODE=" + Integer.toString(e.getErrorCode()) + "@" + e.getMessage());
+    } catch(Exception ex){
+      log4j.error("Exception in query: " + strSql + "Exception:"+ ex);
+      throw new ServletException("@CODE=@" + ex.getMessage());
+    } finally {
+      try {
+        connectionProvider.releasePreparedStatement(st);
+      } catch(Exception ignore){
+        ignore.printStackTrace();
+      }
+    }
+    return(updateCount);
+  }
+}
diff --git a/src-util/modulescript/src/org/openbravo/modulescript/ApplyInitialSetupDataset.java b/src-util/modulescript/src/org/openbravo/modulescript/ApplyInitialSetupDataset.java
new file mode 100644
--- /dev/null
+++ b/src-util/modulescript/src/org/openbravo/modulescript/ApplyInitialSetupDataset.java
@@ -0,0 +1,260 @@
+/*
+ *************************************************************************
+ * 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 SLU
+ * All portions are Copyright (C) 2011 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+package org.openbravo.modulescript;
+
+import java.math.BigDecimal;
+import org.apache.log4j.Logger;
+import org.openbravo.database.ConnectionProvider;
+import org.openbravo.modulescript.ModuleScript;
+
+public class ApplyInitialSetupDataset extends ModuleScript {
+
+  private static final Logger log4j = Logger.getLogger(UpdateClientGLCategory.class);
+
+  public void execute() {
+    try {
+      ConnectionProvider cp = getConnectionProvider();
+
+      ApplyInitialSetupDatasetData data[] = ApplyInitialSetupDatasetData.select(cp);
+      for (int indClients = 0; indClients < data.length; indClients++) {
+        BigDecimal bdDiffCreated = BigDecimal.TEN;
+        if (data[indClients].diffcreated != null)
+          bdDiffCreated = new BigDecimal(data[indClients].diffcreated);
+        boolean boDocTypesCreatedWithClient = bdDiffCreated.compareTo(new BigDecimal("0.01")) <= 0;
+        boolean boModuleNotApplied = data[indClients].versionapplied == null
+            || "".equals(data[indClients].versionapplied);
+        if (boModuleNotApplied && boDocTypesCreatedWithClient) {
+          for (int indDBElements = 0; indDBElements < directElements.length; indDBElements++) {
+            String existingId = ApplyInitialSetupDatasetData.existingId(cp,
+                directElements[indDBElements].table, directElements[indDBElements].column,
+                directElements[indDBElements].value, data[indClients].adClientId);
+            if (existingId != null && !"".equals(existingId))
+              ApplyInitialSetupDatasetData.insertRefDataLoaded(cp, data[indClients].adClientId,
+                  directElements[indDBElements].id, existingId,
+                  directElements[indDBElements].tableId);
+          }
+          ApplyInitialSetupDatasetData.insertClientModule(cp, data[indClients].adClientId);
+        }
+      }
+    } catch (Exception e) {
+      handleError(e);
+    }
+  }
+
+  public class DBInsert {
+    public DBInsert(String table, String tableId, String id, String column, String value) {
+      this.table = table;
+      this.tableId = tableId;
+      this.id = id;
+      this.column = column;
+      this.value = value;
+    }
+
+    String table;
+    String tableId;
+    String id;
+    String column;
+    String value;
+  }
+
+  DBInsert[] directElements = {
+      new DBInsert("GL_Category", "218", "102C08DF5D4341D5B7FDF758632503D2", "Name", "AR Invoice"),
+      new DBInsert("GL_Category", "218", "160C37CC0D36480E8B91B015FAC747DC", "Name",
+          "Material Management"),
+      new DBInsert("GL_Category", "218", "3005499D637B41AF86222E4BDA29D415", "Name", "Movement"),
+      new DBInsert("GL_Category", "218", "37501231BC434F2DB0BF5F706CEBCC1F", "Name", "Production"),
+      new DBInsert("GL_Category", "218", "47D760C2B9C942EA86D47E6422C3BF9C", "Name", "Manual"),
+      new DBInsert("GL_Category", "218", "5106A21601924DA9996DC40C34954F8A", "Name", "Inventory"),
+      new DBInsert("GL_Category", "218", "745A2B441A2644DF934D1B1E462292E9", "Name", "None"),
+      new DBInsert("GL_Category", "218", "82B88F71CF71401584FC1DFEFD9EB33D", "Name", "MatchInv"),
+      new DBInsert("GL_Category", "218", "844F34E0FA4045C6A3D00B6D4D53107B", "Name", "Settlement"),
+      new DBInsert("GL_Category", "218", "A431AFE1356141728139523053B672C4", "Name", "AP Invoice"),
+      new DBInsert("GL_Category", "218", "AAB8DB8C913E4AA0A651A5C0DC061C1A", "Name",
+          "Bank Statement"),
+      new DBInsert("GL_Category", "218", "C79381E3F81140DBAAD73E6B0CD74901", "Name", "AP Payment"),
+      new DBInsert("GL_Category", "218", "D6A6F219061F4C34B87E1CC4DD6797F3", "Name", "Cash"),
+      new DBInsert("GL_Category", "218", "E8752D97421B434F8355331B680DC652", "Name", "AR Receipt"),
+      new DBInsert("GL_Category", "218", "FA9102F37B904275A3CCD9935D69ED51", "Name", "MatchPO"),
+      new DBInsert("GL_Category", "218", "FC670B83E59C4E7CBD6B999D3F28B251", "Name", "Standard"),
+      new DBInsert("AD_Sequence", "115", "01A4350CC9044517BA7B1B05EEF065FF", "Name",
+          "MM Shipment Indirect"),
+      new DBInsert("AD_Sequence", "115", "0FBF9530BC584A6E9415F7AD01A23201", "Name",
+          "Standard Order"),
+      new DBInsert("AD_Sequence", "115", "267B166C6F4B49E893CF6276EE396E7D", "Name", "Production"),
+      new DBInsert("AD_Sequence", "115", "2D47C580583242259DF1FFEA4D914A94", "Name", "MM Shipment"),
+      new DBInsert("AD_Sequence", "115", "31A0AE4B070A49EAA5D755D33D7B9C8C", "Name",
+          "Reversed Sales Invoice"),
+      new DBInsert("AD_Sequence", "115", "4D72691638A24A0194882A302FCF9494", "Name", "AP Payment"),
+      new DBInsert("AD_Sequence", "115", "6D3C7477332F47CD8A0F6A5C4805EBD4", "Name", "Prepay Order"),
+      new DBInsert("AD_Sequence", "115", "74C3CC2BCDDA45F5BBFE8DF603728749", "Name",
+          "Purchase Requisition"),
+      new DBInsert("AD_Sequence", "115", "7C2F74C43970423E890C8892C43673E9", "Name", "Settlement"),
+      new DBInsert("AD_Sequence", "115", "81EEB6FAFE5D4E6B9389CAAC6297495B", "Name",
+          "Physical Inventory"),
+      new DBInsert("AD_Sequence", "115", "81F0991C4D884F82AF34E6CD72C0BFEC", "Name", "Quotation"),
+      new DBInsert("AD_Sequence", "115", "8547DE01C56D4C67A28F37AA5E72046D", "Name", "Proposal"),
+      new DBInsert("AD_Sequence", "115", "8CA21B8285CC4C4E8DCAD896DB03213E", "Name", "Cash Journal"),
+      new DBInsert("AD_Sequence", "115", "949C664EE54A4AA5B23CE288E1677916", "Name",
+          "Bank Statement"),
+      new DBInsert("AD_Sequence", "115", "A55E308B07EF453B87ED12516E3C9F7D", "Name",
+          "Matched Invoices"),
+      new DBInsert("AD_Sequence", "115", "A6A631F13B004AB8AD39573E95EE992E", "Name",
+          "Return Material"),
+      new DBInsert("AD_Sequence", "115", "A7C5B67A2BB244A19F475160A5AFCE5E", "Name",
+          "Inventory Move"),
+      new DBInsert("AD_Sequence", "115", "AE79ADF07A5E4E6E9C5367505C1C3463", "Name",
+          "Purchase Order"),
+      new DBInsert("AD_Sequence", "115", "B277787F93854F888B32177DCF14C43D", "Name",
+          "Reversed Purchase Invoice"),
+      new DBInsert("AD_Sequence", "115", "B380E35582BD4D1A930146F1BA72C03F", "Name", "GL Journal"),
+      new DBInsert("AD_Sequence", "115", "B74E4F916A4B4A67BA572CAE835B4049", "Name",
+          "AR Credit Memo"),
+      new DBInsert("AD_Sequence", "115", "BCF68C60AFAE45358B7D78FCAB3EB783", "Name",
+          "Matched Purchase Orders"),
+      new DBInsert("AD_Sequence", "115", "C114BA11CB23468B86887B3619AA52CC", "Name", "Depreciation"),
+      new DBInsert("AD_Sequence", "115", "CF53CE0FBB6B4FBB89C4939E191AFFD4", "Name",
+          "Manual Settlement"),
+      new DBInsert("AD_Sequence", "115", "EC5B218F09F44618B98FA0D233E3DC70", "Name", "AR Invoice"),
+      new DBInsert("AD_Sequence", "115", "F3659AAEFC2741F788BB474159616023", "Name", "AR Receipt"),
+      new DBInsert("AD_Sequence", "115", "F4F629F131124F198601A47F5FEDF53A", "Name", "Credit Order"),
+      new DBInsert("AD_Sequence", "115", "F6907986413D46C4BE3E27174895CC48", "Name",
+          "Warehouse Order"),
+      new DBInsert("AD_Sequence", "115", "FE1DFB9999224BE7B1B84B9E5D4CDA0B", "Name",
+          "Debt Payment Management"),
+      new DBInsert("AD_Sequence", "115", "FFB42B38D6A34634B534AB499B13644C", "Name", "POS Order"),
+      new DBInsert("C_DocType", "217", "0A1D4A2DB7144D81A821E31A9B332ACB", "Name", "Quotation"),
+      new DBInsert("C_DocType", "217", "0CD50184705A42CCBECA4EC967646440", "Name", "MM Shipment"),
+      new DBInsert("C_DocType", "217", "15C8DCE82DA841968ABCD614FED68576", "Name", "Proposal"),
+      new DBInsert("C_DocType", "217", "15F495A6290040F194A9AA4622FE0C01", "Name", "Prepay Order"),
+      new DBInsert("C_DocType", "217", "2030AD7DD4284E2B936E261662EF735A", "Name", "MM Receipt"),
+      new DBInsert("C_DocType", "217", "2D7C15F0F44E4F289A729415EFD700C1", "Name",
+          "Return Material"),
+      new DBInsert("C_DocType", "217", "3DDDC41E36534A79B7CC1B725472882D", "Name", "Inventory Move"),
+      new DBInsert("C_DocType", "217", "40EE9B1CD3B345FABEFDA62B407B407F", "Name", "AR Invoice"),
+      new DBInsert("C_DocType", "217", "42B7DE94BC324C3F9CC0934375E90FFF", "Name", "AP CreditMemo"),
+      new DBInsert("C_DocType", "217", "51005B2C07EB41C5A2E7C25A4640ACD7", "Name", "GL Journal"),
+      new DBInsert("C_DocType", "217", "511A9371A0F74195AA3F6D66C722729D", "Name", "POS Order"),
+      new DBInsert("C_DocType", "217", "5C6E02993E9B4FCA81C07955EF676C62", "Name", "AP Invoice"),
+      new DBInsert("C_DocType", "217", "5EA6556D24034412B5F26F6BA7245318", "Name",
+          "Matched Invoices"),
+      new DBInsert("C_DocType", "217", "6543EB94DC664371BAF61B8E8AC121F3", "Name", "Bank Statement"),
+      new DBInsert("C_DocType", "217", "67C3266D11A04078B7A14AC21E91C711", "Name",
+          "Reversed Sales Invoice"),
+      new DBInsert("C_DocType", "217", "6B13D02AD3C44C4CB0CFBD1288E0CB10", "Name",
+          "Physical Inventory"),
+      new DBInsert("C_DocType", "217", "6F3BBCA488F6474A806C59FD1137CBF5", "Name",
+          "Purchase Requisition"),
+      new DBInsert("C_DocType", "217", "76E7C671FCE34556908E563F825C2937", "Name",
+          "Warehouse Order"),
+      new DBInsert("C_DocType", "217", "808F8818F724497D94282AC83493F394", "Name", "Purchase Order"),
+      new DBInsert("C_DocType", "217", "857F464FDEE34F6DB5AEC50981419FBF", "Name", "Settlement"),
+      new DBInsert("C_DocType", "217", "8F343D831EA6434D9720FECAF5FB957E", "Name",
+          "Debt Payment Management"),
+      new DBInsert("C_DocType", "217", "9883CB89E41E496D987D8838C3CE0DC7", "Name",
+          "Matched Purchase Orders"),
+      new DBInsert("C_DocType", "217", "A0C72093D5614867906A6E878F96FBBD", "Name", "Depreciation"),
+      new DBInsert("C_DocType", "217", "A58B8296E0ED42E386468D4527DE8F30", "Name", "Cash Journal"),
+      new DBInsert("C_DocType", "217", "AFFD4594FB734E9682D5769669A9D471", "Name",
+          "Reversed Purchase Invoice"),
+      new DBInsert("C_DocType", "217", "B476CFAE109047DEB5BC9AC80A03297A", "Name", "AR Credit Memo"),
+      new DBInsert("C_DocType", "217", "B968C737ED3E4C808E425A72CC445DFE", "Name",
+          "Manual Settlement"),
+      new DBInsert("C_DocType", "217", "CB6EEA256BBC41109911215C5A14D39B", "Name", "Standard Order"),
+      new DBInsert("C_DocType", "217", "D132517AE775435B8EB2832CC61FCAB1", "Name", "AR Receipt"),
+      new DBInsert("C_DocType", "217", "E7F4802D902A42A59143DCCBEDE4DE85", "Name", "Credit Order"),
+      new DBInsert("C_DocType", "217", "EC0B46C525A0417DA286823864620991", "Name", "Production"),
+      new DBInsert("C_DocType", "217", "ED1E059C9CF54062BA43B79F3EB89C77", "Name", "AP Payment"),
+      new DBInsert("C_DocType", "217", "F8CC92C7234644DEAD9F63174F45B2BF", "Name",
+          "MM Shipment Indirect"),
+      new DBInsert("AD_Preference", "195", "AAEF5567618F49FE8BA729E550614AA0", "Attribute",
+          "C_DocTypeTarget_ID"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "02376C41DA824413A9BE649443924C03",
+          "Name", "Purchase Order Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "11DD7B13EAC94215B6F8F735BBED4D55",
+          "Name", "Quotation Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "4F23CD7CD64D468EA4753C0C7B09FD53",
+          "Name", "Return Material Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "70AEA0C77DB743A4A89058BFE091FEEA",
+          "Name", "Standard order report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "8E2539C66CFB43F79613217E35CC5D14",
+          "Name", "AR Receipt Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "9FB97CCA66EA49F29A0EF5080E2AFF29",
+          "Name", "AR Credit Memo Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "A16BD46A069F4502BDDFD9A555AEAA48",
+          "Name", "AR Invoice Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "A76CE6794C2E467394C21675524DBA9C",
+          "Name", "Proposal Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "AF10A903167240F883C7EE7A3325981D",
+          "Name", "POS Order Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "B1DF02E45C4946C7BB1D45C065C49577",
+          "Name", "AP Credit Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "B94A012B25FB4C319804BED013BD584B",
+          "Name", "Prepay Order Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "BC7220FEA2F44F9C9FB6619FC58B6944",
+          "Name", "MM Receipt Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "C6A6AF1CA3C94B3899CAEC27EE427402",
+          "Name", "MM Shipment Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "C76E1DE89DA04BF6B6FAEDDA0216EE7A",
+          "Name", "Warehouse Order Memo Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "D9BB431F120746C8A84266CA42D02029",
+          "Name", "On Credit Order Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "E5901A1122F641089417A08A7317764C",
+          "Name", "AP Invoice Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "E87E9B580A024383B2E79BD768288899",
+          "Name", "MM Shipment Indirect Report template"),
+      new DBInsert("C_POC_DOCTYPE_TEMPLATE", "1000500001", "FA45DFAC61A542658CC02B64E476F4C0",
+          "Name", "AP Payment Report template") };
+  DBInsert[] indirectElements = {
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "0680791915544EDAA32727AD21542EE3", null,
+          "AR Receipt Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A238C7BE040007F010129BA", null,
+          "AR Invoice Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A298C7BE040007F010129BA", null,
+          "AR Credit Memo Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A2E8C7BE040007F010129BA", null,
+          "MM Shipment Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A318C7BE040007F010129BA", null,
+          "MM Shipment Indirect Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A348C7BE040007F010129BA", null,
+          "MM Receipt Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A378C7BE040007F010129BA", null,
+          "AP Invoice Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A3A8C7BE040007F010129BA", null,
+          "AP Credit Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A3F8C7BE040007F010129BA", null,
+          "Purchase Order Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A5A8C7BE040007F010129BA", null,
+          "Quotation Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A5D8C7BE040007F010129BA", null,
+          "Proposal Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A608C7BE040007F010129BA", null,
+          "Prepay Order Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A638C7BE040007F010129BA", null,
+          "Return Material Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A668C7BE040007F010129BA", null,
+          "Standard order report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A698C7BE040007F010129BA", null,
+          "On Credit Order Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A6C8C7BE040007F010129BA", null,
+          "Warehouse Order Memo Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "878ECF0D5A6F8C7BE040007F010129BA", null,
+          "POS Order Report template"),
+      new DBInsert("C_POC_EMAILDEFINITION", "1000500004", "E8CBFC5AD3784396BC2D14CD1A104316", null,
+          "AP Payment Report template") };
+}
\ No newline at end of file
diff --git a/src-util/modulescript/src/org/openbravo/modulescript/ApplyInitialSetupDataset_data.xsql b/src-util/modulescript/src/org/openbravo/modulescript/ApplyInitialSetupDataset_data.xsql
new file mode 100644
--- /dev/null
+++ b/src-util/modulescript/src/org/openbravo/modulescript/ApplyInitialSetupDataset_data.xsql
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ *************************************************************************
+ * 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 SLU
+ * All portions are Copyright (C) 2011 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+-->
+<SqlClass name="ApplyInitialSetupDatasetData" package="org.openbravo.modulescript">
+  <SqlMethod name="select" type="preparedStatement" return="multiple">
+    <Sql><![CDATA[
+        select c.name, c.ad_client_id, coalesce(cm.version,om.version) as versionApplied,
+               to_number((select coalesce(min(dt.created),now()) from c_doctype dt where dt.ad_client_id=c.ad_client_id) - c.created) as diffCreated,
+               '' as id
+        from ad_client c
+             left join ad_clientmodule cm on c.ad_client_id=cm.ad_client_id and cm.ad_module_id='0'
+             left join ad_orgmodule om on c.ad_client_id=om.ad_client_id  and om.ad_module_id='0'
+        order by c.name
+        ]]>
+      </Sql>
+  </SqlMethod>
+  <SqlMethod name="existingId" type="preparedStatement" return="String" default="">
+    <Sql><![CDATA[
+        SELECT C_DOCTYPE_ID as id
+        FROM C_DOCTYPE 
+        WHERE NAME = ?
+          AND AD_CLIENT_ID = ?
+        ]]>
+      </Sql>
+    <Parameter name="tablename" optional="true" type="replace" after="SELECT " text="C_DOCTYPE"/>
+    <Parameter name="tablename" optional="true" type="replace" after="FROM " text="C_DOCTYPE "/>
+    <Parameter name="columnname" optional="true" type="replace" after="WHERE " text="NAME"/>
+    <Parameter name="value"/>
+    <Parameter name="client"/>
+  </SqlMethod>
+  <SqlMethod name="insertRefDataLoaded" type="preparedStatement" return="rowCount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      INSERT INTO AD_REF_DATA_LOADED (ad_ref_data_loaded_id, ad_client_id, ad_org_id, isactive, created, createdby, updated, updatedby, ad_module_id, generic_id, specific_id, ad_table_id)
+      VALUES(get_uuid(), ?, '0', 'Y', now(), '100', now(), '100', '0', ?, ?, ?)
+    </Sql>
+    <Parameter name="clientId"/>
+    <Parameter name="genericId"/>
+    <Parameter name="specificId"/>
+    <Parameter name="tableId"/>
+  </SqlMethod>
+  <SqlMethod name="insertClientModule" type="preparedStatement" return="rowCount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      INSERT INTO AD_CLIENTMODULE (ad_clientmodule_id, ad_client_id, ad_org_id, isactive, created, createdby, updated, updatedby, ad_module_id, version)
+      VALUES(get_uuid(), ?, '0', 'Y', now(), '100', now(), '100', '0', (select version from ad_module where ad_module_id='0'))
+    </Sql>
+    <Parameter name="clientId"/>
+  </SqlMethod>
+</SqlClass>
\ No newline at end of file

