Merged in dheeyi/processmaker/PM-1150 (pull request #2183)
PM-1150 El trigger PMF Delete Case despliega el error Fatal error: Call to a member function toArray() on a non-object in /opt/processmaker280/workflow/engine/classes/class.case.php on line 949
This commit is contained in:
@@ -949,6 +949,10 @@ class Cases
|
|||||||
public function updateCase($sAppUid, $Fields = array())
|
public function updateCase($sAppUid, $Fields = array())
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
$oApplication = new Application;
|
||||||
|
if (!$oApplication->exists($sAppUid)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
$aApplicationFields = $Fields['APP_DATA'];
|
$aApplicationFields = $Fields['APP_DATA'];
|
||||||
$Fields['APP_UID'] = $sAppUid;
|
$Fields['APP_UID'] = $sAppUid;
|
||||||
$Fields['APP_UPDATE_DATE'] = 'now';
|
$Fields['APP_UPDATE_DATE'] = 'now';
|
||||||
@@ -6903,7 +6907,7 @@ class Cases
|
|||||||
unset($aFields['APP_STATUS']);
|
unset($aFields['APP_STATUS']);
|
||||||
unset($aFields['APP_PROC_STATUS']);
|
unset($aFields['APP_PROC_STATUS']);
|
||||||
unset($aFields['APP_PROC_CODE']);
|
unset($aFields['APP_PROC_CODE']);
|
||||||
unset($aFields['APP_PIN']);
|
unset($aFields['APP_PIN']);
|
||||||
$this->updateCase($aFields['APP_UID'], $aFields);
|
$this->updateCase($aFields['APP_UID'], $aFields);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,6 +56,11 @@ class Application extends BaseApplication
|
|||||||
*/
|
*/
|
||||||
public function getAppTitle()
|
public function getAppTitle()
|
||||||
{
|
{
|
||||||
|
$oApplication = new Application;
|
||||||
|
if (!$oApplication->exists($this->getAppUid())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->getAppUid() == '') {
|
if ($this->getAppUid() == '') {
|
||||||
throw (new Exception( "Error in getAppTitle, the APP_UID can't be blank"));
|
throw (new Exception( "Error in getAppTitle, the APP_UID can't be blank"));
|
||||||
}
|
}
|
||||||
@@ -311,7 +316,9 @@ class Application extends BaseApplication
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
$oApplication = ApplicationPeer::retrieveByPk( $AppUid );
|
$oApplication = ApplicationPeer::retrieveByPk( $AppUid );
|
||||||
|
if (!$oApplication) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (is_object($oApplication) && get_class ($oApplication) == 'Application' ) {
|
if (is_object($oApplication) && get_class ($oApplication) == 'Application' ) {
|
||||||
$aFields = $oApplication->toArray(BasePeer::TYPE_FIELDNAME);
|
$aFields = $oApplication->toArray(BasePeer::TYPE_FIELDNAME);
|
||||||
$this->fromArray($aFields, BasePeer::TYPE_FIELDNAME);
|
$this->fromArray($aFields, BasePeer::TYPE_FIELDNAME);
|
||||||
@@ -574,19 +581,19 @@ class Application extends BaseApplication
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
public function calculateAppDuration ($cron = 0)
|
public function calculateAppDuration ($cron = 0)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
if ($cron == 1) {
|
if ($cron == 1) {
|
||||||
$arrayCron = unserialize( trim( @file_get_contents( PATH_DATA . "cron" ) ) );
|
$arrayCron = unserialize( trim( @file_get_contents( PATH_DATA . "cron" ) ) );
|
||||||
$arrayCron["processcTimeStart"] = time();
|
$arrayCron["processcTimeStart"] = time();
|
||||||
@file_put_contents( PATH_DATA . "cron", serialize( $arrayCron ) );
|
@file_put_contents( PATH_DATA . "cron", serialize( $arrayCron ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
$calendar = new calendar();
|
$calendar = new calendar();
|
||||||
|
|
||||||
$c = new Criteria( 'workflow' );
|
$c = new Criteria( 'workflow' );
|
||||||
$c->clearSelectColumns();
|
$c->clearSelectColumns();
|
||||||
$c->addSelectColumn( ApplicationPeer::APP_UID );
|
$c->addSelectColumn( ApplicationPeer::APP_UID );
|
||||||
$c->addSelectColumn( ApplicationPeer::APP_NUMBER );
|
$c->addSelectColumn( ApplicationPeer::APP_NUMBER );
|
||||||
$c->addSelectColumn( ApplicationPeer::APP_STATUS );
|
$c->addSelectColumn( ApplicationPeer::APP_STATUS );
|
||||||
@@ -602,80 +609,80 @@ class Application extends BaseApplication
|
|||||||
$c->addSelectColumn( ProcessPeer::PRO_TIME );
|
$c->addSelectColumn( ProcessPeer::PRO_TIME );
|
||||||
$c->addSelectColumn( ProcessPeer::PRO_TIMEUNIT );
|
$c->addSelectColumn( ProcessPeer::PRO_TIMEUNIT );
|
||||||
|
|
||||||
$c->addJoin( ApplicationPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN );
|
$c->addJoin( ApplicationPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN );
|
||||||
|
|
||||||
$rs = ApplicationPeer::doSelectRS( $c );
|
$rs = ApplicationPeer::doSelectRS( $c );
|
||||||
$rs->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
$rs->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
||||||
$rs->next();
|
$rs->next();
|
||||||
$row = $rs->getRow();
|
$row = $rs->getRow();
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$now = strtotime( 'now' );
|
$now = strtotime( 'now' );
|
||||||
while (is_array( $row )) {
|
while (is_array( $row )) {
|
||||||
$appNumber = $row['APP_NUMBER'];
|
$appNumber = $row['APP_NUMBER'];
|
||||||
$appStatus = $row['APP_STATUS'];
|
$appStatus = $row['APP_STATUS'];
|
||||||
$appInitUser = $row['APP_INIT_USER'];
|
$appInitUser = $row['APP_INIT_USER'];
|
||||||
$appCurUser = $row['APP_CUR_USER'];
|
$appCurUser = $row['APP_CUR_USER'];
|
||||||
$appCreateDate = $row['APP_CREATE_DATE'];
|
$appCreateDate = $row['APP_CREATE_DATE'];
|
||||||
$appInitDate = $row['APP_INIT_DATE'];
|
$appInitDate = $row['APP_INIT_DATE'];
|
||||||
$appFinishDate = $row['APP_FINISH_DATE'];
|
$appFinishDate = $row['APP_FINISH_DATE'];
|
||||||
$appUpdateDate = $row['APP_UPDATE_DATE'];
|
$appUpdateDate = $row['APP_UPDATE_DATE'];
|
||||||
$appDuration = $row['APP_DURATION'];
|
$appDuration = $row['APP_DURATION'];
|
||||||
$proTime = $row['PRO_TIME'];
|
$proTime = $row['PRO_TIME'];
|
||||||
$proTimeUnit = $row['PRO_TIMEUNIT'];
|
$proTimeUnit = $row['PRO_TIMEUNIT'];
|
||||||
$proUid = $row['PRO_UID'];
|
$proUid = $row['PRO_UID'];
|
||||||
|
|
||||||
//get the object,
|
//get the object,
|
||||||
$oApp = ApplicationPeer::retrieveByPk( $row['APP_UID'] );
|
$oApp = ApplicationPeer::retrieveByPk( $row['APP_UID'] );
|
||||||
|
|
||||||
//getting the calendar
|
//getting the calendar
|
||||||
$calendar->getCalendar(null, $proUid);
|
$calendar->getCalendar(null, $proUid);
|
||||||
$calData = $calendar->getCalendarData();
|
$calData = $calendar->getCalendarData();
|
||||||
|
|
||||||
/*if(G::toUpper($proTimeUnit) != 'DAYS'){ //if it is not in days must be in mins.
|
/*if(G::toUpper($proTimeUnit) != 'DAYS'){ //if it is not in days must be in mins.
|
||||||
$proTime = $proTime / (24 * 60 * 60); //converting to Days
|
$proTime = $proTime / (24 * 60 * 60); //converting to Days
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
$proDueDate = $calendar->dashCalculateDate($row['APP_INIT_DATE'], $proTime, $proTimeUnit, $calData); //date when the process has to finish
|
$proDueDate = $calendar->dashCalculateDate($row['APP_INIT_DATE'], $proTime, $proTimeUnit, $calData); //date when the process has to finish
|
||||||
|
|
||||||
if($appFinishDate == null){//When the process didnt finish yet.
|
if($appFinishDate == null){//When the process didnt finish yet.
|
||||||
//Duration
|
//Duration
|
||||||
$appDuration = $calendar->dashCalculateDurationWithCalendar($appInitDate, date("Y-m-d H:i:s"), $calData );
|
$appDuration = $calendar->dashCalculateDurationWithCalendar($appInitDate, date("Y-m-d H:i:s"), $calData );
|
||||||
|
|
||||||
|
|
||||||
$appDuration = $appDuration / (24 * 60 * 60); //Saving the proDuration in days. The calculateDurationWithCalendar func returns segs.
|
|
||||||
|
$appDuration = $appDuration / (24 * 60 * 60); //Saving the proDuration in days. The calculateDurationWithCalendar func returns segs.
|
||||||
$oApp->setAppDuration( $appDuration );
|
$oApp->setAppDuration( $appDuration );
|
||||||
|
|
||||||
//Delay Duration
|
//Delay Duration
|
||||||
$delayDuration = $calendar->dashCalculateDurationWithCalendar( $proDueDate, date("Y-m-d H:i:s"), $calData );//it returns in mins
|
$delayDuration = $calendar->dashCalculateDurationWithCalendar( $proDueDate, date("Y-m-d H:i:s"), $calData );//it returns in mins
|
||||||
$delayDuration = $delayDuration / (24 * 60 * 60); //Days
|
$delayDuration = $delayDuration / (24 * 60 * 60); //Days
|
||||||
$oApp->setAppDelayDuration( $delayDuration );
|
$oApp->setAppDelayDuration( $delayDuration );
|
||||||
} else {
|
} else {
|
||||||
//Duration
|
//Duration
|
||||||
$appDuration = $calendar->dashCalculateDurationWithCalendar($appInitDate, $appFinishDate, $calData );
|
$appDuration = $calendar->dashCalculateDurationWithCalendar($appInitDate, $appFinishDate, $calData );
|
||||||
$appDuration = $appDuration / (24 * 60 * 60); //Saving the proDuration in days. The calculateDurationWithCalendar func returns mins.
|
$appDuration = $appDuration / (24 * 60 * 60); //Saving the proDuration in days. The calculateDurationWithCalendar func returns mins.
|
||||||
$oApp->setAppDuration( $appDuration );
|
$oApp->setAppDuration( $appDuration );
|
||||||
|
|
||||||
//Delay Duration
|
//Delay Duration
|
||||||
$delayDuration = $calendar->dashCalculateDurationWithCalendar( $proDueDate, $appFinishDate, $calData );
|
$delayDuration = $calendar->dashCalculateDurationWithCalendar( $proDueDate, $appFinishDate, $calData );
|
||||||
$delayDuration = $delayDuration / (24 * 60 * 60); //Days
|
$delayDuration = $delayDuration / (24 * 60 * 60); //Days
|
||||||
$oApp->setAppDelayDuration( $delayDuration );
|
$oApp->setAppDelayDuration( $delayDuration );
|
||||||
}
|
}
|
||||||
|
|
||||||
//and finally save the record
|
//and finally save the record
|
||||||
$RES = $oApp->save();
|
$RES = $oApp->save();
|
||||||
$rs->next();
|
$rs->next();
|
||||||
$row = $rs->getRow();
|
$row = $rs->getRow();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($cron == 1) {
|
if ($cron == 1) {
|
||||||
$arrayCron = unserialize( trim( @file_get_contents( PATH_DATA . "cron" ) ) );
|
$arrayCron = unserialize( trim( @file_get_contents( PATH_DATA . "cron" ) ) );
|
||||||
$arrayCron["processcTimeStart"] = time();
|
$arrayCron["processcTimeStart"] = time();
|
||||||
@file_put_contents( PATH_DATA . "cron", serialize( $arrayCron ) );
|
@file_put_contents( PATH_DATA . "cron", serialize( $arrayCron ) );
|
||||||
}
|
}
|
||||||
} catch (Exception $oError) {
|
} catch (Exception $oError) {
|
||||||
error_log( $oError->getMessage() );
|
error_log( $oError->getMessage() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user