PM-854 "[16221] En Case History no muestra los datos de las..." SOLVED

Issue:
    En "Cases History" no se reflejan las variables generadas por los triggers
    asignados al Task (esto en Task>Steps>Triggers>AssignTask)
Cause:
    Nuevo requerimiento de funciones
Solution:
    - Se ha implementado esta nueva funcionalidad
    - Las variables generadas en los triggers que se setean en "Task>Steps>Triggers"
      para DynaForms, InputDocuments and OutputDocuments ahora son registrados en la
      tabla APP_HISTORY
This commit is contained in:
Victor Saisa Lopez
2014-11-10 15:40:24 -04:00
parent 6fdc9e8354
commit ecacf6d15a
14 changed files with 369 additions and 222 deletions

View File

@@ -5087,7 +5087,7 @@ class Cases
$RESULT_OBJECTS['CASES_NOTES'] = G::arrayDiff( $RESULT_OBJECTS['CASES_NOTES'] = G::arrayDiff(
$MAIN_OBJECTS['VIEW']['CASES_NOTES'], $MAIN_OBJECTS['BLOCK']['CASES_NOTES'] $MAIN_OBJECTS['VIEW']['CASES_NOTES'], $MAIN_OBJECTS['BLOCK']['CASES_NOTES']
); );
array_push($RESULT_OBJECTS['DYNAFORMS'], -1); array_push($RESULT_OBJECTS["DYNAFORMS"], -1, -2);
array_push($RESULT_OBJECTS['INPUT_DOCUMENTS'], -1); array_push($RESULT_OBJECTS['INPUT_DOCUMENTS'], -1);
array_push($RESULT_OBJECTS['OUTPUT_DOCUMENTS'], -1); array_push($RESULT_OBJECTS['OUTPUT_DOCUMENTS'], -1);
array_push($RESULT_OBJECTS['CASES_NOTES'], -1); array_push($RESULT_OBJECTS['CASES_NOTES'], -1);
@@ -5244,10 +5244,16 @@ class Cases
$oDataset->next(); $oDataset->next();
} }
//inputs //InputDocuments and OutputDocuments
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_UID); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_UID);
$oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_TYPE); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_TYPE);
$arrayCondition = array();
$arrayCondition[] = array(AppDelegationPeer::APP_UID, AppDocumentPeer::APP_UID, Criteria::EQUAL);
$arrayCondition[] = array(AppDelegationPeer::DEL_INDEX, AppDocumentPeer::DEL_INDEX, Criteria::EQUAL);
$oCriteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);
$oCriteria->add(AppDelegationPeer::APP_UID, $APP_UID); $oCriteria->add(AppDelegationPeer::APP_UID, $APP_UID);
$oCriteria->add(AppDelegationPeer::PRO_UID, $PRO_UID); $oCriteria->add(AppDelegationPeer::PRO_UID, $PRO_UID);
if ($aCase['APP_STATUS'] != 'COMPLETED') { if ($aCase['APP_STATUS'] != 'COMPLETED') {
@@ -5261,23 +5267,21 @@ class Cases
addOr($oCriteria-> addOr($oCriteria->
getNewCriterion(AppDocumentPeer::APP_DOC_TYPE, 'ATTACHED')) getNewCriterion(AppDocumentPeer::APP_DOC_TYPE, 'ATTACHED'))
); );
$aConditions = Array();
$aConditions[] = array(AppDelegationPeer::APP_UID, AppDocumentPeer::APP_UID);
$aConditions[] = array(AppDelegationPeer::DEL_INDEX, AppDocumentPeer::DEL_INDEX);
$oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
$oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset = AppDelegationPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) { while ($oDataset->next()) {
$aRow = $oDataset->getRow();
if ($aRow['APP_DOC_TYPE'] == "ATTACHED") { if ($aRow['APP_DOC_TYPE'] == "ATTACHED") {
$aRow['APP_DOC_TYPE'] = "INPUT"; $aRow['APP_DOC_TYPE'] = "INPUT";
} }
if (!in_array($aRow['APP_DOC_UID'], $RESULT[$aRow['APP_DOC_TYPE']])) { if (!in_array($aRow['APP_DOC_UID'], $RESULT[$aRow['APP_DOC_TYPE']])) {
array_push($RESULT[$aRow['APP_DOC_TYPE']], $aRow['APP_DOC_UID']); array_push($RESULT[$aRow['APP_DOC_TYPE']], $aRow['APP_DOC_UID']);
} }
$oDataset->next();
} }
$RESULT['CASES_NOTES'] = 1; $RESULT['CASES_NOTES'] = 1;
$RESULT['SUMMARY_FORM'] = 1; $RESULT['SUMMARY_FORM'] = 1;

View File

@@ -32,6 +32,10 @@ class AppHistory extends BaseAppHistory
$this->setHistoryDate($aData['APP_UPDATE_DATE']); $this->setHistoryDate($aData['APP_UPDATE_DATE']);
$this->setHistoryData($aData['APP_DATA']); $this->setHistoryData($aData['APP_DATA']);
if (isset($aData["OBJECT_TYPE"])) {
$this->setObjType($aData["OBJECT_TYPE"]);
}
if ($this->validate() ) { if ($this->validate() ) {
$res = $this->save(); $res = $this->save();
} else { } else {
@@ -78,12 +82,36 @@ class AppHistory extends BaseAppHistory
} }
} }
$appDocument = new AppDocument();
foreach (array("INPUT_DOCUMENTS", "OUTPUT_DOCUMENTS") as $value) {
$key = $value;
if ($aObjectPermissions[$key]) {
foreach ($aObjectPermissions[$key] as $key2 => $value2) {
$appDocumentUid = $value2;
try {
$arrayAppDocumentData = $appDocument->load($appDocumentUid);
$aObjectPermissions[$key][$key2] = $arrayAppDocumentData["DOC_UID"];
} catch (Exception $e) {
}
}
}
}
$dynaForm = new Dynaform();
$inputDocument = new InputDocument();
$outputDocument = new OutputDocument();
$c = new Criteria('workflow'); $c = new Criteria('workflow');
$c->addSelectColumn(AppHistoryPeer::APP_UID); $c->addSelectColumn(AppHistoryPeer::APP_UID);
$c->addSelectColumn(AppHistoryPeer::DEL_INDEX); $c->addSelectColumn(AppHistoryPeer::DEL_INDEX);
$c->addSelectColumn(AppHistoryPeer::PRO_UID); $c->addSelectColumn(AppHistoryPeer::PRO_UID);
$c->addSelectColumn(AppHistoryPeer::TAS_UID); $c->addSelectColumn(AppHistoryPeer::TAS_UID);
$c->addSelectColumn(AppHistoryPeer::DYN_UID); $c->addSelectColumn(AppHistoryPeer::DYN_UID);
$c->addSelectColumn(AppHistoryPeer::OBJ_TYPE);
$c->addSelectColumn(AppHistoryPeer::USR_UID); $c->addSelectColumn(AppHistoryPeer::USR_UID);
$c->addSelectColumn(AppHistoryPeer::APP_STATUS); $c->addSelectColumn(AppHistoryPeer::APP_STATUS);
$c->addSelectColumn(AppHistoryPeer::HISTORY_DATE); $c->addSelectColumn(AppHistoryPeer::HISTORY_DATE);
@@ -94,31 +122,55 @@ class AppHistory extends BaseAppHistory
$c->addJoin(AppHistoryPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN); $c->addJoin(AppHistoryPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
//WHERE //WHERE
$c->add(AppHistoryPeer::DYN_UID, $aObjectPermissions['DYNAFORMS'], Criteria::IN); $c->add(
$c->getNewCriterion(AppHistoryPeer::DYN_UID, $aObjectPermissions["DYNAFORMS"], Criteria::IN)->addOr(
$c->getNewCriterion(AppHistoryPeer::DYN_UID, $aObjectPermissions["INPUT_DOCUMENTS"], Criteria::IN))->addOr(
$c->getNewCriterion(AppHistoryPeer::DYN_UID, $aObjectPermissions["OUTPUT_DOCUMENTS"], Criteria::IN))
);
$c->add(AppHistoryPeer::PRO_UID, $PRO_UID); $c->add(AppHistoryPeer::PRO_UID, $PRO_UID);
$c->add(AppHistoryPeer::APP_UID, $APP_UID); $c->add(AppHistoryPeer::APP_UID, $APP_UID);
if ((isset($DYN_UID))&&($DYN_UID!="")) { if ((isset($DYN_UID))&&($DYN_UID!="")) {
$c->add(AppHistoryPeer::DYN_UID, $DYN_UID); $c->add(AppHistoryPeer::DYN_UID, $DYN_UID);
} }
//ORDER BY
$c->clearOrderByColumns();
$c->addDescendingOrderByColumn(AppHistoryPeer::HISTORY_DATE);
//Execute //Execute
$oDataset = AppHistoryPeer::doSelectRS($c); $oDataset = AppHistoryPeer::doSelectRS($c);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aDynHistory = array(); $aDynHistory = array();
$aDynHistory[] = array( $aDynHistory[] = array(
'DYN_TITLE' => 'char' 'DYN_TITLE' => 'char'
); );
while ($aRow = $oDataset->getRow()) { while ($oDataset->next()) {
$o = new Dynaform(); $aRow = $oDataset->getRow();
$o->setDynUid($aRow['DYN_UID']);
$aRow['DYN_TITLE'] = $o->getDynTitle(); $title = "";
switch ($aRow["OBJ_TYPE"]) {
case "DYNAFORM":
$arrayDynaFormData = $dynaForm->Load($aRow["DYN_UID"]);
$title = $arrayDynaFormData["DYN_TITLE"] . " (" . G::LoadTranslation("ID_DYNAFORM") . ")";
break;
case "INPUT_DOCUMENT":
$arrayInputDocumentData = $inputDocument->load($aRow["DYN_UID"]);
$title = $arrayInputDocumentData["INP_DOC_TITLE"] . " (" . G::LoadTranslation("ID_INPUT_DOCUMENT") . ")";
break;
case "OUTPUT_DOCUMENT":
$arrayOutputDocumentData = $outputDocument->load($aRow["DYN_UID"]);
$title = $arrayOutputDocumentData["OUT_DOC_TITLE"] . " (" . G::LoadTranslation("ID_OUTPUT_DOCUMENT") . ")";
break;
case "ASSIGN_TASK":
$title = G::LoadTranslation("ASSIGN_TASK") . " (" . G::LoadTranslation("ID_TRIGGERS") . ")";
break;
}
$aRow["DYN_TITLE"] = $title;
$changedValues=unserialize($aRow['HISTORY_DATA']); $changedValues=unserialize($aRow['HISTORY_DATA']);
$html="<table border='0' cellpadding='0' cellspacing='0'>"; $html="<table border='0' cellpadding='0' cellspacing='0'>";
$sw_add=false; $sw_add=false;
@@ -166,7 +218,6 @@ class AppHistory extends BaseAppHistory
if ($sw_add) { if ($sw_add) {
$aDynHistory[] = $aRow; $aDynHistory[] = $aRow;
} }
$oDataset->next();
} }
global $_DBArray; global $_DBArray;
@@ -175,7 +226,8 @@ class AppHistory extends BaseAppHistory
G::LoadClass('ArrayPeer'); G::LoadClass('ArrayPeer');
$oCriteria = new Criteria('dbarray'); $oCriteria = new Criteria('dbarray');
$oCriteria->setDBArrayTable('DynaformsHistory'); $oCriteria->setDBArrayTable('DynaformsHistory');
$oCriteria->addDescendingOrderByColumn(AppHistoryPeer::HISTORY_DATE); $oCriteria->addAscendingOrderByColumn(AppHistoryPeer::HISTORY_DATE);
return $oCriteria; return $oCriteria;
} }
} }

View File

@@ -75,6 +75,8 @@ class AppHistoryMapBuilder
$tMap->addColumn('DYN_UID', 'DynUid', 'string', CreoleTypes::VARCHAR, true, 32); $tMap->addColumn('DYN_UID', 'DynUid', 'string', CreoleTypes::VARCHAR, true, 32);
$tMap->addColumn('OBJ_TYPE', 'ObjType', 'string', CreoleTypes::VARCHAR, true, 20);
$tMap->addColumn('USR_UID', 'UsrUid', 'string', CreoleTypes::VARCHAR, true, 32); $tMap->addColumn('USR_UID', 'UsrUid', 'string', CreoleTypes::VARCHAR, true, 32);
$tMap->addColumn('APP_STATUS', 'AppStatus', 'string', CreoleTypes::VARCHAR, true, 100); $tMap->addColumn('APP_STATUS', 'AppStatus', 'string', CreoleTypes::VARCHAR, true, 100);
@@ -83,6 +85,8 @@ class AppHistoryMapBuilder
$tMap->addColumn('HISTORY_DATA', 'HistoryData', 'string', CreoleTypes::LONGVARCHAR, true, null); $tMap->addColumn('HISTORY_DATA', 'HistoryData', 'string', CreoleTypes::LONGVARCHAR, true, null);
$tMap->addValidator('OBJ_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'DYNAFORM|INPUT_DOCUMENT|OUTPUT_DOCUMENT|EXTERNAL|ASSIGN_TASK', 'Please select a valid value for OBJ_TYPE.');
} // doBuild() } // doBuild()
} // AppHistoryMapBuilder } // AppHistoryMapBuilder

View File

@@ -57,6 +57,12 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
*/ */
protected $dyn_uid = ''; protected $dyn_uid = '';
/**
* The value for the obj_type field.
* @var string
*/
protected $obj_type = 'DYNAFORM';
/** /**
* The value for the usr_uid field. * The value for the usr_uid field.
* @var string * @var string
@@ -150,6 +156,17 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
return $this->dyn_uid; return $this->dyn_uid;
} }
/**
* Get the [obj_type] column value.
*
* @return string
*/
public function getObjType()
{
return $this->obj_type;
}
/** /**
* Get the [usr_uid] column value. * Get the [usr_uid] column value.
* *
@@ -325,6 +342,28 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
} // setDynUid() } // setDynUid()
/**
* Set the value of [obj_type] column.
*
* @param string $v new value
* @return void
*/
public function setObjType($v)
{
// Since the native PHP type for this column is string,
// we will cast the input to a string (if it is not).
if ($v !== null && !is_string($v)) {
$v = (string) $v;
}
if ($this->obj_type !== $v || $v === 'DYNAFORM') {
$this->obj_type = $v;
$this->modifiedColumns[] = AppHistoryPeer::OBJ_TYPE;
}
} // setObjType()
/** /**
* Set the value of [usr_uid] column. * Set the value of [usr_uid] column.
* *
@@ -447,20 +486,22 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
$this->dyn_uid = $rs->getString($startcol + 4); $this->dyn_uid = $rs->getString($startcol + 4);
$this->usr_uid = $rs->getString($startcol + 5); $this->obj_type = $rs->getString($startcol + 5);
$this->app_status = $rs->getString($startcol + 6); $this->usr_uid = $rs->getString($startcol + 6);
$this->history_date = $rs->getTimestamp($startcol + 7, null); $this->app_status = $rs->getString($startcol + 7);
$this->history_data = $rs->getString($startcol + 8); $this->history_date = $rs->getTimestamp($startcol + 8, null);
$this->history_data = $rs->getString($startcol + 9);
$this->resetModified(); $this->resetModified();
$this->setNew(false); $this->setNew(false);
// FIXME - using NUM_COLUMNS may be clearer. // FIXME - using NUM_COLUMNS may be clearer.
return $startcol + 9; // 9 = AppHistoryPeer::NUM_COLUMNS - AppHistoryPeer::NUM_LAZY_LOAD_COLUMNS). return $startcol + 10; // 10 = AppHistoryPeer::NUM_COLUMNS - AppHistoryPeer::NUM_LAZY_LOAD_COLUMNS).
} catch (Exception $e) { } catch (Exception $e) {
throw new PropelException("Error populating AppHistory object", $e); throw new PropelException("Error populating AppHistory object", $e);
@@ -680,15 +721,18 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
return $this->getDynUid(); return $this->getDynUid();
break; break;
case 5: case 5:
return $this->getUsrUid(); return $this->getObjType();
break; break;
case 6: case 6:
return $this->getAppStatus(); return $this->getUsrUid();
break; break;
case 7: case 7:
return $this->getHistoryDate(); return $this->getAppStatus();
break; break;
case 8: case 8:
return $this->getHistoryDate();
break;
case 9:
return $this->getHistoryData(); return $this->getHistoryData();
break; break;
default: default:
@@ -716,10 +760,11 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
$keys[2] => $this->getProUid(), $keys[2] => $this->getProUid(),
$keys[3] => $this->getTasUid(), $keys[3] => $this->getTasUid(),
$keys[4] => $this->getDynUid(), $keys[4] => $this->getDynUid(),
$keys[5] => $this->getUsrUid(), $keys[5] => $this->getObjType(),
$keys[6] => $this->getAppStatus(), $keys[6] => $this->getUsrUid(),
$keys[7] => $this->getHistoryDate(), $keys[7] => $this->getAppStatus(),
$keys[8] => $this->getHistoryData(), $keys[8] => $this->getHistoryDate(),
$keys[9] => $this->getHistoryData(),
); );
return $result; return $result;
} }
@@ -767,15 +812,18 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
$this->setDynUid($value); $this->setDynUid($value);
break; break;
case 5: case 5:
$this->setUsrUid($value); $this->setObjType($value);
break; break;
case 6: case 6:
$this->setAppStatus($value); $this->setUsrUid($value);
break; break;
case 7: case 7:
$this->setHistoryDate($value); $this->setAppStatus($value);
break; break;
case 8: case 8:
$this->setHistoryDate($value);
break;
case 9:
$this->setHistoryData($value); $this->setHistoryData($value);
break; break;
} // switch() } // switch()
@@ -822,19 +870,23 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
} }
if (array_key_exists($keys[5], $arr)) { if (array_key_exists($keys[5], $arr)) {
$this->setUsrUid($arr[$keys[5]]); $this->setObjType($arr[$keys[5]]);
} }
if (array_key_exists($keys[6], $arr)) { if (array_key_exists($keys[6], $arr)) {
$this->setAppStatus($arr[$keys[6]]); $this->setUsrUid($arr[$keys[6]]);
} }
if (array_key_exists($keys[7], $arr)) { if (array_key_exists($keys[7], $arr)) {
$this->setHistoryDate($arr[$keys[7]]); $this->setAppStatus($arr[$keys[7]]);
} }
if (array_key_exists($keys[8], $arr)) { if (array_key_exists($keys[8], $arr)) {
$this->setHistoryData($arr[$keys[8]]); $this->setHistoryDate($arr[$keys[8]]);
}
if (array_key_exists($keys[9], $arr)) {
$this->setHistoryData($arr[$keys[9]]);
} }
} }
@@ -868,6 +920,10 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
$criteria->add(AppHistoryPeer::DYN_UID, $this->dyn_uid); $criteria->add(AppHistoryPeer::DYN_UID, $this->dyn_uid);
} }
if ($this->isColumnModified(AppHistoryPeer::OBJ_TYPE)) {
$criteria->add(AppHistoryPeer::OBJ_TYPE, $this->obj_type);
}
if ($this->isColumnModified(AppHistoryPeer::USR_UID)) { if ($this->isColumnModified(AppHistoryPeer::USR_UID)) {
$criteria->add(AppHistoryPeer::USR_UID, $this->usr_uid); $criteria->add(AppHistoryPeer::USR_UID, $this->usr_uid);
} }
@@ -951,6 +1007,8 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
$copyObj->setDynUid($this->dyn_uid); $copyObj->setDynUid($this->dyn_uid);
$copyObj->setObjType($this->obj_type);
$copyObj->setUsrUid($this->usr_uid); $copyObj->setUsrUid($this->usr_uid);
$copyObj->setAppStatus($this->app_status); $copyObj->setAppStatus($this->app_status);

View File

@@ -25,7 +25,7 @@ abstract class BaseAppHistoryPeer
const CLASS_DEFAULT = 'classes.model.AppHistory'; const CLASS_DEFAULT = 'classes.model.AppHistory';
/** The total number of columns. */ /** The total number of columns. */
const NUM_COLUMNS = 9; const NUM_COLUMNS = 10;
/** The number of lazy-loaded columns. */ /** The number of lazy-loaded columns. */
const NUM_LAZY_LOAD_COLUMNS = 0; const NUM_LAZY_LOAD_COLUMNS = 0;
@@ -46,6 +46,9 @@ abstract class BaseAppHistoryPeer
/** the column name for the DYN_UID field */ /** the column name for the DYN_UID field */
const DYN_UID = 'APP_HISTORY.DYN_UID'; const DYN_UID = 'APP_HISTORY.DYN_UID';
/** the column name for the OBJ_TYPE field */
const OBJ_TYPE = 'APP_HISTORY.OBJ_TYPE';
/** the column name for the USR_UID field */ /** the column name for the USR_UID field */
const USR_UID = 'APP_HISTORY.USR_UID'; const USR_UID = 'APP_HISTORY.USR_UID';
@@ -69,10 +72,10 @@ abstract class BaseAppHistoryPeer
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/ */
private static $fieldNames = array ( private static $fieldNames = array (
BasePeer::TYPE_PHPNAME => array ('AppUid', 'DelIndex', 'ProUid', 'TasUid', 'DynUid', 'UsrUid', 'AppStatus', 'HistoryDate', 'HistoryData', ), BasePeer::TYPE_PHPNAME => array ('AppUid', 'DelIndex', 'ProUid', 'TasUid', 'DynUid', 'ObjType', 'UsrUid', 'AppStatus', 'HistoryDate', 'HistoryData', ),
BasePeer::TYPE_COLNAME => array (AppHistoryPeer::APP_UID, AppHistoryPeer::DEL_INDEX, AppHistoryPeer::PRO_UID, AppHistoryPeer::TAS_UID, AppHistoryPeer::DYN_UID, AppHistoryPeer::USR_UID, AppHistoryPeer::APP_STATUS, AppHistoryPeer::HISTORY_DATE, AppHistoryPeer::HISTORY_DATA, ), BasePeer::TYPE_COLNAME => array (AppHistoryPeer::APP_UID, AppHistoryPeer::DEL_INDEX, AppHistoryPeer::PRO_UID, AppHistoryPeer::TAS_UID, AppHistoryPeer::DYN_UID, AppHistoryPeer::OBJ_TYPE, AppHistoryPeer::USR_UID, AppHistoryPeer::APP_STATUS, AppHistoryPeer::HISTORY_DATE, AppHistoryPeer::HISTORY_DATA, ),
BasePeer::TYPE_FIELDNAME => array ('APP_UID', 'DEL_INDEX', 'PRO_UID', 'TAS_UID', 'DYN_UID', 'USR_UID', 'APP_STATUS', 'HISTORY_DATE', 'HISTORY_DATA', ), BasePeer::TYPE_FIELDNAME => array ('APP_UID', 'DEL_INDEX', 'PRO_UID', 'TAS_UID', 'DYN_UID', 'OBJ_TYPE', 'USR_UID', 'APP_STATUS', 'HISTORY_DATE', 'HISTORY_DATA', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, ) BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, )
); );
/** /**
@@ -82,10 +85,10 @@ abstract class BaseAppHistoryPeer
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/ */
private static $fieldKeys = array ( private static $fieldKeys = array (
BasePeer::TYPE_PHPNAME => array ('AppUid' => 0, 'DelIndex' => 1, 'ProUid' => 2, 'TasUid' => 3, 'DynUid' => 4, 'UsrUid' => 5, 'AppStatus' => 6, 'HistoryDate' => 7, 'HistoryData' => 8, ), BasePeer::TYPE_PHPNAME => array ('AppUid' => 0, 'DelIndex' => 1, 'ProUid' => 2, 'TasUid' => 3, 'DynUid' => 4, 'ObjType' => 5, 'UsrUid' => 6, 'AppStatus' => 7, 'HistoryDate' => 8, 'HistoryData' => 9, ),
BasePeer::TYPE_COLNAME => array (AppHistoryPeer::APP_UID => 0, AppHistoryPeer::DEL_INDEX => 1, AppHistoryPeer::PRO_UID => 2, AppHistoryPeer::TAS_UID => 3, AppHistoryPeer::DYN_UID => 4, AppHistoryPeer::USR_UID => 5, AppHistoryPeer::APP_STATUS => 6, AppHistoryPeer::HISTORY_DATE => 7, AppHistoryPeer::HISTORY_DATA => 8, ), BasePeer::TYPE_COLNAME => array (AppHistoryPeer::APP_UID => 0, AppHistoryPeer::DEL_INDEX => 1, AppHistoryPeer::PRO_UID => 2, AppHistoryPeer::TAS_UID => 3, AppHistoryPeer::DYN_UID => 4, AppHistoryPeer::OBJ_TYPE => 5, AppHistoryPeer::USR_UID => 6, AppHistoryPeer::APP_STATUS => 7, AppHistoryPeer::HISTORY_DATE => 8, AppHistoryPeer::HISTORY_DATA => 9, ),
BasePeer::TYPE_FIELDNAME => array ('APP_UID' => 0, 'DEL_INDEX' => 1, 'PRO_UID' => 2, 'TAS_UID' => 3, 'DYN_UID' => 4, 'USR_UID' => 5, 'APP_STATUS' => 6, 'HISTORY_DATE' => 7, 'HISTORY_DATA' => 8, ), BasePeer::TYPE_FIELDNAME => array ('APP_UID' => 0, 'DEL_INDEX' => 1, 'PRO_UID' => 2, 'TAS_UID' => 3, 'DYN_UID' => 4, 'OBJ_TYPE' => 5, 'USR_UID' => 6, 'APP_STATUS' => 7, 'HISTORY_DATE' => 8, 'HISTORY_DATA' => 9, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, ) BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, )
); );
/** /**
@@ -196,6 +199,8 @@ abstract class BaseAppHistoryPeer
$criteria->addSelectColumn(AppHistoryPeer::DYN_UID); $criteria->addSelectColumn(AppHistoryPeer::DYN_UID);
$criteria->addSelectColumn(AppHistoryPeer::OBJ_TYPE);
$criteria->addSelectColumn(AppHistoryPeer::USR_UID); $criteria->addSelectColumn(AppHistoryPeer::USR_UID);
$criteria->addSelectColumn(AppHistoryPeer::APP_STATUS); $criteria->addSelectColumn(AppHistoryPeer::APP_STATUS);
@@ -542,6 +547,9 @@ abstract class BaseAppHistoryPeer
} }
} else { } else {
if ($obj->isNew() || $obj->isColumnModified(AppHistoryPeer::OBJ_TYPE))
$columns[AppHistoryPeer::OBJ_TYPE] = $obj->getObjType();
} }
return BasePeer::doValidate(AppHistoryPeer::DATABASE_NAME, AppHistoryPeer::TABLE_NAME, $columns); return BasePeer::doValidate(AppHistoryPeer::DATABASE_NAME, AppHistoryPeer::TABLE_NAME, $columns);

View File

@@ -2549,10 +2549,14 @@
<column name="PRO_UID" type="VARCHAR" size="32" required="true" default=""/> <column name="PRO_UID" type="VARCHAR" size="32" required="true" default=""/>
<column name="TAS_UID" type="VARCHAR" size="32" required="true" default=""/> <column name="TAS_UID" type="VARCHAR" size="32" required="true" default=""/>
<column name="DYN_UID" type="VARCHAR" size="32" required="true" default=""/> <column name="DYN_UID" type="VARCHAR" size="32" required="true" default=""/>
<column name="OBJ_TYPE" type="VARCHAR" size="20" required="true" default="DYNAFORM" />
<column name="USR_UID" type="VARCHAR" size="32" required="true" default=""/> <column name="USR_UID" type="VARCHAR" size="32" required="true" default=""/>
<column name="APP_STATUS" type="VARCHAR" size="100" required="true" default=""/> <column name="APP_STATUS" type="VARCHAR" size="100" required="true" default=""/>
<column name="HISTORY_DATE" type="TIMESTAMP" required="false"/> <column name="HISTORY_DATE" type="TIMESTAMP" required="false"/>
<column name="HISTORY_DATA" type="LONGVARCHAR" required="true"/> <column name="HISTORY_DATA" type="LONGVARCHAR" required="true"/>
<validator column="OBJ_TYPE">
<rule name="validValues" value="DYNAFORM|INPUT_DOCUMENT|OUTPUT_DOCUMENT|EXTERNAL|ASSIGN_TASK" message="Please select a valid value for OBJ_TYPE." />
</validator>
<index name="indexAppHistory"> <index name="indexAppHistory">
<index-column name="APP_UID"/> <index-column name="APP_UID"/>
<index-column name="TAS_UID"/> <index-column name="TAS_UID"/>

View File

@@ -2612,6 +2612,7 @@ CREATE TABLE [APP_HISTORY]
[PRO_UID] VARCHAR(32) default '' NOT NULL, [PRO_UID] VARCHAR(32) default '' NOT NULL,
[TAS_UID] VARCHAR(32) default '' NOT NULL, [TAS_UID] VARCHAR(32) default '' NOT NULL,
[DYN_UID] VARCHAR(32) default '' NOT NULL, [DYN_UID] VARCHAR(32) default '' NOT NULL,
[OBJ_TYPE] VARCHAR(20) default 'DYNAFORM' NOT NULL,
[USR_UID] VARCHAR(32) default '' NOT NULL, [USR_UID] VARCHAR(32) default '' NOT NULL,
[APP_STATUS] VARCHAR(100) default '' NOT NULL, [APP_STATUS] VARCHAR(100) default '' NOT NULL,
[HISTORY_DATE] CHAR(19) NULL, [HISTORY_DATE] CHAR(19) NULL,

View File

@@ -1206,6 +1206,7 @@ CREATE TABLE `APP_HISTORY`
`PRO_UID` VARCHAR(32) default '' NOT NULL, `PRO_UID` VARCHAR(32) default '' NOT NULL,
`TAS_UID` VARCHAR(32) default '' NOT NULL, `TAS_UID` VARCHAR(32) default '' NOT NULL,
`DYN_UID` VARCHAR(32) default '' NOT NULL, `DYN_UID` VARCHAR(32) default '' NOT NULL,
`OBJ_TYPE` VARCHAR(20) default 'DYNAFORM' NOT NULL,
`USR_UID` VARCHAR(32) default '' NOT NULL, `USR_UID` VARCHAR(32) default '' NOT NULL,
`APP_STATUS` VARCHAR(100) default '' NOT NULL, `APP_STATUS` VARCHAR(100) default '' NOT NULL,
`HISTORY_DATE` DATETIME, `HISTORY_DATE` DATETIME,
@@ -2380,3 +2381,4 @@ CREATE TABLE `LIST_UNASSIGNED_GROUP`
)ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Unassiged list'; )ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Unassiged list';
# This restores the fkey checks, after having unset them earlier # This restores the fkey checks, after having unset them earlier
SET FOREIGN_KEY_CHECKS = 1; SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -1491,6 +1491,7 @@ CREATE TABLE "APP_HISTORY"
"PRO_UID" VARCHAR2(32) default '' NOT NULL, "PRO_UID" VARCHAR2(32) default '' NOT NULL,
"TAS_UID" VARCHAR2(32) default '' NOT NULL, "TAS_UID" VARCHAR2(32) default '' NOT NULL,
"DYN_UID" VARCHAR2(32) default '' NOT NULL, "DYN_UID" VARCHAR2(32) default '' NOT NULL,
"OBJ_TYPE" VARCHAR(20) default 'DYNAFORM' NOT NULL,
"USR_UID" VARCHAR2(32) default '' NOT NULL, "USR_UID" VARCHAR2(32) default '' NOT NULL,
"APP_STATUS" VARCHAR2(100) default '' NOT NULL, "APP_STATUS" VARCHAR2(100) default '' NOT NULL,
"HISTORY_DATE" DATE, "HISTORY_DATE" DATE,

View File

@@ -80,15 +80,18 @@ try {
$_SESSION['TRIGGER_DEBUG']['info'][0]['TRIGGERS_VALUES'] = $triggers; $_SESSION['TRIGGER_DEBUG']['info'][0]['TRIGGERS_VALUES'] = $triggers;
} }
$appFields['DEL_INDEX'] = $_SESSION['INDEX'];
$appFields['TAS_UID'] = $_SESSION['TASK'];
unset($appFields['APP_STATUS']); unset($appFields['APP_STATUS']);
unset($appFields['APP_PROC_STATUS']); unset($appFields['APP_PROC_STATUS']);
unset($appFields['APP_PROC_CODE']); unset($appFields['APP_PROC_CODE']);
unset($appFields['APP_PIN']); unset($appFields['APP_PIN']);
$oCase->updateCase( $_SESSION['APPLICATION'], $appFields ); //Save data
$appFields["DEL_INDEX"] = $_SESSION["INDEX"];
$appFields["TAS_UID"] = $_SESSION["TASK"];
$appFields["USER_UID"] = $_SESSION["USER_LOGGED"];
$appFields["CURRENT_DYNAFORM"] = "-2";
$appFields["OBJECT_TYPE"] = "ASSIGN_TASK";
$oCase->updateCase($_SESSION["APPLICATION"], $appFields); //Save data
//derivate case //derivate case
$oDerivation = new Derivation(); $oDerivation = new Derivation();
@@ -112,6 +115,13 @@ try {
unset($appFields['APP_PROC_STATUS']); unset($appFields['APP_PROC_STATUS']);
unset($appFields['APP_PROC_CODE']); unset($appFields['APP_PROC_CODE']);
unset($appFields['APP_PIN']); unset($appFields['APP_PIN']);
$appFields["DEL_INDEX"] = $_SESSION["INDEX"];
$appFields["TAS_UID"] = $_SESSION["TASK"];
$appFields["USER_UID"] = $_SESSION["USER_LOGGED"];
$appFields["CURRENT_DYNAFORM"] = "-2";
$appFields["OBJECT_TYPE"] = "ASSIGN_TASK";
$oCase->updateCase( $_SESSION['APPLICATION'], $appFields ); $oCase->updateCase( $_SESSION['APPLICATION'], $appFields );
// Send notifications - Start // Send notifications - Start

View File

@@ -153,6 +153,10 @@ $arrayData["APP_NUMBER"] = $arrayField["APP_NUMBER"];
$arrayData["APP_DATA"] = $arrayField["APP_DATA"]; $arrayData["APP_DATA"] = $arrayField["APP_DATA"];
$arrayData["DEL_INDEX"] = $_SESSION["INDEX"]; $arrayData["DEL_INDEX"] = $_SESSION["INDEX"];
$arrayData["TAS_UID"] = $_SESSION["TASK"]; $arrayData["TAS_UID"] = $_SESSION["TASK"];
$arrayData["PRO_UID"] = $_SESSION["PROCESS"];
$arrayData["USER_UID"] = $_SESSION["USER_LOGGED"];
$arrayData["CURRENT_DYNAFORM"] = $inputDocumentUid;
$arrayData["OBJECT_TYPE"] = "INPUT_DOCUMENT";
$case->updateCase($_SESSION["APPLICATION"], $arrayData); $case->updateCase($_SESSION["APPLICATION"], $arrayData);

View File

@@ -182,12 +182,16 @@ unset($Fields['APP_STATUS']);
unset($Fields['APP_PROC_STATUS']); unset($Fields['APP_PROC_STATUS']);
unset($Fields['APP_PROC_CODE']); unset($Fields['APP_PROC_CODE']);
unset($Fields['APP_PIN']); unset($Fields['APP_PIN']);
$Fields["USER_UID"] = $_SESSION["USER_LOGGED"];
$Fields["CURRENT_DYNAFORM"] = $_GET["UID"];
$Fields["OBJECT_TYPE"] = ($_GET["UID"] == "-1")? "ASSIGN_TASK" : $_GET["TYPE"];
$oCase->updateCase( $_SESSION['APPLICATION'], $Fields ); $oCase->updateCase( $_SESSION['APPLICATION'], $Fields );
//Save data - End //Save data - End
//Obtain previous and next step - Start //Obtain previous and next step - Start
try { try {
$oCase = new Cases(); $oCase = new Cases();
$aNextStep = $oCase->getNextStep( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION'] ); $aNextStep = $oCase->getNextStep( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION'] );
$aPreviousStep = $oCase->getPreviousStep( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION'] ); $aPreviousStep = $oCase->getPreviousStep( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION'] );
@@ -266,12 +270,12 @@ try {
$G_PUBLISH->AddContent('dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_GET['UID'], '', $Fields['APP_DATA'], 'cases_SaveData?UID=' . $_GET['UID'] . '&APP_UID=' . $_SESSION['APPLICATION'], '', (strtolower($oStep->getStepMode()) != 'edit' ? strtolower($oStep->getStepMode()) : '')); $G_PUBLISH->AddContent('dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_GET['UID'], '', $Fields['APP_DATA'], 'cases_SaveData?UID=' . $_GET['UID'] . '&APP_UID=' . $_SESSION['APPLICATION'], '', (strtolower($oStep->getStepMode()) != 'edit' ? strtolower($oStep->getStepMode()) : ''));
} }
break; break;
case 'INPUT_DOCUMENT': case 'INPUT_DOCUMENT':
if ($noShowTitle == 0) { if ($noShowTitle == 0) {
$G_PUBLISH->AddContent( 'smarty', 'cases/cases_title', '', '', $array ); $G_PUBLISH->AddContent( 'smarty', 'cases/cases_title', '', '', $array );
} }
$oInputDocument = new InputDocument(); $oInputDocument = new InputDocument();
$Fields = $oInputDocument->load( $_GET['UID'] ); $Fields = $oInputDocument->load( $_GET['UID'] );
if (! $aPreviousStep) { if (! $aPreviousStep) {
$Fields['__DYNAFORM_OPTIONS']['PREVIOUS_STEP_LABEL'] = ''; $Fields['__DYNAFORM_OPTIONS']['PREVIOUS_STEP_LABEL'] = '';
$Fields['PREVIOUS_STEP_LABEL'] = ''; $Fields['PREVIOUS_STEP_LABEL'] = '';
@@ -285,13 +289,13 @@ try {
$Fields['NEXT_STEP'] = $aNextStep['PAGE']; $Fields['NEXT_STEP'] = $aNextStep['PAGE'];
$Fields['NEXT_STEP_LABEL'] = G::loadTranslation( "ID_NEXT_STEP" ); $Fields['NEXT_STEP_LABEL'] = G::loadTranslation( "ID_NEXT_STEP" );
switch ($_GET['ACTION']) { switch ($_GET['ACTION']) {
case 'ATTACH': case 'ATTACH':
switch ($Fields['INP_DOC_FORM_NEEDED']) { switch ($Fields['INP_DOC_FORM_NEEDED']) {
case 'REAL': case 'REAL':
$Fields['TYPE_LABEL'] = G::LoadTranslation( 'ID_NEW' ); $Fields['TYPE_LABEL'] = G::LoadTranslation( 'ID_NEW' );
$sXmlForm = 'cases/cases_AttachInputDocument2'; $sXmlForm = 'cases/cases_AttachInputDocument2';
break; break;
case 'VIRTUAL': case 'VIRTUAL':
$Fields['TYPE_LABEL'] = G::LoadTranslation( 'ID_ATTACH' ); $Fields['TYPE_LABEL'] = G::LoadTranslation( 'ID_ATTACH' );
$sXmlForm = 'cases/cases_AttachInputDocument1'; $sXmlForm = 'cases/cases_AttachInputDocument1';
break; break;
@@ -326,7 +330,7 @@ try {
$oHeadPublisher = & headPublisher::getSingleton(); $oHeadPublisher = & headPublisher::getSingleton();
$titleDocument = "<h3>" . $Fields['INP_DOC_TITLE'] . "<br><small>" . G::LoadTranslation( 'ID_INPUT_DOCUMENT' ) . "</small></h3>"; $titleDocument = "<h3>" . $Fields['INP_DOC_TITLE'] . "<br><small>" . G::LoadTranslation( 'ID_INPUT_DOCUMENT' ) . "</small></h3>";
if ($Fields['INP_DOC_DESCRIPTION']) { if ($Fields['INP_DOC_DESCRIPTION']) {
$titleDocument .= " " . str_replace( "\n", "", str_replace( "'", "\'", nl2br( html_entity_decode($Fields['INP_DOC_DESCRIPTION'], ENT_COMPAT, "UTF-8") ) ) ) . ""; $titleDocument .= " " . str_replace( "\n", "", str_replace( "'", "\'", nl2br( html_entity_decode($Fields['INP_DOC_DESCRIPTION'], ENT_COMPAT, "UTF-8") ) ) ) . "";
} }

View File

@@ -65,7 +65,7 @@
<td width="20%">{dynDate}</td> <td width="20%">{dynDate}</td>
<td width="20%">{dynUser}</td> <td width="20%">{dynUser}</td>
<td width="20%"><div class="userGroupLink"><a href="javascript:toggleTable('{tablename}');">{dynChanges}</a></div></td> <td width="20%"><div class="userGroupLink"><a href="javascript:toggleTable('{tablename}');">{dynChanges}</a></div></td>
<td width="10%"><div class="userGroupLink"><a href="javascript:showDynaformHistory('{dynUID}', '{tablename}', '{dynDate}', '{dynTitle}');">{viewForm}</a></div></td> <td width="10%"><div class="userGroupLink">{viewForm}</div></td>
</tr> </tr>
</table> </table>
</td> </td>

View File

@@ -1,4 +1,4 @@
<?php <?php
/** /**
* cases_DynaformHistory.php * cases_DynaformHistory.php
* *
@@ -21,162 +21,157 @@
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
* *
*/ */
$tpl = new TemplatePower( PATH_TPL . 'cases/cases_DynaformHistory.html' ); $tpl = new TemplatePower(PATH_TPL . "cases" . PATH_SEP . "cases_DynaformHistory.html");
$tpl->prepare(); $tpl->prepare();
G::LoadClass('case'); require_once 'classes/model/AppHistory.php';
$oCase = new Cases(); G::LoadClass('case');
$Fields = $oCase->loadCase($_SESSION['APPLICATION']);
$oCase = new Cases();
// Load form info $Fields = $oCase->loadCase($_SESSION['APPLICATION']);
if (isset($_REQUEST['DYN_UID']) && $_REQUEST['DYN_UID'] != '') {
$form = new Form($_REQUEST['PRO_UID'] . PATH_SEP . $_REQUEST['DYN_UID'], PATH_DYNAFORM, SYS_LANG, false); // Load form info
} if (isset($_REQUEST['DYN_UID']) && $_REQUEST['DYN_UID'] != '') {
$form = new Form($_REQUEST['PRO_UID'] . PATH_SEP . $_REQUEST['DYN_UID'], PATH_DYNAFORM, SYS_LANG, false);
$historyData=array(); }
$historyDataAux=array();
require_once 'classes/model/AppHistory.php'; $historyData = array();
$appHistory = new AppHistory(); $historyDataAux = array();
$c=$appHistory->getDynaformHistory($_REQUEST['PRO_UID'],$_REQUEST['TAS_UID'],$_REQUEST['APP_UID'],$_REQUEST['DYN_UID']);
$appHistory = new AppHistory();
$oDataset = ArrayBasePeer::doSelectRs ( $c); $c = $appHistory->getDynaformHistory($_REQUEST['PRO_UID'], $_REQUEST['TAS_UID'], $_REQUEST['APP_UID'], $_REQUEST['DYN_UID']);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next(); $oDataset = ArrayBasePeer::doSelectRs($c);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$changeCount=0;
while ($aRow = $oDataset->getRow()) { $changeCount = 0;
$changeCount++;
while ($oDataset->next()) {
$changedValues=unserialize($aRow['HISTORY_DATA']); $aRow = $oDataset->getRow();
$tableName="_TCHANGE_".$changeCount;
$historyDataAux[$tableName]=$changedValues; $changeCount++;
$oDataset->next();
} $changedValues = unserialize($aRow['HISTORY_DATA']);
$tableName = "_TCHANGE_" . $changeCount;
$historyData=array_reverse($historyDataAux); $historyDataAux[$tableName] = $changedValues;
$changeCount=count($historyData); }
foreach($historyData as $key => $value){
$tableName="_TCHANGE_".$changeCount; $historyData = array_reverse($historyDataAux);
$changeCountA=$changeCount+1; $changeCount = count($historyData);
$tableNameA="_TCHANGE_".$changeCountA;
foreach ($historyData as $key => $value) {
if(isset($historyData[$tableNameA])){ $tableName = "_TCHANGE_" . $changeCount;
//$historyData[$key]=array_merge($historyData[$tableNameA],$value); $changeCountA = $changeCount + 1;
//Array merge recursive doesn't work. So here is an own procedure $tableNameA = "_TCHANGE_" . $changeCountA;
$historyData[$key]=$historyData[$tableNameA];
foreach($value as $key1 => $value2){ if (isset($historyData[$tableNameA])) {
if(!is_array($value2)){ //$historyData[$key]=array_merge($historyData[$tableNameA],$value);
$historyData[$key][$key1]=$value2; //Array merge recursive doesn't work. So here is an own procedure
}else{ $historyData[$key] = $historyData[$tableNameA];
foreach($value2 as $key3 => $value3){
if(is_array($value3)){ foreach ($value as $key1 => $value2) {
foreach($value3 as $key4 => $value4){ if (!is_array($value2)) {
$historyData[$key][$key1][$key3][$key4]=$value4; $historyData[$key][$key1] = $value2;
} } else {
} foreach ($value2 as $key3 => $value3) {
} if (is_array($value3)) {
} foreach ($value3 as $key4 => $value4) {
$historyData[$key][$key1][$key3][$key4] = $value4;
} }
} }
}
}
$changeCount--; }
} }
$changeCount--;
}
$oDataset = ArrayBasePeer::doSelectRs ( $c); $oDataset = ArrayBasePeer::doSelectRs($c);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$changeCount=0; $changeCount = 0;
while ($aRow = $oDataset->getRow()) { while ($oDataset->next()) {
$changeCount++; $aRow = $oDataset->getRow();
$changeCount++;
$changedValues=unserialize($aRow['HISTORY_DATA']);
$changedValues = unserialize($aRow['HISTORY_DATA']);
$tpl->newBlock( "DYNLOG" );
$tableName="_TCHANGE_".$changeCount; $tpl->newBlock("DYNLOG");
$changeCountA=$changeCount+1; $tableName = "_TCHANGE_".$changeCount;
$tableNameA="_TCHANGE_".$changeCountA; $changeCountA = $changeCount + 1;
$tableNameA = "_TCHANGE_" . $changeCountA;
$tpl->assign( "dynTitle" , addslashes($aRow['DYN_TITLE']) );
$tpl->assign( "dynDate" , $aRow['HISTORY_DATE'] ); $tpl->assign("dynTitle", addslashes($aRow["DYN_TITLE"]));
$tpl->assign( "dynUser" , addslashes($aRow['USR_NAME']) ); $tpl->assign("dynDate", $aRow["HISTORY_DATE"]);
$tpl->assign( "changes" , G::LoadTranslation("ID_CHANGES") ); $tpl->assign("dynUser", addslashes($aRow["USR_NAME"]));
$tpl->assign( "dynUID" , $aRow['DYN_UID'] ); $tpl->assign("changes", G::LoadTranslation("ID_CHANGES"));
$tpl->assign( "tablename" , $tableName ); $tpl->assign("dynUID", $aRow["DYN_UID"]);
$tpl->assign("tablename", $tableName);
$tpl->assign( "viewForm" , G::LoadTranslation("ID_VIEW") ); $tpl->assign("viewForm", ($aRow["OBJ_TYPE"] == "DYNAFORM")? "<a href=\"javascript:;\" onclick=\"showDynaformHistory('" . $aRow["DYN_UID"] . "', '$tableName', '" . $aRow["HISTORY_DATE"] . "', '" . addslashes($aRow["DYN_TITLE"]) . "'); return false;\">" . G::LoadTranslation("ID_VIEW") . "</a>" : "");
$tpl->assign( "dynaform" , G::LoadTranslation("ID_DYNAFORM") ); $tpl->assign("dynaform", G::LoadTranslation("ID_DYNAFORM"));
$tpl->assign( "date" , G::LoadTranslation("ID_DATE") ); $tpl->assign("date", G::LoadTranslation("ID_DATE"));
$tpl->assign( "user" , G::LoadTranslation("ID_USER") ); $tpl->assign("user", G::LoadTranslation("ID_USER"));
$tpl->assign( "fieldNameLabel" , G::LoadTranslation("ID_FIELDS") ); $tpl->assign("fieldNameLabel", G::LoadTranslation("ID_FIELDS"));
$tpl->assign( "previousValuesLabel" , G::LoadTranslation("ID_PREV_VALUES") ); $tpl->assign("previousValuesLabel", G::LoadTranslation("ID_PREV_VALUES"));
$tpl->assign( "currentValuesLabel" , G::LoadTranslation("ID_CURRENT_VALUES") ); $tpl->assign("currentValuesLabel", G::LoadTranslation("ID_CURRENT_VALUES"));
$count = 0;
foreach ($changedValues as $key => $value) {
$count=0; if ($value != null && !is_array($value)) {
foreach($changedValues as $key =>$value){ if (isset($form) && isset($form->fields[$key])) {
if(($value!=NULL)&&(!is_array($value))){ $label = $form->fields[$key]->label . ' (' . $key . ')';
if (isset($form) && isset($form->fields[$key])) { } else {
$label = $form->fields[$key]->label . ' (' . $key . ')'; $label = $key;
} }
else { $tpl->newBlock("FIELDLOG");
$label = $key; $tpl->assign("fieldName", $label);
} $tpl->assign("previous", (isset($historyData[$tableNameA][$key]))? $historyData[$tableNameA][$key] : "");
$tpl->newBlock( "FIELDLOG" ); $tpl->assign("actual", $value);
$tpl->assign( "fieldName" , $label ); $count++;
$tpl->assign( "previous" , isset($historyData[$tableNameA][$key])?$historyData[$tableNameA][$key]:"" ); }
$tpl->assign( "actual" , $value );
$count++; if (is_array($value)) {
} foreach ($value as $key1 => $value1) {
if(is_array($value)){ if (is_array($value1)) {
foreach($value as $key1 =>$value1){ foreach ($value1 as $key2 => $value2) {
if(is_array($value1)){ if (isset($form) && isset($form->fields[$key]->fields[$key2])) {
foreach($value1 as $key2 =>$value2) { $label = $form->fields[$key]->fields[$key2]->label . ' (' . $key . '[' . $key1 . '][' . $key2 . '])';
if (isset($form) && isset($form->fields[$key]->fields[$key2])) { } else {
$label = $form->fields[$key]->fields[$key2]->label . ' (' . $key . '[' . $key1 . '][' . $key2 . '])'; $label = $key . '[' . $key1 . ']' . '[' . $key2 . ']';
} }
else { $tpl->newBlock("FIELDLOG");
$label = $key . '[' . $key1 . ']' . '[' . $key2 . ']'; $tpl->assign("fieldName", $label);
} $tpl->assign("previous", (isset($historyData[$tableNameA][$key][$key1][$key2]))? $historyData[$tableNameA][$key][$key1][$key2] : "");
$tpl->newBlock( "FIELDLOG" ); $tpl->assign("actual", $value2);
$tpl->assign( "fieldName" , $label ); $count++;
$tpl->assign( "previous" , isset($historyData[$tableNameA][$key][$key1][$key2])?$historyData[$tableNameA][$key][$key1][$key2]:"" ); }
$tpl->assign( "actual" , $value2 ); }
$count++; }
} }
} }
}
} $tpl->gotoBlock("DYNLOG");
}
$tpl->gotoBlock( "DYNLOG" ); $tpl->assign("dynChanges", G::LoadTranslation("ID_FIELDS_CHANGED_NUMBER") . " (" . $count . ")");
$tpl->assign("count", $count + 1);
$tpl->assign( "dynChanges" , G::LoadTranslation("ID_FIELDS_CHANGED_NUMBER")." (".$count.")" ); }
$tpl->assign( "count" , $count+1 );
if (!isset($changedValues)) {
$oDataset->next(); $tpl->newBlock("NORESULTS");
$tpl->assign("noResults", G::LoadTranslation("ID_NO_RECORDS_FOUND"));
} }
if(!isset($changedValues)){
$tpl->newBlock( "NORESULTS" ); $_SESSION['HISTORY_DATA'] = serialize($historyData);
$tpl->assign( "noResults" , G::LoadTranslation("ID_NO_RECORDS_FOUND")); $tpl->gotoBlock("_ROOT");
}
$tpl->printToScreen();
$_SESSION['HISTORY_DATA']=serialize($historyData);
$tpl->gotoBlock( "_ROOT" );
$tpl->printToScreen();
?>