2014-11-07 17:19:35 -04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
require_once 'classes/model/om/BaseListMyInbox.php';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Skeleton subclass for representing a row from the 'LIST_MY_INBOX' table.
|
|
|
|
|
*
|
2015-02-24 14:07:29 -04:00
|
|
|
*
|
2014-11-07 17:19:35 -04:00
|
|
|
*
|
|
|
|
|
* 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.
|
|
|
|
|
*
|
|
|
|
|
* @package classes.model
|
|
|
|
|
*/
|
2017-02-22 12:12:22 -04:00
|
|
|
// @codingStandardsIgnoreStart
|
2017-11-21 09:35:32 -04:00
|
|
|
class ListMyInbox extends BaseListMyInbox implements ListInterface
|
2014-11-07 17:19:35 -04:00
|
|
|
{
|
2017-11-21 09:35:32 -04:00
|
|
|
use ListBaseTrait;
|
|
|
|
|
|
2017-02-22 12:12:22 -04:00
|
|
|
// @codingStandardsIgnoreEnd
|
2014-11-07 17:19:35 -04:00
|
|
|
/**
|
|
|
|
|
* Create List My Inbox Table
|
|
|
|
|
*
|
|
|
|
|
* @param type $data
|
|
|
|
|
* @return type
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
public function create($data)
|
|
|
|
|
{
|
2017-02-23 14:47:39 -04:00
|
|
|
if (!empty($data['PRO_UID']) && empty($data['PRO_ID'])) {
|
2017-02-21 16:25:17 -04:00
|
|
|
$p = new Process();
|
2017-02-20 11:15:23 -04:00
|
|
|
$data['PRO_ID'] = $p->load($data['PRO_UID'])['PRO_ID'];
|
|
|
|
|
}
|
|
|
|
|
if (!empty($data['USR_UID'])) {
|
2017-02-21 16:25:17 -04:00
|
|
|
$u = new Users();
|
|
|
|
|
$data['USR_ID'] = $u->load($data['USR_UID'])['USR_ID'];
|
2017-02-20 11:15:23 -04:00
|
|
|
}
|
2017-02-20 13:08:08 -04:00
|
|
|
if (!empty($data['TAS_UID'])) {
|
2017-02-21 16:25:17 -04:00
|
|
|
$t = new Task();
|
2017-02-20 13:08:08 -04:00
|
|
|
$data['TAS_ID'] = $t->load($data['TAS_UID'])['TAS_ID'];
|
|
|
|
|
}
|
2017-02-21 16:25:17 -04:00
|
|
|
if (!empty($data['APP_STATUS'])) {
|
|
|
|
|
$data['APP_STATUS_ID'] = Application::$app_status_values[$data['APP_STATUS']];
|
|
|
|
|
}
|
2017-02-22 12:12:22 -04:00
|
|
|
$con = Propel::getConnection(ListMyInboxPeer::DATABASE_NAME);
|
2014-11-07 17:19:35 -04:00
|
|
|
try {
|
2017-02-22 12:12:22 -04:00
|
|
|
$this->fromArray($data, BasePeer::TYPE_FIELDNAME);
|
2014-11-07 17:19:35 -04:00
|
|
|
if ($this->validate()) {
|
|
|
|
|
$result = $this->save();
|
|
|
|
|
} else {
|
2017-02-22 12:12:22 -04:00
|
|
|
$e = new Exception("Failed Validation in class " . get_class($this) . ".");
|
2014-11-07 17:19:35 -04:00
|
|
|
$e->aValidationFailures = $this->getValidationFailures();
|
|
|
|
|
throw ($e);
|
|
|
|
|
}
|
|
|
|
|
$con->commit();
|
|
|
|
|
return $result;
|
2017-02-22 12:12:22 -04:00
|
|
|
} catch (Exception $e) {
|
2014-11-07 17:19:35 -04:00
|
|
|
$con->rollback();
|
|
|
|
|
throw ($e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Update List My Inbox Table
|
|
|
|
|
*
|
|
|
|
|
* @param type $data
|
|
|
|
|
* @return type
|
|
|
|
|
* @throws type
|
|
|
|
|
*/
|
|
|
|
|
public function update($data)
|
|
|
|
|
{
|
2017-02-22 12:12:22 -04:00
|
|
|
if (!empty($data['USR_UID'])) {
|
2017-02-21 16:25:17 -04:00
|
|
|
$u = new Users();
|
|
|
|
|
$data['USR_ID'] = $u->load($data['USR_UID'])['USR_ID'];
|
2017-02-20 11:15:23 -04:00
|
|
|
}
|
2017-02-20 13:08:08 -04:00
|
|
|
if (!empty($data['TAS_UID'])) {
|
2017-02-21 16:25:17 -04:00
|
|
|
$t = new Task();
|
2017-02-20 13:08:08 -04:00
|
|
|
$data['TAS_ID'] = $t->load($data['TAS_UID'])['TAS_ID'];
|
|
|
|
|
}
|
2017-02-21 16:25:17 -04:00
|
|
|
if (!empty($data['APP_STATUS'])) {
|
|
|
|
|
$data['APP_STATUS_ID'] = Application::$app_status_values[$data['APP_STATUS']];
|
|
|
|
|
}
|
2017-02-22 12:12:22 -04:00
|
|
|
$con = Propel::getConnection(ListMyInboxPeer::DATABASE_NAME);
|
2014-11-07 17:19:35 -04:00
|
|
|
try {
|
|
|
|
|
$con->begin();
|
2017-02-22 12:12:22 -04:00
|
|
|
$this->setNew(false);
|
|
|
|
|
$this->fromArray($data, BasePeer::TYPE_FIELDNAME);
|
2014-11-07 17:19:35 -04:00
|
|
|
if ($this->validate()) {
|
|
|
|
|
$result = $this->save();
|
|
|
|
|
$con->commit();
|
|
|
|
|
return $result;
|
|
|
|
|
} else {
|
|
|
|
|
$con->rollback();
|
2017-02-22 12:12:22 -04:00
|
|
|
throw (new Exception("Failed Validation in class " . get_class($this) . "."));
|
2014-11-07 17:19:35 -04:00
|
|
|
}
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
$con->rollback();
|
|
|
|
|
throw ($e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Remove List My Inbox
|
|
|
|
|
*
|
|
|
|
|
* @param type $seqName
|
|
|
|
|
* @return type
|
|
|
|
|
* @throws type
|
|
|
|
|
*
|
|
|
|
|
*/
|
2017-02-22 12:12:22 -04:00
|
|
|
public function remove($app_uid, $usr_uid)
|
2014-11-07 17:19:35 -04:00
|
|
|
{
|
2017-02-22 12:12:22 -04:00
|
|
|
$con = Propel::getConnection(ListMyInboxPeer::DATABASE_NAME);
|
2014-11-07 17:19:35 -04:00
|
|
|
try {
|
|
|
|
|
$this->setAppUid($app_uid);
|
|
|
|
|
$this->setUsrUid($usr_uid);
|
|
|
|
|
|
|
|
|
|
$con->begin();
|
|
|
|
|
$this->delete();
|
|
|
|
|
$con->commit();
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
$con->rollback();
|
|
|
|
|
throw ($e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Refresh List My Inbox
|
|
|
|
|
*
|
|
|
|
|
* @param type $seqName
|
|
|
|
|
* @return type
|
|
|
|
|
* @throws type
|
|
|
|
|
*
|
|
|
|
|
*/
|
2017-02-22 12:12:22 -04:00
|
|
|
public function refresh($data)
|
2014-11-07 17:19:35 -04:00
|
|
|
{
|
|
|
|
|
$data['APP_STATUS'] = (empty($data['APP_STATUS'])) ? 'TO_DO' : $data['APP_STATUS'];
|
|
|
|
|
|
|
|
|
|
$criteria = new Criteria();
|
|
|
|
|
$criteria->addSelectColumn(UsersPeer::USR_USERNAME);
|
|
|
|
|
$criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
|
|
|
|
|
$criteria->addSelectColumn(UsersPeer::USR_LASTNAME);
|
2017-02-22 12:12:22 -04:00
|
|
|
$criteria->add(UsersPeer::USR_UID, $data['USR_UID'], Criteria::EQUAL);
|
2014-11-07 17:19:35 -04:00
|
|
|
$dataset = UsersPeer::doSelectRS($criteria);
|
|
|
|
|
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$dataset->next();
|
|
|
|
|
$aRow = $dataset->getRow();
|
|
|
|
|
$data['DEL_CURRENT_USR_UID'] = $data['USR_UID'];
|
|
|
|
|
$data['DEL_CURRENT_USR_USERNAME'] = $aRow['USR_USERNAME'];
|
|
|
|
|
$data['DEL_CURRENT_USR_FIRSTNAME'] = $aRow['USR_FIRSTNAME'];
|
|
|
|
|
$data['DEL_CURRENT_USR_LASTNAME'] = $aRow['USR_LASTNAME'];
|
|
|
|
|
|
|
|
|
|
if ($data['DEL_INDEX'] == 1 && $data['APP_STATUS'] == 'TO_DO') {
|
|
|
|
|
$data['APP_CREATE_DATE'] = $data['APP_UPDATE_DATE'];
|
2015-03-27 14:24:56 -04:00
|
|
|
$oCriteria = new Criteria('workflow');
|
|
|
|
|
$oCriteria->add(ListMyInboxPeer::APP_UID, $data['APP_UID']);
|
|
|
|
|
$oCriteria->add(ListMyInboxPeer::USR_UID, $data['USR_UID']);
|
|
|
|
|
ListMyInboxPeer::doDelete($oCriteria);
|
2014-11-07 17:19:35 -04:00
|
|
|
$this->create($data);
|
|
|
|
|
} else {
|
|
|
|
|
unset($data['USR_UID']);
|
|
|
|
|
$this->update($data);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-02-22 12:12:22 -04:00
|
|
|
public function loadFilters(&$criteria, $filters)
|
2014-11-07 17:19:35 -04:00
|
|
|
{
|
|
|
|
|
$filter = isset($filters['filter']) ? $filters['filter'] : "";
|
|
|
|
|
$search = isset($filters['search']) ? $filters['search'] : "";
|
|
|
|
|
$process = isset($filters['process']) ? $filters['process'] : "";
|
|
|
|
|
$category = isset($filters['category']) ? $filters['category'] : "";
|
|
|
|
|
$dateFrom = isset($filters['dateFrom']) ? $filters['dateFrom'] : "";
|
|
|
|
|
$dateTo = isset($filters['dateTo']) ? $filters['dateTo'] : "";
|
|
|
|
|
|
|
|
|
|
if ($filter != '') {
|
|
|
|
|
switch ($filter) {
|
|
|
|
|
case 'read':
|
2017-02-22 12:12:22 -04:00
|
|
|
$criteria->add(ListMyInboxPeer::DEL_INIT_DATE, null, Criteria::ISNOTNULL);
|
2014-11-07 17:19:35 -04:00
|
|
|
break;
|
|
|
|
|
case 'unread':
|
2017-02-22 12:12:22 -04:00
|
|
|
$criteria->add(ListMyInboxPeer::DEL_INIT_DATE, null, Criteria::ISNULL);
|
2014-11-07 17:19:35 -04:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($search != '') {
|
|
|
|
|
$criteria->add(
|
2017-02-22 12:12:22 -04:00
|
|
|
$criteria->getNewCriterion('CON_APP.CON_VALUE', '%' . $search . '%', Criteria::LIKE)
|
|
|
|
|
->addOr(
|
|
|
|
|
$criteria->getNewCriterion('CON_TAS.CON_VALUE', '%' . $search . '%', Criteria::LIKE)
|
|
|
|
|
->addOr(
|
|
|
|
|
$criteria->getNewCriterion(ListMyInboxPeer::APP_UID, $search, Criteria::EQUAL)
|
|
|
|
|
->addOr(
|
|
|
|
|
$criteria->getNewCriterion(ListMyInboxPeer::APP_NUMBER, $search, Criteria::EQUAL)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
);
|
2014-11-07 17:19:35 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($process != '') {
|
2017-02-22 12:12:22 -04:00
|
|
|
$criteria->add(ListMyInboxPeer::PRO_UID, $process, Criteria::EQUAL);
|
2014-11-07 17:19:35 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($category != '') {
|
|
|
|
|
// INNER JOIN FOR TAS_TITLE
|
|
|
|
|
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
|
|
|
|
|
$aConditions = array();
|
|
|
|
|
$aConditions[] = array(ListMyInboxPeer::PRO_UID, ProcessPeer::PRO_UID);
|
|
|
|
|
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'");
|
|
|
|
|
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($dateFrom != "") {
|
|
|
|
|
if ($dateTo != "") {
|
|
|
|
|
if ($dateFrom == $dateTo) {
|
|
|
|
|
$dateSame = $dateFrom;
|
|
|
|
|
$dateFrom = $dateSame . " 00:00:00";
|
|
|
|
|
$dateTo = $dateSame . " 23:59:59";
|
|
|
|
|
} else {
|
|
|
|
|
$dateFrom = $dateFrom . " 00:00:00";
|
|
|
|
|
$dateTo = $dateTo . " 23:59:59";
|
|
|
|
|
}
|
|
|
|
|
|
2017-02-22 12:12:22 -04:00
|
|
|
$criteria->add(
|
|
|
|
|
$criteria->getNewCriterion(
|
|
|
|
|
ListMyInboxPeer::DEL_DELEGATE_DATE,
|
|
|
|
|
$dateFrom,
|
|
|
|
|
Criteria::GREATER_EQUAL
|
|
|
|
|
)->addAnd(
|
|
|
|
|
$criteria->getNewCriterion(
|
|
|
|
|
ListMyInboxPeer::DEL_DELEGATE_DATE,
|
|
|
|
|
$dateTo,
|
|
|
|
|
Criteria::LESS_EQUAL
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
);
|
2014-11-07 17:19:35 -04:00
|
|
|
} else {
|
|
|
|
|
$dateFrom = $dateFrom . " 00:00:00";
|
|
|
|
|
|
2017-02-22 12:12:22 -04:00
|
|
|
$criteria->add(ListMyInboxPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL);
|
2014-11-07 17:19:35 -04:00
|
|
|
}
|
|
|
|
|
} elseif ($dateTo != "") {
|
|
|
|
|
$dateTo = $dateTo . " 23:59:59";
|
|
|
|
|
|
2017-02-22 12:12:22 -04:00
|
|
|
$criteria->add(ListMyInboxPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL);
|
2014-11-07 17:19:35 -04:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2017-11-21 09:35:32 -04:00
|
|
|
public function loadList($usr_uid, $filters = array(), callable $callbackRecord = null)
|
2014-11-07 17:19:35 -04:00
|
|
|
{
|
|
|
|
|
$criteria = new Criteria();
|
|
|
|
|
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::APP_UID);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::USR_UID);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::TAS_UID);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::PRO_UID);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::APP_NUMBER);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::APP_TITLE);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::APP_PRO_TITLE);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::APP_TAS_TITLE);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::APP_CREATE_DATE);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::APP_UPDATE_DATE);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::APP_FINISH_DATE);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::APP_STATUS);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::DEL_INDEX);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::DEL_CURRENT_USR_UID);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::DEL_CURRENT_USR_FIRSTNAME);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::DEL_CURRENT_USR_LASTNAME);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::DEL_CURRENT_USR_USERNAME);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::DEL_PREVIOUS_USR_UID);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::DEL_PREVIOUS_USR_USERNAME);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::DEL_PREVIOUS_USR_FIRSTNAME);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::DEL_PREVIOUS_USR_LASTNAME);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::DEL_DELEGATE_DATE);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::DEL_INIT_DATE);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::DEL_DUE_DATE);
|
|
|
|
|
$criteria->addSelectColumn(ListMyInboxPeer::DEL_PRIORITY);
|
2017-02-22 12:12:22 -04:00
|
|
|
$criteria->add(ListMyInboxPeer::USR_UID, $usr_uid, Criteria::EQUAL);
|
2014-11-07 17:19:35 -04:00
|
|
|
self::loadFilters($criteria, $filters);
|
|
|
|
|
|
|
|
|
|
$sort = (!empty($filters['sort'])) ? $filters['sort'] : "APP_UPDATE_DATE";
|
|
|
|
|
$dir = isset($filters['dir']) ? $filters['dir'] : "ASC";
|
|
|
|
|
$start = isset($filters['start']) ? $filters['start'] : "0";
|
|
|
|
|
$limit = isset($filters['limit']) ? $filters['limit'] : "25";
|
|
|
|
|
$paged = isset($filters['paged']) ? $filters['paged'] : 1;
|
|
|
|
|
|
|
|
|
|
if ($dir == "DESC") {
|
|
|
|
|
$criteria->addDescendingOrderByColumn($sort);
|
|
|
|
|
} else {
|
|
|
|
|
$criteria->addAscendingOrderByColumn($sort);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($paged == 1) {
|
2017-02-22 12:12:22 -04:00
|
|
|
$criteria->setLimit($limit);
|
|
|
|
|
$criteria->setOffset($start);
|
2014-11-07 17:19:35 -04:00
|
|
|
}
|
|
|
|
|
|
2017-02-22 12:12:22 -04:00
|
|
|
$dataset = ListMyInboxPeer::doSelectRS($criteria, Propel::getDbConnection('workflow_ro'));
|
2014-11-07 17:19:35 -04:00
|
|
|
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$data = array();
|
2017-02-22 12:12:22 -04:00
|
|
|
$aPriorities = array('1' => 'VL', '2' => 'L', '3' => 'N', '4' => 'H', '5' => 'VH');
|
2014-11-07 17:19:35 -04:00
|
|
|
while ($dataset->next()) {
|
2015-05-05 16:51:53 -04:00
|
|
|
$aRow = (is_null($callbackRecord))? $dataset->getRow() : $callbackRecord($dataset->getRow());
|
|
|
|
|
|
2017-02-22 12:12:22 -04:00
|
|
|
$aRow['DEL_PRIORITY'] = G::LoadTranslation("ID_PRIORITY_{$aPriorities[$aRow['DEL_PRIORITY']]}");
|
2014-11-07 17:19:35 -04:00
|
|
|
$data[] = $aRow;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $data;
|
|
|
|
|
}
|
2017-02-09 15:17:13 -04:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Returns the number of cases of a user
|
|
|
|
|
* @param $usrUid
|
|
|
|
|
* @param array $filters
|
|
|
|
|
* @return int
|
|
|
|
|
*/
|
|
|
|
|
public function getCountList($usrUid, $filters = array())
|
|
|
|
|
{
|
|
|
|
|
$criteria = new Criteria();
|
|
|
|
|
$criteria->addSelectColumn('COUNT(*) AS TOTAL');
|
|
|
|
|
$criteria->add(ListMyInboxPeer::USR_UID, $usrUid, Criteria::EQUAL);
|
|
|
|
|
if (count($filters)) {
|
|
|
|
|
self::loadFilters($criteria, $filters);
|
|
|
|
|
}
|
|
|
|
|
$dataset = ListMyInboxPeer::doSelectRS($criteria);
|
|
|
|
|
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$dataset->next();
|
|
|
|
|
$aRow = $dataset->getRow();
|
|
|
|
|
return (int)$aRow['TOTAL'];
|
|
|
|
|
}
|
2014-11-07 17:19:35 -04:00
|
|
|
} // ListMyInbox
|