示例#1
0
 /**
  * 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';
 }
示例#2
0
 /**
  * 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;
     }
 }