[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [16958] controller: more on FDV-195
From: |
sigurdne |
Subject: |
[Fmsystem-commits] [16958] controller: more on FDV-195 |
Date: |
Wed, 9 Aug 2017 05:09:38 -0400 (EDT) |
Revision: 16958
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=16958
Author: sigurdne
Date: 2017-08-09 05:09:38 -0400 (Wed, 09 Aug 2017)
Log Message:
-----------
controller: more on FDV-195
Modified Paths:
--------------
trunk/controller/inc/class.socommon.inc.php
trunk/controller/inc/class.soprocedure.inc.php
trunk/controller/inc/class.uiprocedure.inc.php
Modified: trunk/controller/inc/class.socommon.inc.php
===================================================================
--- trunk/controller/inc/class.socommon.inc.php 2017-08-08 13:35:18 UTC (rev
16957)
+++ trunk/controller/inc/class.socommon.inc.php 2017-08-09 09:09:38 UTC (rev
16958)
@@ -45,6 +45,36 @@
}
/**
+ * Begin transaction
+ *
+ * @return integer|bool current transaction id
+ */
+ public function transaction_begin()
+ {
+ return $this->db->transaction_begin();
+ }
+
+ /**
+ * Complete the transaction
+ *
+ * @return bool True if sucessful, False if fails
+ */
+ public function transaction_commit()
+ {
+ return $this->db->transaction_commit();
+ }
+
+ /**
+ * Rollback the current transaction
+ *
+ * @return bool True if sucessful, False if fails
+ */
+ public function transaction_abort()
+ {
+ return $this->db->transaction_abort();
+ }
+
+ /**
* Marshal values according to type
* @param $value the value
* @param $type the type of value
Modified: trunk/controller/inc/class.soprocedure.inc.php
===================================================================
--- trunk/controller/inc/class.soprocedure.inc.php 2017-08-08 13:35:18 UTC
(rev 16957)
+++ trunk/controller/inc/class.soprocedure.inc.php 2017-08-09 09:09:38 UTC
(rev 16958)
@@ -37,6 +37,7 @@
{
protected static $so;
+ private $other_revisions = array(-1);
/**
* Get a static reference to the storage object associated with
this model object
@@ -474,12 +475,46 @@
return $results;
}
- function get_old_revisions( $id )
+
+
+ private function _get_other_revisions( $procedure_id,
$direction = 'up')
{
+ $procedure_id = (int) $procedure_id;
+
+ if($direction == 'up') //older
+ {
+ $sql = "SELECT id AS other_version_id FROM
controller_procedure"
+ . " WHERE procedure_id = {$procedure_id}";
+ }
+ else // newer
+ {
+ $sql = "SELECT procedure_id AS other_version_id
FROM controller_procedure"
+ . " WHERE id = {$procedure_id}";
+ }
+ $this->db->query($sql, __LINE__, __FILE__);
+ $this->db->next_record();
+ $other_version_id =
(int)$this->db->f('other_version_id');
+ $this->other_revisions[] = $other_version_id;
+
+ if($other_version_id)
+ {
+ $this->_get_other_revisions($other_version_id,
$direction);
+ }
+ }
+
+
+ function get_other_revisions( $id )
+ {
$id = (int)$id;
+
+ $this->_get_other_revisions( $id, 'up');
+ $this->_get_other_revisions( $id, 'down');
+
+ $revision_filter = 'id IN(' . implode(',',
$this->other_revisions) . ')';
+
$results = array();
- $sql = "SELECT p.* FROM controller_procedure p WHERE
procedure_id = {$id} ORDER BY end_date DESC";
+ $sql = "SELECT p.* FROM controller_procedure p WHERE
{$revision_filter} ORDER BY end_date ASC";
$this->db->query($sql, __LINE__, __FILE__);
while ($this->db->next_record())
Modified: trunk/controller/inc/class.uiprocedure.inc.php
===================================================================
--- trunk/controller/inc/class.uiprocedure.inc.php 2017-08-08 13:35:18 UTC
(rev 16957)
+++ trunk/controller/inc/class.uiprocedure.inc.php 2017-08-09 09:09:38 UTC
(rev 16958)
@@ -197,9 +197,6 @@
if (isset($_POST['save_procedure'])) // The user has
pressed the save button
{
- //var_dump($_POST);
-
//var_dump(strtotime(phpgw::get_var('start_date')));
- //die;
if (!$this->add && !$this->edit)
{
phpgwapi_cache::message_set('No
access', 'error');
@@ -223,9 +220,9 @@
$procedure->set_description($description_txt);
$procedure->set_reference($reference_txt);
$procedure->set_attachment(phpgw::get_var('attachment'));
-
$procedure->set_start_date(strtotime(phpgw::get_var('start_date')));
-
$procedure->set_end_date(strtotime(phpgw::get_var('end_date')));
-
$procedure->set_revision_date(strtotime(phpgw::get_var('revision_date')));
+
$procedure->set_start_date(phpgw::get_var('start_date', 'date'));
+
$procedure->set_end_date(phpgw::get_var('end_date', 'date'));
+
$procedure->set_revision_date(phpgw::get_var('revision_date', 'date'));
$procedure->set_control_area_id(phpgw::get_var('control_area'));
$revision =
(int)$procedure->get_revision_no();
@@ -279,16 +276,6 @@
$old_procedure =
$this->so->get_single($procedure_id);
if (isset($procedure)) // Edit procedure
{
-// $revision =
(int)$procedure->get_revision_no();
-// if ($revision && is_numeric($revision))
-// {
-// $revision++;
-//
$procedure->set_revision_no($revision);
-// }
-// else
-// {
-// $procedure->set_revision_no(2);
-// }
$description_txt =
phpgw::get_var('description', 'html');
$description_txt =
str_replace(" ", " ", $description_txt);
@@ -296,34 +283,6 @@
$purpose_txt = str_replace(" ", "
", $purpose_txt);
$reference_txt =
phpgw::get_var('reference', 'html');
$reference_txt = str_replace(" ",
" ", $reference_txt);
-//
$procedure->set_title(phpgw::get_var('title'));
-// $procedure->set_purpose($purpose_txt);
-//
$procedure->set_responsibility(phpgw::get_var('responsibility'));
-//
$procedure->set_description($description_txt);
-//
$procedure->set_reference($reference_txt);
-//
$procedure->set_attachment(phpgw::get_var('attachment'));
-//
$procedure->set_start_date(strtotime(phpgw::get_var('start_date')));
-//
$procedure->set_end_date(strtotime(phpgw::get_var('end_date')));
-//
$procedure->set_control_area_id(phpgw::get_var('control_area'));
-//
-// if (isset($procedure_id) &&
$procedure_id > 0)
-// {
-// $proc_id = $procedure_id;
-// $old_procedure->set_id(null);
-//
$old_procedure->set_end_date(time());
-//
$old_procedure->set_procedure_id($proc_id);
-// if
($this->so->add($old_procedure)) //add old revision of procedure to history
-// {
-// if
($this->so->store($procedure))
-// {
-// $message =
lang('messages_saved_form');
-// }
-// else
-// {
-// $error =
lang('messages_form_error');
-// }
-// }
-// }
$new_procedure = new
controller_procedure();
$revision =
(int)$procedure->get_revision_no();
@@ -342,17 +301,27 @@
$new_procedure->set_description($description_txt);
$new_procedure->set_reference($reference_txt);
$new_procedure->set_attachment(phpgw::get_var('attachment'));
-
$new_procedure->set_start_date(strtotime(phpgw::get_var('start_date')));
-
$new_procedure->set_end_date(strtotime(phpgw::get_var('end_date')));
-
$new_procedure->set_revision_date(time());
+
+ $start_date =
phpgw::get_var('start_date', 'date');
+ $start_date = $start_date ? $start_date
: time();
+
$new_procedure->set_start_date($start_date);
+
+
$new_procedure->set_end_date(phpgw::get_var('end_date', 'date'));
+
+ $revision_date =
phpgw::get_var('revision_date', 'date');
+ $revision_date = $revision_date ?
$revision_date : time();
+
$new_procedure->set_revision_date($revision_date);
+
$new_procedure->set_control_area_id(phpgw::get_var('control_area'));
if (isset($procedure_id) &&
$procedure_id > 0)
{
+ $this->so->transaction_begin();
if ($proc_id =
$this->so->add($new_procedure)) //add the revised prosedure as new
{
-
$old_procedure->set_end_date(time());
-
$old_procedure->set_revision_date(time());
+ $old_end_date =
$start_date ? $start_date : time();
+
$old_procedure->set_end_date($old_end_date);
+
$old_procedure->set_revision_date($revision_date);
$old_procedure->set_procedure_id($proc_id);
if
($this->so->store($old_procedure)) //add revision of the old procedure to
history
{
@@ -360,9 +329,11 @@
}
else
{
+
$this->so->transaction_abort();
$error =
lang('messages_form_error');
}
}
+ $this->so->transaction_commit();
}
$GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' =>
'controller.uiprocedure.view',
@@ -584,7 +555,7 @@
}
$procedure_array = $procedure->toArray();
- if (!$view_revision)
+// if (!$view_revision)
{
$table_header[] = array('header' =>
lang('Procedure revision'));
$table_header[] = array('header' =>
lang('Procedure title'));
@@ -591,7 +562,8 @@
$table_header[] = array('header' =>
lang('Procedure start date'));
$table_header[] = array('header' =>
lang('Procedure end date'));
- $revised_procedures =
$this->so->get_old_revisions($procedure->get_id());
+ $revised_procedures =
$this->so->get_other_revisions($procedure->get_id());
+ $table_values = array();
foreach ($revised_procedures as $rev)
{
$rev['link'] =
self::link(array('menuaction' => 'controller.uiprocedure.view',
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [16958] controller: more on FDV-195,
sigurdne <=