[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/include/utils/ -> ListViewUtils.php (source)

   1  <?php
   2  /*********************************************************************************
   3   * The contents of this file are subject to the SugarCRM Public License Version 1.1.2
   4   * ("License"); You may not use this file except in compliance with the
   5   * License. You may obtain a copy of the License at http://www.sugarcrm.com/SPL
   6   * Software distributed under the License is distributed on an  "AS IS"  basis,
   7   * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
   8   * the specific language governing rights and limitations under the License.
   9   * The Original Code is:  SugarCRM Open Source
  10   * The Initial Developer of the Original Code is SugarCRM, Inc.
  11   * Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.;
  12   * All Rights Reserved.
  13   * Contributor(s): ______________________________________.
  14   ********************************************************************************/
  15  /*********************************************************************************
  16   * $Header: /cvsroot/vtigercrm/vtiger_crm/include/utils/ListViewUtils.php,v 1.32 2006/02/03 06:53:08 mangai Exp $
  17   * Description:  Includes generic helper functions used throughout the application.
  18   * Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
  19   * All Rights Reserved.
  20   * Contributor(s): ______________________________________..
  21   ********************************************************************************/
  22  
  23  require_once ('include/database/PearDatabase.php');
  24  require_once ('include/ComboUtil.php'); //new
  25  require_once ('include/utils/CommonUtils.php'); //new
  26  require_once ('user_privileges/default_module_view.php'); //new
  27  require_once ('include/utils/UserInfoUtil.php');
  28  require_once ('include/Zend/Json.php');
  29  
  30  /** Function to get the list query for a module
  31   * @param $module -- module name:: Type string
  32   * @param $where -- where:: Type string
  33   * @returns $query -- query:: Type query
  34   */
  35  function getListQuery($module, $where = '') {
  36      global $log;
  37      $log->debug("Entering getListQuery(" . $module . "," . $where . ") method ...");
  38  
  39      global $current_user;
  40      require('user_privileges/user_privileges_' . $current_user->id . '.php');
  41      require('user_privileges/sharing_privileges_' . $current_user->id . '.php');
  42      $tab_id = getTabid($module);
  43      $userNameSql = getSqlForNameInDisplayFormat(array('first_name' => 'vtiger_users.first_name', 'last_name' =>
  44                  'vtiger_users.last_name'), 'Users');
  45      switch ($module) {
  46          Case "HelpDesk":
  47              $query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.smownerid,
  48              vtiger_troubletickets.title, vtiger_troubletickets.status,
  49              vtiger_troubletickets.priority, vtiger_troubletickets.parent_id,
  50              vtiger_contactdetails.contactid, vtiger_contactdetails.firstname,
  51              vtiger_contactdetails.lastname, vtiger_account.accountid,
  52              vtiger_account.accountname, vtiger_ticketcf.*, vtiger_troubletickets.ticket_no
  53              FROM vtiger_troubletickets
  54              INNER JOIN vtiger_ticketcf
  55                  ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid
  56              INNER JOIN vtiger_crmentity
  57                  ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid
  58              LEFT JOIN vtiger_groups
  59                  ON vtiger_groups.groupid = vtiger_crmentity.smownerid
  60              LEFT JOIN vtiger_contactdetails
  61                  ON vtiger_troubletickets.parent_id = vtiger_contactdetails.contactid
  62              LEFT JOIN vtiger_account
  63                  ON vtiger_account.accountid = vtiger_troubletickets.parent_id
  64              LEFT JOIN vtiger_users
  65                  ON vtiger_crmentity.smownerid = vtiger_users.id
  66              LEFT JOIN vtiger_products
  67                  ON vtiger_products.productid = vtiger_troubletickets.product_id";
  68              $query .= ' ' . getNonAdminAccessControlQuery($module, $current_user);
  69              $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where;
  70              break;
  71  
  72          Case "Accounts":
  73              //Query modified to sort by assigned to
  74              $query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.smownerid,
  75              vtiger_account.accountname, vtiger_account.email1,
  76              vtiger_account.email2, vtiger_account.website, vtiger_account.phone,
  77              vtiger_accountbillads.bill_city,
  78              vtiger_accountscf.*
  79              FROM vtiger_account
  80              INNER JOIN vtiger_crmentity
  81                  ON vtiger_crmentity.crmid = vtiger_account.accountid
  82              INNER JOIN vtiger_accountbillads
  83                  ON vtiger_account.accountid = vtiger_accountbillads.accountaddressid
  84              INNER JOIN vtiger_accountshipads
  85                  ON vtiger_account.accountid = vtiger_accountshipads.accountaddressid
  86              INNER JOIN vtiger_accountscf
  87                  ON vtiger_account.accountid = vtiger_accountscf.accountid
  88              LEFT JOIN vtiger_groups
  89                  ON vtiger_groups.groupid = vtiger_crmentity.smownerid
  90              LEFT JOIN vtiger_users
  91                  ON vtiger_users.id = vtiger_crmentity.smownerid
  92              LEFT JOIN vtiger_account vtiger_account2
  93                  ON vtiger_account.parentid = vtiger_account2.accountid";
  94              $query .= getNonAdminAccessControlQuery($module, $current_user);
  95              $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where;
  96              break;
  97  
  98          Case "Potentials":
  99              //Query modified to sort by assigned to
 100              $query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.smownerid,
 101              vtiger_account.accountname,
 102              vtiger_potential.related_to, vtiger_potential.potentialname,
 103              vtiger_potential.sales_stage, vtiger_potential.amount,
 104              vtiger_potential.currency, vtiger_potential.closingdate,
 105              vtiger_potential.typeofrevenue, vtiger_potential.contact_id,
 106              vtiger_potentialscf.*
 107              FROM vtiger_potential
 108              INNER JOIN vtiger_crmentity
 109                  ON vtiger_crmentity.crmid = vtiger_potential.potentialid
 110              INNER JOIN vtiger_potentialscf
 111                  ON vtiger_potentialscf.potentialid = vtiger_potential.potentialid
 112              LEFT JOIN vtiger_account
 113                  ON vtiger_potential.related_to = vtiger_account.accountid
 114              LEFT JOIN vtiger_contactdetails
 115                  ON vtiger_potential.contact_id = vtiger_contactdetails.contactid
 116              LEFT JOIN vtiger_campaign
 117                  ON vtiger_campaign.campaignid = vtiger_potential.campaignid
 118              LEFT JOIN vtiger_groups
 119                  ON vtiger_groups.groupid = vtiger_crmentity.smownerid
 120              LEFT JOIN vtiger_users
 121                  ON vtiger_users.id = vtiger_crmentity.smownerid";
 122              $query .= getNonAdminAccessControlQuery($module, $current_user);
 123              $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where;
 124              break;
 125  
 126          Case "Leads":
 127              $query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.smownerid,
 128              vtiger_leaddetails.firstname, vtiger_leaddetails.lastname,
 129              vtiger_leaddetails.company, vtiger_leadaddress.phone,
 130              vtiger_leadsubdetails.website, vtiger_leaddetails.email,
 131              vtiger_leadscf.*
 132              FROM vtiger_leaddetails
 133              INNER JOIN vtiger_crmentity
 134                  ON vtiger_crmentity.crmid = vtiger_leaddetails.leadid
 135              INNER JOIN vtiger_leadsubdetails
 136                  ON vtiger_leadsubdetails.leadsubscriptionid = vtiger_leaddetails.leadid
 137              INNER JOIN vtiger_leadaddress
 138                  ON vtiger_leadaddress.leadaddressid = vtiger_leadsubdetails.leadsubscriptionid
 139              INNER JOIN vtiger_leadscf
 140                  ON vtiger_leaddetails.leadid = vtiger_leadscf.leadid
 141              LEFT JOIN vtiger_groups
 142                  ON vtiger_groups.groupid = vtiger_crmentity.smownerid
 143              LEFT JOIN vtiger_users
 144                  ON vtiger_users.id = vtiger_crmentity.smownerid";
 145              $query .= getNonAdminAccessControlQuery($module, $current_user);
 146              $query .= "WHERE vtiger_crmentity.deleted = 0 AND vtiger_leaddetails.converted = 0 " . $where;
 147              break;
 148          Case "Products":
 149              $query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_crmentity.description, vtiger_products.*, vtiger_productcf.*
 150              FROM vtiger_products
 151              INNER JOIN vtiger_crmentity
 152                  ON vtiger_crmentity.crmid = vtiger_products.productid
 153              INNER JOIN vtiger_productcf
 154                  ON vtiger_products.productid = vtiger_productcf.productid
 155              LEFT JOIN vtiger_vendor
 156                  ON vtiger_vendor.vendorid = vtiger_products.vendor_id
 157              LEFT JOIN vtiger_groups
 158                  ON vtiger_groups.groupid = vtiger_crmentity.smownerid
 159              LEFT JOIN vtiger_users
 160                  ON vtiger_users.id = vtiger_crmentity.smownerid";
 161              if ((isset($_REQUEST["from_dashboard"]) && $_REQUEST["from_dashboard"] == true) && (isset($_REQUEST["type"]) && $_REQUEST["type"] == "dbrd"))
 162                  $query .= " INNER JOIN vtiger_inventoryproductrel on vtiger_inventoryproductrel.productid = vtiger_products.productid";
 163  
 164              $query .= getNonAdminAccessControlQuery($module, $current_user);
 165              $query .= " WHERE vtiger_crmentity.deleted = 0 " . $where;
 166              break;
 167          Case "Documents":
 168              $query = "SELECT case when (vtiger_users.user_name not like '') then $userNameSql else vtiger_groups.groupname end as user_name,vtiger_crmentity.crmid, vtiger_crmentity.modifiedtime,
 169              vtiger_crmentity.smownerid,vtiger_attachmentsfolder.*,vtiger_notes.*
 170              FROM vtiger_notes
 171              INNER JOIN vtiger_crmentity
 172                  ON vtiger_crmentity.crmid = vtiger_notes.notesid
 173              LEFT JOIN vtiger_groups
 174                  ON vtiger_groups.groupid = vtiger_crmentity.smownerid
 175              LEFT JOIN vtiger_users
 176                  ON vtiger_users.id = vtiger_crmentity.smownerid
 177              LEFT JOIN vtiger_attachmentsfolder
 178                  ON vtiger_notes.folderid = vtiger_attachmentsfolder.folderid";
 179              $query .= getNonAdminAccessControlQuery($module, $current_user);
 180              $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where;
 181              break;
 182          Case "Contacts":
 183              //Query modified to sort by assigned to
 184              $query = "SELECT vtiger_contactdetails.firstname, vtiger_contactdetails.lastname,
 185              vtiger_contactdetails.title, vtiger_contactdetails.accountid,
 186              vtiger_contactdetails.email, vtiger_contactdetails.phone,
 187              vtiger_crmentity.smownerid, vtiger_crmentity.crmid
 188              FROM vtiger_contactdetails
 189              INNER JOIN vtiger_crmentity
 190                  ON vtiger_crmentity.crmid = vtiger_contactdetails.contactid
 191              INNER JOIN vtiger_contactaddress
 192                  ON vtiger_contactaddress.contactaddressid = vtiger_contactdetails.contactid
 193              INNER JOIN vtiger_contactsubdetails
 194                  ON vtiger_contactsubdetails.contactsubscriptionid = vtiger_contactdetails.contactid
 195              INNER JOIN vtiger_contactscf
 196                  ON vtiger_contactscf.contactid = vtiger_contactdetails.contactid
 197              LEFT JOIN vtiger_account
 198                  ON vtiger_account.accountid = vtiger_contactdetails.accountid
 199              LEFT JOIN vtiger_groups
 200                  ON vtiger_groups.groupid = vtiger_crmentity.smownerid
 201              LEFT JOIN vtiger_users
 202                  ON vtiger_users.id = vtiger_crmentity.smownerid
 203              LEFT JOIN vtiger_contactdetails vtiger_contactdetails2
 204                  ON vtiger_contactdetails.reportsto = vtiger_contactdetails2.contactid
 205              LEFT JOIN vtiger_customerdetails
 206                  ON vtiger_customerdetails.customerid = vtiger_contactdetails.contactid";
 207              if ((isset($_REQUEST["from_dashboard"]) && $_REQUEST["from_dashboard"] == true) &&
 208                      (isset($_REQUEST["type"]) && $_REQUEST["type"] == "dbrd")) {
 209                  $query .= " INNER JOIN vtiger_campaigncontrel on vtiger_campaigncontrel.contactid = " .
 210                          "vtiger_contactdetails.contactid";
 211              }
 212              $query .= getNonAdminAccessControlQuery($module, $current_user);
 213              $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where;
 214              break;
 215          Case "Calendar":
 216  
 217              $query = "SELECT vtiger_activity.activityid as act_id,vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_crmentity.setype,
 218          vtiger_activity.*,
 219          vtiger_contactdetails.lastname, vtiger_contactdetails.firstname,
 220          vtiger_contactdetails.contactid,
 221          vtiger_account.accountid, vtiger_account.accountname
 222          FROM vtiger_activity
 223          LEFT JOIN vtiger_activitycf
 224              ON vtiger_activitycf.activityid = vtiger_activity.activityid
 225          LEFT JOIN vtiger_cntactivityrel
 226              ON vtiger_cntactivityrel.activityid = vtiger_activity.activityid
 227          LEFT JOIN vtiger_contactdetails
 228              ON vtiger_contactdetails.contactid = vtiger_cntactivityrel.contactid
 229          LEFT JOIN vtiger_seactivityrel
 230              ON vtiger_seactivityrel.activityid = vtiger_activity.activityid
 231          LEFT OUTER JOIN vtiger_activity_reminder
 232              ON vtiger_activity_reminder.activity_id = vtiger_activity.activityid
 233          LEFT JOIN vtiger_crmentity
 234              ON vtiger_crmentity.crmid = vtiger_activity.activityid
 235          LEFT JOIN vtiger_users
 236              ON vtiger_users.id = vtiger_crmentity.smownerid
 237          LEFT JOIN vtiger_groups
 238              ON vtiger_groups.groupid = vtiger_crmentity.smownerid
 239          LEFT JOIN vtiger_users vtiger_users2
 240              ON vtiger_crmentity.modifiedby = vtiger_users2.id
 241          LEFT JOIN vtiger_groups vtiger_groups2
 242              ON vtiger_crmentity.modifiedby = vtiger_groups2.groupid
 243          LEFT OUTER JOIN vtiger_account
 244              ON vtiger_account.accountid = vtiger_contactdetails.accountid
 245          LEFT OUTER JOIN vtiger_leaddetails
 246                     ON vtiger_leaddetails.leadid = vtiger_seactivityrel.crmid
 247          LEFT OUTER JOIN vtiger_account vtiger_account2
 248                  ON vtiger_account2.accountid = vtiger_seactivityrel.crmid
 249          LEFT OUTER JOIN vtiger_potential
 250                     ON vtiger_potential.potentialid = vtiger_seactivityrel.crmid
 251          LEFT OUTER JOIN vtiger_troubletickets
 252                     ON vtiger_troubletickets.ticketid = vtiger_seactivityrel.crmid
 253          LEFT OUTER JOIN vtiger_salesorder
 254              ON vtiger_salesorder.salesorderid = vtiger_seactivityrel.crmid
 255          LEFT OUTER JOIN vtiger_purchaseorder
 256              ON vtiger_purchaseorder.purchaseorderid = vtiger_seactivityrel.crmid
 257          LEFT OUTER JOIN vtiger_quotes
 258              ON vtiger_quotes.quoteid = vtiger_seactivityrel.crmid
 259          LEFT OUTER JOIN vtiger_invoice
 260                      ON vtiger_invoice.invoiceid = vtiger_seactivityrel.crmid
 261          LEFT OUTER JOIN vtiger_campaign
 262          ON vtiger_campaign.campaignid = vtiger_seactivityrel.crmid";
 263  
 264              //added to fix #5135
 265              if (isset($_REQUEST['from_homepage']) && ($_REQUEST['from_homepage'] ==
 266                      "upcoming_activities" || $_REQUEST['from_homepage'] == "pending_activities")) {
 267                  $query.=" LEFT OUTER JOIN vtiger_recurringevents
 268                           ON vtiger_recurringevents.activityid=vtiger_activity.activityid";
 269              }
 270              //end
 271  
 272              $query .= getNonAdminAccessControlQuery($module, $current_user);
 273              $query.=" WHERE vtiger_crmentity.deleted = 0 AND activitytype != 'Emails' " . $where;
 274              break;
 275          Case "Emails":
 276              $query = "SELECT DISTINCT vtiger_crmentity.crmid, vtiger_crmentity.smownerid,
 277              vtiger_activity.activityid, vtiger_activity.subject,
 278              vtiger_activity.date_start,
 279              vtiger_contactdetails.lastname, vtiger_contactdetails.firstname,
 280              vtiger_contactdetails.contactid
 281              FROM vtiger_activity
 282              INNER JOIN vtiger_crmentity
 283                  ON vtiger_crmentity.crmid = vtiger_activity.activityid
 284              LEFT JOIN vtiger_users
 285                  ON vtiger_users.id = vtiger_crmentity.smownerid
 286              LEFT JOIN vtiger_seactivityrel
 287                  ON vtiger_seactivityrel.activityid = vtiger_activity.activityid
 288              LEFT JOIN vtiger_contactdetails
 289                  ON vtiger_contactdetails.contactid = vtiger_seactivityrel.crmid
 290              LEFT JOIN vtiger_cntactivityrel
 291                  ON vtiger_cntactivityrel.activityid = vtiger_activity.activityid
 292                  AND vtiger_cntactivityrel.contactid = vtiger_cntactivityrel.contactid
 293              LEFT JOIN vtiger_groups
 294                  ON vtiger_groups.groupid = vtiger_crmentity.smownerid
 295              LEFT JOIN vtiger_salesmanactivityrel
 296                  ON vtiger_salesmanactivityrel.activityid = vtiger_activity.activityid
 297              LEFT JOIN vtiger_emaildetails
 298                  ON vtiger_emaildetails.emailid = vtiger_activity.activityid";
 299              $query .= getNonAdminAccessControlQuery($module, $current_user);
 300              $query .= "WHERE vtiger_activity.activitytype = 'Emails'";
 301              $query .= "AND vtiger_crmentity.deleted = 0 " . $where;
 302              break;
 303          Case "Faq":
 304              $query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.createdtime, vtiger_crmentity.modifiedtime,
 305              vtiger_faq.*
 306              FROM vtiger_faq
 307              INNER JOIN vtiger_crmentity
 308                  ON vtiger_crmentity.crmid = vtiger_faq.id
 309              LEFT JOIN vtiger_products
 310                  ON vtiger_faq.product_id = vtiger_products.productid";
 311              $query .= getNonAdminAccessControlQuery($module, $current_user);
 312              $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where;
 313              break;
 314  
 315          Case "Vendors":
 316              $query = "SELECT vtiger_crmentity.crmid, vtiger_vendor.*
 317              FROM vtiger_vendor
 318              INNER JOIN vtiger_crmentity
 319                  ON vtiger_crmentity.crmid = vtiger_vendor.vendorid
 320              INNER JOIN vtiger_vendorcf
 321                  ON vtiger_vendor.vendorid = vtiger_vendorcf.vendorid
 322              WHERE vtiger_crmentity.deleted = 0 " . $where;
 323              break;
 324          Case "PriceBooks":
 325              $query = "SELECT vtiger_crmentity.crmid, vtiger_pricebook.*, vtiger_currency_info.currency_name
 326              FROM vtiger_pricebook
 327              INNER JOIN vtiger_crmentity
 328                  ON vtiger_crmentity.crmid = vtiger_pricebook.pricebookid
 329              INNER JOIN vtiger_pricebookcf
 330                  ON vtiger_pricebook.pricebookid = vtiger_pricebookcf.pricebookid
 331              LEFT JOIN vtiger_currency_info
 332                  ON vtiger_pricebook.currency_id = vtiger_currency_info.id
 333              WHERE vtiger_crmentity.deleted = 0 " . $where;
 334              break;
 335          Case "Quotes":
 336              //Query modified to sort by assigned to
 337              $query = "SELECT vtiger_crmentity.*,
 338              vtiger_quotes.*,
 339              vtiger_quotesbillads.*,
 340              vtiger_quotesshipads.*,
 341              vtiger_potential.potentialname,
 342              vtiger_account.accountname,
 343              vtiger_currency_info.currency_name
 344              FROM vtiger_quotes
 345              INNER JOIN vtiger_crmentity
 346                  ON vtiger_crmentity.crmid = vtiger_quotes.quoteid
 347              INNER JOIN vtiger_quotesbillads
 348                  ON vtiger_quotes.quoteid = vtiger_quotesbillads.quotebilladdressid
 349              INNER JOIN vtiger_quotesshipads
 350                  ON vtiger_quotes.quoteid = vtiger_quotesshipads.quoteshipaddressid
 351              LEFT JOIN vtiger_quotescf
 352                  ON vtiger_quotes.quoteid = vtiger_quotescf.quoteid
 353              LEFT JOIN vtiger_currency_info
 354                  ON vtiger_quotes.currency_id = vtiger_currency_info.id
 355              LEFT OUTER JOIN vtiger_account
 356                  ON vtiger_account.accountid = vtiger_quotes.accountid
 357              LEFT OUTER JOIN vtiger_potential
 358                  ON vtiger_potential.potentialid = vtiger_quotes.potentialid
 359              LEFT JOIN vtiger_contactdetails
 360                  ON vtiger_contactdetails.contactid = vtiger_quotes.contactid
 361              LEFT JOIN vtiger_groups
 362                  ON vtiger_groups.groupid = vtiger_crmentity.smownerid
 363              LEFT JOIN vtiger_users
 364                  ON vtiger_users.id = vtiger_crmentity.smownerid
 365              LEFT JOIN vtiger_users as vtiger_usersQuotes
 366                      ON vtiger_usersQuotes.id = vtiger_quotes.inventorymanager";
 367              $query .= getNonAdminAccessControlQuery($module, $current_user);
 368              $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where;
 369              break;
 370          Case "PurchaseOrder":
 371              //Query modified to sort by assigned to
 372              $query = "SELECT vtiger_crmentity.*,
 373              vtiger_purchaseorder.*,
 374              vtiger_pobillads.*,
 375              vtiger_poshipads.*,
 376              vtiger_vendor.vendorname,
 377              vtiger_currency_info.currency_name
 378              FROM vtiger_purchaseorder
 379              INNER JOIN vtiger_crmentity
 380                  ON vtiger_crmentity.crmid = vtiger_purchaseorder.purchaseorderid
 381              LEFT OUTER JOIN vtiger_vendor
 382                  ON vtiger_purchaseorder.vendorid = vtiger_vendor.vendorid
 383              LEFT JOIN vtiger_contactdetails
 384                  ON vtiger_purchaseorder.contactid = vtiger_contactdetails.contactid
 385              INNER JOIN vtiger_pobillads
 386                  ON vtiger_purchaseorder.purchaseorderid = vtiger_pobillads.pobilladdressid
 387              INNER JOIN vtiger_poshipads
 388                  ON vtiger_purchaseorder.purchaseorderid = vtiger_poshipads.poshipaddressid
 389              LEFT JOIN vtiger_purchaseordercf
 390                  ON vtiger_purchaseordercf.purchaseorderid = vtiger_purchaseorder.purchaseorderid
 391              LEFT JOIN vtiger_currency_info
 392                  ON vtiger_purchaseorder.currency_id = vtiger_currency_info.id
 393              LEFT JOIN vtiger_groups
 394                  ON vtiger_groups.groupid = vtiger_crmentity.smownerid
 395              LEFT JOIN vtiger_users
 396                  ON vtiger_users.id = vtiger_crmentity.smownerid";
 397              $query .= getNonAdminAccessControlQuery($module, $current_user);
 398              $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where;
 399              break;
 400          Case "SalesOrder":
 401              //Query modified to sort by assigned to
 402              $query = "SELECT vtiger_crmentity.*,
 403              vtiger_salesorder.*,
 404              vtiger_sobillads.*,
 405              vtiger_soshipads.*,
 406              vtiger_quotes.subject AS quotename,
 407              vtiger_account.accountname,
 408              vtiger_currency_info.currency_name
 409              FROM vtiger_salesorder
 410              INNER JOIN vtiger_crmentity
 411                  ON vtiger_crmentity.crmid = vtiger_salesorder.salesorderid
 412              INNER JOIN vtiger_sobillads
 413                  ON vtiger_salesorder.salesorderid = vtiger_sobillads.sobilladdressid
 414              INNER JOIN vtiger_soshipads
 415                  ON vtiger_salesorder.salesorderid = vtiger_soshipads.soshipaddressid
 416              LEFT JOIN vtiger_salesordercf
 417                  ON vtiger_salesordercf.salesorderid = vtiger_salesorder.salesorderid
 418              LEFT JOIN vtiger_currency_info
 419                  ON vtiger_salesorder.currency_id = vtiger_currency_info.id
 420              LEFT OUTER JOIN vtiger_quotes
 421                  ON vtiger_quotes.quoteid = vtiger_salesorder.quoteid
 422              LEFT OUTER JOIN vtiger_account
 423                  ON vtiger_account.accountid = vtiger_salesorder.accountid
 424              LEFT JOIN vtiger_contactdetails
 425                  ON vtiger_salesorder.contactid = vtiger_contactdetails.contactid
 426              LEFT JOIN vtiger_potential
 427                  ON vtiger_potential.potentialid = vtiger_salesorder.potentialid
 428              LEFT JOIN vtiger_invoice_recurring_info
 429                  ON vtiger_invoice_recurring_info.salesorderid = vtiger_salesorder.salesorderid
 430              LEFT JOIN vtiger_groups
 431                  ON vtiger_groups.groupid = vtiger_crmentity.smownerid
 432              LEFT JOIN vtiger_users
 433                  ON vtiger_users.id = vtiger_crmentity.smownerid";
 434              $query .= getNonAdminAccessControlQuery($module, $current_user);
 435              $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where;
 436              break;
 437          Case "Invoice":
 438              //Query modified to sort by assigned to
 439              //query modified -Code contribute by Geoff(http://forums.vtiger.com/viewtopic.php?t=3376)
 440              $query = "SELECT vtiger_crmentity.*,
 441              vtiger_invoice.*,
 442              vtiger_invoicebillads.*,
 443              vtiger_invoiceshipads.*,
 444              vtiger_salesorder.subject AS salessubject,
 445              vtiger_account.accountname,
 446              vtiger_currency_info.currency_name
 447              FROM vtiger_invoice
 448              INNER JOIN vtiger_crmentity
 449                  ON vtiger_crmentity.crmid = vtiger_invoice.invoiceid
 450              INNER JOIN vtiger_invoicebillads
 451                  ON vtiger_invoice.invoiceid = vtiger_invoicebillads.invoicebilladdressid
 452              INNER JOIN vtiger_invoiceshipads
 453                  ON vtiger_invoice.invoiceid = vtiger_invoiceshipads.invoiceshipaddressid
 454              LEFT JOIN vtiger_currency_info
 455                  ON vtiger_invoice.currency_id = vtiger_currency_info.id
 456              LEFT OUTER JOIN vtiger_salesorder
 457                  ON vtiger_salesorder.salesorderid = vtiger_invoice.salesorderid
 458              LEFT OUTER JOIN vtiger_account
 459                      ON vtiger_account.accountid = vtiger_invoice.accountid
 460              LEFT JOIN vtiger_contactdetails
 461                  ON vtiger_contactdetails.contactid = vtiger_invoice.contactid
 462              INNER JOIN vtiger_invoicecf
 463                  ON vtiger_invoice.invoiceid = vtiger_invoicecf.invoiceid
 464              LEFT JOIN vtiger_groups
 465                  ON vtiger_groups.groupid = vtiger_crmentity.smownerid
 466              LEFT JOIN vtiger_users
 467                  ON vtiger_users.id = vtiger_crmentity.smownerid";
 468              $query .= getNonAdminAccessControlQuery($module, $current_user);
 469              $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where;
 470              break;
 471          Case "Campaigns":
 472              //Query modified to sort by assigned to
 473              //query modified -Code contribute by Geoff(http://forums.vtiger.com/viewtopic.php?t=3376)
 474              $query = "SELECT vtiger_crmentity.*,
 475              vtiger_campaign.*
 476              FROM vtiger_campaign
 477              INNER JOIN vtiger_crmentity
 478                  ON vtiger_crmentity.crmid = vtiger_campaign.campaignid
 479              INNER JOIN vtiger_campaignscf
 480                      ON vtiger_campaign.campaignid = vtiger_campaignscf.campaignid
 481              LEFT JOIN vtiger_groups
 482                  ON vtiger_groups.groupid = vtiger_crmentity.smownerid
 483              LEFT JOIN vtiger_users
 484                  ON vtiger_users.id = vtiger_crmentity.smownerid
 485              LEFT JOIN vtiger_products
 486                  ON vtiger_products.productid = vtiger_campaign.product_id";
 487              $query .= getNonAdminAccessControlQuery($module, $current_user);
 488              $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where;
 489              break;
 490          Case "Users":
 491              $query = "SELECT id,user_name,first_name,last_name,email1,phone_mobile,phone_work,is_admin,status,email2,
 492                      vtiger_user2role.roleid as roleid,vtiger_role.depth as depth
 493                       FROM vtiger_users
 494                       INNER JOIN vtiger_user2role ON vtiger_users.id = vtiger_user2role.userid
 495                       INNER JOIN vtiger_role ON vtiger_user2role.roleid = vtiger_role.roleid
 496                      WHERE deleted=0 AND status <> 'Inactive'" . $where;
 497              break;
 498          default:
 499              // vtlib customization: Include the module file
 500              $focus = CRMEntity::getInstance($module);
 501              $query = $focus->getListQuery($module, $where);
 502          // END
 503      }
 504  
 505      if ($module != 'Users') {
 506          $query = listQueryNonAdminChange($query, $module);
 507      }
 508      $log->debug("Exiting getListQuery method ...");
 509      return $query;
 510  }
 511  
 512  /* * This function stores the variables in session sent in list view url string.
 513   * Param $lv_array - list view session array
 514   * Param $noofrows - no of rows
 515   * Param $max_ent - maximum entires
 516   * Param $module - module name
 517   * Param $related - related module
 518   * Return type void.
 519   */
 520  
 521  function setSessionVar($lv_array, $noofrows, $max_ent, $module = '', $related = '') {
 522      $start = '';
 523      if ($noofrows >= 1) {
 524          $lv_array['start'] = 1;
 525          $start = 1;
 526      } elseif ($related != '' && $noofrows == 0) {
 527          $lv_array['start'] = 1;
 528          $start = 1;
 529      } else {
 530          $lv_array['start'] = 0;
 531          $start = 0;
 532      }
 533  
 534      if (isset($_REQUEST['start']) && $_REQUEST['start'] != '') {
 535          $lv_array['start'] = ListViewSession::getRequestStartPage();
 536          $start = ListViewSession::getRequestStartPage();
 537      } elseif ($_SESSION['rlvs'][$module][$related]['start'] != '') {
 538  
 539          if ($related != '') {
 540              $lv_array['start'] = $_SESSION['rlvs'][$module][$related]['start'];
 541              $start = $_SESSION['rlvs'][$module][$related]['start'];
 542          }
 543      }
 544      if (isset($_REQUEST['viewname']) && $_REQUEST['viewname'] != '')
 545          $lv_array['viewname'] = vtlib_purify($_REQUEST['viewname']);
 546  
 547      if ($related == '')
 548          $_SESSION['lvs'][$_REQUEST['module']] = $lv_array;
 549      else
 550          $_SESSION['rlvs'][$module][$related] = $lv_array;
 551  
 552      if ($start < ceil($noofrows / $max_ent) && $start != '') {
 553          $start = ceil($noofrows / $max_ent);
 554          if ($related == '')
 555              $_SESSION['lvs'][$currentModule]['start'] = $start;
 556      }
 557  }
 558  
 559  /* * Function to get the table headers for related listview
 560   * Param $navigation_arrray - navigation values in array
 561   * Param $url_qry - url string
 562   * Param $module - module name
 563   * Param $action- action file name
 564   * Param $viewid - view id
 565   * Returns an string value
 566   */
 567  
 568  function getRelatedTableHeaderNavigation($navigation_array, $url_qry, $module, $related_module, $recordid) {
 569      global $log, $app_strings, $adb;
 570      $log->debug("Entering getTableHeaderNavigation(" . $navigation_array . "," . $url_qry . "," . $module . "," . $action_val . "," . $viewid . ") method ...");
 571      global $theme;
 572      $relatedTabId = getTabid($related_module);
 573      $tabid = getTabid($module);
 574  
 575      $relatedListResult = $adb->pquery('SELECT * FROM vtiger_relatedlists WHERE tabid=? AND
 576          related_tabid=?', array($tabid, $relatedTabId));
 577      if (empty($relatedListResult))
 578          return;
 579      $relatedListRow = $adb->fetch_row($relatedListResult);
 580      $header = $relatedListRow['label'];
 581      $actions = $relatedListRow['actions'];
 582      $functionName = $relatedListRow['name'];
 583  
 584      $urldata = "module=$module&action={$module}Ajax&file=DetailViewAjax&record={$recordid}&" .
 585              "ajxaction=LOADRELATEDLIST&header={$header}&relation_id={$relatedListRow['relation_id']}" .
 586              "&actions={$actions}&{$url_qry}";
 587  
 588      $formattedHeader = str_replace(' ', '', $header);
 589      $target = 'tbl_' . $module . '_' . $formattedHeader;
 590      $imagesuffix = $module . '_' . $formattedHeader;
 591  
 592      $output = '<td align="right" style="padding="5px;">';
 593      if (($navigation_array['prev']) != 0) {
 594          $output .= '<a href="javascript:;" onClick="loadRelatedListBlock(\'' . $urldata . '&start=1\',\'' . $target . '\',\'' . $imagesuffix . '\');" alt="' . $app_strings['LBL_FIRST'] . '" title="' . $app_strings['LBL_FIRST'] . '"><img src="' . vtiger_imageurl('start.gif', $theme) . '" border="0" align="absmiddle"></a>&nbsp;';
 595          $output .= '<a href="javascript:;" onClick="loadRelatedListBlock(\'' . $urldata . '&start=' . $navigation_array['prev'] . '\',\'' . $target . '\',\'' . $imagesuffix . '\');" alt="' . $app_strings['LNK_LIST_PREVIOUS'] . '"title="' . $app_strings['LNK_LIST_PREVIOUS'] . '"><img src="' . vtiger_imageurl('previous.gif', $theme) . '" border="0" align="absmiddle"></a>&nbsp;';
 596      } else {
 597          $output .= '<img src="' . vtiger_imageurl('start_disabled.gif', $theme) . '" border="0" align="absmiddle">&nbsp;';
 598          $output .= '<img src="' . vtiger_imageurl('previous_disabled.gif', $theme) . '" border="0" align="absmiddle">&nbsp;';
 599      }
 600  
 601      $jsHandler = "return VT_disableFormSubmit(event);";
 602      $output .= "<input class='small' name='pagenum' type='text' value='{$navigation_array['current']}'
 603          style='width: 3em;margin-right: 0.7em;' onchange=\"loadRelatedListBlock('{$urldata}&start='+this.value+'','{$target}','{$imagesuffix}');\"
 604          onkeypress=\"$jsHandler\">";
 605      $output .= "<span name='listViewCountContainerName' class='small' style='white-space: nowrap;'>";
 606      $computeCount = $_REQUEST['withCount'];
 607      if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false) === true
 608              || ((boolean) $computeCount) == true) {
 609          $output .= $app_strings['LBL_LIST_OF'] . ' ' . $navigation_array['verylast'];
 610      } else {
 611          $output .= "<img src='" . vtiger_imageurl('windowRefresh.gif', $theme) . "' alt='" . $app_strings['LBL_HOME_COUNT'] . "'
 612              onclick=\"loadRelatedListBlock('{$urldata}&withCount=true&start={$navigation_array['current']}','{$target}','{$imagesuffix}');\"
 613              align='absmiddle' name='" . $module . "_listViewCountRefreshIcon'/>
 614              <img name='" . $module . "_listViewCountContainerBusy' src='" . vtiger_imageurl('vtbusy.gif', $theme) . "' style='display: none;'
 615              align='absmiddle' alt='" . $app_strings['LBL_LOADING'] . "'>";
 616      }
 617      $output .= '</span>';
 618  
 619      if (($navigation_array['next']) != 0) {
 620          $output .= '<a href="javascript:;" onClick="loadRelatedListBlock(\'' . $urldata . '&start=' . $navigation_array['next'] . '\',\'' . $target . '\',\'' . $imagesuffix . '\');"><img src="' . vtiger_imageurl('next.gif', $theme) . '" border="0" align="absmiddle"></a>&nbsp;';
 621          $output .= '<a href="javascript:;" onClick="loadRelatedListBlock(\'' . $urldata . '&start=' . $navigation_array['verylast'] . '\',\'' . $target . '\',\'' . $imagesuffix . '\');"><img src="' . vtiger_imageurl('end.gif', $theme) . '" border="0" align="absmiddle"></a>&nbsp;';
 622      } else {
 623          $output .= '<img src="' . vtiger_imageurl('next_disabled.gif', $theme) . '" border="0" align="absmiddle">&nbsp;';
 624          $output .= '<img src="' . vtiger_imageurl('end_disabled.gif', $theme) . '" border="0" align="absmiddle">&nbsp;';
 625      }
 626      $output .= '</td>';
 627      $log->debug("Exiting getTableHeaderNavigation method ...");
 628      if ($navigation_array['first'] == '')
 629          return;
 630      else
 631          return $output;
 632  }
 633  
 634  /* Function to get the Entity Id of a given Entity Name */
 635  
 636  function getEntityId($module, $entityName) {
 637      global $log, $adb;
 638      $log->info("in getEntityId " . $entityName);
 639  
 640      $query = "select fieldname,tablename,entityidfield from vtiger_entityname where modulename = ?";
 641      $result = $adb->pquery($query, array($module));
 642      $fieldsname = $adb->query_result($result, 0, 'fieldname');
 643      $tablename = $adb->query_result($result, 0, 'tablename');
 644      $entityidfield = $adb->query_result($result, 0, 'entityidfield');
 645      if (!(strpos($fieldsname, ',') === false)) {
 646          $fieldlists = explode(',', $fieldsname);
 647          $fieldsname = "trim(concat(";
 648          $fieldsname = $fieldsname . implode(",' ',", $fieldlists);
 649          $fieldsname = $fieldsname . "))";
 650          $entityName = trim($entityName);
 651      }
 652  
 653      if ($entityName != '') {
 654          $sql = "select $entityidfield from $tablename INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = $tablename.$entityidfield " .
 655                  " WHERE vtiger_crmentity.deleted = 0 and $fieldsname=?";
 656          $result = $adb->pquery($sql, array($entityName));
 657          if ($adb->num_rows($result) > 0) {
 658              $entityId = $adb->query_result($result, 0, $entityidfield);
 659          }
 660      }
 661      if (!empty($entityId))
 662          return $entityId;
 663      else
 664          return 0;
 665  }
 666  
 667  function decode_html($str) {
 668      global $default_charset;
 669      // Direct Popup action or Ajax Popup action should be treated the same.
 670      if ($_REQUEST['action'] == 'Popup' || $_REQUEST['file'] == 'Popup')
 671          return html_entity_decode($str);
 672      else
 673          return html_entity_decode($str, ENT_QUOTES, $default_charset);
 674  }
 675  
 676  function popup_decode_html($str) {
 677      global $default_charset;
 678      $slashes_str = popup_from_html($str);
 679      $slashes_str = htmlspecialchars($slashes_str, ENT_QUOTES, $default_charset);
 680      return decode_html(br2nl($slashes_str));
 681  }
 682  
 683  //function added to check the text length in the listview.
 684  function textlength_check($field_val) {
 685      global $listview_max_textlength, $default_charset;
 686      if ($listview_max_textlength && $listview_max_textlength > 0) {
 687          $temp_val = preg_replace("/(<\/?)(\w+)([^>]*>)/i", "", $field_val);
 688          if (function_exists('mb_strlen')) {
 689              if (mb_strlen(html_entity_decode($temp_val)) > $listview_max_textlength) {
 690                  $temp_val = mb_substr(preg_replace("/(<\/?)(\w+)([^>]*>)/i", "", $field_val), 0, $listview_max_textlength, $default_charset) . '...';
 691              }
 692          } elseif (strlen(html_entity_decode($field_val)) > $listview_max_textlength) {
 693              $temp_val = substr(preg_replace("/(<\/?)(\w+)([^>]*>)/i", "", $field_val), 0, $listview_max_textlength) . '...';
 694          }
 695      } else {
 696          $temp_val = $field_val;
 697      }
 698      return $temp_val;
 699  }
 700  
 701  /**
 702   * this function accepts a modulename and a fieldname and returns the first related module for it
 703   * it expects the uitype of the field to be 10
 704   * @param string $module - the modulename
 705   * @param string $fieldname - the field name
 706   * @return string $data - the first related module
 707   */
 708  function getFirstModule($module, $fieldname) {
 709      global $adb;
 710      $sql = "select fieldid, uitype from vtiger_field where tabid=? and fieldname=?";
 711      $result = $adb->pquery($sql, array(getTabid($module), $fieldname));
 712  
 713      if ($adb->num_rows($result) > 0) {
 714          $uitype = $adb->query_result($result, 0, "uitype");
 715  
 716          if ($uitype == 10) {
 717              $fieldid = $adb->query_result($result, 0, "fieldid");
 718              $sql = "select * from vtiger_fieldmodulerel where fieldid=?";
 719              $result = $adb->pquery($sql, array($fieldid));
 720              $count = $adb->num_rows($result);
 721  
 722              if ($count > 0) {
 723                  $data = $adb->query_result($result, 0, "relmodule");
 724              }
 725          }
 726      }
 727      return $data;
 728  }
 729  
 730  function VT_getSimpleNavigationValues($start, $size, $total) {
 731      $prev = $start - 1;
 732      if ($prev < 0) {
 733          $prev = 0;
 734      }
 735      if ($total === null) {
 736          return array('start' => $start, 'first' => $start, 'current' => $start, 'end' => $start, 'end_val' => $size, 'allflag' => 'All',
 737              'prev' => $prev, 'next' => $start + 1, 'verylast' => 'last');
 738      }
 739      if (empty($total)) {
 740          $lastPage = 1;
 741      } else {
 742          $lastPage = ceil($total / $size);
 743      }
 744  
 745      $next = $start + 1;
 746      if ($next > $lastPage) {
 747          $next = 0;
 748      }
 749      return array('start' => $start, 'first' => $start, 'current' => $start, 'end' => $start, 'end_val' => $size, 'allflag' => 'All',
 750          'prev' => $prev, 'next' => $next, 'verylast' => $lastPage);
 751  }
 752  
 753  function getRecordRangeMessage($listResult, $limitStartRecord, $totalRows = '') {
 754      global $adb, $app_strings;
 755      $numRows = $adb->num_rows($listResult);
 756      $recordListRangeMsg = '';
 757      if ($numRows > 0) {
 758          $recordListRangeMsg = $app_strings['LBL_SHOWING'] . ' ' . $app_strings['LBL_RECORDS'] .
 759                  ' ' . ($limitStartRecord + 1) . ' - ' . ($limitStartRecord + $numRows);
 760          if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false) === true) {
 761              $recordListRangeMsg .= ' ' . $app_strings['LBL_LIST_OF'] . " $totalRows";
 762          }
 763      }
 764      return $recordListRangeMsg;
 765  }
 766  
 767  function listQueryNonAdminChange($query, $module, $scope = '') {
 768      $instance = CRMEntity::getInstance($module);
 769      return $instance->listQueryNonAdminChange($query, $scope);
 770  }
 771  
 772  function html_strlen($str) {
 773      $chars = preg_split('/(&[^;\s]+;)|/', $str, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
 774      return count($chars);
 775  }
 776  
 777  function html_substr($str, $start, $length = NULL) {
 778      if ($length === 0)
 779          return "";
 780      //check if we can simply use the built-in functions
 781      if (strpos($str, '&') === false) { //No entities. Use built-in functions
 782          if ($length === NULL)
 783              return substr($str, $start);
 784          else
 785              return substr($str, $start, $length);
 786      }
 787  
 788      // create our array of characters and html entities
 789      $chars = preg_split('/(&[^;\s]+;)|/', $str, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE);
 790      $html_length = count($chars);
 791      // check if we can predict the return value and save some processing time
 792      if (($html_length === 0) or ($start >= $html_length) or (isset($length) and ($length <= -$html_length)))
 793          return "";
 794  
 795      //calculate start position
 796      if ($start >= 0) {
 797          $real_start = $chars[$start][1];
 798      } else { //start'th character from the end of string
 799          $start = max($start, -$html_length);
 800          $real_start = $chars[$html_length + $start][1];
 801      }
 802      if (!isset($length)) // no $length argument passed, return all remaining characters
 803          return substr($str, $real_start);
 804      else if ($length > 0) { // copy $length chars
 805          if ($start + $length >= $html_length) { // return all remaining characters
 806              return substr($str, $real_start);
 807          } else { //return $length characters
 808              return substr($str, $real_start, $chars[max($start, 0) + $length][1] - $real_start);
 809          }
 810      } else { //negative $length. Omit $length characters from end
 811          return substr($str, $real_start, $chars[$html_length + $length][1] - $real_start);
 812      }
 813  }
 814  
 815  function counterValue() {
 816      static $counter = 0;
 817      $counter = $counter + 1;
 818      return $counter;
 819  }
 820  
 821  function getUsersPasswordInfo(){
 822      global $adb;
 823      $sql = "SELECT user_name, user_hash FROM vtiger_users WHERE deleted=?";
 824      $result = $adb->pquery($sql, array(0));
 825      $usersList = array();
 826      for ($i=0; $i<$adb->num_rows($result); $i++) {
 827          $userList['name'] = $adb->query_result($result, $i, "user_name");
 828          $userList['hash'] = $adb->query_result($result, $i, "user_hash");
 829          $usersList[] = $userList;
 830      }
 831      return $usersList;
 832  }
 833  
 834  ?>


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1