From 6de4559f1dc034f437bd00ee531f7d2860771aad Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Thu, 16 Apr 2015 16:04:16 -0400 Subject: [PATCH] PM-2320 "Fix: Add DEL_RISK_DATE field in tables Delegation..." SOLVED Issue: El nuevo campo DEL_RISK_DATE no refleja la fecha correcta Cause: No se tiene de manera completa la formula para el calculo de la fecha Solution: Se a completado la formula --- .../engine/classes/model/AppDelegation.php | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/workflow/engine/classes/model/AppDelegation.php b/workflow/engine/classes/model/AppDelegation.php index caf32c9cc..388d48542 100755 --- a/workflow/engine/classes/model/AppDelegation.php +++ b/workflow/engine/classes/model/AppDelegation.php @@ -356,17 +356,18 @@ class AppDelegation extends BaseAppDelegation $aCalendarUID = ''; } - //use the dates class to calculate dates + //Calendar - Use the dates class to calculate dates $calendar = new calendar(); $arrayCalendarData = array(); if ($calendar->pmCalendarUid == "") { - $calendar->getCalendar(null, $task->getProUid(), $this->getTasUid()); + $calendar->getCalendar(null, $this->getProUid(), $this->getTasUid()); $arrayCalendarData = $calendar->getCalendarData(); } + //Due date /*$iDueDate = $calendar->calculateDate( $this->getDelDelegateDate(), $aData['TAS_DURATION'], $aData['TAS_TIMEUNIT'] //hours or days, ( we only accept this two types or maybe weeks );*/ $dueDate = $calendar->dashCalculateDate($this->getDelDelegateDate(), $aData["TAS_DURATION"], $aData["TAS_TIMEUNIT"], $arrayCalendarData); @@ -378,10 +379,22 @@ class AppDelegation extends BaseAppDelegation public function calculateRiskDate($dueDate, $risk) { try { - $numDueDate = strtotime($dueDate); //Seconds - $numDueDate = $numDueDate - ($numDueDate * $risk); + $riskTime = strtotime($dueDate) - strtotime($this->getDelDelegateDate()); //Seconds + $riskTime = $riskTime - ($riskTime * $risk); - $riskDate = date("Y-m-d H:i:s", round($numDueDate)); + //Calendar - Use the dates class to calculate dates + $calendar = new calendar(); + + $arrayCalendarData = array(); + + if ($calendar->pmCalendarUid == "") { + $calendar->getCalendar(null, $this->getProUid(), $this->getTasUid()); + + $arrayCalendarData = $calendar->getCalendarData(); + } + + //Risk date + $riskDate = $calendar->dashCalculateDate($this->getDelDelegateDate(), round($riskTime / (60 * 60)), "HOURS", $arrayCalendarData); //Return return $riskDate;