function getUserDateTotalArray($start_date, $end_date)
 {
     $udtlf = new UserDateTotalListFactory();
     $date_totals = array();
     //Get only system totals.
     //$udtlf->getByCompanyIDAndUserIdAndStatusAndStartDateAndEndDate( $this->company_id, $this->user_id, 10, $start_date, $end_date);
     $udtlf->getByCompanyIDAndUserIdAndStatusAndTypeAndStartDateAndEndDate($this->company_id, $this->user_id, 10, array(10, 20, 40), $start_date, $end_date);
     if ($udtlf->getRecordCount() > 0) {
         foreach ($udtlf as $udt_obj) {
             $user_date_stamp = TTDate::strtotime($udt_obj->getColumn('user_date_stamp'));
             $type_and_policy_id = $udt_obj->getType() . (int) $udt_obj->getOverTimePolicyID();
             $date_totals[$user_date_stamp][] = array('date_stamp' => $udt_obj->getColumn('user_date_stamp'), 'id' => $udt_obj->getId(), 'user_date_id' => $udt_obj->getUserDateId(), 'status_id' => $udt_obj->getStatus(), 'type_id' => $udt_obj->getType(), 'over_time_policy_id' => $udt_obj->getOverTimePolicyID(), 'premium_policy_id' => $udt_obj->getPremiumPolicyID(), 'type_and_policy_id' => $type_and_policy_id, 'branch_id' => (int) $udt_obj->getBranch(), 'department_id' => $udt_obj->getDepartment(), 'total_time' => $udt_obj->getTotalTime(), 'name' => $udt_obj->getName(), 'tmp_override' => $udt_obj->getOverride());
         }
     }
     return $date_totals;
 }
     //var_dump($date_department_total_group);
     $date_worked_total_job_item_ids = array_unique($date_worked_total_job_item_ids);
     sort($date_worked_total_job_item_ids);
     if ($date_worked_total_job_item_ids[0] != FALSE or count($date_worked_total_job_item_ids) > 1) {
         $date_job_item_total_rows = TimeSheetFormatArrayByDate($date_job_item_total_group, $date_worked_total_job_item_ids, $calendar_array, 'job_item', 'job_item_id');
     }
 }
 /*
 	Get Premium Time
 */
 $pplf_b = new PremiumPolicyListFactory();
 $premium_policy_options = $pplf_b->getByCompanyIdArray($current_company->getId());
 unset($pplf_b);
 $udtlf = new UserDateTotalListFactory();
 //Get only worked totals.
 $udtlf->getByCompanyIDAndUserIdAndStatusAndTypeAndStartDateAndEndDate($current_company->getId(), $user_id, 10, 40, $start_date, $end_date);
 if ($udtlf->getRecordCount() > 0) {
     foreach ($udtlf as $udt_obj) {
         $user_date_stamp = TTDate::strtotime($udt_obj->getColumn('user_date_stamp'));
         if ($udt_obj->getPremiumPolicyID() !== FALSE and isset($premium_policy_options[$udt_obj->getPremiumPolicyID()])) {
             $premium_policy = $premium_policy_options[$udt_obj->getPremiumPolicyID()];
         } else {
             $premium_policy = TTi18n::gettext('No Policy');
         }
         $date_premium_totals[$user_date_stamp][] = array('date_stamp' => $udt_obj->getColumn('user_date_stamp'), 'id' => $udt_obj->getId(), 'user_date_id' => $udt_obj->getUserDateId(), 'status_id' => $udt_obj->getStatus(), 'type_id' => $udt_obj->getType(), 'over_time_policy_id' => $udt_obj->getOverTimePolicyID(), 'premium_policy_id' => $udt_obj->getPremiumPolicyID(), 'premium_policy' => $premium_policy, 'department_id' => $udt_obj->getDepartment(), 'total_time' => $udt_obj->getTotalTime(), 'override' => $udt_obj->getOverride());
         $date_premium_total_policy_ids[] = (int) $udt_obj->getPremiumPolicyID();
         $date_total_premium_ids[] = (int) $udt_obj->getPremiumPolicyID();
     }
 }
 if (isset($date_premium_totals)) {
     foreach ($date_premium_totals as $user_date_stamp => $date_rows) {