$value) { if($value[data]) { $founddata=TRUE; break; } } if(!$founddata) return array(); } elseif(!$entries[data]) //if noone has ever saved any escalation data for this clientcompany, then we dont need to use it. return array(); $keys = propertyextension_getfromgrouptype($type,$clientcompanyid); return $keys; } function propertyextension_groupentryisactive($clientcompanyid, $propertyextensionid=0, $propertyextensionkey="", $clientcompanyclientid=0) { if(!$clientcompanyid || !is_numeric($clientcompanyid)) return FALSE; if($propertyextensionkey === 0) ; elseif(!$propertyextensionkey || $propertyextensionkey=="") return FALSE; if($propertyextensionkey=="ALL") $propertyextensionkey = ""; if (is_array($propertyextensionkey)) $addselect =", propertyextensionkey"; $sql = "select propertyextensiongroupentryid ".$addselect." from tblpropertyextensiongroup left join tblpropertyextensiongroupentry using(propertyextensiongroupid) left join tblpropertyextension using(propertyextensionid) where clientcompanyid= ".db_number($clientcompanyid); if(db_number($propertyextensionid)>0) $sql.= " and propertyextensionid= ".db_number($propertyextensionid); elseif($propertyextensionkey!="" && !is_array($propertyextensionkey)) $sql.= " and propertyextensionkey= ".db_tick($propertyextensionkey); elseif(is_array($propertyextensionkey) && !empty($propertyextensionkey)) $sql.= " and propertyextensionkey in ('".implode("','",$propertyextensionkey)."') "; $sql.= " and propertyextensiongroupactive is not null and propertyextensiongroupentryactive is not null"; //if($clientcompanyclientid) //{ // //check to see if anything is even saved for these fields // $entries = get_matrixentries("listingstrategy", clientcompanyclient,$clientcompanyclientid); // d(entries,$entries); //} if (!is_array($propertyextensionkey)) { $qry=db_firstval($sql); if($qry) return TRUE; return FALSE; } else if (is_array($propertyextensionkey)) { //d(sql,$sql); return db_query($sql,0,1,propertyextensionkey); } return false; } function propertyextension_groupentryactivelist($clientcompanyid, $clientcompanypropertyid=0) { if(!$clientcompanyid || !is_numeric($clientcompanyid)) return FALSE; if(!$clientcompanypropertyid || !is_numeric($clientcompanypropertyid)) return $retarr; $sql = "select propertyextensionkey, propertyextensionentryvalue, propertyextensionentryid from tblpropertyextensionentry where clientcompanypropertyid= ".db_number($clientcompanypropertyid); $qrykeys=db_query($sql,1,0,propertyextensionkey); //d(__LINE__." ",$qrykeys); foreach($qrykeys as $qrykey=>$qryvalue) $keylist.=",'".$qrykey."'"; if($keylist) { $keylist=trim($keylist,","); //d("keylist: ",$keylist); $sql = "select * from tblpropertyextensiongroup tpeg left join tblpropertyextensiongroupentry using(propertyextensiongroupid) left join tblpropertyextension using(propertyextensionid)"; //$sql.= " left join tblpropertycategory using(propertycategoryid)"; $sql.= " left join tblcustomfieldtype using(customfieldtypeid) where tpeg.clientcompanyid= ".db_number($clientcompanyid); $sql.= " and propertyextensiongroupentryid is not null and propertyextensiongroupentryactive is not null and propertyextensionkey in (".$keylist.") order by propertyextensiongroupshortname, propertyextensionkey"; //d(__LINE__." ",$sql); $qry=db_query($sql); //d(__LINE__." ",$qry); } if(count($qry)) { foreach($qry as $qrykey=>$qryvalue) { //d("qryvalue[propertyextensionentrykey]: ",$qryvalue[propertyextensionkey]); //d("qrykeys[qryvalue[propertyextensionentrykey]][propertyextensionentryvalue]: ",$qrykeys[$qryvalue[propertyextensionkey]][propertyextensionentryvalue]); $qryvalue[propertyextensionentryvalue]=$qrykeys[$qryvalue[propertyextensionkey]][propertyextensionentryvalue]; $qryvalue[propertyextensionentryid]=$qrykeys[$qryvalue[propertyextensionkey]][propertyextensionentryid]; $newqry[$qryvalue['propertyextensiongroupshortname']][]=$qryvalue; } return $newqry; } return FALSE; } function propertyextension_getactivegroupentrys($clientcompanyid=0, $clientcompanypropertyid=0, $propertyextensionkey="", $propertyextensiongroupid=0) { if(!$clientcompanyid || !is_numeric($clientcompanyid)) return FALSE; if(!$clientcompanypropertyid || !is_numeric($clientcompanypropertyid)) return FALSE; if(!$propertyextensionkey || $propertyextensionkey=="") return FALSE; if(!$propertyextensiongroupid || !is_numeric($propertyextensiongroupid)) $propertyextensiongroupid=0; //Get Group number from extension entries with the key. Then get all the Group extensions/entries info for those groups. $subsql = "select propertyextensiongroupid from tblpropertyextensiongroup left join tblpropertyextensiongroupentry using(propertyextensiongroupid) left join tblpropertyextension using(propertyextensionid) where clientcompanyid= ".db_number($clientcompanyid)." and propertyextensionkey=".db_tick($propertyextensionkey); if($propertyextensiongroupid) $subsql.= " and propertyextensiongroupid=".db_number($propertyextensiongroupid); $sql = "select * from tblpropertyextensiongroup tpeg left join tblpropertyextensiongroupentry using(propertyextensiongroupid) left join tblpropertyextension using(propertyextensionid)"; $sql.= " left join tblcustomfieldtype using(customfieldtypeid) where tpeg.clientcompanyid= ".db_number($clientcompanyid); $sql.= " and propertyextensiongroupentryid is not null and propertyextensiongroupentryactive is not null and propertyextensiongroupid in (".$subsql.") order by propertyextensiongroupshortname, propertyextensionkey"; d("sql: ",$sql); $qry=db_query($sql); d("qry: ",$qry); foreach($qry as $qrykey=>$qryvalue) $keylist.=",'".$qryvalue[propertyextensionkey]."'"; if($keylist) { $keylist=trim($keylist,","); //d("keylist: ",$keylist); $sql = "select propertyextensionkey, propertyextensionentryvalue, propertyextensionentryid from tblpropertyextensionentry where clientcompanypropertyid= ".db_number($clientcompanypropertyid)." and propertyextensionkey in (".$keylist.")"; $qrykeys=db_query($sql,1,0,propertyextensionkey); } if(count($qry)) { foreach($qry as $qrykey=>$qryvalue) { //d("qryvalue[propertyextensionentrykey]: ",$qryvalue[propertyextensionkey]); //d("qrykeys[qryvalue[propertyextensionentrykey]][propertyextensionentryvalue]: ",$qrykeys[$qryvalue[propertyextensionkey]][propertyextensionentryvalue]); $qryvalue[propertyextensionentryvalue]=$qrykeys[$qryvalue[propertyextensionkey]][propertyextensionentryvalue]; $qryvalue[propertyextensionentryid]=$qrykeys[$qryvalue[propertyextensionkey]][propertyextensionentryid]; $newqry[$qryvalue['propertyextensiongroupshortname']][]=$qryvalue; } d(newqry,$newqry); foreach($newqry as $newqrykey=>$newqryvalue) { //d(newqryvalue,$newqryvalue); for($i=0; $i$escalatevalue) { $groupentry=get_propertyextensiongroupentry($groupid, $propertyextensionsgroupentryid); //d(__LINE__." groupentry:",$groupentry); $compareotherattribute=FALSE; //d(typeattr2value,$groupentry[propertyextensiongroupentrytypeattr2value]); if($groupentry[propertyextensiongroupentrytypeattr2value] && ($groupentry[propertyextensiongroupentrytypeattr2value]!=-1)) { $comparevalue=getgroupcompare_clientpropertyextensionentry($clientcompanypropertyid,$groupentry[propertyextensiongroupentrytypeattr2value]); $compareotherattribute=TRUE; //d("Set Compare Attribute"); } //d(groupentry,$groupentry); $sql = "Insert into tblpropertyextensiongrouprequestentry ( propertyextensiongrouprequestid , propertyextensiongroupentryid , propertyextensiongrouprequestentryvalue , propertyextensiongrouprequestentryoldvalue"; if($compareotherattribute) { $sql .= " , propertyextensiongrouprequestcompareid , propertyextensiongrouprequestcomparevalue"; } $sql.= " ) Values ( ".db_number($nextdbid)." , ".db_number($propertyextensionsgroupentryid)." , ".db_tick($escalatevalue[value])." , ".db_tick($escalatevalue[oldvalue]); if($compareotherattribute) { $sql .= " , ".db_number($groupentry[propertyextensiongroupentrytypeattr2value])." , ".db_tick($comparevalue); } $sql.= " )"; d(__LINE__." requestentry: ",$sql); db_exec($sql); } $property = get_clientcompanyproperty($clientcompanypropertyid); $client = get_clientcompanyclient($property[clientcompanyclientid]); //d(client,$client); $escalationcontacts = $client[clientcompanyclientescalation][$escalationlevel]; if($escalationcontacts ) foreach($escalationcontacts as $contactid) $requestto[contact][]=$contactid; d(requestto,$requestto); queueapproval_request('propertyextensiongrouprequest',$nextdbid,'grouprequestaccept','',$escalationlevel,$requestto,$comment); return $nextdbid; } function get_pendinggrouprequest($clientcompanypropertyid, $propertyextensionkey) { if(!$clientcompanypropertyid || !is_numeric($clientcompanypropertyid)) ddie("Invalid Client Company Property ID."); if(!$propertyextensionkey || $propertyextensionkey=="") ddie("Invalid Property Attribute Key."); $sql = " select tqa.* , tpegr.* from tblqueueapproval tqa left join tblpropertyextensiongrouprequest tpegr using(propertyextensiongrouprequestid) left join tblpropertyextensiongroupentry using(propertyextensiongroupid) left join tblpropertyextension tpe using(propertyextensionid) where propertyextensionkey=".db_tick($propertyextensionkey)." and tpegr.clientcompanypropertyid= ".db_number($clientcompanypropertyid); $qry = db_query($sql); foreach($qry as $qrykey=>$qryvalue) { if(queueapproval_statusfromarray($qryvalue)=="Requested/Pending") return $qryvalue; } return FALSE; } function get_propertyextensionpickercustomcategories($clientcompanyid){ if (!$clientcompanyid) $clientcompanyid = clientcompanyid(); $sql = "select * from tblpropertytabcategory where propertycategoryid = 0 and propertytabid=0 and clientcompanyid = '".db_number($clientcompanyid)."' order by propertytabcategorydisplayname"; //d(availcustomcategoriessql, $sql); $availcustomcategories = db_query($sql); return $availcustomcategories; } function get_propertyextensionpickerlist($clientcompanyid=0, $changeorder=0) { // This funciton based on tabget_available_extensions in functions_tab.php but this function pulls custom categories and extensions. if (!$clientcompanyid) $clientcompanyid = clientcompanyid(); if ($clientcompanyid) { $sql = "select *,coalesce (a.propertyextensionid,b.propertyextensionid) as propertyextensionid from tblpropertyextension a left join tblclientcompanypropertyextension b on (a.propertyextensionid = b.propertyextensionid and clientcompanyid = '".db_number($clientcompanyid)."') where (propertyextensionclientuse = 1 or (propertyextensionclientuse ='2' and clientcompanyid = '".db_number($clientcompanyid)."')) and propertycategoryid > 0"; if($changeorder) $sql .= ' order by propertycategoryid, case when clientcompanypropertyextensionrank is null then 1000 else clientcompanypropertyextensionrank end, propertyextensionrank'; else $sql.=" order by propertycategoryid "; //d($sql); }else{ $sql = " select * from tblpropertyextension a join tblpropertycategory using(propertycategoryid) join tblcustomfieldtype using (customfieldtypeid) where propertyextensionclientuse < 2 and propertycategoryid > 0"; $sql.=" order by propertycategoryrank,propertyextensionrank"; } $extensions = db_query($sql); $sql = "select pc.* , a.* , e.propertyextensionlabel , e.propertyextensionid from tbltabcategorypropertyextension a left join tblpropertytabcategory pc using (propertytabcategoryid) left join tblpropertytab pt on (pc.propertytabid = pt.propertytabid) left join tblpropertyextension e using (propertyextensionid) where propertytabshortname = 'property'"; if($clientcompanyid) $sql.= " and a.clientcompanyid = ".db_number($clientcompanyid); $sql.= " and pc.propertycategoryid <>0 and a.clientcompanyid=pc.clientcompanyid order by propertytabcategoryrank,tabcategorypropertyextensionrank"; $tmptabextensions = db_query($sql); //d(tmptabextensions,$tmptabextensions); end($extensions); $i = key($extensions); reset ($extensions); $i++; //d(extensions,$extensions); foreach ($tmptabextensions as $t=>$text){ //echo $text[propertyextensionlabel]."
"; $extensions[$i]=$text; $i++; } unset ($temptabextensions); // cleanup //d(extensions,$extensions); $i=0; foreach ($extensions as $ekey=>$extension){ $includecategories[$extension[propertycategoryid]] ="'".$extension[propertycategoryid]."'"; } $includecategories = implode(",",$includecategories); $sql = "select * from tblpropertycategory where 0=0 "; if ($clientcompanyid) $sql .=" and propertycategoryclientinvisible='0' "; if ($includecategories) $sql .= " and propertycategoryid in (".$includecategories.")"; if($changeorder) $sql .= ' order by propertycategoryname'; else $sql .= ' order by propertycategoryrank'; $categories = db_query($sql); //d(categories,$categories); $customcategories=get_propertyextensionpickercustomcategories($clientcompanyid); //d(customcategories,$customcategories); $sql = " select * from tbltabcategorypropertyextension a left join tblpropertytabcategory pc using (propertytabcategoryid) left join tblpropertytab pt on (pc.propertytabid = pt.propertytabid) left join tblpropertyextension e using (propertyextensionid) where propertytabshortname = 'property' and a.clientcompanyid ='".db_number($clientcompanyid)."' order by propertytabcategoryrank,tabcategorypropertyextensionrank"; $customextensions = db_query($sql); //d(customextensions,$customextensions); if($outarray) { $key = end($outarray); $i = key($key); $i++; } else $i=0; $outarray[$i][id] = " "; $outarray[$i][value] = " -- Property Details Extensions --"; $outarray[$i][label] = 1; $i++; unset ($j); foreach ($categories as $cat=>$category) { $outarray[$i][id] = " "; $outarray[$i][value] = $category[propertycategorydisplayname]; $outarray[$i][label] = 1; $i++; $j=$i; foreach ($extensions as $ext=>$extension) { if ($extension[propertycategoryid] == $category[propertycategoryid]) { $outarray[$i][id] = $extension[propertyextensionid]; $outarray[$i][value] = $extension[propertyextensionlabel]; $i++; } } if ($i == $j) $i--; } $outarray[$i][id] = " "; $outarray[$i][value] = " -- Custom Categories --"; $outarray[$i][label] = 1; $i++; foreach ($customcategories as $cat=>$category) { $outarray[$i][id] = " "; $outarray[$i][value] = $category[propertytabcategorydisplayname]; $outarray[$i][label] = 1; //d("OurArrayCategory: ",$outarray[$i]); $i++; $j=$i; foreach ($customextensions as $ext=>$extension) { if ($extension[propertytabcategoryid] == $category[propertytabcategoryid]) { $outarray[$i][id] = $extension[propertyextensionid]; $outarray[$i][value] = $extension[propertyextensionlabel]; $i++; } } if ($i == $j) $i--; } return $outarray; } function get_propertyextensiongroup_matrixtype($groupid) { if(!$groupid || !is_numeric($groupid)) ddie("Invalid Group ID"); $sql = "select propertyextensiongrouptypeshortname from tblpropertyextensiongroup join tblpropertyextensiongrouptype using(propertyextensiongrouptypeid) where propertyextensiongroupid = ".db_number($groupid); $grouptypeshortname=db_firstval($sql); if($grouptypeshortname) { $checkdef="propertyextensiongroup:".$grouptypeshortname; $sql = "select matrixtypeshortname from tblmatrixtype where matrixtyperowdef = ".db_tick($checkdef)." or matrixtypecolumndef = ".db_tick($checkdef); $matrixtypeshortname=db_firstval($sql); if($matrixtypeshortname) return $matrixtypeshortname; } return ""; } function get_propertyextensionkey_byid($propertyextensionid) { global $get_propertyextensionkey_byid__cache; if(!isset($get_propertyextensionkey_byid__cache[$propertyextensionid])) { $get_propertyextensionkey_byid__cache[$propertyextensionid] = db_firstval("select propertyextensionkey from tblpropertyextension where propertyextensionid=".db_number($propertyextensionid)); } return $get_propertyextensionkey_byid__cache[$propertyextensionid]; } function get_clientcompanypropertyid_byextenidmatch($propertyextensionid,$val) { global $get_clientcompanypropertyid_byextenidmatch_cache; if(!isset($get_clientcompanypropertyid_byextenidmatch_cache[$propertyextensionid])) { $propkey = db_firstval("select propertyextensionkey from tblpropertyextension where propertyextensionid = $propertyextensionid"); $sql = "select propertyextensionentryvalue as val , clientcompanypropertyid as id from tblpropertyextensionentry join tblclientcompanyproperty using(clientcompanypropertyid) where clientcompanyid = ".clientcompanyid(); $qry = db_query($sql,1,0,val); $get_clientcompanypropertyid_byextenidmatch_cache[$propertyextensionid] = $qry ; } return $get_clientcompanypropertyid_byextenidmatch_cache[$propertyextensionid][$val][id]; }