HOR-1107: Plugin Custom Cases List Builder y nueva estructura de Base Datos

correccion obervacion CR

correcciones CR

.
This commit is contained in:
mcuiza
2016-06-07 11:50:15 -04:00
parent 824d3728e2
commit 1ba52c21da
7 changed files with 70 additions and 11 deletions

View File

@@ -910,5 +910,65 @@ class PmTable
$m->execute( $args );
$m->runBuild();
}
public function addPMFieldsToList($action)
{
$conf = new Configurations();
$confCasesList = $conf->getConfiguration('casesList', $action);
if (!class_exists('AdditionalTables')) {
require_once ("classes/model/AdditionalTables.php");
}
$oCriteria = new Criteria('workflow');
$oCriteria->clearSelectColumns();
//If there is PMTable for this case list
if (is_array($confCasesList) && count($confCasesList) > 0 && isset($confCasesList["PMTable"]) && trim($confCasesList["PMTable"]) != "") {
//Getting the table name
$additionalTableUid = $confCasesList["PMTable"];
$additionalTable = AdditionalTablesPeer::retrieveByPK($additionalTableUid);
$tableName = $additionalTable->getAddTabName();
$additionalTable = new AdditionalTables();
$tableData = $additionalTable->load($additionalTableUid, true);
$tableField = array();
foreach ($tableData["FIELDS"] as $arrayField) {
$tableField[] = $arrayField["FLD_NAME"];
}
foreach ($confCasesList["second"]["data"] as $fieldData) {
$fieldData['name'] = ($fieldData['name'] == 'APP_STATUS_LABEL')? 'APP_STATUS' : $fieldData['name'];
if (in_array($fieldData["name"], $tableField)) {
$fieldTable = $fieldData["name"];
$fieldName = $tableName . "." . $fieldTable;
$oCriteria->addSelectColumn($fieldName);
}
}
switch ($action) {
case "sent":
$listTablePeer = 'ListParticipatedLastPeer';
break;
case "selfservice":
case "unassigned":
$listTablePeer = 'ListUnassignedPeer';
break;
case "paused":
$listTablePeer = 'ListPausedPeer';
break;
case "todo":
case 'draft':
$listTablePeer = 'ListInboxPeer';
break;
}
$oCriteria->addJoin($listTablePeer::APP_UID, $tableName.'.APP_UID', Criteria::LEFT_JOIN);
}
return $oCriteria;
}
}