loadByUserEmailInArray($usr_gmail); //getting the skin require_once (PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "class.system.php"); $sysConf = new \System(); $responseSysConfig = $sysConf->getSystemConfiguration( PATH_CONFIG . 'env.ini' ); $response['enviroment'] = $responseSysConfig['default_skin']; return $response; } /** * Get Application data by appUid * * @param string $app_uid Unique id of the app * @param string $index * * return row app_cache_view * */ public function getDraftApp($app_uid, $index=1) { $c = new \Criteria( 'workflow' ); $c->clearSelectColumns(); $c->addSelectColumn( \AppCacheViewPeer::APP_NUMBER ); $c->addSelectColumn( \AppCacheViewPeer::APP_STATUS ); $c->addSelectColumn( \AppCacheViewPeer::DEL_INDEX ); $c->addSelectColumn( \AppCacheViewPeer::APP_DEL_PREVIOUS_USER ); $c->addSelectColumn( \AppCacheViewPeer::DEL_DELEGATE_DATE ); $c->addSelectColumn( \AppCacheViewPeer::USR_UID ); $c->addSelectColumn( \AppCacheViewPeer::PRO_UID ); $c->addSelectColumn( \AppCacheViewPeer::APP_PRO_TITLE ); $c->addSelectColumn( \AppCacheViewPeer::APP_TAS_TITLE ); $c->addSelectColumn( \AppCacheViewPeer::DEL_THREAD_STATUS ); $c->addSelectColumn( \AppCacheViewPeer::TAS_UID ); $c->addSelectColumn( \AppCacheViewPeer::DEL_LAST_INDEX ); $c->add( \AppCacheViewPeer::APP_UID, $app_uid ); $c->add( \AppCacheViewPeer::DEL_INDEX, $index ); $rs = \AppCacheViewPeer::doSelectRS( $c ); $rs->setFetchmode( \ResultSet::FETCHMODE_ASSOC ); $rows = Array (); while ($rs->next()) { $rows[] = $rs->getRow(); } return $rows; } /** * Send email using appUid and mail * * @param string $app_uid Unique id of the app * @param string $mail * * return uid * */ public function sendEmail($app_uid, $mailToAddresses, $index, $arrayTask = null, $arrayData = null) { //getting the default email server $defaultEmail = $this->emailAccount(); if ($defaultEmail === null) { error_log(G::LoadTranslation('ID_EMAIL_ENGINE_IS_NOT_ENABLED')); return false; } $mailCcAddresses = ""; $oApplication = new \Application(); $formData = $oApplication->Load($app_uid); $frmData = unserialize($formData['APP_DATA']); $dataFormToShowString = ""; foreach ($frmData as $field => $value) { if (($field != 'SYS_LANG') && ($field != 'SYS_SKIN') && ($field != 'SYS_SYS') && ($field != 'APPLICATION') && ($field != 'PROCESS') && ($field != 'TASK') && ($field != 'INDEX') && ($field != 'USER_LOGGED') && ($field != 'USR_USERNAME') && ($field != 'DYN_CONTENT_HISTORY') && ($field != 'PIN') && (!is_array($value)) ) { $dataFormToShowString .= " " . $field . " " . $value; } } $appData = $this->getDraftApp($app_uid, $index); if (!$appData){ $appData = $this->getDraftApp($app_uid, $index-1); } foreach ($appData as $application) { $appNumber = $application['APP_NUMBER']; $appStatus = $application['APP_STATUS']; $index = $application['DEL_INDEX']; $prvUsr = $application['APP_DEL_PREVIOUS_USER']; $delegateDate = $application['DEL_DELEGATE_DATE']; $nextUsr = $application['USR_UID']; $proUid = $application['PRO_UID']; $proName = $application['APP_PRO_TITLE']; $tasName = $application['APP_TAS_TITLE']; $threadStatus = $application['DEL_THREAD_STATUS']; $tasUid = $application['TAS_UID']; $lastIndex = $application['DEL_LAST_INDEX']; if ($appStatus == "DRAFT") { $labelID = "PMDRFT"; } else { $labelID = "PMIBX"; } if ((string)$mailToAddresses === "") { if ($arrayTask) { $oCases = new \Cases(); foreach ($arrayTask as $aTask) { if(!isset($aTask["USR_UID"])){ $aTask["USR_UID"] = ""; } $respTo = $oCases->getTo($aTask["TAS_ASSIGN_TYPE"], $aTask["TAS_UID"], $aTask["USR_UID"], $arrayData); $mailToAddresses = $respTo['to']; $mailCcAddresses = $respTo['cc']; if($aTask["TAS_ASSIGN_TYPE"] === "SELF_SERVICE"){ $labelID = "PMUASS"; if ((string)$mailToAddresses === ""){ // Self Service Value Based $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\AppAssignSelfServiceValuePeer::GRP_UID); $criteria->add(\AppAssignSelfServiceValuePeer::APP_UID, $app_uid); $rsCriteria = \AppAssignSelfServiceValuePeer::doSelectRs($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); } $taskUsers = unserialize($row['GRP_UID']); foreach ($taskUsers as $user) { $oUsers = new \Users(); $usrData = $oUsers->loadDetails($user); $nextMail = $usrData['USR_EMAIL']; $mailToAddresses .= ($mailToAddresses == '') ? $nextMail : ',' . $nextMail; } } } else { if (!$aTask["TAS_PARENT"]){ $aTask["TAS_PARENT"] = $tasUid; } $oTask = new \Task(); $aTaskInfo = $oTask->load($aTask["TAS_PARENT"]); $oSubPro = new \SubApplication(); $subProAppUid = ""; if( ($aTaskInfo["TAS_TYPE"] === "SUBPROCESS") ){ $subProAppUid = $oSubPro->loadSubProUidByParent($app_uid, $index, $index+1); } else if($aTask['TAS_UID'] == -1 && $aTask['TAS_ASSIGN_TYPE'] == "nobody"){ $subProAppUid = $oSubPro->loadSubProUidBySon($app_uid, $index, $index+1); $appDel = new \AppDelegation(); $actualThread = $appDel->Load($subProAppUid, $index+1); $index = $actualThread['DEL_INDEX']+1; $aCriteria = new \Criteria("workflow"); $aCriteria->addSelectColumn(\RoutePeer::ROU_NEXT_TASK); $aCriteria->add(\RoutePeer::TAS_UID, $actualThread['TAS_UID']); $roCriteria = \RoutePeer::doSelectRs($aCriteria); $roCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); while ($roCriteria->next()) { $rowTas = $roCriteria->getRow(); } $aTaskInfo = $oTask->load($rowTas['ROU_NEXT_TASK']); $newTask = new \Tasks(); $aTaskUsers = $newTask->getUsersOfTask($rowTas['ROU_NEXT_TASK'],1); foreach ($aTaskUsers as $user) { $nextMail = $user['USR_EMAIL']; $mailToAddresses .= ($mailToAddresses == '') ? $nextMail : ',' . $nextMail; } } if($subProAppUid !== ""){ $subProData = $oApplication->Load($subProAppUid); $oProcess = new \Processes(); $proInfo = $oProcess->getProcessRow($subProData['PRO_UID']); $appNumber = $subProData['APP_NUMBER']; $app_uid = $subProAppUid; $tasName = $aTaskInfo["TAS_TITLE"]; $appStatus = $subProData['APP_STATUS']; $prvUsr = $nextUsr; $delegateDate = $subProData['APP_CREATE_DATE']; $proName = $proInfo['PRO_TITLE']; } } } }else { $oUsers = new \Users(); $usrData = $oUsers->loadDetails($nextUsr); $mailToAddresses = $usrData['USR_EMAIL']; } } //first template $pathTemplate = PATH_DATA_SITE . "mailTemplates" . PATH_SEP . "pmGmail.html"; if (!file_exists($pathTemplate)) { $file = @fopen($pathTemplate, "w"); fwrite($file, '