Fix #7123 - getting abra ready to test
[Pman.Xtuple] / UpdateDatabase.php
index 84bd1e1..91b91e5 100644 (file)
@@ -103,7 +103,7 @@ class Pman_Xtuple_UpdateDatabase extends Pman_Core_UpdateDatabase
     }
     
     
-    function get($k = '',$opts)
+    function get($k = '',$opts=array())
     {
         $k = strtolower($k);
         
@@ -121,30 +121,53 @@ class Pman_Xtuple_UpdateDatabase extends Pman_Core_UpdateDatabase
     {
          
             $dbtype = $dburl['scheme'];
-            $dirmethod = 'import' . $dburl['scheme'] . '.dir';
+            $dirmethod = 'import' . $dburl['scheme'] . 'dir';
         
             $m = 'Xtuple';
-            echo "Xtyple:Importing SQL from module $m\n";
+            echo "Xtyple:Importing SQL\n";
         
             
             // if init has been called
-            // look in pgsql.ini
+            // look in pgsql.ini -- This creates all the tables....
+            
             if (!empty($this->opts['init'])) {
+                // it should really use xtuple... but it's not very well organized...
+                //$this->{$dirmethod}($dburl, $this->rootDir. "/Pman/$m/{$dbtype}.init");
+                
+                // ?? use dbscripts/misc/postbooks_empty.backup ???
+                
                 $this->{$dirmethod}($dburl, $this->rootDir. "/Pman/$m/{$dbtype}.init");
                 
             }
+            /*
+            // let's see if this works.. -- not very flexible... - hardcoding schema...
+            $this->{$dirmethod}($dburl, $this->rootDir. "/Pman/Xtuple/xtuple-database/440_schema.sql");
             
+            foreach(array(
+                'public/types',
+                'public/tables',
+                'public/views',
+                'public/functions', 
+                'public/trigger_functions',
+                'public/indexes',
+                'api/functions',
+                'api/views',
+                
+                
+            ) as $dir) {
+                $this->{$dirmethod}($dburl, $this->rootDir. "/Pman/Xtuple/xtuple-database/" . $dir);   
+            }
+            */
+            // first try the standard from xtuple-database
             
             
-            $fd = $this->rootDir. "/Pman/$m/DataObjects";
-            
-            $this->{$dirmethod}($dburl, $fd);
-            
             // new -- sql directory..
             // new style will not support migrate ... they have to go into mysql-migrate.... directories..
             // new style will not support pg.sql etc.. naming - that's what the direcotries are for..
             
-            $this->{$dirmethod}($dburl, $this->rootDir. "/Pman/$m/sql");
+            
+            
+             
             $this->{$dirmethod}($dburl, $this->rootDir. "/Pman/$m/{$dbtype}");
             
             
@@ -153,14 +176,22 @@ class Pman_Xtuple_UpdateDatabase extends Pman_Core_UpdateDatabase
                 HTML_FlexyFramework::get()->generateDataobjectsCache(true);
                 
                 $this->{$dirmethod}($dburl, $this->rootDir. "/Pman/$m/{$dbtype}.initdata");
-                $this->{'fixSequences'. $dbtype}();
+                // fixSequences does nto appar to work on postgres anymore
+                //$this->{'fixSequences'. $dbtype}();
                 
             }
               
     }
     
     
-    function updateData($k='') {
+    function updateData($k='')
+    {
+        $ff = HTML_Flexyframework::get();
+        $dburl = parse_url($ff->DB_DataObject['database']);
+       
+        
+//        $this->importpgsqldir($dburl, $this->rootDir. "/Pman/Xtuple/xtuple-database/empty_data.sql");
+        
         //DB_DataObject::debugLevel(1);
         $tables = empty($k) ? array(
                 
@@ -174,6 +205,11 @@ class Pman_Xtuple_UpdateDatabase extends Pman_Core_UpdateDatabase
                 'taxzone',
                 'taxtype',
                 'expcat',
+                
+                'custinfo', // create a base customer based on company.
+                'location', // default warehouse.
+                'period', // adds years and months -1 to +10 from now.
+                
                 // accounts - fixme - we need a better 'base set'
                 // 'costcat' -- fixme - we need to init this..
             
@@ -182,9 +218,11 @@ class Pman_Xtuple_UpdateDatabase extends Pman_Core_UpdateDatabase
 //                'location', //?? just check hat one exists.
         ) : array($k);
         
-        
-        $core_opts = HTML_FlexyFramework::get()->page->opts;
-        if (!empty($core_opts['init'])) {
+         $core_opts = HTML_FlexyFramework::get()->page->opts;
+         
+         if (!empty($core_opts['base'])) {
+            DB_DataObject::DebugLevel(1);
+            DB_DataObject::factory('curr_symbol')->importFromArray($this, array($core_opts['base']));
             DB_DataObject::factory('curr_symbol')->setBase($this, $core_opts['base']);
         }
         
@@ -201,6 +239,10 @@ class Pman_Xtuple_UpdateDatabase extends Pman_Core_UpdateDatabase
         
         $this->updateMetricValue();
         
+        $this->addAccounts();
+         
+        
+        
     }
     
     function updateMetricValue()
@@ -242,4 +284,31 @@ class Pman_Xtuple_UpdateDatabase extends Pman_Core_UpdateDatabase
     }
     
     
+    
+     
+    
+     
+    function addAccounts()
+    {
+        $ac = DB_DataObject::factory('accnt');
+        if ($ac->count()) {
+            return;
+        }
+        
+        // this might want to be configurable -- so that we could use different 'base files' for the accounts..
+        require_once 'File/Convert.php';
+        $cp = $this->tempName('xls');
+        copy(dirname(__FILE__).'/Setup/accounts_sample.xls', $cp);
+        $fc = new File_Convert($cp, 'application/vnd.ms-excel');
+        //var_Dump($img->getStoreName());
+        $csv = $fc->convert('text/csv');
+        unlink($cp);
+        //var_dump($csv);
+        require_once 'Pman/Xtuple/Import/Accounts.php';
+        $ia = new Pman_Xtuple_Import_Accounts();
+        $ia->importCsv($csv);
+    }
+    
+   
+    
 }
\ No newline at end of file