[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
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> '; 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> '; 596 } else { 597 $output .= '<img src="' . vtiger_imageurl('start_disabled.gif', $theme) . '" border="0" align="absmiddle"> '; 598 $output .= '<img src="' . vtiger_imageurl('previous_disabled.gif', $theme) . '" border="0" align="absmiddle"> '; 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> '; 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> '; 622 } else { 623 $output .= '<img src="' . vtiger_imageurl('next_disabled.gif', $theme) . '" border="0" align="absmiddle"> '; 624 $output .= '<img src="' . vtiger_imageurl('end_disabled.gif', $theme) . '" border="0" align="absmiddle"> '; 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 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |