183 lines
6.5 KiB
PHP
183 lines
6.5 KiB
PHP
<?php
|
|
/*********************************************************************************
|
|
* The contents of this file are subject to the SugarCRM Public License Version 1.1.2
|
|
* ("License"); You may not use this file except in compliance with the
|
|
* License. You may obtain a copy of the License at http://www.sugarcrm.com/SPL
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
|
|
* the specific language governing rights and limitations under the License.
|
|
* The Original Code is: SugarCRM Open Source
|
|
* The Initial Developer of the Original Code is SugarCRM, Inc.
|
|
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.;
|
|
* All Rights Reserved.
|
|
* Contributor(s): ______________________________________.
|
|
********************************************************************************/
|
|
|
|
|
|
/** function used to get the top 5 purchase orders from Listview query
|
|
* @return array $values - array with the title, header and entries like Array('Title'=>$title,'Header'=>$listview_header,'Entries'=>$listview_entries) where as listview_header and listview_entries are arrays of header and entity values which are returned from function getListViewHeader and getListViewEntries
|
|
*/
|
|
function getTopPurchaseOrder($maxval,$calCnt)
|
|
{
|
|
require_once("data/Tracker.php");
|
|
require_once('modules/PurchaseOrder/PurchaseOrder.php');
|
|
require_once('include/logging.php');
|
|
require_once('include/ListView/ListView.php');
|
|
require_once('include/utils/utils.php');
|
|
require_once('modules/CustomView/CustomView.php');
|
|
|
|
global $current_language,$current_user,$list_max_entries_per_page,$theme,$adb;
|
|
$current_module_strings = return_module_language($current_language, 'PurchaseOrder');
|
|
|
|
$log = LoggerManager::getLogger('po_list');
|
|
|
|
$url_string = '';
|
|
$sorder = '';
|
|
$oCustomView = new CustomView("PurchaseOrder");
|
|
$customviewcombo_html = $oCustomView->getCustomViewCombo();
|
|
if(isset($_REQUEST['viewname']) == false || $_REQUEST['viewname']=='')
|
|
{
|
|
if($oCustomView->setdefaultviewid != "")
|
|
{
|
|
$viewid = $oCustomView->setdefaultviewid;
|
|
}else
|
|
{
|
|
$viewid = "0";
|
|
}
|
|
}
|
|
|
|
$theme_path="themes/".$theme."/";
|
|
$image_path=$theme_path."images/";
|
|
|
|
//Retreive the list from Database
|
|
//<<<<<<<<<customview>>>>>>>>>
|
|
$currentModule = 'PurchaseOrder';
|
|
$viewId = getCvIdOfAll($currentModule);
|
|
$queryGenerator = new QueryGenerator($currentModule, $current_user);
|
|
$queryGenerator->initForCustomViewById($viewId);
|
|
$meta = $queryGenerator->getMeta($currentModule);
|
|
$accessibleFieldNameList = array_keys($meta->getModuleFields());
|
|
$customViewFields = $queryGenerator->getCustomViewFields();
|
|
$fields = $queryGenerator->getFields();
|
|
$newFields = array_diff($fields, $customViewFields);
|
|
$widgetFieldsList = array('subject','vendor_id','contact_id','total');
|
|
$widgetFieldsList = array_intersect($accessibleFieldNameList, $widgetFieldsList);
|
|
$widgetSelectedFields = array_chunk(array_intersect($customViewFields, $widgetFieldsList), 2);
|
|
//select the first chunk of two fields
|
|
$widgetSelectedFields = $widgetSelectedFields[0];
|
|
if(count($widgetSelectedFields) < 2) {
|
|
$widgetSelectedFields = array_chunk(array_merge($widgetSelectedFields, $accessibleFieldNameList), 2);
|
|
//select the first chunk of two fields
|
|
$widgetSelectedFields = $widgetSelectedFields[0];
|
|
}
|
|
$newFields = array_merge($newFields, $widgetSelectedFields);
|
|
$queryGenerator->setFields($newFields);
|
|
$_REQUEST = getTopPurchaseOrderSearch($_REQUEST);
|
|
$queryGenerator->addUserSearchConditions($_REQUEST);
|
|
$search_qry = '&query=true'.getSearchURL($_REQUEST);
|
|
$query = $queryGenerator->getQuery();
|
|
|
|
//<<<<<<<<customview>>>>>>>>>
|
|
|
|
$query .= " LIMIT " . $adb->sql_escape_string($maxval);
|
|
|
|
if($calCnt == 'calculateCnt') {
|
|
$list_result_rows = $adb->query(mkCountQuery($query));
|
|
return $adb->query_result($list_result_rows, 0, 'count');
|
|
}
|
|
|
|
$list_result = $adb->query($query);
|
|
|
|
//Retreiving the no of rows
|
|
$noofrows = $adb->num_rows($list_result);
|
|
|
|
//Retreiving the start value from request
|
|
if(isset($_REQUEST['start']) && $_REQUEST['start'] != '') {
|
|
$start = vtlib_purify($_REQUEST['start']);
|
|
} else {
|
|
$start = 1;
|
|
}
|
|
|
|
//Retreive the Navigation array
|
|
$navigation_array = getNavigationValues($start, $noofrows, $list_max_entries_per_page);
|
|
|
|
if ($navigation_array['start'] == 1)
|
|
{
|
|
if($noofrows != 0)
|
|
$start_rec = $navigation_array['start'];
|
|
else
|
|
$start_rec = 0;
|
|
if($noofrows > $list_max_entries_per_page)
|
|
{
|
|
$end_rec = $navigation_array['start'] + $list_max_entries_per_page - 1;
|
|
}
|
|
else
|
|
{
|
|
$end_rec = $noofrows;
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
if($navigation_array['next'] > $list_max_entries_per_page)
|
|
{
|
|
$start_rec = $navigation_array['next'] - $list_max_entries_per_page;
|
|
$end_rec = $navigation_array['next'] - 1;
|
|
}
|
|
else
|
|
{
|
|
$start_rec = $navigation_array['prev'] + $list_max_entries_per_page;
|
|
$end_rec = $noofrows;
|
|
}
|
|
}
|
|
|
|
$focus = new PurchaseOrder();
|
|
|
|
//Retreive the List View Table Header
|
|
$title=array('myTopPurchaseOrders.gif',$current_module_strings['LBL_MY_TOP_PO'],'home_mytoppo');
|
|
$controller = new ListViewController($adb, $current_user, $queryGenerator);
|
|
$controller->setHeaderSorting(false);
|
|
$header = $controller->getListViewHeader($focus,$currentModule,$url_string,$sorder,
|
|
$order_by, true);
|
|
|
|
$entries = $controller->getListViewEntries($focus,$currentModule,$list_result,
|
|
$navigation_array, true);
|
|
|
|
$values=Array('ModuleName'=>'PurchaseOrder','Title'=>$title,'Header'=>$header,'Entries'=>$entries,'search_qry'=>$search_qry);
|
|
if ( ($noofrows == 0 ) || ($noofrows>0) )
|
|
return $values;
|
|
}
|
|
|
|
function getTopPurchaseOrderSearch($output) {
|
|
global $current_user;
|
|
$currentDateTime = new DateTimeField(date('Y-m-d H:i:s'));
|
|
|
|
$output['query'] = 'true';
|
|
$output['searchtype'] = 'advance';
|
|
|
|
$advft_criteria_groups = array('1' => array('groupcondition' => null));
|
|
$advft_criteria = array(
|
|
array (
|
|
'groupid' => 1,
|
|
'columnname' => 'vtiger_purchaseorder:duedate:duedate:PurchaseOrder_Due_Date:D',
|
|
'comparator' => 'h',
|
|
'value' => $currentDateTime->getDisplayDate(),
|
|
'columncondition' => 'and'
|
|
),
|
|
array (
|
|
'groupid' => 1,
|
|
'columnname' => 'vtiger_crmentity:smownerid:assigned_user_id:PurchaseOrder_Assigned_To:V',
|
|
'comparator' => 'e',
|
|
'value' => getFullNameFromArray('Users', $current_user->column_fields),
|
|
'columncondition' => null
|
|
)
|
|
);
|
|
|
|
$output['advft_criteria'] = Zend_Json::encode($advft_criteria);
|
|
$output['advft_criteria_groups'] = Zend_Json::encode($advft_criteria_groups);
|
|
|
|
return $output;
|
|
}
|
|
|
|
?>
|