2015-04-01 14:11:47 -04:00
|
|
|
|
<?php
|
2012-07-03 15:35:57 -04:00
|
|
|
|
|
2011-01-31 14:14:55 +00:00
|
|
|
|
/**
|
|
|
|
|
|
* AdditionalTables.php
|
|
|
|
|
|
* @package workflow.engine.classes.model
|
|
|
|
|
|
*/
|
2010-12-02 23:34:41 +00:00
|
|
|
|
require_once 'classes/model/om/BaseAdditionalTables.php';
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Skeleton subclass for representing a row from the 'ADDITIONAL_TABLES' table.
|
|
|
|
|
|
*
|
|
|
|
|
|
*
|
|
|
|
|
|
*
|
|
|
|
|
|
* You should add additional methods to this class to meet the
|
|
|
|
|
|
* application requirements. This class will only be generated as
|
|
|
|
|
|
* long as it does not already exist in the output directory.
|
|
|
|
|
|
* <juliocesar@colosa.com, julces2000@gmail.com>
|
2011-06-28 12:53:25 -04:00
|
|
|
|
*
|
2011-01-31 14:14:55 +00:00
|
|
|
|
* @package workflow.engine.classes.model
|
2010-12-02 23:34:41 +00:00
|
|
|
|
*/
|
2013-01-28 10:20:24 -04:00
|
|
|
|
|
|
|
|
|
|
function validateType ($value, $type)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch ($type) {
|
|
|
|
|
|
case 'INTEGER':
|
|
|
|
|
|
$value = str_replace(",", "", $value);
|
|
|
|
|
|
$value = str_replace(".", "", $value);
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'FLOAT':
|
|
|
|
|
|
case 'DOUBLE':
|
|
|
|
|
|
$pos = strrpos($value, ",");
|
|
|
|
|
|
$pos = ($pos === false) ? 0 : $pos;
|
|
|
|
|
|
|
|
|
|
|
|
$posPoint = strrpos($value, ".");
|
|
|
|
|
|
$posPoint = ($posPoint === false) ? 0 : $posPoint;
|
|
|
|
|
|
|
|
|
|
|
|
if ($pos > $posPoint) {
|
|
|
|
|
|
$value2 = substr($value, $pos+1);
|
|
|
|
|
|
$value1 = substr($value, 0, $pos);
|
|
|
|
|
|
$value1 = str_replace(".", "", $value1);
|
|
|
|
|
|
$value = $value1.".".$value2;
|
|
|
|
|
|
} else {
|
2015-11-13 11:44:57 -04:00
|
|
|
|
if($posPoint) {
|
|
|
|
|
|
$value2 = substr($value, $posPoint+1);
|
|
|
|
|
|
$value1 = substr($value, 0, $posPoint);
|
|
|
|
|
|
$value1 = str_replace(",", "", $value1);
|
|
|
|
|
|
$value = $value1.".".$value2;
|
|
|
|
|
|
}
|
2013-01-28 10:20:24 -04:00
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
return $value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
class AdditionalTables extends BaseAdditionalTables
|
|
|
|
|
|
{
|
|
|
|
|
|
public $fields = array();
|
|
|
|
|
|
public $primaryKeys = array();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Function load
|
|
|
|
|
|
* access public
|
|
|
|
|
|
*/
|
2012-10-22 05:57:53 -04:00
|
|
|
|
public function load($sUID, $bFields = false)
|
2012-07-03 15:35:57 -04:00
|
|
|
|
{
|
|
|
|
|
|
$oAdditionalTables = AdditionalTablesPeer::retrieveByPK($sUID);
|
|
|
|
|
|
|
|
|
|
|
|
if (is_null($oAdditionalTables)) {
|
|
|
|
|
|
return null;
|
|
|
|
|
|
}
|
2011-09-05 12:47:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$aFields = $oAdditionalTables->toArray(BasePeer::TYPE_FIELDNAME);
|
|
|
|
|
|
$this->fromArray($aFields, BasePeer::TYPE_FIELDNAME);
|
2011-09-05 12:47:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
if ($bFields) {
|
|
|
|
|
|
$aFields['FIELDS'] = $this->getFields();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return $aFields;
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2011-10-11 17:13:13 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
public function getFields()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (count($this->fields) > 0) {
|
|
|
|
|
|
return $this->fields;
|
|
|
|
|
|
}
|
2011-10-11 17:13:13 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
require_once 'classes/model/Fields.php';
|
|
|
|
|
|
$oCriteria = new Criteria('workflow');
|
|
|
|
|
|
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_UID);
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_INDEX);
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_NAME);
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_DESCRIPTION);
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_TYPE);
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_SIZE);
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_NULL);
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_AUTO_INCREMENT);
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_KEY);
|
2014-09-10 13:34:39 -04:00
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_TABLE_INDEX);
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_FOREIGN_KEY);
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_FOREIGN_KEY_TABLE);
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_DYN_NAME);
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_DYN_UID);
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_FILTER);
|
|
|
|
|
|
$oCriteria->add(FieldsPeer::ADD_TAB_UID, $this->getAddTabUid());
|
|
|
|
|
|
$oCriteria->addAscendingOrderByColumn(FieldsPeer::FLD_INDEX);
|
|
|
|
|
|
|
|
|
|
|
|
$oDataset = FieldsPeer::doSelectRS($oCriteria);
|
|
|
|
|
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
|
|
2014-02-07 11:18:02 -04:00
|
|
|
|
while ($oDataset->next()) {
|
|
|
|
|
|
$auxField = $oDataset->getRow();
|
|
|
|
|
|
if ($auxField['FLD_TYPE'] == 'TIMESTAMP') {
|
|
|
|
|
|
$auxField['FLD_TYPE'] = 'DATETIME';
|
|
|
|
|
|
}
|
|
|
|
|
|
$this->fields[] = $auxField;
|
2013-11-15 13:56:20 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
return $this->fields;
|
2011-08-30 09:35:32 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-10-22 05:57:53 -04:00
|
|
|
|
public function getPrimaryKeys($type = 'complete')
|
2012-07-03 15:35:57 -04:00
|
|
|
|
{
|
|
|
|
|
|
$this->primaryKeys = array();
|
|
|
|
|
|
foreach ($this->fields as $field) {
|
|
|
|
|
|
if ($field['FLD_KEY'] == '1') {
|
|
|
|
|
|
if ($type == 'complete') {
|
|
|
|
|
|
$this->primaryKeys[] = $field;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// just field names
|
|
|
|
|
|
$this->primaryKeys[] = $field['FLD_NAME'];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return $this->primaryKeys;
|
2011-08-30 09:35:32 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
public function loadByName($name)
|
|
|
|
|
|
{
|
|
|
|
|
|
try {
|
|
|
|
|
|
$oCriteria = new Criteria('workflow');
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_UID);
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_NAME);
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_CLASS_NAME);
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_DESCRIPTION);
|
|
|
|
|
|
//DEPRECATED! $oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_SDW_LOG_INSERT);
|
|
|
|
|
|
// $oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_SDW_LOG_UPDATE);
|
|
|
|
|
|
// $oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_SDW_LOG_DELETE);
|
|
|
|
|
|
// $oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_SDW_LOG_SELECT);
|
|
|
|
|
|
// $oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_SDW_MAX_LENGTH);
|
|
|
|
|
|
// $oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_SDW_AUTO_DELETE);
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_PLG_UID);
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::DBS_UID);
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::PRO_UID);
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_TYPE);
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_GRID);
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_TAG);
|
|
|
|
|
|
|
|
|
|
|
|
// AdditionalTablesPeer::ADD_TAB_NAME is unique
|
|
|
|
|
|
$oCriteria->add(AdditionalTablesPeer::ADD_TAB_NAME, $name, Criteria::EQUAL);
|
|
|
|
|
|
|
|
|
|
|
|
$oDataset = AdditionalTablesPeer::doSelectRS($oCriteria);
|
|
|
|
|
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
|
|
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
|
|
|
|
|
|
|
return $oDataset->getRow();
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw($oError);
|
2011-09-20 09:18:50 -04:00
|
|
|
|
}
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
/**
|
|
|
|
|
|
* Create & Update function
|
|
|
|
|
|
*/
|
2012-10-22 05:57:53 -04:00
|
|
|
|
public function create($aData, $aFields = array())
|
2012-07-03 15:35:57 -04:00
|
|
|
|
{
|
|
|
|
|
|
if (!isset($aData['ADD_TAB_UID']) || (isset($aData['ADD_TAB_UID']) && $aData['ADD_TAB_UID'] == '')) {
|
|
|
|
|
|
$aData['ADD_TAB_UID'] = G::generateUniqueID();
|
|
|
|
|
|
}
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$oConnection = Propel::getConnection(AdditionalTablesPeer::DATABASE_NAME);
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
$oAdditionalTables = new AdditionalTables();
|
|
|
|
|
|
$oAdditionalTables->fromArray($aData, BasePeer::TYPE_FIELDNAME);
|
|
|
|
|
|
|
|
|
|
|
|
if ($oAdditionalTables->validate()) {
|
|
|
|
|
|
$oConnection->begin();
|
|
|
|
|
|
$iResult = $oAdditionalTables->save();
|
|
|
|
|
|
$oConnection->commit();
|
|
|
|
|
|
/* * **DEPRECATED
|
|
|
|
|
|
require_once 'classes/model/ShadowTable.php';
|
|
|
|
|
|
$oShadowTable = new ShadowTable();
|
|
|
|
|
|
$oShadowTable->create(array('ADD_TAB_UID' => $aData['ADD_TAB_UID'],
|
|
|
|
|
|
'SHD_ACTION' => 'CREATE',
|
|
|
|
|
|
'SHD_DETAILS' => serialize($aFields),
|
|
|
|
|
|
'USR_UID' => (isset($_SESSION['USER_LOGGED']) ? $_SESSION['USER_LOGGED'] : ''),
|
|
|
|
|
|
'APP_UID' => '',
|
|
|
|
|
|
'SHD_DATE' => date('Y-m-d H:i:s')));
|
|
|
|
|
|
*/
|
2014-10-24 12:32:30 -04:00
|
|
|
|
|
2014-11-07 16:32:28 -04:00
|
|
|
|
$addTabDescription = ($aData["ADD_TAB_DESCRIPTION"] != "")? ", Description: " . $aData["ADD_TAB_DESCRIPTION"] : ".";
|
2014-11-07 13:43:52 -04:00
|
|
|
|
G::auditLog("CreatePmtable", "PM Table Name: " . $aData['ADD_TAB_NAME'] . $addTabDescription);
|
2012-07-03 15:35:57 -04:00
|
|
|
|
return $aData['ADD_TAB_UID'];
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$sMessage = '';
|
|
|
|
|
|
$aValidationFailures = $oAdditionalTables->getValidationFailures();
|
|
|
|
|
|
foreach ($aValidationFailures as $oValidationFailure) {
|
|
|
|
|
|
$sMessage .= $oValidationFailure->getMessage() . '<br />';
|
|
|
|
|
|
}
|
|
|
|
|
|
throw(new Exception('The registry cannot be created!<br />' . $sMessage));
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
$oConnection->rollback();
|
|
|
|
|
|
throw($oError);
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
|
2012-10-22 05:57:53 -04:00
|
|
|
|
public function update($aData, $aFields = array())
|
2012-07-03 15:35:57 -04:00
|
|
|
|
{
|
|
|
|
|
|
$oConnection = Propel::getConnection(AdditionalTablesPeer::DATABASE_NAME);
|
|
|
|
|
|
try {
|
|
|
|
|
|
$oAdditionalTables = AdditionalTablesPeer::retrieveByPK($aData['ADD_TAB_UID']);
|
|
|
|
|
|
if (!is_null($oAdditionalTables)) {
|
|
|
|
|
|
$oAdditionalTables->fromArray($aData, BasePeer::TYPE_FIELDNAME);
|
|
|
|
|
|
if ($oAdditionalTables->validate()) {
|
|
|
|
|
|
$oConnection->begin();
|
|
|
|
|
|
$iResult = $oAdditionalTables->save();
|
|
|
|
|
|
$oConnection->commit();
|
2014-11-07 16:32:28 -04:00
|
|
|
|
$addTabDescription = ($aData["ADD_TAB_DESCRIPTION"] != "")? ", Description: " . $aData["ADD_TAB_DESCRIPTION"] : ".";
|
2014-11-07 13:43:52 -04:00
|
|
|
|
G::auditLog("UpdatePmtable", "PM Table Name: ".$aData['ADD_TAB_NAME'] . $addTabDescription . ", PM Table ID: (".$aData['ADD_TAB_UID'].") ");
|
2012-07-03 15:35:57 -04:00
|
|
|
|
} else {
|
|
|
|
|
|
$sMessage = '';
|
|
|
|
|
|
$aValidationFailures = $oAdditionalTables->getValidationFailures();
|
|
|
|
|
|
foreach ($aValidationFailures as $oValidationFailure) {
|
|
|
|
|
|
$sMessage .= $oValidationFailure->getMessage() . '<br />';
|
|
|
|
|
|
}
|
|
|
|
|
|
throw(new Exception('The registry cannot be updated!<br />' . $sMessage));
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
throw(new Exception('This row doesn\'t exist!'));
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
$oConnection->rollback();
|
|
|
|
|
|
throw($oError);
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
public function remove($sUID)
|
|
|
|
|
|
{
|
|
|
|
|
|
$oConnection = Propel::getConnection(AdditionalTablesPeer::DATABASE_NAME);
|
|
|
|
|
|
try {
|
|
|
|
|
|
$oAdditionalTables = AdditionalTablesPeer::retrieveByPK($sUID);
|
|
|
|
|
|
if (!is_null($oAdditionalTables)) {
|
|
|
|
|
|
$aAdditionalTables = $oAdditionalTables->toArray(BasePeer::TYPE_FIELDNAME);
|
|
|
|
|
|
$oConnection->begin();
|
|
|
|
|
|
$iResult = $oAdditionalTables->delete();
|
|
|
|
|
|
$oConnection->commit();
|
|
|
|
|
|
|
|
|
|
|
|
return $iResult;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
throw(new Exception('This row doesn\'t exist!'));
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
$oConnection->rollback();
|
|
|
|
|
|
throw($oError);
|
|
|
|
|
|
}
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2014-02-07 11:18:02 -04:00
|
|
|
|
/**
|
|
|
|
|
|
* verify if Additional Table row specified in [sUID] exists.
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param string $sUID the uid of the additional table
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function exists ($sUID)
|
|
|
|
|
|
{
|
|
|
|
|
|
$con = Propel::getConnection(AdditionalTablesPeer::DATABASE_NAME);
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
$oPro = AdditionalTablesPeer::retrieveByPk($sUID);
|
|
|
|
|
|
if (is_object($oPro) && get_class($oPro) == 'AdditionalTables') {
|
|
|
|
|
|
return true;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw ($oError);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
public function deleteAll($id)
|
|
|
|
|
|
{
|
|
|
|
|
|
//deleting pm table
|
|
|
|
|
|
$additionalTable = AdditionalTables::load($id);
|
|
|
|
|
|
AdditionalTables::remove($id);
|
|
|
|
|
|
|
|
|
|
|
|
//deleting fields
|
|
|
|
|
|
require_once 'classes/model/Fields.php';
|
|
|
|
|
|
$criteria = new Criteria('workflow');
|
|
|
|
|
|
$criteria->add(FieldsPeer::ADD_TAB_UID, $id);
|
|
|
|
|
|
FieldsPeer::doDelete($criteria);
|
|
|
|
|
|
|
|
|
|
|
|
//remove all related to pmTable
|
|
|
|
|
|
G::loadClass('pmTable');
|
|
|
|
|
|
$pmTable = new pmTable($additionalTable['ADD_TAB_NAME']);
|
|
|
|
|
|
$pmTable->setDataSource($additionalTable['DBS_UID']);
|
|
|
|
|
|
$pmTable->remove();
|
2012-06-25 15:26:44 -04:00
|
|
|
|
}
|
2011-07-08 19:06:32 -04:00
|
|
|
|
|
2016-03-01 19:12:13 -04:00
|
|
|
|
public static function getPHPName($sName)
|
2012-07-03 15:35:57 -04:00
|
|
|
|
{
|
|
|
|
|
|
$sName = trim($sName);
|
|
|
|
|
|
$aAux = explode('_', $sName);
|
|
|
|
|
|
foreach ($aAux as $iKey => $sPart) {
|
|
|
|
|
|
$aAux[$iKey] = ucwords(strtolower($sPart));
|
|
|
|
|
|
}
|
|
|
|
|
|
return implode('', $aAux);
|
2011-07-08 19:06:32 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
public function deleteMultiple($arrUID)
|
|
|
|
|
|
{
|
|
|
|
|
|
$arrUIDs = explode(",", $arrUID);
|
|
|
|
|
|
foreach ($arrUIDs as $UID) {
|
|
|
|
|
|
$this->deleteAll($UID);
|
2011-11-25 11:02:31 -04:00
|
|
|
|
}
|
2011-07-08 19:06:32 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
public function getDataCriteria($sUID)
|
|
|
|
|
|
{
|
|
|
|
|
|
try {
|
|
|
|
|
|
$aData = $this->load($sUID, true);
|
|
|
|
|
|
$sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP;
|
|
|
|
|
|
$sClassName = ($aData['ADD_TAB_CLASS_NAME'] != ''
|
|
|
|
|
|
? $aData['ADD_TAB_CLASS_NAME']
|
|
|
|
|
|
: $this->getPHPName($aData['ADD_TAB_NAME']));
|
|
|
|
|
|
|
|
|
|
|
|
if (file_exists($sPath . $sClassName . '.php')) {
|
|
|
|
|
|
require_once $sPath . $sClassName . '.php';
|
|
|
|
|
|
} else {
|
|
|
|
|
|
return null;
|
|
|
|
|
|
}
|
2011-07-08 19:06:32 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$sClassPeerName = $sClassName . 'Peer';
|
|
|
|
|
|
$con = Propel::getConnection($aData['DBS_UID']);
|
|
|
|
|
|
$oCriteria = new Criteria($aData['DBS_UID']);
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
//eval('$oCriteria->addSelectColumn(' . $sClassPeerName . '::PM_UNIQUE_ID);');
|
|
|
|
|
|
eval('$oCriteria->addSelectColumn("\'1\' AS DUMMY");');
|
|
|
|
|
|
foreach ($aData['FIELDS'] as $aField) {
|
|
|
|
|
|
eval('$oCriteria->addSelectColumn(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ');');
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
switch ($aField['FLD_TYPE']) {
|
|
|
|
|
|
case 'VARCHAR':
|
|
|
|
|
|
case 'TEXT':
|
|
|
|
|
|
case 'DATE':
|
|
|
|
|
|
// if($aField['FLD_NULL']!=1)
|
|
|
|
|
|
// eval('$oCriteria->add(' . $sClassPeerName . '::' . $aField['FLD_NAME']
|
|
|
|
|
|
//. ', \'(<28>_<EFBFBD>_<EFBFBD>)\', Criteria::NOT_EQUAL);');
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'INT';
|
|
|
|
|
|
case 'FLOAT':
|
|
|
|
|
|
eval('$oCriteria->add(' . $sClassPeerName . '::' . $aField['FLD_NAME']
|
|
|
|
|
|
.', -99999999999, Criteria::NOT_EQUAL);');
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
//eval('$oCriteria->addAscendingOrderByColumn(' . $sClassPeerName . '::PM_UNIQUE_ID);');
|
|
|
|
|
|
//echo $oCriteria->toString();
|
|
|
|
|
|
return $oCriteria;
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw($oError);
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
|
2014-06-18 11:31:22 -04:00
|
|
|
|
public function getAllData($sUID, $start = null, $limit = null, $keyOrderUppercase = true, $filter = '', $appUid = false)
|
2012-07-03 15:35:57 -04:00
|
|
|
|
{
|
|
|
|
|
|
$addTab = new AdditionalTables();
|
|
|
|
|
|
$aData = $addTab->load($sUID, true);
|
|
|
|
|
|
if (!isset($_SESSION['PROCESS'])) {
|
|
|
|
|
|
$_SESSION["PROCESS"] = $aData['PRO_UID'];
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$aData['DBS_UID'] = $aData['DBS_UID'] ? $aData['DBS_UID'] : 'workflow';
|
|
|
|
|
|
$sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP;
|
|
|
|
|
|
$sClassName = ($aData['ADD_TAB_CLASS_NAME'] != ''
|
|
|
|
|
|
? $aData['ADD_TAB_CLASS_NAME']
|
|
|
|
|
|
: $this->getPHPName($aData['ADD_TAB_NAME']));
|
|
|
|
|
|
|
|
|
|
|
|
if (file_exists($sPath . $sClassName . '.php')) {
|
|
|
|
|
|
require_once $sPath . $sClassName . '.php';
|
|
|
|
|
|
} else {
|
|
|
|
|
|
return null;
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
|
|
|
|
|
|
$sClassPeerName = $sClassName . 'Peer';
|
|
|
|
|
|
$con = Propel::getConnection($aData['DBS_UID']);
|
|
|
|
|
|
$oCriteria = new Criteria($aData['DBS_UID']);
|
|
|
|
|
|
|
|
|
|
|
|
//eval('$oCriteria->addSelectColumn("\'1\' AS DUMMY");');
|
2014-05-07 14:29:14 -04:00
|
|
|
|
|
2014-01-28 13:01:23 -04:00
|
|
|
|
/*
|
|
|
|
|
|
* data type:
|
|
|
|
|
|
* 'INTEGER' 'BIGINT' 'SMALLINT' 'TINYINT' 'DECIMAL' 'DOUBLE' 'FLOAT' 'REAL'
|
|
|
|
|
|
* 'CHAR' 'VARCHAR' 'LONGVARCHAR' 'BOOLEAN' 'DATE' 'DATETIME' 'TIME'
|
|
|
|
|
|
*/
|
|
|
|
|
|
$types = array('DECIMAL', 'DOUBLE', 'FLOAT', 'REAL');
|
2014-05-07 14:29:14 -04:00
|
|
|
|
|
2014-10-24 12:32:30 -04:00
|
|
|
|
if ($keyOrderUppercase) {
|
2012-07-03 15:35:57 -04:00
|
|
|
|
foreach ($aData['FIELDS'] as $aField) {
|
2014-01-28 13:01:23 -04:00
|
|
|
|
$field = '$oCriteria->addSelectColumn(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ');';
|
|
|
|
|
|
if (in_array($aField['FLD_TYPE'], $types)) {
|
2014-10-24 12:32:30 -04:00
|
|
|
|
$field = '$oCriteria->addAsColumn("' . $aField['FLD_NAME'] . '", "round(" . ' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ' . ", ' . ($aField['FLD_TYPE'] == 'DOUBLE' ? '8' : '2') . ')");';
|
2014-01-28 13:01:23 -04:00
|
|
|
|
}
|
|
|
|
|
|
eval($field);
|
2013-10-17 17:46:01 -04:00
|
|
|
|
/*if ($aField['FLD_KEY'] == '1') {
|
2012-07-03 15:35:57 -04:00
|
|
|
|
eval('$oCriteria->addAscendingOrderByColumn('. $sClassPeerName . '::' . $aField['FLD_NAME'] . ');');
|
2013-10-17 17:46:01 -04:00
|
|
|
|
}*/
|
2012-07-03 15:35:57 -04:00
|
|
|
|
}
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$oCriteriaCount = clone $oCriteria;
|
|
|
|
|
|
//$count = $sClassPeerName::doCount($oCriteria);
|
|
|
|
|
|
eval('$count = ' . $sClassPeerName . '::doCount($oCriteria);');
|
|
|
|
|
|
|
2013-10-17 17:46:01 -04:00
|
|
|
|
if ($filter != '' && is_string($filter)) {
|
2014-05-05 16:36:14 -04:00
|
|
|
|
$stringOr = '';
|
2014-01-28 13:01:23 -04:00
|
|
|
|
$closure = '';
|
|
|
|
|
|
$types = array('INTEGER', 'BIGINT', 'SMALLINT', 'TINYINT', 'DECIMAL', 'DOUBLE', 'FLOAT', 'REAL');
|
|
|
|
|
|
foreach ($aData['FIELDS'] as $aField) {
|
2014-06-18 16:28:44 -04:00
|
|
|
|
if (($appUid == false && $aField['FLD_NAME'] != 'APP_UID') || ($appUid == true)) {
|
2014-06-18 11:31:22 -04:00
|
|
|
|
if (in_array($aField['FLD_TYPE'], $types)) {
|
|
|
|
|
|
if (is_numeric($filter)) {
|
|
|
|
|
|
$stringOr = $stringOr . '$a = $oCriteria->getNewCriterion(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ', "' . $filter . '", Criteria::EQUAL)' . $closure . ';';
|
|
|
|
|
|
$closure = '->addOr($a)';
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$stringOr = $stringOr . '$a = $oCriteria->getNewCriterion(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ', "%' . $filter . '%", Criteria::LIKE)' . $closure . ';';
|
|
|
|
|
|
$closure = '->addOr($a)';
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2013-10-17 17:46:01 -04:00
|
|
|
|
}
|
2014-05-05 16:36:14 -04:00
|
|
|
|
$stringOr = $stringOr . '$oCriteria->add($a);';
|
2013-10-17 17:46:01 -04:00
|
|
|
|
eval($stringOr);
|
2013-11-01 16:26:56 -04:00
|
|
|
|
|
2014-02-07 11:18:02 -04:00
|
|
|
|
$oCriteriaCount = clone $oCriteria;
|
2013-11-01 16:26:56 -04:00
|
|
|
|
eval('$count = ' . $sClassPeerName . '::doCount($oCriteria);');
|
2013-10-17 17:46:01 -04:00
|
|
|
|
}
|
2015-03-11 17:51:50 -04:00
|
|
|
|
G::LoadSystem('inputfilter');
|
2015-03-16 17:26:48 -04:00
|
|
|
|
$filter = new InputFilter();
|
2015-03-11 17:51:50 -04:00
|
|
|
|
$sClassPeerName = $filter->validateInput($sClassPeerName);
|
2013-10-17 17:46:01 -04:00
|
|
|
|
|
|
|
|
|
|
if (isset($_POST['sort'])) {
|
2015-03-16 17:26:48 -04:00
|
|
|
|
$_POST['sort'] = $filter->validateInput($_POST['sort']);
|
2015-04-27 12:54:46 -04:00
|
|
|
|
$_POST['dir'] = $filter->validateInput($_POST['dir']);
|
2013-10-17 17:46:01 -04:00
|
|
|
|
if ($_POST['dir'] == 'ASC') {
|
2014-10-24 12:32:30 -04:00
|
|
|
|
if ($keyOrderUppercase) {
|
2015-04-27 12:54:46 -04:00
|
|
|
|
eval('$oCriteria->addAscendingOrderByColumn("' . $_POST['sort'] . '");');
|
2014-10-24 12:32:30 -04:00
|
|
|
|
} else {
|
2015-04-27 12:54:46 -04:00
|
|
|
|
eval('$oCriteria->addAscendingOrderByColumn(' . $sClassPeerName . '::' . $_POST['sort'] . ');');
|
2014-10-24 12:32:30 -04:00
|
|
|
|
}
|
2013-10-17 17:46:01 -04:00
|
|
|
|
} else {
|
2014-10-24 12:32:30 -04:00
|
|
|
|
if ($keyOrderUppercase) {
|
2015-04-27 12:54:46 -04:00
|
|
|
|
eval('$oCriteria->addDescendingOrderByColumn("' . $_POST['sort'] . '");');
|
2014-10-24 12:32:30 -04:00
|
|
|
|
} else {
|
2015-04-27 12:54:46 -04:00
|
|
|
|
eval('$oCriteria->addDescendingOrderByColumn(' . $sClassPeerName . '::' . $_POST['sort'] . ');');
|
2014-10-24 12:32:30 -04:00
|
|
|
|
}
|
2013-10-17 17:46:01 -04:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
if (isset($limit)) {
|
|
|
|
|
|
$oCriteria->setLimit($limit);
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
if (isset($start)) {
|
|
|
|
|
|
$oCriteria->setOffset($start);
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
//$rs = $sClassPeerName::doSelectRS($oCriteria);
|
|
|
|
|
|
eval('$rs = ' . $sClassPeerName . '::doSelectRS($oCriteria);');
|
|
|
|
|
|
$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
|
|
|
|
|
|
|
$rows = Array();
|
|
|
|
|
|
while ($rs->next()) {
|
|
|
|
|
|
$rows[] = $rs->getRow();
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
|
|
|
|
|
|
return array('rows' => $rows, 'count' => $count);
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
|
|
|
|
|
|
public function checkClassNotExist($sUID)
|
|
|
|
|
|
{
|
|
|
|
|
|
try {
|
|
|
|
|
|
$aData = $this->load($sUID, true);
|
|
|
|
|
|
$sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP;
|
|
|
|
|
|
$sClassName = ($aData['ADD_TAB_CLASS_NAME'] != ''
|
|
|
|
|
|
? $aData['ADD_TAB_CLASS_NAME']
|
|
|
|
|
|
: $this->getPHPName($aData['ADD_TAB_NAME']));
|
|
|
|
|
|
|
|
|
|
|
|
if (file_exists($sPath . $sClassName . '.php')) {
|
|
|
|
|
|
return $sClassName;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
return '';
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw($oError);
|
|
|
|
|
|
}
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
public function saveDataInTable($sUID, $aFields)
|
|
|
|
|
|
{
|
|
|
|
|
|
try {
|
|
|
|
|
|
$aData = $this->load($sUID, true);
|
|
|
|
|
|
$sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP;
|
|
|
|
|
|
$sClassName = ($aData['ADD_TAB_CLASS_NAME'] != ''
|
|
|
|
|
|
? $aData['ADD_TAB_CLASS_NAME']
|
|
|
|
|
|
: $this->getPHPName($aData['ADD_TAB_NAME']));
|
|
|
|
|
|
// $oConnection = Propel::getConnection(FieldsPeer::DATABASE_NAME);
|
|
|
|
|
|
$oConnection = Propel::getConnection($aData['DBS_UID']);
|
|
|
|
|
|
$stmt = $oConnection->createStatement();
|
|
|
|
|
|
require_once $sPath . $sClassName . '.php';
|
|
|
|
|
|
$sKeys = '';
|
2012-07-19 18:53:48 -04:00
|
|
|
|
$keysAutoIncrement = 0;
|
|
|
|
|
|
$keyUIDAutoIncrement = '';
|
2012-07-03 15:35:57 -04:00
|
|
|
|
foreach ($aData['FIELDS'] as $aField) {
|
|
|
|
|
|
if ($aField['FLD_KEY'] == 1) {
|
2012-07-19 18:53:48 -04:00
|
|
|
|
if ($aField['FLD_AUTO_INCREMENT'] == 1) {
|
|
|
|
|
|
if ($keysAutoIncrement == 0) {
|
|
|
|
|
|
$keyUIDAutoIncrement = $aField['FLD_NAME'];
|
|
|
|
|
|
}
|
|
|
|
|
|
$keysAutoIncrement++;
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$vValue = $aFields[$aField['FLD_NAME']];
|
|
|
|
|
|
eval('$' . $aField['FLD_NAME'] . ' = $vValue;');
|
|
|
|
|
|
$sKeys .= '$' . $aField['FLD_NAME'] . ',';
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$sKeys = substr($sKeys, 0, -1);
|
|
|
|
|
|
$oClass = new $sClassName;
|
|
|
|
|
|
foreach ($aFields as $sKey => $sValue) {
|
|
|
|
|
|
if (!preg_match("/\(?\)/", $sKey)) {
|
|
|
|
|
|
eval('$oClass->set' . $this->getPHPName($sKey) . '($aFields["' . $sKey . '"]);');
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if ($oClass->validate()) {
|
2012-10-22 05:57:53 -04:00
|
|
|
|
$iResult = $oClass->save();
|
2012-07-19 18:53:48 -04:00
|
|
|
|
if ($keysAutoIncrement == 1 && $aFields[$keyUIDAutoIncrement] == '' && isset($_SESSION['APPLICATION']) && $_SESSION['APPLICATION'] != '') {
|
|
|
|
|
|
G::LoadClass('case');
|
|
|
|
|
|
$oCaseKeyAuto = new Cases();
|
|
|
|
|
|
$newId = $oClass->getId();
|
|
|
|
|
|
$aFields = $oCaseKeyAuto->loadCase($_SESSION['APPLICATION']);
|
|
|
|
|
|
$aFields['APP_DATA'][$keyUIDAutoIncrement] = $newId;
|
2012-07-20 16:45:45 -04:00
|
|
|
|
if (isset($_POST['form'])) {
|
2012-10-22 05:57:53 -04:00
|
|
|
|
$_POST['form'][$keyUIDAutoIncrement] = $newId;
|
2012-07-20 16:45:45 -04:00
|
|
|
|
}
|
2012-07-19 18:53:48 -04:00
|
|
|
|
$oCaseKeyAuto->updateCase($_SESSION['APPLICATION'], $aFields);
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw($oError);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
public function getDataTable($sUID, $aKeys)
|
|
|
|
|
|
{
|
|
|
|
|
|
try {
|
|
|
|
|
|
$aData = $this->load($sUID, true);
|
|
|
|
|
|
$sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP;
|
|
|
|
|
|
$sClassName = ($aData['ADD_TAB_CLASS_NAME'] != ''
|
|
|
|
|
|
? $aData['ADD_TAB_CLASS_NAME']
|
|
|
|
|
|
: $this->getPHPName($aData['ADD_TAB_NAME']));
|
|
|
|
|
|
require_once $sPath . $sClassName . '.php';
|
|
|
|
|
|
$sKeys = '';
|
|
|
|
|
|
foreach ($aKeys as $sName => $vValue) {
|
|
|
|
|
|
eval('$' . $sName . ' = $vValue;');
|
|
|
|
|
|
$sKeys .= '$' . $sName . ',';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sKeys = substr($sKeys, 0, -1);
|
|
|
|
|
|
eval('$oClass = ' . $sClassName . 'Peer::retrieveByPK(' . $sKeys . ');');
|
|
|
|
|
|
//eval('$oClass = ' . $sClassName . 'Peer::retrieveByPK($sPMUID);');
|
|
|
|
|
|
if (!is_null($oClass)) {
|
|
|
|
|
|
return $oClass->toArray(BasePeer::TYPE_FIELDNAME);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw($oError);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2011-08-30 09:35:32 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
public function updateDataInTable($sUID, $aFields)
|
|
|
|
|
|
{
|
|
|
|
|
|
try {
|
|
|
|
|
|
//$sPMUID = $aFields['PM_UNIQUE_ID'];
|
|
|
|
|
|
$aData = $this->load($sUID, true);
|
|
|
|
|
|
$sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP;
|
|
|
|
|
|
$sClassName = ($aData['ADD_TAB_CLASS_NAME'] != ''
|
|
|
|
|
|
? $aData['ADD_TAB_CLASS_NAME']
|
|
|
|
|
|
: $this->getPHPName($aData['ADD_TAB_NAME']));
|
|
|
|
|
|
$oConnection = Propel::getConnection(FieldsPeer::DATABASE_NAME);
|
|
|
|
|
|
require_once $sPath . $sClassName . '.php';
|
|
|
|
|
|
$sKeys = '';
|
|
|
|
|
|
foreach ($aData['FIELDS'] as $aField) {
|
|
|
|
|
|
if ($aField['FLD_KEY'] == 1) {
|
|
|
|
|
|
$vValue = $aFields[$aField['FLD_NAME']];
|
|
|
|
|
|
eval('$' . $aField['FLD_NAME'] . ' = $vValue;');
|
|
|
|
|
|
$sKeys .= '$' . $aField['FLD_NAME'] . ',';
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$sKeys = substr($sKeys, 0, -1);
|
|
|
|
|
|
eval('$oClass = ' . $sClassName . 'Peer::retrieveByPK(' . $sKeys . ');');
|
|
|
|
|
|
//eval('$oClass = ' . $sClassName . 'Peer::retrieveByPK($sPMUID);');
|
|
|
|
|
|
if (!is_null($oClass)) {
|
|
|
|
|
|
$oClass->fromArray($aFields, BasePeer::TYPE_FIELDNAME);
|
|
|
|
|
|
if ($oClass->validate()) {
|
|
|
|
|
|
$oConnection->begin();
|
|
|
|
|
|
$iResult = $oClass->save();
|
|
|
|
|
|
$oConnection->commit();
|
|
|
|
|
|
return $iResult;
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$sMessage = '';
|
|
|
|
|
|
if ($oClass) {
|
|
|
|
|
|
$aValidationFailures = $oClass->getValidationFailures();
|
|
|
|
|
|
foreach ($aValidationFailures as $oValidationFailure) {
|
|
|
|
|
|
$sMessage .= $oValidationFailure->getMessage() . '<br />';
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$sMessage = 'Error, row cannot updated';
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
throw(new Exception('The registry cannot be updated!<br />' . $sMessage));
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw($oError);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2011-09-02 19:06:10 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
public function deleteDataInTable($sUID, $aKeys)
|
|
|
|
|
|
{
|
|
|
|
|
|
try {
|
|
|
|
|
|
$aData = $this->load($sUID, true);
|
|
|
|
|
|
$sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP;
|
|
|
|
|
|
$sClassName = ($aData['ADD_TAB_CLASS_NAME'] != ''
|
|
|
|
|
|
? $aData['ADD_TAB_CLASS_NAME']
|
|
|
|
|
|
: $this->getPHPName($aData['ADD_TAB_NAME']));
|
|
|
|
|
|
$oConnection = Propel::getConnection(FieldsPeer::DATABASE_NAME);
|
|
|
|
|
|
require_once $sPath . $sClassName . '.php';
|
|
|
|
|
|
$sKeys = '';
|
|
|
|
|
|
foreach ($aKeys as $sName => $vValue) {
|
|
|
|
|
|
eval('$' . $sName . ' = $vValue;');
|
|
|
|
|
|
$sKeys .= '$' . $sName . ',';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sKeys = substr($sKeys, 0, -1);
|
|
|
|
|
|
eval('$oClass = ' . $sClassName . 'Peer::retrieveByPK(' . $sKeys . ');');
|
|
|
|
|
|
//eval('$oClass = ' . $sClassName . 'Peer::retrieveByPK($sPMUID);');
|
|
|
|
|
|
if (!is_null($oClass)) {
|
|
|
|
|
|
if ($oClass->validate()) {
|
|
|
|
|
|
$oConnection->begin();
|
|
|
|
|
|
$iResult = $oClass->delete();
|
|
|
|
|
|
$oConnection->commit();
|
|
|
|
|
|
return $iResult;
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$sMessage = '';
|
|
|
|
|
|
$aValidationFailures = $oConnection-- > getValidationFailures();
|
|
|
|
|
|
foreach ($aValidationFailures as $oValidationFailure) {
|
|
|
|
|
|
$sMessage .= $oValidationFailure->getMessage() . '<br />';
|
|
|
|
|
|
}
|
|
|
|
|
|
throw(new Exception('The registry cannot be updated!<br />' . $sMessage));
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw($oError);
|
|
|
|
|
|
}
|
2011-09-08 15:00:41 -04:00
|
|
|
|
}
|
2011-09-02 19:06:10 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
/**
|
|
|
|
|
|
* Populate the report table with all case data
|
|
|
|
|
|
* @param string $sType
|
|
|
|
|
|
* @param string $sProcessUid
|
|
|
|
|
|
* @param string $sGrid
|
|
|
|
|
|
* @return number
|
|
|
|
|
|
*/
|
2013-03-07 17:04:41 -04:00
|
|
|
|
public function populateReportTable($tableName, $sConnection = 'rp', $type = 'NORMAL', $processUid = '', $gridKey = '', $addTabUid = '')
|
2012-07-03 15:35:57 -04:00
|
|
|
|
{
|
|
|
|
|
|
require_once "classes/model/Application.php";
|
|
|
|
|
|
|
|
|
|
|
|
$this->className = $this->getPHPName($tableName);
|
|
|
|
|
|
$this->classPeerName = $this->className . 'Peer';
|
|
|
|
|
|
|
|
|
|
|
|
if (!file_exists(PATH_WORKSPACE . 'classes/' . $this->className . '.php')) {
|
|
|
|
|
|
throw new Exception( "ERROR: " . PATH_WORKSPACE . 'classes/' . $this->className . '.php'
|
|
|
|
|
|
. " class file doesn't exit!");
|
2012-03-30 11:56:09 -04:00
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
|
|
|
|
|
|
require_once PATH_WORKSPACE . 'classes/' . $this->className . '.php';
|
|
|
|
|
|
|
|
|
|
|
|
//select cases for this Process, ordered by APP_NUMBER
|
|
|
|
|
|
$con = Propel::getConnection($sConnection);
|
|
|
|
|
|
$stmt = $con->createStatement();
|
|
|
|
|
|
$criteria = new Criteria('workflow');
|
|
|
|
|
|
$criteria->add(ApplicationPeer::PRO_UID, $processUid);
|
|
|
|
|
|
$criteria->addAscendingOrderByColumn(ApplicationPeer::APP_NUMBER);
|
|
|
|
|
|
$dataset = ApplicationPeer::doSelectRS($criteria);
|
|
|
|
|
|
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
|
|
|
|
|
|
|
while ($dataset->next()) {
|
|
|
|
|
|
$row = $dataset->getRow();
|
|
|
|
|
|
//remove old applications references
|
|
|
|
|
|
$deleteSql = "DELETE FROM $tableName WHERE APP_UID = '" . $row['APP_UID'] . "'";
|
|
|
|
|
|
$rs = $stmt->executeQuery($deleteSql);
|
|
|
|
|
|
// getting the case data
|
|
|
|
|
|
$caseData = unserialize($row['APP_DATA']);
|
2013-04-03 13:12:10 -04:00
|
|
|
|
|
2013-03-07 17:04:41 -04:00
|
|
|
|
$fieldTypes = array();
|
2013-04-03 13:12:10 -04:00
|
|
|
|
|
2013-03-07 17:04:41 -04:00
|
|
|
|
if ($addTabUid != '') {
|
|
|
|
|
|
require_once 'classes/model/Fields.php';
|
|
|
|
|
|
$criteriaField = new Criteria('workflow');
|
|
|
|
|
|
$criteriaField->add(FieldsPeer::ADD_TAB_UID, $addTabUid);
|
|
|
|
|
|
$datasetField = FieldsPeer::doSelectRS($criteriaField);
|
|
|
|
|
|
$datasetField->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
|
while ($datasetField->next()) {
|
|
|
|
|
|
$rowfield = $datasetField->getRow();
|
|
|
|
|
|
switch ($rowfield['FLD_TYPE']) {
|
|
|
|
|
|
case 'FLOAT':
|
|
|
|
|
|
case 'DOUBLE':
|
|
|
|
|
|
case 'INTEGER':
|
|
|
|
|
|
$fieldTypes[] = array($rowfield['FLD_NAME']=>$rowfield['FLD_TYPE']);
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
|
|
|
|
|
|
// quick fix
|
|
|
|
|
|
// map all empty values as NULL for Database
|
|
|
|
|
|
foreach ($caseData as $dKey => $dValue) {
|
|
|
|
|
|
if (!is_array($dValue)) {
|
2013-03-07 17:04:41 -04:00
|
|
|
|
foreach ($fieldTypes as $key => $fieldType) {
|
2013-04-04 14:50:58 -04:00
|
|
|
|
foreach ($fieldType as $name => $theType) {
|
2013-03-07 17:04:41 -04:00
|
|
|
|
if (strtoupper($dKey) == $name) {
|
2013-04-04 14:50:58 -04:00
|
|
|
|
$caseData[$dKey] = validateType ($dValue, $theType);
|
2013-03-07 17:04:41 -04:00
|
|
|
|
unset($name);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
// normal fields
|
|
|
|
|
|
if (trim($dValue) === '') {
|
|
|
|
|
|
$caseData[$dKey] = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// grids
|
|
|
|
|
|
foreach ($caseData[$dKey] as $dIndex => $dRow) {
|
2015-11-04 14:56:59 -04:00
|
|
|
|
if (is_array($dRow)) {
|
2015-05-20 18:35:38 -04:00
|
|
|
|
foreach ($dRow as $k => $v) {
|
|
|
|
|
|
if (trim($v) === '') {
|
|
|
|
|
|
$caseData[$dKey][$dIndex][$k] = null;
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if ($type == 'GRID') {
|
|
|
|
|
|
list($gridName, $gridUid) = explode('-', $gridKey);
|
|
|
|
|
|
$gridData = isset($caseData[$gridName]) ? $caseData[$gridName] : array();
|
|
|
|
|
|
|
|
|
|
|
|
foreach ($gridData as $i => $gridRow) {
|
|
|
|
|
|
eval('$obj = new ' . $this->className . '();');
|
|
|
|
|
|
$obj->fromArray($caseData, BasePeer::TYPE_FIELDNAME);
|
|
|
|
|
|
$obj->setAppUid($row['APP_UID']);
|
|
|
|
|
|
$obj->setAppNumber($row['APP_NUMBER']);
|
2013-03-20 10:45:53 -04:00
|
|
|
|
if (method_exists($obj, 'setAppStatus')) {
|
|
|
|
|
|
$obj->setAppStatus($row['APP_STATUS']);
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$obj->fromArray(array_change_key_case($gridRow, CASE_UPPER), BasePeer::TYPE_FIELDNAME);
|
|
|
|
|
|
$obj->setRow($i);
|
|
|
|
|
|
$obj->save();
|
|
|
|
|
|
eval('$obj = new ' . $this->className . '();');
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
eval('$obj = new ' . $this->className . '();');
|
|
|
|
|
|
$obj->fromArray(array_change_key_case($caseData, CASE_UPPER), BasePeer::TYPE_FIELDNAME);
|
|
|
|
|
|
$obj->setAppUid($row['APP_UID']);
|
|
|
|
|
|
$obj->setAppNumber($row['APP_NUMBER']);
|
2013-03-20 10:45:53 -04:00
|
|
|
|
if (method_exists($obj, 'setAppStatus')) {
|
|
|
|
|
|
$obj->setAppStatus($row['APP_STATUS']);
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$obj->save();
|
|
|
|
|
|
$obj = null;
|
2012-03-30 11:56:09 -04:00
|
|
|
|
}
|
2011-08-30 09:35:32 -04:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Update the report table with a determinated case data
|
|
|
|
|
|
* @param string $proUid
|
|
|
|
|
|
* @param string $appUid
|
|
|
|
|
|
* @param string $appNumber
|
|
|
|
|
|
* @param string $caseData
|
|
|
|
|
|
*/
|
2013-02-08 12:42:30 -04:00
|
|
|
|
public function updateReportTables($proUid, $appUid, $appNumber, $caseData, $appStatus)
|
2012-07-03 15:35:57 -04:00
|
|
|
|
{
|
|
|
|
|
|
G::loadClass('pmTable');
|
|
|
|
|
|
//get all Active Report Tables
|
|
|
|
|
|
$criteria = new Criteria('workflow');
|
|
|
|
|
|
$criteria->add(AdditionalTablesPeer::PRO_UID, $proUid);
|
|
|
|
|
|
$dataset = AdditionalTablesPeer::doSelectRS($criteria);
|
|
|
|
|
|
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
|
|
|
|
|
|
|
// accomplish all related report tables for this process that contain case data
|
|
|
|
|
|
// for the target ($appUid) application
|
|
|
|
|
|
while ($dataset->next()) {
|
|
|
|
|
|
$row = $dataset->getRow();
|
|
|
|
|
|
$className = $row['ADD_TAB_CLASS_NAME'];
|
|
|
|
|
|
// verify if the report table class exists
|
|
|
|
|
|
if (!file_exists(PATH_WORKSPACE . 'classes/' . $className . '.php')) {
|
|
|
|
|
|
continue;
|
2011-09-02 19:06:10 -04:00
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
// the class exists then load it.
|
|
|
|
|
|
require_once PATH_WORKSPACE . 'classes/' . $className . '.php';
|
|
|
|
|
|
// create a criteria object of report table class
|
|
|
|
|
|
$c = new Criteria(pmTable::resolveDbSource($row['DBS_UID']));
|
|
|
|
|
|
// select all related records with this $appUid
|
|
|
|
|
|
eval('$c->add(' . $className . 'Peer::APP_UID, \'' . $appUid . '\');');
|
|
|
|
|
|
eval('$records = ' . $className . 'Peer::doSelect($c);');
|
|
|
|
|
|
|
2013-07-11 14:11:22 -04:00
|
|
|
|
//Select all types
|
|
|
|
|
|
require_once 'classes/model/Fields.php';
|
|
|
|
|
|
$criteriaField = new Criteria('workflow');
|
|
|
|
|
|
$criteriaField->add(FieldsPeer::ADD_TAB_UID, $row['ADD_TAB_UID']);
|
|
|
|
|
|
$datasetField = FieldsPeer::doSelectRS($criteriaField);
|
|
|
|
|
|
$datasetField->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
|
$fieldTypes = array();
|
|
|
|
|
|
while ($datasetField->next()) {
|
|
|
|
|
|
$rowfield = $datasetField->getRow();
|
|
|
|
|
|
switch ($rowfield['FLD_TYPE']) {
|
|
|
|
|
|
case 'FLOAT':
|
|
|
|
|
|
case 'DOUBLE':
|
|
|
|
|
|
case 'INTEGER':
|
|
|
|
|
|
$fieldTypes[] = array($rowfield['FLD_NAME']=>$rowfield['FLD_TYPE']);
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
switch ($row['ADD_TAB_TYPE']) {
|
|
|
|
|
|
//switching by report table type
|
|
|
|
|
|
case 'NORMAL':
|
|
|
|
|
|
// parsing empty values to null
|
2014-03-18 12:31:36 -04:00
|
|
|
|
if (!is_array($caseData)) {
|
|
|
|
|
|
$caseData = unserialize($caseData);
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
foreach ($caseData as $i => $v) {
|
2013-01-28 11:05:30 -04:00
|
|
|
|
foreach ($fieldTypes as $key => $fieldType) {
|
|
|
|
|
|
foreach ($fieldType as $name => $type) {
|
|
|
|
|
|
if ( strtoupper ( $i) == $name) {
|
|
|
|
|
|
$v = validateType ($v, $type);
|
|
|
|
|
|
unset($name);
|
2013-01-28 10:20:24 -04:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$caseData[$i] = $v === '' ? null : $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (is_array($records) && count($records) > 0) {
|
|
|
|
|
|
// if the record already exists on the report table
|
|
|
|
|
|
foreach ($records as $record) {
|
|
|
|
|
|
//update all records
|
2013-05-10 11:01:38 -04:00
|
|
|
|
if (method_exists($record, 'setAppStatus')) {
|
|
|
|
|
|
$record->setAppStatus($appStatus);
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$record->fromArray(array_change_key_case($caseData, CASE_UPPER), BasePeer::TYPE_FIELDNAME);
|
|
|
|
|
|
if ($record->validate()) {
|
|
|
|
|
|
$record->save();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// there are not any record for this application on the table, then create it
|
|
|
|
|
|
eval('$obj = new ' . $className . '();');
|
|
|
|
|
|
$obj->fromArray(array_change_key_case($caseData, CASE_UPPER), BasePeer::TYPE_FIELDNAME);
|
|
|
|
|
|
$obj->setAppUid($appUid);
|
|
|
|
|
|
$obj->setAppNumber($appNumber);
|
2013-04-04 16:06:21 -04:00
|
|
|
|
if (method_exists($obj, 'setAppStatus')) {
|
|
|
|
|
|
$obj->setAppStatus($appStatus);
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$obj->save();
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'GRID':
|
|
|
|
|
|
list($gridName, $gridUid) = explode('-', $row['ADD_TAB_GRID']);
|
|
|
|
|
|
$gridData = isset($caseData[$gridName]) ? $caseData[$gridName] : array();
|
|
|
|
|
|
|
|
|
|
|
|
// delete old records
|
|
|
|
|
|
if (is_array($records) && count($records) > 0) {
|
|
|
|
|
|
foreach ($records as $record) {
|
|
|
|
|
|
$record->delete();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
// save all grid rows on grid type report table
|
|
|
|
|
|
foreach ($gridData as $i => $gridRow) {
|
|
|
|
|
|
eval('$obj = new ' . $className . '();');
|
2013-07-11 14:11:22 -04:00
|
|
|
|
//Parsing values
|
2013-07-12 16:03:50 -04:00
|
|
|
|
foreach ($gridRow as $j => $v) {
|
2013-07-11 14:11:22 -04:00
|
|
|
|
foreach ($fieldTypes as $key => $fieldType) {
|
|
|
|
|
|
foreach ($fieldType as $name => $type) {
|
2013-07-12 16:03:50 -04:00
|
|
|
|
if ( strtoupper ( $j) == $name) {
|
2013-07-11 14:11:22 -04:00
|
|
|
|
$v = validateType ($v, $type);
|
|
|
|
|
|
unset($name);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2013-07-12 16:03:50 -04:00
|
|
|
|
$gridRow[$j] = $v === '' ? null : $v;
|
2013-07-11 14:11:22 -04:00
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$obj->fromArray(array_change_key_case($gridRow, CASE_UPPER), BasePeer::TYPE_FIELDNAME);
|
|
|
|
|
|
$obj->setAppUid($appUid);
|
|
|
|
|
|
$obj->setAppNumber($appNumber);
|
2013-04-04 16:06:21 -04:00
|
|
|
|
if (method_exists($obj, 'setAppStatus')) {
|
|
|
|
|
|
$obj->setAppStatus($appStatus);
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$obj->setRow($i);
|
|
|
|
|
|
$obj->save();
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
2011-06-28 12:53:25 -04:00
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
}
|
2011-06-28 12:53:25 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-10-22 05:57:53 -04:00
|
|
|
|
public function getTableVars($uid, $bWhitType = false)
|
2012-07-03 15:35:57 -04:00
|
|
|
|
{
|
|
|
|
|
|
require_once 'classes/model/Fields.php';
|
|
|
|
|
|
try {
|
|
|
|
|
|
$oCriteria = new Criteria('workflow');
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::ADD_TAB_UID);
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_NAME);
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_TYPE);
|
|
|
|
|
|
$oCriteria->addSelectColumn(FieldsPeer::FLD_DYN_NAME);
|
|
|
|
|
|
$oCriteria->add(FieldsPeer::ADD_TAB_UID, $uid);
|
|
|
|
|
|
$oDataset = ReportVarPeer::doSelectRS($oCriteria);
|
|
|
|
|
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
|
$aVars = array();
|
|
|
|
|
|
$aImportedVars = array(); //This array will help to control if the variable already exist
|
|
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
|
|
|
|
|
if ($bWhitType) {
|
|
|
|
|
|
if (!in_array($aRow['FLD_NAME'], $aImportedVars)) {
|
|
|
|
|
|
$aImportedVars[] = $aRow['FLD_NAME'];
|
|
|
|
|
|
$aVars[] = array('sFieldName' => $aRow['FLD_NAME'],
|
|
|
|
|
|
'sFieldDynName' => $aRow['FLD_DYN_NAME'],
|
|
|
|
|
|
'sType' => $aRow['FLD_TYPE']);
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$aVars[] = $aRow['FLD_NAME'];
|
2011-06-28 12:53:25 -04:00
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$oDataset->next();
|
2011-06-28 12:53:25 -04:00
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
return $aVars;
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw($oError);
|
|
|
|
|
|
}
|
2011-06-28 12:53:25 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-10-22 05:57:53 -04:00
|
|
|
|
public function getAll($start = 0, $limit = 20, $filter = '', $process = null)
|
2012-07-03 15:35:57 -04:00
|
|
|
|
{
|
|
|
|
|
|
$oCriteria = new Criteria('workflow');
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_UID);
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_NAME);
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_DESCRIPTION);
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_TYPE);
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_TAG);
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::PRO_UID);
|
|
|
|
|
|
$oCriteria->addSelectColumn(AdditionalTablesPeer::DBS_UID);
|
|
|
|
|
|
|
|
|
|
|
|
if (isset($process)) {
|
|
|
|
|
|
foreach ($process as $key => $pro_uid) {
|
|
|
|
|
|
if ($key == 'equal') {
|
|
|
|
|
|
$oCriteria->add(AdditionalTablesPeer::PRO_UID, $pro_uid, Criteria::EQUAL);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$oCriteria->add(AdditionalTablesPeer::PRO_UID, $pro_uid, Criteria::NOT_EQUAL);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
if ($filter != '' && is_string($filter)) {
|
|
|
|
|
|
$oCriteria->add(
|
|
|
|
|
|
$oCriteria->getNewCriterion(AdditionalTablesPeer::ADD_TAB_NAME, '%' . $filter . '%', Criteria::LIKE)->addOr(
|
|
|
|
|
|
$oCriteria->getNewCriterion(AdditionalTablesPeer::ADD_TAB_DESCRIPTION, '%' . $filter . '%', Criteria::LIKE))
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2013-04-03 13:12:10 -04:00
|
|
|
|
if (isset($_POST['sort'])) {
|
|
|
|
|
|
if ($_POST['dir'] == 'ASC') {
|
|
|
|
|
|
eval('$oCriteria->addAscendingOrderByColumn(AdditionalTablesPeer::' . $_POST['sort'] . ');');
|
|
|
|
|
|
} else {
|
|
|
|
|
|
eval('$oCriteria->addDescendingOrderByColumn(AdditionalTablesPeer::' . $_POST['sort'] . ');');
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
2014-05-07 14:29:14 -04:00
|
|
|
|
$oCriteria->addAscendingOrderByColumn(AdditionalTablesPeer::ADD_TAB_NAME);
|
2013-04-03 13:12:10 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$criteriaCount = clone $oCriteria;
|
|
|
|
|
|
$count = AdditionalTablesPeer::doCount($criteriaCount);
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$oCriteria->setLimit($limit);
|
|
|
|
|
|
$oCriteria->setOffset($start);
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$oDataset = AdditionalTablesPeer::doSelectRS($oCriteria);
|
|
|
|
|
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$addTables = Array();
|
|
|
|
|
|
$proUids = Array();
|
2011-07-08 19:06:32 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
while ($oDataset->next()) {
|
|
|
|
|
|
$row = $oDataset->getRow();
|
|
|
|
|
|
$row['PRO_TITLE'] = $row['PRO_DESCRIPTION'] = '';
|
|
|
|
|
|
$addTables[] = $row;
|
|
|
|
|
|
if ($row['PRO_UID'] != '') {
|
|
|
|
|
|
$proUids[] = $row['PRO_UID'];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
//process details will have the info about the processes
|
|
|
|
|
|
$procDetails = Array();
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
if (count($proUids) > 0) {
|
|
|
|
|
|
//now get the labels for all process, using an array of Uids,
|
|
|
|
|
|
$c = new Criteria('workflow');
|
|
|
|
|
|
//$c->add ( ContentPeer::CON_CATEGORY, 'PRO_TITLE', Criteria::EQUAL );
|
|
|
|
|
|
$c->add(ContentPeer::CON_LANG, defined('SYS_LANG') ? SYS_LANG : 'en', Criteria::EQUAL);
|
|
|
|
|
|
$c->add(ContentPeer::CON_ID, $proUids, Criteria::IN);
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
$dt = ContentPeer::doSelectRS($c);
|
|
|
|
|
|
$dt->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
while ($dt->next()) {
|
|
|
|
|
|
$row = $dt->getRow();
|
|
|
|
|
|
$procDetails[$row['CON_ID']][$row['CON_CATEGORY']] = $row['CON_VALUE'];
|
|
|
|
|
|
}
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
foreach ($addTables as $i => $addTable) {
|
|
|
|
|
|
if (isset($procDetails[$addTable['PRO_UID']]['PRO_TITLE'])) {
|
|
|
|
|
|
$addTables[$i]['PRO_TITLE'] = $procDetails[$addTable['PRO_UID']]['PRO_TITLE'];
|
|
|
|
|
|
}
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
if (isset($procDetails[$addTable['PRO_UID']]['PRO_DESCRIPTION'])) {
|
|
|
|
|
|
$addTables[$i]['PRO_DESCRIPTION'] = $procDetails[$addTable['PRO_UID']]['PRO_DESCRIPTION'];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2011-06-28 12:53:25 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
return array('rows' => $addTables, 'count' => $count);
|
|
|
|
|
|
}
|
2011-09-20 09:18:50 -04:00
|
|
|
|
|
2012-07-03 15:35:57 -04:00
|
|
|
|
/**
|
|
|
|
|
|
* DEPRECATED createPropelClasses()
|
|
|
|
|
|
*
|
|
|
|
|
|
* Don't use this method, it was left only for backward compatibility
|
|
|
|
|
|
* for some external plugins that still is using it
|
|
|
|
|
|
*/
|
2012-10-22 05:57:53 -04:00
|
|
|
|
public function createPropelClasses($sTableName, $sClassName, $aFields, $sAddTabUid, $connection = 'workflow')
|
2012-07-03 15:35:57 -04:00
|
|
|
|
{
|
|
|
|
|
|
try {
|
|
|
|
|
|
/* $aUID = array('FLD_NAME' => 'PM_UNIQUE_ID',
|
|
|
|
|
|
'FLD_TYPE' => 'INT',
|
|
|
|
|
|
'FLD_KEY' => 'on',
|
|
|
|
|
|
'FLD_SIZE' => '11',
|
|
|
|
|
|
'FLD_NULL' => '',
|
|
|
|
|
|
'FLD_AUTO_INCREMENT' => 'on');
|
|
|
|
|
|
array_unshift($aFields, $aUID); */
|
|
|
|
|
|
$aTypes = array(
|
|
|
|
|
|
'VARCHAR' => 'string',
|
|
|
|
|
|
'TEXT' => 'string',
|
|
|
|
|
|
'DATE' => 'int',
|
|
|
|
|
|
'INT' => 'int',
|
|
|
|
|
|
'FLOAT' => 'double'
|
|
|
|
|
|
);
|
|
|
|
|
|
$aCreoleTypes = array(
|
|
|
|
|
|
'VARCHAR' => 'VARCHAR',
|
|
|
|
|
|
'TEXT' => 'LONGVARCHAR',
|
|
|
|
|
|
'DATE' => 'TIMESTAMP',
|
|
|
|
|
|
'INT' => 'INTEGER',
|
|
|
|
|
|
'FLOAT' => 'DOUBLE'
|
|
|
|
|
|
);
|
|
|
|
|
|
if ($sClassName == '') {
|
|
|
|
|
|
$sClassName = $this->getPHPName($sTableName);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP;
|
|
|
|
|
|
if (!file_exists($sPath)) {
|
|
|
|
|
|
G::mk_dir($sPath);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!file_exists($sPath . 'map')) {
|
|
|
|
|
|
G::mk_dir($sPath . 'map');
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!file_exists($sPath . 'om')) {
|
|
|
|
|
|
G::mk_dir($sPath . 'om');
|
|
|
|
|
|
}
|
|
|
|
|
|
$aData = array();
|
|
|
|
|
|
$aData['pathClasses'] = substr(PATH_DB, 0, -1);
|
|
|
|
|
|
$aData['tableName'] = $sTableName;
|
|
|
|
|
|
$aData['className'] = $sClassName;
|
|
|
|
|
|
$aData['connection'] = $connection;
|
|
|
|
|
|
$aData['GUID'] = $sAddTabUid;
|
|
|
|
|
|
|
|
|
|
|
|
$aData['firstColumn'] = isset($aFields[0])
|
|
|
|
|
|
? strtoupper($aFields[0]['FLD_NAME'])
|
|
|
|
|
|
: ($aFields[1]['FLD_NAME']);
|
|
|
|
|
|
$aData['totalColumns'] = count($aFields);
|
|
|
|
|
|
$aData['useIdGenerator'] = 'false';
|
|
|
|
|
|
$oTP1 = new TemplatePower(PATH_TPL . 'additionalTables' . PATH_SEP . 'Table.tpl');
|
|
|
|
|
|
$oTP1->prepare();
|
|
|
|
|
|
$oTP1->assignGlobal($aData);
|
|
|
|
|
|
file_put_contents($sPath . $sClassName . '.php', $oTP1->getOutputContent());
|
|
|
|
|
|
$oTP2 = new TemplatePower(PATH_TPL . 'additionalTables' . PATH_SEP . 'TablePeer.tpl');
|
|
|
|
|
|
$oTP2->prepare();
|
|
|
|
|
|
$oTP2->assignGlobal($aData);
|
|
|
|
|
|
file_put_contents($sPath . $sClassName . 'Peer.php', $oTP2->getOutputContent());
|
|
|
|
|
|
$aColumns = array();
|
|
|
|
|
|
$aPKs = array();
|
|
|
|
|
|
$aNotPKs = array();
|
|
|
|
|
|
$i = 0;
|
|
|
|
|
|
foreach ($aFields as $iKey => $aField) {
|
|
|
|
|
|
$aField['FLD_NAME'] = strtoupper($aField['FLD_NAME']);
|
|
|
|
|
|
if ($aField['FLD_TYPE'] == 'DATE') {
|
|
|
|
|
|
$aField['FLD_NULL'] = '';
|
|
|
|
|
|
}
|
|
|
|
|
|
$aColumn = array(
|
|
|
|
|
|
'name' => $aField['FLD_NAME'],
|
|
|
|
|
|
'phpName' => $this->getPHPName($aField['FLD_NAME']),
|
|
|
|
|
|
'type' => $aTypes[$aField['FLD_TYPE']],
|
|
|
|
|
|
'creoleType' => $aCreoleTypes[$aField['FLD_TYPE']],
|
|
|
|
|
|
'notNull' => ($aField['FLD_NULL'] == 'on' ? 'true' : 'false'),
|
|
|
|
|
|
'size' => (($aField['FLD_TYPE'] == 'VARCHAR')
|
|
|
|
|
|
|| ($aField['FLD_TYPE'] == 'INT')
|
|
|
|
|
|
|| ($aField['FLD_TYPE'] == 'FLOAT') ? $aField['FLD_SIZE'] : 'null'),
|
|
|
|
|
|
'var' => strtolower($aField['FLD_NAME']),
|
|
|
|
|
|
'attribute' => (($aField['FLD_TYPE'] == 'VARCHAR')
|
|
|
|
|
|
|| ($aField['FLD_TYPE'] == 'TEXT')
|
|
|
|
|
|
|| ($aField['FLD_TYPE'] == 'DATE')
|
|
|
|
|
|
? '$' . strtolower($aField['FLD_NAME']) . " = ''"
|
|
|
|
|
|
: '$' . strtolower($aField['FLD_NAME']) . ' = 0'),
|
|
|
|
|
|
'index' => $i,
|
|
|
|
|
|
);
|
|
|
|
|
|
if ($aField['FLD_TYPE'] == 'DATE') {
|
|
|
|
|
|
$aColumn['getFunction'] = '/**
|
2011-09-20 09:18:50 -04:00
|
|
|
|
* Get the [optionally formatted] [' . $aColumn['var'] . '] column value.
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param string $format The date/time format string (either date()-style or strftime()-style).
|
|
|
|
|
|
* If format is NULL, then the integer unix timestamp will be returned.
|
|
|
|
|
|
* @return mixed Formatted date/time value as string or integer unix timestamp (if format is NULL).
|
|
|
|
|
|
* @throws PropelException - if unable to convert the date/time to timestamp.
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function get' . $aColumn['phpName'] . '($format = "Y-m-d")
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
if ($this->' . $aColumn['var'] . ' === null || $this->' . $aColumn['var'] . ' === "") {
|
|
|
|
|
|
return null;
|
|
|
|
|
|
} elseif (!is_int($this->' . $aColumn['var'] . ')) {
|
|
|
|
|
|
// a non-timestamp value was set externally, so we convert it
|
2012-07-03 15:35:57 -04:00
|
|
|
|
if (($this->' . $aColumn['var'] . ' == "0000-00-00 00:00:00")
|
|
|
|
|
|
|| ($this->' . $aColumn['var'] . ' == "0000-00-00") || !$this->' . $aColumn['var'] . ') {
|
2011-09-20 09:18:50 -04:00
|
|
|
|
$ts = "0";
|
|
|
|
|
|
}
|
|
|
|
|
|
else {
|
|
|
|
|
|
$ts = strtotime($this->' . $aColumn['var'] . ');
|
|
|
|
|
|
}
|
|
|
|
|
|
if ($ts === -1 || $ts === false) { // in PHP 5.1 return value changes to FALSE
|
2012-07-03 15:35:57 -04:00
|
|
|
|
throw new PropelException("Unable to parse value of [' . $aColumn['var'] . '] as date/time value: "
|
|
|
|
|
|
. var_export($this->' . $aColumn['var'] . ', true));
|
2011-09-20 09:18:50 -04:00
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$ts = $this->' . $aColumn['var'] . ';
|
|
|
|
|
|
}
|
|
|
|
|
|
if ($format === null) {
|
|
|
|
|
|
return $ts;
|
|
|
|
|
|
} elseif (strpos($format, "%") !== false) {
|
|
|
|
|
|
return strftime($format, $ts);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
return date($format, $ts);
|
|
|
|
|
|
}
|
|
|
|
|
|
}';
|
2012-07-03 15:35:57 -04:00
|
|
|
|
} else {
|
|
|
|
|
|
$aColumn['getFunction'] = '/**
|
2011-09-20 09:18:50 -04:00
|
|
|
|
* Get the [' . $aColumn['var'] . '] column value.
|
|
|
|
|
|
*
|
|
|
|
|
|
* @return string
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function get' . $aColumn['phpName'] . '()
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
return $this->' . $aColumn['var'] . ';
|
|
|
|
|
|
}';
|
2012-07-03 15:35:57 -04:00
|
|
|
|
}
|
|
|
|
|
|
switch ($aField['FLD_TYPE']) {
|
|
|
|
|
|
case 'VARCHAR':
|
|
|
|
|
|
case 'TEXT':
|
|
|
|
|
|
$aColumn['setFunction'] = '// Since the native PHP type for this column is string,
|
2011-09-20 09:18:50 -04:00
|
|
|
|
// we will cast the input to a string (if it is not).
|
|
|
|
|
|
if ($v !== null && !is_string($v)) {
|
|
|
|
|
|
$v = (string) $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if ($this->' . $aColumn['var'] . ' !== $v) {
|
|
|
|
|
|
$this->' . $aColumn['var'] . ' = $v;
|
|
|
|
|
|
$this->modifiedColumns[] = ' . $aData['className'] . 'Peer::' . $aColumn['name'] . ';
|
|
|
|
|
|
}';
|
2012-07-03 15:35:57 -04:00
|
|
|
|
break;
|
|
|
|
|
|
case 'DATE':
|
|
|
|
|
|
$aColumn['setFunction'] = 'if ($v !== null && !is_int($v)) {
|
2011-09-20 09:18:50 -04:00
|
|
|
|
// if($v == \'\')
|
|
|
|
|
|
// $ts = null;
|
|
|
|
|
|
// else
|
|
|
|
|
|
$ts = strtotime($v);
|
|
|
|
|
|
if ($ts === -1 || $ts === false) { // in PHP 5.1 return value changes to FALSE
|
2012-07-03 15:35:57 -04:00
|
|
|
|
//throw new PropelException("Unable to parse date/time value for [' . $aColumn['var'] . '] from input: "
|
|
|
|
|
|
// . var_export($v, true));
|
2011-09-20 09:18:50 -04:00
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$ts = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
if ($this->' . $aColumn['var'] . ' !== $ts) {
|
|
|
|
|
|
$this->' . $aColumn['var'] . ' = $ts;
|
|
|
|
|
|
$this->modifiedColumns[] = ' . $aData['className'] . 'Peer::' . $aColumn['name'] . ';
|
|
|
|
|
|
}';
|
2012-07-03 15:35:57 -04:00
|
|
|
|
break;
|
|
|
|
|
|
case 'INT':
|
|
|
|
|
|
$aColumn['setFunction'] = '// Since the native PHP type for this column is integer,
|
2011-09-20 09:18:50 -04:00
|
|
|
|
// we will cast the input value to an int (if it is not).
|
|
|
|
|
|
if ($v !== null && !is_int($v) && is_numeric($v)) {
|
|
|
|
|
|
$v = (int) $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
if ($this->' . $aColumn['var'] . ' !== $v || $v === 1) {
|
|
|
|
|
|
$this->' . $aColumn['var'] . ' = $v;
|
|
|
|
|
|
$this->modifiedColumns[] = ' . $aData['className'] . 'Peer::' . $aColumn['name'] . ';
|
|
|
|
|
|
}';
|
2012-07-03 15:35:57 -04:00
|
|
|
|
break;
|
|
|
|
|
|
case 'FLOAT':
|
|
|
|
|
|
$aColumn['setFunction'] = 'if ($this->' . $aColumn['var'] . ' !== $v || $v === 0) {
|
2011-09-20 09:18:50 -04:00
|
|
|
|
$this->' . $aColumn['var'] . ' = $v;
|
|
|
|
|
|
$this->modifiedColumns[] = ' . $aData['className'] . 'Peer::' . $aColumn['name'] . ';
|
|
|
|
|
|
}';
|
2012-07-03 15:35:57 -04:00
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
$aColumns[] = $aColumn;
|
|
|
|
|
|
if ($aField['FLD_KEY'] == 1 || $aField['FLD_KEY'] === 'on') {
|
|
|
|
|
|
$aPKs[] = $aColumn;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$aNotPKs[] = $aColumn;
|
|
|
|
|
|
}
|
|
|
|
|
|
if ($aField['FLD_AUTO_INCREMENT'] == 1 || $aField['FLD_AUTO_INCREMENT'] === 'on') {
|
|
|
|
|
|
$aData['useIdGenerator'] = 'true';
|
|
|
|
|
|
}
|
|
|
|
|
|
$i++;
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP3 = new TemplatePower(PATH_TPL . 'additionalTables' . PATH_SEP . 'map'
|
|
|
|
|
|
. PATH_SEP . 'TableMapBuilder.tpl');
|
|
|
|
|
|
$oTP3->prepare();
|
|
|
|
|
|
$oTP3->assignGlobal($aData);
|
|
|
|
|
|
foreach ($aPKs as $iIndex => $aColumn) {
|
|
|
|
|
|
$oTP3->newBlock('primaryKeys');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP3->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP3->gotoBlock('_ROOT');
|
|
|
|
|
|
foreach ($aNotPKs as $iIndex => $aColumn) {
|
|
|
|
|
|
$oTP3->newBlock('columnsWhitoutKeys');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP3->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
file_put_contents($sPath . PATH_SEP . 'map' . PATH_SEP . $sClassName
|
|
|
|
|
|
. 'MapBuilder.php', $oTP3->getOutputContent());
|
|
|
|
|
|
$oTP4 = new TemplatePower(PATH_TPL . 'additionalTables' . PATH_SEP . 'om' . PATH_SEP . 'BaseTable.tpl');
|
|
|
|
|
|
$oTP4->prepare();
|
|
|
|
|
|
switch (count($aPKs)) {
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
$aData['getPrimaryKeyFunction'] = 'return null;';
|
|
|
|
|
|
$aData['setPrimaryKeyFunction'] = '';
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
$aData['getPrimaryKeyFunction'] = 'return $this->get' . $aPKs[0]['phpName'] . '();';
|
|
|
|
|
|
$aData['setPrimaryKeyFunction'] = '$this->set' . $aPKs[0]['phpName'] . '($key);';
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
$aData['getPrimaryKeyFunction'] = '$pks = array();' . "\n";
|
|
|
|
|
|
$aData['setPrimaryKeyFunction'] = '';
|
|
|
|
|
|
foreach ($aPKs as $iIndex => $aColumn) {
|
|
|
|
|
|
$aData['getPrimaryKeyFunction'] .= '$pks[' . $iIndex . '] = $this->get'
|
|
|
|
|
|
. $aColumn['phpName'] . '();' . "\n";
|
|
|
|
|
|
$aData['setPrimaryKeyFunction'] .= '$this->set' . $aColumn['phpName']
|
|
|
|
|
|
. '($keys[' . $iIndex . ']);' . "\n";
|
|
|
|
|
|
}
|
|
|
|
|
|
$aData['getPrimaryKeyFunction'] .= 'return $pks;' . "\n";
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP4->assignGlobal($aData);
|
|
|
|
|
|
foreach ($aColumns as $iIndex => $aColumn) {
|
|
|
|
|
|
$oTP4->newBlock('allColumns1');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP4->newBlock('allColumns2');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP4->newBlock('allColumns3');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP4->newBlock('allColumns4');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP4->newBlock('allColumns5');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP4->newBlock('allColumns6');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP4->newBlock('allColumns7');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP4->newBlock('allColumns8');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP4->newBlock('allColumns9');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP4->gotoBlock('_ROOT');
|
|
|
|
|
|
foreach ($aPKs as $iIndex => $aColumn) {
|
|
|
|
|
|
$oTP4->newBlock('primaryKeys1');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP4->gotoBlock('_ROOT');
|
|
|
|
|
|
foreach ($aPKs as $iIndex => $aColumn) {
|
|
|
|
|
|
$oTP4->newBlock('primaryKeys2');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP4->gotoBlock('_ROOT');
|
|
|
|
|
|
foreach ($aNotPKs as $iIndex => $aColumn) {
|
|
|
|
|
|
$oTP4->newBlock('columnsWhitoutKeys');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
file_put_contents($sPath . PATH_SEP . 'om' . PATH_SEP . 'Base'
|
|
|
|
|
|
. $sClassName . '.php', $oTP4->getOutputContent());
|
|
|
|
|
|
$oTP5 = new TemplatePower(PATH_TPL . 'additionalTables' . PATH_SEP . 'om' . PATH_SEP . 'BaseTablePeer.tpl');
|
|
|
|
|
|
$oTP5->prepare();
|
|
|
|
|
|
$sKeys = '';
|
|
|
|
|
|
foreach ($aPKs as $iIndex => $aColumn) {
|
|
|
|
|
|
$sKeys .= '$' . $aColumn['var'] . ', ';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sKeys = substr($sKeys, 0, -2);
|
|
|
|
|
|
//$sKeys = '$pm_unique_id';
|
|
|
|
|
|
if ($sKeys != '') {
|
|
|
|
|
|
$aData['sKeys'] = $sKeys;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$aData['sKeys'] = '$DUMMY';
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP5->assignGlobal($aData);
|
|
|
|
|
|
foreach ($aColumns as $iIndex => $aColumn) {
|
|
|
|
|
|
$oTP5->newBlock('allColumns1');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP5->newBlock('allColumns2');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP5->newBlock('allColumns3');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP5->newBlock('allColumns4');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP5->newBlock('allColumns5');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP5->newBlock('allColumns6');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP5->newBlock('allColumns7');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP5->newBlock('allColumns8');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP5->newBlock('allColumns9');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP5->newBlock('allColumns10');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$oTP5->gotoBlock('_ROOT');
|
|
|
|
|
|
foreach ($aPKs as $iIndex => $aColumn) {
|
|
|
|
|
|
$oTP5->newBlock('primaryKeys1');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
foreach ($aPKs as $iIndex => $aColumn) {
|
|
|
|
|
|
$oTP5->newBlock('primaryKeys2');
|
|
|
|
|
|
$aKeys = array_keys($aColumn);
|
|
|
|
|
|
foreach ($aKeys as $sKey) {
|
|
|
|
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
file_put_contents($sPath . PATH_SEP . 'om' . PATH_SEP . 'Base'
|
|
|
|
|
|
. $sClassName . 'Peer.php', $oTP5->getOutputContent());
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw($oError);
|
2011-09-20 09:18:50 -04:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2012-07-03 15:35:57 -04:00
|
|
|
|
}
|
2012-10-22 05:57:53 -04:00
|
|
|
|
|