Merged in marcoAntonioNina/processmaker/dashboards2 (pull request #2022)

NDD-51 Cálculo del DEL_RISK es erroneo
This commit is contained in:
Dante Loayza
2015-04-27 17:18:00 -04:00
2 changed files with 21 additions and 7 deletions

View File

@@ -752,14 +752,19 @@ class Derivation
//$appFields['APP_PROC_CODE'] = $nextDel['TAS_DEF_PROC_CODE'];
/*----------------------------------********---------------------------------*/
if ($nextDel['TAS_UID'] != '-1') {
$taskCur = TaskPeer::retrieveByPK($nextDel['TAS_UID']);
$aTask = $taskCur->toArray( BasePeer::TYPE_FIELDNAME );
$taskNex = TaskPeer::retrieveByPK($nextDel['TAS_UID']);
$aTask = $taskNex->toArray( BasePeer::TYPE_FIELDNAME );
$arrayTaskTypeToExclude = array("WEBENTRYEVENT", "END-MESSAGE-EVENT", "START-MESSAGE-EVENT", "INTERMEDIATE-THROW-MESSAGE-EVENT", "INTERMEDIATE-CATCH-MESSAGE-EVENT");
if (!in_array($aTask['TAS_TYPE'], $arrayTaskTypeToExclude)) {
if (!empty($iNewDelIndex) && empty($aSP)) {
$oAppDel = AppDelegationPeer::retrieveByPK( $appFields['APP_UID'], $iNewDelIndex );
$aFields = $oAppDel->toArray( BasePeer::TYPE_FIELDNAME );
$aFields['APP_STATUS'] = $currentDelegation['APP_STATUS'];
$taskCur = TaskPeer::retrieveByPK($currentDelegation['TAS_UID']);
$aTaskCur = $taskCur->toArray( BasePeer::TYPE_FIELDNAME );
if ($aTaskCur['TAS_TYPE'] == "INTERMEDIATE-CATCH-MESSAGE-EVENT") {
$removeList = false;
}
$aFields['REMOVED_LIST'] = $removeList;
$inbox = new ListInbox();
$inbox->newRow($aFields, $appFields['CURRENT_USER_UID'], false, array(), ($nextDel['TAS_ASSIGN_TYPE'] == 'SELF_SERVICE' ? true : false));

View File

@@ -133,7 +133,7 @@ class AppDelegation extends BaseAppDelegation
//The function return an array now. By JHL
$delTaskDueDate = $this->calculateDueDate($sNextTasParam);
$delRiskDate = $this->calculateRiskDate($delTaskDueDate, $this->getRisk());
$delRiskDate = $this->calculateRiskDate($sNextTasParam, $this->getRisk());
//$this->setDelTaskDueDate( $delTaskDueDate['DUE_DATE'] ); // Due date formatted
$this->setDelTaskDueDate($delTaskDueDate);
@@ -379,8 +379,18 @@ class AppDelegation extends BaseAppDelegation
public function calculateRiskDate($dueDate, $risk)
{
try {
$riskTime = strtotime($dueDate) - strtotime($this->getDelDelegateDate()); //Seconds
$riskTime = $riskTime - ($riskTime * $risk);
$data = array();
if (isset( $sNextTasParam['NEXT_TASK']['TAS_TRANSFER_HIDDEN_FLY'] ) && $sNextTasParam['NEXT_TASK']['TAS_TRANSFER_HIDDEN_FLY'] == 'true') {
$data['TAS_DURATION'] = $sNextTasParam['NEXT_TASK']['TAS_DURATION'];
$data['TAS_TIMEUNIT'] = $sNextTasParam['NEXT_TASK']['TAS_TIMEUNIT'];
} else {
$task = TaskPeer::retrieveByPK( $this->getTasUid() );
$data['TAS_DURATION'] = $task->getTasDuration();
$data['TAS_TIMEUNIT'] = $task->getTasTimeUnit();
}
$riskTime = $data['TAS_DURATION'] - ($data['TAS_DURATION'] * $risk);
//Calendar - Use the dates class to calculate dates
$calendar = new calendar();
@@ -394,9 +404,8 @@ class AppDelegation extends BaseAppDelegation
}
//Risk date
$riskDate = $calendar->dashCalculateDate($this->getDelDelegateDate(), round($riskTime / (60 * 60)), "HOURS", $arrayCalendarData);
$riskDate = $calendar->dashCalculateDate($this->getDelDelegateDate(), round($riskTime), $data['TAS_TIMEUNIT'], $arrayCalendarData);
//Return
return $riskDate;
} catch (Exception $e) {
throw $e;