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;
 }
示例#2
0
 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;
}
示例#5
0
         $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();
示例#8
0
             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');