lvd = new ListViewData(); $this->searchColumns = array(); } function shouldProcess($moduleDir) { if (!empty($GLOBALS['sugar_config']['save_query']) && $GLOBALS['sugar_config']['save_query'] == 'populate_only') { if (empty($GLOBALS['displayListView']) && (!empty($_REQUEST['clear_query']) || $_REQUEST['module'] == $moduleDir && ((empty($_REQUEST['query']) || $_REQUEST['query'] == 'MSI') && (empty($_SESSION['last_search_mod']) || $_SESSION['last_search_mod'] != $moduleDir)))) { $_SESSION['last_search_mod'] = $_REQUEST['module']; $this->should_process = false; return false; } } $this->should_process = true; return true; } /** * Setup the class * @param seed SugarBean Seed SugarBean to use * @param file File Template file to use * @param string $where * @param offset:0 int offset to start at * @param int:-1 $limit * @param string[]:array() $filter_fields * @param array:array() $params * Potential $params are * $params['distinct'] = use distinct key word * $params['include_custom_fields'] = (on by default) * $params['massupdate'] = true by default; * $params['handleMassupdate'] = true by default, have massupdate.php handle massupdates? * @param string:'id' $id_field */ function setup($seed, $file, $where, $params = array(), $offset = 0, $limit = -1, $filter_fields = array(), $id_field = 'id') { $this->should_process = true; if (isset ($seed->module_dir) && !$this->shouldProcess($seed->module_dir)) { return false; } if (isset ($params ['export'])) { $this->export = $params ['export']; } if (!empty ($params ['multiSelectPopup'])) { $this->multi_select_popup = $params ['multiSelectPopup']; } if (!empty ($params ['massupdate']) && $params ['massupdate'] != false) { $this->show_mass_update_form = true; $this->mass = new MassUpdate (); $this->mass->setSugarBean($seed); if (!empty ($params ['handleMassupdate']) || !isset ($params ['handleMassupdate'])) { $this->mass->handleMassUpdate(); } } $this->seed = $seed; // create filter fields based off of display columns if (empty ($filter_fields) || $this->mergeDisplayColumns) { foreach ($this->displayColumns as $columnName => $def) { $filter_fields [strtolower($columnName)] = true; if (isset ($this->seed->field_defs [strtolower($columnName)] ['type']) && strtolower($this->seed->field_defs [strtolower($columnName)] ['type']) == 'currency' && isset ($this->seed->field_defs ['currency_id'])) { $filter_fields ['currency_id'] = true; } if (!empty ($def ['related_fields'])) { foreach ($def ['related_fields'] as $field) { // id column is added by query construction function. This addition creates duplicates // and causes issues in oracle. #10165 if ($field != 'id') { $filter_fields [$field] = true; } } } if (!empty ($this->seed->field_defs [strtolower($columnName)] ['db_concat_fields'])) { foreach ($this->seed->field_defs [strtolower($columnName)] ['db_concat_fields'] as $index => $field) { if (!isset ($filter_fields [strtolower($field)]) || !$filter_fields [strtolower($field)]) { $filter_fields [strtolower($field)] = true; } } } } foreach ($this->searchColumns as $columnName => $def) { $filter_fields [strtolower($columnName)] = true; } } $filter_fields['canceled'] = true; $data = $this->lvd->getListViewData($seed, $where, $offset, $limit, $filter_fields, $params, $id_field); // add mz 2015-03-18 //var_dump($filter_fields); // add summary row to list view //echo '
';
//var_dump($_REQUEST);
//echo '';
$sum = array();
$db = $GLOBALS ['db'];
$showSumRow = false;
$list_pdf_settings = array();
$list_pdf_settings['module'] = $_REQUEST['module'];
$list_pdf_settings['table'] = $this->seed->table_name;
$list_pdf_settings['where'] = base64_encode($where);
$list_pdf_settings['order'] = $_SESSION['lvd']['last_ob'];
$list_pdf_settings['direction'] = $_SESSION['lvd']['direction'];
$list_pdf_settings['fields'] = array();
//filter fields
if ($_REQUEST['searchFormTab'] == "basic_search")
$formType = 'basic';
else
$formType = 'advanced';
if ($_REQUEST['register_date_' . $formType . '_from'] != "")
$list_pdf_settings['date_from'] = $_REQUEST['register_date_' . $formType . '_from'];
if ($_REQUEST['register_date_' . $formType . '_to'] != "")
$list_pdf_settings['date_to'] = $_REQUEST['register_date_' . $formType . '_to'];
if ($_REQUEST['ecmproductstockindex_id_' . $formType])
$list_pdf_settings['ecmproductstockindex_id'] = $_REQUEST['ecmproductstockindex_id_' . $formType];
if (is_array($_REQUEST['stock_in_id_' . $formType])) {
$list_pdf_settings['stocks_in'] = array();
foreach ($_REQUEST['stock_in_id_' . $formType] as $k => $v)
$list_pdf_settings['stocks_in'][] = $v;
}
if (is_array($_REQUEST['stock_out_id_' . $formType])) {
$list_pdf_settings['stocks_out'] = array();
foreach ($_REQUEST['stock_out_id_' . $formType] as $k => $v)
$list_pdf_settings['stocks_out'][] = $v;
}
if (is_array($_REQUEST['stock_id_' . $formType])) {
$list_pdf_settings['stocks'] = array();
foreach ($_REQUEST['stock_id_' . $formType] as $k => $v)
$list_pdf_settings['stocks'][] = $v;
}
foreach ($this->displayColumns as $name => $val) {
$tmp = array();
$tmp['name'] = strtolower($name);
$tmp['label'] = $this->displayColumns[$name]['label'];
if ($this->displayColumns [$name] ['sumType'] == 'sum') {
$innerJoin = "";
$aditiona_where = "";
$wal_query = "select * from currency_nbp_archive order by date desc limit 3";
$ik = $db->query($wal_query);
$wal = [];
while ($walutki = $db->fetchByAssoc($ik)) {
$wal[$walutki['currency_id']] = $walutki['value'];
}
if ($_REQUEST['module'] != 'EcmSales') {
$sum_q = "SELECT SUM(" . strtolower($name) . ") as sum FROM " . $this->seed->table_name;
$aditiona_where = " AND canceled ='0'";
} else {
$sum_q = "SELECT
SUM(IF(ecmsales.currency_id = '6336d9a0-ee5f-52e3-7d0c-4e6f1472b2bf',
total_netto * " . $wal['6336d9a0-ee5f-52e3-7d0c-4e6f1472b2bf'] . ",
IF(ecmsales.currency_id = '98b2b752-b0be-37c2-d2eb-511e29f81cab',
total_netto * " . $wal['98b2b752-b0be-37c2-d2eb-511e29f81cab'] . ",
IF(ecmsales.currency_id = '3c8d317e-513b-9a9b-d0e6-511e2abee625',
total_netto * " . $wal['3c8d317e-513b-9a9b-d0e6-511e2abee625'] . ",
total_netto)))) AS sum
FROM
ecmsales";
}
if ($where && $where != " ") {
$sum_q .= $innerJoin . " WHERE deleted='0' AND " . $where . ' ' . $aditiona_where;
} else {
$sum_q .= $innerJoin . " WHERE deleted='0' " . $aditiona_where;
}
$back = $db->fetchByAssoc($db->query($sum_q));
$sum [$name] = $back['sum'];
$showSumRow = true;
$tmp['summary'] = $back['sum'];
$list_pdf_settings['showSum'] = '1';
} else if ($this->displayColumns [$name] ['sumType'] == 'avg') {
$sum_q = "SELECT AVG(" . strtolower($name) . ") as avg FROM " . $this->seed->table_name;
if ($where && $where != " ")
$sum_q .= " WHERE canceled='0' AND " . $where;
$back = $db->fetchByAssoc($db->query($sum_q));
$sum [$name] = $back['avg'];
$showSumRow = true;
$tmp['summary'] = $back['avg'];
$list_pdf_settings['showSum'] = '1';
} else if ($this->displayColumns [$name] ['sumType'] == 'func') {
$func = $this->displayColumns [$name] ['sumFunc'];
if (method_exists($seed->object_name, $func) == false)
echo 'ListView Summary Error: Method ' . $seed->object_name . ':' . $func . ' not exist.
";
$moreDetailImage = SugarThemeRegistry::current()->getImageURL('MoreDetail.png');
$menuItems = '';
/* // delete
if ( ACLController::checkAccess($this->seed->module_dir,'delete',true) && $this->delete )
$menuItems .= $this->buildDeleteLink();
// compose email
if ( isset($_REQUEST['module']) && $_REQUEST['module'] != 'Users' && $_REQUEST['module'] != 'Employees' &&
( SugarModule::get($_REQUEST['module'])->moduleImplements('Company')
|| SugarModule::get($_REQUEST['module'])->moduleImplements('Person') ) )
$menuItems .= $this->buildComposeEmailLink($this->data['pageData']['offsets']['total']);
// mass update
$mass = new MassUpdate();
$mass->setSugarBean($this->seed);
if ( ACLController::checkAccess($this->seed->module_dir,'edit',true) && $this->showMassupdateFields && $mass->doMassUpdateFieldsExistForFocus() )
$menuItems .= $this->buildMassUpdateLink();
// merge
if ( $this->mailMerge )
$menuItems .= $this->buildMergeLink();
if ( $this->mergeduplicates )
$menuItems .= $this->buildMergeDuplicatesLink();
// add to target list
if ( isset($_REQUEST['module']) && in_array($_REQUEST['module'],array('Contacts','Prospects','Leads','Accounts')))
$menuItems .= $this->buildTargetList();
// favorites ( for reports )
if ( isset($_REQUEST['module'])
&& ($_REQUEST['module'] == 'Reports')
&& (isset($_REQUEST['favorite']) && $_REQUEST['favorite'] == 1) )
$menuItems .= $this->buildRemoveFavoritesLink();
elseif ( isset($_REQUEST['module']) && ($_REQUEST['module'] == 'Reports') )
$menuItems .= $this->buildFavoritesLink();
// export
if ( ACLController::checkAccess($this->seed->module_dir,'export',true) && $this->export )
$menuItems .= $this->buildExportLink(); */
// mh
if ($_REQUEST['module'] == 'EcmServices') {
// Close
$this->actionsMenuExtraItems[] = '' . $GLOBALS['mod_strings']['LBL_LISTVIEW_SERVICE_CLOSE'] . '';
// FK
$this->actionsMenuExtraItems[] = '' . $GLOBALS['mod_strings']['LBL_LISTVIEW_SERVICE_INVOICE'] . '';
// RW
$this->actionsMenuExtraItems[] = '' . $GLOBALS['mod_strings']['LBL_LISTVIEW_SERVICE_RW'] . '';
}
global $current_user;
//add mz 2012-04-02
//add component in InsideOrders
if ($_REQUEST['module'] == 'EcmInsideOrders')
$this->actionsMenuExtraItems[] = '' . $GLOBALS['mod_strings']['LBL_LISTVIEW_IMPORT_COMPONENTS'] . '';
if ($_REQUEST['module'] == 'Documents') {
$this->actionsMenuExtraItems[] = 'Zmień status na: do zapłaty';
$this->actionsMenuExtraItems[] = 'Zmień status na: przekazano do autoryzacji';
$this->actionsMenuExtraItems[] = 'Zmień status na: zapłacono';
$this->actionsMenuExtraItems[] = 'Zmień status na: kompensata';
if ($current_user->id != '6826e9ec-9e04-4f3b-76fc-4ce320b4e459' || $current_user->id != 'd8d28f31-6f5c-cd1c-f196-4ce31f2cb55e') {
$this->actionsMenuExtraItems[] = 'Zmień status na: Inne';
}
}
//create PZ from selected PurchaseOrders in action menu
if ($_REQUEST['module'] == 'EcmPurchaseOrders')
$this->actionsMenuExtraItems[] = 'Wystaw fakturę';
//create Invoice from selected WZ Documents in action menu
if ($_REQUEST['module'] == 'EcmStockDocOuts')
$this->actionsMenuExtraItems[] = '' . $GLOBALS['mod_strings']['LBL_LISTVIEW_CREATE_INVOICE'] . '';
if ($_REQUEST['module'] == 'Accounts') {
$this->actionsMenuExtraItems[] = ' Pokaż na mapie ';
$this->actionsMenuExtraItems[] = ' Wyślij email ';
$this->actionsMenuExtraItems[] = ' Udostępnij ';
}
if ($_REQUEST['module'] == 'EcmProducts') {
$this->actionsMenuExtraItems[] = ' Udostępnij ';
}
if ($_REQUEST['module'] == 'EcmSales') {
$this->actionsMenuExtraItems[] = ' Wystaw dokument WZ ';
$this->actionsMenuExtraItems[] = ' Lista komponentów ';
// $this->actionsMenuExtraItems[] = 'Zmień status';
}
if ($_REQUEST['module'] == 'EcmInvoiceOuts') {
$this->actionsMenuExtraItems[] = ' Generuj zbiorczy PDF ';
}
if ($_REQUEST['module'] == 'EcmSales') {
$this->actionsMenuExtraItems[] = ' Generuj zbiorczy PDF ';
}
if ($_REQUEST['module'] == 'EcmStockDocOuts') {
$this->actionsMenuExtraItems[] = ' Wystaw fakturę zbiorczą ';
}
//end mz
foreach ($this->actionsMenuExtraItems as $item)
$menuItems .= $item;
$menuItems = str_replace('"', '\"', $menuItems);
if (empty($menuItems))
return '';
return <<