function addPayStubAmendments() { //Regular FIXED PS amendment $psaf = new PayStubAmendmentFactory(); $psaf->setUser($this->user_id); $psaf->setPayStubEntryNameId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($this->company_id, 10, 'Bonus')); $psaf->setStatus(50); //Active $psaf->setType(10); $psaf->setRate(10); $psaf->setUnits(10); $psaf->setDescription('Test Fixed PS Amendment'); $psaf->setEffectiveDate($this->pay_period_objs[0]->getEndDate()); $psaf->setAuthorized(TRUE); if ($psaf->isValid()) { $psaf->Save(); } //Regular percent PS amendment $psaf = new PayStubAmendmentFactory(); $psaf->setUser($this->user_id); $psaf->setPayStubEntryNameId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($this->company_id, 10, 'Other')); $psaf->setStatus(50); //Active $psaf->setType(20); $psaf->setPercentAmount(10); //10% $psaf->setPercentAmountEntryNameId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($this->company_id, 10, 'Regular Time')); $psaf->setDescription('Test Percent PS Amendment'); $psaf->setEffectiveDate($this->pay_period_objs[0]->getEndDate()); $psaf->setAuthorized(TRUE); if ($psaf->isValid()) { $psaf->Save(); } //Vacation Accrual Release percent PS amendment $psaf = new PayStubAmendmentFactory(); $psaf->setUser($this->user_id); $psaf->setPayStubEntryNameId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($this->company_id, 10, 'Vacation Accrual Release')); $psaf->setStatus(50); //Active $psaf->setType(20); $psaf->setPercentAmount(50); //50% - Leave some balance to check against. $psaf->setPercentAmountEntryNameId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($this->company_id, 50, 'Vacation Accrual')); $psaf->setDescription('Test Vacation Release Percent PS Amendment'); $psaf->setEffectiveDate($this->pay_period_objs[0]->getEndDate()); $psaf->setAuthorized(TRUE); if ($psaf->isValid()) { $psaf->Save(); } //YTD Adjustment FIXED PS amendment $psaf = new PayStubAmendmentFactory(); $psaf->setUser($this->user_id); $psaf->setPayStubEntryNameId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($this->company_id, 10, 'Premium 2')); $psaf->setStatus(50); //Active $psaf->setType(10); $psaf->setAmount(1.99); $psaf->setYTDAdjustment(TRUE); $psaf->setDescription('Test YTD PS Amendment'); $psaf->setEffectiveDate($this->pay_period_objs[0]->getEndDate()); $psaf->setAuthorized(TRUE); if ($psaf->isValid()) { $psaf->Save(); } //YTD Adjustment FIXED PS amendment $psaf = new PayStubAmendmentFactory(); $psaf->setUser($this->user_id); $psaf->setPayStubEntryNameId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($this->company_id, 10, 'Other')); $psaf->setStatus(50); //Active $psaf->setType(10); //$psaf->setAmount( 0.09 ); $psaf->setAmount(1000); //Increase this so Union Dues are closer to the maximum earnings and are calculated to be less. $psaf->setYTDAdjustment(TRUE); $psaf->setDescription('Test YTD (2) PS Amendment'); $psaf->setEffectiveDate($this->pay_period_objs[0]->getEndDate()); $psaf->setAuthorized(TRUE); if ($psaf->isValid()) { $psaf->Save(); } //YTD Adjustment FIXED PS amendment for testing Maximum EI contribution $psaf = new PayStubAmendmentFactory(); $psaf->setUser($this->user_id); $psaf->setPayStubEntryNameId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($this->company_id, 20, 'EI')); $psaf->setStatus(50); //Active $psaf->setType(10); $psaf->setAmount(700.0); $psaf->setYTDAdjustment(TRUE); $psaf->setDescription('Test EI YTD PS Amendment'); $psaf->setEffectiveDate($this->pay_period_objs[0]->getEndDate()); $psaf->setAuthorized(TRUE); if ($psaf->isValid()) { $psaf->Save(); } //YTD Adjustment FIXED PS amendment for testing Maximum CPP contribution $psaf = new PayStubAmendmentFactory(); $psaf->setUser($this->user_id); $psaf->setPayStubEntryNameId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($this->company_id, 20, 'CPP')); $psaf->setStatus(50); //Active $psaf->setType(10); $psaf->setAmount(1900.0); $psaf->setYTDAdjustment(TRUE); $psaf->setDescription('Test CPP YTD PS Amendment'); $psaf->setEffectiveDate($this->pay_period_objs[0]->getEndDate()); $psaf->setAuthorized(TRUE); if ($psaf->isValid()) { $psaf->Save(); } //YTD Adjustment FIXED PS amendment for testing Vacation Accrual totaling issues. $psaf = new PayStubAmendmentFactory(); $psaf->setUser($this->user_id); $psaf->setPayStubEntryNameId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($this->company_id, 50, 'Vacation Accrual')); $psaf->setStatus(50); //Active $psaf->setType(10); $psaf->setAmount(99.01000000000001); $psaf->setYTDAdjustment(TRUE); $psaf->setDescription('Test Vacation Accrual YTD PS Amendment'); $psaf->setEffectiveDate($this->pay_period_objs[0]->getEndDate()); $psaf->setAuthorized(TRUE); if ($psaf->isValid()) { $psaf->Save(); } // // Add EARNING PS amendments for a pay period that has no Punch hours. // Include a regular time adjustment so we can test Wage Base amounts for some tax/deductions. //Regular FIXED PS amendment as regular time. $psaf = new PayStubAmendmentFactory(); $psaf->setUser($this->user_id); $psaf->setPayStubEntryNameId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($this->company_id, 10, 'Regular Time')); $psaf->setStatus(50); //Active $psaf->setType(10); $psaf->setRate(33.33); $psaf->setUnits(3); $psaf->setDescription('Test Fixed PS Amendment (1)'); $psaf->setEffectiveDate($this->pay_period_objs[1]->getEndDate()); $psaf->setAuthorized(TRUE); if ($psaf->isValid()) { $psaf->Save(); } //Regular FIXED PS amendment as Bonus $psaf = new PayStubAmendmentFactory(); $psaf->setUser($this->user_id); $psaf->setPayStubEntryNameId(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($this->company_id, 10, 'Bonus')); $psaf->setStatus(50); //Active $psaf->setType(10); $psaf->setRate(10); $psaf->setUnits(30); $psaf->setDescription('Test Fixed PS Amendment (2)'); $psaf->setEffectiveDate($this->pay_period_objs[1]->getEndDate()); $psaf->setAuthorized(TRUE); if ($psaf->isValid()) { $psaf->Save(); } return TRUE; }
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; }
$fail_transaction = FALSE; foreach ($pay_stub_amendment_data['filter_user_id'] as $user_id) { $psaf->setId($pay_stub_amendment_data['id']); $psaf->setUser($user_id); $psaf->setPayStubEntryNameId($pay_stub_amendment_data['pay_stub_entry_name_id']); $psaf->setStatus($pay_stub_amendment_data['status_id']); $psaf->setType($pay_stub_amendment_data['type_id']); if ($pay_stub_amendment_data['type_id'] == 10) { $psaf->setRate($pay_stub_amendment_data['rate']); $psaf->setUnits($pay_stub_amendment_data['units']); if (isset($pay_stub_amendment_data['amount'])) { $psaf->setAmount($pay_stub_amendment_data['amount']); } } else { $psaf->setPercentAmount($pay_stub_amendment_data['percent_amount']); $psaf->setPercentAmountEntryNameId($pay_stub_amendment_data['percent_amount_entry_name_id']); } if (isset($pay_stub_amendment_data['ytd_adjustment'])) { $psaf->setYTDAdjustment(TRUE); } else { $psaf->setYTDAdjustment(FALSE); } $psaf->setDescription($pay_stub_amendment_data['description']); $psaf->setEffectiveDate($pay_stub_amendment_data['effective_date']); //Authorize them all for now. $psaf->setAuthorized(TRUE); if ($psaf->isValid()) { if ($psaf->Save() === FALSE) { $fail_transaction = TRUE; break; }