Merged in jennydmz/processmaker/BY-166 (pull request #3891)
Adding require of the G class to validate the use of json_decode().
This commit is contained in:
@@ -5390,135 +5390,124 @@ class Cases
|
||||
} catch (Exception $oException) {
|
||||
throw $oException;
|
||||
}
|
||||
}
|
||||
|
||||
public function getTo($taskType, $taskUid, $taskUsrUid, $arrayData)
|
||||
{
|
||||
$sTo = null;
|
||||
$sCc = null;
|
||||
$arrayResp = array();
|
||||
$task = new Tasks();
|
||||
$group = new Groups();
|
||||
$oUser = new Users();
|
||||
switch ($taskType) {
|
||||
case "SELF_SERVICE":
|
||||
if (isset($taskUid) && !empty($taskUid)) {
|
||||
$arrayTaskUser = array();
|
||||
|
||||
$arrayAux1 = $task->getGroupsOfTask($taskUid, 1);
|
||||
|
||||
foreach ($arrayAux1 as $arrayGroup) {
|
||||
$arrayAux2 = $group->getUsersOfGroup($arrayGroup["GRP_UID"]);
|
||||
|
||||
foreach ($arrayAux2 as $arrayUser) {
|
||||
$arrayTaskUser[] = $arrayUser["USR_UID"];
|
||||
}
|
||||
}
|
||||
|
||||
$arrayAux1 = $task->getUsersOfTask($taskUid, 1);
|
||||
|
||||
foreach ($arrayAux1 as $arrayUser) {
|
||||
$arrayTaskUser[] = $arrayUser["USR_UID"];
|
||||
}
|
||||
|
||||
$criteria = new Criteria("workflow");
|
||||
|
||||
$criteria->addSelectColumn(UsersPeer::USR_UID);
|
||||
$criteria->addSelectColumn(UsersPeer::USR_USERNAME);
|
||||
$criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
|
||||
$criteria->addSelectColumn(UsersPeer::USR_LASTNAME);
|
||||
$criteria->addSelectColumn(UsersPeer::USR_EMAIL);
|
||||
$criteria->add(UsersPeer::USR_UID, $arrayTaskUser, Criteria::IN);
|
||||
$rsCriteria = UsersPeer::doSelectRs($criteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$to = null;
|
||||
$cc = null;
|
||||
$sw = 1;
|
||||
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
|
||||
$toAux = (
|
||||
(($row["USR_FIRSTNAME"] != "") || ($row["USR_LASTNAME"] != "")) ?
|
||||
$row["USR_FIRSTNAME"] . " " . $row["USR_LASTNAME"] . " " : ""
|
||||
) . "<" . $row["USR_EMAIL"] . ">";
|
||||
|
||||
if ($sw == 1) {
|
||||
$to = $toAux;
|
||||
$sw = 0;
|
||||
} else {
|
||||
$cc = $cc . (($cc != null) ? "," : null) . $toAux;
|
||||
}
|
||||
}
|
||||
$arrayResp['to'] = $to;
|
||||
$arrayResp['cc'] = $cc;
|
||||
}
|
||||
break;
|
||||
case "MULTIPLE_INSTANCE":
|
||||
$to = null;
|
||||
$cc = null;
|
||||
$sw = 1;
|
||||
$oDerivation = new Derivation();
|
||||
$userFields = $oDerivation->getUsersFullNameFromArray($oDerivation->getAllUsersFromAnyTask($taskUid));
|
||||
if(isset($userFields)){
|
||||
foreach($userFields as $row){
|
||||
$toAux = (
|
||||
(($row["USR_FIRSTNAME"] != "") || ($row["USR_LASTNAME"] != "")) ?
|
||||
$row["USR_FIRSTNAME"] . " " . $row["USR_LASTNAME"] . " " : ""
|
||||
) . "<" . $row["USR_EMAIL"] . ">";
|
||||
if ($sw == 1) {
|
||||
$to = $toAux;
|
||||
$sw = 0;
|
||||
} else {
|
||||
$cc = $cc . (($cc != null) ? "," : null) . $toAux;
|
||||
}
|
||||
}
|
||||
$arrayResp['to'] = $to;
|
||||
$arrayResp['cc'] = $cc;
|
||||
}
|
||||
break;
|
||||
case "MULTIPLE_INSTANCE_VALUE_BASED":
|
||||
$oTask = new Task();
|
||||
$aTaskNext = $oTask->load($taskUid);
|
||||
if(isset($aTaskNext["TAS_ASSIGN_VARIABLE"]) && !empty($aTaskNext["TAS_ASSIGN_VARIABLE"])){
|
||||
$to = null;
|
||||
$cc = null;
|
||||
$sw = 1;
|
||||
$nextTaskAssignVariable = trim($aTaskNext["TAS_ASSIGN_VARIABLE"], " @#");
|
||||
$arrayUsers = $arrayData[$nextTaskAssignVariable];
|
||||
$oDerivation = new Derivation();
|
||||
$userFields = $oDerivation->getUsersFullNameFromArray($arrayUsers);
|
||||
|
||||
foreach ($userFields as $row) {
|
||||
$toAux = (
|
||||
(($row["USR_FIRSTNAME"] != "") || ($row["USR_LASTNAME"] != "")) ?
|
||||
$row["USR_FIRSTNAME"] . " " . $row["USR_LASTNAME"] . " " : ""
|
||||
) . "<" . $row["USR_EMAIL"] . ">";
|
||||
if ($sw == 1) {
|
||||
$to = $toAux;
|
||||
$sw = 0;
|
||||
} else {
|
||||
$cc = $cc . (($cc != null) ? "," : null) . $toAux;
|
||||
}
|
||||
}
|
||||
$arrayResp['to'] = $to;
|
||||
$arrayResp['cc'] = $cc;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (isset($taskUsrUid) && !empty($taskUsrUid)) {
|
||||
$aUser = $oUser->load($taskUsrUid);
|
||||
$sTo = (
|
||||
(($aUser["USR_FIRSTNAME"] != "") || ($aUser["USR_LASTNAME"] != "")) ?
|
||||
$aUser["USR_FIRSTNAME"] . " " . $aUser["USR_LASTNAME"] . " " : ""
|
||||
) . "<" . $aUser["USR_EMAIL"] . ">";
|
||||
}
|
||||
$arrayResp['to'] = $sTo;
|
||||
$arrayResp['cc'] = '';
|
||||
break;
|
||||
}
|
||||
return $arrayResp;
|
||||
}
|
||||
|
||||
public function getTo($taskType, $taskUid, $taskUsrUid, $arrayData)
|
||||
{
|
||||
$sTo = null;
|
||||
$sCc = null;
|
||||
$arrayResp = array ();
|
||||
$task = new Tasks ();
|
||||
$group = new Groups ();
|
||||
$oUser = new Users ();
|
||||
|
||||
switch ($taskType) {
|
||||
case "SELF_SERVICE" :
|
||||
if (isset ( $taskUid ) && ! empty ( $taskUid )) {
|
||||
$arrayTaskUser = array ();
|
||||
|
||||
$arrayAux1 = $task->getGroupsOfTask ( $taskUid, 1 );
|
||||
|
||||
foreach ( $arrayAux1 as $arrayGroup ) {
|
||||
$arrayAux2 = $group->getUsersOfGroup ( $arrayGroup ["GRP_UID"] );
|
||||
|
||||
foreach ( $arrayAux2 as $arrayUser ) {
|
||||
$arrayTaskUser [] = $arrayUser ["USR_UID"];
|
||||
}
|
||||
}
|
||||
|
||||
$arrayAux1 = $task->getUsersOfTask ( $taskUid, 1 );
|
||||
|
||||
foreach ( $arrayAux1 as $arrayUser ) {
|
||||
$arrayTaskUser [] = $arrayUser ["USR_UID"];
|
||||
}
|
||||
|
||||
$criteria = new Criteria ( "workflow" );
|
||||
|
||||
$criteria->addSelectColumn ( UsersPeer::USR_UID );
|
||||
$criteria->addSelectColumn ( UsersPeer::USR_USERNAME );
|
||||
$criteria->addSelectColumn ( UsersPeer::USR_FIRSTNAME );
|
||||
$criteria->addSelectColumn ( UsersPeer::USR_LASTNAME );
|
||||
$criteria->addSelectColumn ( UsersPeer::USR_EMAIL );
|
||||
$criteria->add ( UsersPeer::USR_UID, $arrayTaskUser, Criteria::IN );
|
||||
$rsCriteria = UsersPeer::doSelectRs ( $criteria );
|
||||
$rsCriteria->setFetchmode ( ResultSet::FETCHMODE_ASSOC );
|
||||
|
||||
$to = null;
|
||||
$cc = null;
|
||||
$sw = 1;
|
||||
|
||||
while ( $rsCriteria->next () ) {
|
||||
$row = $rsCriteria->getRow ();
|
||||
|
||||
$toAux = ((($row ["USR_FIRSTNAME"] != "") || ($row ["USR_LASTNAME"] != "")) ? $row ["USR_FIRSTNAME"] . " " . $row ["USR_LASTNAME"] . " " : "") . "<" . $row ["USR_EMAIL"] . ">";
|
||||
|
||||
if ($sw == 1) {
|
||||
$to = $toAux;
|
||||
$sw = 0;
|
||||
} else {
|
||||
$cc = $cc . (($cc != null) ? "," : null) . $toAux;
|
||||
}
|
||||
}
|
||||
$arrayResp ['to'] = $to;
|
||||
$arrayResp ['cc'] = $cc;
|
||||
}
|
||||
break;
|
||||
case "MULTIPLE_INSTANCE" :
|
||||
$to = null;
|
||||
$cc = null;
|
||||
$sw = 1;
|
||||
$oDerivation = new Derivation ();
|
||||
$userFields = $oDerivation->getUsersFullNameFromArray ( $oDerivation->getAllUsersFromAnyTask ( $taskUid ) );
|
||||
if (isset ( $userFields )) {
|
||||
foreach ( $userFields as $row ) {
|
||||
$toAux = ((($row ["USR_FIRSTNAME"] != "") || ($row ["USR_LASTNAME"] != "")) ? $row ["USR_FIRSTNAME"] . " " . $row ["USR_LASTNAME"] . " " : "") . "<" . $row ["USR_EMAIL"] . ">";
|
||||
if ($sw == 1) {
|
||||
$to = $toAux;
|
||||
$sw = 0;
|
||||
} else {
|
||||
$cc = $cc . (($cc != null) ? "," : null) . $toAux;
|
||||
}
|
||||
}
|
||||
$arrayResp ['to'] = $to;
|
||||
$arrayResp ['cc'] = $cc;
|
||||
}
|
||||
break;
|
||||
case "MULTIPLE_INSTANCE_VALUE_BASED" :
|
||||
$oTask = new Task ();
|
||||
$aTaskNext = $oTask->load ( $taskUid );
|
||||
if (isset ( $aTaskNext ["TAS_ASSIGN_VARIABLE"] ) && ! empty ( $aTaskNext ["TAS_ASSIGN_VARIABLE"] )) {
|
||||
$to = null;
|
||||
$cc = null;
|
||||
$sw = 1;
|
||||
$nextTaskAssignVariable = trim ( $aTaskNext ["TAS_ASSIGN_VARIABLE"], " @#" );
|
||||
$arrayUsers = $arrayData [$nextTaskAssignVariable];
|
||||
$oDerivation = new Derivation ();
|
||||
$userFields = $oDerivation->getUsersFullNameFromArray ( $arrayUsers );
|
||||
|
||||
foreach ( $userFields as $row ) {
|
||||
$toAux = ((($row ["USR_FIRSTNAME"] != "") || ($row ["USR_LASTNAME"] != "")) ? $row ["USR_FIRSTNAME"] . " " . $row ["USR_LASTNAME"] . " " : "") . "<" . $row ["USR_EMAIL"] . ">";
|
||||
if ($sw == 1) {
|
||||
$to = $toAux;
|
||||
$sw = 0;
|
||||
} else {
|
||||
$cc = $cc . (($cc != null) ? "," : null) . $toAux;
|
||||
}
|
||||
}
|
||||
$arrayResp ['to'] = $to;
|
||||
$arrayResp ['cc'] = $cc;
|
||||
}
|
||||
break;
|
||||
default :
|
||||
if (isset ( $taskUsrUid ) && ! empty ( $taskUsrUid )) {
|
||||
$aUser = $oUser->load ( $taskUsrUid );
|
||||
$sTo = ((($aUser ["USR_FIRSTNAME"] != "") || ($aUser ["USR_LASTNAME"] != "")) ? $aUser ["USR_FIRSTNAME"] . " " . $aUser ["USR_LASTNAME"] . " " : "") . "<" . $aUser ["USR_EMAIL"] . ">";
|
||||
}
|
||||
$arrayResp ['to'] = $sTo;
|
||||
$arrayResp ['cc'] = '';
|
||||
break;
|
||||
}
|
||||
return $arrayResp;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -171,14 +171,25 @@ try {
|
||||
if($licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')){
|
||||
G::LoadClass( "pmGoogleApi" );
|
||||
$pmGoogle = new PMGoogleApi();
|
||||
if($pmGoogle->getServiceGmailStatus()){
|
||||
if($pmGoogle->getServiceGmailStatus()){
|
||||
$flagGmail = true;
|
||||
|
||||
$appDel = new AppDelegation();
|
||||
$actualThread = $appDel->Load($_SESSION['APPLICATION'], $_SESSION['INDEX']);
|
||||
|
||||
$appDelPrev = $appDel->LoadParallel($_SESSION['APPLICATION']);
|
||||
$Pmgmail = new \ProcessMaker\BusinessModel\Pmgmail();
|
||||
if(!$appDelPrev){
|
||||
$Pmgmail->sendEmail($_SESSION['APPLICATION'], "", $_SESSION['INDEX'], $_POST['form']['TASKS'], $appFields['APP_DATA']);
|
||||
}else{
|
||||
foreach ($appDelPrev as $app){
|
||||
if( ($app['DEL_INDEX'] != $_SESSION['INDEX']) && ($app['DEL_PREVIOUS'] != $actualThread['DEL_PREVIOUS']) ){
|
||||
$Pmgmail->sendEmail($_SESSION['APPLICATION'], "", $app['DEL_INDEX'], $_POST['form']['TASKS'], $appFields['APP_DATA']);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if( $flagGmail === true ){
|
||||
$Pmgmail = new \ProcessMaker\BusinessModel\Pmgmail();
|
||||
$Pmgmail->sendEmail($_SESSION['APPLICATION'], "", $_SESSION['INDEX'], $_POST['form']['TASKS'], $appFields['APP_DATA']);
|
||||
}
|
||||
/*----------------------------------********---------------------------------*/
|
||||
|
||||
try {
|
||||
|
||||
@@ -115,6 +115,10 @@ class Pmgmail {
|
||||
}
|
||||
$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'];
|
||||
@@ -146,7 +150,7 @@ class Pmgmail {
|
||||
$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
|
||||
@@ -176,16 +180,16 @@ class Pmgmail {
|
||||
$oTask = new \Task();
|
||||
$aTaskInfo = $oTask->load($aTask["TAS_PARENT"]);
|
||||
|
||||
$oSubPro = new \SubApplication();
|
||||
$oSubPro = new \SubApplication();
|
||||
$subProAppUid = "";
|
||||
if( ($aTaskInfo["TAS_TYPE"] === "SUBPROCESS") ){
|
||||
$subProAppUid = $oSubPro->loadSubProUidByParent($app_uid, $index, $index+1);
|
||||
$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'];
|
||||
$index = $actualThread['DEL_INDEX']+1;
|
||||
|
||||
$aCriteria = new \Criteria("workflow");
|
||||
$aCriteria->addSelectColumn(\RoutePeer::ROU_NEXT_TASK);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once (dirname(__FILE__) . '/../../../gulliver/system/class.bootstrap.php');
|
||||
require_once (dirname(__FILE__) . '/../../../gulliver/system/class.g.php');
|
||||
|
||||
$gmailToken = $_GET['gmailToken'];
|
||||
$gmail = $_GET['gmail'];
|
||||
|
||||
Reference in New Issue
Block a user