2014-11-07 17:19:35 -04:00
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
|
|
require_once 'classes/model/om/BaseListParticipatedLast.php';
|
2017-10-13 15:02:14 -04:00
|
|
|
|
use ProcessMaker\BusinessModel\Cases as BmCases;
|
2014-11-07 17:19:35 -04:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Skeleton subclass for representing a row from the 'LIST_PARTICIPATED_LAST' 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.
|
2017-02-22 12:12:22 -04:00
|
|
|
|
*/
|
2017-11-21 09:35:32 -04:00
|
|
|
|
class ListParticipatedLast extends BaseListParticipatedLast implements ListInterface
|
2014-11-07 17:19:35 -04:00
|
|
|
|
{
|
2017-11-21 09:35:32 -04:00
|
|
|
|
use ListBaseTrait;
|
2017-04-21 12:04:57 -04:00
|
|
|
|
|
2014-11-07 17:19:35 -04:00
|
|
|
|
/**
|
2017-02-22 12:12:22 -04:00
|
|
|
|
* Create List Participated History Table.
|
2014-11-07 17:19:35 -04:00
|
|
|
|
*
|
|
|
|
|
|
* @param type $data
|
|
|
|
|
|
*
|
2017-02-22 12:12:22 -04:00
|
|
|
|
* @return type
|
2017-10-13 15:02:14 -04:00
|
|
|
|
* @throws Exception
|
2014-11-07 17:19:35 -04:00
|
|
|
|
*/
|
|
|
|
|
|
public function create($data)
|
2015-05-05 16:51:53 -04:00
|
|
|
|
{
|
2015-02-06 14:57:59 -04:00
|
|
|
|
$criteria = new Criteria();
|
|
|
|
|
|
$criteria->addSelectColumn(ApplicationPeer::APP_STATUS);
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$criteria->add(ApplicationPeer::APP_UID, $data['APP_UID'], Criteria::EQUAL);
|
2015-02-06 14:57:59 -04:00
|
|
|
|
$dataset = UsersPeer::doSelectRS($criteria);
|
|
|
|
|
|
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
|
$dataset->next();
|
|
|
|
|
|
$aRow = $dataset->getRow();
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$data['APP_STATUS'] = $aRow['APP_STATUS'];
|
2015-02-06 14:57:59 -04:00
|
|
|
|
|
2017-08-10 20:03:05 -04:00
|
|
|
|
$currentInformation = array();
|
2015-03-12 11:58:48 -04:00
|
|
|
|
if ($data['USR_UID'] != 'SELF_SERVICES') {
|
2017-02-22 12:12:22 -04:00
|
|
|
|
if ($data['USR_UID'] != '') {
|
2015-12-01 17:27:50 -04:00
|
|
|
|
$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);
|
2015-12-01 17:27:50 -04:00
|
|
|
|
$dataset = UsersPeer::doSelectRS($criteria);
|
|
|
|
|
|
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
|
$dataset->next();
|
|
|
|
|
|
$aRow = $dataset->getRow();
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$data['DEL_CURRENT_USR_USERNAME'] = $aRow['USR_USERNAME'];
|
2015-12-01 17:27:50 -04:00
|
|
|
|
$data['DEL_CURRENT_USR_FIRSTNAME'] = $aRow['USR_FIRSTNAME'];
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$data['DEL_CURRENT_USR_LASTNAME'] = $aRow['USR_LASTNAME'];
|
2016-02-29 14:45:07 -04:00
|
|
|
|
$data['DEL_CURRENT_TAS_TITLE'] = $data['APP_TAS_TITLE'];
|
2017-08-07 16:31:29 -04:00
|
|
|
|
$currentInformation = array(
|
|
|
|
|
|
'DEL_CURRENT_USR_USERNAME' => $data['DEL_CURRENT_USR_USERNAME'],
|
|
|
|
|
|
'DEL_CURRENT_USR_FIRSTNAME' => $data['DEL_CURRENT_USR_FIRSTNAME'],
|
|
|
|
|
|
'DEL_CURRENT_USR_LASTNAME' => $data['DEL_CURRENT_USR_LASTNAME'],
|
|
|
|
|
|
'DEL_CURRENT_TAS_TITLE' => $data['APP_TAS_TITLE']
|
|
|
|
|
|
);
|
2015-06-18 11:14:53 -04:00
|
|
|
|
}
|
2015-12-01 17:27:50 -04:00
|
|
|
|
} else {
|
2016-06-07 16:52:49 -04:00
|
|
|
|
$getData['USR_UID'] = $data['USR_UID_CURRENT'];
|
2015-12-14 11:50:10 -04:00
|
|
|
|
$getData['APP_UID'] = $data['APP_UID'];
|
|
|
|
|
|
$row = $this->getRowFromList($getData);
|
2016-10-05 11:56:29 -04:00
|
|
|
|
if (is_array($row) && sizeof($row)) {
|
2017-08-07 16:31:29 -04:00
|
|
|
|
$currentInformation = array(
|
2017-02-22 12:12:22 -04:00
|
|
|
|
'DEL_CURRENT_USR_USERNAME' => '',
|
|
|
|
|
|
'DEL_CURRENT_USR_FIRSTNAME' => '',
|
|
|
|
|
|
'DEL_CURRENT_USR_LASTNAME' => '',
|
2017-08-07 16:31:29 -04:00
|
|
|
|
'DEL_CURRENT_TAS_TITLE' => $data['APP_TAS_TITLE']
|
|
|
|
|
|
);
|
2015-12-14 11:50:10 -04:00
|
|
|
|
}
|
2015-03-12 11:58:48 -04:00
|
|
|
|
}
|
2016-06-07 16:52:49 -04:00
|
|
|
|
|
2017-02-22 12:12:22 -04:00
|
|
|
|
if ($this->primaryKeysExists($data)) {
|
2015-08-25 18:20:46 -04:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
2015-03-09 15:23:38 -04:00
|
|
|
|
|
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-22 12:12:22 -04:00
|
|
|
|
$data['PRO_ID'] = $p->load($data['PRO_UID'])['PRO_ID'];
|
2017-02-20 11:15:23 -04:00
|
|
|
|
}
|
2017-02-22 12:12:22 -04:00
|
|
|
|
if (!empty($data['USR_UID'])) {
|
2017-02-21 16:25:17 -04:00
|
|
|
|
$u = new Users();
|
2017-02-23 10:51:09 -04:00
|
|
|
|
$data['USR_ID'] = $data['USR_UID']==='SELF_SERVICES' ? null : $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-08-07 16:31:29 -04:00
|
|
|
|
//We will update the current information
|
2017-08-10 20:03:05 -04:00
|
|
|
|
if (count($currentInformation) > 0) {
|
|
|
|
|
|
$this->updateCurrentInfoByAppUid($data['APP_UID'], $currentInformation);
|
|
|
|
|
|
}
|
2017-08-07 16:31:29 -04:00
|
|
|
|
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$con = Propel::getConnection(ListParticipatedLastPeer::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();
|
2017-02-22 12:12:22 -04:00
|
|
|
|
|
2014-11-07 17:19:35 -04:00
|
|
|
|
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);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2017-08-07 16:31:29 -04:00
|
|
|
|
/**
|
|
|
|
|
|
* This function update the row related to the appUid with the current information
|
|
|
|
|
|
* @param string $appUid
|
|
|
|
|
|
* @param array $currentInformation
|
|
|
|
|
|
* @return void
|
|
|
|
|
|
*/
|
|
|
|
|
|
private function updateCurrentInfoByAppUid($appUid, $currentInformation)
|
|
|
|
|
|
{
|
|
|
|
|
|
//Update - WHERE
|
|
|
|
|
|
$criteriaWhere = new Criteria('workflow');
|
|
|
|
|
|
$criteriaWhere->add(ListParticipatedLastPeer::APP_UID, $appUid, Criteria::EQUAL);
|
|
|
|
|
|
//Update - SET
|
|
|
|
|
|
$criteriaSet = new Criteria('workflow');
|
|
|
|
|
|
$criteriaSet->add(ListParticipatedLastPeer::DEL_CURRENT_USR_USERNAME, $currentInformation['DEL_CURRENT_USR_USERNAME']);
|
|
|
|
|
|
$criteriaSet->add(ListParticipatedLastPeer::DEL_CURRENT_USR_FIRSTNAME, $currentInformation['DEL_CURRENT_USR_FIRSTNAME']);
|
|
|
|
|
|
$criteriaSet->add(ListParticipatedLastPeer::DEL_CURRENT_USR_LASTNAME, $currentInformation['DEL_CURRENT_USR_LASTNAME']);
|
|
|
|
|
|
$criteriaSet->add(ListParticipatedLastPeer::DEL_CURRENT_TAS_TITLE, $currentInformation['DEL_CURRENT_TAS_TITLE']);
|
|
|
|
|
|
|
|
|
|
|
|
BasePeer::doUpdate($criteriaWhere, $criteriaSet, Propel::getConnection('workflow'));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2014-11-07 17:19:35 -04:00
|
|
|
|
/**
|
2017-02-22 12:12:22 -04:00
|
|
|
|
* Update List Participated History Table.
|
2014-11-07 17:19:35 -04:00
|
|
|
|
*
|
|
|
|
|
|
* @param type $data
|
2017-02-22 12:12:22 -04:00
|
|
|
|
*
|
2014-11-07 17:19:35 -04:00
|
|
|
|
* @return type
|
2017-02-22 12:12:22 -04:00
|
|
|
|
*
|
2017-10-13 15:02:14 -04:00
|
|
|
|
* @throws Exception
|
2014-11-07 17:19:35 -04:00
|
|
|
|
*/
|
|
|
|
|
|
public function update($data)
|
2015-03-06 18:06:31 -04:00
|
|
|
|
{
|
2015-02-27 16:27:11 -04:00
|
|
|
|
$data['DEL_THREAD_STATUS'] = (isset($data['DEL_THREAD_STATUS'])) ? $data['DEL_THREAD_STATUS'] : 'OPEN';
|
2017-02-22 12:12:22 -04:00
|
|
|
|
if (!empty($data['USR_UID'])) {
|
2017-02-21 16:25:17 -04:00
|
|
|
|
$u = new Users();
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$data['USR_ID'] = $data['USR_UID'] === 'SELF_SERVICES' ? null : $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(ListParticipatedLastPeer::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();
|
2017-02-22 12:12:22 -04:00
|
|
|
|
|
2014-11-07 17:19:35 -04:00
|
|
|
|
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);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2015-02-27 16:27:11 -04:00
|
|
|
|
/**
|
2017-02-22 12:12:22 -04:00
|
|
|
|
* Refresh List Participated Last.
|
2015-02-27 16:27:11 -04:00
|
|
|
|
*
|
2017-10-13 15:02:14 -04:00
|
|
|
|
* @param array $data
|
|
|
|
|
|
* @param boolean $isSelfService
|
2017-02-22 12:12:22 -04:00
|
|
|
|
*
|
2015-02-27 16:27:11 -04:00
|
|
|
|
* @return type
|
|
|
|
|
|
*
|
2017-10-13 15:02:14 -04:00
|
|
|
|
* @throws Exception
|
2015-02-27 16:27:11 -04:00
|
|
|
|
*/
|
2017-02-22 12:12:22 -04:00
|
|
|
|
public function refresh($data, $isSelfService = false)
|
2015-05-05 16:51:53 -04:00
|
|
|
|
{
|
2015-02-27 16:27:11 -04:00
|
|
|
|
$data['APP_STATUS'] = (empty($data['APP_STATUS'])) ? 'TO_DO' : $data['APP_STATUS'];
|
2017-02-22 12:12:22 -04:00
|
|
|
|
if (!empty($data['USR_UID'])) {
|
2017-02-21 16:25:17 -04:00
|
|
|
|
$u = new Users();
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$data['USR_ID'] = $data['USR_UID'] === 'SELF_SERVICES' ? null : $u->load($data['USR_UID'])['USR_ID'];
|
2017-02-21 16:25:17 -04:00
|
|
|
|
}
|
|
|
|
|
|
if (!empty($data['TAS_UID'])) {
|
|
|
|
|
|
$t = new Task();
|
|
|
|
|
|
$data['TAS_ID'] = $t->load($data['TAS_UID'])['TAS_ID'];
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!empty($data['APP_STATUS'])) {
|
|
|
|
|
|
$data['APP_STATUS_ID'] = Application::$app_status_values[$data['APP_STATUS']];
|
|
|
|
|
|
}
|
2015-03-12 11:58:48 -04:00
|
|
|
|
if (!$isSelfService) {
|
2017-02-22 12:12:22 -04:00
|
|
|
|
if ($data['USR_UID'] == '') {
|
2015-07-07 11:51:12 -04:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2015-03-12 11:58:48 -04:00
|
|
|
|
$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);
|
2015-03-12 11:58:48 -04:00
|
|
|
|
$dataset = UsersPeer::doSelectRS($criteria);
|
|
|
|
|
|
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
|
$dataset->next();
|
|
|
|
|
|
$aRow = $dataset->getRow();
|
|
|
|
|
|
|
|
|
|
|
|
//Update - WHERE
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$criteriaWhere = new Criteria('workflow');
|
|
|
|
|
|
$criteriaWhere->add(ListParticipatedLastPeer::APP_UID, $data['APP_UID'], Criteria::EQUAL);
|
2015-03-12 11:58:48 -04:00
|
|
|
|
//Update - SET
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$criteriaSet = new Criteria('workflow');
|
2015-03-12 11:58:48 -04:00
|
|
|
|
$criteriaSet->add(ListParticipatedLastPeer::DEL_CURRENT_USR_USERNAME, $aRow['USR_USERNAME']);
|
|
|
|
|
|
$criteriaSet->add(ListParticipatedLastPeer::DEL_CURRENT_USR_FIRSTNAME, $aRow['USR_FIRSTNAME']);
|
|
|
|
|
|
$criteriaSet->add(ListParticipatedLastPeer::DEL_CURRENT_USR_LASTNAME, $aRow['USR_LASTNAME']);
|
2016-02-29 14:45:07 -04:00
|
|
|
|
|
|
|
|
|
|
if (isset($data['APP_TAS_TITLE'])) {
|
|
|
|
|
|
$criteriaSet->add(ListParticipatedLastPeer::DEL_CURRENT_TAS_TITLE, $data['APP_TAS_TITLE']);
|
2016-06-07 16:52:49 -04:00
|
|
|
|
}
|
2016-02-29 14:45:07 -04:00
|
|
|
|
|
2017-02-22 12:12:22 -04:00
|
|
|
|
BasePeer::doUpdate($criteriaWhere, $criteriaSet, Propel::getConnection('workflow'));
|
2015-03-12 11:58:48 -04:00
|
|
|
|
}
|
|
|
|
|
|
$this->update($data);
|
2015-02-27 16:27:11 -04:00
|
|
|
|
}
|
2014-11-07 17:19:35 -04:00
|
|
|
|
/**
|
2017-02-22 12:12:22 -04:00
|
|
|
|
* Remove List Participated History.
|
2014-11-07 17:19:35 -04:00
|
|
|
|
*
|
2017-10-13 15:02:14 -04:00
|
|
|
|
* @param string $app_uid
|
|
|
|
|
|
* @param string $usr_uid
|
|
|
|
|
|
* @param integer $del_index
|
2017-02-22 12:12:22 -04:00
|
|
|
|
*
|
2014-11-07 17:19:35 -04:00
|
|
|
|
* @return type
|
|
|
|
|
|
*
|
2017-10-13 15:02:14 -04:00
|
|
|
|
* @throws Exception
|
2014-11-07 17:19:35 -04:00
|
|
|
|
*/
|
2017-02-22 12:12:22 -04:00
|
|
|
|
public function remove($app_uid, $usr_uid, $del_index)
|
2014-11-07 17:19:35 -04:00
|
|
|
|
{
|
|
|
|
|
|
try {
|
2015-08-18 12:24:43 -04:00
|
|
|
|
if (!is_null(ListParticipatedLastPeer::retrieveByPK($app_uid, $usr_uid, $del_index))) {
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$criteria = new Criteria('workflow');
|
2015-08-18 12:24:43 -04:00
|
|
|
|
|
|
|
|
|
|
$criteria->add(ListParticipatedLastPeer::APP_UID, $app_uid);
|
|
|
|
|
|
$criteria->add(ListParticipatedLastPeer::USR_UID, $usr_uid);
|
|
|
|
|
|
$criteria->add(ListParticipatedLastPeer::DEL_INDEX, $del_index);
|
2015-12-14 11:50:10 -04:00
|
|
|
|
$result = ListParticipatedLastPeer::doDelete($criteria);
|
2015-08-18 12:24:43 -04:00
|
|
|
|
} else {
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$criteria = new Criteria('workflow');
|
2015-08-18 12:24:43 -04:00
|
|
|
|
$criteria->add(ListParticipatedLastPeer::APP_UID, $app_uid);
|
|
|
|
|
|
$criteria->add(ListParticipatedLastPeer::USR_UID, $usr_uid);
|
|
|
|
|
|
$rsCriteria = ListParticipatedLastPeer::doSelectRS($criteria);
|
|
|
|
|
|
|
|
|
|
|
|
if ($rsCriteria->next()) {
|
|
|
|
|
|
$criteria2 = clone $criteria;
|
2015-12-14 11:50:10 -04:00
|
|
|
|
$result = ListParticipatedLastPeer::doDelete($criteria2);
|
2015-08-18 12:24:43 -04:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2014-11-07 17:19:35 -04:00
|
|
|
|
} catch (Exception $e) {
|
2015-08-18 12:24:43 -04:00
|
|
|
|
throw $e;
|
2014-11-07 17:19:35 -04:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2017-04-21 12:04:57 -04:00
|
|
|
|
/**
|
|
|
|
|
|
* This function add restriction in the query related to the filters
|
|
|
|
|
|
* @param Criteria $criteria, must be contain only select of columns
|
|
|
|
|
|
* @param array $filters
|
|
|
|
|
|
* @param array $additionalColumns information about the new columns related to custom cases list
|
|
|
|
|
|
* @throws PropelException
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function loadFilters(&$criteria, $filters, $additionalColumns = array())
|
2014-11-07 17:19:35 -04:00
|
|
|
|
{
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$filter = isset($filters['filter']) ? $filters['filter'] : '';
|
|
|
|
|
|
$search = isset($filters['search']) ? $filters['search'] : '';
|
2017-05-31 10:53:22 -04:00
|
|
|
|
$caseLink = isset($filters['caseLink']) ? $filters['caseLink'] : '';
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$process = isset($filters['process']) ? $filters['process'] : '';
|
|
|
|
|
|
$category = isset($filters['category']) ? $filters['category'] : '';
|
|
|
|
|
|
$dateFrom = isset($filters['dateFrom']) ? $filters['dateFrom'] : '';
|
|
|
|
|
|
$dateTo = isset($filters['dateTo']) ? $filters['dateTo'] : '';
|
|
|
|
|
|
$filterStatus = isset($filters['filterStatus']) ? $filters['filterStatus'] : '';
|
|
|
|
|
|
$newestthan = isset($filters['newestthan']) ? $filters['newestthan'] : '';
|
|
|
|
|
|
$oldestthan = isset($filters['oldestthan']) ? $filters['oldestthan'] : '';
|
2014-11-07 17:19:35 -04:00
|
|
|
|
|
2017-02-10 12:27:28 -04:00
|
|
|
|
//Filter Started by me and Completed by me
|
2017-02-09 15:17:13 -04:00
|
|
|
|
switch ($filter) {
|
2017-02-09 19:12:40 -04:00
|
|
|
|
case 'started':
|
|
|
|
|
|
$criteria->add(ListParticipatedLastPeer::DEL_INDEX, 1, Criteria::EQUAL);
|
2017-02-09 15:17:13 -04:00
|
|
|
|
break;
|
2017-02-09 19:12:40 -04:00
|
|
|
|
case 'completed':
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$criteria->add(ListParticipatedLastPeer::APP_STATUS, 'COMPLETED', Criteria::EQUAL);
|
2017-02-09 15:17:13 -04:00
|
|
|
|
break;
|
2014-11-07 17:19:35 -04:00
|
|
|
|
}
|
2017-02-10 12:27:28 -04:00
|
|
|
|
//Check the inbox to call
|
|
|
|
|
|
switch ($filterStatus) {
|
|
|
|
|
|
case 'DRAFT':
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$criteria->add(ListParticipatedLastPeer::APP_STATUS, 'DRAFT', Criteria::EQUAL);
|
|
|
|
|
|
break;
|
2017-02-10 12:27:28 -04:00
|
|
|
|
case 'TO_DO':
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$criteria->add(ListParticipatedLastPeer::APP_STATUS, 'TO_DO', Criteria::EQUAL);
|
|
|
|
|
|
break;
|
2017-02-10 12:27:28 -04:00
|
|
|
|
case 'COMPLETED':
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$criteria->add(ListParticipatedLastPeer::APP_STATUS, 'COMPLETED', Criteria::EQUAL);
|
|
|
|
|
|
break;
|
2017-02-10 12:27:28 -04:00
|
|
|
|
case 'CANCELLED':
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$criteria->add(ListParticipatedLastPeer::APP_STATUS, 'CANCELLED', Criteria::EQUAL);
|
|
|
|
|
|
break;
|
2017-02-10 12:27:28 -04:00
|
|
|
|
}
|
2014-11-07 17:19:35 -04:00
|
|
|
|
|
2017-04-21 12:04:57 -04:00
|
|
|
|
//Filter Search
|
2017-02-22 12:12:22 -04:00
|
|
|
|
if ($search != '') {
|
2017-05-31 10:53:22 -04:00
|
|
|
|
//Check if we need to search to the APP_UID
|
|
|
|
|
|
if (!empty($caseLink)) {
|
|
|
|
|
|
$criteria->add(ListParticipatedLastPeer::APP_UID, $search, Criteria::EQUAL);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
//If we have additional tables configured in the custom cases list, prepare the variables for search
|
2017-10-13 15:02:14 -04:00
|
|
|
|
$casesList = new BmCases();
|
|
|
|
|
|
$casesList->getSearchCriteriaListCases(
|
|
|
|
|
|
$criteria,
|
|
|
|
|
|
__CLASS__ . 'Peer',
|
|
|
|
|
|
$search,
|
|
|
|
|
|
$this->getAdditionalClassName(),
|
|
|
|
|
|
$additionalColumns
|
|
|
|
|
|
);
|
2017-04-21 12:04:57 -04:00
|
|
|
|
}
|
2015-09-25 15:15:50 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
2017-04-21 12:04:57 -04:00
|
|
|
|
//Filter Process Id
|
2014-11-07 17:19:35 -04:00
|
|
|
|
if ($process != '') {
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$criteria->add(ListParticipatedLastPeer::PRO_UID, $process, Criteria::EQUAL);
|
2014-11-07 17:19:35 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
2017-04-21 12:04:57 -04:00
|
|
|
|
//Filter Category
|
2014-11-07 17:19:35 -04:00
|
|
|
|
if ($category != '') {
|
|
|
|
|
|
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$aConditions = array();
|
2014-11-07 17:19:35 -04:00
|
|
|
|
$aConditions[] = array(ListParticipatedLastPeer::PRO_UID, ProcessPeer::PRO_UID);
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'".$category."'");
|
2014-11-07 17:19:35 -04:00
|
|
|
|
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
|
|
|
|
|
|
}
|
2017-03-22 15:24:51 -04:00
|
|
|
|
|
|
|
|
|
|
//Those filters: $newestthan, $oldestthan is used from mobile GET /light/participated
|
|
|
|
|
|
if ($newestthan != '') {
|
|
|
|
|
|
$criteria->add( $criteria->getNewCriterion( ListParticipatedLastPeer::DEL_DELEGATE_DATE, $newestthan, Criteria::GREATER_THAN ));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if ($oldestthan != '') {
|
|
|
|
|
|
$criteria->add( $criteria->getNewCriterion( ListParticipatedLastPeer::DEL_DELEGATE_DATE, $oldestthan, Criteria::LESS_THAN ));
|
|
|
|
|
|
}
|
2014-11-07 17:19:35 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
2017-04-21 12:04:57 -04:00
|
|
|
|
/**
|
|
|
|
|
|
* This function get the information in the corresponding cases list
|
|
|
|
|
|
* @param string $usr_uid, must be show cases related to this user
|
|
|
|
|
|
* @param array $filters for apply in the result
|
2017-10-13 15:02:14 -04:00
|
|
|
|
* @param callable $callbackRecord
|
2017-04-21 12:04:57 -04:00
|
|
|
|
* @param string $appUid related to the specific case
|
|
|
|
|
|
* @return array $data
|
|
|
|
|
|
* @throws PropelException
|
|
|
|
|
|
*/
|
2017-11-21 09:35:32 -04:00
|
|
|
|
public function loadList($usr_uid, $filters = array(), callable $callbackRecord = null, $appUid = '')
|
2014-11-07 17:19:35 -04:00
|
|
|
|
{
|
2016-06-07 11:50:15 -04:00
|
|
|
|
$pmTable = new PmTable();
|
|
|
|
|
|
$criteria = $pmTable->addPMFieldsToList('sent');
|
2017-10-13 15:02:14 -04:00
|
|
|
|
$this->setAdditionalClassName($pmTable->tableClassName);
|
2017-06-02 12:29:07 -04:00
|
|
|
|
$additionalColumns = $criteria->getSelectColumns();
|
2016-08-30 14:56:18 -04:00
|
|
|
|
|
2014-11-07 17:19:35 -04:00
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::APP_UID);
|
2015-02-27 16:27:11 -04:00
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::DEL_INDEX);
|
2014-11-07 17:19:35 -04:00
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::USR_UID);
|
|
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::TAS_UID);
|
|
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::PRO_UID);
|
|
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::APP_NUMBER);
|
2016-10-13 10:50:59 -04:00
|
|
|
|
$criteria->addSelectColumn(ApplicationPeer::APP_TITLE);
|
2014-11-07 17:19:35 -04:00
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::APP_PRO_TITLE);
|
|
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::APP_TAS_TITLE);
|
2015-05-05 16:51:53 -04:00
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::APP_STATUS);
|
2014-11-07 17:19:35 -04:00
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::DEL_PREVIOUS_USR_UID);
|
|
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::DEL_PREVIOUS_USR_USERNAME);
|
|
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::DEL_PREVIOUS_USR_FIRSTNAME);
|
|
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::DEL_PREVIOUS_USR_LASTNAME);
|
2015-02-06 14:57:59 -04:00
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::DEL_CURRENT_USR_USERNAME);
|
|
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::DEL_CURRENT_USR_FIRSTNAME);
|
|
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::DEL_CURRENT_USR_LASTNAME);
|
2016-02-29 14:45:07 -04:00
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::DEL_CURRENT_TAS_TITLE);
|
2014-11-07 17:19:35 -04:00
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::DEL_DELEGATE_DATE);
|
|
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::DEL_INIT_DATE);
|
|
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::DEL_DUE_DATE);
|
|
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::DEL_PRIORITY);
|
2015-02-27 16:27:11 -04:00
|
|
|
|
$criteria->addSelectColumn(ListParticipatedLastPeer::DEL_THREAD_STATUS);
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$criteria->add(ListParticipatedLastPeer::USR_UID, $usr_uid, Criteria::EQUAL);
|
2016-08-30 14:56:18 -04:00
|
|
|
|
|
|
|
|
|
|
//Check if the user was participated in a specific case
|
2017-02-22 12:12:22 -04:00
|
|
|
|
if ($appUid != '') {
|
|
|
|
|
|
$criteria->add(ListParticipatedLastPeer::APP_UID, $appUid, Criteria::EQUAL);
|
2016-08-30 14:56:18 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
2017-04-21 12:04:57 -04:00
|
|
|
|
self::loadFilters($criteria, $filters, $additionalColumns);
|
2014-11-07 17:19:35 -04:00
|
|
|
|
|
2017-07-13 14:58:43 -04:00
|
|
|
|
//We will be defined the sort
|
2017-10-13 15:02:14 -04:00
|
|
|
|
$casesList = new BmCases();
|
2017-07-13 14:58:43 -04:00
|
|
|
|
$sort = $casesList->getSortColumn(
|
|
|
|
|
|
__CLASS__ . 'Peer',
|
|
|
|
|
|
BasePeer::TYPE_FIELDNAME,
|
|
|
|
|
|
empty($filters['sort']) ? "DEL_DELEGATE_DATE" : $filters['sort'],
|
2017-07-14 11:57:21 -04:00
|
|
|
|
"DEL_DELEGATE_DATE",
|
2017-10-13 15:02:14 -04:00
|
|
|
|
$this->getAdditionalClassName(),
|
|
|
|
|
|
$additionalColumns,
|
|
|
|
|
|
$this->getUserDisplayFormat()
|
2017-07-13 14:58:43 -04:00
|
|
|
|
);
|
|
|
|
|
|
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$dir = isset($filters['dir']) ? $filters['dir'] : 'ASC';
|
|
|
|
|
|
$start = isset($filters['start']) ? $filters['start'] : '0';
|
|
|
|
|
|
$limit = isset($filters['limit']) ? $filters['limit'] : '25';
|
2014-11-07 17:19:35 -04:00
|
|
|
|
$paged = isset($filters['paged']) ? $filters['paged'] : 1;
|
|
|
|
|
|
|
2017-10-23 14:23:31 -04:00
|
|
|
|
if (is_array($sort) && count($sort) > 0) {
|
|
|
|
|
|
foreach ($sort as $key) {
|
|
|
|
|
|
if ($dir == 'DESC') {
|
|
|
|
|
|
$criteria->addDescendingOrderByColumn($key);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$criteria->addAscendingOrderByColumn($key);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2014-11-07 17:19:35 -04:00
|
|
|
|
} else {
|
2017-10-23 14:23:31 -04:00
|
|
|
|
if ($dir == 'DESC') {
|
|
|
|
|
|
$criteria->addDescendingOrderByColumn($sort);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$criteria->addAscendingOrderByColumn($sort);
|
|
|
|
|
|
}
|
2014-11-07 17:19:35 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
$criteria->addJoin(ListParticipatedLastPeer::APP_UID, ApplicationPeer::APP_UID, Criteria::LEFT_JOIN);
|
2016-10-13 10:50:59 -04:00
|
|
|
|
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$dataset = ListParticipatedLastPeer::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()) {
|
2017-02-22 12:12:22 -04:00
|
|
|
|
$aRow = (is_null($callbackRecord)) ? $dataset->getRow() : $callbackRecord($dataset->getRow());
|
|
|
|
|
|
$aRow['DEL_PRIORITY'] = (
|
|
|
|
|
|
isset($aRow['DEL_PRIORITY']) &&
|
|
|
|
|
|
is_numeric($aRow['DEL_PRIORITY']) &&
|
|
|
|
|
|
$aRow['DEL_PRIORITY'] <= 5 &&
|
|
|
|
|
|
$aRow['DEL_PRIORITY'] > 0) ? $aRow['DEL_PRIORITY'] : 3;
|
|
|
|
|
|
$aRow['DEL_PRIORITY'] = G::LoadTranslation("ID_PRIORITY_{$aPriorities[$aRow['DEL_PRIORITY']]}");
|
2014-11-07 17:19:35 -04:00
|
|
|
|
$data[] = $aRow;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return $data;
|
|
|
|
|
|
}
|
2016-06-07 16:52:49 -04:00
|
|
|
|
|
2017-02-22 12:12:22 -04:00
|
|
|
|
public function primaryKeysExists($data)
|
|
|
|
|
|
{
|
|
|
|
|
|
$criteria = new Criteria('workflow');
|
2015-08-25 18:20:46 -04:00
|
|
|
|
$criteria->add(ListParticipatedLastPeer::APP_UID, $data['APP_UID']);
|
|
|
|
|
|
$criteria->add(ListParticipatedLastPeer::USR_UID, $data['USR_UID']);
|
2016-06-07 16:52:49 -04:00
|
|
|
|
$criteria->add(ListParticipatedLastPeer::DEL_INDEX, $data['DEL_INDEX']);
|
2015-08-25 18:20:46 -04:00
|
|
|
|
$dataset = UsersPeer::doSelectRS($criteria);
|
|
|
|
|
|
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
|
$dataset->next();
|
|
|
|
|
|
$aRow = $dataset->getRow();
|
2017-02-22 12:12:22 -04:00
|
|
|
|
if (is_array($aRow)) {
|
|
|
|
|
|
if (sizeof($aRow)) {
|
2015-08-25 18:20:46 -04:00
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2017-02-22 12:12:22 -04:00
|
|
|
|
|
2015-08-25 18:20:46 -04:00
|
|
|
|
return false;
|
|
|
|
|
|
}
|
2016-06-07 16:52:49 -04:00
|
|
|
|
|
2017-02-22 12:12:22 -04:00
|
|
|
|
public function getRowFromList($data)
|
|
|
|
|
|
{
|
|
|
|
|
|
$criteria = new Criteria('workflow');
|
2015-12-01 17:27:50 -04:00
|
|
|
|
$criteria->add(ListParticipatedLastPeer::APP_UID, $data['APP_UID']);
|
|
|
|
|
|
$criteria->add(ListParticipatedLastPeer::USR_UID, $data['USR_UID']);
|
|
|
|
|
|
$dataset = ListParticipatedLastPeer::doSelectRS($criteria);
|
|
|
|
|
|
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
|
$dataset->next();
|
|
|
|
|
|
$aRow = $dataset->getRow();
|
2017-02-22 12:12:22 -04:00
|
|
|
|
if (is_array($aRow)) {
|
|
|
|
|
|
if (sizeof($aRow)) {
|
2015-12-01 17:27:50 -04:00
|
|
|
|
return $aRow;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2017-02-22 12:12:22 -04:00
|
|
|
|
|
2015-12-01 17:27:50 -04:00
|
|
|
|
return false;
|
|
|
|
|
|
}
|
2016-06-07 16:52:49 -04:00
|
|
|
|
|
2016-07-28 14:20:04 -04:00
|
|
|
|
/**
|
2017-02-22 12:12:22 -04:00
|
|
|
|
* Returns the number of cases of a user.
|
|
|
|
|
|
*
|
2017-02-09 15:17:13 -04:00
|
|
|
|
* @param string $usrUid
|
|
|
|
|
|
* @param array $filters
|
2017-02-22 12:12:22 -04:00
|
|
|
|
*
|
2016-07-28 14:20:04 -04:00
|
|
|
|
* @return int
|
|
|
|
|
|
*/
|
2017-02-09 15:17:13 -04:00
|
|
|
|
public function getCountList($usrUid, $filters = array())
|
2016-07-28 14:20:04 -04:00
|
|
|
|
{
|
2017-11-21 09:35:32 -04:00
|
|
|
|
return $this->getCountListFromPeer
|
|
|
|
|
|
(ListParticipatedLastPeer::class, $usrUid, $filters);
|
2016-07-28 14:20:04 -04:00
|
|
|
|
}
|
2017-08-25 12:07:35 -04:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @deprecated This function is deprecated, it hasn’t been removed because of its compatibility with the External Registration plugin
|
|
|
|
|
|
* @param $where
|
|
|
|
|
|
* @param $set
|
|
|
|
|
|
* @return void
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function updateCurrentUser($where, $set)
|
|
|
|
|
|
{
|
|
|
|
|
|
$con = Propel::getConnection('workflow');
|
|
|
|
|
|
//Update - WHERE
|
|
|
|
|
|
$criteriaWhere = new Criteria('workflow');
|
|
|
|
|
|
$criteriaWhere->add(ListParticipatedLastPeer::APP_UID, $where['APP_UID'], Criteria::EQUAL);
|
|
|
|
|
|
$criteriaWhere->add(ListParticipatedLastPeer::USR_UID, $where['USR_UID'], Criteria::EQUAL);
|
|
|
|
|
|
$criteriaWhere->add(ListParticipatedLastPeer::DEL_INDEX, $where['DEL_INDEX'], Criteria::EQUAL);
|
|
|
|
|
|
//Update - SET
|
|
|
|
|
|
$criteriaSet = new Criteria('workflow');
|
|
|
|
|
|
foreach ($set as $k => $v) {
|
|
|
|
|
|
eval('$criteriaSet->add( ListParticipatedLastPeer::' . $k . ',$v, Criteria::EQUAL);');
|
|
|
|
|
|
}
|
|
|
|
|
|
BasePeer::doUpdate($criteriaWhere, $criteriaSet, $con);
|
|
|
|
|
|
}
|
2014-11-07 17:19:35 -04:00
|
|
|
|
}
|