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: