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 createUserDeduction($company_id, $user_id) { $fail_transaction = FALSE; $cdlf = new CompanyDeductionListFactory(); $cdlf->getByCompanyId($company_id); if ($cdlf->getRecordCount() > 0) { foreach ($cdlf as $cd_obj) { Debug::Text('Creating User Deduction: User Id:' . $user_id . ' Company Deduction: ' . $cd_obj->getId(), __FILE__, __LINE__, __METHOD__, 10); $udf = new UserDeductionFactory(); $udf->setUser($user_id); $udf->setCompanyDeduction($cd_obj->getId()); if ($udf->isValid()) { if ($udf->Save() === FALSE) { Debug::Text('User Deductions... Save Failed!', __FILE__, __LINE__, __METHOD__, 10); $fail_transaction = TRUE; } } else { Debug::Text('User Deductions... isValid Failed!', __FILE__, __LINE__, __METHOD__, 10); $fail_transaction = TRUE; } } if ($fail_transaction == FALSE) { Debug::Text('User Deductions Created!', __FILE__, __LINE__, __METHOD__, 10); return TRUE; } } else { Debug::Text('No Company Deductions Found!', __FILE__, __LINE__, __METHOD__, 10); } Debug::Text('Failed Creating User Deductions!', __FILE__, __LINE__, __METHOD__, 10); return FALSE; }
function setCompanyDeduction($ids) { Debug::text('Setting Company Deduction IDs : ', __FILE__, __LINE__, __METHOD__, 10); if (is_array($ids)) { if (!$this->isNew()) { //If needed, delete mappings first. $udcdlf = new UserDefaultCompanyDeductionListFactory(); $udcdlf->getByUserDefaultId($this->getId()); $tmp_ids = array(); foreach ($udcdlf as $obj) { $id = $obj->getCompanyDeduction(); Debug::text('ID: ' . $id, __FILE__, __LINE__, __METHOD__, 10); //Delete users that are not selected. if (!in_array($id, $ids)) { Debug::text('Deleting: ' . $id, __FILE__, __LINE__, __METHOD__, 10); $obj->Delete(); } else { //Save ID's that need to be updated. Debug::text('NOT Deleting : ' . $id, __FILE__, __LINE__, __METHOD__, 10); $tmp_ids[] = $id; } } unset($id, $obj); } else { $tmp_ids = array(); } //Insert new mappings. //$lf = new UserListFactory(); $cdlf = new CompanyDeductionListFactory(); foreach ($ids as $id) { if ($id != FALSE and isset($ids) and !in_array($id, $tmp_ids)) { $udcdf = new UserDefaultCompanyDeductionFactory(); $udcdf->setUserDefault($this->getId()); $udcdf->setCompanyDeduction($id); $obj = $cdlf->getById($id)->getCurrent(); if ($this->Validator->isTrue('company_deduction', $udcdf->Validator->isValid(), TTi18n::gettext('Deduction is invalid') . ' (' . $obj->getName() . ')')) { $udcdf->save(); } } } return TRUE; } Debug::text('No IDs to set.', __FILE__, __LINE__, __METHOD__, 10); return FALSE; }
$filter_data['group_ids'] = array(); } if (!isset($filter_data['branch_ids'])) { $filter_data['branch_ids'] = array(); } if (!isset($filter_data['department_ids'])) { $filter_data['department_ids'] = array(); } if (!isset($filter_data['user_title_ids'])) { $filter_data['user_title_ids'] = array(); } if (!isset($filter_data['column_ids'])) { $filter_data['column_ids'] = array(); } //Company Deductions $cdlf = new CompanyDeductionListFactory(); $deduction_columns = $cdlf->getByCompanyIdAndStatusIdArray($current_company->getId(), 10, FALSE); $columns = Misc::prependArray($columns, $deduction_columns); //Get Permission Hierarchy Children first, as this can be used for viewing, or editing. $permission_children_ids = array(); if ($permission->Check('user', 'view') == FALSE) { $hlf = new HierarchyListFactory(); $permission_children_ids = $hlf->getHierarchyChildrenByCompanyIdAndUserIdAndObjectTypeID($current_company->getId(), $current_user->getId()); if ($permission->Check('user', 'view_child') == FALSE) { $permission_children_ids = array(); } if ($permission->Check('user', 'view_own')) { $permission_children_ids[] = $current_user->getId(); } $filter_data['permission_children_ids'] = $permission_children_ids; }
$pay_period_ids[] = $pp_obj->getID(); } } $report_columns = $static_columns; $pself = new PayStubEntryListFactory(); $pself->getReportByCompanyIdAndUserIdAndPayPeriodId($current_company->getId(), $filter_data['user_ids'], $pay_period_ids); foreach ($pself as $pse_obj) { $user_id = $pse_obj->getColumn('user_id'); $pay_stub_entry_name_id = $pse_obj->getColumn('pay_stub_entry_name_id'); $raw_rows[$user_id][$pay_stub_entry_name_id] = $pse_obj->getColumn('amount'); } //var_dump($raw_rows); // //Figure out state/locality wages/taxes. // $cdlf = new CompanyDeductionListFactory(); $cdlf->getByCompanyIdAndStatusIdAndTypeId($current_company->getId(), array(10, 20), 10); if ($cdlf->getRecordCount() > 0) { foreach ($cdlf as $cd_obj) { $tax_deductions[] = array('id' => $cd_obj->getId(), 'province' => $cd_obj->getProvince(), 'district' => $cd_obj->getDistrictName(), 'pay_stub_entry_account_id' => $cd_obj->getPayStubEntryAccount(), 'include' => $cd_obj->getIncludePayStubEntryAccount(), 'exclude' => $cd_obj->getExcludePayStubEntryAccount(), 'user_ids' => $cd_obj->getUser(), 'user_value1' => $cd_obj->getUserValue1()); } } if (isset($raw_rows)) { $ulf = new UserListFactory(); $x = 0; foreach ($raw_rows as $user_id => $raw_row) { $user_obj = $ulf->getById($user_id)->getCurrent(); $tmp_rows[$x]['user_id'] = $user_id; $tmp_rows[$x]['full_name'] = $user_obj->getFullName(TRUE); //$tmp_rows[$x]['province'] = Option::getByKey($user_obj->getProvince(), $user_obj->getOptions('province') ); $tmp_rows[$x]['province'] = $user_obj->getProvince();
} $data = array('id' => $ud_obj->getId(), 'user_id' => $ud_obj->getUser(), 'company_id' => $cd_obj->getCompany(), 'status_id' => $cd_obj->getStatus(), 'status' => Option::getByKey($cd_obj->getStatus(), $cd_obj->getOptions('status')), 'type_id' => $cd_obj->getType(), 'type' => Option::getByKey($cd_obj->getType(), $cd_obj->getOptions('type')), 'name' => $cd_obj->getName(), 'combined_calculation_id' => $cd_obj->getCombinedCalculationId(), 'calculation_id' => $cd_obj->getCalculation(), 'calculation' => Option::getByKey($cd_obj->getCalculation(), $cd_obj->getOptions('calculation')), 'country_id' => $cd_obj->getCountry(), 'country' => Option::getByKey($cd_obj->getCountry(), $cd_obj->getOptions('country')), 'province_id' => $cd_obj->getProvince(), 'province' => Option::getByKey($cd_obj->getProvince(), $province_options), 'district_id' => $cd_obj->getDistrict(), 'district' => Option::getByKey($cd_obj->getDistrict(), $district_options), 'company_value1' => $cd_obj->getCompanyValue1(), 'company_value2' => $cd_obj->getCompanyValue2(), 'user_value1' => $user_value1, 'user_value2' => $user_value2, 'user_value3' => $user_value3, 'user_value4' => $user_value4, 'user_value5' => $user_value5, 'user_value6' => $ud_obj->getUserValue6(), 'user_value7' => $ud_obj->getUserValue7(), 'user_value8' => $ud_obj->getUserValue8(), 'user_value9' => $ud_obj->getUserValue9(), 'user_value10' => $ud_obj->getUserValue10(), 'default_user_value1' => $cd_obj->getUserValue1(), 'default_user_value2' => $cd_obj->getUserValue2(), 'default_user_value3' => $cd_obj->getUserValue3(), 'default_user_value4' => $cd_obj->getUserValue4(), 'default_user_value5' => $cd_obj->getUserValue5(), 'default_user_value6' => $cd_obj->getUserValue6(), 'default_user_value7' => $cd_obj->getUserValue7(), 'default_user_value8' => $cd_obj->getUserValue8(), 'default_user_value9' => $cd_obj->getUserValue9(), 'default_user_value10' => $cd_obj->getUserValue10(), 'created_date' => $ud_obj->getCreatedDate(), 'created_by' => $ud_obj->getCreatedBy(), 'updated_date' => $ud_obj->getUpdatedDate(), 'updated_by' => $ud_obj->getUpdatedBy(), 'deleted_date' => $ud_obj->getDeletedDate(), 'deleted_by' => $ud_obj->getDeletedBy()); } else { $permission->Redirect(FALSE); //Redirect exit; } } } } else { Debug::Text('Adding... ', __FILE__, __LINE__, __METHOD__, 10); //Adding User Deductions... $data['add'] = 1; $data['user_id'] = $user_id; //Get all Company Deductions for drop down box. $cdlf = new CompanyDeductionListFactory(); $data['deduction_options'] = $cdlf->getByCompanyIdAndStatusIdArray($current_company->getId(), 10, FALSE); $udlf = new UserDeductionListFactory(); $udlf->getByCompanyIdAndUserId($current_company->getId(), $user_id); if ($udlf->getRecordCount() > 0) { //Remove deductions from select box that are already assigned to user. $deduction_ids = array_keys($data['deduction_options']); foreach ($udlf as $ud_obj) { if (in_array($ud_obj->getCompanyDeduction(), $deduction_ids)) { unset($data['deduction_options'][$ud_obj->getCompanyDeduction()]); } } } } //Get user full name $ulf = new UserListFactory();
if (isset($data['user_ids'])) { $cdf->setUser($data['user_ids']); } else { $cdf->setUser(array()); } if ($cdf->isValid()) { $cdf->Save(TRUE); $cdf->CommitTransaction(); Redirect::Page(URLBuilder::getURL(NULL, 'CompanyDeductionList.php')); break; } } default: if (isset($id)) { BreadCrumb::setCrumb($title); $cdlf = new CompanyDeductionListFactory(); $cdlf->getByCompanyIdAndId($current_company->getId(), $id); foreach ($cdlf as $cd_obj) { //Debug::Arr($station,'Department', __FILE__, __LINE__, __METHOD__,10); //Get all users assigned to this deduction. /* $udlf = new UserDeductionListFactory(); $udlf->getByCompanyIdAndCompanyDeductionId( $current_company->getId(), $cd_obj->getId() ); if ( $udlf->getRecordCount() > 0 ) { Debug::Text('Found users assigned to this deduction!', __FILE__, __LINE__, __METHOD__,10); foreach( $udlf as $ud_obj ) { $user_ids[] = $ud_obj->getUser(); } } else { $user_ids = array();
if (is_array($errors)) { foreach ($errors as $error_arr) { echo " ERROR: " . $error_arr[0] . "\n"; } } } } else { echo " \t\t\t\tFailed!\n"; $commit_trans = FALSE; $e++; echo " ERROR: Company Deduction Not Found!\n"; } } if ($update_column == FALSE and isset($mapped_row['province_income_tax_deduction_id']) and $mapped_row['province_income_tax_deduction_id'] != '' and isset($mapped_row['province_income_tax_user_value1']) and $mapped_row['province_income_tax_user_value1'] != '') { echo " Importing Provincial/State Income Tax Information..."; $cdlf = new CompanyDeductionListFactory(); if (is_numeric($mapped_row['province_income_tax_deduction_id'])) { $cdlf->getByCompanyIdAndId($mapped_row['company_id'], $mapped_row['province_income_tax_deduction_id']); } else { $cdlf->getByCompanyIdAndName($mapped_row['company_id'], $mapped_row['province_income_tax_deduction_id']); } if ($cdlf->getRecordCount() > 0) { $cd_obj = $cdlf->getCurrent(); $udf = new UserDeductionFactory(); $udf->setUser($user_id); $udf->setCompanyDeduction($cd_obj->getId()); if (isset($mapped_row['province_income_tax_user_value1']) and $mapped_row['province_income_tax_user_value1'] != '') { $udf->setUserValue1(Misc::importCallInputParseFunction('province_income_tax_user_value1', $mapped_row['province_income_tax_user_value1'], $filtered_import_map['province_income_tax_user_value1']['default_value'], $filtered_import_map['province_income_tax_user_value1']['parse_hint'])); } if (isset($mapped_row['province_income_tax_user_value2']) and $mapped_row['province_income_tax_user_value2'] != '') { $udf->setUserValue2(Misc::importCallInputParseFunction('province_income_tax_user_value2', $mapped_row['province_income_tax_user_value2'], $filtered_import_map['province_income_tax_user_value2']['default_value'], $filtered_import_map['province_income_tax_user_value2']['parse_hint']));
function getByCompanyIdAndStatusIdArray($company_id, $status_id, $include_blank = TRUE) { if ($status_id == '') { return FALSE; } $cdlf = new CompanyDeductionListFactory(); $cdlf->getByCompanyIdAndStatusId($company_id, $status_id); //$psenlf->getByTypeId($type_id); $list = array(); if ($include_blank == TRUE) { $list[0] = '--'; } foreach ($cdlf as $obj) { $list[$obj->getID()] = $obj->getName(); } return $list; }
$filter_data['src_branch_options'] = Misc::arrayDiffByKey((array) $filter_data['branch_ids'], $branch_options); $filter_data['selected_branch_options'] = Misc::arrayIntersectByKey((array) $filter_data['branch_ids'], $branch_options); //Get departments $dlf = new DepartmentListFactory(); $dlf->getByCompanyId($current_company->getId()); $department_options = Misc::prependArray($all_array_option, $dlf->getArrayByListFactory($dlf, FALSE, TRUE)); $filter_data['src_department_options'] = Misc::arrayDiffByKey((array) $filter_data['department_ids'], $department_options); $filter_data['selected_department_options'] = Misc::arrayIntersectByKey((array) $filter_data['department_ids'], $department_options); //Get employee titles $utlf = new 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 Company Tax Deductions $cdlf = new CompanyDeductionListFactory(); $cdlf->getByCompanyIdAndTypeId($current_company->getId(), 10); //$company_deduction_options = Misc::prependArray( $all_array_option, $cdlf->getArrayByListFactory( $cdlf, FALSE, TRUE ) ); $company_deduction_options = $cdlf->getArrayByListFactory($cdlf, FALSE, TRUE); $filter_data['src_company_deduction_options'] = Misc::arrayDiffByKey((array) $filter_data['company_deduction_ids'], $company_deduction_options); $filter_data['selected_company_deduction_options'] = Misc::arrayIntersectByKey((array) $filter_data['company_deduction_ids'], $company_deduction_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 transaction date format options $filter_data['transaction_date_format_options'] = array(10 => TTi18n::gettext('Complete Date'), 20 => TTi18n::gettext('Month'), 30 => TTi18n::gettext('Quarter'), 40 => TTi18n::gettext('Year')); //Get primary/secondary order list $filter_data['sort_options'] = $columns; $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']);
if ($tmp_cd_obj->isValid()) { $tmp_cd_obj->Save(); } } } } unset($tmp_cd_obj, $cd_obj); Redirect::Page(URLBuilder::getURL(NULL, 'CompanyDeductionList.php')); break; default: BreadCrumb::setCrumb($title); $sort_array = NULL; if ($sort_column != '') { $sort_array = array(Misc::trimSortPrefix($sort_column) => $sort_order); } $cdlf = new CompanyDeductionListFactory(); $cdlf->getByCompanyId($current_company->getId(), NULL, $sort_array); $pager = new Pager($cdlf); $status_options = $cdlf->getOptions('status'); $type_options = $cdlf->getOptions('type'); $calculation_options = $cdlf->getOptions('calculation'); foreach ($cdlf as $cd_obj) { $rows[] = array('id' => $cd_obj->getId(), 'status_id' => $cd_obj->getStatus(), 'status' => $status_options[$cd_obj->getStatus()], 'type_id' => $cd_obj->getType(), 'type' => $type_options[$cd_obj->getType()], 'calculation_id' => $cd_obj->getCalculation(), 'calculation' => $calculation_options[$cd_obj->getCalculation()], 'calculation_order' => $cd_obj->getCalculationOrder(), 'name' => $cd_obj->getName(), 'deleted' => $cd_obj->getDeleted()); } $smarty->assign_by_ref('rows', $rows); $smarty->assign_by_ref('sort_column', $sort_column); $smarty->assign_by_ref('sort_order', $sort_order); $smarty->assign_by_ref('paging_data', $pager->getPageVariables()); break; } $smarty->display('company/CompanyDeductionList.tpl');