fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [8584]


From: Torstein
Subject: [Fmsystem-commits] [8584]
Date: Mon, 16 Jan 2012 10:16:06 +0000

Revision: 8584
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=8584
Author:   vator
Date:     2012-01-16 10:16:06 +0000 (Mon, 16 Jan 2012)
Log Message:
-----------


Added Paths:
-----------
    trunk/controller/inc/component/class.status_checker.inc.php

Added: trunk/controller/inc/component/class.status_checker.inc.php
===================================================================
--- trunk/controller/inc/component/class.status_checker.inc.php                 
        (rev 0)
+++ trunk/controller/inc/component/class.status_checker.inc.php 2012-01-16 
10:16:06 UTC (rev 8584)
@@ -0,0 +1,138 @@
+<?php
+
+include_class('controller', 'date_generator', 'inc/component/');
+
+class calendar_builder {
+       
+       private $period_start_date;
+       private $period_end_date;
+
+       public function __construct($period_start_date, $period_end_date){
+        $this->period_start_date = $period_start_date;
+        $this->period_end_date = $period_end_date;
+       }
+       
+       public function build_calendar_array( $control_array, 
$controls_calendar_array, $num, $period_type ){
+               
+               foreach($control_array as $control){
+                                               
+                       // Initialises twelve_months_array
+                       for($i=1;$i<=$num;$i++){
+                               $calendar_array[$i] = null;
+                       }
+
+                       $date_generator = new 
date_generator($control->get_start_date(), $control->get_end_date(), 
$this->period_start_date, $this->period_end_date, $control->get_repeat_type(), 
$control->get_repeat_interval());
+                       $dates_array = $date_generator->get_dates();
+               
+                       // Inserts dates on behalf of repeat type and repeat 
interval
+                       foreach($dates_array as $date){
+                               
+                               $todays_date = mktime(0,0,0,date("m"), 
date("d"), date("Y"));
+                               
+                               if($date < $todays_date){
+                                       $status = "control_not_accomplished";
+                               }else{
+                                       $status = "control_registered";
+                               }
+                               
+                               if( $period_type == "view_months" )
+                               {
+                                       $calendar_array[ date("n", $date) 
]["status"]  = $status;
+                                       $calendar_array[ date("n", $date) 
]["info"]  = array("date" => $date, "control_id" => $control->get_id());
+                               }
+                               else if( $period_type == "view_days" )
+                               {
+                                       $calendar_array[ date("j", $date) 
]["status"]  = $status;
+                                       $calendar_array[ date("j", $date) 
]["info"]  = array("date" => $date, "control_id" => $control->get_id());      
+                               }
+                       }
+                       
+                       // Inserts check_list object on deadline month in 
twelve_months_array
+                       foreach($control->get_check_lists_array() as 
$check_list){
+                               
+                               $check_list_status_info = new 
check_list_status_info();
+                               $check_list_status_info->set_check_list_id( 
$check_list->get_id() );
+               
+                               $todays_date = mktime(0,0,0,date("m"), 
date("d"), date("Y"));
+                               
+                               if( $check_list->get_status() == 0 & 
$check_list->get_planned_date() > 0 & $check_list->get_deadline() > 
$todays_date)
+                               {
+                                       $status = "control_planned";
+                                       
$check_list_status_info->set_info_text("Planlagt utført: " . 
$check_list->get_planned_date());
+                               }
+                               else if( $check_list->get_status() == 0 & 
$check_list->get_planned_date() > 0 & $check_list->get_deadline() < 
$todays_date)
+                               {
+                                       $status = 
"control_not_accomplished_with_info";
+                               }
+                               else if( $check_list->get_status() == 0 & 
$check_list->get_deadline() > $todays_date )
+                               {
+                                       $status = "control_not_accomplished";
+                               }
+                               else if( $check_list->get_status() == 1 & 
$check_list->get_completed_date() > $check_list->get_deadline() )
+                               {
+                                       $status = 
"control_accomplished_over_time_without_errors";
+                               }
+                               else if( $check_list->get_status() == 1 & 
$check_list->get_completed_date() < $check_list->get_deadline() )
+                               {
+                                       $status = 
"control_accomplished_in_time_without_errors";
+                               }
+                               else if( $check_list->get_status() == 2  ){
+                                       $status = 
"control_accomplished_with_errors";
+                                       
$check_list_status_info->set_num_open_cases($check_list->get_num_open_cases());
+                               }
+                               else if( $check_list->get_status() == 3 )
+                               {
+                                       $status = "control_canceled";
+                               }
+                               
+                               $check_list_status_info->set_deadline_date( 
date("d/m-Y", $check_list->get_deadline()) );
+                               
+                               if($period_type == "view_months")
+                               {
+                                       $calendar_array[ date("n", 
$check_list->get_deadline()) ]["status"] = $status;
+                                       $calendar_array[ date("n", 
$check_list->get_deadline()) ]["info"] = $check_list_status_info->serialize();  
     
+                               }
+                               else if( $period_type == "view_days" )
+                               {
+                                       $calendar_array[ date("j", 
$check_list->get_deadline()) ]["status"] = $status;
+                                       $calendar_array[ date("j", 
$check_list->get_deadline()) ]["info"] = $check_list_status_info->serialize();
+                               }
+                       }
+                       
+                       $controls_calendar_array[] = array("control" => 
$control->toArray(), "calendar_array" => $calendar_array);
+               }
+
+               return $controls_calendar_array;
+       }
+       
+       // Function receives array with control objects that each contain 
check_lists for a certain period
+       public function build_agg_calendar_array( $controls_array ){
+                                       
+               $calendar_array = array();
+               
+               foreach($controls_array as $control_array){
+                       
+                       $control_info = $control_array['control'];
+                       $check_list_array = $control_array['check_list'];
+                       
+                       $control_id = $control_info['id'];
+                        
+                       // Initialises twelve_months_array
+                       for($i=0;$i<12;$i++){
+                               $calendar_array[$i] = null;
+                       }
+                       
+                       $status = "control_agg_accomplished_with_errors";
+                       
+                       // Inserts check_list object on deadline month in 
twelve_months_array
+                       foreach($check_list_array as $check_list){
+                               $calendar_array[ date("m", 
$check_list['deadline']) - 1 ] ["status"] = $status;
+                               $calendar_array[ date("m", 
$check_list['deadline']) - 1 ] ["info"] = $check_list['count']; 
+                       }
+                       
+                       $control_calendar_array[] = array("control" => 
$control_info, "calendar_array" => $calendar_array);
+               }
+
+               return $control_calendar_array;
+       }
+}
\ No newline at end of file




reply via email to

[Prev in Thread] Current Thread [Next in Thread]