function calcUserDateTotal() { if ($this->getEnableCalcUserDateTotal() == TRUE) { Debug::Text(' Calculating User Date Total...', __FILE__, __LINE__, __METHOD__, 10); //Add a row to the user date total table, as "worked" hours. //Edit if it already exists and is not set as override. $udtlf = new UserDateTotalListFactory(); $udtlf->getByUserDateIdAndPunchControlId($this->getUserDateID(), $this->getId()); Debug::text(' Checking for Conflicting User Date Total Records, count: ' . $udtlf->getRecordCount(), __FILE__, __LINE__, __METHOD__, 10); if ($udtlf->getRecordCount() > 0) { Debug::text(' Found Conflicting User Date Total Records, removing them before re-calc', __FILE__, __LINE__, __METHOD__, 10); foreach ($udtlf as $udt_obj) { if ($udt_obj->getOverride() == FALSE) { Debug::text(' bFound Conflicting User Date Total Records, removing them before re-calc', __FILE__, __LINE__, __METHOD__, 10); $udt_obj->Delete(); } } } Debug::text(' cFound Conflicting User Date Total Records, removing them before re-calc: PreMature: ' . (int) $this->getEnablePreMatureException(), __FILE__, __LINE__, __METHOD__, 10); if ($this->getDeleted() == FALSE) { Debug::text(' Calculating Total Time for day. Punch Control ID: ' . $this->getId(), __FILE__, __LINE__, __METHOD__, 10); $udtf = new UserDateTotalFactory(); $udtf->setUserDateID($this->getUserDateID()); $udtf->setPunchControlID($this->getId()); $udtf->setStatus(20); //Worked $udtf->setType(10); //Total $udtf->setBranch($this->getBranch()); $udtf->setDepartment($this->getDepartment()); $udtf->setJob($this->getJob()); $udtf->setJobItem($this->getJobItem()); $udtf->setQuantity($this->getQuantity()); $udtf->setBadQuantity($this->getBadQuantity()); $udtf->setTotalTime($this->getTotalTime()); $udtf->setActualTotalTime($this->getActualTotalTime()); //Let smartReCalculate handle calculating totals/exceptions. if ($udtf->isValid()) { $udtf->Save(); } } } return FALSE; }
} if (isset($udt_data['job_item_id'])) { $udtf->setJobItem($udt_data['job_item_id']); } if (isset($udt_data['quantity'])) { $udtf->setQuantity($udt_data['quantity']); } if (isset($udt_data['bad_quantity'])) { $udtf->setBadQuantity($udt_data['bad_quantity']); } $udtf->setOverTimePolicyID($udt_data['over_time_policy_id']); $udtf->setPremiumPolicyID($udt_data['premium_policy_id']); $udtf->setAbsencePolicyID($udt_data['absence_policy_id']); $udtf->setMealPolicyID($udt_data['meal_policy_id']); $udtf->setTotalTime($udt_data['total_time']); $udtf->setPunchControlID((int) $udt_data['punch_control_id']); if (isset($udt_data['override']) and $udt_data['override'] == 1) { Debug::Text('Setting override to TRUE!', __FILE__, __LINE__, __METHOD__, 10); $udtf->setOverride(TRUE); } else { $udtf->setOverride(FALSE); } if ($udtf->isValid()) { $udtf->setEnableCalcSystemTotalTime(TRUE); $udtf->setEnableCalcWeeklySystemTotalTime(TRUE); $udtf->setEnableCalcException(TRUE); $udtf->Save(); Redirect::Page(URLBuilder::getURL(array('refresh' => TRUE), '../CloseWindow.php')); break; } default: