/** * Smarty plugin * @package Smarty * @subpackage plugins */ function smarty_function_htmlReportSort($params, &$smarty) { require_once $smarty->_get_plugin_filepath('function', 'html_options'); $filter_data = $params['filter_data']; $retval .= '<tr onClick="showHelpEntry(\'sort\')"> <td colspan="2" class="cellLeftEditTableHeader"> ' . TTi18n::gettext('Sort By:') . ' </td> <td class="cellRightEditTable"> <select id="columns" name="filter_data[primary_sort]"> {html_options options=$filter_data.sort_options selected=$filter_data.primary_sort} ' . smarty_function_html_options(array('options' => $filter_data['sort_options'], 'selected' => $filter_data['primary_sort']), $smarty) . ' </select> <select id="columns" name="filter_data[primary_sort_dir]"> ' . smarty_function_html_options(array('options' => $filter_data['sort_direction_options'], 'selected' => $filter_data['primary_sort_dir']), $smarty) . ' </select> <b>' . TTi18n::gettext('then:') . '</b> <select id="columns" name="filter_data[secondary_sort]"> ' . smarty_function_html_options(array('options' => $filter_data['sort_options'], 'selected' => $filter_data['secondary_sort']), $smarty) . ' </select> <select id="columns" name="filter_data[secondary_sort_dir]"> ' . smarty_function_html_options(array('options' => $filter_data['sort_direction_options'], 'selected' => $filter_data['secondary_sort_dir']), $smarty) . ' </select> </td> </tr> '; return $retval; }
static function getByFuzzyValue($value, $options, $value_is_translated = TRUE) { // I18n: Calling gettext on the value here enables a match with the translated value in the relevant factory. // BUT... such string comparisons are messy and we really should be using getByKey for most everything. // Exceptions can be made by passing false for $value_is_translated. if ($value_is_translated == TRUE) { $value = TTi18n::gettext($value); } if (is_array($value)) { return FALSE; } if (!is_array($options)) { return FALSE; } $retarr = Misc::findClosestMatch($value, $options, 10, FALSE); Debug::Arr($retarr, 'RetArr: ', __FILE__, __LINE__, __METHOD__, 10); /* //Convert SQL search value ie: 'test%test%' to a regular expression. $value = str_replace('%', '.*', $value); foreach( $options as $key => $option_value ) { if ( preg_match('/^'.$value.'$/i', $option_value) ) { $retarr[] = $key; } } */ if (isset($retarr)) { return $retarr; } return FALSE; }
function _getFactoryOptions($name, $parent = NULL) { $retval = NULL; switch ($name) { case 'columns': $retval = array('-1100-type' => TTi18n::gettext('Type'), '-1110-status' => TTi18n::gettext('Status'), '-1210-time_stamp' => TTi18n::gettext('Date/Time'), '-1220-date' => TTi18n::gettext('Date'), '-1230-time' => TTi18n::gettext('Time'), '-1239-in_type' => TTi18n::gettext('In Type'), '-1240-in_time_stamp' => TTi18n::gettext('In Date/Time'), '-1250-in_punch_date' => TTi18n::gettext('In Date'), '-1260-in_punch_time' => TTi18n::gettext('In Time'), '-1269-out_type' => TTi18n::gettext('Out Type'), '-1270-out_time_stamp' => TTi18n::gettext('Out Date/Time'), '-1280-out_punch_date' => TTi18n::gettext('Out Date'), '-1290-out_punch_time' => TTi18n::gettext('Out Time'), '-1310-branch' => TTi18n::gettext('Branch'), '-1320-department' => TTi18n::gettext('Department'), '-1410-station_id' => TTi18n::gettext('Station ID'), '-1420-longitude' => TTi18n::gettext('Longitude'), '-1430-latitude' => TTi18n::gettext('Latitude'), '-1500-note' => TTi18n::gettext('Note')); //Since getOptions() can be called without first setting a company, we don't always know the product edition for the currently //logged in employee. if (is_object($this->getCompanyObject()) and $this->getCompanyObject()->getProductEdition() >= TT_PRODUCT_CORPORATE or !is_object($this->getCompanyObject()) and getTTProductEdition() >= TT_PRODUCT_CORPORATE) { $retval += array('-1330-job' => TTi18n::gettext('Job'), '-1340-job_item' => TTi18n::gettext('Task'), '-1350-quantity' => TTi18n::gettext('Quantity'), '-1360-bad_quantity' => TTi18n::gettext('Bad Quantity')); } $retval = Misc::addSortPrefix(Misc::prependArray($this->getUserIdentificationColumns(), Misc::trimSortPrefix($retval))); ksort($retval); break; case 'column_aliases': //Used for converting column names after they have been parsed. $retval = array('type' => 'type_id', 'status' => 'status_id', 'branch' => 'branch_id', 'department' => 'department_id', 'job' => 'job_id', 'job_item' => 'job_item_id'); break; case 'import_options': $retval = array('-1010-fuzzy_match' => TTi18n::getText('Enable smart matching.'), '-1020-disable_rounding' => TTi18n::getText('Disable rounding.')); break; case 'parse_hint': $upf = TTnew('UserPreferenceFactory'); $retval = array('branch' => array('-1010-name' => TTi18n::gettext('Name'), '-1010-manual_id' => TTi18n::gettext('Code')), 'department' => array('-1010-name' => TTi18n::gettext('Name'), '-1010-manual_id' => TTi18n::gettext('Code')), 'job' => array('-1010-name' => TTi18n::gettext('Name'), '-1010-manual_id' => TTi18n::gettext('Code')), 'job_item' => array('-1010-name' => TTi18n::gettext('Name'), '-1010-manual_id' => TTi18n::gettext('Code')), 'time_stamp' => $upf->getOptions('date_time_format'), 'in_time_stamp' => $upf->getOptions('date_time_format'), 'out_time_stamp' => $upf->getOptions('date_time_format'), 'date' => $upf->getOptions('date_format'), 'in_punch_date' => $upf->getOptions('date_format'), 'out_punch_date' => $upf->getOptions('date_format'), 'time' => $upf->getOptions('time_format'), 'in_punch_time' => $upf->getOptions('time_format'), 'out_punch_time' => $upf->getOptions('time_format')); break; } return $retval; }
public function getTemplateSchema($name = NULL) { $template_schema = array(array('page' => 1, 'template_page' => 1), array('function' => 'drawPiecemeal', 'value' => '_____________________________', 'coordinates' => array(array('x' => 47, 'y' => 245, 'h' => 5, 'w' => 60, 'halign' => 'L'), array('x' => 147, 'y' => 245, 'h' => 5, 'w' => 60, 'halign' => 'L'), array('x' => 147, 'y' => 255, 'h' => 5, 'w' => 60, 'halign' => 'C')), 'font' => array('size' => 10, 'type' => '')), array('function' => 'drawSegments', 'value' => array(TTi18n::gettext('Employee Signature:'), TTi18n::gettext('Supervisor Signature:'), TTi18n::gettext('(print name)')), 'coordinates' => array(array('x' => 7, 'y' => 245, 'h' => 5, 'w' => 40, 'halign' => 'L'), array('x' => 107, 'y' => 245, 'h' => 5, 'w' => 40, 'halign' => 'R'), array('x' => 140, 'y' => 260, 'h' => 5, 'w' => 60, 'halign' => 'C')), 'font' => array('size' => 10, 'type' => '')), 'full_name' => array('function' => 'drawPiecemeal', 'coordinates' => array(array('x' => 20, 'y' => 28, 'h' => 5, 'w' => 100, 'halign' => 'L'), array('x' => 40, 'y' => 250, 'h' => 5, 'w' => 60, 'halign' => 'C')), 'font' => array('size' => 10, 'type' => '')), 'amount_words_cents' => array('function' => array('filterAmountWordsCents', 'drawNormal'), 'coordinates' => array('x' => 20, 'y' => 36, 'h' => 5, 'w' => 100, 'halign' => 'J'), 'font' => array('size' => 10, 'type' => '')), 'date' => array('function' => array('filterDate', 'drawNormal'), 'coordinates' => array('x' => 100, 'y' => 18, 'h' => 5, 'w' => 38, 'halign' => 'L'), 'font' => array('size' => 10, 'type' => '')), 'amount_padded' => array('function' => array('filterAmountPadded', 'drawNormal'), 'coordinates' => array('x' => 136, 'y' => 27, 'h' => 5, 'w' => 24, 'halign' => 'L'), 'font' => array('size' => 10, 'type' => '')), 'stub_left_column' => array('function' => 'drawPiecemeal', 'coordinates' => array(array('x' => 15, 'y' => 105, 'h' => 95, 'w' => 96, 'halign' => 'L'), array('x' => 15, 'y' => 200, 'h' => 45, 'w' => 96, 'halign' => 'L')), 'font' => array('size' => 10, 'type' => ''), 'multicell' => TRUE), 'stub_right_column' => array('function' => 'drawPiecemeal', 'coordinates' => array(array('x' => 111, 'y' => 105, 'h' => 95, 'w' => 96, 'halign' => 'R'), array('x' => 111, 'y' => 200, 'h' => 45, 'w' => 96, 'halign' => 'R')), 'font' => array('size' => 10, 'type' => ''), 'multicell' => TRUE)); if (isset($template_schema[$name])) { return $name; } else { return $template_schema; } }
public function getTemplateSchema($name = NULL) { $template_schema = array(array('page' => 1, 'template_page' => 1, 'value' => TTi18n::gettext('Date:') . ' ', 'coordinates' => array('x' => 172, 'y' => 28, 'h' => 10, 'w' => 10, 'halign' => 'C'), 'font' => array('size' => 10, 'type' => '')), 'full_name' => array('coordinates' => array('x' => 25, 'y' => 41, 'h' => 5, 'w' => 100, 'halign' => 'L'), 'font' => array('size' => 10, 'type' => '')), 'amount_words' => array('function' => array('filterAmountWords', 'drawNormal'), 'coordinates' => array('x' => 25, 'y' => 49, 'h' => 10, 'w' => 100, 'halign' => 'L'), 'font' => array('size' => 10, 'type' => '')), 'amount_cents' => array('function' => array('filterAmountCents', 'drawNormal'), 'coordinates' => array('x' => 125, 'y' => 49, 'h' => 10, 'w' => 15, 'halign' => 'L'), 'font' => array('size' => 10, 'type' => '')), 'date' => array('function' => array('filterDate', 'drawNormal'), 'coordinates' => array('x' => 182, 'y' => 28, 'h' => 10, 'w' => 25, 'halign' => 'C'), 'font' => array('size' => 10, 'type' => '')), 'amount_padded' => array('function' => array('filterAmountPadded', 'drawNormal'), 'coordinates' => array('x' => 172, 'y' => 41, 'h' => 10, 'w' => 35, 'halign' => 'C'), 'font' => array('size' => 10, 'type' => '')), 'stub_left_column' => array('function' => 'drawPiecemeal', 'coordinates' => array(array('x' => 15, 'y' => 105, 'h' => 100, 'w' => 96, 'halign' => 'L'), array('x' => 15, 'y' => 205, 'h' => 100, 'w' => 96, 'halign' => 'L')), 'font' => array('size' => 10, 'type' => ''), 'multicell' => TRUE), 'stub_right_column' => array('function' => 'drawPiecemeal', 'coordinates' => array(array('x' => 111, 'y' => 105, 'h' => 100, 'w' => 96, 'halign' => 'R'), array('x' => 111, 'y' => 205, 'h' => 100, 'w' => 96, 'halign' => 'R')), 'font' => array('size' => 10, 'type' => ''), 'multicell' => TRUE)); if (isset($template_schema[$name])) { return $name; } else { return $template_schema; } }
function setOrder($value) { $value = trim($value); if ($this->Validator->isNumeric('order', $value, TTi18n::gettext('Order is invalid'))) { $this->data['order_value'] = $value; return TRUE; } return FALSE; }
function setPremiumPolicy($id) { $id = trim($id); $pplf = new PremiumPolicyListFactory(); if ($id == 0 or $this->Validator->isResultSetWithRows('premium_policy', $pplf->getByID($id), TTi18n::gettext('Selected Premium Policy is invalid'))) { $this->data['premium_policy_id'] = $id; return TRUE; } return FALSE; }
function setRoundInterValPolicy($id) { $id = trim($id); $riplf = TTnew('RoundIntervalPolicyListFactory'); if ($id == 0 or $this->Validator->isResultSetWithRows('round_inteval_policy', $riplf->getByID($id), TTi18n::gettext('Selected Interval Rounding Policy is invalid'))) { $this->data['round_interval_policy_id'] = $id; return TRUE; } return FALSE; }
function setDepartment($id) { $id = trim($id); $dlf = new DepartmentListFactory(); if ($this->Validator->isResultSetWithRows('department', $dlf->getByID($id), TTi18n::gettext('Selected Department is invalid'))) { $this->data['department_id'] = $id; return TRUE; } return FALSE; }
function setOverTimePolicy($id) { $id = trim($id); $otplf = new OverTimePolicyListFactory(); if ($id == 0 or $this->Validator->isResultSetWithRows('over_time_policy', $otplf->getByID($id), TTi18n::gettext('Selected Overtime Policy is invalid'))) { $this->data['over_time_policy_id'] = $id; return TRUE; } return FALSE; }
function getOptions($name) { $retval = NULL; switch ($name) { case 'type': $retval = array('government' => TTi18n::gettext('Government (Multiple Employees/Page)'), 'employee' => TTi18n::gettext('Employee (One Employee/Page)')); break; } return $retval; }
function setGroup($id) { $id = trim($id); $uglf = new UserGroupListFactory(); if ($id == 0 or $this->Validator->isResultSetWithRows('group', $uglf->getByID($id), TTi18n::gettext('Selected Group is invalid'))) { $this->data['group_id'] = $id; return TRUE; } return FALSE; }
function setBranch($id) { $id = trim($id); $blf = TTnew('BranchListFactory'); if ($id != 0 or $this->Validator->isResultSetWithRows('company', $blf->getByID($id), TTi18n::gettext('Company is invalid'))) { $this->data['branch_id'] = $id; return TRUE; } return FALSE; }
function setBranch($id) { $id = trim($id); $blf = new BranchListFactory(); if ($this->Validator->isResultSetWithRows('branch', $blf->getByID($id), TTi18n::gettext('Selected Branch is invalid'))) { $this->data['branch_id'] = $id; return TRUE; } return FALSE; }
function setUser($id) { $id = trim($id); $ulf = TTnew('UserListFactory'); if ($this->Validator->isResultSetWithRows('user', $ulf->getByID($id), TTi18n::gettext('User is invalid'))) { $this->data['user_id'] = $id; return TRUE; } return FALSE; }
function setAccrualPolicy($id) { $id = trim($id); $aplf = TTnew('AccrualPolicyListFactory'); if ($id == 0 or $this->Validator->isResultSetWithRows('over_time_policy', $aplf->getByID($id), TTi18n::gettext('Selected Accrual Policy is invalid'))) { $this->data['accrual_policy_id'] = $id; return TRUE; } return FALSE; }
function setUser($id) { $id = trim($id); $ulf = new UserListFactory(); if ($id != 0 and $this->Validator->isResultSetWithRows('user', $ulf->getByID($id), TTi18n::gettext('Selected Employee is invalid')) and $this->Validator->isTrue('user', $this->isUniqueUser($id), TTi18n::gettext('Selected Employee is already assigned to another Permission Group'))) { $this->data['user_id'] = $id; return TRUE; } return FALSE; }
function setIncludeUser($id) { $id = trim($id); $ulf = new UserListFactory(); if ($this->Validator->isResultSetWithRows('include_user', $ulf->getByID($id), TTi18n::gettext('Selected User is invalid'))) { $this->data['user_id'] = $id; return TRUE; } return FALSE; }
function setRecurringHoliday($id) { $id = trim($id); $rhlf = new RecurringHolidayListFactory(); if ($id != 0 and $this->Validator->isResultSetWithRows('recurring_holiday', $rhlf->getByID($id), TTi18n::gettext('Selected Recurring Holiday is invalid'))) { $this->data['recurring_holiday_id'] = $id; return TRUE; } return FALSE; }
function setCompanyDeduction($id) { $id = trim($id); Debug::Text('ID: ' . $id, __FILE__, __LINE__, __METHOD__, 10); $cdlf = new CompanyDeductionListFactory(); if ($this->Validator->isResultSetWithRows('company_deduction', $cdlf->getByID($id), TTi18n::gettext('Deduction is invalid'))) { $this->data['company_deduction_id'] = $id; return TRUE; } return FALSE; }
function getOptions($name) { $retval = NULL; switch ($name) { case 'status': $retval = array('-1010-O' => TTi18n::getText('Original'), '-1020-A' => TTi18n::getText('Amended'), '-1030-C' => TTi18n::getText('Cancel')); break; case 'type': $retval = array('government' => TTi18n::gettext('Government (Multiple Employees/Page)'), 'employee' => TTi18n::gettext('Employee (One Employee/Page)')); break; } return $retval; }
function TimeSheetFormatArrayByDate($input_arr, $type_arr, $calendar_array, $name_key, $id_key = NULL) { //Debug::text('Group Array While Loop: ', __FILE__, __LINE__, __METHOD__,10); //Debug::Arr($input_arr, 'Input Array: ', __FILE__, __LINE__, __METHOD__,10); //Debug::Arr($type_arr, 'Type Array: ', __FILE__, __LINE__, __METHOD__,10); $x = 0; $stop = FALSE; $max_no_punch_count = count($calendar_array); while ($stop == FALSE) { if (isset($type_arr[$x])) { $type_id = $type_arr[$x]; } else { $type_id = NULL; } //Debug::text('===========================================================', __FILE__, __LINE__, __METHOD__,10); //Debug::text('While Loop: '. $x .' Max No Punch Count: '. $max_no_punch_count .' Type ID: '. $type_id .' ... ', __FILE__, __LINE__, __METHOD__,10); $no_punch_count = 0; foreach ($calendar_array as $cal_arr) { //Debug::text('Calendar Day: '. $cal_arr['day_of_month'] .' Epoch: '.$cal_arr['epoch'] , __FILE__, __LINE__, __METHOD__,10); if (isset($input_arr[$cal_arr['epoch']][$type_id])) { //Debug::text('Found Punch for Day: '. $cal_arr['day_of_month'] , __FILE__, __LINE__, __METHOD__,10); $total_arr = $input_arr[$cal_arr['epoch']][$type_id]; unset($input_arr[$cal_arr['epoch']][$type_id]); if ($total_arr[$name_key] == '') { $total_rows[$x]['name'] = TTi18n::gettext('N/A'); } else { $total_rows[$x]['name'] = $total_arr[$name_key]; } $total_rows[$x]['type_and_policy_id'] = $type_id; if ($id_key != '') { $total_rows[$x]['id'] = $total_arr[$id_key]; } } else { //Debug::text('NO Punch found for Day: '. $cal_arr['day_of_month'] .' No Punch Count: '. $no_punch_count, __FILE__, __LINE__, __METHOD__,10); $total_arr = NULL; $no_punch_count++; } $total_rows[$x]['data'][$cal_arr['epoch']] = $total_arr; } //Debug::text('No Punch Count: '. $no_punch_count .' Max: '. $max_no_punch_count, __FILE__, __LINE__, __METHOD__,10); if ($x == 100 or $no_punch_count == $max_no_punch_count) { //Debug::text('Stopping Loop at: '. $x, __FILE__, __LINE__, __METHOD__,10); //Clear last row, as its blank; array_pop($total_rows); $stop = TRUE; } $x++; } //var_dump($total_rows); return $total_rows; }
/** * Smarty plugin * @package Smarty * @subpackage plugins */ function smarty_function_htmlReportGroup($params, &$smarty) { require_once $smarty->_get_plugin_filepath('function', 'html_options'); $filter_data = $params['filter_data']; if (isset($params['total'])) { $total = $params['total']; } else { $total = 2; } $retval .= '<tr onClick="showHelpEntry(\'group_by\')"> <td colspan="2" class="cellLeftEditTableHeader"> ' . TTi18n::gettext('Group By:') . ' </td> <td class="cellRightEditTable"> <select id="columns" name="filter_data[primary_group_by]"> ' . smarty_function_html_options(array('options' => $filter_data['group_by_options'], 'selected' => $filter_data['primary_group_by']), $smarty) . ' </select>'; if ($total >= 2) { $retval .= ' <b>' . TTi18n::gettext('then:') . '</b> <select id="columns" name="filter_data[secondary_group_by]"> ' . smarty_function_html_options(array('options' => $filter_data['group_by_options'], 'selected' => $filter_data['secondary_group_by']), $smarty) . ' </select>'; } if ($total >= 3) { $retval .= ' <br> <select id="columns" name="filter_data[tertiary_group_by]"> ' . smarty_function_html_options(array('options' => $filter_data['group_by_options'], 'selected' => $filter_data['tertiary_group_by']), $smarty) . ' </select>'; } if ($total >= 4) { $retval .= ' <b>' . TTi18n::gettext('then:') . '</b> <select id="columns" name="filter_data[quaternary_group_by]"> ' . smarty_function_html_options(array('options' => $filter_data['group_by_options'], 'selected' => $filter_data['quaternary_group_by']), $smarty) . ' </select>'; } $retval .= ' </td> </tr> '; return $retval; }
/** * Smarty plugin * @package Smarty * @subpackage plugins */ function smarty_function_htmlReportSave($params, &$smarty) { require_once $smarty->_get_plugin_filepath('function', 'html_options'); require_once $smarty->_get_plugin_filepath('function', 'isvalid'); $generic_data = $params['generic_data']; $object = $params['object']; if (isset($params['button_prefix'])) { $submit_button_prefix = $params['button_prefix'] . ':'; } else { $submit_button_prefix = 'action:'; } $onclick_html = $params['onclick']; if (isset($params['action_element_id'])) { $action_element_id = $params['action_element_id']; } else { $action_element_id = 'action'; } $retval .= '<tr> <td colspan="2" class="' . smarty_function_isvalid(array('object' => $object, 'label' => 'name', 'value' => 'cellLeftEditTable'), $smarty) . '"> ' . TTi18n::gettext('Name:') . ' </td> <td class="cellRightEditTable"> <input type="text" name="generic_data[name]" value="' . $generic_data['name'] . '"> <select id="generic_id" name="generic_data[id]" onChange="' . $onclick_html . '; this.form.target = \'_self\';document.getElementById(\'' . $action_element_id . '\').name = \'' . $submit_button_prefix . 'load\';document.getElementById(\'' . $action_element_id . '\').value = \'Load\'; this.form.submit()"> ' . smarty_function_html_options(array('options' => $generic_data['saved_report_options'], 'selected' => $generic_data['id']), $smarty) . ' </select> ' . TTi18n::gettext('Default:') . ' <input type="checkbox" class="checkbox" name="generic_data[is_default]" value="1"> <input type="BUTTON" name="' . $submit_button_prefix . 'action" value="' . TTi18n::gettext('Save') . '" onClick="selectAllReportCriteria(); ' . $onclick_html . '; this.form.target = \'_self\';document.getElementById(\'' . $action_element_id . '\').name = \'' . $submit_button_prefix . 'save\'; document.getElementById(\'' . $action_element_id . '\').value = \'Save\'; this.form.submit()"> <input type="BUTTON" name="' . $submit_button_prefix . 'action" value="' . TTi18n::gettext('Delete') . '" onClick="' . $onclick_html . '; this.form.target = \'_self\';document.getElementById(\'' . $action_element_id . '\').name = \'' . $submit_button_prefix . 'delete\'; document.getElementById(\'' . $action_element_id . '\').value = \'Delete\'; this.form.submit()"> </td> </tr> '; return $retval; }
protected function _getOptions($name, $params = NULL) { $retval = NULL; switch ($name) { case 'output_format': $retval = parent::getOptions('default_output_format'); break; case 'default_setup_fields': $retval = array('template', 'columns'); break; case 'setup_fields': $retval = array('-1000-template' => TTi18n::gettext('Template'), '-2010-user_status_id' => TTi18n::gettext('Employee Status'), '-2020-user_group_id' => TTi18n::gettext('Employee Group'), '-2030-user_title_id' => TTi18n::gettext('Employee Title'), '-2035-user_tag' => TTi18n::gettext('Employee Tags'), '-2040-include_user_id' => TTi18n::gettext('Employee Include'), '-2050-exclude_user_id' => TTi18n::gettext('Employee Exclude'), '-2060-default_branch_id' => TTi18n::gettext('Default Branch'), '-2070-default_department_id' => TTi18n::gettext('Default Department'), '-2000-currency_id' => TTi18n::gettext('Currency'), '-2100-custom_filter' => TTi18n::gettext('Custom Filter'), '-5000-columns' => TTi18n::gettext('Display Columns'), '-5010-group' => TTi18n::gettext('Group By'), '-5020-sub_total' => TTi18n::gettext('SubTotal By'), '-5030-sort' => TTi18n::gettext('Sort By')); break; case 'date_columns': $retval = array_merge(TTDate::getReportDateOptions('hire', TTi18n::getText('Hire Date'), 17, FALSE), TTDate::getReportDateOptions('termination', TTi18n::getText('Termination Date'), 18, FALSE), TTDate::getReportDateOptions('birth', TTi18n::getText('Birth Date'), 19, FALSE), TTDate::getReportDateOptions('created', TTi18n::getText('Created Date'), 20, FALSE), TTDate::getReportDateOptions('updated', TTi18n::getText('Updated Date'), 21, FALSE)); break; case 'custom_columns': //Get custom fields for report data. $oflf = TTnew('OtherFieldListFactory'); //User and Punch fields conflict as they are merged together in a secondary process. $other_field_names = $oflf->getByCompanyIdAndTypeIdArray($this->getUserObject()->getCompany(), array(10), array(10 => '')); if (is_array($other_field_names)) { $retval = Misc::addSortPrefix($other_field_names, 9000); } break; case 'report_custom_column': if (getTTProductEdition() >= TT_PRODUCT_PROFESSIONAL) { $rcclf = TTnew('ReportCustomColumnListFactory'); // Because the Filter type is just only a filter criteria and not need to be as an option of Display Columns, Group By, Sub Total, Sort By dropdowns. // So just get custom columns with Selection and Formula. $custom_column_labels = $rcclf->getByCompanyIdAndTypeIdAndFormatIdAndScriptArray($this->getUserObject()->getCompany(), $rcclf->getOptions('display_column_type_ids'), NULL, 'UserSummaryReport', 'custom_column'); if (is_array($custom_column_labels)) { $retval = Misc::addSortPrefix($custom_column_labels, 9500); } } break; case 'report_custom_filters': if (getTTProductEdition() >= TT_PRODUCT_PROFESSIONAL) { $rcclf = TTnew('ReportCustomColumnListFactory'); $retval = $rcclf->getByCompanyIdAndTypeIdAndFormatIdAndScriptArray($this->getUserObject()->getCompany(), $rcclf->getOptions('filter_column_type_ids'), NULL, 'UserSummaryReport', 'custom_column'); } break; case 'report_dynamic_custom_column': if (getTTProductEdition() >= TT_PRODUCT_PROFESSIONAL) { $rcclf = TTnew('ReportCustomColumnListFactory'); $report_dynamic_custom_column_labels = $rcclf->getByCompanyIdAndTypeIdAndFormatIdAndScriptArray($this->getUserObject()->getCompany(), $rcclf->getOptions('display_column_type_ids'), $rcclf->getOptions('dynamic_format_ids'), 'UserSummaryReport', 'custom_column'); if (is_array($report_dynamic_custom_column_labels)) { $retval = Misc::addSortPrefix($report_dynamic_custom_column_labels, 9700); } } break; case 'report_static_custom_column': if (getTTProductEdition() >= TT_PRODUCT_PROFESSIONAL) { $rcclf = TTnew('ReportCustomColumnListFactory'); $report_static_custom_column_labels = $rcclf->getByCompanyIdAndTypeIdAndFormatIdAndScriptArray($this->getUserObject()->getCompany(), $rcclf->getOptions('display_column_type_ids'), $rcclf->getOptions('static_format_ids'), 'UserSummaryReport', 'custom_column'); if (is_array($report_static_custom_column_labels)) { $retval = Misc::addSortPrefix($report_static_custom_column_labels, 9700); } } break; case 'formula_columns': $retval = TTMath::formatFormulaColumns(array_merge(array_diff($this->getOptions('static_columns'), (array) $this->getOptions('report_static_custom_column')), $this->getOptions('dynamic_columns'))); break; case 'filter_columns': $retval = TTMath::formatFormulaColumns(array_merge($this->getOptions('static_columns'), $this->getOptions('dynamic_columns'), (array) $this->getOptions('report_dynamic_custom_column'))); break; case 'static_columns': $retval = array('-1000-first_name' => TTi18n::gettext('First Name'), '-1001-middle_name' => TTi18n::gettext('Middle Name'), '-1002-last_name' => TTi18n::gettext('Last Name'), '-1005-full_name' => TTi18n::gettext('Full Name'), '-1010-user_name' => TTi18n::gettext('User Name'), '-1020-phone_id' => TTi18n::gettext('Quick Punch ID'), '-1030-employee_number' => TTi18n::gettext('Employee #'), '-1032-employee_number_barcode' => TTi18n::gettext('Barcode'), '-1034-employee_number_qrcode' => TTi18n::gettext('QRcode'), '-1040-status' => TTi18n::gettext('Status'), '-1050-title' => TTi18n::gettext('Title'), '-1080-user_group' => TTi18n::gettext('Group'), '-1090-default_branch' => TTi18n::gettext('Branch'), '-1100-default_department' => TTi18n::gettext('Department'), '-1120-default_job' => TTi18n::gettext('Job'), '-1150-default_job_item' => TTi18n::gettext('Task'), '-1190-ethnic_group' => TTi18n::gettext('Ethnicity'), '-1200-permission_control' => TTi18n::gettext('Permission Group'), '-1210-pay_period_schedule' => TTi18n::gettext('Pay Period Schedule'), '-1220-policy_group' => TTi18n::gettext('Policy Group'), '-1310-sex' => TTi18n::gettext('Gender'), '-1320-address1' => TTi18n::gettext('Address 1'), '-1330-address2' => TTi18n::gettext('Address 2'), '-1340-city' => TTi18n::gettext('City'), '-1350-province' => TTi18n::gettext('Province/State'), '-1360-country' => TTi18n::gettext('Country'), '-1370-postal_code' => TTi18n::gettext('Postal Code'), '-1380-work_phone' => TTi18n::gettext('Work Phone'), '-1391-work_phone_ext' => TTi18n::gettext('Work Phone Ext'), '-1400-home_phone' => TTi18n::gettext('Home Phone'), '-1410-mobile_phone' => TTi18n::gettext('Mobile Phone'), '-1420-fax_phone' => TTi18n::gettext('Fax Phone'), '-1430-home_email' => TTi18n::gettext('Home Email'), '-1440-work_email' => TTi18n::gettext('Work Email'), '-1480-sin' => TTi18n::gettext('SIN/SSN'), '-1490-note' => TTi18n::gettext('Note'), '-1495-tag' => TTi18n::gettext('Tags'), '-1499-hierarchy_control_display' => TTi18n::gettext('Hierarchy'), '-1499-hierarchy_level_display' => TTi18n::gettext('Hierarchy Superiors'), '-1500-institution' => TTi18n::gettext('Bank Institution'), '-1510-transit' => TTi18n::gettext('Bank Transit/Routing'), '-1520-account' => TTi18n::gettext('Bank Account'), '-1619-currency' => TTi18n::gettext('Currency'), '-1620-current_currency' => TTi18n::gettext('Current Currency'), '-1625-type' => TTi18n::gettext('Wage Type'), '-1640-effective_date' => TTi18n::gettext('Wage Effective Date'), '-1650-language_display' => TTi18n::gettext('Language'), '-1660-date_format_display' => TTi18n::gettext('Date Format'), '-1665-time_format_display' => TTi18n::gettext('Time Format'), '-1670-time_unit_format_display' => TTi18n::gettext('Time Units'), '-1680-time_zone_display' => TTi18n::gettext('Time Zone'), '-1690-items_per_page' => TTi18n::gettext('Rows Per page'), '-1695-password_updated_date' => TTi18n::gettext('Password Updated Date'), '-1699-hire_date_age' => TTi18n::gettext('Length of Service'), '-1899-birth_date_age' => TTi18n::gettext('Age'), '-2205-created_by' => TTi18n::gettext('Created By'), '-2215-updated_by' => TTi18n::gettext('Updated By')); $retval = array_merge($retval, (array) $this->getOptions('date_columns'), (array) $this->getOptions('custom_columns'), (array) $this->getOptions('report_static_custom_column')); ksort($retval); break; case 'dynamic_columns': $retval = array('-1630-wage' => TTi18n::gettext('Wage'), '-1635-hourly_rate' => TTi18n::gettext('Hourly Rate'), '-1636-labor_burden_hourly_rate' => TTi18n::gettext('Hourly Rate w/Burden'), '-1637-labor_burden_percent' => TTi18n::gettext('Labor Burden Percent'), '-2000-total_user' => TTi18n::gettext('Total Employees')); break; case 'columns': $retval = array_merge($this->getOptions('static_columns'), $this->getOptions('dynamic_columns'), (array) $this->getOptions('report_dynamic_custom_column')); break; case 'column_format': //Define formatting function for each column. $columns = array_merge($this->getOptions('dynamic_columns'), (array) $this->getOptions('report_custom_column')); if (is_array($columns)) { foreach ($columns as $column => $name) { if (strpos($column, 'wage') !== FALSE or strpos($column, 'hourly_rate') !== FALSE) { $retval[$column] = 'currency'; } elseif (strpos($column, 'labor_burden_percent') !== FALSE) { $retval[$column] = 'percent'; } } } $retval['password_updated_date'] = 'time_stamp'; $retval['effective_date'] = 'date_stamp'; break; case 'aggregates': $retval = array(); $dynamic_columns = array_keys(Misc::trimSortPrefix(array_merge($this->getOptions('dynamic_columns'), (array) $this->getOptions('report_dynamic_custom_column')))); if (is_array($dynamic_columns)) { foreach ($dynamic_columns as $column) { switch ($column) { default: if (strpos($column, 'hourly_rate') !== FALSE or strpos($column, 'wage') !== FALSE or strpos($column, 'labor_burden_percent') !== FALSE) { $retval[$column] = 'avg'; } else { $retval[$column] = 'sum'; } } } } break; case 'templates': $retval = array('-1010-by_employee+contact' => TTi18n::gettext('Contact Information By Employee'), '-1020-by_employee+employment' => TTi18n::gettext('Employment Information By Employee'), '-1030-by_employee+address' => TTi18n::gettext('Addresses By Employee'), '-1040-by_employee+wage' => TTi18n::gettext('Wages By Employee'), '-1050-by_employee+bank' => TTi18n::gettext('Bank Information By Employee'), '-1060-by_employee+preference' => TTi18n::gettext('Preferences By Employee'), '-1070-by_employee+birth_date' => TTi18n::gettext('Birthdays By Employee'), '-1080-by_branch_by_employee+contact' => TTi18n::gettext('Contact Information By Branch/Employee'), '-1090-by_branch_by_employee+address' => TTi18n::gettext('Addresses By Branch/Employee'), '-1110-by_branch_by_employee+wage' => TTi18n::gettext('Wages by Branch/Employee'), '-1120-by_branch+total_user' => TTi18n::gettext('Total Employees by Branch'), '-1130-by_department_by_employee+contact' => TTi18n::gettext('Contact Information By Department/Employee'), '-1140-by_department_by_employee+address' => TTi18n::gettext('Addresses By Department/Employee'), '-1150-by_department_by_employee+wage' => TTi18n::gettext('Wages by Department/Employee'), '-1160-by_department+total_user' => TTi18n::gettext('Total Employees by Department'), '-1170-by_branch_by_department_by_employee+contact' => TTi18n::gettext('Contact Information By Branch/Department/Employee'), '-1180-by_branch_by_department_by_employee+address' => TTi18n::gettext('Addresses By Branch/Department/Employee'), '-1190-by_branch_by_department+wage' => TTi18n::gettext('Wages by Branch/Department/Employee'), '-1200-by_branch_by_department+total_user' => TTi18n::gettext('Total Employees by Branch/Department'), '-1205-by_hierarchy_by_branch_by_department_by_employee+contact' => TTi18n::gettext('Contact Information By Hierarchy/Branch/Department/Employee'), '-1210-by_type_by_employee+wage' => TTi18n::gettext('Wages By Type/Employee'), '-1220-by_type+total_user' => TTi18n::gettext('Total Employees by Wage Type'), '-1230-by_hired_month+total_user' => TTi18n::gettext('Total Employees Hired By Month'), '-1240-by_termination_month+total_user' => TTi18n::gettext('Total Employees Terminated By Month')); break; case 'template_config': $template = strtolower(Misc::trimSortPrefix($params['template'])); if (isset($template) and $template != '') { switch ($template) { //Contact case 'by_employee+contact': $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'work_phone'; $retval['columns'][] = 'work_phone_ext'; $retval['columns'][] = 'work_email'; $retval['columns'][] = 'mobile_phone'; $retval['columns'][] = 'home_phone'; $retval['columns'][] = 'home_email'; $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; case 'by_branch_by_employee+contact': $retval['columns'][] = 'default_branch'; $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'work_phone'; $retval['columns'][] = 'work_phone_ext'; $retval['columns'][] = 'work_email'; $retval['columns'][] = 'mobile_phone'; $retval['columns'][] = 'home_phone'; $retval['columns'][] = 'home_email'; $retval['sort'][] = array('default_branch' => 'asc'); $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; case 'by_department_by_employee+contact': $retval['columns'][] = 'default_department'; $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'work_phone'; $retval['columns'][] = 'work_phone_ext'; $retval['columns'][] = 'work_email'; $retval['columns'][] = 'mobile_phone'; $retval['columns'][] = 'home_phone'; $retval['columns'][] = 'home_email'; $retval['sort'][] = array('default_department' => 'asc'); $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; case 'by_branch_by_department_by_employee+contact': $retval['columns'][] = 'default_branch'; $retval['columns'][] = 'default_department'; $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'work_phone'; $retval['columns'][] = 'work_phone_ext'; $retval['columns'][] = 'work_email'; $retval['columns'][] = 'mobile_phone'; $retval['columns'][] = 'home_phone'; $retval['columns'][] = 'home_email'; $retval['sort'][] = array('default_branch' => 'asc'); $retval['sort'][] = array('default_department' => 'asc'); $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; case 'by_hierarchy_by_branch_by_department_by_employee+contact': $retval['columns'][] = 'hierarchy_control_display'; $retval['columns'][] = 'default_branch'; $retval['columns'][] = 'default_department'; $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'work_phone'; $retval['columns'][] = 'work_phone_ext'; $retval['columns'][] = 'work_email'; $retval['columns'][] = 'mobile_phone'; $retval['columns'][] = 'home_phone'; $retval['columns'][] = 'home_email'; $retval['sort'][] = array('hierarchy_control_display' => 'asc'); $retval['sort'][] = array('default_branch' => 'asc'); $retval['sort'][] = array('default_department' => 'asc'); $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; //Birth Dates //Birth Dates case 'by_employee+birth_date': $retval['columns'][] = 'birth-date_month'; $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'birth-date_stamp'; $retval['columns'][] = 'birth_date_age'; $retval['sub_total'][] = 'birth-date_month'; $retval['sort'][] = array('birth-date_month' => 'asc'); $retval['sort'][] = array('birth-date_dom' => 'asc'); $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; //Employment //Employment case 'by_employee+employment': $retval['columns'][] = 'status'; $retval['columns'][] = 'default_branch'; $retval['columns'][] = 'default_department'; $retval['columns'][] = 'title'; $retval['columns'][] = 'user_group'; $retval['columns'][] = 'ethnic_group'; $retval['columns'][] = 'sex'; $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'birth_date_age'; $retval['columns'][] = 'hire-date_stamp'; $retval['columns'][] = 'termination-date_stamp'; $retval['columns'][] = 'hire_date_age'; $retval['sort'][] = array('status' => 'asc'); $retval['sort'][] = array('default_branch' => 'asc'); $retval['sort'][] = array('default_department' => 'asc'); $retval['sort'][] = array('title' => 'asc'); $retval['sort'][] = array('user_group' => 'asc'); $retval['sort'][] = array('ethnic_group' => 'asc'); $retval['sort'][] = array('sex' => 'asc'); $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); //$retval['sort'][] = array('hire-date_month' => 'asc'); break; case 'by_hired_month+total_user': $retval['columns'][] = 'hire-date_year'; $retval['columns'][] = 'hire-date_month_year'; $retval['columns'][] = 'total_user'; $retval['group'][] = 'hire-date_year'; $retval['group'][] = 'hire-date_month_year'; $retval['sub_total'][] = 'hire-date_year'; $retval['sort'][] = array('hire-date_year' => 'desc'); $retval['sort'][] = array('hire-date_month_year' => 'desc'); $retval['sort'][] = array('total_user' => 'desc'); break; case 'by_termination_month+total_user': $retval['columns'][] = 'termination-date_year'; $retval['columns'][] = 'termination-date_month_year'; $retval['columns'][] = 'total_user'; $retval['group'][] = 'termination-date_year'; $retval['group'][] = 'termination-date_month_year'; $retval['sub_total'][] = 'termination-date_year'; $retval['sort'][] = array('termination-date_year' => 'desc'); $retval['sort'][] = array('termination-date_month_year' => 'desc'); $retval['sort'][] = array('total_user' => 'desc'); break; //Address //Address case 'by_employee+address': $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'address1'; $retval['columns'][] = 'address2'; $retval['columns'][] = 'city'; $retval['columns'][] = 'country'; $retval['columns'][] = 'province'; $retval['columns'][] = 'postal_code'; $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; case 'by_branch_by_employee+address': $retval['columns'][] = 'default_branch'; $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'address1'; $retval['columns'][] = 'address2'; $retval['columns'][] = 'city'; $retval['columns'][] = 'country'; $retval['columns'][] = 'province'; $retval['columns'][] = 'postal_code'; $retval['sort'][] = array('default_branch' => 'asc'); $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; case 'by_department_by_employee+address': $retval['columns'][] = 'default_department'; $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'address1'; $retval['columns'][] = 'address2'; $retval['columns'][] = 'city'; $retval['columns'][] = 'country'; $retval['columns'][] = 'province'; $retval['columns'][] = 'postal_code'; $retval['sort'][] = array('default_department' => 'asc'); $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; case 'by_branch_by_department_by_employee+address': $retval['columns'][] = 'default_branch'; $retval['columns'][] = 'default_department'; $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'address1'; $retval['columns'][] = 'address2'; $retval['columns'][] = 'city'; $retval['columns'][] = 'country'; $retval['columns'][] = 'province'; $retval['columns'][] = 'postal_code'; $retval['sort'][] = array('default_branch' => 'asc'); $retval['sort'][] = array('default_department' => 'asc'); $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; //Wage //Wage case 'by_employee+wage': $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'type'; $retval['columns'][] = 'wage'; $retval['columns'][] = 'hourly_rate'; $retval['columns'][] = 'effective_date'; $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); $retval['sort'][] = array('type' => 'asc'); $retval['sort'][] = array('wage' => 'desc'); break; case 'by_branch_by_employee+wage': $retval['columns'][] = 'default_branch'; $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'type'; $retval['columns'][] = 'wage'; $retval['columns'][] = 'hourly_rate'; $retval['columns'][] = 'effective_date'; $retval['sort'][] = array('default_branch' => 'asc'); $retval['sort'][] = array('type' => 'asc'); $retval['sort'][] = array('wage' => 'desc'); $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; case 'by_department_by_employee+wage': $retval['columns'][] = 'default_department'; $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'type'; $retval['columns'][] = 'wage'; $retval['columns'][] = 'hourly_rate'; $retval['columns'][] = 'effective_date'; $retval['sort'][] = array('default_department' => 'asc'); $retval['sort'][] = array('type' => 'asc'); $retval['sort'][] = array('wage' => 'desc'); $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; case 'by_branch_by_department_by_employee+wage': $retval['columns'][] = 'default_branch'; $retval['columns'][] = 'default_department'; $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'type'; $retval['columns'][] = 'wage'; $retval['columns'][] = 'hourly_rate'; $retval['columns'][] = 'effective_date'; $retval['sort'][] = array('default_branch' => 'asc'); $retval['sort'][] = array('default_department' => 'asc'); $retval['sort'][] = array('type' => 'asc'); $retval['sort'][] = array('wage' => 'desc'); $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; case 'by_type_by_employee+wage': $retval['columns'][] = 'type'; $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'wage'; $retval['columns'][] = 'hourly_rate'; $retval['columns'][] = 'effective_date'; $retval['sub_total'][] = 'type'; $retval['sort'][] = array('type' => 'asc'); $retval['sort'][] = array('wage' => 'desc'); $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; //Bank Account //Bank Account case 'by_employee+bank': $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'transit'; $retval['columns'][] = 'account'; $retval['columns'][] = 'institution'; $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; //Preferences //Preferences case 'by_employee+preference': $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['columns'][] = 'date_format_display'; $retval['columns'][] = 'time_format_display'; $retval['columns'][] = 'time_unit_format_display'; $retval['columns'][] = 'time_zone_display'; $retval['columns'][] = 'language_display'; $retval['columns'][] = 'items_per_page'; $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; //Other //Other case 'by_branch+total_user': $retval['columns'][] = 'default_branch'; $retval['columns'][] = 'total_user'; $retval['group'][] = 'default_branch'; $retval['sort'][] = array('total_user' => 'desc'); break; case 'by_department+total_user': $retval['columns'][] = 'default_department'; $retval['columns'][] = 'total_user'; $retval['group'][] = 'default_department'; $retval['sort'][] = array('total_user' => 'desc'); break; case 'by_branch_by_department+total_user': $retval['columns'][] = 'default_branch'; $retval['columns'][] = 'default_department'; $retval['columns'][] = 'total_user'; $retval['group'][] = 'default_branch'; $retval['group'][] = 'default_department'; $retval['sub_total'][] = 'default_branch'; $retval['sort'][] = array('default_branch' => 'asc'); //$retval['sort'][] = array('' => 'asc'); $retval['sort'][] = array('total_user' => 'desc'); break; case 'by_type+total_user': $retval['columns'][] = 'type'; $retval['columns'][] = 'total_user'; $retval['group'][] = 'type'; $retval['sub_total'][] = 'type'; $retval['sort'][] = array('type' => 'asc'); $retval['sort'][] = array('total_user' => 'desc'); break; default: Debug::Text(' Parsing template name: ' . $template, __FILE__, __LINE__, __METHOD__, 10); break; } } //Set the template dropdown as well. $retval['-1000-template'] = $template; //Add sort prefixes so Flex can maintain order. if (isset($retval['filter'])) { $retval['-5000-filter'] = $retval['filter']; unset($retval['filter']); } if (isset($retval['columns'])) { $retval['-5010-columns'] = $retval['columns']; unset($retval['columns']); } if (isset($retval['group'])) { $retval['-5020-group'] = $retval['group']; unset($retval['group']); } if (isset($retval['sub_total'])) { $retval['-5030-sub_total'] = $retval['sub_total']; unset($retval['sub_total']); } if (isset($retval['sort'])) { $retval['-5040-sort'] = $retval['sort']; unset($retval['sort']); } Debug::Arr($retval, ' Template Config for: ' . $template, __FILE__, __LINE__, __METHOD__, 10); break; default: //Call report parent class options function for options valid for all reports. $retval = $this->__getOptions($name); break; } return $retval; }
* feasible for technical reasons, the Appropriate Legal Notices must display * the words "Powered by TimeTrex". ********************************************************************************/ /* * $Revision: 2723 $ * $Id: EditRequest.php 2723 2009-08-13 22:05:43Z ipso $ * $Date: 2009-08-13 15:05:43 -0700 (Thu, 13 Aug 2009) $ */ require_once '../../includes/global.inc.php'; require_once Environment::getBasePath() . 'includes/Interface.inc.php'; //Debug::setVerbosity(11); if (!$permission->Check('request', 'enabled') or !($permission->Check('request', 'edit') or $permission->Check('request', 'edit_own'))) { $permission->Redirect(FALSE); //Redirect } $smarty->assign('title', TTi18n::gettext($title = 'Edit Request')); // See index.php /* * Get FORM variables */ extract(FormVariables::GetVariables(array('action', 'id', 'data'))); if (isset($data)) { $data['date_stamp'] = TTDate::parseDateTime($data['date_stamp']); } $rf = new RequestFactory(); $action = Misc::findSubmitButton(); $action = strtolower($action); switch ($action) { case 'submit': //Debug::setVerbosity(11); Debug::Text('Submit!', __FILE__, __LINE__, __METHOD__, 10);
//Get employee titles $utlf = TTnew('UserTitleListFactory'); $utlf->getByCompanyId($current_company->getId()); $user_title_options = Misc::prependArray($all_array_option, $utlf->getArrayByListFactory($utlf, FALSE, TRUE)); $filter_data['src_user_title_options'] = Misc::arrayDiffByKey((array) $filter_data['user_title_ids'], $user_title_options); $filter_data['selected_user_title_options'] = Misc::arrayIntersectByKey((array) $filter_data['user_title_ids'], $user_title_options); //Get pay periods $pplf = TTnew('PayPeriodListFactory'); $pplf->getByCompanyId($current_company->getId()); $pay_period_options = Misc::prependArray($all_array_option, $pplf->getArrayByListFactory($pplf, FALSE, TRUE)); $filter_data['src_pay_period_options'] = Misc::arrayDiffByKey((array) $filter_data['pay_period_ids'], $pay_period_options); $filter_data['selected_pay_period_options'] = Misc::arrayIntersectByKey((array) $filter_data['pay_period_ids'], $pay_period_options); //Get column list $filter_data['src_column_options'] = Misc::arrayDiffByKey((array) $filter_data['column_ids'], $columns); $filter_data['selected_column_options'] = Misc::arrayIntersectByKey((array) $filter_data['column_ids'], $columns); //Get primary/secondary order list $filter_data['sort_options'] = $columns; $filter_data['sort_options']['effective_date_order'] = 'Wage Effective Date'; unset($filter_data['sort_options']['effective_date']); $filter_data['sort_direction_options'] = Misc::getSortDirectionArray(); /***/ $filter_data['group_by_options'] = Misc::prependArray(array('0' => TTi18n::gettext('No Grouping')), $static_columns); /***/ $saved_report_options = $ugdlf->getByUserIdAndScriptArray($current_user->getId(), $_SERVER['SCRIPT_NAME']); $generic_data['saved_report_options'] = $saved_report_options; $smarty->assign_by_ref('generic_data', $generic_data); $smarty->assign_by_ref('filter_data', $filter_data); $smarty->assign_by_ref('ugdf', $ugdf); $smarty->display('report/TimesheetSummary.tpl'); break; }
$udtlf->getById($id); foreach ($udtlf as $udt_obj) { //Debug::Arr($station,'Department', __FILE__, __LINE__, __METHOD__,10); $user_id = $udt_obj->getUserDateObject()->getUser(); $udt_data = array('id' => $udt_obj->getId(), 'user_date_id' => $udt_obj->getUserDateId(), 'date_stamp' => $udt_obj->getUserDateObject()->getDateStamp(), 'user_id' => $udt_obj->getUserDateObject()->getUser(), 'user_full_name' => $udt_obj->getUserDateObject()->getUserObject()->getFullName(), 'status_id' => $udt_obj->getStatus(), 'type_id' => $udt_obj->getType(), 'total_time' => $udt_obj->getTotalTime(), 'absence_policy_id' => $udt_obj->getAbsencePolicyID(), 'branch_id' => $udt_obj->getBranch(), 'department_id' => $udt_obj->getDepartment(), 'job_id' => $udt_obj->getJob(), 'job_item_id' => $udt_obj->getJobItem(), 'override' => $udt_obj->getOverride(), 'created_date' => $udt_obj->getCreatedDate(), 'created_by' => $udt_obj->getCreatedBy(), 'updated_date' => $udt_obj->getUpdatedDate(), 'updated_by' => $udt_obj->getUpdatedBy(), 'deleted_date' => $udt_obj->getDeletedDate(), 'deleted_by' => $udt_obj->getDeletedBy()); } } elseif ($action != 'submit') { Debug::Text(' ID was NOT passed: ' . $id, __FILE__, __LINE__, __METHOD__, 10); //Get user full name $ulf = TTnew('UserListFactory'); $user_obj = $ulf->getById($user_id)->getCurrent(); $user_date_id = UserDateFactory::getUserDateID($user_id, $date_stamp); $udt_data = array('user_id' => $user_id, 'date_stamp' => $date_stamp, 'user_date_id' => $user_date_id, 'user_full_name' => $user_obj->getFullName(), 'branch_id' => $user_obj->getDefaultBranch(), 'department_id' => $user_obj->getDefaultDepartment(), 'total_time' => 0, 'override' => TRUE); } $aplf = TTnew('AbsencePolicyListFactory'); $absence_policy_options = Misc::prependArray(array(0 => TTi18n::gettext('-- Please Choose --')), $aplf->getByCompanyIdArray($current_company->getId())); $blf = TTnew('BranchListFactory'); $branch_options = $blf->getByCompanyIdArray($current_company->getId()); $dlf = TTnew('DepartmentListFactory'); $department_options = $dlf->getByCompanyIdArray($current_company->getId()); if ($current_company->getProductEdition() >= 20) { $jlf = TTnew('JobListFactory'); $jlf->getByCompanyIdAndUserIdAndStatus($current_company->getId(), $user_id, array(10, 20, 30, 40)); $udt_data['job_options'] = $jlf->getArrayByListFactory($jlf, TRUE, TRUE); $udt_data['job_manual_id_options'] = $jlf->getManualIDArrayByListFactory($jlf, TRUE); $jilf = TTnew('JobItemListFactory'); $jilf->getByCompanyId($current_company->getId()); $udt_data['job_item_options'] = $jilf->getArrayByListFactory($jilf, TRUE, TRUE); $udt_data['job_item_manual_id_options'] = $jilf->getManualIdArrayByListFactory($jilf, TRUE); } //Select box options;
protected function _getOptions($name, $params = NULL) { $retval = NULL; switch ($name) { case 'output_format': $retval = array_merge(parent::getOptions('default_output_format'), array('-1100-pdf_form' => TTi18n::gettext('Employee (One Employee/Page)'), '-1110-pdf_form_government' => TTi18n::gettext('Government (Multiple Employees/Page)'), '-1120-efile_xml' => TTi18n::gettext('eFile'))); break; case 'default_setup_fields': $retval = array('template', 'time_period', 'columns'); break; case 'setup_fields': $retval = array('-1000-template' => TTi18n::gettext('Template'), '-1010-time_period' => TTi18n::gettext('Time Period'), '-2010-user_status_id' => TTi18n::gettext('Employee Status'), '-2020-user_group_id' => TTi18n::gettext('Employee Group'), '-2030-user_title_id' => TTi18n::gettext('Employee Title'), '-2040-include_user_id' => TTi18n::gettext('Employee Include'), '-2050-exclude_user_id' => TTi18n::gettext('Employee Exclude'), '-2060-default_branch_id' => TTi18n::gettext('Default Branch'), '-2070-default_department_id' => TTi18n::gettext('Default Department'), '-2100-custom_filter' => TTi18n::gettext('Custom Filter'), '-5000-columns' => TTi18n::gettext('Display Columns'), '-5010-group' => TTi18n::gettext('Group By'), '-5020-sub_total' => TTi18n::gettext('SubTotal By'), '-5030-sort' => TTi18n::gettext('Sort By')); break; case 'time_period': $retval = TTDate::getTimePeriodOptions(); break; case 'date_columns': //$retval = TTDate::getReportDateOptions( NULL, TTi18n::getText('Date'), 13, TRUE ); $retval = array(); break; case 'report_custom_column': if (getTTProductEdition() >= TT_PRODUCT_PROFESSIONAL) { $rcclf = TTnew('ReportCustomColumnListFactory'); // Because the Filter type is just only a filter criteria and not need to be as an option of Display Columns, Group By, Sub Total, Sort By dropdowns. // So just get custom columns with Selection and Formula. $custom_column_labels = $rcclf->getByCompanyIdAndTypeIdAndFormatIdAndScriptArray($this->getUserObject()->getCompany(), $rcclf->getOptions('display_column_type_ids'), NULL, 'T4SummaryReport', 'custom_column'); if (is_array($custom_column_labels)) { $retval = Misc::addSortPrefix($custom_column_labels, 9500); } } break; case 'report_custom_filters': if (getTTProductEdition() >= TT_PRODUCT_PROFESSIONAL) { $rcclf = TTnew('ReportCustomColumnListFactory'); $retval = $rcclf->getByCompanyIdAndTypeIdAndFormatIdAndScriptArray($this->getUserObject()->getCompany(), $rcclf->getOptions('filter_column_type_ids'), NULL, 'T4SummaryReport', 'custom_column'); } break; case 'report_dynamic_custom_column': if (getTTProductEdition() >= TT_PRODUCT_PROFESSIONAL) { $rcclf = TTnew('ReportCustomColumnListFactory'); $report_dynamic_custom_column_labels = $rcclf->getByCompanyIdAndTypeIdAndFormatIdAndScriptArray($this->getUserObject()->getCompany(), $rcclf->getOptions('display_column_type_ids'), $rcclf->getOptions('dynamic_format_ids'), 'T4SummaryReport', 'custom_column'); if (is_array($report_dynamic_custom_column_labels)) { $retval = Misc::addSortPrefix($report_dynamic_custom_column_labels, 9700); } } break; case 'report_static_custom_column': if (getTTProductEdition() >= TT_PRODUCT_PROFESSIONAL) { $rcclf = TTnew('ReportCustomColumnListFactory'); $report_static_custom_column_labels = $rcclf->getByCompanyIdAndTypeIdAndFormatIdAndScriptArray($this->getUserObject()->getCompany(), $rcclf->getOptions('display_column_type_ids'), $rcclf->getOptions('static_format_ids'), 'T4SummaryReport', 'custom_column'); if (is_array($report_static_custom_column_labels)) { $retval = Misc::addSortPrefix($report_static_custom_column_labels, 9700); } } break; case 'formula_columns': $retval = TTMath::formatFormulaColumns(array_merge(array_diff($this->getOptions('static_columns'), (array) $this->getOptions('report_static_custom_column')), $this->getOptions('dynamic_columns'))); break; case 'filter_columns': $retval = TTMath::formatFormulaColumns(array_merge($this->getOptions('static_columns'), $this->getOptions('dynamic_columns'), (array) $this->getOptions('report_dynamic_custom_column'))); break; case 'static_columns': $retval = array('-1000-first_name' => TTi18n::gettext('First Name'), '-1001-middle_name' => TTi18n::gettext('Middle Name'), '-1002-last_name' => TTi18n::gettext('Last Name'), '-1005-full_name' => TTi18n::gettext('Full Name'), '-1030-employee_number' => TTi18n::gettext('Employee #'), '-1035-sin' => TTi18n::gettext('SIN/SSN'), '-1040-status' => TTi18n::gettext('Status'), '-1050-title' => TTi18n::gettext('Title'), '-1060-province' => TTi18n::gettext('Province/State'), '-1070-country' => TTi18n::gettext('Country'), '-1080-group' => TTi18n::gettext('Group'), '-1090-default_branch' => TTi18n::gettext('Default Branch'), '-1100-default_department' => TTi18n::gettext('Default Department'), '-1110-currency' => TTi18n::gettext('Currency'), '-1400-permission_control' => TTi18n::gettext('Permission Group'), '-1410-pay_period_schedule' => TTi18n::gettext('Pay Period Schedule'), '-1420-policy_group' => TTi18n::gettext('Policy Group')); $retval = array_merge($retval, $this->getOptions('date_columns'), (array) $this->getOptions('report_static_custom_column')); ksort($retval); break; case 'dynamic_columns': $retval = array('-2100-income' => TTi18n::gettext('Income (14)'), '-2110-tax' => TTi18n::gettext('Income Tax (22)'), '-2120-employee_cpp' => TTi18n::gettext('Employee CPP (16)'), '-2125-ei_earnings' => TTi18n::gettext('EI Insurable Earnings (24)'), '-2126-cpp_earnings' => TTi18n::gettext('CPP Pensionable Earnings (26)'), '-2130-employee_ei' => TTi18n::gettext('Employee EI (18)'), '-2140-union_dues' => TTi18n::gettext('Union Dues (44)'), '-2150-employer_cpp' => TTi18n::gettext('Employer CPP'), '-2160-employer_ei' => TTi18n::gettext('Employer EI'), '-2170-rpp' => TTi18n::gettext('RPP Contributions (20)'), '-2180-charity' => TTi18n::gettext('Charity Donations (46)'), '-2190-pension_adjustment' => TTi18n::gettext('Pension Adjustment (52)'), '-2200-other_box_0' => TTi18n::gettext('Other Box 1'), '-2210-other_box_1' => TTi18n::gettext('Other Box 2'), '-2220-other_box_2' => TTi18n::gettext('Other Box 3'), '-2220-other_box_3' => TTi18n::gettext('Other Box 4'), '-2220-other_box_4' => TTi18n::gettext('Other Box 5'), '-2220-other_box_5' => TTi18n::gettext('Other Box 6')); break; case 'columns': $retval = array_merge($this->getOptions('static_columns'), $this->getOptions('dynamic_columns'), (array) $this->getOptions('report_dynamic_custom_column')); break; case 'column_format': //Define formatting function for each column. $columns = array_merge($this->getOptions('dynamic_columns'), (array) $this->getOptions('report_custom_column')); if (is_array($columns)) { foreach ($columns as $column => $name) { $retval[$column] = 'currency'; } } break; case 'aggregates': $retval = array(); $dynamic_columns = array_keys(Misc::trimSortPrefix(array_merge($this->getOptions('dynamic_columns'), (array) $this->getOptions('report_dynamic_custom_column')))); if (is_array($dynamic_columns)) { foreach ($dynamic_columns as $column) { switch ($column) { default: $retval[$column] = 'sum'; } } } break; case 'type': $retval = array('-1010-O' => TTi18n::getText('Original'), '-1020-A' => TTi18n::getText('Amended'), '-1030-C' => TTi18n::getText('Cancel')); break; case 'templates': $retval = array('-1020-by_employee' => TTi18n::gettext('by Employee'), '-1030-by_branch' => TTi18n::gettext('by Branch'), '-1040-by_department' => TTi18n::gettext('by Department'), '-1050-by_branch_by_department' => TTi18n::gettext('by Branch/Department')); break; case 'template_config': $template = strtolower(Misc::trimSortPrefix($params['template'])); if (isset($template) and $template != '') { switch ($template) { case 'default': //Proper settings to generate the form. //$retval['-1010-time_period']['time_period'] = 'last_quarter'; $retval['columns'] = $this->getOptions('columns'); $retval['group'][] = 'date_quarter_month'; $retval['sort'][] = array('date_quarter_month' => 'asc'); $retval['other']['grand_total'] = TRUE; break; default: Debug::Text(' Parsing template name: ' . $template, __FILE__, __LINE__, __METHOD__, 10); $retval['-1010-time_period']['time_period'] = 'last_year'; //Parse template name, and use the keywords separated by '+' to determine settings. $template_keywords = explode('+', $template); if (is_array($template_keywords)) { foreach ($template_keywords as $template_keyword) { Debug::Text(' Keyword: ' . $template_keyword, __FILE__, __LINE__, __METHOD__, 10); switch ($template_keyword) { //Columns //Filter //Group By //SubTotal //Sort case 'by_month': $retval['columns'][] = 'date_month'; $retval['group'][] = 'date_month'; $retval['sort'][] = array('date_month' => 'asc'); break; case 'by_employee': $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['group'][] = 'first_name'; $retval['group'][] = 'last_name'; $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; case 'by_branch': $retval['columns'][] = 'default_branch'; $retval['group'][] = 'default_branch'; $retval['sort'][] = array('default_branch' => 'asc'); break; case 'by_department': $retval['columns'][] = 'default_department'; $retval['group'][] = 'default_department'; $retval['sort'][] = array('default_department' => 'asc'); break; case 'by_branch_by_department': $retval['columns'][] = 'default_branch'; $retval['columns'][] = 'default_department'; $retval['group'][] = 'default_branch'; $retval['group'][] = 'default_department'; $retval['sub_total'][] = 'default_branch'; $retval['sort'][] = array('default_branch' => 'asc'); $retval['sort'][] = array('default_department' => 'asc'); break; case 'by_month_by_employee': $retval['columns'][] = 'date_month'; $retval['columns'][] = 'first_name'; $retval['columns'][] = 'last_name'; $retval['group'][] = 'date_month'; $retval['group'][] = 'first_name'; $retval['group'][] = 'last_name'; $retval['sub_total'][] = 'date_month'; $retval['sort'][] = array('date_month' => 'asc'); $retval['sort'][] = array('last_name' => 'asc'); $retval['sort'][] = array('first_name' => 'asc'); break; case 'by_month_by_branch': $retval['columns'][] = 'date_month'; $retval['columns'][] = 'default_branch'; $retval['group'][] = 'date_month'; $retval['group'][] = 'default_branch'; $retval['sub_total'][] = 'date_month'; $retval['sort'][] = array('date_month' => 'asc'); $retval['sort'][] = array('default_branch' => 'asc'); break; case 'by_month_by_department': $retval['columns'][] = 'date_month'; $retval['columns'][] = 'default_department'; $retval['group'][] = 'date_month'; $retval['group'][] = 'default_department'; $retval['sub_total'][] = 'date_month'; $retval['sort'][] = array('date_month' => 'asc'); $retval['sort'][] = array('default_department' => 'asc'); break; case 'by_month_by_branch_by_department': $retval['columns'][] = 'date_month'; $retval['columns'][] = 'default_branch'; $retval['columns'][] = 'default_department'; $retval['group'][] = 'date_month'; $retval['group'][] = 'default_branch'; $retval['group'][] = 'default_department'; $retval['sub_total'][] = 'date_month'; $retval['sub_total'][] = 'default_branch'; $retval['sort'][] = array('date_month' => 'asc'); $retval['sort'][] = array('default_branch' => 'asc'); $retval['sort'][] = array('default_department' => 'asc'); break; } } } $retval['columns'] = array_merge($retval['columns'], array_keys(Misc::trimSortPrefix($this->getOptions('dynamic_columns')))); break; } } //Set the template dropdown as well. $retval['-1000-template'] = $template; //Add sort prefixes so Flex can maintain order. if (isset($retval['filter'])) { $retval['-5000-filter'] = $retval['filter']; unset($retval['filter']); } if (isset($retval['columns'])) { $retval['-5010-columns'] = $retval['columns']; unset($retval['columns']); } if (isset($retval['group'])) { $retval['-5020-group'] = $retval['group']; unset($retval['group']); } if (isset($retval['sub_total'])) { $retval['-5030-sub_total'] = $retval['sub_total']; unset($retval['sub_total']); } if (isset($retval['sort'])) { $retval['-5040-sort'] = $retval['sort']; unset($retval['sort']); } Debug::Arr($retval, ' Template Config for: ' . $template, __FILE__, __LINE__, __METHOD__, 10); break; default: //Call report parent class options function for options valid for all reports. $retval = $this->__getOptions($name); break; } return $retval; }
* "Powered by TimeTrex" logo. If the display of the logo is not reasonably * feasible for technical reasons, the Appropriate Legal Notices must display * the words "Powered by TimeTrex". ********************************************************************************/ /* * $Revision: 1634 $ * $Id: EditCompany.php 1634 2008-01-11 20:35:07Z ipso $ * $Date: 2008-01-11 12:35:07 -0800 (Fri, 11 Jan 2008) $ */ require_once '../../includes/global.inc.php'; require_once Environment::getBasePath() . 'includes/Interface.inc.php'; if (!$permission->Check('company', 'enabled') or !($permission->Check('company', 'edit') or $permission->Check('company', 'edit_own'))) { $permission->Redirect(FALSE); //Redirect } $smarty->assign('title', TTi18n::gettext($title = 'Edit Company')); // See index.php /* * Get FORM variables */ extract(FormVariables::GetVariables(array('action', 'id', 'company_data'))); $cf = new CompanyFactory(); $action = Misc::findSubmitButton(); switch ($action) { case 'submit': //Debug::setVerbosity( 11 ); Debug::Text('Submit!', __FILE__, __LINE__, __METHOD__, 10); $cf->StartTransaction(); if ($permission->Check('company', 'edit')) { $cf->setId($company_data['id']); $cf->setParent($company_data['parent']);