DataObjects/Core_watch.php
[Pman.Core] / DataObjects / Companies.php
index 0b5d8ab..9881a89 100644 (file)
@@ -33,14 +33,14 @@ class Pman_Core_DataObjects_Companies extends DB_DataObject
     public $dispatch_port;                   // string(255)  not_null
     public $province;                        // string(255)  not_null
     public $country;                         // string(4)  not_null
-
+    public $is_system;                       // int(2)
     
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
     
     function applyFilters($q, $au)
     {
-        
+        $tn = $this->tableName();
         //DB_DataObject::debugLevel(1);
         $x = DB_DataObject::factory('Companies');
         $x->comptype= 'OWNER';
@@ -86,8 +86,22 @@ class Pman_Core_DataObjects_Companies extends DB_DataObject
             
             
         }
+        // ADD comptype_display name.. = for combos..
+        $this->selectAdd("
+            (SELECT display_name
+                FROM
+                    core_enum
+                WHERE
+                    etype='comptype'
+                    AND
+                    name={$tn}.comptype
+                LIMIT 1
+                ) as comptype_display_name
+        ");
+        
          
     }
+    
     function toEventString() {
         return $this->name;
     }
@@ -217,10 +231,23 @@ class Pman_Core_DataObjects_Companies extends DB_DataObject
         
     }
     
-    function beforeDelete()
+    function beforeUpdate($old, $q,$roo)
+    {
+        if(!empty($this->is_system) && 
+            ($old->code != $this->code || $old->name != $this->name)
+        ){
+            $roo->jerr('This company is not allow to editing Ref. or Company Name...');
+        }
+    }
+    
+    function beforeDelete($req, $roo)
     {
         // should check for members....
-        
+        if(!empty($this->is_system) && 
+            ($old->code != $this->code || $old->name != $this->name)
+        ){
+            $roo->jerr('This company is not allow to delete');
+        }
         $img = DB_DataObject::factory('Images');
         $img->ontable = 'Companies';
         $img->onid = $this->id;
@@ -293,11 +320,10 @@ class Pman_Core_DataObjects_Companies extends DB_DataObject
         $ret = $this->toArray();
        // DB_DataObject::debugLevel(1);
         // get the comptype display
-        $e = DB_DataObject::Factory('core_enum');
-        $e->etype = 'COMPTYPE';
-        $e->name = $this->comptype;
+        $e = DB_DataObject::Factory('core_enum')->lookupObject('COMPTYPE', $this->comptype);
+        
         $ret['comptype_display'] = $ret['comptype'];
-        if ($e->find(true) && !empty($e->name_display)) {
+        if ($e   && !empty($e->name_display)) {
             $ret['comptype_display'] = $e->name_display;
         }
         
@@ -305,5 +331,80 @@ class Pman_Core_DataObjects_Companies extends DB_DataObject
         return $ret;
     }
     
+    /**
+     * # 2028 
+     * create the suppliers...
+     * 
+     * @param object $roo
+     * @param array $data
+     * 
+     */
+    function initCompaniesArray($roo, $data)
+    {
+        $tn = $this->tableName();
+        
+        foreach($data as $d){
+            $com = DB_DataObject::factory($tn);
+            $com->setFrom($d);
+            if(!$com->find(true)){
+                $com->created_dt = Date('Y-m-d H:i:s');
+                $com->updated_dt = Date('Y-m-d H:i:s');
+                $com->is_system = 1;// new column.. block the user changing the code and name..
+                $com->insert();
+            }
+        }
+        
+        
+    }
+    
     
+    function initCompanies($roo, $opts)
+    {
+        $companies = DB_DataObject::factory('companies');
+        
+        $ctype = empty($opts['add-company-with-type']) ? 'OWNER' : $opts['add-company-with-type'];
+        
+        $enum = DB_DataObject::Factory('core_enum')->lookup('COMPTYPE', $ctype  );
+        
+        if (empty($enum)) {
+            $roo->jerr("invalid company type '$ctype'");
+        }
+        if ($ctype =='OWNER') {
+            $companies = DB_DataObject::factory('companies');
+            $companies->comptype_id = $enum;
+            if ($companies->count()) {
+                $roo->jerr("Owner  company already exists");
+            }
+        }
+        $companies = DB_DataObject::factory('companies');
+        
+        // check that 
+        $companies->setFrom(array(
+            'name' => $opts['add-company'],
+            'comptype' => $ctype,
+            'comptype_id' => $enum,
+        ));
+        if ($companies->find(true)) {
+            $roo->jerr("company already exists");
+        }
+        $companies->setFrom(array(
+            'background_color' => '',
+            'created_dt' => $this->sqlValue('NOW()'),
+            'updated_dt' => $this->sqlValue('NOW()')
+        ));
+        
+        
+        $companies->insert();
+        $companies->onInsert(array(), $roo);
+    }
+    function lookupOwner()
+    {
+        $enum = DB_DataObject::Factory('core_enum')->lookup('COMPTYPE', 'OWNER'  );
+        $companies = DB_DataObject::factory('companies');
+        $companies->comptype_id = $enum;
+        if ($companies->find(true)) {
+            return $companies;
+        }
+        return false;
+    }
 }