[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [7716]
From: |
Erik Holm-Larsen |
Subject: |
[Fmsystem-commits] [7716] |
Date: |
Fri, 23 Sep 2011 08:04:24 +0000 |
Revision: 7716
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=7716
Author: erikhl
Date: 2011-09-23 08:04:24 +0000 (Fri, 23 Sep 2011)
Log Message:
-----------
Modified Paths:
--------------
trunk/controller/inc/class.menu.inc.php
trunk/controller/inc/class.socontrol_group.inc.php
trunk/controller/inc/model/class.control_group.inc.php
trunk/controller/setup/phpgw_no.lang
Added Paths:
-----------
trunk/controller/templates/base/control_group.xsl
Modified: trunk/controller/inc/class.menu.inc.php
===================================================================
--- trunk/controller/inc/class.menu.inc.php 2011-09-23 08:03:42 UTC (rev
7715)
+++ trunk/controller/inc/class.menu.inc.php 2011-09-23 08:04:24 UTC (rev
7716)
@@ -33,6 +33,12 @@
'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')
+ ),
'procedure' => array
(
'text' => lang('Procedure'),
Modified: trunk/controller/inc/class.socontrol_group.inc.php
===================================================================
--- trunk/controller/inc/class.socontrol_group.inc.php 2011-09-23 08:03:42 UTC
(rev 7715)
+++ trunk/controller/inc/class.socontrol_group.inc.php 2011-09-23 08:04:24 UTC
(rev 7716)
@@ -10,7 +10,7 @@
/**
* Get a static reference to the storage object associated with this
model object
*
- * @return controller_soparty the storage object
+ * @return controller_socontrol_group the storage object
*/
public static function get_instance()
{
@@ -21,30 +21,36 @@
}
/**
- * Function for adding a new activity to the database. Updates the
activity object.
+ * Function for adding a new control group to the database.
*
- * @param activitycalendar_activity $activity the party to be added
- * @return bool true if successful, false otherwise
+ * @param controller_control_group $control_group the control group to
be added
+ * @return int id of the new control group object
*/
function add(&$control_group)
{
+ $cols = array(
+ 'group_name',
+ 'procedure_id',
+ 'control_area_id'
+ );
+
+ $values = array(
+ $this->marshal($control_group->get_group_name(),
'string'),
+ $this->marshal($control_group->get_procedure_id(),
'int'),
+ $this->marshal($control_group->get_control_area_id(),
'int'),
+ );
- $control_group = $control_group->get_control_group();
+ $result = $this->db->query('INSERT INTO
controller_control_group (' . join(',', $cols) . ') VALUES (' . join(',',
$values) . ')', __LINE__,__FILE__);
- $sql = "INSERT INTO controller_control_group (group_name)
VALUES ('$control_group')";
- $result = $this->db->query($sql, __LINE__,__FILE__);
-
if(isset($result)) {
- // Set the new party ID
-
$control_group->set_id($this->db->get_last_insert_id('controller_control_group',
'id'));
- // Forward this request to the update method
- return $this->update($control_group);
+ // Get the new control group ID and return it
+ return
$this->db->get_last_insert_id('controller_control_group', 'id');
}
else
{
- return false;
+ return 0;
}
-
+
}
/**
@@ -59,7 +65,9 @@
$id = intval($control_group->get_id());
$values = array(
- '$group_name = ' .
$this->marshal($control_group->get_group_name(), 'string')
+ 'group_name = ' .
$this->marshal($control_group->get_group_name(), 'string'),
+ 'procedure_id = '.
$this->marshal($control_group->get_procedure_id(), 'int'),
+ 'control_area_id = ' .
$this->marshal($control_group->get_control_area_id(), 'int')
);
//var_dump('UPDATE activity_activity SET ' . join(',', $values)
. " WHERE id=$id");
@@ -155,7 +163,7 @@
function get_id_field_name($extended_info = false)
{
- /*
+
if(!$extended_info)
{
$ret = 'id';
@@ -164,46 +172,166 @@
{
$ret = array
(
- 'table' => 'activity', // alias
+ 'table' =>
'controller_control_group', // alias
'field' => 'id',
'translated' => 'id'
);
}
- */
+
return $ret;
}
protected function get_query(string $sort_field, boolean $ascending,
string $search_for, string $search_type, array $filters, boolean $return_count)
{
+ $clauses = array('1=1');
+ if($search_for)
+ {
+ $like_pattern = "'%" .
$this->db->db_addslashes($search_for) . "%'";
+ $like_clauses = array();
+ switch($search_type){
+ default:
+ $like_clauses[] =
"controller_control_group.group_name $this->like $like_pattern";
+ break;
+ }
+ if(count($like_clauses))
+ {
+ $clauses[] = '(' . join(' OR ', $like_clauses)
. ')';
+ }
+ }
+
+ $filter_clauses = array();
+ /*switch($filters['is_active']){
+ case "active":
+ $filter_clauses[] = "rental_composite.is_active
= TRUE";
+ break;
+ case "non_active":
+ $filter_clauses[] = "rental_composite.is_active
= FALSE";
+ break;
+ case "both":
+ break;
+ }*/
+ /*
+ $special_query = false; //specify if the query should use
distinct on rental_composite.id (used for selecting composites that has an
active or inactive contract)
+ $ts_query = strtotime(date('Y-m-d')); // timestamp for query
(today)
+ $availability_date_from = $ts_query;
+ $availability_date_to = $ts_query;
+ if(isset($filters['availability_date_from']) &&
$filters['availability_date_from'] != ''){
+ $availability_date_from =
strtotime($filters['availability_date_from']);
+ }
+ if(isset($filters['availability_date_to']) &&
$filters['availability_date_to'] != ''){
+ $availability_date_to =
strtotime($filters['availability_date_to']);
+ }
+ */
+ /*switch($filters['has_contract']){
+ case "has_contract":
+ $filter_clauses[] = "NOT
rental_contract_composite.contract_id IS NULL"; // Composite must have a
contract
+ $filter_clauses[] = "NOT
rental_contract.date_start IS NULL"; // The contract must have start date
+ */
+ /* The contract's start date not after the end
of the period if there is no end date */
+/* $filter_clauses[] = "
+ ((NOT rental_contract.date_start >
$availability_date_to AND rental_contract.date_end IS NULL)
+ OR
+ (NOT rental_contract.date_start >
$availability_date_to AND NOT rental_contract.date_end IS NULL AND NOT
rental_contract.date_end < $availability_date_from))";
+ $special_query=true;
+ break;
+ case "has_no_contract":
+ $filter_clauses[] = "
+ (
+ rental_contract_composite.contract_id
IS NULL OR
+ NOT rental_composite.id IN
+ (
+ SELECT rental_composite.id FROM
rental_composite
+ LEFT JOIN
rental_contract_composite ON (rental_contract_composite.composite_id =
rental_composite.id)
+ LEFT JOIN rental_contract ON
(rental_contract.id = rental_contract_composite.contract_id)
+ WHERE
+ (
+ NOT
rental_contract_composite.contract_id IS NULL AND
+ NOT
rental_contract.date_start IS NULL AND
+ ((NOT
rental_contract.date_start > $availability_date_to AND rental_contract.date_end
IS NULL)
+ OR
+ (NOT
rental_contract.date_start > $availability_date_to AND NOT
rental_contract.date_end IS NULL AND NOT rental_contract.date_end <
$availability_date_from))
+ )
+ )
+ )
+ ";
+ $special_query=true;
+ break;
+ case "both":
+ break;
+ }
+
+ // Furnished, partly furnished, not furnished, not specified
+ if(isset($filters['furnished_status']) &
$filters['furnished_status'] < 4){
+ // Not specified
+ if($filters['furnished_status'] == 0)
+ $filter_clauses[] =
"rental_composite.furnish_type_id IS NULL";
+ else
+ $filter_clauses[] =
"rental_composite.furnish_type_id=".$filters['furnished_status'];
+ }
+
+ if(isset($filters['not_in_contract'])){
+ $filter_clauses[] =
"(rental_contract_composite.contract_id != ".$filters['not_in_contract']." OR
rental_contract_composite.contract_id IS NULL)";
+ }
+
+ if(isset($filters['location_code'])){
+ $filter_clauses[] = "rental_unit.location_code = '".
$filters['location_code'] . "'";
+ }
+
+ if(isset($filters['contract_id']))
+ {
+ $filter_clauses[] = "contract_id =
{$this->marshal($filters['contract_id'],'int')}";
+ }
+
+ if(isset($filters[$this->get_id_field_name()]))
+ {
+ $filter_clauses[] = "rental_composite.id =
{$this->marshal($filters[$this->get_id_field_name()],'int')}";
+ }*/
+
+ if(isset($filters[$this->get_id_field_name()]))
+ {
+ $filter_clauses[] = "controller_control_group.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_group";
+ //$joins = " {$this->left_join} rental_unit ON
(rental_composite.id = rental_unit.composite_id)";
+ //$joins .= " {$this->left_join} rental_contract_composite ON
(rental_contract_composite.composite_id = rental_composite.id)";
+ //$joins .= " {$this->left_join} rental_contract ON
(rental_contract.id = rental_contract_composite.contract_id)";
+
+ if($return_count) // We should only return a count
+ {
+ $cols = 'COUNT(DISTINCT(controller_control_group.id))
AS count';
+ }
+ else
+ {
+ $cols .= "id, group_name, procedure_id, control_area_id
";
+ }
+ $dir = $ascending ? 'ASC' : 'DESC';
+ $order = $sort_field ? "ORDER BY {$this->marshal($sort_field,
'field')} $dir ": '';
+
+ //var_dump("SELECT {$cols} FROM {$tables} {$joins} WHERE
{$condition} {$order}");
+
+ return "SELECT {$cols} FROM {$tables} WHERE {$condition}
{$order}";
}
function populate(int $control_group_id, &$control_group)
{
- /*
if($control_group == null) {
- $control_group = new activitycalendar_activity((int)
$activity_id);
+ $control_group = new controller_control_group((int)
$control_group_id);
-
$control_group->set_title($this->unmarshal($this->db->f('title'), 'string'));
-
$control_group->set_organization_id($this->unmarshal($this->db->f('organization_id'),
'int'));
-
$control_group->set_group_id($this->unmarshal($this->db->f('group_id'), 'int'));
-
$control_group->set_district($this->unmarshal($this->db->f('district'), 'int'));
-
$control_group->set_office($this->unmarshal($this->db->f('office'), 'int'));
-
$control_group->set_category($this->unmarshal($this->db->f('category'), 'int'));
-
$control_group->set_state($this->unmarshal($this->db->f('state'), 'int'));
-
$control_group->set_target($this->unmarshal($this->db->f('target'), 'string'));
-
$control_group->set_description($this->unmarshal($this->db->f('description'),
'string'));
-
$control_group->set_arena($this->unmarshal($this->db->f('arena'), 'string'));
-
$control_group->set_internal_arena($this->unmarshal($this->db->f('internal_arena'),
'string'));
-
$control_group->set_time($this->unmarshal($this->db->f('time'), 'string'));
-
$control_group->set_last_change_date($this->unmarshal($this->db->f('last_change_date'),
'int'));
-
$control_group->set_special_adaptation($this->unmarshal($this->db->f('special_adaptation',
'bool')));
-
$control_group->set_secret($this->unmarshal($this->db->f('secret'), 'string'));
-
-
+
$control_group->set_group_name($this->unmarshal($this->db->f('group_name'),
'string'));
+
$control_group->set_procedure_id($this->unmarshal($this->db->f('procedure_id'),
'int'));
+
$control_group->set_control_area_id($this->unmarshal($this->db->f('control_area_id'),
'int'));
}
- */
+ //var_dump($control_group);
return $control_group;
}
Modified: trunk/controller/inc/model/class.control_group.inc.php
===================================================================
--- trunk/controller/inc/model/class.control_group.inc.php 2011-09-23
08:03:42 UTC (rev 7715)
+++ trunk/controller/inc/model/class.control_group.inc.php 2011-09-23
08:04:24 UTC (rev 7716)
@@ -60,6 +60,34 @@
return $result;
}
+ public function toArray()
+ {
+
+// Alternative 1
+// return get_object_vars($this);
+
+// Alternative 2
+ $exclude = array
+ (
+ 'get_field', // feiler (foreldreklassen)
+ 'get_so',//unødvendig
+ );
+
+ $class_methods = get_class_methods($this);
+ $control_group_arr = array();
+ foreach ($class_methods as $class_method)
+ {
+ if( stripos($class_method , 'get_' ) === 0 &&
!in_array($class_method, $exclude))
+ {
+ $_class_method_part = explode('get_',
$class_method);
+
$control_group_arr[$_class_method_part[1]] = $this->$class_method();
+ }
+ }
+
+// _debug_array($control_group_arr);
+ return $control_group_arr;
+ }
+
/**
* Get a static reference to the storage object associated with
this model object
*
Modified: trunk/controller/setup/phpgw_no.lang
===================================================================
--- trunk/controller/setup/phpgw_no.lang 2011-09-23 08:03:42 UTC (rev
7715)
+++ trunk/controller/setup/phpgw_no.lang 2011-09-23 08:04:24 UTC (rev
7716)
@@ -240,4 +240,6 @@
NEW controller no Ny
PENDING controller no Venter
ACCEPTED controller no Akseptert
-REJECTED controller no Avvist
\ No newline at end of file
+REJECTED controller no Avvist
+New control group controller no Ny kontrollgruppe
+Control group title controller no Tittel
\ No newline at end of file
Added: trunk/controller/templates/base/control_group.xsl
===================================================================
--- trunk/controller/templates/base/control_group.xsl
(rev 0)
+++ trunk/controller/templates/base/control_group.xsl 2011-09-23 08:04:24 UTC
(rev 7716)
@@ -0,0 +1,92 @@
+<!-- item -->
+
+<xsl:template match="data" xmlns:php="http://php.net/xsl">
+
+<xsl:call-template name="yui_booking_i18n"/>
+<div class="identifier-header">
+<h1><img src="{img_go_home}" />
+ <xsl:value-of select="php:function('lang', 'Control_group')" />
+</h1>
+</div>
+
+<div class="yui-content">
+ <div id="details">
+ <form action="#" method="post">
+ <input type="hidden" name="id" value =
"{value_id}">
+ </input>
+ <dl class="proplist-col">
+ <dt>
+ <label
for="title">Tittel</label>
+ </dt>
+ <dd>
+ <xsl:choose>
+ <xsl:when test="editable">
+ <input type="text"
name="group_name" id="group_name" value="{control_group/group_name}" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of
select="control_group/group_name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </dd>
+ <dt>
+ <label
for="control_area">Kontrollområde</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="control_group/control_area_id" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </dd>
+ <dt>
+ <label
for="proecdure">Prosedyre</label>
+ </dt>
+ <dd>
+ <xsl:choose>
+ <xsl:when test="editable">
+ <select id="procedure"
name="procedure">
+
<xsl:apply-templates select="procedure/options"/>
+ </select>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of
select="control_group/procedure_id" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </dd>
+ </dl>
+
+ <div class="form-buttons">
+ <xsl:choose>
+ <xsl:when test="editable">
+ <xsl:variable
name="lang_save"><xsl:value-of select="php:function('lang', 'save')"
/></xsl:variable>
+ <xsl:variable
name="lang_cancel"><xsl:value-of select="php:function('lang', 'cancel')"
/></xsl:variable>
+ <input type="submit"
name="save_control_group" value="{$lang_save}" title = "{$lang_save}" />
+ <input type="submit"
name="cancel_control_group" value="{$lang_cancel}" title = "{$lang_cancel}" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable
name="lang_edit"><xsl:value-of select="php:function('lang', 'edit')"
/></xsl:variable>
+ <input type="submit"
name="edit_control_group" value="{$lang_edit}" title = "{$lang_edit}" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+
+ </form>
+
+ </div>
+ </div>
+</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>
+
Property changes on: trunk/controller/templates/base/control_group.xsl
___________________________________________________________________
Added: svn:mime-type
+ text/plain
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [7716],
Erik Holm-Larsen <=