fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [11385] controller: bugfix


From: Sigurd Nes
Subject: [Fmsystem-commits] [11385] controller: bugfix
Date: Tue, 22 Oct 2013 10:52:48 +0000

Revision: 11385
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=11385
Author:   sigurdne
Date:     2013-10-22 10:52:47 +0000 (Tue, 22 Oct 2013)
Log Message:
-----------
controller: bugfix

Modified Paths:
--------------
    trunk/controller/inc/class.hook_helper.inc.php
    trunk/controller/inc/class.socontrol.inc.php

Modified: trunk/controller/inc/class.hook_helper.inc.php
===================================================================
--- trunk/controller/inc/class.hook_helper.inc.php      2013-10-21 10:19:49 UTC 
(rev 11384)
+++ trunk/controller/inc/class.hook_helper.inc.php      2013-10-22 10:52:47 UTC 
(rev 11385)
@@ -67,6 +67,7 @@
 
                        $location_array = array();
                        $component_short_desc = array();
+                       $component_short_desc[0][0] = '';
 
                        $so_check_list = 
CreateObject('controller.socheck_list');
                        $so_control = CreateObject('controller.socontrol');
@@ -195,7 +196,6 @@
                        } 
 
                        $my_planned_controls = array();
-
                        // Generates an array with planned controls
                        foreach($my_controls as $container_arr)
                        {
@@ -268,8 +268,12 @@
                        {
                                foreach($planned_controls_on_date as 
$my_planned_control)
                                {
+
                                        $deadline_ts = $my_planned_control[0];
                                        $my_control = $my_planned_control[1];
+                                       
+                                       $location_id = 
isset($my_control['location_id']) && $my_control['location_id'] ? 
$my_control['location_id'] : 0;
+                                       $component_id = 
isset($my_control['component_id']) && $my_control['component_id'] ? 
$my_control['component_id'] : 0;
 
                                        $control_area_name = 
$this->get_control_area_name( $my_control["control_area_id"] );
 
@@ -279,11 +283,13 @@
                                        $check_list_id = $my_planned_control[2];
                                        $location_code = $my_planned_control[4];
 
-                                       
if(!isset($location_array[$location_code]) || !$location_array[$location_code])
+                                       $location_name = 
$this->get_location_name($location_code);
+                                       
+                                       if($component_id)
                                        {
-                                               $location_array[$location_code] 
= execMethod('property.bolocation.read_single', array('location_code' => 
$location_code));
+                                               $short_descr = 
$this->get_short_description($location_id, $component_id);
+                                               $location_name .= 
"::{$short_descr}";
                                        }
-                                       $location_name = 
$location_array[$location_code]["loc1_name"];
 
                                        $link = "";
                                //      $link = 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'controller.uicheck_list.edit_check_list', 'check_list_id' => $check_list_id));
@@ -388,16 +394,18 @@
                        //Add assigned
                        $my_check_lists = 
$this->get_my_assigned_check_list($from_date_ts, $to_date_ts, $repeat_type, 
true);
 
+/*??
                        $_assigned_list = array();
                        foreach ($my_check_lists as $_key => $my_check_list)
                        {
                                
$_assigned_list[$my_check_list['location_code']][$_key] = $my_check_list;
                        }
-
+*/
                        foreach ($my_check_lists as $_key => $my_check_list)
                        {
                                
$my_undone_controls[$my_check_list['deadline']][] = array("edit", 
$my_check_list['deadline'], $my_check_list, $_key, 
$my_check_list['location_code'] );
                        }
+//_debug_array($my_undone_controls);
        
                        ksort($my_undone_controls);
 
@@ -440,12 +448,9 @@
                                                if($check_list_type == 
"location")
                                                {
                                                        $location_code = 
$my_undone_control[4];
-                                                       
if(!isset($location_array[$location_code]) || !$location_array[$location_code])
-                                                       {
-                                                               
$location_array[$location_code] = execMethod('property.bolocation.read_single', 
array('location_code' => $location_code));
-                                                       }
-                                                       $location_name = 
$location_array[$location_code]["loc1_name"];
 
+                                                       $location_name = 
$this->get_location_name($location_code);
+
                                                        if(count( 
$controls_on_date) > 1 )
                                                        {
                                                                $link = "";
@@ -467,42 +472,41 @@
                                                        $location_id = 
$my_undone_control[4];
                                                        $component_id = 
$my_undone_control[5];
 
-                                                       
if(!isset($component_short_desc[$location_id][$component_id]))
-                                                       {
-                                                               
$component_short_desc[$location_id][$component_id] = 
execMethod('property.soentity.get_short_description', array('location_id' => 
$location_id, 'id' => $component_id));
-                                                       }
-
-                                                       
if($component_short_desc[$location_id][$component_id])
-                                                       {
-                                                               $short_desc_arr 
= $component_short_desc[$location_id][$component_id];
-                                                       }
-
+                                                       $short_descr = 
$this->get_short_description($location_id, $component_id);
                                                        if(count( 
$controls_on_date) > 1 )
                                                        {
                                                                $link = "";
                                                                $link = 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'controller.uicheck_list.add_check_list', 'type' => "component", 'control_id' 
=> $my_control['id'], 'location_id' => $location_id, 'component_id' => 
$component_id, 'deadline_ts' => $deadline_ts));
 
-                                                               
$my_undone_controls_HTML .= "<li><a href='{$link}'><div 
class='date'>{$date_str}</div><div 
class='control'>{$my_control['title']}</div><div 
class='title'>{$short_desc_arr}</div><div 
class='control-area'>{$control_area_name}</div></a></li>";
+                                                               
$my_undone_controls_HTML .= "<li><a href='{$link}'><div 
class='date'>{$date_str}</div><div 
class='control'>{$my_control['title']}</div><div 
class='title'>{$short_descr}</div><div 
class='control-area'>{$control_area_name}</div></a></li>";
                                                        }
                                                        else
                                                        {
                                                                $link = "";
                                                                $link = 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'controller.uicheck_list.add_check_list', 'type' => "component", 'control_id' 
=> $my_control['id'], 'location_id' => $location_id, 'component_id' => 
$component_id, 'deadline_ts' => $deadline_ts));
 
-                                                               
$my_undone_controls_HTML .= "<a href='{$link}'><div 
class='date'>{$date_str}</div><div 
class='control'>{$my_control['title']}</div><div 
class='title'>{$short_desc_arr}</div><div 
class='control-area'>{$control_area_name}</div></a>";
+                                                               
$my_undone_controls_HTML .= "<a href='{$link}'><div 
class='date'>{$date_str}</div><div 
class='control'>{$my_control['title']}</div><div 
class='title'>{$short_descr}</div><div 
class='control-area'>{$control_area_name}</div></a>";
                                                        }
                                                }
                                        }
                                        else if($check_list_status == "edit")
                                        {
+
+                                               $location_id = 
isset($my_control['location_id']) && $my_control['location_id'] ? 
$my_control['location_id'] : 0;
+                                               $component_id = 
isset($my_control['component_id']) && $my_control['component_id'] ? 
$my_control['component_id'] : 0;
+
+
                                                $check_list_id = 
$my_undone_control[3];
                                                $location_code = 
$my_undone_control[4];
 
-                                               
if(!isset($location_array[$location_code]) || !$location_array[$location_code])
+                                               $location_name = 
$this->get_location_name($location_code);
+
+                                               if($component_id)
                                                {
-                                                       
$location_array[$location_code] = execMethod('property.bolocation.read_single', 
array('location_code' => $location_code));
+                                                       $short_descr = 
$this->get_short_description($location_id, $component_id);
+
+                                                       $location_name .= 
"::{$short_descr}";
                                                }
-                                               $location_name = 
$location_array[$location_code]["loc1_name"];
 
                                                if(count( $controls_on_date) > 
1 )
                                                {
@@ -668,11 +672,7 @@
                                                {
                                                        $location_code = 
$my_assigned_control[4];
 
-                                                       
if(!isset($location_array[$location_code]) || !$location_array[$location_code])
-                                                       {
-                                                               
$location_array[$location_code] = execMethod('property.bolocation.read_single', 
array('location_code' => $location_code));
-                                                       }
-                                                       $location_name = 
$location_array[$location_code]["loc1_name"];
+                                                       $location_name = 
$this->get_location_name($location_code);
 
                                                        $link = "";
                                                        $link = 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'controller.uicheck_list.add_check_list', 'type' => "location", 'control_id' => 
$my_control['id'], 'location_code' => $location_code, 'deadline_ts' => 
$deadline_ts));
@@ -683,21 +683,13 @@
                                                {
                                                        $location_id = 
$my_assigned_control[4];
                                                        $component_id = 
$my_assigned_control[5];
+                                                       
+                                                       $short_descr = 
$this->get_short_description($location_id, $component_id);
 
-                                                       
if(!isset($component_short_desc[$location_id][$component_id]))
-                                                       {
-                                                               
$component_short_desc[$location_id][$component_id] = 
execMethod('property.soentity.get_short_description', array('location_id' => 
$location_id, 'id' => $component_id));
-                                                       }
-
-                                                       
if($component_short_desc[$location_id][$component_id])
-                                                       {
-                                                               $short_desc_arr 
= $component_short_desc[$location_id][$component_id];
-                                                       }
-
                                                        $link = "";
                                                        $link = 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'controller.uicheck_list.add_check_list', 'type' => "component", 'control_id' 
=> $my_control['id'], 'location_id' => $location_id, 'component_id' => 
$component_id, 'deadline_ts' => $deadline_ts));
 
-                                                       
$my_assigned_controls_HTML .= "<li><a href='$link'><div 
class='date'>{$date_str}</div><div 
class='control'>{$my_control['title']}</div><div 
class='title'>{$short_desc_arr}</div><div 
class='control-area'>{$control_area_name}</div></a></li>";
+                                                       
$my_assigned_controls_HTML .= "<li><a href='$link'><div 
class='date'>{$date_str}</div><div 
class='control'>{$my_control['title']}</div><div 
class='title'>{$short_descr}</div><div 
class='control-area'>{$control_area_name}</div></a></li>";
                                                }
                                        }
                                        else if($check_list_status == "edit")
@@ -705,11 +697,7 @@
                                                $check_list_id = 
$my_assigned_control[3];
                                                $location_code = 
$my_assigned_control[4];
 
-                                               
if(!isset($location_array[$location_code]) || !$location_array[$location_code])
-                                               {
-                                                       
$location_array[$location_code] = execMethod('property.bolocation.read_single', 
array('location_code' => $location_code));
-                                               }
-                                               $location_name = 
$location_array[$location_code]["loc1_name"];
+                                               $location_name = 
$this->get_location_name($location_code);
 
                                                $link = "";
                                                $link = 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'controller.uicheck_list.edit_check_list', 'check_list_id' => $check_list_id));
@@ -826,4 +814,40 @@
 
                        return $control_area_name;
                }
+               
+               function get_location_name($location_code)
+               {
+                       static $location_array = array();
+                       if(!isset($location_array[$location_code]) || 
!$location_array[$location_code])
+                       {
+                               $_location_info = 
execMethod('property.bolocation.read_single', array
+                                       (
+                                               'location_code' => 
$location_code,
+                                               'extra'                 => 
array('noattrib' => true)
+                                       )
+                               );
+
+                               $_loc_name_arr = array();
+                               for ($i=1; $i < count(explode('-', 
$location_code)) +1;$i++)
+                               {
+                                       $_loc_name_arr[] = 
$_location_info["loc{$i}_name"];
+                               }
+
+                               $location_array[$location_code] = implode(' | 
',$_loc_name_arr);
+                       }
+
+                       return $location_array[$location_code];
+               }
+               
+               function get_short_description($location_id, $component_id)
+               {
+                       static $component_short_desc = array();
+
+                       
if(!isset($component_short_desc[$location_id][$component_id]))
+                       {
+                               
$component_short_desc[$location_id][$component_id] = 
execMethod('property.soentity.get_short_description', array('location_id' => 
$location_id, 'id' => $component_id));
+                       }
+
+                       return  
$component_short_desc[$location_id][$component_id];
+               }
        }

Modified: trunk/controller/inc/class.socontrol.inc.php
===================================================================
--- trunk/controller/inc/class.socontrol.inc.php        2013-10-21 10:19:49 UTC 
(rev 11384)
+++ trunk/controller/inc/class.socontrol.inc.php        2013-10-22 10:52:47 UTC 
(rev 11385)
@@ -206,15 +206,14 @@
 
                
                        $sql  = "SELECT DISTINCT 
controller_check_list.location_code, controller_check_list.control_id, 
controller_check_list.id AS check_list_id,"
-                               . " 
procedure_id,requirement_id,costresponsibility_id, 
controller_control.description, start_date, end_date, deadline,planned_date, 
completed_date,"
-                               . " control_area_id, 
repeat_type,repeat_interval, title,"
-                               . " bim_item.guid,bim_item.type as 
component_type, bim_item.id as component_id, bim_item.address,"
-                               . " bim_item.loc1"
+                               . " controller_control.description, start_date, 
end_date, deadline,planned_date, completed_date,"
+                               . " 
control_area_id,controller_check_list.location_id,title,controller_check_list.component_id"
                                . " FROM controller_check_list"
                                . " {$this->join} controller_control ON 
controller_check_list.control_id = controller_control.id"
-                               . " {$this->join} 
controller_control_component_list ON 
controller_control_component_list.control_id = controller_control.id"
-                               . " {$this->join} fm_bim_item bim_item ON 
controller_control_component_list.component_id = bim_item.id"
-                               . " {$this->join} fm_bim_type bim_type ON 
controller_control_component_list.location_id = bim_type.location_id"
+                               . " {$this->join} 
controller_control_component_list "
+                                       . " ON 
(controller_control_component_list.control_id = 
controller_check_list.control_id"
+                                       . " AND 
controller_control_component_list.location_id = 
controller_check_list.location_id"
+                                       . " AND 
controller_control_component_list.component_id = 
controller_check_list.component_id)"
                                . " WHERE assigned_to = {$user_id}";
 
                        if( $repeat_type )
@@ -227,10 +226,9 @@
                                $sql .= " AND 
controller_check_list.completed_date IS NULL ";                   
                        }
 
-                       $sql .= " AND ((controller_control.start_date <= 
$to_date AND controller_control.end_date IS NULL) ";
-                       $sql .= " OR (controller_control.start_date <= $to_date 
AND controller_control.end_date > $from_date ))";
-                       $sql .= " ORDER BY bim_item.id ";
-                        
+                       $sql .= " AND ((deadline <= $to_date AND 
controller_control.end_date IS NULL) ";
+                       $sql .= " OR (deadline <= $to_date AND deadline > 
$from_date ))";
+
                        $this->db->query($sql);
                        
                        $check_list_array = array();
@@ -239,6 +237,8 @@
                        {
                                $check_list = new 
controller_check_list($this->unmarshal($this->db->f('check_list_id'), 'int'));
                                
$check_list->set_control_id($this->unmarshal($this->db->f('control_id'), 
'int'));
+                               
$check_list->set_location_id($this->unmarshal($this->db->f('location_id'), 
'int'));
+                               
$check_list->set_component_id($this->unmarshal($this->db->f('component_id'), 
'int'));
                                
$check_list->set_title($this->unmarshal($this->db->f('title', true), 'string'));
                                
$check_list->set_description($this->unmarshal($this->db->f('description', 
true), 'string'));
                                
$check_list->set_start_date($this->unmarshal($this->db->f('start_date'), 
'int'));




reply via email to

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