function getPayStubAmendmentDeductions() { //Get pay stub amendments here. $psalf = new PayStubAmendmentListFactory(); if ($this->getAdvance() == TRUE) { //For advances, any PS amendment effective BEFORE the advance end date is considered in full. //Any AFTER the advance end date, is considered half. //$pay_period_end_date = $this->getPayPeriodObject()->getAdvanceEndDate(); $advance_neg_sum = $psalf->getAmountSumByUserIdAndTypeIdAndAuthorizedAndStartDateAndEndDate($this->getUser(), 20, TRUE, $this->getPayPeriodObject()->getStartDate(), $this->getPayPeriodObject()->getAdvanceEndDate()); Debug::text('Pay Stub Amendment Advance Deductions: ' . $advance_neg_sum, __FILE__, __LINE__, __METHOD__, 10); $full_neg_sum = $psalf->getAmountSumByUserIdAndTypeIdAndAuthorizedAndStartDateAndEndDate($this->getUser(), 20, TRUE, $this->getPayPeriodObject()->getAdvanceEndDate(), $this->getPayPeriodObject()->getEndDate()); Debug::text('Pay Stub Amendment Full Deductions: ' . $full_neg_sum, __FILE__, __LINE__, __METHOD__, 10); //Take the full amount of PS amendments BEFORE the advance end date, and half of any AFTER the advance end date. //$neg_sum = $advance_neg_sum + ($full_neg_sum / 2); $neg_sum = bcadd($advance_neg_sum, bcdiv($full_neg_sum, 2)); } else { //$pay_period_end_date = $neg_sum = $psalf->getAmountSumByUserIdAndTypeIdAndAuthorizedAndStartDateAndEndDate($this->getUser(), 20, TRUE, $this->getPayPeriodObject()->getStartDate(), $this->getPayPeriodObject()->getEndDate()); } //$neg_sum = $psalf->getAmountSumByUserIdAndTypeIdAndTaxExemptAndAuthorizedAndStartDateAndEndDate( $this->getUser(), 20, FALSE, TRUE, $this->getPayPeriodObject()->getStartDate(), $this->getPayPeriodObject()->getEndDate() )*-1; Debug::text('Pay Stub Amendment Total Deductions: ' . $neg_sum, __FILE__, __LINE__, __METHOD__, 10); return bcmul($neg_sum, -1); }