'clientcompanypropertylistingagent_clientid'"; if(clientcompanyid()) { if(clientcompanyssp()) $removelistingagentclient=""; } // Get the columns from db $sql = "select myviewscolumnkey , myviewscolumntype , myviewscolumnsorder from tblmyviewscolumn where myviewsid = ".db_number($myviewsid)." $removelistingagentclient"; $sql .= " order by myviewscolumnsorder"; // d(myviewssql,$sql); $_SESSION['myviews']['displaycolumns'] = db_query($sql); // d('$_SESSION[myviews][displaycolumns](tbl): '.__line__,$_SESSION['myviews']['displaycolumns']); // Always load the default columns even if not in the view if (empty($_SESSION['myviews']['displaycolumns'])) { $_SESSION['myviews']['displaycolumns'] = myviews_get_defaultcolumns(); // d('$_SESSION[myviews][displaycolumns](tbl): '.__line__); } unset($_SESSION['myviews']['modified']); } /** * @name myviews_is_broker_side * @return integer * This function returns one if we are property.php as companyid() */ function myviews_is_broker_side(){ if (clientcompanyid()) return 0; elseif (staffid() && client_portal()) return 0; elseif (staffid() && !client_portal()) return 1; elseif (companyid() && client_portal()) return 0; elseif (companyid() && !client_portal()) return 1; } /** * @name myviews_get * @param integer $myviewsid * @return array $views * This function returns all available views and also creates copy of default view */ function myviews_get($myviewsid = '') { if (companyid()) $fixedmyviewsid = "7,8"; else if (clientcompanyid()) $fixedmyviewsid = 2; else if (client_portal()) $fixedmyviewsid = 3; $views = array(); if (is_admin() && $myviewsid<24) { // over can only manage 1 view at the time, and since they are hard coded no need to run smart sql. $views = db_first("select * from tblmyviews where myviewsid = " . db_number($myviewsid)); return $views; } // d('__myviews_display_columns__',$_SESSION['myviews']['displaycolumns']); if (companyid()) $mu_loginid = db_firstval("select loginid from tbllogin where companyid = " . companyid() . " and staffid =0"); $sql = "select * from tblmyviews where 0=0 "; if (clientcompanyid() || companyid() || accountid()) if ( $myviewid>24) { $sql .=" and (loginid = " . loginid() ; if(clientcompanyid() ) $sql.= " or myviewsclientcompanyid = ".clientcompanyid(); $sql.=")"; } if($myviewsid > 24 || $myviewsid && companyid()){ $sql .= " and myviewsid = " . db_number($myviewsid); } else if ((clientcompanyid() && !$myviewsid) || $myviewsid==2) $sql .=" and (myviewsid = 2 or myviewsid in (select myviewsid from tblmyviews where loginid = ".loginid()." or myviewsclientcompanyid =".db_number(clientcompanyid())."))"; // Hardcoded default else if (client_portal() && (companyid() && !$myviewsid || $myviewsid==3)) $sql .="\n and (myviewsid = 3 or myviewsid in (select myviewsid from tblmyviews where loginid = ".loginid().")) "; // Hardcoded default else if (companyid() && (!$myviewsid || in_array($myviewsid,explode(",",$fixedmyviewsid) ) ) ){ $sql .="\n and myviewsid in (select myviewsid from tblmyviews where loginid in ( "; if (has_access("managedefaultmyview")) $sql .= " (case when ( select loginid from tblmyviews where loginid = " .$mu_loginid . " and myviewsname ilike 'default' order by myviewsid desc limit 1 )is not null then " . $mu_loginid . " else 0 end ) ,"; $sql .= loginid() . ") ) "; // Find any that belong to this id } else if(!companyid() && client_portal() && $_SESSION[login][accountpackageid] == 2) { $sql .="\n and (myviewsid = 6 or myviewsid in (select myviewsid from tblmyviews where loginid = ".loginid().")) "; // Hardcoded default } else if(!companyid() && client_portal() && $_SESSION[login][accountpackageid] == 1) { $sql .="\n and (myviewsid = 5 or myviewsid in (select myviewsid from tblmyviews where loginid = ".loginid().")) "; // Hardcoded default } if ( $myviewsid ==3) $sql .= " and myviewsbrokerside = 0"; else if (!client_portal() && !clientcompanyid()) $sql .= " and myviewsbrokerside = 1 and myviewsid <>5 and myviewsid <>6 --and myviewsclientcompanyid = 0"; else if (clientcompanyid()) $sql .= " --and myviewsbrokerside = 0 and myviewsid not in (case when ( select myviewsid from tblmyviews where myviewsclientcompanyid =0" . clientcompanyid() . " and myviewsname ilike 'DEFAULT VIEW' order by myviewsid desc limit 1) is not null then '". ($myviewsid <24 ? 0 : $fixedmyviewsid) . "' else 0 end )"; if (companyid() && !client_portal()) { if (!riooffice()) $sql .= " and myviewsid not in (2,3,8) and myviewsclientcompanyid=0"; // since we do have 3 default views we make sure that we get right one. else $sql .= " and myviewsid not in (2,3,7) and myviewsclientcompanyid=0"; } $sql .= " and trim(myviewsname)<>'' order by myviewsname"; //d(sql,$sql); $views = db_query($sql); if (clientcompanyid()) { //$views = db_query($sql); //d('__myviews_display_columns__',$_SESSION['myviews']['displaycolumns']); // d(views,$views); //loop through all of the views and find default view for this client company. // Instead of looping we are going to do quick SQL check. if( db_firstval ( "select myviewsid from tblmyviews where myviewsclientcompanyid =0" . clientcompanyid() . " and myviewsname = 'DEFAULT VIEW'") ) // || $view[myviewsid]<24) $skip_create_default = 1; if(!$skip_create_default) { $data['myviewsname'] = 'DEFAULT VIEW'; if (!$myviewsid) myviews_force_activate($myviewsid); $current_available_columns = array(); // Get list of all available columns for this login id $current_available_columns = array_keys(myviews_get_availablecolumns()); if (clientcompanyid()) { // Here we going to copy over columns to become new client company default. // Get all over set columns for client company $over_columns = db_query("select myviewscolumnkey, myviewscolumntype, myviewscolumnsorder from tblmyviewscolumn where myviewsid = 2" ); // Now verify every column against the list of available columns and add if needed clientcompany prefix to property table columns. foreach($over_columns as $selected_k =>$displaycolumn) { if (!in_array($displaycolumn['myviewscolumnkey'] ,$current_available_columns)) { if ($displaycolumn['myviewscolumntype']=='propertyfield' && strpos($displaycolumn['myviewscolumnkey'] ,"clientcompany") ===false ) $over_columns[$selected_k]['myviewscolumnkey'] = "clientcompany" . $over_columns[$selected_k]['myviewscolumnkey']; else { // if Client company does not have access to specific column remove it. d('___removing_column_because_no_longer_available', $displaycolumn); unset($over_columns[$selected_k]); } } } } else if (has_access("managedefaultmyview") && !client_portal()) // Company or Rio Office Not in Genesis Portal Mode. { if (companyid()) $defaultid = 7; if (riooffice()) $defaultid = 8; $over_columns = db_query("select myviewscolumnkey, myviewscolumntype, myviewscolumnsorder from tblmyviewscolumn where myviewsid =" . $defaultid ); foreach($over_columns as $selected_k =>$displaycolumn) { if (!in_array($displaycolumn['myviewscolumnkey'] ,$current_available_columns)) { d(___removing_column_because_no_longer_available, $displaycolumn); unset($over_columns[$selected_k]); } } $data['myviewsname'] = 'DEFAULT'; } // Load session myviews with new over setup. $_SESSION['myviews']['displaycolumns'] = $over_columns; $myviewsid= myviews_insert($data,defaultentry); // Create New Company default. myviews_force_activate($myviewsid); // Activate new default; return myviews_get($myviewsid ); } } return $views; // this is always an array } function myviews_insert($data,$defaultentry=0){ //ddie("insert: ".$data); $name = $data['myviewsname']; unset($data['myviewsname']); d($_SESSION[myviews]); $data = serialize($_SESSION['myviews']); global $overridemyvid; if (is_admin() && !companyid() && !clientcompanyid()){ $myviewsid = $overridemyvid; $loginid = 0; }else{ $myviewsid = db_nextid('myviews'); $loginid = loginid(); } $is_broker_side = 0; if ($myviewsid==2 || clientcompanyid()) $is_broker_side = 0; else if (!client_portal()) $is_broker_side = 1; $sql = "insert into tblmyviews (myviewsid, myviewsname, myviewsdata, loginid, myviewsbrokerside"; if (clientcompanyid()) $sql .= "\n ,myviewsclientcompanyid"; $sql .=" ) values (" . db_number($myviewsid) . ", '" . db_col($name) . "', '" . db_col($data) . "', " . $loginid. ", $is_broker_side"; if (clientcompanyid()) $sql .= "\n ,0" .clientcompanyid(); $sql .=" )"; db_query($sql,'',1); d(insert,$sql); d(def,$defaultentry); d('is_admin',is_admin()); d('companyid',companyid()); //d(clientcompanyid,) //exit; if(clientcompanyid() && $defaultentry) { db_exec("update tblmyviews set loginid = 0, myviewsclientcompanyid = ".clientcompanyid()." where myviewsid = $myviewsid",1); d("update tblmyviews set loginid = 0, myviewsclientcompanyid = ".clientcompanyid()." where myviewsid = $myviewsid"); } // Insert the selected rows $sql = "delete from tblmyviewscolumn where myviewsid = $myviewsid;"; d('displaycolumns',$_SESSION['myviews']['displaycolumns']); $counter = 1; if (is_array($_SESSION[myviews][displaycolumns]) && !empty($_SESSION[myviews][displaycolumns])) foreach($_SESSION[myviews][displaycolumns] as $k=>$column) { $sql .= "INSERT INTO tblmyviewscolumn(myviewsid, myviewscolumnkey, myviewscolumntype, myviewscolumnsorder) VALUES ($myviewsid, ".db_tick($column[myviewscolumnkey]).", ".db_tick($column[myviewscolumntype]).", $counter); "; $counter ++; } d(sql,$sql); db_exec($sql,1,1); d(retmyviewsid,$myviewsid); return $myviewsid; } function myviews_update($data){ $id = $data['myviewsid']; unset($data['myviewsid']); unset($data['myviewsname']); unset($_SESSION['myviews']['modified']); $data = serialize($_SESSION['myviews']); $sql = "update tblmyviews set myviewsdata = '" . db_col($data) . "' where myviewsid = " . db_number($id); if(clientcompanyid() && !$_SESSION[roles][1]) $sql.= " and myviewsclientcompanyid = 0 "; db_query($sql,'',1); } function myviews_updatecolumnslist($myviewsid,$data){ // First delete all the previous columns from db d(here); if (!db_number($myviewsid) && is_admin() && !companyid() && !clientcompanyid()) $myviewsid=$_SESSION[myviews][oversetup]; if (db_number($myviewsid)){ $sql = "delete from tblmyviewscolumn where myviewsid = ".db_number($myviewsid)."; "; if (!empty($data)) foreach ($data as $k=>$column) { $sql .= "insert into tblmyviewscolumn( myviewsid , myviewscolumnkey , myviewscolumntype , myviewscolumnsorder) VALUES ( ".db_number($myviewsid)." , ".db_tick($column[myviewscolumnkey])." , ".db_tick($column[myviewscolumntype])." , ".db_number($column[myviewscolumnsorder])." ); \n\r"; } d(column_insert_sql, $sql); db_exec($sql,1,1); } } function myviews_delete($id){ $sql = "delete from tblmyviews where myviewsid = " . db_number($id) . " and loginid = " . loginid(); db_query($sql,'',1); } ?>