DataObjects/Events.php
[Pman.Core] / DataObjects / Events.php
index af10242..2e32b9f 100644 (file)
@@ -25,6 +25,7 @@ class Pman_Core_DataObjects_Events extends DB_DataObject
     public $person_id;                       // int(11)  
     public $remarks;                         // blob(65535)  blob
     public $person_table;                    // string(64)
+    public $dupe_id;                    // int(11)
 
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
@@ -41,16 +42,14 @@ class Pman_Core_DataObjects_Events extends DB_DataObject
         if(!empty($q['person_table'])){
             $jt = DB_DataObject::factory($q['person_table']);
 
-            $et = DB_DataObject::factory($tn);
-            //$this->selectAdd("(select count(*) from Events where Events.dup_id = evet.id) as cnt ");
-            //$this->selectAs($et,'%s','evet');
+            
             
             if(!array_key_exists("{$jt->tableName()}_id", $this->tableColumns())){ // coz we have triiger on mysql...
                 
                 $keys = $jt->keys();
             
-                $this->_join = "LEFT JOIN {$jt->tableName()} AS join_person_id_id ON (join_person_id_id.{$keys[0]}={$tn}.person_id)";
-                //$this->_join = "LEFT JOIN {$jt->tableName()} AS join_person_id_id ON (join_person_id_id.{$keys[0]}=Events.person_id)";
+                $this->_join = "LEFT JOIN {$jt->tableName()} AS join_person_id_id ON (join_person_id_id.{$keys[0]}=Events.person_id)";
+                
                 $this->selectAdd();
                 $this->selectAs();
 
@@ -75,12 +74,12 @@ class Pman_Core_DataObjects_Events extends DB_DataObject
             }
             
             $jt = DB_DataObject::factory($person);
-            $this->whereAdd("
-                    person_table  = '{$jt->tableName()}'
-                    OR
-                    person_table = ''
-                    OR person_table IS NULL"
-            ); // default to  our standard.. - unless otherwise requested..
+            //$this->whereAdd("
+            //        person_table  = '{$jt->tableName()}'
+            //        OR
+            //        person_table = ''
+            //        OR person_table IS NULL"
+            //); // default to  our standard.. - unless otherwise requested..
         }
         
         
@@ -92,6 +91,11 @@ class Pman_Core_DataObjects_Events extends DB_DataObject
             $dt = date('Y-m-d' , strtotime($q['query']['to']));
             $this->whereAdd(" {$tn}.event_when <=  '$dt' ");
         }
+        
+        if(!empty($q['_with_dupe_count'])){
+            $this->dupe_id = 0;                                   
+            $this->selectAdd("(select count(*)+1 from Events ev_cnt where ev_cnt.dupe_id = {$tn}.id) as dupe_count");
+        }
         /*
         if (!empty($q['query']['grouped']) && $q['query']['grouped'] == 'gr') {
             // grouped..
@@ -120,7 +124,7 @@ class Pman_Core_DataObjects_Events extends DB_DataObject
         
         if (isset($q['on_table']) && !strlen($q['on_table'])) {
             // empty ontable queries.. these are valid..
-            $this->whereAdd("{$tn}.on_table = ''");
+            $this->whereAdd("$tn.on_table = ''");
         }
       
         if (isset($q['query']['person_sum'])) {
@@ -213,6 +217,7 @@ class Pman_Core_DataObjects_Events extends DB_DataObject
             if (!$obj) {
                 $roo->jerr("ontable is invalid");
             }
+            /*
             if (!method_exists($obj,'relatedWhere')) {
                 $roo->jerr( $q['_related_on_table'] . " Does not have method relatedWhere :" .
                            implode(',', get_class_methods($obj)));
@@ -236,12 +241,17 @@ class Pman_Core_DataObjects_Events extends DB_DataObject
                     
                 }
                 $this->whereAdd(implode(' OR ' , $w));
+            }*/
+            if ($obj && method_exists($obj,'relatedEventsWhere')) {
+                $a = $obj->relatedEventsWhere($q,$roo);
+                if($a){
+                    $this->whereAdd($a);
+                }
             }
             
             
             
             
-            
         }
         // since roo does not support autojoin yet..
         if (!isset($q['_distinct'])) {
@@ -311,6 +321,7 @@ class Pman_Core_DataObjects_Events extends DB_DataObject
         } 
           
         $this->person_name = $au && !empty($au->name) ? $au->name : '';
+        $this->who = $au && !empty($au->name) ? $au->name : '';
         if (empty($au) || (isset($au->id) && empty($au->id))) {
             // not authenticated - and a standard id based object
             $this->person_id = 0;