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:
@@ -5087,7 +5087,7 @@ class Cases
|
||||
$RESULT_OBJECTS['CASES_NOTES'] = G::arrayDiff(
|
||||
$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['OUTPUT_DOCUMENTS'], -1);
|
||||
array_push($RESULT_OBJECTS['CASES_NOTES'], -1);
|
||||
@@ -5244,10 +5244,16 @@ class Cases
|
||||
$oDataset->next();
|
||||
}
|
||||
|
||||
//inputs
|
||||
//InputDocuments and OutputDocuments
|
||||
$oCriteria = new Criteria('workflow');
|
||||
$oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_UID);
|
||||
$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::PRO_UID, $PRO_UID);
|
||||
if ($aCase['APP_STATUS'] != 'COMPLETED') {
|
||||
@@ -5261,23 +5267,21 @@ class Cases
|
||||
addOr($oCriteria->
|
||||
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->next();
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
|
||||
while ($oDataset->next()) {
|
||||
$aRow = $oDataset->getRow();
|
||||
|
||||
if ($aRow['APP_DOC_TYPE'] == "ATTACHED") {
|
||||
$aRow['APP_DOC_TYPE'] = "INPUT";
|
||||
}
|
||||
if (!in_array($aRow['APP_DOC_UID'], $RESULT[$aRow['APP_DOC_TYPE']])) {
|
||||
array_push($RESULT[$aRow['APP_DOC_TYPE']], $aRow['APP_DOC_UID']);
|
||||
}
|
||||
$oDataset->next();
|
||||
}
|
||||
|
||||
$RESULT['CASES_NOTES'] = 1;
|
||||
$RESULT['SUMMARY_FORM'] = 1;
|
||||
|
||||
|
||||
@@ -32,6 +32,10 @@ class AppHistory extends BaseAppHistory
|
||||
$this->setHistoryDate($aData['APP_UPDATE_DATE']);
|
||||
$this->setHistoryData($aData['APP_DATA']);
|
||||
|
||||
if (isset($aData["OBJECT_TYPE"])) {
|
||||
$this->setObjType($aData["OBJECT_TYPE"]);
|
||||
}
|
||||
|
||||
if ($this->validate() ) {
|
||||
$res = $this->save();
|
||||
} 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->addSelectColumn(AppHistoryPeer::APP_UID);
|
||||
$c->addSelectColumn(AppHistoryPeer::DEL_INDEX);
|
||||
$c->addSelectColumn(AppHistoryPeer::PRO_UID);
|
||||
$c->addSelectColumn(AppHistoryPeer::TAS_UID);
|
||||
$c->addSelectColumn(AppHistoryPeer::DYN_UID);
|
||||
$c->addSelectColumn(AppHistoryPeer::OBJ_TYPE);
|
||||
$c->addSelectColumn(AppHistoryPeer::USR_UID);
|
||||
$c->addSelectColumn(AppHistoryPeer::APP_STATUS);
|
||||
$c->addSelectColumn(AppHistoryPeer::HISTORY_DATE);
|
||||
@@ -94,31 +122,55 @@ class AppHistory extends BaseAppHistory
|
||||
$c->addJoin(AppHistoryPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
|
||||
|
||||
//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::APP_UID, $APP_UID);
|
||||
if ((isset($DYN_UID))&&($DYN_UID!="")) {
|
||||
$c->add(AppHistoryPeer::DYN_UID, $DYN_UID);
|
||||
}
|
||||
|
||||
//ORDER BY
|
||||
$c->clearOrderByColumns();
|
||||
$c->addDescendingOrderByColumn(AppHistoryPeer::HISTORY_DATE);
|
||||
|
||||
//Execute
|
||||
$oDataset = AppHistoryPeer::doSelectRS($c);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
|
||||
$aDynHistory = array();
|
||||
$aDynHistory[] = array(
|
||||
'DYN_TITLE' => 'char'
|
||||
);
|
||||
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
$o = new Dynaform();
|
||||
$o->setDynUid($aRow['DYN_UID']);
|
||||
$aRow['DYN_TITLE'] = $o->getDynTitle();
|
||||
while ($oDataset->next()) {
|
||||
$aRow = $oDataset->getRow();
|
||||
|
||||
$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']);
|
||||
$html="<table border='0' cellpadding='0' cellspacing='0'>";
|
||||
$sw_add=false;
|
||||
@@ -166,7 +218,6 @@ class AppHistory extends BaseAppHistory
|
||||
if ($sw_add) {
|
||||
$aDynHistory[] = $aRow;
|
||||
}
|
||||
$oDataset->next();
|
||||
}
|
||||
|
||||
global $_DBArray;
|
||||
@@ -175,7 +226,8 @@ class AppHistory extends BaseAppHistory
|
||||
G::LoadClass('ArrayPeer');
|
||||
$oCriteria = new Criteria('dbarray');
|
||||
$oCriteria->setDBArrayTable('DynaformsHistory');
|
||||
$oCriteria->addDescendingOrderByColumn(AppHistoryPeer::HISTORY_DATE);
|
||||
$oCriteria->addAscendingOrderByColumn(AppHistoryPeer::HISTORY_DATE);
|
||||
|
||||
return $oCriteria;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,6 +75,8 @@ class AppHistoryMapBuilder
|
||||
|
||||
$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('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->addValidator('OBJ_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'DYNAFORM|INPUT_DOCUMENT|OUTPUT_DOCUMENT|EXTERNAL|ASSIGN_TASK', 'Please select a valid value for OBJ_TYPE.');
|
||||
|
||||
} // doBuild()
|
||||
|
||||
} // AppHistoryMapBuilder
|
||||
|
||||
@@ -57,6 +57,12 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
*/
|
||||
protected $dyn_uid = '';
|
||||
|
||||
/**
|
||||
* The value for the obj_type field.
|
||||
* @var string
|
||||
*/
|
||||
protected $obj_type = 'DYNAFORM';
|
||||
|
||||
/**
|
||||
* The value for the usr_uid field.
|
||||
* @var string
|
||||
@@ -150,6 +156,17 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
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.
|
||||
*
|
||||
@@ -325,6 +342,28 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
|
||||
} // 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.
|
||||
*
|
||||
@@ -447,20 +486,22 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
|
||||
$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->setNew(false);
|
||||
|
||||
// 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) {
|
||||
throw new PropelException("Error populating AppHistory object", $e);
|
||||
@@ -680,15 +721,18 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
return $this->getDynUid();
|
||||
break;
|
||||
case 5:
|
||||
return $this->getUsrUid();
|
||||
return $this->getObjType();
|
||||
break;
|
||||
case 6:
|
||||
return $this->getAppStatus();
|
||||
return $this->getUsrUid();
|
||||
break;
|
||||
case 7:
|
||||
return $this->getHistoryDate();
|
||||
return $this->getAppStatus();
|
||||
break;
|
||||
case 8:
|
||||
return $this->getHistoryDate();
|
||||
break;
|
||||
case 9:
|
||||
return $this->getHistoryData();
|
||||
break;
|
||||
default:
|
||||
@@ -716,10 +760,11 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
$keys[2] => $this->getProUid(),
|
||||
$keys[3] => $this->getTasUid(),
|
||||
$keys[4] => $this->getDynUid(),
|
||||
$keys[5] => $this->getUsrUid(),
|
||||
$keys[6] => $this->getAppStatus(),
|
||||
$keys[7] => $this->getHistoryDate(),
|
||||
$keys[8] => $this->getHistoryData(),
|
||||
$keys[5] => $this->getObjType(),
|
||||
$keys[6] => $this->getUsrUid(),
|
||||
$keys[7] => $this->getAppStatus(),
|
||||
$keys[8] => $this->getHistoryDate(),
|
||||
$keys[9] => $this->getHistoryData(),
|
||||
);
|
||||
return $result;
|
||||
}
|
||||
@@ -767,15 +812,18 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
$this->setDynUid($value);
|
||||
break;
|
||||
case 5:
|
||||
$this->setUsrUid($value);
|
||||
$this->setObjType($value);
|
||||
break;
|
||||
case 6:
|
||||
$this->setAppStatus($value);
|
||||
$this->setUsrUid($value);
|
||||
break;
|
||||
case 7:
|
||||
$this->setHistoryDate($value);
|
||||
$this->setAppStatus($value);
|
||||
break;
|
||||
case 8:
|
||||
$this->setHistoryDate($value);
|
||||
break;
|
||||
case 9:
|
||||
$this->setHistoryData($value);
|
||||
break;
|
||||
} // switch()
|
||||
@@ -822,19 +870,23 @@ abstract class BaseAppHistory extends BaseObject implements Persistent
|
||||
}
|
||||
|
||||
if (array_key_exists($keys[5], $arr)) {
|
||||
$this->setUsrUid($arr[$keys[5]]);
|
||||
$this->setObjType($arr[$keys[5]]);
|
||||
}
|
||||
|
||||
if (array_key_exists($keys[6], $arr)) {
|
||||
$this->setAppStatus($arr[$keys[6]]);
|
||||
$this->setUsrUid($arr[$keys[6]]);
|
||||
}
|
||||
|
||||
if (array_key_exists($keys[7], $arr)) {
|
||||
$this->setHistoryDate($arr[$keys[7]]);
|
||||
$this->setAppStatus($arr[$keys[7]]);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
if ($this->isColumnModified(AppHistoryPeer::OBJ_TYPE)) {
|
||||
$criteria->add(AppHistoryPeer::OBJ_TYPE, $this->obj_type);
|
||||
}
|
||||
|
||||
if ($this->isColumnModified(AppHistoryPeer::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->setObjType($this->obj_type);
|
||||
|
||||
$copyObj->setUsrUid($this->usr_uid);
|
||||
|
||||
$copyObj->setAppStatus($this->app_status);
|
||||
|
||||
@@ -25,7 +25,7 @@ abstract class BaseAppHistoryPeer
|
||||
const CLASS_DEFAULT = 'classes.model.AppHistory';
|
||||
|
||||
/** The total number of columns. */
|
||||
const NUM_COLUMNS = 9;
|
||||
const NUM_COLUMNS = 10;
|
||||
|
||||
/** The number of lazy-loaded columns. */
|
||||
const NUM_LAZY_LOAD_COLUMNS = 0;
|
||||
@@ -46,6 +46,9 @@ abstract class BaseAppHistoryPeer
|
||||
/** the column name for the DYN_UID field */
|
||||
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 */
|
||||
const USR_UID = 'APP_HISTORY.USR_UID';
|
||||
|
||||
@@ -69,10 +72,10 @@ abstract class BaseAppHistoryPeer
|
||||
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
|
||||
*/
|
||||
private static $fieldNames = array (
|
||||
BasePeer::TYPE_PHPNAME => array ('AppUid', 'DelIndex', 'ProUid', 'TasUid', 'DynUid', '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_FIELDNAME => array ('APP_UID', 'DEL_INDEX', 'PRO_UID', 'TAS_UID', 'DYN_UID', 'USR_UID', 'APP_STATUS', 'HISTORY_DATE', 'HISTORY_DATA', ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, )
|
||||
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::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', 'OBJ_TYPE', 'USR_UID', 'APP_STATUS', 'HISTORY_DATE', 'HISTORY_DATA', ),
|
||||
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
|
||||
*/
|
||||
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_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_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_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 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::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, '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, 9, )
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -196,6 +199,8 @@ abstract class BaseAppHistoryPeer
|
||||
|
||||
$criteria->addSelectColumn(AppHistoryPeer::DYN_UID);
|
||||
|
||||
$criteria->addSelectColumn(AppHistoryPeer::OBJ_TYPE);
|
||||
|
||||
$criteria->addSelectColumn(AppHistoryPeer::USR_UID);
|
||||
|
||||
$criteria->addSelectColumn(AppHistoryPeer::APP_STATUS);
|
||||
@@ -542,6 +547,9 @@ abstract class BaseAppHistoryPeer
|
||||
}
|
||||
} 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);
|
||||
|
||||
@@ -2549,10 +2549,14 @@
|
||||
<column name="PRO_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="OBJ_TYPE" type="VARCHAR" size="20" required="true" default="DYNAFORM" />
|
||||
<column name="USR_UID" type="VARCHAR" size="32" 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_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-column name="APP_UID"/>
|
||||
<index-column name="TAS_UID"/>
|
||||
|
||||
@@ -2612,6 +2612,7 @@ CREATE TABLE [APP_HISTORY]
|
||||
[PRO_UID] VARCHAR(32) default '' NOT NULL,
|
||||
[TAS_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,
|
||||
[APP_STATUS] VARCHAR(100) default '' NOT NULL,
|
||||
[HISTORY_DATE] CHAR(19) NULL,
|
||||
|
||||
@@ -1206,6 +1206,7 @@ CREATE TABLE `APP_HISTORY`
|
||||
`PRO_UID` VARCHAR(32) default '' NOT NULL,
|
||||
`TAS_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,
|
||||
`APP_STATUS` VARCHAR(100) default '' NOT NULL,
|
||||
`HISTORY_DATE` DATETIME,
|
||||
@@ -2380,3 +2381,4 @@ CREATE TABLE `LIST_UNASSIGNED_GROUP`
|
||||
)ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Unassiged list';
|
||||
# This restores the fkey checks, after having unset them earlier
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
|
||||
@@ -1491,6 +1491,7 @@ CREATE TABLE "APP_HISTORY"
|
||||
"PRO_UID" VARCHAR2(32) default '' NOT NULL,
|
||||
"TAS_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,
|
||||
"APP_STATUS" VARCHAR2(100) default '' NOT NULL,
|
||||
"HISTORY_DATE" DATE,
|
||||
|
||||
@@ -80,15 +80,18 @@ try {
|
||||
$_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_PROC_STATUS']);
|
||||
unset($appFields['APP_PROC_CODE']);
|
||||
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
|
||||
$oDerivation = new Derivation();
|
||||
@@ -112,6 +115,13 @@ try {
|
||||
unset($appFields['APP_PROC_STATUS']);
|
||||
unset($appFields['APP_PROC_CODE']);
|
||||
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 );
|
||||
|
||||
// Send notifications - Start
|
||||
|
||||
@@ -153,6 +153,10 @@ $arrayData["APP_NUMBER"] = $arrayField["APP_NUMBER"];
|
||||
$arrayData["APP_DATA"] = $arrayField["APP_DATA"];
|
||||
$arrayData["DEL_INDEX"] = $_SESSION["INDEX"];
|
||||
$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);
|
||||
|
||||
|
||||
@@ -182,12 +182,16 @@ unset($Fields['APP_STATUS']);
|
||||
unset($Fields['APP_PROC_STATUS']);
|
||||
unset($Fields['APP_PROC_CODE']);
|
||||
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 );
|
||||
//Save data - End
|
||||
|
||||
|
||||
//Obtain previous and next step - Start
|
||||
try {
|
||||
try {
|
||||
$oCase = new Cases();
|
||||
$aNextStep = $oCase->getNextStep( $_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()) : ''));
|
||||
}
|
||||
break;
|
||||
case 'INPUT_DOCUMENT':
|
||||
case 'INPUT_DOCUMENT':
|
||||
if ($noShowTitle == 0) {
|
||||
$G_PUBLISH->AddContent( 'smarty', 'cases/cases_title', '', '', $array );
|
||||
}
|
||||
$oInputDocument = new InputDocument();
|
||||
$Fields = $oInputDocument->load( $_GET['UID'] );
|
||||
$Fields = $oInputDocument->load( $_GET['UID'] );
|
||||
if (! $aPreviousStep) {
|
||||
$Fields['__DYNAFORM_OPTIONS']['PREVIOUS_STEP_LABEL'] = '';
|
||||
$Fields['PREVIOUS_STEP_LABEL'] = '';
|
||||
@@ -285,13 +289,13 @@ try {
|
||||
$Fields['NEXT_STEP'] = $aNextStep['PAGE'];
|
||||
$Fields['NEXT_STEP_LABEL'] = G::loadTranslation( "ID_NEXT_STEP" );
|
||||
switch ($_GET['ACTION']) {
|
||||
case 'ATTACH':
|
||||
case 'ATTACH':
|
||||
switch ($Fields['INP_DOC_FORM_NEEDED']) {
|
||||
case 'REAL':
|
||||
$Fields['TYPE_LABEL'] = G::LoadTranslation( 'ID_NEW' );
|
||||
$sXmlForm = 'cases/cases_AttachInputDocument2';
|
||||
break;
|
||||
case 'VIRTUAL':
|
||||
case 'VIRTUAL':
|
||||
$Fields['TYPE_LABEL'] = G::LoadTranslation( 'ID_ATTACH' );
|
||||
$sXmlForm = 'cases/cases_AttachInputDocument1';
|
||||
break;
|
||||
@@ -326,7 +330,7 @@ try {
|
||||
|
||||
$oHeadPublisher = & headPublisher::getSingleton();
|
||||
$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") ) ) ) . "";
|
||||
}
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
<td width="20%">{dynDate}</td>
|
||||
<td width="20%">{dynUser}</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>
|
||||
</table>
|
||||
</td>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
<?php
|
||||
/**
|
||||
* cases_DynaformHistory.php
|
||||
*
|
||||
@@ -21,162 +21,157 @@
|
||||
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
|
||||
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
|
||||
*
|
||||
*/
|
||||
|
||||
$tpl = new TemplatePower( PATH_TPL . 'cases/cases_DynaformHistory.html' );
|
||||
|
||||
$tpl->prepare();
|
||||
|
||||
G::LoadClass('case');
|
||||
$oCase = new Cases();
|
||||
$Fields = $oCase->loadCase($_SESSION['APPLICATION']);
|
||||
|
||||
// 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';
|
||||
$appHistory = new AppHistory();
|
||||
$c=$appHistory->getDynaformHistory($_REQUEST['PRO_UID'],$_REQUEST['TAS_UID'],$_REQUEST['APP_UID'],$_REQUEST['DYN_UID']);
|
||||
|
||||
$oDataset = ArrayBasePeer::doSelectRs ( $c);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
|
||||
$changeCount=0;
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
$changeCount++;
|
||||
|
||||
$changedValues=unserialize($aRow['HISTORY_DATA']);
|
||||
$tableName="_TCHANGE_".$changeCount;
|
||||
$historyDataAux[$tableName]=$changedValues;
|
||||
$oDataset->next();
|
||||
}
|
||||
|
||||
$historyData=array_reverse($historyDataAux);
|
||||
$changeCount=count($historyData);
|
||||
foreach($historyData as $key => $value){
|
||||
$tableName="_TCHANGE_".$changeCount;
|
||||
$changeCountA=$changeCount+1;
|
||||
$tableNameA="_TCHANGE_".$changeCountA;
|
||||
|
||||
if(isset($historyData[$tableNameA])){
|
||||
//$historyData[$key]=array_merge($historyData[$tableNameA],$value);
|
||||
//Array merge recursive doesn't work. So here is an own procedure
|
||||
$historyData[$key]=$historyData[$tableNameA];
|
||||
foreach($value as $key1 => $value2){
|
||||
if(!is_array($value2)){
|
||||
$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--;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
$oDataset = ArrayBasePeer::doSelectRs ( $c);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
$changeCount=0;
|
||||
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
$changeCount++;
|
||||
|
||||
|
||||
$changedValues=unserialize($aRow['HISTORY_DATA']);
|
||||
|
||||
$tpl->newBlock( "DYNLOG" );
|
||||
$tableName="_TCHANGE_".$changeCount;
|
||||
$changeCountA=$changeCount+1;
|
||||
$tableNameA="_TCHANGE_".$changeCountA;
|
||||
|
||||
$tpl->assign( "dynTitle" , addslashes($aRow['DYN_TITLE']) );
|
||||
$tpl->assign( "dynDate" , $aRow['HISTORY_DATE'] );
|
||||
$tpl->assign( "dynUser" , addslashes($aRow['USR_NAME']) );
|
||||
$tpl->assign( "changes" , G::LoadTranslation("ID_CHANGES") );
|
||||
$tpl->assign( "dynUID" , $aRow['DYN_UID'] );
|
||||
$tpl->assign( "tablename" , $tableName );
|
||||
|
||||
|
||||
$tpl->assign( "viewForm" , G::LoadTranslation("ID_VIEW") );
|
||||
$tpl->assign( "dynaform" , G::LoadTranslation("ID_DYNAFORM") );
|
||||
$tpl->assign( "date" , G::LoadTranslation("ID_DATE") );
|
||||
$tpl->assign( "user" , G::LoadTranslation("ID_USER") );
|
||||
|
||||
$tpl->assign( "fieldNameLabel" , G::LoadTranslation("ID_FIELDS") );
|
||||
$tpl->assign( "previousValuesLabel" , G::LoadTranslation("ID_PREV_VALUES") );
|
||||
$tpl->assign( "currentValuesLabel" , G::LoadTranslation("ID_CURRENT_VALUES") );
|
||||
|
||||
|
||||
|
||||
|
||||
$count=0;
|
||||
foreach($changedValues as $key =>$value){
|
||||
if(($value!=NULL)&&(!is_array($value))){
|
||||
if (isset($form) && isset($form->fields[$key])) {
|
||||
$label = $form->fields[$key]->label . ' (' . $key . ')';
|
||||
}
|
||||
else {
|
||||
$label = $key;
|
||||
}
|
||||
$tpl->newBlock( "FIELDLOG" );
|
||||
$tpl->assign( "fieldName" , $label );
|
||||
$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($value1)){
|
||||
foreach($value1 as $key2 =>$value2) {
|
||||
if (isset($form) && isset($form->fields[$key]->fields[$key2])) {
|
||||
$label = $form->fields[$key]->fields[$key2]->label . ' (' . $key . '[' . $key1 . '][' . $key2 . '])';
|
||||
}
|
||||
else {
|
||||
$label = $key . '[' . $key1 . ']' . '[' . $key2 . ']';
|
||||
}
|
||||
$tpl->newBlock( "FIELDLOG" );
|
||||
$tpl->assign( "fieldName" , $label );
|
||||
$tpl->assign( "previous" , isset($historyData[$tableNameA][$key][$key1][$key2])?$historyData[$tableNameA][$key][$key1][$key2]:"" );
|
||||
$tpl->assign( "actual" , $value2 );
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$tpl->gotoBlock( "DYNLOG" );
|
||||
|
||||
$tpl->assign( "dynChanges" , G::LoadTranslation("ID_FIELDS_CHANGED_NUMBER")." (".$count.")" );
|
||||
$tpl->assign( "count" , $count+1 );
|
||||
|
||||
$oDataset->next();
|
||||
|
||||
}
|
||||
if(!isset($changedValues)){
|
||||
$tpl->newBlock( "NORESULTS" );
|
||||
$tpl->assign( "noResults" , G::LoadTranslation("ID_NO_RECORDS_FOUND"));
|
||||
}
|
||||
|
||||
$_SESSION['HISTORY_DATA']=serialize($historyData);
|
||||
$tpl->gotoBlock( "_ROOT" );
|
||||
|
||||
$tpl->printToScreen();
|
||||
|
||||
?>
|
||||
*/
|
||||
|
||||
$tpl = new TemplatePower(PATH_TPL . "cases" . PATH_SEP . "cases_DynaformHistory.html");
|
||||
|
||||
$tpl->prepare();
|
||||
|
||||
require_once 'classes/model/AppHistory.php';
|
||||
G::LoadClass('case');
|
||||
|
||||
$oCase = new Cases();
|
||||
$Fields = $oCase->loadCase($_SESSION['APPLICATION']);
|
||||
|
||||
// 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();
|
||||
|
||||
$appHistory = new AppHistory();
|
||||
$c = $appHistory->getDynaformHistory($_REQUEST['PRO_UID'], $_REQUEST['TAS_UID'], $_REQUEST['APP_UID'], $_REQUEST['DYN_UID']);
|
||||
|
||||
$oDataset = ArrayBasePeer::doSelectRs($c);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$changeCount = 0;
|
||||
|
||||
while ($oDataset->next()) {
|
||||
$aRow = $oDataset->getRow();
|
||||
|
||||
$changeCount++;
|
||||
|
||||
$changedValues = unserialize($aRow['HISTORY_DATA']);
|
||||
$tableName = "_TCHANGE_" . $changeCount;
|
||||
$historyDataAux[$tableName] = $changedValues;
|
||||
}
|
||||
|
||||
$historyData = array_reverse($historyDataAux);
|
||||
$changeCount = count($historyData);
|
||||
|
||||
foreach ($historyData as $key => $value) {
|
||||
$tableName = "_TCHANGE_" . $changeCount;
|
||||
$changeCountA = $changeCount + 1;
|
||||
$tableNameA = "_TCHANGE_" . $changeCountA;
|
||||
|
||||
if (isset($historyData[$tableNameA])) {
|
||||
//$historyData[$key]=array_merge($historyData[$tableNameA],$value);
|
||||
//Array merge recursive doesn't work. So here is an own procedure
|
||||
$historyData[$key] = $historyData[$tableNameA];
|
||||
|
||||
foreach ($value as $key1 => $value2) {
|
||||
if (!is_array($value2)) {
|
||||
$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--;
|
||||
}
|
||||
|
||||
$oDataset = ArrayBasePeer::doSelectRs($c);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$changeCount = 0;
|
||||
|
||||
while ($oDataset->next()) {
|
||||
$aRow = $oDataset->getRow();
|
||||
|
||||
$changeCount++;
|
||||
|
||||
$changedValues = unserialize($aRow['HISTORY_DATA']);
|
||||
|
||||
$tpl->newBlock("DYNLOG");
|
||||
$tableName = "_TCHANGE_".$changeCount;
|
||||
$changeCountA = $changeCount + 1;
|
||||
$tableNameA = "_TCHANGE_" . $changeCountA;
|
||||
|
||||
$tpl->assign("dynTitle", addslashes($aRow["DYN_TITLE"]));
|
||||
$tpl->assign("dynDate", $aRow["HISTORY_DATE"]);
|
||||
$tpl->assign("dynUser", addslashes($aRow["USR_NAME"]));
|
||||
$tpl->assign("changes", G::LoadTranslation("ID_CHANGES"));
|
||||
$tpl->assign("dynUID", $aRow["DYN_UID"]);
|
||||
$tpl->assign("tablename", $tableName);
|
||||
|
||||
$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("date", G::LoadTranslation("ID_DATE"));
|
||||
$tpl->assign("user", G::LoadTranslation("ID_USER"));
|
||||
|
||||
$tpl->assign("fieldNameLabel", G::LoadTranslation("ID_FIELDS"));
|
||||
$tpl->assign("previousValuesLabel", G::LoadTranslation("ID_PREV_VALUES"));
|
||||
$tpl->assign("currentValuesLabel", G::LoadTranslation("ID_CURRENT_VALUES"));
|
||||
|
||||
$count = 0;
|
||||
|
||||
foreach ($changedValues as $key => $value) {
|
||||
if ($value != null && !is_array($value)) {
|
||||
if (isset($form) && isset($form->fields[$key])) {
|
||||
$label = $form->fields[$key]->label . ' (' . $key . ')';
|
||||
} else {
|
||||
$label = $key;
|
||||
}
|
||||
$tpl->newBlock("FIELDLOG");
|
||||
$tpl->assign("fieldName", $label);
|
||||
$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($value1)) {
|
||||
foreach ($value1 as $key2 => $value2) {
|
||||
if (isset($form) && isset($form->fields[$key]->fields[$key2])) {
|
||||
$label = $form->fields[$key]->fields[$key2]->label . ' (' . $key . '[' . $key1 . '][' . $key2 . '])';
|
||||
} else {
|
||||
$label = $key . '[' . $key1 . ']' . '[' . $key2 . ']';
|
||||
}
|
||||
$tpl->newBlock("FIELDLOG");
|
||||
$tpl->assign("fieldName", $label);
|
||||
$tpl->assign("previous", (isset($historyData[$tableNameA][$key][$key1][$key2]))? $historyData[$tableNameA][$key][$key1][$key2] : "");
|
||||
$tpl->assign("actual", $value2);
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tpl->gotoBlock("DYNLOG");
|
||||
|
||||
$tpl->assign("dynChanges", G::LoadTranslation("ID_FIELDS_CHANGED_NUMBER") . " (" . $count . ")");
|
||||
$tpl->assign("count", $count + 1);
|
||||
}
|
||||
|
||||
if (!isset($changedValues)) {
|
||||
$tpl->newBlock("NORESULTS");
|
||||
$tpl->assign("noResults", G::LoadTranslation("ID_NO_RECORDS_FOUND"));
|
||||
}
|
||||
|
||||
$_SESSION['HISTORY_DATA'] = serialize($historyData);
|
||||
$tpl->gotoBlock("_ROOT");
|
||||
|
||||
$tpl->printToScreen();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user