function getPayStubEntryAccountObject() { if (is_object($this->pay_stub_entry_account_obj)) { return $this->pay_stub_entry_account_obj; } else { $psealf = new PayStubEntryAccountListFactory(); $psealf->getByID($this->getPayStubEntryNameID()); if ($psealf->getRecordCount() > 0) { $this->pay_stub_entry_account_obj = $psealf->getCurrent(); return $this->pay_stub_entry_account_obj; } return FALSE; } }
static function getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, $type_id, $name) { $psealf = new PayStubEntryAccountListFactory(); $psealf->getByCompanyIdAndTypeAndFuzzyName($company_id, $type_id, $name); if ($psealf->getRecordCount() > 0) { return $psealf->getCurrent()->getId(); } return FALSE; }
function getByTypeArrayByCompanyIdAndStatusId($company_id, $status_id) { $psealf = new PayStubEntryAccountListFactory(); $psealf->getByCompanyIdAndStatusId($company_id, $status_id); $pseallf = new PayStubEntryAccountLinkListFactory(); $pseallf->getByCompanyId($company_id); if ($pseallf->getRecordCount() == 0) { return FALSE; } $psea_type_map = $pseallf->getCurrent()->getPayStubEntryAccountIDToTypeIDMap(); if ($psealf->getRecordCount() > 0) { foreach ($psealf as $psea_obj) { $entry_name_list[$psea_obj->getType()][] = $psea_obj->getId(); } foreach ($entry_name_list[40] as $key => $entry_name_id) { if (isset($psea_type_map[$entry_name_id])) { $tmp_entry_name_list[$entry_name_id] = $entry_name_list[$psea_type_map[$entry_name_id]]; } } return $tmp_entry_name_list; } return FALSE; }
$filter_data['pay_period_ids'][] = Misc::trimSortPrefix($filter_pay_period_id); } unset($key, $tmp_filter_pay_period_ids, $filter_pay_period_id); //if ( isset($filter_data['pay_period_ids']) AND isset($filter_data['user_ids']) ) { if (isset($filter_data['pay_period_ids'])) { //Get column headers $psealf->getByCompanyId($current_company->getId()); foreach ($psealf as $psea_obj) { //$report_columns[$psen_obj->getId()] = $psen_obj->getDescription(); $report_columns[$psea_obj->getId()] = $psea_obj->getName(); } //var_dump($report_columns); $report_columns = Misc::prependArray($static_columns, $report_columns); $psealf = new PayStubEntryAccountListFactory(); $psealf->getByCompanyId($current_company->getId()); if ($psealf->getRecordCount() > 0) { foreach ($psealf as $psea_obj) { $psea_arr[$psea_obj->getId()] = array('name' => $psea_obj->getName(), 'debit_account' => $psea_obj->getDebitAccount(), 'credit_account' => $psea_obj->getCreditAccount()); } } //var_dump($psea_arr); //Get all pay stubs. $pslf = new PayStubListFactory(); //$pslf->getByUserIdAndCompanyIdAndPayPeriodId( $filter_data['user_ids'], $current_company->getId(), $filter_data['pay_period_ids'] ); $pslf->getSearchByCompanyIdAndArrayCriteria($current_company->getId(), $filter_data); if ($pslf->getRecordCount() > 0) { $ulf = new UserListFactory(); $blf = new BranchListFactory(); $branch_options = $blf->getByCompanyIdArray($current_company->getId()); //Get Branch ID to Branch Code mapping $branch_code_map = array(0 => 0);
static function releaseAllAccruals($user_id, $effective_date = NULL) { Debug::Text('Release 100% of all accruals!', __FILE__, __LINE__, __METHOD__, 10); if ($user_id == '') { return FALSE; } if ($effective_date == '') { $effective_date = TTDate::getTime(); } Debug::Text('Effective Date: ' . TTDate::getDate('DATE+TIME', $effective_date), __FILE__, __LINE__, __METHOD__, 10); $ulf = new UserListFactory(); $ulf->getById($user_id); if ($ulf->getRecordCount() > 0) { $user_obj = $ulf->getCurrent(); } else { return FALSE; } //Get all PSE acccount accruals $psealf = new PayStubEntryAccountListFactory(); $psealf->getByCompanyIdAndStatusIdAndTypeId($user_obj->getCompany(), 10, 50); if ($psealf->getRecordCount() > 0) { $ulf->StartTransaction(); foreach ($psealf as $psea_obj) { //Get PSE account that affects this accrual. $psealf_tmp = new PayStubEntryAccountListFactory(); $psealf_tmp->getByCompanyIdAndAccrualId($user_obj->getCompany(), $psea_obj->getId()); if ($psealf_tmp->getRecordCount() > 0) { $release_account_id = $psealf_tmp->getCurrent()->getId(); $psaf = new PayStubAmendmentFactory(); $psaf->setStatus(50); //Active $psaf->setType(20); //Percent $psaf->setUser($user_obj->getId()); $psaf->setPayStubEntryNameId($release_account_id); $psaf->setPercentAmount(100); $psaf->setPercentAmountEntryNameId($psea_obj->getId()); $psaf->setEffectiveDate($effective_date); $psaf->setDescription('Release Accrual Balance'); if ($psaf->isValid()) { Debug::Text('Release Accrual Is Valid!!: ', __FILE__, __LINE__, __METHOD__, 10); $psaf->Save(); } } else { Debug::Text('No Release Account for this Accrual!!', __FILE__, __LINE__, __METHOD__, 10); } } //$ulf->FailTransaction(); $ulf->CommitTransaction(); } else { Debug::Text('No Accruals to release...', __FILE__, __LINE__, __METHOD__, 10); } return FALSE; }
function getPayStubEntryAccountsArray() { if (is_array($this->pay_stub_entry_accounts_obj)) { //Debug::text('Returning Cached data...' , __FILE__, __LINE__, __METHOD__,10); return $this->pay_stub_entry_accounts_obj; } else { $psealf = new PayStubEntryAccountListFactory(); $psealf->getByCompanyId($this->getUserObject()->getCompany()); if ($psealf->getRecordCount() > 0) { foreach ($psealf as $psea_obj) { $this->pay_stub_entry_accounts_obj[$psea_obj->getId()] = array('type_id' => $psea_obj->getType(), 'accrual_pay_stub_entry_account_id' => $psea_obj->getAccrual()); } //Debug::Arr($this->pay_stub_entry_accounts_obj, ' Pay Stub Entry Accounts ('.count($this->pay_stub_entry_accounts_obj).'): ' , __FILE__, __LINE__, __METHOD__,10); return $this->pay_stub_entry_accounts_obj; } Debug::text('Returning FALSE...', __FILE__, __LINE__, __METHOD__, 10); return FALSE; } }
function getNextPayStubAccountOrderByTypeId($type_id) { global $current_company; Debug::Text('Type ID: ' . $type_id, __FILE__, __LINE__, __METHOD__, 10); if (!is_object($current_company)) { return FALSE; } if ($type_id == '') { return FALSE; } $psealf = new PayStubEntryAccountListFactory(); $psealf->getHighestOrderByCompanyIdAndTypeId($current_company->getId(), $type_id); if ($psealf->getRecordCount() > 0) { foreach ($psealf as $psea_obj) { return $psea_obj->getOrder() + 1; } } return FALSE; }
function Validate() { if ($this->getType() == 50) { //If the PSE account is an accrual, it can't link to one as well. $this->setAccrual(NULL); } //Make sure this account doesn't point to itself as an accrual. if ($this->isNew() == FALSE and $this->getAccrual() == $this->getId()) { $this->Validator->isTrue('accrual', FALSE, TTi18n::gettext('Accrual account is invalid')); } //Make sure PS order is correct, in that types can't be separated by total or accrual accounts. $pseallf = new PayStubEntryAccountLinkListFactory(); $pseallf->getByCompanyId($this->getCompany()); if ($pseallf->getRecordCount() > 0) { $pseal_obj = $pseallf->getCurrent(); $psealf = new PayStubEntryAccountListFactory(); $psealf->getByCompanyIdAndTypeId($this->getCompany(), 40); if ($psealf->getRecordCount() > 0) { foreach ($psealf as $psea_obj) { $psea_map[$psea_obj->getId()] = $psea_obj->getOrder(); } unset($psea_obj); } switch ($this->getType()) { case 10: //Earning //Greater the 0, less then Total Gross Account if (isset($psea_map[$pseal_obj->getTotalGross()])) { $min_ps_order = 0; $max_ps_order = $psea_map[$pseal_obj->getTotalGross()]; } break; case 20: //EE Deduction //Greater then Total Gross Account, less then Total Employee Deduction if (isset($psea_map[$pseal_obj->getTotalGross()]) and isset($psea_map[$pseal_obj->getTotalEmployeeDeduction()])) { $min_ps_order = $psea_map[$pseal_obj->getTotalGross()]; $max_ps_order = $psea_map[$pseal_obj->getTotalEmployeeDeduction()]; } break; case 30: //ER Deduction //Greater then Net Pay Account, less then Total Employer Deduction if (isset($psea_map[$pseal_obj->getTotalNetPay()]) and isset($psea_map[$pseal_obj->getTotalEmployerDeduction()])) { $min_ps_order = $psea_map[$pseal_obj->getTotalNetPay()]; $max_ps_order = $psea_map[$pseal_obj->getTotalEmployerDeduction()]; } break; case 50: //Accrual //Greater then Total Employer Deduction if (isset($psea_map[$pseal_obj->getTotalEmployerDeduction()])) { $min_ps_order = $psea_map[$pseal_obj->getTotalEmployerDeduction()]; $max_ps_order = 10001; } break; } if (isset($min_ps_order) and isset($max_ps_order) and ($this->getOrder() <= $min_ps_order or $this->getOrder() >= $max_ps_order)) { Debug::text('PS Order... Min: ' . $min_ps_order . ' Max: ' . $max_ps_order, __FILE__, __LINE__, __METHOD__, 10); $this->Validator->isTrue('ps_order', FALSE, TTi18n::gettext('Order is invalid for this type of account, it must be between') . ' ' . ($min_ps_order + 1) . ' ' . TTi18n::gettext('and') . ' ' . ($max_ps_order - 1)); } } return TRUE; }