$slf->getReportByCompanyIdAndArrayCriteria($current_company->getId(), $filter_data);
 if ($slf->getRecordCount() > 0) {
     foreach ($slf as $s_obj) {
         $user_id = $s_obj->getColumn('user_id');
         $pay_period_id = $s_obj->getColumn('pay_period_id');
         $status_id = $s_obj->getColumn('status_id');
         $status = strtolower(Option::getByKey($status_id, $s_obj->getOptions('status')));
         $schedule_rows[$user_id][$pay_period_id][$status] = $s_obj->getColumn('total_time');
         unset($user_id, $pay_period_id, $status_id, $status);
     }
 }
 //var_dump($schedule_rows);
 $pay_period_ids = array();
 $udtlf = new UserDateTotalListFactory();
 //$udtlf->getReportByPayPeriodIDListAndUserIdList($filter_data['pay_period_ids'], $filter_data['user_ids'], array($filter_data['primary_sort'] => 'asc') );
 $udtlf->getReportByCompanyIdAndArrayCriteria($current_company->getId(), $filter_data);
 foreach ($udtlf as $udt_obj) {
     $user_id = $udt_obj->getColumn('id');
     $pay_period_id = $udt_obj->getColumn('pay_period_id');
     $pay_period_ids[$pay_period_id] = NULL;
     //Keep list of all pay periods for timesheet verify.
     $status_id = $udt_obj->getColumn('status_id');
     $type_id = $udt_obj->getColumn('type_id');
     if ($status_id == 10 and $type_id == 10) {
         $column = 'paid_time';
     } elseif ($status_id == 10 and $type_id == 20) {
         $column = 'regular_time';
     } elseif ($status_id == 10 and $type_id == 30) {
         $column = 'over_time_policy-' . $udt_obj->getColumn('over_time_policy_id');
     } elseif ($status_id == 10 and $type_id == 40) {
         $column = 'premium_policy-' . $udt_obj->getColumn('premium_policy_id');