/** * 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, $mail, $index) { require_once PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Application.php"; $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') { $dataFormToShowString .= " " . $field . " " . $value; } } $appData = $this->getDraftApp($app_uid, $index); 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 ($mail == "") { require_once PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Users.php"; $oUsers = new \Users(); if ($nextUsr == "") { //Unassigned: $mail = ""; require_once PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "TaskUser.php"; $oTaskUsers = new \TaskUser(); $taskUsers = $oTaskUsers->getAllUsersTask($tasUid); foreach ($taskUsers as $user) { $usrData = $oUsers->loadDetails($user['USR_UID']); $nextMail = $usrData['USR_EMAIL']; $mail .= $mail == '' ? $nextMail : ',' . $nextMail; } $labelID = "PMUASS"; } else { $usrData = $oUsers->loadDetails($nextUsr); $mail = $usrData['USR_EMAIL']; } } //first template $pathTemplate = PATH_DATA_SITE . "mailTemplates" . PATH_SEP . "pmGmail.html"; if (!file_exists($pathTemplate)) { $file = @fopen($pathTemplate, "w"); fwrite($file, '<div>'); fwrite($file, '<span style="display: none !important;">'); fwrite($file, '-**- Process Name: @#proName<br/>'); fwrite($file, '-**- Case Number: @#appNumber<br/>'); fwrite($file, '-**- Case UID: @#caseUid<br/>'); fwrite($file, '-**- Task Name: @#taskName<br/>'); fwrite($file, '-**- Index: @#index<br/>'); fwrite($file, '-**- Action: @#action<br/>'); fwrite($file, '-**- Previous User: @#prevUser<br/>'); fwrite($file, '-**- Delegate Date: @#delDate<br/>'); fwrite($file, '-**- Process Id: @#proUid<br/>'); fwrite($file, '-**- Type: @#type<br/>'); fwrite($file, '-**- FormFields: @@oform<br/>'); fwrite($file, '</span>'); fwrite($file, '</div>'); fclose($file); } $change = array('[', ']', '"'); $fdata = str_replace($change, ' ', $dataFormToShowString); $aFields = array('proName' => $proName, 'appNumber' => $appNumber, 'caseUid' => $app_uid, 'taskName' => $tasName, 'index' => $index, 'action' => $appStatus, 'prevUser' => $prvUsr, 'delDate' => $delegateDate, 'proUid' => $proUid, 'type' => $labelID, 'oform' => $fdata); $subject = "[PM] " . $proName . " (" . $index . ") Case: " . $appNumber; require_once PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "class.wsBase.php"; $ws = new \wsBase(); $resultMail = $ws->sendMessage($app_uid, '*****@*****.**', $mail, '', '', $subject, 'pmGmail.html', $aFields, array(), true, 0, array(), 1); return $resultMail; } return 'The appUid cant be founded'; }
/** * Generate Data * * @return object criteria */ public function generateData($appUid, $delPreviusUsrUid) { try { G::LoadClass("case"); //Generate data $case = new Cases(); $criteria = new Criteria("workflow"); $criteria->addSelectColumn(AppDelegationPeer::APP_UID); $criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX); $criteria->addSelectColumn(ApplicationPeer::APP_DATA); $criteria->addSelectColumn(AppDelegationPeer::PRO_UID); $criteria->addSelectColumn(AppDelegationPeer::DEL_TASK_DUE_DATE); $criteria->addSelectColumn(TaskPeer::TAS_UID); $criteria->addSelectColumn(TaskPeer::TAS_GROUP_VARIABLE); $criteria->addJoin(AppDelegationPeer::APP_UID, ApplicationPeer::APP_UID, Criteria::LEFT_JOIN); $criteria->addJoin(AppDelegationPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN); $criteria->add(TaskPeer::TAS_ASSIGN_TYPE, "SELF_SERVICE", Criteria::EQUAL); //$criteria->add(TaskPeer::TAS_GROUP_VARIABLE, "", Criteria::NOT_EQUAL); $criteria->add(AppDelegationPeer::USR_UID, "", Criteria::EQUAL); $criteria->add(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN", Criteria::EQUAL); $criteria->add(AppDelegationPeer::APP_UID, $appUid, Criteria::EQUAL); $rsCriteria = AppDelegationPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $applicationData = $case->unserializeData($row["APP_DATA"]); $taskGroupVariable = trim($row["TAS_GROUP_VARIABLE"], " @#"); $delPreviusUsrUid = ''; $unaUid = $this->newRow($row, $delPreviusUsrUid); //Selfservice by group if ($taskGroupVariable != "" && isset($applicationData[$taskGroupVariable]) && trim($applicationData[$taskGroupVariable]) != "") { $gprUid = trim($applicationData[$taskGroupVariable]); //Define Users by Group $gpr = new GroupUser(); $arrayUsers = $gpr->getAllGroupUser($gprUid); foreach ($arrayUsers as $urow) { $newRow["USR_UID"] = $urow["USR_UID"]; $listUnassignedGpr = new ListUnassignedGroup(); $listUnassignedGpr->newRow($unaUid, $urow["USR_UID"], "GROUP", $gprUid); } } else { //Define all users assigned to Task $task = new TaskUser(); $arrayUsers = $task->getAllUsersTask($row["TAS_UID"]); foreach ($arrayUsers as $urow) { $newRow["USR_UID"] = $urow["USR_UID"]; $listUnassignedGpr = new ListUnassignedGroup(); $listUnassignedGpr->newRow($unaUid, $urow["USR_UID"], "USER", ""); } } } } catch (Exception $e) { throw $e; } }