X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=DataObjects%2FEvents.php;h=f803fa67e1e212fd46c8721cccf83bcbe8fe2224;hb=4cb93dc15a755a4602cedabe6c1210770d828cf2;hp=af10242ce93451726af80571ec75c532e17b2f0e;hpb=d899082513db09dd5a064f1d72b1a90cfce58a4f;p=Pman.Core diff --git a/DataObjects/Events.php b/DataObjects/Events.php index af10242c..f803fa67 100644 --- a/DataObjects/Events.php +++ b/DataObjects/Events.php @@ -41,16 +41,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(); @@ -92,6 +90,15 @@ 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['dup_check'])){ + $et = DB_DataObject::factory($tn); + $this->_join .= "LEFT JOIN {$et->tableName()} AS evet ON (evet.evet_id=Events.id)"; + $this->selectAdd("(select count(*)+1 from Events where Events.dup_id = evet.evet_id) as cnt "); + $this->selectAs($et,'evet_%s','evet'); + $this->having('Events.dup_id = 0 '); + + } /* if (!empty($q['query']['grouped']) && $q['query']['grouped'] == 'gr') { // grouped.. @@ -120,7 +127,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'])) {