Merged in release/3.2 (pull request #5472)

Release/3.2

Approved-by: Paula Quispe
This commit is contained in:
Paula Quispe
2017-02-24 19:00:11 +00:00
15 changed files with 346 additions and 269 deletions

View File

@@ -2039,7 +2039,7 @@ class Cases
* @return Fields
*/
public function startCase($sTasUid, $sUsrUid, $isSubprocess = false, $dataPreviusApplication = array())
public function startCase($sTasUid, $sUsrUid, $isSubprocess = false, $dataPreviusApplication = array(), $isSelfService = false)
{
if ($sTasUid != '') {
try {
@@ -2182,15 +2182,16 @@ class Cases
if(!$isSubprocess){
$Fields['APP_STATUS'] = 'DRAFT';
}
$inbox = new ListInbox();
$inbox->newRow($Fields, $sUsrUid, $isSubprocess, $dataPreviusApplication);
$inbox->newRow($Fields, $sUsrUid, $isSelfService);
//Multiple Instance
foreach($aUserFields as $rowUser){
$Fields["USR_UID"] = $rowUser["USR_UID"];
$Fields["DEL_INDEX"] = $rowUser["DEL_INDEX"];
$inbox = new ListInbox();
$inbox->newRow($Fields, $sUsrUid, $isSubprocess, $dataPreviusApplication);
$inbox->newRow($Fields, $sUsrUid, $isSelfService);
}
/*----------------------------------********---------------------------------*/
} catch (exception $e) {
@@ -4528,11 +4529,11 @@ class Cases
/*----------------------------------********---------------------------------*/
$this->getExecuteTriggerProcess($sApplicationUID, 'REASSIGNED');
//Delete record of the table LIST_UNASSIGNED
$unassigned = new ListUnassigned();
$unassigned->remove($sApplicationUID, $iDelegation);
return true;
}

View File

@@ -822,7 +822,7 @@ class Derivation
$arrayApplicationData2["REMOVED_LIST"] = $removeList;
$inbox = new ListInbox();
$inbox->newRow($arrayApplicationData2, $arrayApplicationData["CURRENT_USER_UID"], false, array(), (($arrayNextDelegationData["TAS_ASSIGN_TYPE"] == "SELF_SERVICE")? true : false));
$inbox->newRow($arrayApplicationData2, $arrayApplicationData["CURRENT_USER_UID"], (($arrayNextDelegationData["TAS_ASSIGN_TYPE"] == "SELF_SERVICE")? true : false));
}
}
}
@@ -1435,9 +1435,14 @@ class Derivation
//if there are subprocess to create
if (isset( $aSP )) {
//Check if is Selfservice the task in the subprocess
$isSelfservice = false;
if (empty($aSP['USR_UID'])) {
$isSelfservice = true;
}
//Create the new case in the sub-process
// set the initial date to null the time its created
$aNewCase = $this->case->startCase( $aSP['TAS_UID'], $aSP['USR_UID'], true, $appFields);
//Set the initial date to null the time its created
$aNewCase = $this->case->startCase( $aSP['TAS_UID'], $aSP['USR_UID'], true, $appFields, $isSelfservice);
$taskNextDel = TaskPeer::retrieveByPK($aSP["TAS_UID"]); //Sub-Process

View File

@@ -28,6 +28,7 @@ class pmDynaform
private $dataSources = null;
private $databaseProviders = null;
private $propertiesToExclude = array();
public static $prefixs = array("@@", "@#", "@%", "@?", "@$", "@=");
public function __construct($fields = array())
{
@@ -194,7 +195,7 @@ class pmDynaform
$fn($json, $key, $value);
}
//set properties from trigger
$prefixs = array("@@", "@#", "@%", "@?", "@$", "@=");
$prefixs = self::$prefixs;
if (is_string($value) && in_array(substr($value, 0, 2), $prefixs)) {
$triggerValue = substr($value, 2);
if (isset($this->fields["APP_DATA"][$triggerValue])) {

View File

@@ -2452,35 +2452,36 @@ class workspaceTools
CLI::logging("> Completed table LIST_PARTICIPATED_HISTORY\n");
}
public function regenerateListParticipatedLast(){
public function regenerateListParticipatedLast()
{
$this->initPropel(true);
$query = 'INSERT INTO '.$this->dbName.'.LIST_PARTICIPATED_LAST
$query = 'INSERT INTO ' . $this->dbName . '.LIST_PARTICIPATED_LAST
(
APP_UID,
USR_UID,
DEL_INDEX,
TAS_UID,
PRO_UID,
APP_NUMBER,
APP_TITLE,
APP_PRO_TITLE,
APP_TAS_TITLE,
APP_STATUS,
DEL_PREVIOUS_USR_UID,
DEL_PREVIOUS_USR_USERNAME,
DEL_PREVIOUS_USR_FIRSTNAME,
DEL_PREVIOUS_USR_LASTNAME,
DEL_CURRENT_USR_USERNAME,
DEL_CURRENT_USR_FIRSTNAME,
DEL_CURRENT_USR_LASTNAME,
DEL_DELEGATE_DATE,
DEL_INIT_DATE,
DEL_DUE_DATE,
DEL_CURRENT_TAS_TITLE,
DEL_PRIORITY,
DEL_THREAD_STATUS)
SELECT
APP_UID,
USR_UID,
DEL_INDEX,
TAS_UID,
PRO_UID,
APP_NUMBER,
APP_TITLE,
APP_PRO_TITLE,
APP_TAS_TITLE,
APP_STATUS,
DEL_PREVIOUS_USR_UID,
DEL_PREVIOUS_USR_USERNAME,
DEL_PREVIOUS_USR_FIRSTNAME,
DEL_PREVIOUS_USR_LASTNAME,
DEL_CURRENT_USR_USERNAME,
DEL_CURRENT_USR_FIRSTNAME,
DEL_CURRENT_USR_LASTNAME,
DEL_DELEGATE_DATE,
DEL_INIT_DATE,
DEL_DUE_DATE,
DEL_CURRENT_TAS_TITLE,
DEL_PRIORITY,
DEL_THREAD_STATUS)
SELECT
ACV.APP_UID,
ACV.USR_UID,
ACV.DEL_INDEX,
@@ -2491,45 +2492,74 @@ class workspaceTools
ACV.APP_PRO_TITLE,
ACV.APP_TAS_TITLE,
ACV.APP_STATUS,
PRE_USR.USR_UID AS DEL_PREVIOUS_USR_UID,
PRE_USR.USR_USERNAME AS DEL_PREVIOUS_USR_USERNAME,
PRE_USR.USR_FIRSTNAME AS DEL_PREVIOUS_USR_FIRSTNAME,
PRE_USR.USR_LASTNAME AS DEL_PREVIOUS_USR_LASTNAME,
CUR_USR.USR_USERNAME AS DEL_CURRENT_USR_USERNAME,
CUR_USR.USR_FIRSTNAME AS DEL_CURRENT_USR_FIRSTNAME,
CUR_USR.USR_LASTNAME AS DEL_CURRENT_USR_LASTNAME,
ACV.DEL_DELEGATE_DATE AS DEL_DELEGATE_DATE,
ACV.DEL_INIT_DATE AS DEL_INIT_DATE,
ACV.DEL_TASK_DUE_DATE AS DEL_DUE_DATE,
CURR_USER_ACV.APP_TAS_TITLE AS DEL_CURRENT_TAS_TITLE,
DEL_PREVIOUS_USR_UID,
IFNULL(PRE_USR.USR_USERNAME, CUR_USR.USR_USERNAME) AS DEL_PREVIOUS_USR_USERNAME,
IFNULL(PRE_USR.USR_FIRSTNAME, CUR_USR.USR_FIRSTNAME) AS DEL_PREVIOUS_USR_USERNAME,
IFNULL(PRE_USR.USR_LASTNAME, CUR_USR.USR_LASTNAME) AS DEL_PREVIOUS_USR_USERNAME,
CUR_USR.USR_USERNAME AS DEL_CURRENT_USR_USERNAME,
CUR_USR.USR_FIRSTNAME AS DEL_CURRENT_USR_FIRSTNAME,
CUR_USR.USR_LASTNAME AS DEL_CURRENT_USR_LASTNAME,
ACV.DEL_DELEGATE_DATE AS DEL_DELEGATE_DATE,
ACV.DEL_INIT_DATE AS DEL_INIT_DATE,
ACV.DEL_TASK_DUE_DATE AS DEL_DUE_DATE,
ACV.APP_TAS_TITLE AS DEL_CURRENT_TAS_TITLE,
ACV.DEL_PRIORITY,
ACV.DEL_THREAD_STATUS
FROM
(SELECT
*, MAX(ACV_INT.DEL_INDEX) MAX_DEL_INDEX
FROM
'.$this->dbName.'.APP_CACHE_VIEW ACV_INT
GROUP BY ACV_INT.APP_UID , ACV_INT.USR_UID) ACV
INNER JOIN
(SELECT
ACV.APP_UID, ACV.USR_UID, ACV.APP_TAS_TITLE, ACV.PREVIOUS_USR_UID, ACV.DEL_INDEX
FROM
APP_CACHE_VIEW ACV
INNER JOIN
(SELECT
ACV_INT.APP_UID, MAX(ACV_INT.DEL_INDEX) DEL_INDEX
FROM
'.$this->dbName.'.APP_CACHE_VIEW ACV_INT
GROUP BY ACV_INT.APP_UID) LAST_ACV ON LAST_ACV.APP_UID = ACV.APP_UID
AND LAST_ACV.DEL_INDEX = ACV.DEL_INDEX) CURR_USER_ACV ON CURR_USER_ACV.APP_UID = ACV.APP_UID
LEFT JOIN
'.$this->dbName.'.USERS PRE_USR ON CURR_USER_ACV.PREVIOUS_USR_UID = PRE_USR.USR_UID
LEFT JOIN
'.$this->dbName.'.USERS CUR_USR ON CURR_USER_ACV.USR_UID = CUR_USR.USR_UID
';
FROM
(
SELECT
CASE WHEN ACV1.PREVIOUS_USR_UID = \'\' AND ACV1.DEL_INDEX = 1
THEN ACV1.USR_UID
ELSE ACV1.PREVIOUS_USR_UID END AS DEL_PREVIOUS_USR_UID,
ACV1.*
FROM ' . $this->dbName . '.APP_CACHE_VIEW ACV1
JOIN
(SELECT
ACV_INT.APP_UID,
MAX(ACV_INT.DEL_INDEX) MAX_DEL_INDEX
FROM
' . $this->dbName . '.APP_CACHE_VIEW ACV_INT
GROUP BY
ACV_INT.USR_UID,
ACV_INT.APP_UID
) ACV2
ON ACV2.APP_UID = ACV1.APP_UID AND ACV2.MAX_DEL_INDEX = ACV1.DEL_INDEX
) ACV
LEFT JOIN ' . $this->dbName . '.USERS PRE_USR ON ACV.PREVIOUS_USR_UID = PRE_USR.USR_UID
LEFT JOIN ' . $this->dbName . '.USERS CUR_USR ON ACV.USR_UID = CUR_USR.USR_UID';
$con = Propel::getConnection("workflow");
$stmt = $con->createStatement();
$stmt->executeQuery($query);
CLI::logging("> Inserted data into table LIST_PARTICIPATED_LAST\n");
$query = 'UPDATE ' . $this->dbName . '.LIST_PARTICIPATED_LAST LPL, (
SELECT
TASK.TAS_TITLE,
CUR_USER.APP_UID,
USERS.USR_UID,
USERS.USR_USERNAME,
USERS.USR_FIRSTNAME,
USERS.USR_LASTNAME
FROM (
SELECT
APP_UID,
TAS_UID,
DEL_INDEX,
USR_UID
FROM ' . $this->dbName . '.APP_DELEGATION
WHERE DEL_LAST_INDEX = 1
) CUR_USER
LEFT JOIN ' . $this->dbName . '.USERS ON CUR_USER.USR_UID = USERS.USR_UID
LEFT JOIN ' . $this->dbName . '.TASK ON CUR_USER.TAS_UID = TASK.TAS_UID) USERS_VALUES
SET
LPL.DEL_CURRENT_USR_USERNAME = USERS_VALUES.USR_USERNAME,
LPL.DEL_CURRENT_USR_FIRSTNAME = USERS_VALUES.USR_FIRSTNAME,
LPL.DEL_CURRENT_USR_LASTNAME = USERS_VALUES.USR_LASTNAME,
LPL.DEL_CURRENT_TAS_TITLE = USERS_VALUES.TAS_TITLE
WHERE LPL.APP_UID = USERS_VALUES.APP_UID';
$con = Propel::getConnection("workflow");
$stmt = $con->createStatement();
CLI::logging("> Updating the current users data on table LIST_PARTICIPATED_LAST\n");
$stmt->executeQuery($query);
CLI::logging("> Completed table LIST_PARTICIPATED_LAST\n");
}

View File

@@ -216,7 +216,20 @@ class ListInbox extends BaseListInbox
}
}
public function newRow ($data, $delPreviusUsrUid, $isInitSubprocess = false, $dataPreviusApplication = array(), $isSelfService = false)
/**
* Define the variables before created the row
*
* This method is used before create the new data
* we completed the information about some variables
* for create the record
*
* @param array $data
* @param string $delPreviusUsrUid Uid from the user previous
* @param boolean $isSelfService this value define if the case is Unassigned
* @return void
*
*/
public function newRow ($data, $delPreviusUsrUid, $isSelfService = false)
{
$removeList = true;
if (isset($data['REMOVED_LIST'])) {

View File

@@ -99,7 +99,7 @@ class ListUnassigned extends BaseListUnassigned
public function newRow ($data, $delPreviusUsrUid)
{
$data['DEL_PREVIOUS_USR_UID'] = $delPreviusUsrUid;
$data['DEL_DUE_DATE'] = $data['DEL_TASK_DUE_DATE'];
$data['DEL_DUE_DATE'] = isset($data['DEL_TASK_DUE_DATE']) ? $data['DEL_TASK_DUE_DATE'] : '';
$criteria = new Criteria();
$criteria->addSelectColumn( ApplicationPeer::APP_NUMBER );