fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [7943] added control_area_id to procedure


From: Erik Holm-Larsen
Subject: [Fmsystem-commits] [7943] added control_area_id to procedure
Date: Wed, 26 Oct 2011 07:49:41 +0000

Revision: 7943
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=7943
Author:   erikhl
Date:     2011-10-26 07:49:40 +0000 (Wed, 26 Oct 2011)
Log Message:
-----------
added control_area_id to procedure

Modified Paths:
--------------
    trunk/controller/inc/class.soprocedure.inc.php
    trunk/controller/inc/class.uiprocedure.inc.php
    trunk/controller/inc/model/class.procedure.inc.php
    trunk/controller/templates/base/procedure_item.xsl

Modified: trunk/controller/inc/class.soprocedure.inc.php
===================================================================
--- trunk/controller/inc/class.soprocedure.inc.php      2011-10-26 07:34:08 UTC 
(rev 7942)
+++ trunk/controller/inc/class.soprocedure.inc.php      2011-10-26 07:49:40 UTC 
(rev 7943)
@@ -39,7 +39,8 @@
                                'end_date',
                                'procedure_id',
                                'revision_no',
-                               'revision_date'
+                               'revision_date',
+                               'control_area_id'
                );
                        
                $values = array(
@@ -53,7 +54,8 @@
                        $this->marshal($procedure->get_end_date(), 'int'),
                        $this->marshal($procedure->get_procedure_id(), 'int'),
                        $this->marshal($procedure->get_revision_no(), 'int'),
-                       $this->marshal($procedure->get_revision_date(), 'int')
+                       $this->marshal($procedure->get_revision_date(), 'int'),
+                       $this->marshal($procedure->get_control_area_id(), 'int')
                );
                
                $result = $this->db->query('INSERT INTO controller_procedure (' 
. join(',', $cols) . ') VALUES (' . join(',', $values) . ')', 
__LINE__,__FILE__);
@@ -91,7 +93,8 @@
                        'end_date = ' . 
$this->marshal($procedure->get_end_date(), 'int'),
                        'procedure_id = ' . 
$this->marshal($procedure->get_procedure_id(), 'int'),
                        'revision_no = ' . 
$this->marshal($procedure->get_revision_no(), 'int'),
-                       'revision_date = ' . 
$this->marshal($procedure->get_revision_date(), 'int')
+                       'revision_date = ' . 
$this->marshal($procedure->get_revision_date(), 'int'),
+                       'control_area_id = ' . 
$this->marshal($procedure->get_control_area_id(), 'int')
                );
                
                $result = $this->db->query('UPDATE controller_procedure SET ' . 
join(',', $values) . " WHERE id=$id", __LINE__,__FILE__);
@@ -109,7 +112,8 @@
        {
                $id = (int)$id;
                
-               $sql = "SELECT p.* FROM controller_procedure p WHERE p.id = " . 
$id;
+               $joins = " {$this->left_join} controller_control_area ON 
(p.control_area_id = controller_control_area.id)";
+               $sql = "SELECT p.*, controller_control_area.title AS 
control_area_name FROM controller_procedure p {$joins} WHERE p.id = " . $id;
                $this->db->limit_query($sql, 0, __LINE__, __FILE__, 1);
                $this->db->next_record();
                
@@ -125,6 +129,8 @@
                
$procedure->set_procedure_id($this->unmarshal($this->db->f('procedure_id'), 
'int'));
                
$procedure->set_revision_no($this->unmarshal($this->db->f('revision_no'), 
'int'));
                
$procedure->set_revision_date($this->unmarshal($this->db->f('revision_date'), 
'int'));
+               
$procedure->set_control_area_id($this->unmarshal($this->db->f('control_aera_id',
 'int')));
+               
$procedure->set_control_area_name($this->unmarshal($this->db->f('control_area_name',
 'string')));
                
                return $procedure;
        }
@@ -195,7 +201,9 @@
        {
                $results = array();
                
-               $sql = "SELECT * FROM controller_procedure WHERE procedure_id = 
{$id} ORDER BY end_date DESC";
+               $joins = " {$this->left_join} controller_control_area ON 
(p.control_area_id = controller_control_area.id)";
+               
+               $sql = "SELECT p.*, controller_control_area.title AS 
control_area_name FROM controller_procedure p {$joins} WHERE procedure_id = 
{$id} ORDER BY end_date DESC";
                $this->db->limit_query($sql, $start, __LINE__, __FILE__, 
$limit);
                
                while ($this->db->next_record()) {
@@ -211,6 +219,8 @@
                        
$procedure->set_procedure_id($this->unmarshal($this->db->f('procedure_id'), 
'int'));
                        
$procedure->set_revision_no($this->unmarshal($this->db->f('revision_no'), 
'int'));
                        
$procedure->set_revision_date(date($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'],
 $this->unmarshal($this->db->f('revision_date'), 'int')));
+                       
$procedure->set_control_area_id($this->unmarshal($this->db->f('control_area_id'),
 'int'));
+                       
$procedure->set_control_area_name($this->unmarshal($this->db->f('control_area_name'),
 'string'));
                        
                        $results[] = $procedure->toArray();;
                }
@@ -273,6 +283,10 @@
                {
                        $filter_clauses[] = "controller_procedure.id = 
{$this->marshal($filters[$this->get_id_field_name()],'int')}";
                }
+               if(isset($filters['control_areas']))
+               {
+                       $filter_clauses[] = 
"controller_procedure.control_area_id = 
{$this->marshal($filters['control_areas'], 'int')}";
+               }
 
                if(count($filter_clauses))
                {
@@ -280,6 +294,8 @@
                }
 
                $condition =  join(' AND ', $clauses);
+               
+               $joins = " {$this->left_join} controller_control_area ON 
(controller_procedure.control_area_id = controller_control_area.id)";
 
                $tables = "controller_procedure";
                
@@ -316,6 +332,8 @@
                        
$procedure->set_procedure_id($this->unmarshal($this->db->f('procedure_id'), 
'int'));
                        
$procedure->set_revision_no($this->unmarshal($this->db->f('revision_no'), 
'int'));
                        
$procedure->set_revision_date($this->unmarshal($this->db->f('revision_date'), 
'int'));
+                       
$procedure->set_control_area_id($this->unmarshal($this->db->f('control_aera_id',
 'int')));
+                       
$procedure->set_control_area_name($this->unmarshal($this->db->f('control_area_name',
 'string')));
                }
                
                return $procedure;

Modified: trunk/controller/inc/class.uiprocedure.inc.php
===================================================================
--- trunk/controller/inc/class.uiprocedure.inc.php      2011-10-26 07:34:08 UTC 
(rev 7942)
+++ trunk/controller/inc/class.uiprocedure.inc.php      2011-10-26 07:49:40 UTC 
(rev 7943)
@@ -1,12 +1,14 @@
 <?php
        phpgw::import_class('controller.uicommon');
        phpgw::import_class('controller.soprocedure');
+       phpgw::import_class('controller.socontrol_area');
        
        include_class('controller', 'procedure', 'inc/model/');
 
        class controller_uiprocedure extends controller_uicommon
        {
                private $so;
+               private $so_control_area;
                
                public $public_functions = array
                (
@@ -22,6 +24,7 @@
                        parent::__construct();
 
                        $this->so = CreateObject('controller.soprocedure');
+                       $this->so_control_area = 
CreateObject('controller.socontrol_area');
                        $GLOBALS['phpgw_info']['flags']['menu_selection'] = 
"controller::procedure";
                        //$this->bo = CreateObject('property.boevent',true);
                }
@@ -45,6 +48,11 @@
                                                                'value' => 
lang('f_new_procedure'),
                                                                'href' => 
self::link(array('menuaction' => 'controller.uiprocedure.add'))
                                                        ),
+                                                       array('type' => 
'filter',
+                                                               'name' => 
'control_areas',
+                                'text' => lang('Control_area').':',
+                                'list' => 
$this->so_control_area->get_control_area_select_array(),
+                                                       ),
                                                        array('type' => 'text', 
                                 'text' => lang('search'),
                                                                'name' => 
'query'
@@ -77,6 +85,11 @@
                                                        'sortable'      => false
                                                ),
                                                array(
+                                                       'key' => 'control_area',
+                                                       'label' => 
lang('Control area'),
+                                                       'sortable'      => false
+                                               ),
+                                               array(
                                                        'key' => 
'revision_date',
                                                        'label' => 
lang('Procedure revision date'),
                                                        'sortable'      => true
@@ -119,6 +132,7 @@
                                        
$procedure->set_start_date(strtotime(phpgw::get_var('start_date_hidden')));
                                        
$procedure->set_end_date(strtotime(phpgw::get_var('end_date_hidden')));
                                        
$procedure->set_revision_date(strtotime(phpgw::get_var('revision_date_hidden')));
+                                       
$procedure->set_control_area_id(phpgw::get_var('control_area'));
                                        
                                        if(isset($procedure_id) && 
$procedure_id > 0)
                                        {
@@ -170,6 +184,7 @@
                                        
$procedure->set_attachment(phpgw::get_var('attachment'));
                                        
$procedure->set_start_date(strtotime(phpgw::get_var('start_date_hidden')));
                                        
$procedure->set_end_date(strtotime(phpgw::get_var('end_date_hidden')));
+                                       
$procedure->set_control_area_id(phpgw::get_var('control_area'));
                                        
                                        if(isset($procedure_id) && 
$procedure_id > 0)
                                        {
@@ -211,7 +226,27 @@
                                        $msgbox_data = 
$GLOBALS['phpgw']->common->msgbox_data($this->flash_msgs);
                                        $msgbox_data = 
$GLOBALS['phpgw']->common->msgbox($msgbox_data);
                                }
-                               
+                               $control_area_array = 
$this->so_control_area->get_control_area_array();
+                               foreach ($control_area_array as $control_area)
+                               {
+                                       if($procedure->get_control_area_id() && 
$control_area->get_id() == $procedure->get_control_area_id())
+                                       {
+                                               $control_area_options[] = array
+                                               (
+                                                       'id'    => 
$control_area->get_id(),
+                                                       'name'  => 
$control_area->get_title(),
+                                                       'selected' => 'yes'
+                                               );
+                                       }
+                                       else
+                                       {
+                                               $control_area_options[] = array
+                                               (
+                                                       'id'    => 
$control_area->get_id(),
+                                                       'name'  => 
$control_area->get_title()
+                                               );
+                                       }
+                               }
                                $procedure_array = $procedure->toArray();
                                //_debug_array($procedure_array);
        
@@ -224,6 +259,7 @@
                                        'img_go_home'                   => 
'rental/templates/base/images/32x32/actions/go-home.png',
                                        'editable'                              
=> true,
                                        'procedure'                             
=> $procedure_array,
+                                       'control_area'                          
=> array('options' => $control_area_options),
                                );
        
        
@@ -342,6 +378,12 @@
                                'filters' => $filters
                        );
                        
+                       $ctrl_area = phpgw::get_var('control_areas');
+                       if(isset($ctrl_area) && $ctrl_area > 0)
+                       {
+                               $filters['control_areas'] = $ctrl_area; 
+                       }
+                       
                        
if($GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'] > 0)
                        {
                                $user_rows_per_page = 
$GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'];
@@ -377,7 +419,7 @@
                        {
                                default: // ... all composites, filters (active 
and vacant)
                                        
phpgwapi_cache::session_set('controller', 'procedure_query', $search_for);
-                                       $filters = array();
+                                       //$filters = array();
                                        $result_objects = 
$this->so->get($start_index, $num_of_objects, $sort_field, $sort_ascending, 
$search_for, $search_type, $filters);
                                        $object_count = 
$this->so->get_count($search_for, $search_type, $filters);
                                        break;

Modified: trunk/controller/inc/model/class.procedure.inc.php
===================================================================
--- trunk/controller/inc/model/class.procedure.inc.php  2011-10-26 07:34:08 UTC 
(rev 7942)
+++ trunk/controller/inc/model/class.procedure.inc.php  2011-10-26 07:49:40 UTC 
(rev 7943)
@@ -17,6 +17,8 @@
                protected $procedure_id;
                protected $revision_no;
                protected $revision_date;
+               protected $control_area_id;
+               protected $control_area_name;
                
                /**
                 * Constructor.  Takes an optional ID.  If a procedure is 
created from outside
@@ -113,6 +115,20 @@
                
                public function get_revision_date() { return 
$this->revision_date; }
                
+               public function set_control_area_id($control_area_id)
+               {
+                       $this->control_area_id = $control_area_id;
+               }
+               
+               public function get_control_area_id() { return 
$this->control_area_id; }
+               
+               public function set_control_area_name($control_area_name)
+               {
+                       $this->control_area_name = $control_area_name;
+               }
+               
+               public function get_control_area_name() { return 
$this->control_area_name; }
+               
                /**
                 * Get a static reference to the storage object associated with 
this model object
                 * 
@@ -141,7 +157,8 @@
                                        'end_date' => $this->get_end_date(),
                                        'procedure_id' => 
$this->get_procedure_id(),
                                        'revision_no' => 
$this->get_revision_no(),
-                                       'revision_date' => 
($this->get_revision_date())?date($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'],
 $this->get_revision_date()):''
+                                       'revision_date' => 
($this->get_revision_date())?date($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'],
 $this->get_revision_date()):'',
+                                       'control_area'  => 
$this->get_control_area_name()
                        );
                }
        }

Modified: trunk/controller/templates/base/procedure_item.xsl
===================================================================
--- trunk/controller/templates/base/procedure_item.xsl  2011-10-26 07:34:08 UTC 
(rev 7942)
+++ trunk/controller/templates/base/procedure_item.xsl  2011-10-26 07:49:40 UTC 
(rev 7943)
@@ -61,6 +61,21 @@
                                        </xsl:choose>
                                        </dd>
                                        <dt>
+                                               <label 
for="control_area"><xsl:value-of select="php:function('lang','Control area')" 
/></label>
+                                       </dt>
+                                       <dd>
+                                       <xsl:choose>
+                                               <xsl:when test="editable">
+                                                       <select 
id="control_area" name="control_area">
+                                                               
<xsl:apply-templates select="control_area/options"/>
+                                                       </select>
+                                               </xsl:when>
+                                               <xsl:otherwise>
+                                                       <xsl:value-of 
select="procedure/control_area_name" />
+                                               </xsl:otherwise>
+                                       </xsl:choose>
+                                       </dd>
+                                       <dt>
                                                <label 
for="description"><xsl:value-of select="php:function('lang','Procedure 
description')" /></label>
                                        </dt>
                                        <dd>
@@ -184,4 +199,13 @@
                                </xsl:for-each>
                        </tr>
                </xsl:for-each>
+       </xsl:template>
+       
+       <xsl:template match="options">
+               <option value="{id}">
+                       <xsl:if test="selected != 0">
+                               <xsl:attribute name="selected" value="selected" 
/>
+                       </xsl:if>
+                       <xsl:value-of disable-output-escaping="yes" 
select="name"/>
+               </option>
        </xsl:template>
\ No newline at end of file




reply via email to

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