[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [9945]
From: |
Torstein |
Subject: |
[Fmsystem-commits] [9945] |
Date: |
Fri, 31 Aug 2012 08:28:23 +0000 |
Revision: 9945
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=9945
Author: vator
Date: 2012-08-31 08:28:15 +0000 (Fri, 31 Aug 2012)
Log Message:
-----------
Modified Paths:
--------------
trunk/controller/inc/class.cat_hooks.inc.php
trunk/controller/inc/class.menu.inc.php
trunk/controller/inc/class.socase.inc.php
trunk/controller/inc/class.socheck_item.inc.php
trunk/controller/inc/class.socheck_list.inc.php
trunk/controller/inc/class.socontrol.inc.php
trunk/controller/inc/class.socontrol_group.inc.php
trunk/controller/inc/class.socontrol_group_list.inc.php
trunk/controller/inc/class.socontrol_item.inc.php
trunk/controller/inc/class.socontrol_item_list.inc.php
trunk/controller/inc/class.socontrol_item_option.inc.php
trunk/controller/inc/class.sodocument.inc.php
trunk/controller/inc/class.soprocedure.inc.php
trunk/controller/inc/class.uicalendar.inc.php
trunk/controller/inc/class.uicase.inc.php
trunk/controller/inc/class.uicheck_list.inc.php
trunk/controller/inc/class.uicheck_list_for_component.inc.php
trunk/controller/inc/class.uicontrol.inc.php
trunk/controller/inc/class.uicontrol_group.inc.php
trunk/controller/inc/class.uicontrol_group_component.inc.php
trunk/controller/inc/class.uicontrol_item.inc.php
trunk/controller/inc/class.uicontrol_location.inc.php
trunk/controller/inc/class.uidocument.inc.php
trunk/controller/inc/class.uiprocedure.inc.php
trunk/controller/inc/class.uitest.inc.php
trunk/controller/inc/hook_home.inc.php
Modified: trunk/controller/inc/class.cat_hooks.inc.php
===================================================================
--- trunk/controller/inc/class.cat_hooks.inc.php 2012-08-31 07:55:48 UTC
(rev 9944)
+++ trunk/controller/inc/class.cat_hooks.inc.php 2012-08-31 08:28:15 UTC
(rev 9945)
@@ -1,119 +1,112 @@
<?php
- /**
- * phpGroupWare - controller: a part of a Facilities Management System.
- *
- * @author Sigurd Nes <address@hidden>
- * @copyright Copyright (C) 2011,2012 Free Software Foundation, Inc.
http://www.fsf.org/
- * This file is part of phpGroupWare.
- *
- * phpGroupWare is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * phpGroupWare is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with phpGroupWare; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
USA
- *
- * @license http://www.gnu.org/licenses/gpl.html GNU General Public
License
- * @internal Development of this application was funded by
http://www.bergen.kommune.no/bbb_/ekstern/
- * @package controller
- * @subpackage entity
- * @version $Id$
- */
- /**
- * hook management for categories
- * @package controller
- */
- class controller_cat_hooks
- {
- protected $soresponsible;
- protected $_db;
+/**
+ * phpGroupWare - controller: a part of a Facilities Management System.
+ *
+ * @author Sigurd Nes <address@hidden>
+ * @copyright Copyright (C) 2011,2012 Free Software Foundation, Inc.
http://www.fsf.org/
+ * This file is part of phpGroupWare.
+ *
+ * phpGroupWare is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * phpGroupWare is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with phpGroupWare; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * @license http://www.gnu.org/licenses/gpl.html GNU General Public License
+ * @internal Development of this application was funded by
http://www.bergen.kommune.no/bbb_/ekstern/
+ * @package controller
+ * @subpackage entity
+ * @version $Id$
+ */
- function __construct()
- {
- $this->_db =&
$GLOBALS['phpgw']->db;
- $this->soresponsible =
CreateObject('property.soresponsible');
- $this->soresponsible->appname = 'controller';
- }
- /**
- * Handle a new category being added, create location to hold
ACL-data
- */
- function cat_add($data)
- {
- if ( isset($data['cat_owner']) && $data['cat_owner'] !=
-1 )
- {
- return false; //nothing needed to be done, we
only care about global cats
- }
+/**
+ * hook management for categories
+ * @package controller
+ */
+class controller_cat_hooks {
- $location = '';
- if($data['location_id'])
- {
- $location_info =
$GLOBALS['phpgw']->locations->get_name($data['location_id']);
- $location = $location_info['location'];
- }
-
$GLOBALS['phpgw']->locations->add("{$location}.category.{$data['cat_id']}",
$data['cat_name'], 'controller');
-
-/*
- $this->soresponsible->add_type(array
- (
- 'name' => $data['cat_name'],
- 'descr' => $data['cat_name'],
- 'location' =>
"{$location}.category.{$data['cat_id']}",
- 'cat_id' => $data['cat_id'],
- 'active' => true
- )
- );
-*/
- }
+ protected $soresponsible;
+ protected $_db;
- /**
- * Handle a category being deleted, remove the location
- */
- function cat_delete($data)
- {
- if ( isset($data['cat_owner']) && $data['cat_owner'] !=
-1 )
- {
- return false; //nothing needed to be done, we
only care about global cats
- }
- if($data['location_id'])
- {
- $location_info =
$GLOBALS['phpgw']->locations->get_name($data['location_id']);
- $location =
"{$location_info['location']}.category.{$data['cat_id']}";
-
$GLOBALS['phpgw']->locations->delete('controller', $location, false);
+ function __construct() {
+ $this->_db = & $GLOBALS['phpgw']->db;
+ $this->soresponsible = CreateObject('property.soresponsible');
+ $this->soresponsible->appname = 'controller';
+ }
+
+ /**
+ * Handle a new category being added, create location to hold ACL-data
+ */
+ function cat_add($data) {
+ if (isset($data['cat_owner']) && $data['cat_owner'] != -1) {
+ return false; //nothing needed to be done, we only care about global cats
+ }
+
+ $location = '';
+ if ($data['location_id']) {
+ $location_info =
$GLOBALS['phpgw']->locations->get_name($data['location_id']);
+ $location = $location_info['location'];
+ }
+
$GLOBALS['phpgw']->locations->add("{$location}.category.{$data['cat_id']}",
$data['cat_name'], 'controller');
+
+ /*
+ $this->soresponsible->add_type(array
+ (
+ 'name' => $data['cat_name'],
+ 'descr' => $data['cat_name'],
+ 'location' => "{$location}.category.{$data['cat_id']}",
+ 'cat_id' => $data['cat_id'],
+ 'active' => true
+ )
+ );
+ */
+ }
+
+ /**
+ * Handle a category being deleted, remove the location
+ */
+ function cat_delete($data) {
+ if (isset($data['cat_owner']) && $data['cat_owner'] != -1) {
+ return false; //nothing needed to be done, we only care about global cats
+ }
+ if ($data['location_id']) {
+ $location_info =
$GLOBALS['phpgw']->locations->get_name($data['location_id']);
+ $location = "{$location_info['location']}.category.{$data['cat_id']}";
+ $GLOBALS['phpgw']->locations->delete('controller', $location, false);
// $this->_db->query("DELETE FROM
fm_responsibility WHERE cat_id = " . (int) $data['cat_id'], __LINE__, __FILE__);
- }
- }
+ }
+ }
- /**
- * Handle a category being edited, update the location info
- */
- function cat_edit($data)
- {
- if ( isset($data['cat_owner']) && $data['cat_owner'] !=
-1 )
- {
- return false; //nothing needed to be done, we
only care about global cats
- }
+ /**
+ * Handle a category being edited, update the location info
+ */
+ function cat_edit($data) {
+ if (isset($data['cat_owner']) && $data['cat_owner'] != -1) {
+ return false; //nothing needed to be done, we only care about global cats
+ }
- if($data['location_id'])
- {
- $location_info =
$GLOBALS['phpgw']->locations->get_name($data['location_id']);
- $location =
"{$location_info['location']}.category.{$data['cat_id']}";
-
$GLOBALS['phpgw']->locations->update_description($location, $data['cat_name'],
'controller');
+ if ($data['location_id']) {
+ $location_info =
$GLOBALS['phpgw']->locations->get_name($data['location_id']);
+ $location = "{$location_info['location']}.category.{$data['cat_id']}";
+ $GLOBALS['phpgw']->locations->update_description($location,
$data['cat_name'], 'controller');
-/*
- $value_set['name'] =
$this->_db->db_addslashes($data['cat_name']);
- $value_set['descr'] =
$value_set['name'];
+ /*
+ $value_set['name'] =
$this->_db->db_addslashes($data['cat_name']);
+ $value_set['descr'] = $value_set['name'];
- $value_set =
$this->_db->validate_update($value_set);
- $this->_db->query("UPDATE fm_responsibility SET
$value_set WHERE cat_id = " . (int) $data['cat_id'], __LINE__, __FILE__);
-*/
- }
- }
- }
+ $value_set = $this->_db->validate_update($value_set);
+ $this->_db->query("UPDATE fm_responsibility SET $value_set WHERE
cat_id = " . (int) $data['cat_id'], __LINE__, __FILE__);
+ */
+ }
+ }
+
+}
Modified: trunk/controller/inc/class.menu.inc.php
===================================================================
--- trunk/controller/inc/class.menu.inc.php 2012-08-31 07:55:48 UTC (rev
9944)
+++ trunk/controller/inc/class.menu.inc.php 2012-08-31 08:28:15 UTC (rev
9945)
@@ -1,176 +1,171 @@
<?php
- /**
- * phpGroupWare - controller: a part of a Facilities Management System.
- *
- * @author Erik Holm-Larsen <address@hidden>
- * @author Torstein Vadla <address@hidden>
- * @copyright Copyright (C) 2011,2012 Free Software Foundation, Inc.
http://www.fsf.org/
- * This file is part of phpGroupWare.
- *
- * phpGroupWare is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * phpGroupWare is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with phpGroupWare; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
USA
- *
- * @license http://www.gnu.org/licenses/gpl.html GNU General Public
License
- * @internal Development of this application was funded by
http://www.bergen.kommune.no/
- * @package property
- * @subpackage controller
- * @version $Id$
- */
- class controller_menu
- {
- function get_menu()
- {
- $incoming_app =
$GLOBALS['phpgw_info']['flags']['currentapp'];
- $GLOBALS['phpgw_info']['flags']['currentapp'] =
'controller';
- $menus = array();
+/**
+ * phpGroupWare - controller: a part of a Facilities Management System.
+ *
+ * @author Erik Holm-Larsen <address@hidden>
+ * @author Torstein Vadla <address@hidden>
+ * @copyright Copyright (C) 2011,2012 Free Software Foundation, Inc.
http://www.fsf.org/
+ * This file is part of phpGroupWare.
+ *
+ * phpGroupWare is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * phpGroupWare is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with phpGroupWare; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * @license http://www.gnu.org/licenses/gpl.html GNU General Public License
+ * @internal Development of this application was funded by
http://www.bergen.kommune.no/
+ * @package property
+ * @subpackage controller
+ * @version $Id$
+ */
- $menus['navbar'] = array
- (
- 'controller' => array
- (
- 'text' => lang('Controller'),
- 'url' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction'=>
'controller.uicontrol.control_list') ),
- 'image' => array('property',
'location'),
- 'order' => 10,
- 'group' => 'office'
- )
- );
+class controller_menu {
-
if($GLOBALS['phpgw']->acl->check('.usertype.superuser',PHPGW_ACL_ADD,'controller'))
- {
- $menus['navigation'] = array
- (
- 'control' => array
- (
- 'text' => lang('Control'),
- 'url' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction'=>
'controller.uicontrol.control_list') ),
- 'image' => array('property',
'location_1'),
- 'children' => array(
-
'location_for_check_list' => array
-
(
-
'text' => lang('location_connections'),
-
'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction'=> 'controller.uicontrol_location.index') ),
-
'image' => array('property', 'location_1')
-
),
-
'component_for_check_list' => array
-
(
-
'text' => lang('component'),
-
'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction'=>
'controller.uicontrol_location.register_control_to_component') ),
-
'image' => array('property', 'entity_1')
-
)
-
)
- ),
- 'control_item' => array
- (
- 'text' => lang('Control_item'),
- 'url' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction'=>
'controller.uicontrol_item.index') ),
- 'image' => array('property',
'location_1')
- ),
- 'control_group' => array
- (
- 'text' =>
lang('Control_group'),
- 'url' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction'=>
'controller.uicontrol_group.index') ),
- 'image' => array('property',
'location_1'),
- 'children' => array(
-
'component_for_control_group' => array
-
(
-
'text' => lang('component'),
-
'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction'=> 'controller.uicontrol_group_component.index') ),
-
'image' => array('property', 'entity_1')
-
)
-
)
- ),
- 'procedure' => array
- (
- 'text' => lang('Procedure'),
- 'url' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction'=>
'controller.uiprocedure.index') ),
- 'image' => array('property',
'location_1'),
- ),
- 'calendar_overview' => array
- (
- 'text' =>
lang('Calendar_overview'),
- 'url' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction'=>
'controller.uicalendar.view_calendar_for_year') ),
- 'image' => array('property',
'location_1'),
- )
- );
- }
-
- if ( $GLOBALS['phpgw']->acl->check('run',
phpgwapi_acl::READ, 'admin')
- || $GLOBALS['phpgw']->acl->check('admin',
phpgwapi_acl::ADD, 'controller'))
- {
- $menus['admin'] = array
- (
- 'index' => array
- (
- 'text' =>
lang('Configuration'),
- 'url' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction' =>
'admin.uiconfig.index', 'appname' => 'controller') )
- ),
- 'acl' => array
- (
- 'text' => lang('Configure
Access Permissions'),
- 'url' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction' =>
'preferences.uiadmin_acl.list_acl', 'acl_app' => 'controller') )
- ),
- 'check_item_status' => array
- (
- 'text' => lang('check item
status'),
- 'url' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction' =>
'property.uigeneric.index', 'type' => 'controller_check_item_status') )
- ),
- 'control_cats' => array
- (
- 'text' => lang('Control area'),
- 'url' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction' =>
'admin.uicategories.index', 'appname' => 'controller', 'location' =>
'.control', 'global_cats' => 'true', 'menu_selection' =>
'admin::controller::control_cats') )
- ),
- 'role_at_location' => array
- (
- 'url' =>
$GLOBALS['phpgw']->link('/index.php',array('menuaction'=>
'property.uilocation.responsiblility_role', 'menu_selection' =>
'admin::controller::role_at_location') ),
- 'text' => lang('role at
location'),
- 'image' => array('property',
'responsibility_role')
- ),
- 'controller_document_types' => array
- (
- 'url' =>
$GLOBALS['phpgw']->link('/index.php',array('menuaction'=>
'controller.uidocument.document_types', 'menu_selection' =>
'admin::controller::controller_document_types') ),
- 'text' => lang('Document
types')
- )
- );
- }
+ function get_menu() {
+ $incoming_app = $GLOBALS['phpgw_info']['flags']['currentapp'];
+ $GLOBALS['phpgw_info']['flags']['currentapp'] = 'controller';
+ $menus = array();
- if (
isset($GLOBALS['phpgw_info']['user']['apps']['preferences']) )
- {
- $menus['preferences'] = array
- (
- // in case of userprefs - need a hook
for 'settings'
+ $menus['navbar'] = array
+ (
+ 'controller' => array
+ (
+ 'text' => lang('Controller'),
+ 'url' => $GLOBALS['phpgw']->link('/index.php', array('menuaction'
=> 'controller.uicontrol.control_list')),
+ 'image' => array('property', 'location'),
+ 'order' => 10,
+ 'group' => 'office'
+ )
+ );
- array
- (
- 'text' =>
$GLOBALS['phpgw']->translation->translate('Preferences', array(), true),
- 'url' =>
$GLOBALS['phpgw']->link('/preferences/preferences.php', array('appname' =>
'controller', 'type'=> 'user') )
- ),
+ if ($GLOBALS['phpgw']->acl->check('.usertype.superuser', PHPGW_ACL_ADD,
'controller')) {
+ $menus['navigation'] = array(
+ 'control' => array(
+ 'text' => lang('Control'),
+ 'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'controller.uicontrol.control_list')),
+ 'image' => array('property', 'location_1'),
+ 'children' => array(
+ 'location_for_check_list' => array
+ (
+ 'text' => lang('location_connections'),
+ 'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'controller.uicontrol_location.index')),
+ 'image' => array('property', 'location_1')
+ ),
+ 'component_for_check_list' => array
+ (
+ 'text' => lang('component'),
+ 'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' =>
'controller.uicontrol_location.register_control_to_component')),
+ 'image' => array('property', 'entity_1')
+ )
+ )
+ ),
+ 'control_item' => array
+ (
+ 'text' => lang('Control_item'),
+ 'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'controller.uicontrol_item.index')),
+ 'image' => array('property', 'location_1')
+ ),
+ 'control_group' => array
+ (
+ 'text' => lang('Control_group'),
+ 'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'controller.uicontrol_group.index')),
+ 'image' => array('property', 'location_1'),
+ 'children' => array(
+ 'component_for_control_group' => array
+ (
+ 'text' => lang('component'),
+ 'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'controller.uicontrol_group_component.index')),
+ 'image' => array('property', 'entity_1')
+ )
+ )
+ ),
+ 'procedure' => array
+ (
+ 'text' => lang('Procedure'),
+ 'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'controller.uiprocedure.index')),
+ 'image' => array('property', 'location_1'),
+ ),
+ 'calendar_overview' => array
+ (
+ 'text' => lang('Calendar_overview'),
+ 'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'controller.uicalendar.view_calendar_for_year')),
+ 'image' => array('property', 'location_1'),
+ )
+ );
+ }
- array
- (
- 'text' =>
$GLOBALS['phpgw']->translation->translate('Grant Access', array(), true),
- 'url' =>
$GLOBALS['phpgw']->link('/index.php',array('menuaction'=>
'preferences.uiadmin_acl.aclprefs', 'acl_app'=> 'controller') )
- )
- );
- }
+ if ($GLOBALS['phpgw']->acl->check('run', phpgwapi_acl::READ, 'admin')
+ || $GLOBALS['phpgw']->acl->check('admin', phpgwapi_acl::ADD,
'controller')) {
+ $menus['admin'] = array
+ (
+ 'index' => array
+ (
+ 'text' => lang('Configuration'),
+ 'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'admin.uiconfig.index', 'appname' => 'controller'))
+ ),
+ 'acl' => array
+ (
+ 'text' => lang('Configure Access Permissions'),
+ 'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'preferences.uiadmin_acl.list_acl', 'acl_app' =>
'controller'))
+ ),
+ 'check_item_status' => array
+ (
+ 'text' => lang('check item status'),
+ 'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'property.uigeneric.index', 'type' =>
'controller_check_item_status'))
+ ),
+ 'control_cats' => array
+ (
+ 'text' => lang('Control area'),
+ 'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'admin.uicategories.index', 'appname' => 'controller',
'location' => '.control', 'global_cats' => 'true', 'menu_selection' =>
'admin::controller::control_cats'))
+ ),
+ 'role_at_location' => array
+ (
+ 'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'property.uilocation.responsiblility_role',
'menu_selection' => 'admin::controller::role_at_location')),
+ 'text' => lang('role at location'),
+ 'image' => array('property', 'responsibility_role')
+ ),
+ 'controller_document_types' => array
+ (
+ 'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'controller.uidocument.document_types', 'menu_selection'
=> 'admin::controller::controller_document_types')),
+ 'text' => lang('Document types')
+ )
+ );
+ }
- //Nothing...
- //$menus['folders'] =
phpgwapi_menu::get_categories('bergen');
+ if (isset($GLOBALS['phpgw_info']['user']['apps']['preferences'])) {
+ $menus['preferences'] = array
+ (
+ // in case of userprefs - need a hook for 'settings'
- $GLOBALS['phpgw_info']['flags']['currentapp'] =
$incoming_app;
+ array
+ (
+ 'text' =>
$GLOBALS['phpgw']->translation->translate('Preferences', array(), true),
+ 'url' => $GLOBALS['phpgw']->link('/preferences/preferences.php',
array('appname' => 'controller', 'type' => 'user'))
+ ),
+ array
+ (
+ 'text' => $GLOBALS['phpgw']->translation->translate('Grant
Access', array(), true),
+ 'url' => $GLOBALS['phpgw']->link('/index.php',
array('menuaction' => 'preferences.uiadmin_acl.aclprefs', 'acl_app' =>
'controller'))
+ )
+ );
+ }
- return $menus;
- }
- }
+ //Nothing...
+ //$menus['folders'] = phpgwapi_menu::get_categories('bergen');
+
+ $GLOBALS['phpgw_info']['flags']['currentapp'] = $incoming_app;
+
+ return $menus;
+ }
+
+}
Modified: trunk/controller/inc/class.socase.inc.php
===================================================================
--- trunk/controller/inc/class.socase.inc.php 2012-08-31 07:55:48 UTC (rev
9944)
+++ trunk/controller/inc/class.socase.inc.php 2012-08-31 08:28:15 UTC (rev
9945)
@@ -1,236 +1,219 @@
<?php
- /**
- * phpGroupWare - controller: a part of a Facilities Management System.
- *
- * @author Erink Holm-Larsen <address@hidden>
- * @author Torstein Vadla <address@hidden>
- * @copyright Copyright (C) 2011,2012 Free Software Foundation, Inc.
http://www.fsf.org/
- * This file is part of phpGroupWare.
- *
- * phpGroupWare is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * phpGroupWare is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with phpGroupWare; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
USA
- *
- * @license http://www.gnu.org/licenses/gpl.html GNU General Public
License
- * @internal Development of this application was funded by
http://www.bergen.kommune.no/
- * @package property
- * @subpackage controller
- * @version $Id: class.socheck_item.inc.php 8535 2012-01-09 10:14:45Z
vator $
- */
- phpgw::import_class('controller.socommon');
+/**
+ * phpGroupWare - controller: a part of a Facilities Management System.
+ *
+ * @author Erink Holm-Larsen <address@hidden>
+ * @author Torstein Vadla <address@hidden>
+ * @copyright Copyright (C) 2011,2012 Free Software Foundation, Inc.
http://www.fsf.org/
+ * This file is part of phpGroupWare.
+ *
+ * phpGroupWare is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * phpGroupWare is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with phpGroupWare; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * @license http://www.gnu.org/licenses/gpl.html GNU General Public License
+ * @internal Development of this application was funded by
http://www.bergen.kommune.no/
+ * @package property
+ * @subpackage controller
+ * @version $Id: class.socheck_item.inc.php 8535 2012-01-09 10:14:45Z vator $
+ */
+phpgw::import_class('controller.socommon');
- include_class('controller', 'check_item_case', 'inc/model/');
+include_class('controller', 'check_item_case', 'inc/model/');
- class controller_socase extends controller_socommon
- {
- protected static $so;
+class controller_socase extends controller_socommon {
- /**
- * Get a static reference to the storage object associated with
this model object
- *
- * @return controller_socase the storage object
- */
- public static function get_instance()
- {
- if (self::$so == null)
- {
- self::$so = CreateObject('controller.socase');
- }
- return self::$so;
- }
+ protected static $so;
- function get_query(string $sort_field, boolean $ascending,
string $search_for, string $search_type, array $filters, boolean
$return_count){}
+ /**
+ * Get a static reference to the storage object associated with this model
object
+ *
+ * @return controller_socase the storage object
+ */
+ public static function get_instance() {
+ if (self::$so == null) {
+ self::$so = CreateObject('controller.socase');
+ }
+ return self::$so;
+ }
- function populate(int $object_id, &$object){}
+ function get_query(string $sort_field, boolean $ascending, string
$search_for, string $search_type, array $filters, boolean $return_count) {}
- /**
- * Get single case object from database
- *
- * @param $case id id of case to be returned
- * @return case object
- */
- public function get_single($case_id)
- {
- $case_id = (int) $case_id;
-
- $sql = "SELECT * FROM controller_check_item_case ";
- $sql .= "WHERE id = {$case_id}";
-
+ function populate(int $object_id, &$object) {}
- $this->db->limit_query($sql, 0, __LINE__, __FILE__, 1);
+ /**
+ * Get single case object from database
+ *
+ * @param $case id id of case to be returned
+ * @return case object
+ */
+ public function get_single($case_id) {
+ $case_id = (int) $case_id;
- if($this->db->next_record())
- {
- $case = new
controller_check_item_case($this->unmarshal($this->db->f('id'), 'int'));
-
$case->set_check_item_id($this->unmarshal($this->db->f('check_item_id'),
'int'));
-
$case->set_status($this->unmarshal($this->db->f('status'), 'int'));
-
$case->set_location_id($this->unmarshal($this->db->f('location_id'), 'int'));
-
$case->set_location_item_id($this->unmarshal($this->db->f('location_item_id'),
'int'));
-
$case->set_descr($this->unmarshal($this->db->f('descr', true), 'string'));
-
$case->set_user_id($this->unmarshal($this->db->f('user_id'), 'int'));
-
$case->set_entry_date($this->unmarshal($this->db->f('entry_date'), 'int'));
-
$case->set_modified_date($this->unmarshal($this->db->f('modified_date'),
'int'));
-
$case->set_modified_by($this->unmarshal($this->db->f('modified_by'), 'int'));
-
$case->set_measurement($this->unmarshal($this->db->f('measurement'), 'string'));
-
- return $case;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get cases for message
- *
- * @param $location_id location id
- * @param $location_item_id location item id
- * @param $return_type return data as objects or as arrays
- * @return array of case object represented as objects or arrays
- */
- public function get_cases_by_message($location_id,
$location_item_id, $return_type = "return_object")
- {
- $location_id = (int) $location_id;
- $location_item_id = (int) $location_item_id;
+ $sql = "SELECT * FROM controller_check_item_case ";
+ $sql .= "WHERE id = {$case_id}";
- $sql = "SELECT * FROM controller_check_item_case ";
- $sql .= "WHERE location_id = {$location_id} AND
location_item_id = {$location_item_id}";
- $this->db->query($sql);
+ $this->db->limit_query($sql, 0, __LINE__, __FILE__, 1);
- while ($this->db->next_record())
- {
- $case = new
controller_check_item_case($this->unmarshal($this->db->f('id'), 'int'));
-
$case->set_check_item_id($this->unmarshal($this->db->f('check_item_id'),
'int'));
-
$case->set_status($this->unmarshal($this->db->f('status'), 'int'));
-
$case->set_location_id($this->unmarshal($this->db->f('location_id'), 'int'));
-
$case->set_location_item_id($this->unmarshal($this->db->f('location_item_id'),
'int'));
-
$case->set_descr($this->unmarshal($this->db->f('descr', true), 'string'));
-
$case->set_user_id($this->unmarshal($this->db->f('user_id'), 'int'));
-
$case->set_entry_date($this->unmarshal($this->db->f('entry_date'), 'int'));
-
$case->set_modified_date($this->unmarshal($this->db->f('modified_date'),
'int'));
-
$case->set_modified_by($this->unmarshal($this->db->f('modified_by'), 'int'));
-
$case->set_measurement($this->unmarshal($this->db->f('measurement'), 'string'));
-
- if($return_type == "return_object")
- {
- $cases_array[] = $case;
- }
- else
- {
- $cases_array[] = $case->toArray();
- }
- }
+ if ($this->db->next_record()) {
+ $case = new
controller_check_item_case($this->unmarshal($this->db->f('id'), 'int'));
+ $case->set_check_item_id($this->unmarshal($this->db->f('check_item_id'),
'int'));
+ $case->set_status($this->unmarshal($this->db->f('status'), 'int'));
+ $case->set_location_id($this->unmarshal($this->db->f('location_id'),
'int'));
+
$case->set_location_item_id($this->unmarshal($this->db->f('location_item_id'),
'int'));
+ $case->set_descr($this->unmarshal($this->db->f('descr', true),
'string'));
+ $case->set_user_id($this->unmarshal($this->db->f('user_id'), 'int'));
+ $case->set_entry_date($this->unmarshal($this->db->f('entry_date'),
'int'));
+ $case->set_modified_date($this->unmarshal($this->db->f('modified_date'),
'int'));
+ $case->set_modified_by($this->unmarshal($this->db->f('modified_by'),
'int'));
+ $case->set_measurement($this->unmarshal($this->db->f('measurement'),
'string'));
- return $cases_array;
- }
-
- /**
- * Inserts a new case in database
- *
- * @param $case to inserted
- * @return true or false
- */
- function add(&$case)
- {
- $cols = array(
- 'check_item_id',
- 'status',
- 'location_id',
- 'location_item_id',
- 'descr',
- 'user_id',
- 'entry_date',
- 'modified_date',
- 'modified_by',
- 'measurement',
- );
+ return $case;
+ } else {
+ return null;
+ }
+ }
- $values = array(
- $this->marshal($case->get_check_item_id(),
'int'),
- $case->get_status(),
- $this->marshal($case->get_location_id(), 'int'),
- $this->marshal($case->get_location_item_id(),
'int'),
- $this->marshal($case->get_descr(), 'string'),
- $this->marshal($case->get_user_id(), 'int'),
- $this->marshal($case->get_entry_date(), 'int'),
- $this->marshal($case->get_modified_date(),
'int'),
- $this->marshal($case->get_modified_by(), 'int'),
- $this->marshal($case->get_measurement(),
'string')
- );
+ /**
+ * Get cases for message
+ *
+ * @param $location_id location id
+ * @param $location_item_id location item id
+ * @param $return_type return data as objects or as arrays
+ * @return array of case object represented as objects or arrays
+ */
+ public function get_cases_by_message($location_id, $location_item_id,
$return_type = "return_object") {
+ $location_id = (int) $location_id;
+ $location_item_id = (int) $location_item_id;
- $result = $this->db->query('INSERT INTO
controller_check_item_case (' . join(',', $cols) . ') VALUES (' . join(',',
$values) . ')', __LINE__,__FILE__);
+ $sql = "SELECT * FROM controller_check_item_case ";
+ $sql .= "WHERE location_id = {$location_id} AND location_item_id =
{$location_item_id}";
- return $result ?
$this->db->get_last_insert_id('controller_check_item_case', 'id') : 0;
- }
+ $this->db->query($sql);
- /**
- * Updates an existing case object in database
- *
- * @param $case to updated
- * @return true or false
- */
- function update($case)
- {
- $id = (int) $case->get_id();
-
- $values = array(
- 'check_item_id = ' .
$this->marshal($case->get_check_item_id(), 'int'),
- 'status = ' . $case->get_status(),
- 'location_id = ' .
$this->marshal($case->get_location_id(), 'int'),
- 'location_item_id = ' .
$this->marshal($case->get_location_item_id(), 'int'),
- 'descr = ' . $this->marshal($case->get_descr(),
'string'),
- 'user_id = ' .
$this->marshal($case->get_user_id(), 'int'),
- 'entry_date = ' .
$this->marshal($case->get_entry_date(), 'int'),
- 'modified_date = ' .
$this->marshal($case->get_modified_date(), 'int'),
- 'modified_by = ' .
$this->marshal($case->get_modified_by(), 'int'),
- 'measurement = ' .
$this->marshal($case->get_measurement(), 'string')
- );
+ while ($this->db->next_record()) {
+ $case = new
controller_check_item_case($this->unmarshal($this->db->f('id'), 'int'));
+ $case->set_check_item_id($this->unmarshal($this->db->f('check_item_id'),
'int'));
+ $case->set_status($this->unmarshal($this->db->f('status'), 'int'));
+ $case->set_location_id($this->unmarshal($this->db->f('location_id'),
'int'));
+
$case->set_location_item_id($this->unmarshal($this->db->f('location_item_id'),
'int'));
+ $case->set_descr($this->unmarshal($this->db->f('descr', true),
'string'));
+ $case->set_user_id($this->unmarshal($this->db->f('user_id'), 'int'));
+ $case->set_entry_date($this->unmarshal($this->db->f('entry_date'),
'int'));
+ $case->set_modified_date($this->unmarshal($this->db->f('modified_date'),
'int'));
+ $case->set_modified_by($this->unmarshal($this->db->f('modified_by'),
'int'));
+ $case->set_measurement($this->unmarshal($this->db->f('measurement'),
'string'));
- $result = $this->db->query('UPDATE
controller_check_item_case SET ' . join(',', $values) . " WHERE id=$id",
__LINE__,__FILE__);
+ if ($return_type == "return_object") {
+ $cases_array[] = $case;
+ } else {
+ $cases_array[] = $case->toArray();
+ }
+ }
- if( $result )
- {
- return $id;
- }
- else
- {
- return 0;
- }
- }
-
- /**
- * Delete case in database
- *
- * @param $case_id case to be deleted
- * @return true or false
- */
- function delete($case_id)
- {
- $case_id = (int) $case_id;
- $status = $this->db->query("DELETE FROM
controller_check_item_case WHERE id = $case_id");
-
- if( $status )
- {
- return true;
- }
- else
- {
- return false;
- }
- }
-
- function get_id_field_name(){}
- }
+ return $cases_array;
+ }
+
+ /**
+ * Inserts a new case in database
+ *
+ * @param $case to inserted
+ * @return true or false
+ */
+ function add(&$case) {
+ $cols = array(
+ 'check_item_id',
+ 'status',
+ 'location_id',
+ 'location_item_id',
+ 'descr',
+ 'user_id',
+ 'entry_date',
+ 'modified_date',
+ 'modified_by',
+ 'measurement',
+ );
+
+ $values = array(
+ $this->marshal($case->get_check_item_id(), 'int'),
+ $case->get_status(),
+ $this->marshal($case->get_location_id(), 'int'),
+ $this->marshal($case->get_location_item_id(), 'int'),
+ $this->marshal($case->get_descr(), 'string'),
+ $this->marshal($case->get_user_id(), 'int'),
+ $this->marshal($case->get_entry_date(), 'int'),
+ $this->marshal($case->get_modified_date(), 'int'),
+ $this->marshal($case->get_modified_by(), 'int'),
+ $this->marshal($case->get_measurement(), 'string')
+ );
+
+ $result = $this->db->query('INSERT INTO controller_check_item_case (' .
join(',', $cols) . ') VALUES (' . join(',', $values) . ')', __LINE__, __FILE__);
+
+ return $result ?
$this->db->get_last_insert_id('controller_check_item_case', 'id') : 0;
+ }
+
+ /**
+ * Updates an existing case object in database
+ *
+ * @param $case to updated
+ * @return true or false
+ */
+ function update($case) {
+ $id = (int) $case->get_id();
+
+ $values = array(
+ 'check_item_id = ' . $this->marshal($case->get_check_item_id(), 'int'),
+ 'status = ' . $case->get_status(),
+ 'location_id = ' . $this->marshal($case->get_location_id(), 'int'),
+ 'location_item_id = ' . $this->marshal($case->get_location_item_id(),
'int'),
+ 'descr = ' . $this->marshal($case->get_descr(), 'string'),
+ 'user_id = ' . $this->marshal($case->get_user_id(), 'int'),
+ 'entry_date = ' . $this->marshal($case->get_entry_date(), 'int'),
+ 'modified_date = ' . $this->marshal($case->get_modified_date(), 'int'),
+ 'modified_by = ' . $this->marshal($case->get_modified_by(), 'int'),
+ 'measurement = ' . $this->marshal($case->get_measurement(), 'string')
+ );
+
+ $result = $this->db->query('UPDATE controller_check_item_case SET ' .
join(',', $values) . " WHERE id=$id", __LINE__, __FILE__);
+
+ if ($result) {
+ return $id;
+ } else {
+ return 0;
+ }
+ }
+
+ /**
+ * Delete case in database
+ *
+ * @param $case_id case to be deleted
+ * @return true or false
+ */
+ function delete($case_id) {
+ $case_id = (int) $case_id;
+ $status = $this->db->query("DELETE FROM controller_check_item_case WHERE
id = $case_id");
+
+ if ($status) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ function get_id_field_name() {
+
+ }
+
+}
Modified: trunk/controller/inc/class.socheck_item.inc.php
===================================================================
--- trunk/controller/inc/class.socheck_item.inc.php 2012-08-31 07:55:48 UTC
(rev 9944)
+++ trunk/controller/inc/class.socheck_item.inc.php 2012-08-31 08:28:15 UTC
(rev 9945)
@@ -1,620 +1,546 @@
<?php
- /**
- * phpGroupWare - controller: a part of a Facilities Management System.
- *
- * @author Erink Holm-Larsen <address@hidden>
- * @author Torstein Vadla <address@hidden>
- * @copyright Copyright (C) 2011,2012 Free Software Foundation, Inc.
http://www.fsf.org/
- * This file is part of phpGroupWare.
- *
- * phpGroupWare is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * phpGroupWare is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with phpGroupWare; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
USA
- *
- * @license http://www.gnu.org/licenses/gpl.html GNU General Public
License
- * @internal Development of this application was funded by
http://www.bergen.kommune.no/
- * @package property
- * @subpackage controller
- * @version $Id$
- */
- phpgw::import_class('controller.socommon');
+/**
+ * phpGroupWare - controller: a part of a Facilities Management System.
+ *
+ * @author Erink Holm-Larsen <address@hidden>
+ * @author Torstein Vadla <address@hidden>
+ * @copyright Copyright (C) 2011,2012 Free Software Foundation, Inc.
http://www.fsf.org/
+ * This file is part of phpGroupWare.
+ *
+ * phpGroupWare is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * phpGroupWare is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with phpGroupWare; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * @license http://www.gnu.org/licenses/gpl.html GNU General Public License
+ * @internal Development of this application was funded by
http://www.bergen.kommune.no/
+ * @package property
+ * @subpackage controller
+ * @version $Id$
+ */
+phpgw::import_class('controller.socommon');
- include_class('controller', 'check_item', 'inc/model/');
- include_class('controller', 'check_item_case', 'inc/model/');
+include_class('controller', 'check_item', 'inc/model/');
+include_class('controller', 'check_item_case', 'inc/model/');
- class controller_socheck_item extends controller_socommon
- {
- protected static $so;
+class controller_socheck_item extends controller_socommon {
- /**
- * Get a static reference to the storage object associated with
this model object
- *
- * @return controller_socontrol_group the storage object
- */
- public static function get_instance()
- {
- if (self::$so == null)
- {
- self::$so =
CreateObject('controller.socheck_item');
- }
- return self::$so;
- }
+ protected static $so;
- /**
- * Add a new check item object to database
- *
- * @param $check_item check item oject to be added
- * @return id of the inserted check item, 0 otherwise
- */
- function add(&$check_item)
- {
- $cols = array(
- 'control_item_id',
- 'check_list_id'
- );
+ /**
+ * Get a static reference to the storage object associated with this model
object
+ *
+ * @return controller_socontrol_group the storage object
+ */
+ public static function get_instance() {
+ if (self::$so == null) {
+ self::$so = CreateObject('controller.socheck_item');
+ }
+ return self::$so;
+ }
- $values = array(
-
$this->marshal($check_item->get_control_item_id(), 'int'),
-
$this->marshal($check_item->get_check_list_id(), 'int')
- );
+ /**
+ * Add a new check item object to database
+ *
+ * @param $check_item check item oject to be added
+ * @return id of the inserted check item, 0 otherwise
+ */
+ function add(&$check_item) {
+ $cols = array(
+ 'control_item_id',
+ 'check_list_id'
+ );
- $result = $this->db->query('INSERT INTO
controller_check_item (' . join(',', $cols) . ') VALUES (' . join(',', $values)
. ')', __LINE__,__FILE__);
+ $values = array(
+ $this->marshal($check_item->get_control_item_id(), 'int'),
+ $this->marshal($check_item->get_check_list_id(), 'int')
+ );
- return $result ?
$this->db->get_last_insert_id('controller_check_item', 'id') : 0;
- }
+ $result = $this->db->query('INSERT INTO controller_check_item (' .
join(',', $cols) . ') VALUES (' . join(',', $values) . ')', __LINE__, __FILE__);
- /**
- * Update existing check item object in database
- *
- * @param $check_item check item oject to be updated
- * @return id of the inserted check item, 0 otherwise
- */
- function update($check_item)
- {
- $id = $check_item->get_id();
+ return $result ? $this->db->get_last_insert_id('controller_check_item',
'id') : 0;
+ }
- $values = array(
- 'control_item_id = ' .
$this->marshal($check_item->get_control_item_id(), 'int'),
- 'check_list_id = ' .
$this->marshal($check_item->get_check_list_id(), 'int')
- );
+ /**
+ * Update existing check item object in database
+ *
+ * @param $check_item check item oject to be updated
+ * @return id of the inserted check item, 0 otherwise
+ */
+ function update($check_item) {
+ $id = $check_item->get_id();
- $result = $this->db->query('UPDATE
controller_check_item SET ' . join(',', $values) . " WHERE id=$id",
__LINE__,__FILE__);
+ $values = array(
+ 'control_item_id = ' .
$this->marshal($check_item->get_control_item_id(), 'int'),
+ 'check_list_id = ' . $this->marshal($check_item->get_check_list_id(),
'int')
+ );
- if( $result )
- {
- return $id;
- }
- else
- {
- return 0;
- }
- }
+ $result = $this->db->query('UPDATE controller_check_item SET ' . join(',',
$values) . " WHERE id=$id", __LINE__, __FILE__);
- /**
- * Get single check item object from database including related
control item
- *
- * @param $check_item_id id to check item to be fetched
from database
- * @return check item object
- */
- public function get_single($check_item_id)
- {
- $check_item_id = (int) $check_item_id;
+ if ($result) {
+ return $id;
+ } else {
+ return 0;
+ }
+ }
- $sql = "SELECT ci.*, ci.id as c_id, coi.id as coi_id,
coi.* ";
- $sql .= "FROM controller_check_item ci,
controller_control_item coi ";
- $sql .= "WHERE ci.id = {$check_item_id} ";
- $sql .= "AND ci.control_item_id=coi.id";
+ /**
+ * Get single check item object from database including related control item
+ *
+ * @param $check_item_id id to check item to be fetched from database
+ * @return check item object
+ */
+ public function get_single($check_item_id) {
+ $check_item_id = (int) $check_item_id;
- $this->db->limit_query($sql, 0, __LINE__, __FILE__, 1);
+ $sql = "SELECT ci.*, ci.id as c_id, coi.id as coi_id, coi.* ";
+ $sql .= "FROM controller_check_item ci, controller_control_item coi ";
+ $sql .= "WHERE ci.id = {$check_item_id} ";
+ $sql .= "AND ci.control_item_id=coi.id";
- if($this->db->next_record())
- {
- $check_item = new
controller_check_item($this->unmarshal($this->db->f('c_id'), 'int'));
-
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id'),
'int'));
-
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
'int'));
+ $this->db->limit_query($sql, 0, __LINE__, __FILE__, 1);
- $control_item = new
controller_control_item($this->unmarshal($this->db->f('coi_id'), 'int'));
- $control_item->set_title($this->db->f('title',
true), 'string');
-
$control_item->set_required($this->db->f('required', true), 'string');
-
$control_item->set_what_to_do($this->db->f('what_to_do', true), 'string');
-
$control_item->set_how_to_do($this->db->f('how_to_do', true), 'string');
-
$control_item->set_control_group_id($this->db->f('control_group_id'), 'int');
+ if ($this->db->next_record()) {
+ $check_item = new
controller_check_item($this->unmarshal($this->db->f('c_id'), 'int'));
+
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id'),
'int'));
+
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
'int'));
-
$check_item->set_control_item($control_item->toArray());
+ $control_item = new
controller_control_item($this->unmarshal($this->db->f('coi_id'), 'int'));
+ $control_item->set_title($this->db->f('title', true), 'string');
+ $control_item->set_required($this->db->f('required', true), 'string');
+ $control_item->set_what_to_do($this->db->f('what_to_do', true),
'string');
+ $control_item->set_how_to_do($this->db->f('how_to_do', true), 'string');
+ $control_item->set_control_group_id($this->db->f('control_group_id'),
'int');
- return $check_item;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get single check item object from database including related
cases and control item
- *
- * @param $check_item_id id to check item to be fetched
from database
- * @return check item object
- */
- public function get_single_with_cases($check_item_id,
$return_type = "return_object")
- {
- $check_item_id = (int) $check_item_id;
+ $check_item->set_control_item($control_item->toArray());
- $sql = "SELECT ci.id as ci_id, control_item_id,
check_list_id, ";
- $sql .= "cic.id as cic_id, cic.status as cic_status,
cic.*, ";
- $sql .= "coi.id as coi_id, coi.* ";
- $sql .= "FROM controller_check_item ci ";
- $sql .= "LEFT JOIN controller_control_item as coi ON
ci.control_item_id = coi.id ";
- $sql .= "LEFT JOIN controller_check_item_case as cic ON
ci.id = cic.check_item_id ";
- $sql .= "WHERE ci.id = {$check_item_id} ";
-
- $this->db->query($sql);
-
- $counter = 0;
- $check_item = null;
- while ($this->db->next_record())
- {
- if( $counter == 0 )
- {
- $check_item = new
controller_check_item($this->unmarshal($this->db->f('ci_id'), 'int'));
-
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
'int'));
-
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id'),
'int'));
-
- $control_item = new
controller_control_item($this->unmarshal($this->db->f('coi_id'), 'int'));
-
$control_item->set_title($this->db->f('title', true), 'string');
-
$control_item->set_required($this->db->f('required', true), 'string');
-
$control_item->set_what_to_do($this->db->f('what_to_do', true), 'string');
-
$control_item->set_how_to_do($this->db->f('how_to_do', true), 'string');
-
$control_item->set_control_group_id($this->db->f('control_group_id'), 'int');
-
$control_item->set_type($this->db->f('type', true), 'string');
-
- if($return_type == "return_array")
- {
-
$check_item->set_control_item($control_item->toArray());
- }
- else
- {
-
$check_item->set_control_item($control_item);
- }
-
- $cases_array = array();
- }
-
- if($this->db->f('cic_id'))
- {
- $case = new
controller_check_item_case($this->unmarshal($this->db->f('cic_id'), 'int'));
-
$case->set_check_item_id($this->unmarshal($this->db->f('check_item_id'),
'int'));
-
$case->set_status($this->unmarshal($this->db->f('cic_status'), 'int'));
-
$case->set_location_id($this->unmarshal($this->db->f('location_id'), 'int'));
-
$case->set_location_item_id($this->unmarshal($this->db->f('location_item_id'),
'int'));
-
$case->set_descr($this->unmarshal($this->db->f('descr', true), 'string'));
-
$case->set_user_id($this->unmarshal($this->db->f('user_id'), 'int'));
-
$case->set_entry_date($this->unmarshal($this->db->f('entry_date'), 'int'));
-
$case->set_modified_date($this->unmarshal($this->db->f('modified_date'),
'int'));
-
$case->set_modified_by($this->unmarshal($this->db->f('modified_by'), 'int'));
-
-
- if($return_type == "return_array")
- {
- $cases_array[] =
$case->toArray();
- }
- else
- {
- $cases_array[] = $case;
- }
- }
-
- $check_item_id = $check_item->get_id();
- $counter++;
- }
-
- if($check_item != null)
- {
- $check_item->set_cases_array($cases_array);
-
- if($return_type == "return_array")
- {
- return $check_item->toArray();
- }
- else
- {
- return $check_item;
- }
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get single check item object from database including related
control item
- *
- * @param $check_list_id check list id
- * @param $check_item_id control item id
- * @return check item object
- */
- public function
get_check_item_by_check_list_and_control_item($check_list_id, $control_item_id)
- {
- $check_list_id = (int) $check_list_id;
- $control_item_id = (int) $control_item_id;
+ return $check_item;
+ } else {
+ return null;
+ }
+ }
- $sql = "SELECT ci.*, ci.id as c_id, coi.id as coi_id,
coi.* ";
- $sql .= "FROM controller_check_item ci,
controller_control_item coi ";
- $sql .= "WHERE ci.check_list_id = {$check_list_id} ";
- $sql .= "AND ci.control_item_id = coi.id ";
- $sql .= "AND ci.control_item_id = {$control_item_id}";
-
- $this->db->limit_query($sql, 0, __LINE__, __FILE__, 1);
+ /**
+ * Get single check item object from database including related cases and
control item
+ *
+ * @param $check_item_id id to check item to be fetched from database
+ * @return check item object
+ */
+ public function get_single_with_cases($check_item_id, $return_type =
"return_object") {
+ $check_item_id = (int) $check_item_id;
- if($this->db->next_record())
- {
- $check_item = new
controller_check_item($this->unmarshal($this->db->f('c_id'), 'int'));
-
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id'),
'int'));
-
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
'int'));
+ $sql = "SELECT ci.id as ci_id, control_item_id, check_list_id, ";
+ $sql .= "cic.id as cic_id, cic.status as cic_status, cic.*, ";
+ $sql .= "coi.id as coi_id, coi.* ";
+ $sql .= "FROM controller_check_item ci ";
+ $sql .= "LEFT JOIN controller_control_item as coi ON ci.control_item_id =
coi.id ";
+ $sql .= "LEFT JOIN controller_check_item_case as cic ON ci.id =
cic.check_item_id ";
+ $sql .= "WHERE ci.id = {$check_item_id} ";
- $control_item = new
controller_control_item($this->unmarshal($this->db->f('coi_id'), 'int'));
- $control_item->set_title($this->db->f('title',
true), 'string');
-
$control_item->set_required($this->db->f('required', true), 'string');
-
$control_item->set_what_to_do($this->db->f('what_to_do', true), 'string');
-
$control_item->set_how_to_do($this->db->f('how_to_do', true), 'string');
-
$control_item->set_control_group_id($this->db->f('control_group_id'), 'int');
+ $this->db->query($sql);
-
$check_item->set_control_item($control_item->toArray());
+ $counter = 0;
+ $check_item = null;
+ while ($this->db->next_record()) {
+ if ($counter == 0) {
+ $check_item = new
controller_check_item($this->unmarshal($this->db->f('ci_id'), 'int'));
+
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
'int'));
+
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id'),
'int'));
- return $check_item;
- }
- else
- {
- return null;
- }
- }
-
- /* Later ikke til at denne er i bruk: Torstein 10.07.12
- public function get_check_items($check_list_id, $status, $type,
$return_type = "return_object"){
- $sql = "SELECT ci.id as ci_id, control_item_id,
check_list_id, ";
- $sql .= "coi.id as coi_id, coi.title, coi.required,
coi.what_to_do, coi.how_to_do, coi.control_group_id, coi.type ";
- $sql .= "FROM controller_check_item ci ";
- $sql .= "LEFT JOIN controller_control_item as coi ON
ci.control_item_id = coi.id ";
- $sql .= "WHERE ci.check_list_id = $check_list_id ";
-
- if($status == 'open')
- $sql .= "AND ci.status = 0 ";
- else if($status == 'handled')
- $sql .= "AND ci.status = 1 ";
-
- if($type != null)
- $sql .= "AND coi.type = '$type'";
-
- $this->db->query($sql);
-
- while ($this->db->next_record()) {
- $check_item = new
controller_check_item($this->unmarshal($this->db->f('ci_id', true), 'int'));
-
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id',
true), 'int'));
-
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id',
true), 'int'));
-
- $control_item = new
controller_control_item($this->unmarshal($this->db->f('coi_id', true), 'int'));
- $control_item->set_title($this->db->f('title',
true), 'string');
-
$control_item->set_required($this->db->f('required', true), 'string');
-
$control_item->set_what_to_do($this->db->f('what_to_do', true), 'string');
-
$control_item->set_how_to_do($this->db->f('how_to_do', true), 'string');
-
$control_item->set_control_group_id($this->db->f('control_group_id', true),
'string');
- $control_item->set_type($this->db->f('type',
true), 'string');
-
- if($return_type == "return_array"){
-
$check_item->set_control_item($control_item->toArray());
- $check_items_array[] =
$check_item->toArray();
- }
- else{
-
$check_item->set_control_item($control_item);
- $check_items_array[] = $check_item;
- }
- }
-
- return $check_items_array;
- }
- */
-
- /**
- * Get check item objects from database including control item
and related cases
- *
- * @param $check_list_id check list id
- * @param $type control item registration type
COMMENT/TEXTFIELD/CHECKLIST/RADIOBUTTONS
- * @param $status status for cases OPEN/CLOSED/PENDING
- * @param $messageStatus is there a message registered
for the case
- * @param $returnType data returned as objects or arrays
- * @return check item objects
- */
- public function get_check_items_with_cases($check_list_id,
$type = "control_item_type_1", $status = "open", $messageStatus = null,
$return_type = "return_object")
- {
- $check_list_id = (int) $check_list_id;
- $sql = "SELECT ci.id as ci_id, control_item_id,
check_list_id, ";
- $sql .= "cic.id as cic_id, cic.status as cic_status,
cic.*, ";
- $sql .= "coi.id as coi_id, coi.* ";
- $sql .= "FROM controller_check_item ci ";
- $sql .= "LEFT JOIN controller_control_item as coi ON
ci.control_item_id = coi.id ";
- $sql .= "LEFT JOIN controller_check_item_case as cic ON
ci.id = cic.check_item_id ";
- $sql .= "WHERE ci.check_list_id = {$check_list_id} ";
-
- if($status == 'open')
- {
- $sql .= "AND cic.status = 0 ";
- }
- else if($status == 'closed')
- {
- $sql .= "AND cic.status = 1 ";
- }
- else if($status == 'waiting')
- {
- $sql .= "AND cic.status = 2 ";
- }
- else if($status == 'open_or_waiting')
- {
- $sql .= "AND (cic.status = 0 OR cic.status = 2)
";
- }
-
- if($type != null)
- {
- $sql .= "AND coi.type = '$type' ";
- }
-
- if($messageStatus != null & $messageStatus ==
'no_message_registered')
- {
- $sql .= "AND cic.location_item_id IS NULL ";
- }
- else if($messageStatus != null & $messageStatus ==
'message_registered')
- {
- $sql .= "AND cic.location_item_id > 0 ";
- }
-
- $sql .= "ORDER BY ci.id";
-
- $this->db->query($sql);
-
- $check_item_id = 0;
- $check_item = null;
- while ($this->db->next_record())
- {
- if( $this->db->f('ci_id') != $check_item_id )
- {
- if($check_item_id)
- {
-
$check_item->set_cases_array($cases_array);
-
- if($return_type ==
"return_array")
- {
- $check_items_array[] =
$check_item->toArray();
- }
- else
- {
- $check_items_array[] =
$check_item;
- }
- }
-
- $check_item = new
controller_check_item($this->unmarshal($this->db->f('ci_id'), 'int'));
-
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
'int'));
-
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id'),
'int'));
-
- $control_item = new
controller_control_item($this->unmarshal($this->db->f('coi_id'), 'int'));
-
$control_item->set_title($this->db->f('title', true), 'string');
-
$control_item->set_required($this->db->f('required', true), 'string');
-
$control_item->set_what_to_do($this->db->f('what_to_do', true), 'string');
-
$control_item->set_how_to_do($this->db->f('how_to_do', true), 'string');
-
$control_item->set_control_group_id($this->db->f('control_group_id'), 'int');
-
$control_item->set_type($this->db->f('type', true), 'string');
-
- if($return_type == "return_array")
- {
-
$check_item->set_control_item($control_item->toArray());
- }
- else
- {
-
$check_item->set_control_item($control_item);
- }
-
- $cases_array = array();
- }
-
- if( $this->db->f('cic_id') )
- {
- $case = new
controller_check_item_case($this->unmarshal($this->db->f('cic_id'), 'int'));
-
$case->set_check_item_id($this->unmarshal($this->db->f('check_item_id'),
'int'));
-
$case->set_status($this->unmarshal($this->db->f('cic_status'), 'int'));
-
$case->set_location_id($this->unmarshal($this->db->f('location_id'), 'int'));
-
$case->set_location_item_id($this->unmarshal($this->db->f('location_item_id'),
'int'));
-
$case->set_descr($this->unmarshal($this->db->f('descr', true), 'string'));
-
$case->set_user_id($this->unmarshal($this->db->f('user_id'), 'int'));
-
$case->set_entry_date($this->unmarshal($this->db->f('entry_date'), 'int'));
-
$case->set_modified_date($this->unmarshal($this->db->f('modified_date'),
'int'));
-
$case->set_modified_by($this->unmarshal($this->db->f('modified_by'), 'int'));
-
$case->set_measurement($this->unmarshal($this->db->f('measurement', true),
'string'));
-
- if($return_type == "return_array")
- {
- $cases_array[] =
$case->toArray();
- }
- else
- {
- $cases_array[] = $case;
- }
- }
-
- $check_item_id = $check_item->get_id();
- }
-
- if($check_item != null)
- {
- $check_item->set_cases_array($cases_array);
-
- if($return_type == "return_array")
- {
- $check_items_array[] =
$check_item->toArray();
- }
- else
- {
- $check_items_array[] = $check_item;
- }
- return $check_items_array;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get check item objects from database including related
control item and cases
- *
- * @param $message_ticket_id get check items and cases
for this message
- * @param $returnType data returned as objects or arrays
- * @return check item objects
- */
- public function
get_check_items_with_cases_by_message($message_ticket_id, $return_type =
"return_object")
- {
- $message_ticket_id = (int) $message_ticket_id;
+ $control_item = new
controller_control_item($this->unmarshal($this->db->f('coi_id'), 'int'));
+ $control_item->set_title($this->db->f('title', true), 'string');
+ $control_item->set_required($this->db->f('required', true), 'string');
+ $control_item->set_what_to_do($this->db->f('what_to_do', true),
'string');
+ $control_item->set_how_to_do($this->db->f('how_to_do', true),
'string');
+ $control_item->set_control_group_id($this->db->f('control_group_id'),
'int');
+ $control_item->set_type($this->db->f('type', true), 'string');
- $sql = "SELECT ci.id as ci_id, control_item_id, ";
- $sql .= "check_list_id, cic.id as cic_id, cic.status as
cic_status, cic.*, ";
- $sql .= "coi.id as coi_id, coi.* ";
- $sql .= "FROM controller_check_item ci ";
- $sql .= "LEFT JOIN controller_control_item as coi ON
ci.control_item_id = coi.id ";
- $sql .= "LEFT JOIN controller_check_item_case as cic ON
ci.id = cic.check_item_id ";
- $sql .= "WHERE cic.location_item_id =
{$message_ticket_id}";
-
- $this->db->query($sql);
-
- $check_item_id = 0;
- $check_item = null;
- while ($this->db->next_record())
- {
- if( $this->db->f('ci_id') != $check_item_id )
- {
- if($check_item_id)
- {
-
$check_item->set_cases_array($cases_array);
-
- if($return_type ==
"return_array")
- {
- $check_items_array[] =
$check_item->toArray();
- }
- else
- {
- $check_items_array[] =
$check_item;
- }
- }
-
- $check_item = new
controller_check_item($this->unmarshal($this->db->f('ci_id'), 'int'));
-
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
'int'));
-
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id'),
'int'));
-
- $control_item = new
controller_control_item($this->unmarshal($this->db->f('coi_id'), 'int'));
-
$control_item->set_title($this->db->f('title', true), 'string');
-
$control_item->set_required($this->db->f('required', true), 'string');
-
$control_item->set_what_to_do($this->db->f('what_to_do', true), 'string');
-
$control_item->set_how_to_do($this->db->f('how_to_do', true), 'string');
-
$control_item->set_control_group_id($this->db->f('control_group_id'), 'int');
-
$control_item->set_type($this->db->f('type', true), 'string');
-
- if($return_type == "return_array")
- {
-
$check_item->set_control_item($control_item->toArray());
- }
- else
- {
-
$check_item->set_control_item($control_item);
- }
-
- $cases_array = array();
- }
-
- if($this->db->f('cic_id'))
- {
- $case = new
controller_check_item_case($this->unmarshal($this->db->f('cic_id'), 'int'));
-
$case->set_status($this->unmarshal($this->db->f('cic_status'), 'int'));
-
$case->set_check_item_id($this->unmarshal($this->db->f('check_item_id'),
'int'));
-
$case->set_location_id($this->unmarshal($this->db->f('location_id'), 'int'));
-
$case->set_location_item_id($this->unmarshal($this->db->f('location_item_id'),
'int'));
-
$case->set_descr($this->unmarshal($this->db->f('descr', true), 'string'));
-
$case->set_user_id($this->unmarshal($this->db->f('user_id'), 'int'));
-
$case->set_entry_date($this->unmarshal($this->db->f('entry_date'), 'int'));
-
$case->set_modified_date($this->unmarshal($this->db->f('modified_date'),
'int'));
-
$case->set_modified_by($this->unmarshal($this->db->f('modified_by'), 'int'));
-
-
- if($return_type == "return_array")
- {
- $cases_array[] =
$case->toArray();
- }
- else
- {
- $cases_array[] = $case;
- }
- }
-
- $check_item_id = $check_item->get_id();
- }
-
- if($check_item != null)
- {
- $check_item->set_cases_array($cases_array);
-
- if($return_type == "return_array")
- {
- $check_items_array[] =
$check_item->toArray();
- }
- else
- {
- $check_items_array[] = $check_item;
- }
-
- return $check_items_array;
- }
- else
- {
- return null;
- }
- }
- /* Later ikke til at vi bruker denne: Torstein 10.07.12
- public function get_check_items_by_message($location_id,
$location_item_id, $return_type = "return_array" )
- {
- $location_id = (int)$location_id;
- $location_item_id = (int)$location_item_id;
- $sql = "SELECT ci.* ";
- $sql .= "FROM controller_check_item ci ";
- $sql .= "LEFT JOIN controller_check_item_case as cic ON
ci.id = cic.check_item_id ";
- $sql .= "WHERE cic.location_id = {$location_id} AND
cic.location_item_id = {$location_item_id} ";
-
- $this->db->query($sql);
-
- while ($this->db->next_record()) {
- $check_item = new
controller_check_item($this->unmarshal($this->db->f('id', true), 'int'));
-
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id',
true), 'int'));
-
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id',
true), 'int'));
-
- if($return_type == "return_array")
- $check_items_array[] =
$check_item->toArray();
- else
- $check_items_array[] = $check_item;
- }
-
- return $check_items_array;
- }
- */
-
- function get_query(string $sort_field, boolean $ascending,
string $search_for, string $search_type, array $filters, boolean
$return_count){}
+ if ($return_type == "return_array") {
+ $check_item->set_control_item($control_item->toArray());
+ } else {
+ $check_item->set_control_item($control_item);
+ }
- function populate(int $object_id, &$object){}
+ $cases_array = array();
+ }
- function get_id_field_name(){}
- }
+ if ($this->db->f('cic_id')) {
+ $case = new
controller_check_item_case($this->unmarshal($this->db->f('cic_id'), 'int'));
+
$case->set_check_item_id($this->unmarshal($this->db->f('check_item_id'),
'int'));
+ $case->set_status($this->unmarshal($this->db->f('cic_status'), 'int'));
+ $case->set_location_id($this->unmarshal($this->db->f('location_id'),
'int'));
+
$case->set_location_item_id($this->unmarshal($this->db->f('location_item_id'),
'int'));
+ $case->set_descr($this->unmarshal($this->db->f('descr', true),
'string'));
+ $case->set_user_id($this->unmarshal($this->db->f('user_id'), 'int'));
+ $case->set_entry_date($this->unmarshal($this->db->f('entry_date'),
'int'));
+
$case->set_modified_date($this->unmarshal($this->db->f('modified_date'),
'int'));
+ $case->set_modified_by($this->unmarshal($this->db->f('modified_by'),
'int'));
+
+
+ if ($return_type == "return_array") {
+ $cases_array[] = $case->toArray();
+ } else {
+ $cases_array[] = $case;
+ }
+ }
+
+ $check_item_id = $check_item->get_id();
+ $counter++;
+ }
+
+ if ($check_item != null) {
+ $check_item->set_cases_array($cases_array);
+
+ if ($return_type == "return_array") {
+ return $check_item->toArray();
+ } else {
+ return $check_item;
+ }
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Get single check item object from database including related control item
+ *
+ * @param $check_list_id check list id
+ * @param $check_item_id control item id
+ * @return check item object
+ */
+ public function
get_check_item_by_check_list_and_control_item($check_list_id, $control_item_id)
{
+ $check_list_id = (int) $check_list_id;
+ $control_item_id = (int) $control_item_id;
+
+ $sql = "SELECT ci.*, ci.id as c_id, coi.id as coi_id, coi.* ";
+ $sql .= "FROM controller_check_item ci, controller_control_item coi ";
+ $sql .= "WHERE ci.check_list_id = {$check_list_id} ";
+ $sql .= "AND ci.control_item_id = coi.id ";
+ $sql .= "AND ci.control_item_id = {$control_item_id}";
+
+ $this->db->limit_query($sql, 0, __LINE__, __FILE__, 1);
+
+ if ($this->db->next_record()) {
+ $check_item = new
controller_check_item($this->unmarshal($this->db->f('c_id'), 'int'));
+
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id'),
'int'));
+
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
'int'));
+
+ $control_item = new
controller_control_item($this->unmarshal($this->db->f('coi_id'), 'int'));
+ $control_item->set_title($this->db->f('title', true), 'string');
+ $control_item->set_required($this->db->f('required', true), 'string');
+ $control_item->set_what_to_do($this->db->f('what_to_do', true),
'string');
+ $control_item->set_how_to_do($this->db->f('how_to_do', true), 'string');
+ $control_item->set_control_group_id($this->db->f('control_group_id'),
'int');
+
+ $check_item->set_control_item($control_item->toArray());
+
+ return $check_item;
+ } else {
+ return null;
+ }
+ }
+
+ /* Later ikke til at denne er i bruk: Torstein 10.07.12
+ public function get_check_items($check_list_id, $status, $type,
$return_type = "return_object"){
+ $sql = "SELECT ci.id as ci_id, control_item_id, check_list_id, ";
+ $sql .= "coi.id as coi_id, coi.title, coi.required, coi.what_to_do,
coi.how_to_do, coi.control_group_id, coi.type ";
+ $sql .= "FROM controller_check_item ci ";
+ $sql .= "LEFT JOIN controller_control_item as coi ON ci.control_item_id =
coi.id ";
+ $sql .= "WHERE ci.check_list_id = $check_list_id ";
+
+ if($status == 'open')
+ $sql .= "AND ci.status = 0 ";
+ else if($status == 'handled')
+ $sql .= "AND ci.status = 1 ";
+
+ if($type != null)
+ $sql .= "AND coi.type = '$type'";
+
+ $this->db->query($sql);
+
+ while ($this->db->next_record()) {
+ $check_item = new
controller_check_item($this->unmarshal($this->db->f('ci_id', true), 'int'));
+
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id',
true), 'int'));
+
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id',
true), 'int'));
+
+ $control_item = new
controller_control_item($this->unmarshal($this->db->f('coi_id', true), 'int'));
+ $control_item->set_title($this->db->f('title', true), 'string');
+ $control_item->set_required($this->db->f('required', true), 'string');
+ $control_item->set_what_to_do($this->db->f('what_to_do', true), 'string');
+ $control_item->set_how_to_do($this->db->f('how_to_do', true), 'string');
+ $control_item->set_control_group_id($this->db->f('control_group_id',
true), 'string');
+ $control_item->set_type($this->db->f('type', true), 'string');
+
+ if($return_type == "return_array"){
+ $check_item->set_control_item($control_item->toArray());
+ $check_items_array[] = $check_item->toArray();
+ }
+ else{
+ $check_item->set_control_item($control_item);
+ $check_items_array[] = $check_item;
+ }
+ }
+
+ return $check_items_array;
+ }
+ */
+
+ /**
+ * Get check item objects from database including control item and related
cases
+ *
+ * @param $check_list_id check list id
+ * @param $type control item registration type
COMMENT/TEXTFIELD/CHECKLIST/RADIOBUTTONS
+ * @param $status status for cases OPEN/CLOSED/PENDING
+ * @param $messageStatus is there a message registered for the case
+ * @param $returnType data returned as objects or arrays
+ * @return check item objects
+ */
+ public function get_check_items_with_cases($check_list_id, $type =
"control_item_type_1", $status = "open", $messageStatus = null, $return_type =
"return_object") {
+ $check_list_id = (int) $check_list_id;
+ $sql = "SELECT ci.id as ci_id, control_item_id, check_list_id, ";
+ $sql .= "cic.id as cic_id, cic.status as cic_status, cic.*, ";
+ $sql .= "coi.id as coi_id, coi.* ";
+ $sql .= "FROM controller_check_item ci ";
+ $sql .= "LEFT JOIN controller_control_item as coi ON ci.control_item_id =
coi.id ";
+ $sql .= "LEFT JOIN controller_check_item_case as cic ON ci.id =
cic.check_item_id ";
+ $sql .= "WHERE ci.check_list_id = {$check_list_id} ";
+
+ if ($status == 'open') {
+ $sql .= "AND cic.status = 0 ";
+ } else if ($status == 'closed') {
+ $sql .= "AND cic.status = 1 ";
+ } else if ($status == 'waiting') {
+ $sql .= "AND cic.status = 2 ";
+ } else if ($status == 'open_or_waiting') {
+ $sql .= "AND (cic.status = 0 OR cic.status = 2) ";
+ }
+
+ if ($type != null) {
+ $sql .= "AND coi.type = '$type' ";
+ }
+
+ if ($messageStatus != null & $messageStatus == 'no_message_registered') {
+ $sql .= "AND cic.location_item_id IS NULL ";
+ } else if ($messageStatus != null & $messageStatus ==
'message_registered') {
+ $sql .= "AND cic.location_item_id > 0 ";
+ }
+
+ $sql .= "ORDER BY ci.id";
+
+ $this->db->query($sql);
+
+ $check_item_id = 0;
+ $check_item = null;
+ while ($this->db->next_record()) {
+ if ($this->db->f('ci_id') != $check_item_id) {
+ if ($check_item_id) {
+ $check_item->set_cases_array($cases_array);
+
+ if ($return_type == "return_array") {
+ $check_items_array[] = $check_item->toArray();
+ } else {
+ $check_items_array[] = $check_item;
+ }
+ }
+
+ $check_item = new
controller_check_item($this->unmarshal($this->db->f('ci_id'), 'int'));
+
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
'int'));
+
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id'),
'int'));
+
+ $control_item = new
controller_control_item($this->unmarshal($this->db->f('coi_id'), 'int'));
+ $control_item->set_title($this->db->f('title', true), 'string');
+ $control_item->set_required($this->db->f('required', true), 'string');
+ $control_item->set_what_to_do($this->db->f('what_to_do', true),
'string');
+ $control_item->set_how_to_do($this->db->f('how_to_do', true),
'string');
+ $control_item->set_control_group_id($this->db->f('control_group_id'),
'int');
+ $control_item->set_type($this->db->f('type', true), 'string');
+
+ if ($return_type == "return_array") {
+ $check_item->set_control_item($control_item->toArray());
+ } else {
+ $check_item->set_control_item($control_item);
+ }
+
+ $cases_array = array();
+ }
+
+ if ($this->db->f('cic_id')) {
+ $case = new
controller_check_item_case($this->unmarshal($this->db->f('cic_id'), 'int'));
+
$case->set_check_item_id($this->unmarshal($this->db->f('check_item_id'),
'int'));
+ $case->set_status($this->unmarshal($this->db->f('cic_status'), 'int'));
+ $case->set_location_id($this->unmarshal($this->db->f('location_id'),
'int'));
+
$case->set_location_item_id($this->unmarshal($this->db->f('location_item_id'),
'int'));
+ $case->set_descr($this->unmarshal($this->db->f('descr', true),
'string'));
+ $case->set_user_id($this->unmarshal($this->db->f('user_id'), 'int'));
+ $case->set_entry_date($this->unmarshal($this->db->f('entry_date'),
'int'));
+
$case->set_modified_date($this->unmarshal($this->db->f('modified_date'),
'int'));
+ $case->set_modified_by($this->unmarshal($this->db->f('modified_by'),
'int'));
+ $case->set_measurement($this->unmarshal($this->db->f('measurement',
true), 'string'));
+
+ if ($return_type == "return_array") {
+ $cases_array[] = $case->toArray();
+ } else {
+ $cases_array[] = $case;
+ }
+ }
+
+ $check_item_id = $check_item->get_id();
+ }
+
+ if ($check_item != null) {
+ $check_item->set_cases_array($cases_array);
+
+ if ($return_type == "return_array") {
+ $check_items_array[] = $check_item->toArray();
+ } else {
+ $check_items_array[] = $check_item;
+ }
+ return $check_items_array;
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Get check item objects from database including related control item and
cases
+ *
+ * @param $message_ticket_id get check items and cases for this message
+ * @param $returnType data returned as objects or arrays
+ * @return check item objects
+ */
+ public function get_check_items_with_cases_by_message($message_ticket_id,
$return_type = "return_object") {
+ $message_ticket_id = (int) $message_ticket_id;
+
+ $sql = "SELECT ci.id as ci_id, control_item_id, ";
+ $sql .= "check_list_id, cic.id as cic_id, cic.status as cic_status, cic.*,
";
+ $sql .= "coi.id as coi_id, coi.* ";
+ $sql .= "FROM controller_check_item ci ";
+ $sql .= "LEFT JOIN controller_control_item as coi ON ci.control_item_id =
coi.id ";
+ $sql .= "LEFT JOIN controller_check_item_case as cic ON ci.id =
cic.check_item_id ";
+ $sql .= "WHERE cic.location_item_id = {$message_ticket_id}";
+
+ $this->db->query($sql);
+
+ $check_item_id = 0;
+ $check_item = null;
+ while ($this->db->next_record()) {
+ if ($this->db->f('ci_id') != $check_item_id) {
+ if ($check_item_id) {
+ $check_item->set_cases_array($cases_array);
+
+ if ($return_type == "return_array") {
+ $check_items_array[] = $check_item->toArray();
+ } else {
+ $check_items_array[] = $check_item;
+ }
+ }
+
+ $check_item = new
controller_check_item($this->unmarshal($this->db->f('ci_id'), 'int'));
+
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
'int'));
+
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id'),
'int'));
+
+ $control_item = new
controller_control_item($this->unmarshal($this->db->f('coi_id'), 'int'));
+ $control_item->set_title($this->db->f('title', true), 'string');
+ $control_item->set_required($this->db->f('required', true), 'string');
+ $control_item->set_what_to_do($this->db->f('what_to_do', true),
'string');
+ $control_item->set_how_to_do($this->db->f('how_to_do', true),
'string');
+ $control_item->set_control_group_id($this->db->f('control_group_id'),
'int');
+ $control_item->set_type($this->db->f('type', true), 'string');
+
+ if ($return_type == "return_array") {
+ $check_item->set_control_item($control_item->toArray());
+ } else {
+ $check_item->set_control_item($control_item);
+ }
+
+ $cases_array = array();
+ }
+
+ if ($this->db->f('cic_id')) {
+ $case = new
controller_check_item_case($this->unmarshal($this->db->f('cic_id'), 'int'));
+ $case->set_status($this->unmarshal($this->db->f('cic_status'), 'int'));
+
$case->set_check_item_id($this->unmarshal($this->db->f('check_item_id'),
'int'));
+ $case->set_location_id($this->unmarshal($this->db->f('location_id'),
'int'));
+
$case->set_location_item_id($this->unmarshal($this->db->f('location_item_id'),
'int'));
+ $case->set_descr($this->unmarshal($this->db->f('descr', true),
'string'));
+ $case->set_user_id($this->unmarshal($this->db->f('user_id'), 'int'));
+ $case->set_entry_date($this->unmarshal($this->db->f('entry_date'),
'int'));
+
$case->set_modified_date($this->unmarshal($this->db->f('modified_date'),
'int'));
+ $case->set_modified_by($this->unmarshal($this->db->f('modified_by'),
'int'));
+
+
+ if ($return_type == "return_array") {
+ $cases_array[] = $case->toArray();
+ } else {
+ $cases_array[] = $case;
+ }
+ }
+
+ $check_item_id = $check_item->get_id();
+ }
+
+ if ($check_item != null) {
+ $check_item->set_cases_array($cases_array);
+
+ if ($return_type == "return_array") {
+ $check_items_array[] = $check_item->toArray();
+ } else {
+ $check_items_array[] = $check_item;
+ }
+
+ return $check_items_array;
+ } else {
+ return null;
+ }
+ }
+
+ /* Later ikke til at vi bruker denne: Torstein 10.07.12
+ public function get_check_items_by_message($location_id,
$location_item_id, $return_type = "return_array" )
+ {
+ $location_id = (int)$location_id;
+ $location_item_id = (int)$location_item_id;
+ $sql = "SELECT ci.* ";
+ $sql .= "FROM controller_check_item ci ";
+ $sql .= "LEFT JOIN controller_check_item_case as cic ON ci.id =
cic.check_item_id ";
+ $sql .= "WHERE cic.location_id = {$location_id} AND cic.location_item_id =
{$location_item_id} ";
+
+ $this->db->query($sql);
+
+ while ($this->db->next_record()) {
+ $check_item = new
controller_check_item($this->unmarshal($this->db->f('id', true), 'int'));
+
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id',
true), 'int'));
+
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id',
true), 'int'));
+
+ if($return_type == "return_array")
+ $check_items_array[] = $check_item->toArray();
+ else
+ $check_items_array[] = $check_item;
+ }
+
+ return $check_items_array;
+ }
+ */
+
+ function get_query(string $sort_field, boolean $ascending, string
$search_for, string $search_type, array $filters, boolean $return_count) {
+
+ }
+
+ function populate(int $object_id, &$object) {
+
+ }
+
+ function get_id_field_name() {
+
+ }
+
+}
Modified: trunk/controller/inc/class.socheck_list.inc.php
===================================================================
--- trunk/controller/inc/class.socheck_list.inc.php 2012-08-31 07:55:48 UTC
(rev 9944)
+++ trunk/controller/inc/class.socheck_list.inc.php 2012-08-31 08:28:15 UTC
(rev 9945)
@@ -1,919 +1,831 @@
-<?php
- /**
- * phpGroupWare - controller: a part of a Facilities Management System.
- *
- * @author Erik Holm-Larsen <address@hidden>
- * @author Torstein Vadla <address@hidden>
- * @copyright Copyright (C) 2011,2012 Free Software Foundation, Inc.
http://www.fsf.org/
- * This file is part of phpGroupWare.
- *
- * phpGroupWare is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * phpGroupWare is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with phpGroupWare; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
USA
- *
- * @license http://www.gnu.org/licenses/gpl.html GNU General Public
License
- * @internal Development of this application was funded by
http://www.bergen.kommune.no/
- * @package property
- * @subpackage controller
- * @version $Id$
- */
+<?php
+/**
+ * phpGroupWare - controller: a part of a Facilities Management System.
+ *
+ * @author Erik Holm-Larsen <address@hidden>
+ * @author Torstein Vadla <address@hidden>
+ * @copyright Copyright (C) 2011,2012 Free Software Foundation, Inc.
http://www.fsf.org/
+ * This file is part of phpGroupWare.
+ *
+ * phpGroupWare is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * phpGroupWare is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with phpGroupWare; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * @license http://www.gnu.org/licenses/gpl.html GNU General Public License
+ * @internal Development of this application was funded by
http://www.bergen.kommune.no/
+ * @package property
+ * @subpackage controller
+ * @version $Id$
+ */
phpgw::import_class('controller.socommon');
include_class('controller', 'check_list', 'inc/model/');
include_class('controller', 'control_item', 'inc/model/');
include_class('controller', 'check_item', 'inc/model/');
-class controller_socheck_list extends controller_socommon
-{
- protected static $so;
+class controller_socheck_list extends controller_socommon {
- /**
- * Get a static reference to the storage object associated with this
model object
- *
- * @return controller_socheck_list the storage object
- */
- public static function get_instance()
- {
- if (self::$so == null)
- {
- self::$so = CreateObject('controller.socheck_list');
- }
- return self::$so;
- }
-
- /**
- * Get a check list and related check_items and returns it as an object
- *
- * @param $check_list_id
- * @return check list object
- */
- public function get_single($check_list_id)
- {
- $check_list_id = (int) $check_list_id;
- $sql = "SELECT cl.id as cl_id, cl.status as cl_status,
cl.control_id, cl.comment as cl_comment, deadline, planned_date, ";
- $sql .= "completed_date, location_code, component_id,
num_open_cases, num_pending_cases, location_id, ci.id as ci_id, control_item_id
";
- $sql .= "FROM controller_check_list cl ";
- $sql .= "LEFT JOIN controller_check_item as ci ON cl.id =
ci.check_list_id ";
- $sql .= "WHERE cl.id = {$check_list_id}";
-
- $this->db->query($sql);
- $this->db->next_record();
-
- $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
-
$check_list->set_control_id($this->unmarshal($this->db->f('control_id'),
'int'));
-
$check_list->set_status($this->unmarshal($this->db->f('cl_status'), 'int'));
-
$check_list->set_comment($this->unmarshal($this->db->f('cl_comment', true),
'string'));
-
$check_list->set_deadline($this->unmarshal($this->db->f('deadline'), 'int'));
-
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
-
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
-
$check_list->set_location_code($this->unmarshal($this->db->f('location_code',
true), 'string'));
-
$check_list->set_component_id($this->unmarshal($this->db->f('component_id'),
'int'));
-
$check_list->set_location_id($this->unmarshal($this->db->f('location_id'),
'int'));
-
$check_list->set_num_open_cases($this->unmarshal($this->db->f('num_open_cases'),
'int'));
-
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
-
- if($check_list != null)
- {
- return $check_list;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get check lists from database with related check items and control
items
- *
- * @param $check_list_id check list id
- * @param $status status OPEN/CLOSED
- * @param $type control items registration type (Radiobuttons,
Checklist, textfield, just commentfield)
- * @return returns a check list object
- */
- public function get_single_with_check_items($check_list_id, $status,
$type)
- {
- $check_list_id = (int) $check_list_id;
- $sql = "SELECT cl.id as cl_id, cl.status as cl_status,
cl.control_id, cl.comment as cl_comment, deadline, planned_date,
completed_date, num_open_cases, location_code, num_pending_cases, ";
- $sql .= "ci.id as ci_id, control_item_id, check_list_id, ";
- $sql .= "coi.title as coi_title, coi.required as coi_required,
";
- $sql .= "coi.what_to_do as coi_what_to_do, coi.how_to_do as
coi_how_to_do, coi.control_group_id as coi_control_group_id, coi.type ";
- $sql .= "FROM controller_check_list cl ";
- $sql .= "LEFT JOIN controller_check_item as ci ON cl.id =
ci.check_list_id ";
- $sql .= "LEFT JOIN controller_control_item as coi ON
ci.control_item_id = coi.id ";
- $sql .= "WHERE cl.id = {$check_list_id} ";
-
- if($status == 'open')
- {
- $sql .= "AND ci.status = 0 ";
- }
- else if($status == 'handled')
- {
- $sql .= "AND ci.status = 1 ";
- }
-
- if($type != null)
- {
- $sql .= "AND coi.type = '$type'";
- }
+ protected static $so;
- $this->db->query($sql);
-
- $counter = 0;
- $check_list = null;
- while ($this->db->next_record())
- {
- if($counter == 0)
- {
- $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
-
$check_list->set_status($this->unmarshal($this->db->f('cl_status'), 'bool'));
-
$check_list->set_control_id($this->unmarshal($this->db->f('control_id'),
'int'));
-
$check_list->set_comment($this->unmarshal($this->db->f('cl_comment', true),
'string'));
-
$check_list->set_deadline($this->unmarshal($this->db->f('deadline'), 'int'));
-
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
-
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'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'),
'int'));
-
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
- }
-
- if($this->db->f('ci_id'))
- {
- $check_item = new
controller_check_item($this->unmarshal($this->db->f('ci_id'), 'int'));
-
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
'int'));
-
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id'),
'int'));
-
- $control_item = new
controller_control_item($this->unmarshal($this->db->f('coi_id'), 'int'));
-
$control_item->set_title($this->db->f('coi_title', true), 'string');
-
$control_item->set_required($this->db->f('coi_required', true), 'string');
-
$control_item->set_what_to_do($this->db->f('coi_what_to_do', true), 'string');
-
$control_item->set_how_to_do($this->db->f('coi_how_to_do', true), 'string');
-
$control_item->set_control_group_id($this->db->f('coi_control_group_id', true),
'string');
- $control_item->set_type($this->db->f('type',
true), 'string');
-
-
$check_item->set_control_item($control_item->toArray());
- $check_items_array[] = $check_item->toArray();
- }
-
- $counter++;
- }
-
- if($check_list != null)
- {
- $check_list->set_check_item_array($check_items_array);
- return $check_list->toArray();
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get check list objects for a control
- *
- * @param $control_id
- * @return array with check list objects
- */
- function get_check_lists_for_control($control_id)
- {
- $control_id = (int) $control_id;
+ /**
+ * Get a static reference to the storage object associated with this model
object
+ *
+ * @return controller_socheck_list the storage object
+ */
+ public static function get_instance() {
+ if (self::$so == null) {
+ self::$so = CreateObject('controller.socheck_list');
+ }
+ return self::$so;
+ }
- $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 .= "ci.id as ci_id, control_item_id, check_list_id ";
- $sql .= "FROM controller_check_list cl, controller_check_item
ci ";
- $sql .= "WHERE cl.control_id = {$control_id} ";
- $sql .= "AND cl.id = ci.check_list_id ";
- $sql .= "ORDER BY cl.id;";
+ /**
+ * Get a check list and related check_items and returns it as an object
+ *
+ * @param $check_list_id
+ * @return check list object
+ */
+ public function get_single($check_list_id) {
+ $check_list_id = (int) $check_list_id;
+ $sql = "SELECT cl.id as cl_id, cl.status as cl_status, cl.control_id,
cl.comment as cl_comment, deadline, planned_date, ";
+ $sql .= "completed_date, location_code, component_id, num_open_cases,
num_pending_cases, location_id, ci.id as ci_id, control_item_id ";
+ $sql .= "FROM controller_check_list cl ";
+ $sql .= "LEFT JOIN controller_check_item as ci ON cl.id = ci.check_list_id
";
+ $sql .= "WHERE cl.id = {$check_list_id}";
- $this->db->query($sql);
-
- $check_list_id = 0;
- $check_list = null;
- while ($this->db->next_record())
- {
- if( $this->db->f('cl_id') != $check_list_id )
- {
- if( $check_list_id )
- {
-
$check_list->set_check_item_array($check_items_array);
- $check_list_array[] =
$check_list->toArray();
- }
-
- $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
-
$check_list->set_status($this->unmarshal($this->db->f('cl_status'), 'int'));
-
$check_list->set_comment($this->unmarshal($this->db->f('cl_comment', true),
'string'));
-
$check_list->set_deadline($this->unmarshal($this->db->f('deadline'), 'int'));
-
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
-
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
-
$check_list->set_component_id($this->unmarshal($this->db->f('component_id'),
'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'),
'int'));
-
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
-
- $check_items_array = array();
- }
-
- $check_item = new
controller_check_item($this->unmarshal($this->db->f('ci_id'), 'int'));
-
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
'int'));
-
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id'),
'int'));
- $check_items_array[] = $check_item->toArray();
-
- $check_list_id = $check_list->get_id();
- }
-
- if($check_list != null)
- {
- $check_list->set_check_item_array($check_items_array);
- $check_list_array[] = $check_list->toArray();
-
- return $check_list_array;
- }
- else
- {
- return null;
- }
- }
-
- function get_check_list_for_control_by_date($control_id, $deadline_ts,
$status = null, $location_code, $location_id, $component_id, $type)
- {
- $sql = "SELECT * ";
- $sql .= "FROM controller_check_list ";
- $sql .= "WHERE control_id = {$control_id} ";
- $sql .= "AND deadline = {$deadline_ts}";
+ $this->db->query($sql);
+ $this->db->next_record();
- if($type == "location")
- {
- $sql .= "AND location_code = '{$location_code}' ";
- }
- else if($type == "component")
- {
- $sql .= "AND location_id = '{$location_id}' AND
component_id = '{$component_id}' ";
- }
-
- if($status != null)
- {
- $sql .= "AND status = {$status} ";
- }
+ $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
+ $check_list->set_control_id($this->unmarshal($this->db->f('control_id'),
'int'));
+ $check_list->set_status($this->unmarshal($this->db->f('cl_status'),
'int'));
+ $check_list->set_comment($this->unmarshal($this->db->f('cl_comment',
true), 'string'));
+ $check_list->set_deadline($this->unmarshal($this->db->f('deadline'),
'int'));
+
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
+
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
+
$check_list->set_location_code($this->unmarshal($this->db->f('location_code',
true), 'string'));
+
$check_list->set_component_id($this->unmarshal($this->db->f('component_id'),
'int'));
+ $check_list->set_location_id($this->unmarshal($this->db->f('location_id'),
'int'));
+
$check_list->set_num_open_cases($this->unmarshal($this->db->f('num_open_cases'),
'int'));
+
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
- $this->db->query($sql);
-
- $check_list = null;
- if( $this->db->next_record() )
- {
- $check_list = new
controller_check_list($this->unmarshal($this->db->f('id'), 'int'));
-
$check_list->set_status($this->unmarshal($this->db->f('status'), 'int'));
-
$check_list->set_comment($this->unmarshal($this->db->f('comment'), 'string'));
-
$check_list->set_deadline($this->unmarshal($this->db->f('deadline'), 'int'));
-
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
-
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
-
$check_list->set_component_id($this->unmarshal($this->db->f('component_id'),
'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'),
'int'));
-
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
- }
-
- return $check_list;
- }
-
- /**
- * Get check list objects for a control on a location with set planned
date
- *
- * @param $control_id control id
- * @param $location_code location code representing physical locations
- * @param $location_id location id representing logical system locations
- * @param $component_id component id: entity within logical location
- * @return array with check list objects
- */
- function get_planned_check_lists_for_control($control_id,
$location_code,$location_id, $component_id)
- {
- $control_id = (int) $control_id;
-
- $component_filter = ' AND component_id IS NULL ';
- if($component_id)
- {
- $location_id = (int)$location_id;
- $component_id = (int)$component_id;
- $component_filter = " AND component_id =
{$component_id} AND location_id = {$location_id} ";
- }
+ if ($check_list != null) {
+ return $check_list;
+ } else {
+ return null;
+ }
+ }
- $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 NOT cl.planned_date IS NULL ";
- $sql .= "AND cl.completed_date IS NULL ";
- $sql .= $component_filter;
- $sql .= "ORDER BY cl.id;";
+ /**
+ * Get check lists from database with related check items and control items
+ *
+ * @param $check_list_id check list id
+ * @param $status status OPEN/CLOSED
+ * @param $type control items registration type (Radiobuttons, Checklist,
textfield, just commentfield)
+ * @return returns a check list object
+ */
+ public function get_single_with_check_items($check_list_id, $status, $type) {
+ $check_list_id = (int) $check_list_id;
+ $sql = "SELECT cl.id as cl_id, cl.status as cl_status, cl.control_id,
cl.comment as cl_comment, deadline, planned_date, completed_date,
num_open_cases, location_code, num_pending_cases, ";
+ $sql .= "ci.id as ci_id, control_item_id, check_list_id, ";
+ $sql .= "coi.title as coi_title, coi.required as coi_required, ";
+ $sql .= "coi.what_to_do as coi_what_to_do, coi.how_to_do as coi_how_to_do,
coi.control_group_id as coi_control_group_id, coi.type ";
+ $sql .= "FROM controller_check_list cl ";
+ $sql .= "LEFT JOIN controller_check_item as ci ON cl.id = ci.check_list_id
";
+ $sql .= "LEFT JOIN controller_control_item as coi ON ci.control_item_id =
coi.id ";
+ $sql .= "WHERE cl.id = {$check_list_id} ";
- $this->db->query($sql);
-
- $check_list_id = 0;
- $check_list = null;
- while ($this->db->next_record())
- {
- if( $this->db->f('cl_id') != $check_list_id )
- {
- if($check_list_id)
- {
- $check_list_array[] = $check_list;
- }
- $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
-
$check_list->set_status($this->unmarshal($this->db->f('cl_status'), 'int'));
-
$check_list->set_comment($this->unmarshal($this->db->f('cl_comment'),
'string'));
-
$check_list->set_deadline($this->unmarshal($this->db->f('deadline'), 'int'));
-
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
-
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
-
$check_list->set_component_id($this->unmarshal($this->db->f('component_id'),
'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'),
'int'));
-
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
- }
- $check_list_id = $check_list->get_id();
- }
-
- if($check_list != null)
- {
- $check_list_array[] = $check_list;
- return $check_list_array;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get check list objects for a control on a location after specitied
date
- *
- * @param $control_id control id
- * @param $location_code location code
- * @return array with check list objects
- */
- function get_open_check_lists_for_control($control_id, $location_code,
$from_date)
- {
- $control_id = (int) $control_id;
+ if ($status == 'open') {
+ $sql .= "AND ci.status = 0 ";
+ } else if ($status == 'handled') {
+ $sql .= "AND ci.status = 1 ";
+ }
- $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;";
-
- $this->db->query($sql);
-
- $check_list_id = 0;
- $check_list = null;
- while ($this->db->next_record())
- {
-
- if( $this->db->f('cl_id') != $check_list_id )
- {
- if($check_list_id)
- {
- $check_list_array[] = $check_list;
- }
-
- $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
-
$check_list->set_status($this->unmarshal($this->db->f('cl_status'), 'int'));
-
$check_list->set_comment($this->unmarshal($this->db->f('cl_comment', true),
'string'));
-
$check_list->set_deadline($this->unmarshal($this->db->f('deadline'), 'int'));
-
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
-
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
-
$check_list->set_component_id($this->unmarshal($this->db->f('component_id'),
'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'),
'int'));
-
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
- }
- $check_list_id = $check_list->get_id();
- }
-
- if($check_list != null)
- {
- $check_list_array[] = $check_list;
- return $check_list_array;
- }
- else
- {
- return null;
- }
- }
-
- /**
- * Get array with control id and number of open cases within time period
- *
- * @param $cl_criteria check list criteria object
- * @param $from_date start time period
- * @param $to_date end time period
- * @return array with check list objects
- */
- function get_num_open_cases_for_control( $cl_criteria, $from_date_ts,
$to_date_ts )
- {
-
- $sql = "SELECT c.id as c_id, sum(cl.num_open_cases) as count ";
- $sql .= "FROM controller_check_list cl, controller_control c ";
-
- if($cl_criteria->get_component_id() > 0 &&
$cl_criteria->get_location_id() > 0)
- {
- $sql .= "WHERE cl.component_id =
{$cl_criteria->get_component_id()} ";
- $sql .= "AND cl.location_id =
{$cl_criteria->get_location_id()} ";
- }
- else
- {
- $sql .= "WHERE cl.location_code =
'{$cl_criteria->get_location_code()}' ";
- }
-
- $sql .= "AND c.id = {$cl_criteria->get_control_id()} ";
- $sql .= "AND cl.control_id = c.id ";
- $sql .= "AND cl.deadline >= $from_date_ts AND $to_date_ts >
cl.deadline ";
- $sql .= "GROUP BY c.id";
-
- $this->db->query($sql);
-
- if ($this->db->next_record() & $this->db->f('count') > 0)
- {
- $control_array = array
- (
- "id" =>
$this->unmarshal($this->db->f('c_id'), 'int'),
- "count" => $this->db->f('count')
- );
- }
-
- return $control_array;
- }
-
- /**
- * Get array with check lists for a location within time period and for
a specified repeat type
- *
- * @param $location_code location code
- * @param $from_date_ts start time period
- * @param $to_date_ts end time period
- * @param $repeat_type_expr repeat type expression
- * @return array with check list objects
- */
- function get_check_lists_for_location( $location_code, $from_date_ts,
$to_date_ts, $repeat_type_expr = null )
- {
- $sql = "SELECT c.id as c_id, ";
- $sql .= "cl.id as cl_id, cl.status as cl_status, cl.comment as
cl_comment, deadline, planned_date, completed_date, ";
- $sql .= "cl.component_id as cl_component_id, cl.location_code
as cl_location_code, num_open_cases, num_pending_cases ";
- $sql .= "FROM controller_control c ";
- $sql .= "LEFT JOIN controller_check_list cl on cl.control_id =
c.id ";
- $sql .= "WHERE cl.location_code = '{$location_code}' ";
-
- if( $repeat_type != null )
- {
- $sql .= "AND c.repeat_type $repeat_type_expr ";
- }
-
- $sql .= "AND deadline BETWEEN $from_date_ts AND $to_date_ts ";
- $sql .= "ORDER BY c.id;";
-
- $this->db->query($sql);
-
- $control_id = 0;
- $control = null;
- $controls_array = array();
- while ($this->db->next_record())
- {
- if( $this->db->f('c_id') != $control_id )
- {
- if($control_id)
- {
-
$control->set_check_lists_array($check_lists_array);
- $controls_array[] = $control;
- }
-
- $control = new
controller_control($this->unmarshal($this->db->f('c_id'), 'int'));
-
- $check_lists_array = array();
- }
+ if ($type != null) {
+ $sql .= "AND coi.type = '$type'";
+ }
- $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
-
$check_list->set_status($this->unmarshal($this->db->f('cl_status'), 'int'));
-
$check_list->set_comment($this->unmarshal($this->db->f('cl_comment', true),
'string'));
-
$check_list->set_deadline($this->unmarshal($this->db->f('deadline'), 'int'));
-
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
-
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
-
$check_list->set_component_id($this->unmarshal($this->db->f('cl_component_id'),
'int'));
-
$check_list->set_location_code($this->unmarshal($this->db->f('cl_location_code',
true), 'string'));
-
$check_list->set_num_open_cases($this->unmarshal($this->db->f('num_open_cases'),
'int'));
-
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
-
- $check_lists_array[] = $check_list;
+ $this->db->query($sql);
- $control_id = $control->get_id();
- }
-
- if($control != null)
- {
- $control->set_check_lists_array($check_lists_array);
- $controls_array[] = $control;
- }
-
- return $controls_array;
- }
-
- /**
- * Get array with check lists for a component within time period and
for a specified repeat type
- *
- * @param $location_code location code
- * @param $from_date_ts start time period
- * @param $to_date_ts end time period
- * @param $repeat_type_expr repeat type expression
- * @return array with check list objects
- */
- function get_check_lists_for_component( $location_id, $component_id,
$from_date_ts, $to_date_ts, $repeat_type_expr = null )
- {
- $location_id = (int) $location_id;
- $component_id = (int) $component_id;
+ $counter = 0;
+ $check_list = null;
+ while ($this->db->next_record()) {
+ if ($counter == 0) {
+ $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
+ $check_list->set_status($this->unmarshal($this->db->f('cl_status'),
'bool'));
+
$check_list->set_control_id($this->unmarshal($this->db->f('control_id'),
'int'));
+ $check_list->set_comment($this->unmarshal($this->db->f('cl_comment',
true), 'string'));
+ $check_list->set_deadline($this->unmarshal($this->db->f('deadline'),
'int'));
+
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
+
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'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'),
'int'));
+
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
+ }
- $sql = "SELECT c.id as c_id, ";
- $sql .= "cl.id as cl_id, cl.status as cl_status, cl.comment as
cl_comment, deadline, planned_date, completed_date, ";
- $sql .= "cl.component_id, cl.location_id, cl.location_code as
cl_location_code, num_open_cases, num_pending_cases ";
- $sql .= "FROM controller_control c ";
- $sql .= "LEFT JOIN controller_check_list cl on cl.control_id =
c.id ";
- $sql .= "WHERE cl.location_id = {$location_id} ";
- $sql .= "AND cl.component_id = {$component_id} ";
-
- if( $repeat_type != null )
- {
- $sql .= "AND c.repeat_type $repeat_type_expr ";
- }
-
- $sql .= "AND deadline BETWEEN $from_date_ts AND $to_date_ts ";
- $sql .= "ORDER BY c.id;";
-
- $this->db->query($sql);
-
- $control_id = 0;
- $control = null;
- $controls_array = array();
- while ($this->db->next_record())
- {
- if( $this->db->f('c_id') != $control_id )
- {
- if($control_id != 0)
- {
-
$control->set_check_lists_array($check_lists_array);
- $controls_array[] = $control;
- }
+ if ($this->db->f('ci_id')) {
+ $check_item = new
controller_check_item($this->unmarshal($this->db->f('ci_id'), 'int'));
+
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
'int'));
+
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id'),
'int'));
- $control = new
controller_control($this->unmarshal($this->db->f('c_id'), 'int'));
-
- $check_lists_array = array();
- }
+ $control_item = new
controller_control_item($this->unmarshal($this->db->f('coi_id'), 'int'));
+ $control_item->set_title($this->db->f('coi_title', true), 'string');
+ $control_item->set_required($this->db->f('coi_required', true),
'string');
+ $control_item->set_what_to_do($this->db->f('coi_what_to_do', true),
'string');
+ $control_item->set_how_to_do($this->db->f('coi_how_to_do', true),
'string');
+
$control_item->set_control_group_id($this->db->f('coi_control_group_id', true),
'string');
+ $control_item->set_type($this->db->f('type', true), 'string');
- $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
-
$check_list->set_status($this->unmarshal($this->db->f('cl_status'), 'int'));
-
$check_list->set_comment($this->unmarshal($this->db->f('cl_comment', true),
'string'));
-
$check_list->set_deadline($this->unmarshal($this->db->f('deadline'), 'int'));
-
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
-
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
-
$check_list->set_component_id($this->unmarshal($this->db->f('component_id'),
'int'));
-
$check_list->set_location_id($this->unmarshal($this->db->f('location_id'),
'int'));
-
$check_list->set_location_code($this->unmarshal($this->db->f('cl_location_code',
true), 'string'));
-
$check_list->set_num_open_cases($this->unmarshal($this->db->f('num_open_cases'),
'int'));
-
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
-
- $check_lists_array[] = $check_list;
+ $check_item->set_control_item($control_item->toArray());
+ $check_items_array[] = $check_item->toArray();
+ }
- $control_id = $control->get_id();
- }
-
- if($control != null)
- {
- $control->set_check_lists_array($check_lists_array);
- $controls_array[] = $control;
- }
-
- return $controls_array;
- }
-
- /**
- * Get array with check lists for a control on a location within time
period and for a specified repeat type
- *
- * @param $control_id control id
- * @param $location_code location code
- * @param $from_date_ts start time period
- * @param $to_date_ts end time period
- * @param $repeat_type_expr repeat type expression
- * @return array with check list objects
- */
- function get_check_lists_for_control_and_location( $control_id,
$location_code, $from_date_ts, $to_date_ts, $repeat_type = null )
- {
- $control_id = (int) $control_id;
+ $counter++;
+ }
- $sql = "SELECT cl.id as cl_id, cl.status as cl_status,
cl.comment as cl_comment, deadline, planned_date, completed_date, ";
- $sql .= "cl.component_id as cl_component_id, cl.location_code
as cl_location_code, num_open_cases, num_pending_cases ";
- $sql .= "FROM controller_check_list cl ";
- $sql .= "LEFT JOIN controller_control c on cl.control_id = c.id
";
- $sql .= "WHERE cl.control_id = {$control_id} ";
- $sql .= "AND cl.location_code = '{$location_code}' ";
-
- if( $repeat_type != null )
- {
- $sql .= "AND c.repeat_type = $repeat_type ";
- }
-
- $sql .= "AND deadline BETWEEN $from_date_ts AND $to_date_ts ";
-
- $this->db->query($sql);
-
- while ($this->db->next_record())
- {
- $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
-
$check_list->set_status($this->unmarshal($this->db->f('cl_status'), 'int'));
-
$check_list->set_comment($this->unmarshal($this->db->f('cl_comment', true),
'string'));
-
$check_list->set_deadline($this->unmarshal($this->db->f('deadline'), 'int'));
-
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
-
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
-
$check_list->set_component_id($this->unmarshal($this->db->f('cl_component_id'),
'int'));
-
$check_list->set_location_code($this->unmarshal($this->db->f('cl_location_code',
true), 'string'));
-
$check_list->set_num_open_cases($this->unmarshal($this->db->f('num_open_cases'),
'int'));
-
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
-
- $check_lists_array[] = $check_list;
- }
-
- return array( "location_code" => $location_code,
"check_lists_array" => $check_lists_array);
- }
-
- /**
- * Get array with check lists for a control on a component within time
period and for a specified repeat type
- *
- * @param $control_id control id
- * @param $location_code location code
- * @param $from_date_ts start time period
- * @param $to_date_ts end time period
- * @param $repeat_type_expr repeat type expression
- * @return array with check list objects
- */
- function get_check_lists_for_control_and_component( $control_id,
$location_id, $component_id, $from_date_ts, $to_date_ts, $repeat_type = null )
- {
- $control_id = (int) $control_id;
- $location_id = (int) $location_id;
- $component_id = (int) $component_id;
+ if ($check_list != null) {
+ $check_list->set_check_item_array($check_items_array);
+ return $check_list->toArray();
+ } else {
+ return null;
+ }
+ }
- $sql = "SELECT cl.id as cl_id, cl.status as cl_status,
cl.comment as cl_comment, deadline, planned_date, completed_date, ";
- $sql .= "cl.component_id as cl_component_id, cl.location_id as
cl_location_id, cl.location_code as cl_location_code, num_open_cases,
num_pending_cases ";
- $sql .= "FROM controller_check_list cl ";
- $sql .= "LEFT JOIN controller_control c on cl.control_id = c.id
";
- $sql .= "WHERE cl.control_id = {$control_id} ";
- $sql .= "AND cl.component_id = {$component_id} ";
- $sql .= "AND cl.location_id = {$location_id} ";
-
- if( $repeat_type != null )
- {
- $sql .= "AND c.repeat_type = $repeat_type ";
- }
-
- $sql .= "AND deadline BETWEEN $from_date_ts AND $to_date_ts ";
-
- $this->db->query($sql);
-
- while ($this->db->next_record())
- {
- $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
-
$check_list->set_status($this->unmarshal($this->db->f('cl_status'), 'int'));
-
$check_list->set_comment($this->unmarshal($this->db->f('cl_comment', true),
'string'));
-
$check_list->set_deadline($this->unmarshal($this->db->f('deadline'), 'int'));
-
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
-
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
-
$check_list->set_component_id($this->unmarshal($this->db->f('cl_component_id'),
'int'));
-
$check_list->set_location_id($this->unmarshal($this->db->f('cl_location_id'),
'int'));
-
$check_list->set_location_code($this->unmarshal($this->db->f('cl_location_code',
true), 'string'));
-
$check_list->set_num_open_cases($this->unmarshal($this->db->f('num_open_cases'),
'int'));
-
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
-
- $check_lists_array[] = $check_list;
- }
-
- return array( "location_code" => $location_code,
"check_lists_array" => $check_lists_array);
- }
-
-/* Denne ser det ikke ut til at vi bruker: Torstein 9/7-12
- function get_check_list_for_date($control_id, $current_date){
- $sql = "SELECT c.id as c_id, title, description, start_date,
end_date, control_area_id, c.location_code as c_location_code, repeat_type,
repeat_interval, ";
- $sql .= "cl.id as cl_id, cl.status as cl_status, cl.comment as
cl_comment, deadline, planned_date, completed_date, ";
- $sql .= "cl.component_id as cl_component_id, cl.location_code
as cl_location_code, num_open_cases, num_pending_cases ";
- $sql .= "FROM controller_control c ";
- $sql .= "LEFT JOIN controller_check_list cl on cl.control_id =
c.id ";
- $sql .= "WHERE c.id = {$control_id} ";
- $sql .= "AND NOT planned_date IS NULL ";
+ /**
+ * Get check list objects for a control
+ *
+ * @param $control_id
+ * @return array with check list objects
+ */
+ function get_check_lists_for_control($control_id) {
+ $control_id = (int) $control_id;
- $this->db->query($sql);
-
- $check_lists_array = array();
- while ($this->db->next_record()) {
- $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id', true), 'int'));
- $check_list->set_control_id($control_id);
-
$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('cl_component_id',
true), 'int'));
-
$check_list->set_location_code($this->unmarshal($this->db->f('cl_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_lists_array[] = $check_list;
- }
+ $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 .= "ci.id as ci_id, control_item_id, check_list_id ";
+ $sql .= "FROM controller_check_list cl, controller_check_item ci ";
+ $sql .= "WHERE cl.control_id = {$control_id} ";
+ $sql .= "AND cl.id = ci.check_list_id ";
+ $sql .= "ORDER BY cl.id;";
- return $check_lists_array;
- }
- */
-
- function get_query(string $sort_field, boolean $ascending, string
$search_for, string $search_type, array $filters, boolean $return_count)
- {
- $current_time = time();
- $buffer_in_days = 3600*24*7*5;
- $buffer_time = $current_time - $buffer_in_days;
+ $this->db->query($sql);
- $clauses = array('1=1');
- $clauses[] = "{$current_time} >= p.start_date AND p.start_date
> {$buffer_time}";
-
- $filter_clauses = array();
-
- // Search for based on search type
- if($search_for)
- {
- $search_for = $this->marshal($search_for,'field');
- $like_pattern = "'%".$search_for."%'";
- $like_clauses = array();
- switch($search_type)
- {
- default:
- $like_clauses[] = "p.title $this->like
$like_pattern";
- break;
- }
-
- if(count($like_clauses))
- {
- $clauses[] = '(' . join(' OR ', $like_clauses)
. ')';
- }
- }
-
- if(isset($filters[$this->get_id_field_name()]))
- {
- $filter_clauses[] = "p.id =
{$this->marshal($filters[$this->get_id_field_name()],'int')}";
- }
-
- if(count($filter_clauses))
- {
- $clauses[] = join(' AND ', $filter_clauses);
- }
-
- $condition = join(' AND ', $clauses);
+ $check_list_id = 0;
+ $check_list = null;
+ while ($this->db->next_record()) {
+ if ($this->db->f('cl_id') != $check_list_id) {
+ if ($check_list_id) {
+ $check_list->set_check_item_array($check_items_array);
+ $check_list_array[] = $check_list->toArray();
+ }
- $tables = "controller_control p";
-
- if($return_count)
- {
- $cols = 'COUNT(DISTINCT(p.id)) AS count';
- }
- else
- {
- $cols = 'p.* ';
- }
-
- $dir = $ascending ? 'ASC' : 'DESC';
- if($sort_field == 'id')
- {
- $sort_field = 'p.id';
- }
- $order = $sort_field ? "ORDER BY {$this->marshal($sort_field,
'field')} $dir ": '';
-
- return "SELECT {$cols} FROM {$tables} {$joins} WHERE
{$condition} {$order}";
- }
+ $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
+ $check_list->set_status($this->unmarshal($this->db->f('cl_status'),
'int'));
+ $check_list->set_comment($this->unmarshal($this->db->f('cl_comment',
true), 'string'));
+ $check_list->set_deadline($this->unmarshal($this->db->f('deadline'),
'int'));
+
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
+
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
+
$check_list->set_component_id($this->unmarshal($this->db->f('component_id'),
'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'),
'int'));
+
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
- function populate(int $control_id, &$control)
- {
- if($control == null)
- {
- $start_date = date("d.m.Y",
$this->db->f('start_date'));
- $end_date = date("d.m.Y", $this->db->f('end_date'));
- $control = new controller_control((int) $control_id);
+ $check_items_array = array();
+ }
-
$control->set_title($this->unmarshal($this->db->f('title', true), 'string'));
-
$control->set_description($this->unmarshal($this->db->f('description', true),
'string'));
- $control->set_start_date($start_date);
- $control->set_end_date($end_date);
-
$control->set_procedure_id($this->unmarshal($this->db->f('procedure_id'),
'int'));
-
$control->set_procedure_name($this->unmarshal($this->db->f('procedure_name',
true), 'string'));
-
$control->set_requirement_id($this->unmarshal($this->db->f('requirement_id'),
'int'));
-
$control->set_costresponsibility_id($this->unmarshal($this->db->f('costresponsibility_id'),
'int'));
-
$control->set_responsibility_id($this->unmarshal($this->db->f('responsibility_id'),
'int'));
-
$control->set_control_area_id($this->unmarshal($this->db->f('control_area_id'),
'int'));
-
$control->set_control_area_name($this->unmarshal($this->db->f('control_area_name',
true), 'string'));
-
$control->set_equipment_type_id($this->unmarshal($this->db->f('equipment_type_id'),
'int'));
-
$control->set_equipment_id($this->unmarshal($this->db->f('equipment_id'),
'int'));
-
$control->set_location_code($this->unmarshal($this->db->f('location_code',
true), 'string'));
-
$control->set_location_id($this->unmarshal($this->db->f('location_id'),
'string'));
-
$control->set_repeat_type($this->unmarshal($this->db->f('repeat_type'), 'int'));
-
$control->set_repeat_interval($this->unmarshal($this->db->f('repeat_interval'),
'int'));
- }
-
- return $control;
- }
-
- function add(&$check_list)
- {
- $cols = array(
- 'control_id',
- 'comment',
- 'deadline',
- 'planned_date',
- 'completed_date',
- 'component_id',
- 'location_code',
- 'num_open_cases',
- 'num_pending_cases',
- 'location_id',
- 'status'
- );
-
- $values = array(
- $this->marshal($check_list->get_control_id(), 'int'),
- $this->marshal($check_list->get_comment(), 'string'),
- $this->marshal($check_list->get_deadline(), 'int'),
- $this->marshal($check_list->get_planned_date(), 'int'),
- $this->marshal($check_list->get_completed_date(),
'int'),
- $this->marshal($check_list->get_component_id(), 'int'),
- $this->marshal($check_list->get_location_code(),
'string'),
- $this->marshal($check_list->get_num_open_cases(),
'int'),
- $this->marshal($check_list->get_num_pending_cases(),
'int'),
- $this->marshal($check_list->get_location_id(), 'int'),
- $check_list->get_status()
- );
-
- $result = $this->db->query('INSERT INTO controller_check_list
(' . join(',', $cols) . ') VALUES (' . join(',', $values) . ')',
__LINE__,__FILE__);
-
- return isset($result) ?
$this->db->get_last_insert_id('controller_check_list', 'id') : 0;
- }
-
- function update($check_list)
- {
- $id = intval($check_list->get_id());
+ $check_item = new
controller_check_item($this->unmarshal($this->db->f('ci_id'), 'int'));
+
$check_item->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
'int'));
+
$check_item->set_check_list_id($this->unmarshal($this->db->f('check_list_id'),
'int'));
+ $check_items_array[] = $check_item->toArray();
- $values = array(
- 'control_id = ' .
$this->marshal($check_list->get_control_id(), 'int'),
- 'status = ' . $check_list->get_status(),
- 'comment = ' .
$this->marshal($check_list->get_comment(), 'string'),
- 'deadline = ' .
$this->marshal($check_list->get_deadline(), 'int'),
- 'planned_date = ' .
$this->marshal($check_list->get_planned_date(), 'int'),
- 'completed_date = ' .
$this->marshal($check_list->get_completed_date(), 'int'),
- 'location_code = ' .
$this->marshal($check_list->get_location_code(), 'string'),
- 'component_id = ' .
$this->marshal($check_list->get_component_id(), 'int'),
- 'location_id = ' .
$this->marshal($check_list->get_location_id(), 'int'),
- 'num_open_cases = ' .
$this->marshal($check_list->get_num_open_cases(), 'int'),
- 'num_pending_cases = ' .
$this->marshal($check_list->get_num_pending_cases(), 'int')
- );
+ $check_list_id = $check_list->get_id();
+ }
- $result = $this->db->query('UPDATE controller_check_list SET '
. join(',', $values) . " WHERE id=$id", __LINE__,__FILE__);
+ if ($check_list != null) {
+ $check_list->set_check_item_array($check_items_array);
+ $check_list_array[] = $check_list->toArray();
- if($result)
- {
- return $id;
- }
- else
- {
- return 0;
- }
- }
-
- function get_id_field_name($extended_info = false)
- {
- if(!$extended_info)
- {
- $ret = 'id';
- }
- else
- {
- $ret = array
- (
- 'table' => 'control', // alias
- 'field' => 'id',
- 'translated' => 'id'
- );
- }
-
- return $ret;
- }
+ return $check_list_array;
+ } else {
+ return null;
+ }
+ }
+
+ function get_check_list_for_control_by_date($control_id, $deadline_ts,
$status = null, $location_code, $location_id, $component_id, $type) {
+ $sql = "SELECT * ";
+ $sql .= "FROM controller_check_list ";
+ $sql .= "WHERE control_id = {$control_id} ";
+ $sql .= "AND deadline = {$deadline_ts}";
+
+ if ($type == "location") {
+ $sql .= "AND location_code = '{$location_code}' ";
+ } else if ($type == "component") {
+ $sql .= "AND location_id = '{$location_id}' AND component_id =
'{$component_id}' ";
+ }
+
+ if ($status != null) {
+ $sql .= "AND status = {$status} ";
+ }
+
+ $this->db->query($sql);
+
+ $check_list = null;
+ if ($this->db->next_record()) {
+ $check_list = new
controller_check_list($this->unmarshal($this->db->f('id'), 'int'));
+ $check_list->set_status($this->unmarshal($this->db->f('status'), 'int'));
+ $check_list->set_comment($this->unmarshal($this->db->f('comment'),
'string'));
+ $check_list->set_deadline($this->unmarshal($this->db->f('deadline'),
'int'));
+
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
+
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
+
$check_list->set_component_id($this->unmarshal($this->db->f('component_id'),
'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'),
'int'));
+
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
+ }
+
+ return $check_list;
+ }
+
+ /**
+ * Get check list objects for a control on a location with set planned date
+ *
+ * @param $control_id control id
+ * @param $location_code location code representing physical locations
+ * @param $location_id location id representing logical system locations
+ * @param $component_id component id: entity within logical location
+ * @return array with check list objects
+ */
+ function get_planned_check_lists_for_control($control_id, $location_code,
$location_id, $component_id) {
+ $control_id = (int) $control_id;
+
+ $component_filter = ' AND component_id IS NULL ';
+ if ($component_id) {
+ $location_id = (int) $location_id;
+ $component_id = (int) $component_id;
+ $component_filter = " AND component_id = {$component_id} AND location_id
= {$location_id} ";
+ }
+
+ $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 NOT cl.planned_date IS NULL ";
+ $sql .= "AND cl.completed_date IS NULL ";
+ $sql .= $component_filter;
+ $sql .= "ORDER BY cl.id;";
+
+ $this->db->query($sql);
+
+ $check_list_id = 0;
+ $check_list = null;
+ while ($this->db->next_record()) {
+ if ($this->db->f('cl_id') != $check_list_id) {
+ if ($check_list_id) {
+ $check_list_array[] = $check_list;
+ }
+ $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
+ $check_list->set_status($this->unmarshal($this->db->f('cl_status'),
'int'));
+ $check_list->set_comment($this->unmarshal($this->db->f('cl_comment'),
'string'));
+ $check_list->set_deadline($this->unmarshal($this->db->f('deadline'),
'int'));
+
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
+
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
+
$check_list->set_component_id($this->unmarshal($this->db->f('component_id'),
'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'),
'int'));
+
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
+ }
+ $check_list_id = $check_list->get_id();
+ }
+
+ if ($check_list != null) {
+ $check_list_array[] = $check_list;
+ return $check_list_array;
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Get check list objects for a control on a location after specitied date
+ *
+ * @param $control_id control id
+ * @param $location_code location code
+ * @return array with check list objects
+ */
+ function get_open_check_lists_for_control($control_id, $location_code,
$from_date) {
+ $control_id = (int) $control_id;
+
+ $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;";
+
+ $this->db->query($sql);
+
+ $check_list_id = 0;
+ $check_list = null;
+ while ($this->db->next_record()) {
+
+ if ($this->db->f('cl_id') != $check_list_id) {
+ if ($check_list_id) {
+ $check_list_array[] = $check_list;
+ }
+
+ $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
+ $check_list->set_status($this->unmarshal($this->db->f('cl_status'),
'int'));
+ $check_list->set_comment($this->unmarshal($this->db->f('cl_comment',
true), 'string'));
+ $check_list->set_deadline($this->unmarshal($this->db->f('deadline'),
'int'));
+
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
+
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
+
$check_list->set_component_id($this->unmarshal($this->db->f('component_id'),
'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'),
'int'));
+
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
+ }
+ $check_list_id = $check_list->get_id();
+ }
+
+ if ($check_list != null) {
+ $check_list_array[] = $check_list;
+ return $check_list_array;
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Get array with control id and number of open cases within time period
+ *
+ * @param $cl_criteria check list criteria object
+ * @param $from_date start time period
+ * @param $to_date end time period
+ * @return array with check list objects
+ */
+ function get_num_open_cases_for_control($cl_criteria, $from_date_ts,
$to_date_ts) {
+
+ $sql = "SELECT c.id as c_id, sum(cl.num_open_cases) as count ";
+ $sql .= "FROM controller_check_list cl, controller_control c ";
+
+ if ($cl_criteria->get_component_id() > 0 &&
$cl_criteria->get_location_id() > 0) {
+ $sql .= "WHERE cl.component_id = {$cl_criteria->get_component_id()} ";
+ $sql .= "AND cl.location_id = {$cl_criteria->get_location_id()} ";
+ } else {
+ $sql .= "WHERE cl.location_code = '{$cl_criteria->get_location_code()}'
";
+ }
+
+ $sql .= "AND c.id = {$cl_criteria->get_control_id()} ";
+ $sql .= "AND cl.control_id = c.id ";
+ $sql .= "AND cl.deadline >= $from_date_ts AND $to_date_ts > cl.deadline ";
+ $sql .= "GROUP BY c.id";
+
+ $this->db->query($sql);
+
+ if ($this->db->next_record() & $this->db->f('count') > 0) {
+ $control_array = array
+ (
+ "id" => $this->unmarshal($this->db->f('c_id'), 'int'),
+ "count" => $this->db->f('count')
+ );
+ }
+
+ return $control_array;
+ }
+
+ /**
+ * Get array with check lists for a location within time period and for a
specified repeat type
+ *
+ * @param $location_code location code
+ * @param $from_date_ts start time period
+ * @param $to_date_ts end time period
+ * @param $repeat_type_expr repeat type expression
+ * @return array with check list objects
+ */
+ function get_check_lists_for_location($location_code, $from_date_ts,
$to_date_ts, $repeat_type_expr = null) {
+ $sql = "SELECT c.id as c_id, ";
+ $sql .= "cl.id as cl_id, cl.status as cl_status, cl.comment as cl_comment,
deadline, planned_date, completed_date, ";
+ $sql .= "cl.component_id as cl_component_id, cl.location_code as
cl_location_code, num_open_cases, num_pending_cases ";
+ $sql .= "FROM controller_control c ";
+ $sql .= "LEFT JOIN controller_check_list cl on cl.control_id = c.id ";
+ $sql .= "WHERE cl.location_code = '{$location_code}' ";
+
+ if ($repeat_type != null) {
+ $sql .= "AND c.repeat_type $repeat_type_expr ";
+ }
+
+ $sql .= "AND deadline BETWEEN $from_date_ts AND $to_date_ts ";
+ $sql .= "ORDER BY c.id;";
+
+ $this->db->query($sql);
+
+ $control_id = 0;
+ $control = null;
+ $controls_array = array();
+ while ($this->db->next_record()) {
+ if ($this->db->f('c_id') != $control_id) {
+ if ($control_id) {
+ $control->set_check_lists_array($check_lists_array);
+ $controls_array[] = $control;
+ }
+
+ $control = new
controller_control($this->unmarshal($this->db->f('c_id'), 'int'));
+
+ $check_lists_array = array();
+ }
+
+ $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
+ $check_list->set_status($this->unmarshal($this->db->f('cl_status'),
'int'));
+ $check_list->set_comment($this->unmarshal($this->db->f('cl_comment',
true), 'string'));
+ $check_list->set_deadline($this->unmarshal($this->db->f('deadline'),
'int'));
+
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
+
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
+
$check_list->set_component_id($this->unmarshal($this->db->f('cl_component_id'),
'int'));
+
$check_list->set_location_code($this->unmarshal($this->db->f('cl_location_code',
true), 'string'));
+
$check_list->set_num_open_cases($this->unmarshal($this->db->f('num_open_cases'),
'int'));
+
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
+
+ $check_lists_array[] = $check_list;
+
+ $control_id = $control->get_id();
+ }
+
+ if ($control != null) {
+ $control->set_check_lists_array($check_lists_array);
+ $controls_array[] = $control;
+ }
+
+ return $controls_array;
+ }
+
+ /**
+ * Get array with check lists for a component within time period and for a
specified repeat type
+ *
+ * @param $location_code location code
+ * @param $from_date_ts start time period
+ * @param $to_date_ts end time period
+ * @param $repeat_type_expr repeat type expression
+ * @return array with check list objects
+ */
+ function get_check_lists_for_component($location_id, $component_id,
$from_date_ts, $to_date_ts, $repeat_type_expr = null) {
+ $location_id = (int) $location_id;
+ $component_id = (int) $component_id;
+
+ $sql = "SELECT c.id as c_id, ";
+ $sql .= "cl.id as cl_id, cl.status as cl_status, cl.comment as cl_comment,
deadline, planned_date, completed_date, ";
+ $sql .= "cl.component_id, cl.location_id, cl.location_code as
cl_location_code, num_open_cases, num_pending_cases ";
+ $sql .= "FROM controller_control c ";
+ $sql .= "LEFT JOIN controller_check_list cl on cl.control_id = c.id ";
+ $sql .= "WHERE cl.location_id = {$location_id} ";
+ $sql .= "AND cl.component_id = {$component_id} ";
+
+ if ($repeat_type != null) {
+ $sql .= "AND c.repeat_type $repeat_type_expr ";
+ }
+
+ $sql .= "AND deadline BETWEEN $from_date_ts AND $to_date_ts ";
+ $sql .= "ORDER BY c.id;";
+
+ $this->db->query($sql);
+
+ $control_id = 0;
+ $control = null;
+ $controls_array = array();
+ while ($this->db->next_record()) {
+ if ($this->db->f('c_id') != $control_id) {
+ if ($control_id != 0) {
+ $control->set_check_lists_array($check_lists_array);
+ $controls_array[] = $control;
+ }
+
+ $control = new
controller_control($this->unmarshal($this->db->f('c_id'), 'int'));
+
+ $check_lists_array = array();
+ }
+
+ $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
+ $check_list->set_status($this->unmarshal($this->db->f('cl_status'),
'int'));
+ $check_list->set_comment($this->unmarshal($this->db->f('cl_comment',
true), 'string'));
+ $check_list->set_deadline($this->unmarshal($this->db->f('deadline'),
'int'));
+
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
+
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
+
$check_list->set_component_id($this->unmarshal($this->db->f('component_id'),
'int'));
+
$check_list->set_location_id($this->unmarshal($this->db->f('location_id'),
'int'));
+
$check_list->set_location_code($this->unmarshal($this->db->f('cl_location_code',
true), 'string'));
+
$check_list->set_num_open_cases($this->unmarshal($this->db->f('num_open_cases'),
'int'));
+
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
+
+ $check_lists_array[] = $check_list;
+
+ $control_id = $control->get_id();
+ }
+
+ if ($control != null) {
+ $control->set_check_lists_array($check_lists_array);
+ $controls_array[] = $control;
+ }
+
+ return $controls_array;
+ }
+
+ /**
+ * Get array with check lists for a control on a location within time period
and for a specified repeat type
+ *
+ * @param $control_id control id
+ * @param $location_code location code
+ * @param $from_date_ts start time period
+ * @param $to_date_ts end time period
+ * @param $repeat_type_expr repeat type expression
+ * @return array with check list objects
+ */
+ function get_check_lists_for_control_and_location($control_id,
$location_code, $from_date_ts, $to_date_ts, $repeat_type = null) {
+ $control_id = (int) $control_id;
+
+ $sql = "SELECT cl.id as cl_id, cl.status as cl_status, cl.comment as
cl_comment, deadline, planned_date, completed_date, ";
+ $sql .= "cl.component_id as cl_component_id, cl.location_code as
cl_location_code, num_open_cases, num_pending_cases ";
+ $sql .= "FROM controller_check_list cl ";
+ $sql .= "LEFT JOIN controller_control c on cl.control_id = c.id ";
+ $sql .= "WHERE cl.control_id = {$control_id} ";
+ $sql .= "AND cl.location_code = '{$location_code}' ";
+
+ if ($repeat_type != null) {
+ $sql .= "AND c.repeat_type = $repeat_type ";
+ }
+
+ $sql .= "AND deadline BETWEEN $from_date_ts AND $to_date_ts ";
+
+ $this->db->query($sql);
+
+ while ($this->db->next_record()) {
+ $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
+ $check_list->set_status($this->unmarshal($this->db->f('cl_status'),
'int'));
+ $check_list->set_comment($this->unmarshal($this->db->f('cl_comment',
true), 'string'));
+ $check_list->set_deadline($this->unmarshal($this->db->f('deadline'),
'int'));
+
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
+
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
+
$check_list->set_component_id($this->unmarshal($this->db->f('cl_component_id'),
'int'));
+
$check_list->set_location_code($this->unmarshal($this->db->f('cl_location_code',
true), 'string'));
+
$check_list->set_num_open_cases($this->unmarshal($this->db->f('num_open_cases'),
'int'));
+
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
+
+ $check_lists_array[] = $check_list;
+ }
+
+ return array("location_code" => $location_code, "check_lists_array" =>
$check_lists_array);
+ }
+
+ /**
+ * Get array with check lists for a control on a component within time
period and for a specified repeat type
+ *
+ * @param $control_id control id
+ * @param $location_code location code
+ * @param $from_date_ts start time period
+ * @param $to_date_ts end time period
+ * @param $repeat_type_expr repeat type expression
+ * @return array with check list objects
+ */
+ function get_check_lists_for_control_and_component($control_id,
$location_id, $component_id, $from_date_ts, $to_date_ts, $repeat_type = null) {
+ $control_id = (int) $control_id;
+ $location_id = (int) $location_id;
+ $component_id = (int) $component_id;
+
+ $sql = "SELECT cl.id as cl_id, cl.status as cl_status, cl.comment as
cl_comment, deadline, planned_date, completed_date, ";
+ $sql .= "cl.component_id as cl_component_id, cl.location_id as
cl_location_id, cl.location_code as cl_location_code, num_open_cases,
num_pending_cases ";
+ $sql .= "FROM controller_check_list cl ";
+ $sql .= "LEFT JOIN controller_control c on cl.control_id = c.id ";
+ $sql .= "WHERE cl.control_id = {$control_id} ";
+ $sql .= "AND cl.component_id = {$component_id} ";
+ $sql .= "AND cl.location_id = {$location_id} ";
+
+ if ($repeat_type != null) {
+ $sql .= "AND c.repeat_type = $repeat_type ";
+ }
+
+ $sql .= "AND deadline BETWEEN $from_date_ts AND $to_date_ts ";
+
+ $this->db->query($sql);
+
+ while ($this->db->next_record()) {
+ $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id'), 'int'));
+ $check_list->set_status($this->unmarshal($this->db->f('cl_status'),
'int'));
+ $check_list->set_comment($this->unmarshal($this->db->f('cl_comment',
true), 'string'));
+ $check_list->set_deadline($this->unmarshal($this->db->f('deadline'),
'int'));
+
$check_list->set_planned_date($this->unmarshal($this->db->f('planned_date'),
'int'));
+
$check_list->set_completed_date($this->unmarshal($this->db->f('completed_date'),
'int'));
+
$check_list->set_component_id($this->unmarshal($this->db->f('cl_component_id'),
'int'));
+
$check_list->set_location_id($this->unmarshal($this->db->f('cl_location_id'),
'int'));
+
$check_list->set_location_code($this->unmarshal($this->db->f('cl_location_code',
true), 'string'));
+
$check_list->set_num_open_cases($this->unmarshal($this->db->f('num_open_cases'),
'int'));
+
$check_list->set_num_pending_cases($this->unmarshal($this->db->f('num_pending_cases'),
'int'));
+
+ $check_lists_array[] = $check_list;
+ }
+
+ return array("location_code" => $location_code, "check_lists_array" =>
$check_lists_array);
+ }
+
+ /* Denne ser det ikke ut til at vi bruker: Torstein 9/7-12
+ function get_check_list_for_date($control_id, $current_date){
+ $sql = "SELECT c.id as c_id, title, description, start_date, end_date,
control_area_id, c.location_code as c_location_code, repeat_type,
repeat_interval, ";
+ $sql .= "cl.id as cl_id, cl.status as cl_status, cl.comment as cl_comment,
deadline, planned_date, completed_date, ";
+ $sql .= "cl.component_id as cl_component_id, cl.location_code as
cl_location_code, num_open_cases, num_pending_cases ";
+ $sql .= "FROM controller_control c ";
+ $sql .= "LEFT JOIN controller_check_list cl on cl.control_id = c.id ";
+ $sql .= "WHERE c.id = {$control_id} ";
+ $sql .= "AND NOT planned_date IS NULL ";
+
+ $this->db->query($sql);
+
+ $check_lists_array = array();
+ while ($this->db->next_record()) {
+ $check_list = new
controller_check_list($this->unmarshal($this->db->f('cl_id', true), 'int'));
+ $check_list->set_control_id($control_id);
+ $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('cl_component_id',
true), 'int'));
+
$check_list->set_location_code($this->unmarshal($this->db->f('cl_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_lists_array[] = $check_list;
+ }
+
+ return $check_lists_array;
+ }
+ */
+
+ function get_query(string $sort_field, boolean $ascending, string
$search_for, string $search_type, array $filters, boolean $return_count) {
+ $current_time = time();
+ $buffer_in_days = 3600 * 24 * 7 * 5;
+ $buffer_time = $current_time - $buffer_in_days;
+
+ $clauses = array('1=1');
+ $clauses[] = "{$current_time} >= p.start_date AND p.start_date >
{$buffer_time}";
+
+ $filter_clauses = array();
+
+ // Search for based on search type
+ if ($search_for) {
+ $search_for = $this->marshal($search_for, 'field');
+ $like_pattern = "'%" . $search_for . "%'";
+ $like_clauses = array();
+ switch ($search_type) {
+ default:
+ $like_clauses[] = "p.title $this->like $like_pattern";
+ break;
+ }
+
+ if (count($like_clauses)) {
+ $clauses[] = '(' . join(' OR ', $like_clauses) . ')';
+ }
+ }
+
+ if (isset($filters[$this->get_id_field_name()])) {
+ $filter_clauses[] = "p.id =
{$this->marshal($filters[$this->get_id_field_name()], 'int')}";
+ }
+
+ if (count($filter_clauses)) {
+ $clauses[] = join(' AND ', $filter_clauses);
+ }
+
+ $condition = join(' AND ', $clauses);
+
+ $tables = "controller_control p";
+
+ if ($return_count) {
+ $cols = 'COUNT(DISTINCT(p.id)) AS count';
+ } else {
+ $cols = 'p.* ';
+ }
+
+ $dir = $ascending ? 'ASC' : 'DESC';
+ if ($sort_field == 'id') {
+ $sort_field = 'p.id';
+ }
+ $order = $sort_field ? "ORDER BY {$this->marshal($sort_field, 'field')}
$dir " : '';
+
+ return "SELECT {$cols} FROM {$tables} {$joins} WHERE {$condition}
{$order}";
+ }
+
+ function populate(int $control_id, &$control) {
+ if ($control == null) {
+ $start_date = date("d.m.Y", $this->db->f('start_date'));
+ $end_date = date("d.m.Y", $this->db->f('end_date'));
+ $control = new controller_control((int) $control_id);
+
+ $control->set_title($this->unmarshal($this->db->f('title', true),
'string'));
+ $control->set_description($this->unmarshal($this->db->f('description',
true), 'string'));
+ $control->set_start_date($start_date);
+ $control->set_end_date($end_date);
+
$control->set_procedure_id($this->unmarshal($this->db->f('procedure_id'),
'int'));
+
$control->set_procedure_name($this->unmarshal($this->db->f('procedure_name',
true), 'string'));
+
$control->set_requirement_id($this->unmarshal($this->db->f('requirement_id'),
'int'));
+
$control->set_costresponsibility_id($this->unmarshal($this->db->f('costresponsibility_id'),
'int'));
+
$control->set_responsibility_id($this->unmarshal($this->db->f('responsibility_id'),
'int'));
+
$control->set_control_area_id($this->unmarshal($this->db->f('control_area_id'),
'int'));
+
$control->set_control_area_name($this->unmarshal($this->db->f('control_area_name',
true), 'string'));
+
$control->set_equipment_type_id($this->unmarshal($this->db->f('equipment_type_id'),
'int'));
+
$control->set_equipment_id($this->unmarshal($this->db->f('equipment_id'),
'int'));
+
$control->set_location_code($this->unmarshal($this->db->f('location_code',
true), 'string'));
+ $control->set_location_id($this->unmarshal($this->db->f('location_id'),
'string'));
+ $control->set_repeat_type($this->unmarshal($this->db->f('repeat_type'),
'int'));
+
$control->set_repeat_interval($this->unmarshal($this->db->f('repeat_interval'),
'int'));
+ }
+
+ return $control;
+ }
+
+ function add(&$check_list) {
+ $cols = array(
+ 'control_id',
+ 'comment',
+ 'deadline',
+ 'planned_date',
+ 'completed_date',
+ 'component_id',
@@ Diff output truncated at 153600 characters. @@
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [9945],
Torstein <=