[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [9592] Added role-check for home
From: |
Erik Holm-Larsen |
Subject: |
[Fmsystem-commits] [9592] Added role-check for home |
Date: |
Thu, 14 Jun 2012 07:12:20 +0000 |
Revision: 9592
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=9592
Author: erikhl
Date: 2012-06-14 07:12:20 +0000 (Thu, 14 Jun 2012)
Log Message:
-----------
Added role-check for home
Modified Paths:
--------------
trunk/controller/inc/class.socheck_list.inc.php
trunk/controller/inc/class.socontrol.inc.php
trunk/controller/inc/hook_home.inc.php
Modified: trunk/controller/inc/class.socheck_list.inc.php
===================================================================
--- trunk/controller/inc/class.socheck_list.inc.php 2012-06-14 07:11:31 UTC
(rev 9591)
+++ trunk/controller/inc/class.socheck_list.inc.php 2012-06-14 07:12:20 UTC
(rev 9592)
@@ -308,6 +308,52 @@
}
}
+ function get_open_check_lists_for_control($control_id, $location_code,
$from_date){
+ $sql = "SELECT cl.id as cl_id, cl.status as cl_status,
cl.comment as cl_comment, deadline, planned_date, ";
+ $sql .= "completed_date, component_id, location_code,
num_open_cases, num_pending_cases ";
+ $sql .= "FROM controller_check_list cl ";
+ $sql .= "WHERE cl.control_id = $control_id ";
+ $sql .= "AND cl.location_code = '{$location_code}' ";
+ $sql .= "AND (cl.planned_date IS NULL OR cl.planned_date <
$from_date) ";
+ $sql .= "AND cl.deadline < $from_date ";
+ $sql .= "AND cl.completed_date IS NULL ";
+ $sql .= "ORDER BY cl.id;";
+ //var_dump($sql);
+ $this->db->query($sql);
+
+ $check_list_id = 0;
+ $check_list = null;
+ while ($this->db->next_record()) {
+
+ if( $this->db->f('cl_id', true) != $check_list_id ){
+
+ if($check_list_id != 0){
+ $check_list_array[] = $check_list;
+ }
+
+ $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id', true), 'int'));
+
$check_list->set_status($this->unmarshal($this->db->f('cl_status', true),
'int'));
+
$check_list->set_comment($this->unmarshal($this->db->f('cl_comment', true),
'string'));
+
$check_list->set_deadline($this->unmarshal($this->db->f('deadline', true),
'int'));
+
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date',
true), 'int'));
+
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date',
true), 'int'));
+
$check_list->set_component_id($this->unmarshal($this->db->f('component_id',
true), 'int'));
+
$check_list->set_location_code($this->unmarshal($this->db->f('location_code',
true), 'string'));
+
$check_list->set_num_open_cases($this->unmarshal($this->db->f('num_open_cases',
true), 'int'));
+
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases',
true), 'int'));
+ }
+ $check_list_id = $check_list->get_id();
+ }
+
+ if($check_list != null){
+ $check_list_array[] = $check_list;
+
+ return $check_list_array;
+ }else {
+ return null;
+ }
+ }
+
function get_agg_check_lists_for_location( $location_code,
$from_date_ts, $to_date_ts, $control_id = 0 ){
$sql = "SELECT c.id as c_id, title, start_date, end_date,
cl.id as cl_id, c.repeat_type, c.repeat_interval, cl.deadline,
count(cl.num_open_cases) ";
Modified: trunk/controller/inc/class.socontrol.inc.php
===================================================================
--- trunk/controller/inc/class.socontrol.inc.php 2012-06-14 07:11:31 UTC
(rev 9591)
+++ trunk/controller/inc/class.socontrol.inc.php 2012-06-14 07:12:20 UTC
(rev 9592)
@@ -233,7 +233,59 @@
return null;
}
}
+
+ public function get_controls_by_component($location_code,
$from_date, $to_date, $repeat_type = null, $return_type = "return_object")
+ {
+ $controls_array = array();
+
+ $sql = "SELECT c.id as control_id, c.*, bim_item.id,
xpath('/beskrivelse/text()', xml_representation), bim_item.location_code,
bim_item.address ";
+ $sql .= "FROM controller_control_component_list cl ";
+ $sql .= "JOIN fm_bim_item bim_item on cl.component_id
= bim_item.id ";
+ $sql .= "JOIN fm_bim_type bim_type on cl.location_id =
bim_type.location_id ";
+ $sql .= "JOIN controller_control c on cl.control_id =
c.id ";
+ $sql .= "AND bim_item.type = bim_type.id ";
+ $sql .= "AND bim_item.location_code LIKE
'$location_code%'";
+
+ if( $repeat_type != null){
+ $sql .= "AND c.repeat_type = $repeat_type ";
+ }
+
+ $sql .= "AND (c.start_date <= $from_date AND c.end_date
IS NULL ";
+ $sql .= "OR c.start_date > $from_date AND c.start_date
< $to_date)";
+
+ $this->db->query($sql);
+
+ while($this->db->next_record()) {
+ $control = new
controller_control($this->unmarshal($this->db->f('control_id', true), 'int'));
+
$control->set_title($this->unmarshal($this->db->f('title', true), 'string'));
+
$control->set_description($this->unmarshal($this->db->f('description', true),
'boolean'));
+
$control->set_start_date($this->unmarshal($this->db->f('start_date', true),
'int'));
+
$control->set_end_date($this->unmarshal($this->db->f('end_date', true), 'int'));
+
$control->set_procedure_id($this->unmarshal($this->db->f('procedure_id', true),
'int'));
+
$control->set_requirement_id($this->unmarshal($this->db->f('requirement_id',
true), 'int'));
+
$control->set_costresponsibility_id($this->unmarshal($this->db->f('costresponsibility_id',
true), 'int'));
+
$control->set_responsibility_id($this->unmarshal($this->db->f('responsibility_id',
true), 'int'));
+
$control->set_responsibility_name($this->unmarshal($this->db->f('responsibility_name',
true), 'string'));
+
$control->set_control_area_id($this->unmarshal($this->db->f('control_area_id',
true), 'int'));
+
$control->set_repeat_type($this->unmarshal($this->db->f('repeat_type', true),
'int'));
+
$control->set_repeat_type_label($this->unmarshal($this->db->f('repeat_type',
true), 'int'));
+
$control->set_repeat_interval($this->unmarshal($this->db->f('repeat_interval',
true), 'int'));
+
+ if($return_type == "return_object")
+ $controls_array[] = $control;
+ else
+ $controls_array[] = $control->toArray();
+ }
+ if( count( $controls_array ) > 0 ){
+ return $controls_array;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
function get_controls_by_control_area($control_area_id)
{
$control_area_id = (int) $control_area_id;
Modified: trunk/controller/inc/hook_home.inc.php
===================================================================
--- trunk/controller/inc/hook_home.inc.php 2012-06-14 07:11:31 UTC (rev
9591)
+++ trunk/controller/inc/hook_home.inc.php 2012-06-14 07:12:20 UTC (rev
9592)
@@ -67,21 +67,14 @@
$location_finder = new location_finder();
$my_locations = $location_finder->get_responsibilities( $criteria );
- $unique_locations = array();
- foreach($my_locations as $loc)
- {
- if(!in_array($loc["location_code"],$unique_locations))
- {
- $unique_locations[] = $loc["location_code"];
- }
- }
$repeat_type = null;
$controls_for_location_array = array();
- foreach($unique_locations as $location)
+ foreach($my_locations as $location)
{
- $controls_for_location_array[] = array($location,
$so_control->get_controls_for_location($location, $from_date_ts, $to_date_ts,
$repeat_type ));
+ $controls_for_location_array[] = array($location["location_code"],
$so_control->get_controls_for_location($location["location_code"],
$location["role_id"], $from_date_ts, $to_date_ts, $repeat_type ));
}
+
$controls_array = array();
$control_dates = array();
@@ -90,11 +83,89 @@
$controls_for_loc_array = $control_arr[1];
foreach($controls_for_loc_array as $control)
{
- $date_generator = new
date_generator($control->get_start_date(), $control->get_end_date(),
$from_date_ts, $to_date_ts, $control->get_repeat_type(),
$control->get_repeat_interval());
+ $date_generator = new
date_generator($control["start_date"], $control["end_date"], $from_date_ts,
$to_date_ts, $control["repeat_type"], $control["repeat_interval"]);
$controls_array[] = array($current_location, $control,
$date_generator->get_dates());
}
}
+
+ $portalbox0 = CreateObject('phpgwapi.listbox', array
+ (
+ 'title' => "Mine glemte kontroller",
+ 'primary' => $GLOBALS['phpgw_info']['theme']['navbar_bg'],
+ 'secondary' => $GLOBALS['phpgw_info']['theme']['navbar_bg'],
+ 'tertiary' => $GLOBALS['phpgw_info']['theme']['navbar_bg'],
+ 'width' => '100%',
+ 'outerborderwidth' => '0',
+ 'header_background_image' =>
$GLOBALS['phpgw']->common->image('phpgwapi','bg_filler', '.png', False)
+ ));
+ $app_id = $GLOBALS['phpgw']->applications->name2id('controller');
+ if( !isset($GLOBALS['portal_order']) ||!in_array($app_id,
$GLOBALS['portal_order']) )
+ {
+ $GLOBALS['portal_order'][] = $app_id;
+ }
+ $var = array
+ (
+ 'up' => array('url' => '/set_box.php', 'app' =>
$app_id),
+ 'down' => array('url' => '/set_box.php', 'app' =>
$app_id),
+ 'close' => array('url' => '/set_box.php', 'app' =>
$app_id),
+ 'question' => array('url' => '/set_box.php', 'app'
=> $app_id),
+ 'edit' => array('url' => '/set_box.php', 'app' =>
$app_id)
+ );
+
+ foreach ( $var as $key => $value )
+ {
+ // $portalbox->set_controls($key,$value);
+ }
+
+ $category_name = array(); // caching
+
+ $cats = CreateObject('phpgwapi.categories', -1, 'controller',
'.control');
+ $cats->supress_info = true;
+ $control_areas =
$cats->formatted_xslt_list(array('format'=>'filter','selected' => '','globals'
=> true,'use_acl' => $this->_category_acl));
+
+ $portalbox0->data = array();
+ $portalbox0_data = array();
+ foreach ($controls_array as $control_instance)
+ {
+ $curr_location = $control_instance[0];
+ $current_control = $control_instance[1];
+ $check_lists =
$so->get_open_check_lists_for_control($current_control["id"], $curr_location,
$from_date_ts);
+ $location_array = execMethod('property.bolocation.read_single',
array('location_code' => $curr_location));
+ $location_name = $location_array["loc1_name"];
+ foreach($control_areas['cat_list'] as $area)
+ {
+ if($area['cat_id'] ==
$current_control["control_area_id"])
+ {
+ $control_area_name = $area['name'];
+ }
+ }
+ foreach($check_lists as $check_list)
+ {
+ $next_date = "Frist: " . date('d/m/Y',
$check_list->get_deadline());
+ $portalbox0_data[] = array
+ ($check_list->get_deadline(), array
+ (
+ 'text' => "{$location_name} -
{$control_area_name} - {$current_control["title"]} :: {$next_date}",
+ 'link' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'controller.uicheck_list.edit_check_list',
'check_list_id' => $check_list->get_id()))
+ ));
+ }
+ }
+ //sort data by planned date for check list
+ sort($portalbox0_data);
+ //$limit = 5;
+ $tmp = 0;
+ foreach($portalbox0_data as $check_list_dates)
+ {
+ if($tmp < $limit_no_of_planned)
+ {
+ $portalbox0->data[] = $check_list_dates[1];
+ }
+ $tmp++;
+ }
+
+ echo "\n".'<!-- BEGIN checklist info -->'."\n<div
class='controller_checklist' style='padding-left: 10px; background-color:
red;'>".$portalbox0->draw()."</div>\n".'<!-- END checklist info -->'."\n";
+
$portalbox1 = CreateObject('phpgwapi.listbox', array
(
'title' => "Mine planlagte kontroller",
@@ -137,12 +208,12 @@
{
$curr_location = $control_instance[0];
$current_control = $control_instance[1];
- $check_lists =
$so->get_planned_check_lists_for_control($current_control->get_id(),
$curr_location);
+ $check_lists =
$so->get_planned_check_lists_for_control($current_control["id"],
$curr_location);
$location_array = execMethod('property.bolocation.read_single',
array('location_code' => $curr_location));
$location_name = $location_array["loc1_name"];
foreach($control_areas['cat_list'] as $area)
{
- if($area['cat_id'] ==
$current_control->get_control_area_id())
+ if($area['cat_id'] ==
$current_control["control_area_id"])
{
$control_area_name = $area['name'];
}
@@ -153,7 +224,7 @@
$portalbox1_data[] = array
($check_list->get_planned_date(), array
(
- 'text' => "{$location_name} -
{$control_area_name} - {$current_control->get_title()} :: {$next_date}",
+ 'text' => "{$location_name} -
{$control_area_name} - {$current_control["title"]} :: {$next_date}",
'link' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'controller.uicheck_list.edit_check_list',
'check_list_id' => $check_list->get_id()))
));
}
@@ -210,14 +281,14 @@
{
$curr_location = $control_instance[0];
$current_control = $control_instance[1];
- unset($check_lists);
- $check_lists =
$so->get_unplanned_check_lists_for_control($current_control->get_id(),
$curr_location);
+ //unset($check_lists);
+ $check_lists =
$so->get_unplanned_check_lists_for_control($current_control["id"],
$curr_location);
//$control_location =
$so_control->getLocationCodeFromControl($current_control->get_id());
$location_array = execMethod('property.bolocation.read_single',
array('location_code' => $curr_location));
$location_name = $location_array["loc1_name"];
foreach($control_areas['cat_list'] as $area)
{
- if($area['cat_id'] ==
$current_control->get_control_area_id())
+ if($area['cat_id'] ==
$current_control["control_area_id"])
{
$control_area_name = $area['name'];
}
@@ -231,23 +302,23 @@
{
foreach($check_lists as $check_list)
{
- if(intval($current_date) >
intval($check_list->get_deadline()) && intval($current_date) !=
intval($check_list->get_deadline()))
+ if($current_date >
$check_list->get_deadline() && $current_date != $check_list->get_deadline())
{
$next_date = "Fristdato: " .
date('d/m/Y', $current_date);
$portalbox2_data[] = array
($current_date, array
(
- 'text' =>
"{$location_name} - {$control_area_name} - {$current_control->get_title()} ::
{$next_date}",
- 'link' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction' =>
'controller.uicheck_list.add_check_list', 'date' => $current_date, 'control_id'
=> $current_control->get_id(), 'location_code' => $curr_location))
+ 'text' =>
"{$location_name} - {$control_area_name} - {$current_control["title"]} ::
{$next_date}",
+ 'link' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction' =>
'controller.uicheck_list.add_check_list', 'date' => $current_date, 'control_id'
=> $current_control["id"], 'location_code' => $curr_location))
));
}
else
{
$next_date = "Fristdato: " .
date('d/m/Y', $check_list->get_deadline());
$portalbox2_data[] = array
- ($current_date, array
+ ($check_list->get_deadline(),
array
(
- 'text' =>
"{$location_name} - {$control_area_name} - {$current_control->get_title()} ::
{$next_date}",
+ 'text' =>
"{$location_name} - {$control_area_name} - {$current_control["title"]} ::
{$next_date}",
'link' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction' =>
'controller.uicheck_list.edit_check_list', 'check_list_id' =>
$check_list->get_id()))
));
}
@@ -259,8 +330,8 @@
$portalbox2_data[] = array
($current_date, array
(
- 'text' => "{$location_name} -
{$control_area_name} - {$current_control->get_title()} :: {$next_date}",
- 'link' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction' =>
'controller.uicheck_list.add_check_list', 'date' => $current_date, 'control_id'
=> $current_control->get_id(), 'location_code' => $curr_location))
+ 'text' => "{$location_name} -
{$control_area_name} - {$current_control["title"]} :: {$next_date}",
+ 'link' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction' =>
'controller.uicheck_list.add_check_list', 'date' => $current_date, 'control_id'
=> $current_control["id"], 'location_code' => $curr_location))
));
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [9592] Added role-check for home,
Erik Holm-Larsen <=