[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [8300]
From: |
Torstein |
Subject: |
[Fmsystem-commits] [8300] |
Date: |
Thu, 15 Dec 2011 08:38:05 +0000 |
Revision: 8300
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=8300
Author: vator
Date: 2011-12-15 08:38:04 +0000 (Thu, 15 Dec 2011)
Log Message:
-----------
Added Paths:
-----------
trunk/controller/inc/components/
trunk/controller/inc/components/class.calendar_builder.inc.php
trunk/controller/inc/components/class.date_generator.inc.php
Added: trunk/controller/inc/components/class.calendar_builder.inc.php
===================================================================
--- trunk/controller/inc/components/class.calendar_builder.inc.php
(rev 0)
+++ trunk/controller/inc/components/class.calendar_builder.inc.php
2011-12-15 08:38:04 UTC (rev 8300)
@@ -0,0 +1,110 @@
+<?php
+
+include_class('controller', 'date_generator', 'inc/components/');
+
+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){
+
+ if( $period_type == "view_months" )
+ {
+ $calendar_array[ date("n", $date) ]
= "";
+ }
+ else if( $period_type == "view_days" ){
+ $calendar_array[ date("j", $date) ] =
array( "date" => $date );
+ }
+ }
+
+ // 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_id(
$check_list->get_id() );
+ $check_list_status_info->set_status_text(
$check_list->get_status() );
+
+ if( $check_list->get_status() == 0 ){
+ $check_list_status_info->set_status(0);
+ }
+ else if( $check_list->get_status() == 1 &
$check_list->get_planned_date() == '' )
+ {
+ $check_list_status_info->set_status(1);
+ }
+ else if( $check_list->get_status() == 2 &
$check_list->get_completed_date() < $check_list->get_deadline() )
+ {
+ $check_list_status_info->set_status(2);
+ }
+ else if( $check_list->get_status() == 3 &
$check_list->get_completed_date() > $check_list->get_deadline() )
+ {
+ $check_list_status_info->set_status(3);
+ }
+ else if( $check_list->get_status() == 4 )
+ {
+ $check_list_status_info->set_status(4);
+ }
+
+ $check_list_status_info->set_deadline(
date("d/m-Y", $check_list->get_deadline()) );
+
+ if($period_type == "view_months")
+ {
+ $calendar_array[ date("n",
$check_list->get_deadline()) ] = $check_list_status_info->serialize();
+ }
+ else{
+ $calendar_array[ date("j",
$check_list->get_deadline()) ] = $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;
+ }
+
+ // 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 ] += $check_list['count'];
+ }
+
+ $control_calendar_array[] = array("control" =>
$control_info, "calendar_array" => $calendar_array);
+ }
+
+ return $control_calendar_array;
+ }
+}
\ No newline at end of file
Added: trunk/controller/inc/components/class.date_generator.inc.php
===================================================================
--- trunk/controller/inc/components/class.date_generator.inc.php
(rev 0)
+++ trunk/controller/inc/components/class.date_generator.inc.php
2011-12-15 08:38:04 UTC (rev 8300)
@@ -0,0 +1,111 @@
+<?php
+
+class date_generator
+{
+ private $start_date;
+ private $end_date;
+ private $period_start_date;
+ private $period_end_date;
+ private $repeat_type;
+ private $repeat_interval;
+
+ private $calendar_array = array();
+
+ public function __construct($start_date, $end_date, $period_start_date,
$period_end_date, $repeat_type, $repeat_interval){
+ $this->start_date = $start_date;
+ $this->end_date = $end_date;
+ $this->period_start_date = $period_start_date;
+ $this->period_end_date = $period_end_date;
+ $this->repeat_type = $repeat_type;
+ $this->repeat_interval = $repeat_interval;
+
+ $this->generate_calendar();
+ }
+
+ function generate_calendar(){
+
+ $trail_date = $this->find_start_date_by_repeat_type();
+
+ while( $trail_date < $this->period_start_date ){
+
+ if($this->repeat_type == 1 || $this->repeat_type == 0)
+ {
+ $trail_date = mktime(0,0,0, date("m",
$trail_date), date("d", $trail_date)+$this->repeat_interval, date("Y",
$trail_date));
+ }
+ else if($this->repeat_type == 2)
+ {
+ $month = date("m", $trail_date) +
$this->repeat_interval;
+ $year = date("Y", $trail_date);
+
+ if($month > 12){
+ $month = $month % 12;
+ $year += 1;
+ }
+
+ $num_days_in_month =
cal_days_in_month(CAL_GREGORIAN, $month, $year);
+ $trail_date = mktime(0,0,0, $month,
$num_days_in_month, $year);
+ }
+ else if($this->repeat_type == 3)
+ {
+ $trail_date = mktime(0,0,0, date("m",
$trail_date), date("d", $trail_date), date("Y",
$trail_date)+$this->repeat_interval);
+ }
+ }
+
+ while($trail_date <= $this->period_end_date){
+
+ $this->calendar_array[] = $trail_date;
+
+ if($this->repeat_type == 1 || $this->repeat_type == 0)
+ {
+ $trail_date = mktime(0,0,0, date("m",
$trail_date), date("d", $trail_date)+$this->repeat_interval, date("Y",
$trail_date));
+ }
+ else if($this->repeat_type == 2)
+ {
+ $month = date("m",
$trail_date)+$this->repeat_interval;
+ if($month > 12){
+ $month = $month % 12;
+ $year = date("Y", $trail_date) + 1;
+ }
+
+ $num_days_in_month =
cal_days_in_month(CAL_GREGORIAN, $month, $year);
+ $trail_date = mktime(0,0,0, $month,
$num_days_in_month, $year);
+ }
+ else if($this->repeat_type == 3)
+ {
+ $trail_date = mktime(0,0,0, date("m",
$trail_date), date("d", $trail_date), date("Y",
$trail_date)+$this->repeat_interval);
+ }
+ }
+
+ }
+
+ public function find_start_date_by_repeat_type(){
+
+ if( $this->repeat_type == 1 || $this->repeat_type == 0 ){
+ $search_date = $this->start_date;
+
+ while(date("l", $search_date) != "Sunday")
+ {
+ $num_days_in_month =
cal_days_in_month(CAL_GREGORIAN, date("m", $search_date), date("y",
$search_date));
+
+ if($num_days_in_month <= date("d",
$search_date) )
+ {
+ $search_date = mktime(0,0,0, date("m",
$search_date)+1, 1, date("Y", $search_date));
+ }
+ else
+ {
+ $search_date = mktime(0,0,0, date("m",
$search_date), date("d", $search_date)+1, date("Y", $search_date));
+ }
+ }
+ }
+ else if( $this->repeat_type == 2 ){
+ $num_days_in_month = cal_days_in_month(CAL_GREGORIAN,
date("m", $this->start_date), date("y", $this->start_date));
+ $search_date = mktime(0,0,0, date("m",
$this->start_date), $num_days_in_month, date("y", $this->start_date));
+ }
+
+ return $search_date;
+ }
+
+ public function get_dates(){
+ return $this->calendar_array;
+ }
+}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [8300],
Torstein <=