Merged in jennydmz/processmaker/BY-166 (pull request #3929)

Deleting Sub Process send email  functionality in PMGmail
This commit is contained in:
Dante Loayza
2016-03-23 17:46:28 -04:00
5 changed files with 114 additions and 209 deletions

View File

@@ -5342,18 +5342,18 @@ class Cases
$respTo = $this->getTo($aTask["TAS_ASSIGN_TYPE"], $aTask["TAS_UID"], $aTask["USR_UID"], $arrayData); $respTo = $this->getTo($aTask["TAS_ASSIGN_TYPE"], $aTask["TAS_UID"], $aTask["USR_UID"], $arrayData);
$sTo = $respTo['to']; $sTo = $respTo['to'];
$sCc = $respTo['cc']; $sCc = $respTo['cc'];
if($aTask["TAS_ASSIGN_TYPE"] === "SELF_SERVICE"){ if ($aTask ["TAS_ASSIGN_TYPE"] === "SELF_SERVICE") {
if ($swtplDefault == 1) { if ($swtplDefault == 1) {
G::verifyPath($pathEmail, true); //Create if it does not exist G::verifyPath ( $pathEmail, true ); // Create if it does not exist
$fileTemplate = $pathEmail . G::LoadTranslation('ID_UNASSIGNED_MESSAGE'); $fileTemplate = $pathEmail . G::LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' );
if ((!file_exists($fileTemplate)) && file_exists(PATH_TPL . "mails" . PATH_SEP . G::LoadTranslation('ID_UNASSIGNED_MESSAGE'))) { if ((! file_exists ( $fileTemplate )) && file_exists ( PATH_TPL . "mails" . PATH_SEP . G::LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ) )) {
@copy(PATH_TPL . "mails" . PATH_SEP . G::LoadTranslation('ID_UNASSIGNED_MESSAGE'), $fileTemplate); @copy ( PATH_TPL . "mails" . PATH_SEP . G::LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ), $fileTemplate );
} }
$sBody2 = G::replaceDataField(file_get_contents($fileTemplate), $arrayData2); $sBody2 = G::replaceDataField ( file_get_contents ( $fileTemplate ), $arrayData2 );
} }
} }
if ($sTo != null) { if ($sTo != null) {

View File

@@ -37,52 +37,6 @@ class SubApplication extends BaseSubApplication
} }
} }
public function loadSubProUidByParent($appUidParent, $delThreadParent, $delIndexParent )
{
try {
$criteria = new Criteria("workflow");
$criteria->addSelectColumn(SubApplicationPeer::APP_UID);
$criteria->add(SubApplicationPeer::APP_PARENT, $appUidParent);
$criteria->add(SubApplicationPeer::DEL_INDEX_PARENT, $delIndexParent);
$criteria->add(SubApplicationPeer::DEL_THREAD_PARENT, $delThreadParent);
$rsCriteria = SubApplicationPeer::doSelectRs($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
}
if(is_array( $row )){
return($row['APP_UID']);
}
return "";
} catch (Exception $oError) {
throw($oError);
}
}
public function loadSubProUidBySon($appUidSon, $delThreadParent, $delIndexParent )
{
try {
$criteria = new Criteria("workflow");
$criteria->addSelectColumn(SubApplicationPeer::APP_PARENT);
$criteria->add(SubApplicationPeer::APP_UID, $appUidSon);
$criteria->add(SubApplicationPeer::DEL_INDEX_PARENT, $delIndexParent);
$criteria->add(SubApplicationPeer::DEL_THREAD_PARENT, $delThreadParent);
$rsCriteria = SubApplicationPeer::doSelectRs($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
}
if(is_array( $row )){
return($row['APP_PARENT']);
}
return "";
} catch (Exception $oError) {
throw($oError);
}
}
public function create($aData) public function create($aData)
{ {
$oConnection = Propel::getConnection(SubApplicationPeer::DATABASE_NAME); $oConnection = Propel::getConnection(SubApplicationPeer::DATABASE_NAME);

View File

@@ -163,32 +163,32 @@ try {
// Send notifications - Start // Send notifications - Start
$oUser = new Users(); $oUser = new Users();
$aUser = $oUser->load( $_SESSION['USER_LOGGED'] ); $aUser = $oUser->load( $_SESSION['USER_LOGGED'] );
$sFromName = $aUser['USR_FIRSTNAME'] . ' ' . $aUser['USR_LASTNAME'] . ($aUser['USR_EMAIL'] != '' ? ' <' . $aUser['USR_EMAIL'] . '>' : ''); $sFromName = $aUser['USR_FIRSTNAME'] . ' ' . $aUser['USR_LASTNAME'] . ($aUser['USR_EMAIL'] != '' ? ' <' . $aUser['USR_EMAIL'] . '>' : '');
$flagGmail = false;
/*----------------------------------********---------------------------------*/
$licensedFeatures = &PMLicensedFeatures::getSingleton();
if($licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')){
G::LoadClass( "pmGoogleApi" );
$pmGoogle = new PMGoogleApi();
if($pmGoogle->getServiceGmailStatus()){
$flagGmail = true;
$appDel = new AppDelegation();
$actualThread = $appDel->Load($_SESSION['APPLICATION'], $_SESSION['INDEX']);
$appDelPrev = $appDel->LoadParallel($_SESSION['APPLICATION']); $flagGmail = false;
$Pmgmail = new \ProcessMaker\BusinessModel\Pmgmail(); /*----------------------------------********---------------------------------*/
if(!$appDelPrev){ $licensedFeatures = &PMLicensedFeatures::getSingleton ();
$Pmgmail->sendEmail($_SESSION['APPLICATION'], "", $_SESSION['INDEX'], $_POST['form']['TASKS'], $appFields['APP_DATA']); if ($licensedFeatures->verifyfeature ( '7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09' )) {
}else{ G::LoadClass ( "pmGoogleApi" );
foreach ($appDelPrev as $app){ $pmGoogle = new PMGoogleApi ();
if( ($app['DEL_INDEX'] != $_SESSION['INDEX']) && ($app['DEL_PREVIOUS'] != $actualThread['DEL_PREVIOUS']) ){ if ($pmGoogle->getServiceGmailStatus ()) {
$Pmgmail->sendEmail($_SESSION['APPLICATION'], "", $app['DEL_INDEX'], $_POST['form']['TASKS'], $appFields['APP_DATA']); $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'] );
}
}
}
}
} }
/*----------------------------------********---------------------------------*/ /*----------------------------------********---------------------------------*/
@@ -251,16 +251,16 @@ try {
// Set users drive - End // Set users drive - End
/*----------------------------------********---------------------------------*/ /*----------------------------------********---------------------------------*/
$debuggerAvailable = true; $debuggerAvailable = true;
$casesRedirector = 'casesListExtJsRedirector'; $casesRedirector = 'casesListExtJsRedirector';
if (isset( $_SESSION['user_experience'] ) && $flagGmail === false ) { if (isset ( $_SESSION ['user_experience'] ) && $flagGmail === false) {
$aNextStep['PAGE'] = $casesRedirector.'?ux=' . $_SESSION['user_experience']; $aNextStep ['PAGE'] = $casesRedirector . '?ux=' . $_SESSION ['user_experience'];
$debuggerAvailable = false; $debuggerAvailable = false;
} else if( $flagGmail == true ){ } else if ($flagGmail == true) {
$aNextStep['PAGE'] = $casesRedirector.'?gmail=1'; $aNextStep ['PAGE'] = $casesRedirector . '?gmail=1';
} else { } else {
$aNextStep['PAGE'] = $casesRedirector; $aNextStep ['PAGE'] = $casesRedirector;
} }
if (isset( $_SESSION['PMDEBUGGER'] ) && $_SESSION['PMDEBUGGER'] && $debuggerAvailable) { if (isset( $_SESSION['PMDEBUGGER'] ) && $_SESSION['PMDEBUGGER'] && $debuggerAvailable) {

View File

@@ -115,10 +115,6 @@ class Pmgmail {
} }
$appData = $this->getDraftApp($app_uid, $index); $appData = $this->getDraftApp($app_uid, $index);
if (!$appData){
$appData = $this->getDraftApp($app_uid, $index-1);
}
foreach ($appData as $application) { foreach ($appData as $application) {
$appNumber = $application['APP_NUMBER']; $appNumber = $application['APP_NUMBER'];
$appStatus = $application['APP_STATUS']; $appStatus = $application['APP_STATUS'];
@@ -137,102 +133,55 @@ class Pmgmail {
$labelID = "PMDRFT"; $labelID = "PMDRFT";
} else { } else {
$labelID = "PMIBX"; $labelID = "PMIBX";
} }
if ((string)$mailToAddresses === "") {
if ($arrayTask) {
$oCases = new \Cases();
foreach ($arrayTask as $aTask) { if (( string ) $mailToAddresses === "") {
if(!isset($aTask["USR_UID"])){ if ($arrayTask) {
$aTask["USR_UID"] = ""; $oCases = new \Cases ();
}
$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(); foreach ( $arrayTask as $aTask ) {
$subProAppUid = ""; if (! isset ( $aTask ["USR_UID"] )) {
if( ($aTaskInfo["TAS_TYPE"] === "SUBPROCESS") ){ $aTask ["USR_UID"] = "";
$subProAppUid = $oSubPro->loadSubProUidByParent($app_uid, $index, $index+1); }
} else if($aTask['TAS_UID'] == -1 && $aTask['TAS_ASSIGN_TYPE'] == "nobody"){ $respTo = $oCases->getTo ( $aTask ["TAS_ASSIGN_TYPE"], $aTask ["TAS_UID"], $aTask ["USR_UID"], $arrayData );
$subProAppUid = $oSubPro->loadSubProUidBySon($app_uid, $index, $index+1); $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 );
$appDel = new \AppDelegation(); $rsCriteria = \AppAssignSelfServiceValuePeer::doSelectRs ( $criteria );
$actualThread = $appDel->Load($subProAppUid, $index+1); $rsCriteria->setFetchmode ( \ResultSet::FETCHMODE_ASSOC );
$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); while ( $rsCriteria->next () ) {
$roCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $row = $rsCriteria->getRow ();
}
$taskUsers = unserialize ( $row ['GRP_UID'] );
$oUsers = new \Users ();
if ($taskUsers !== false){
foreach ( $taskUsers as $user ) {
$usrData = $oUsers->loadDetails ( $user );
$nextMail = $usrData ['USR_EMAIL'];
$mailToAddresses .= ($mailToAddresses == '') ? $nextMail : ',' . $nextMail;
}
} else {
$usrData = $oUsers->loadDetails ( $user );
$mailToAddresses = $usrData ['USR_EMAIL'];
}
}
}
}
} else {
$oUsers = new \Users ();
while ($roCriteria->next()) { $usrData = $oUsers->loadDetails ( $nextUsr );
$rowTas = $roCriteria->getRow(); $mailToAddresses = $usrData ['USR_EMAIL'];
} }
$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 //first template

View File

@@ -26,16 +26,16 @@ curl_setopt( $gCurl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt( $gCurl, CURLOPT_CONNECTTIMEOUT, 0); curl_setopt( $gCurl, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($gCurl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($gCurl, CURLOPT_SSL_VERIFYHOST, false);
if(curl_exec($gCurl) === false){ if (curl_exec ( $gCurl ) === false) {
echo 'Curl error: ' . curl_error($gCurl); echo 'Curl error: ' . curl_error ( $gCurl );
} else { } else {
$gCurl_response = curl_exec($gCurl); $gCurl_response = curl_exec ( $gCurl );
curl_close($gCurl); curl_close ( $gCurl );
$gResp = G::json_decode($gCurl_response); $gResp = G::json_decode ( $gCurl_response );
if ($gResp === false) { if ($gResp === false) {
echo Bootstrap::LoadTranslation('ID_NO_LICENSE_FEATURE_ENABLED'); echo Bootstrap::LoadTranslation ( 'ID_NO_LICENSE_FEATURE_ENABLED' );
die; die ();
} }
} }
set_time_limit(60); set_time_limit(60);
@@ -72,11 +72,11 @@ if( !isset($_SESSION['USER_LOGGED']) || $_SESSION['USER_LOGGED'] != $decodedResp
// init curl object // init curl object
$ch = curl_init(); $ch = curl_init();
// define options // define options
$optArray = array( $optArray = array(
CURLOPT_URL => $url, CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false CURLOPT_SSL_VERIFYHOST => false
); );
// apply those options // apply those options
curl_setopt_array($ch, $optArray); curl_setopt_array($ch, $optArray);
@@ -124,13 +124,15 @@ if( !isset($_SESSION['USER_LOGGED']) || $_SESSION['USER_LOGGED'] != $decodedResp
if ($action == "draft"){ if ($action == "draft"){
//sending the email //sending the email
$curlApp = curl_init( 'https://' . $server . '/api/1.0/' . $pmws . '/gmailIntegration/sendEmail/' . $appUid . '/to/' . $gmail . '/index/' . $delIndex ); $curlApp = curl_init( 'https://' . $server . '/api/1.0/' . $pmws . '/gmailIntegration/sendEmail/' . $appUid . '/to/' . $gmail . '/index/' . $delIndex );
curl_setopt( $curlApp, CURLOPT_HTTPHEADER, array( 'Authorization: Bearer ' . $pmtoken ) ); curl_setopt ( $curlApp, CURLOPT_HTTPHEADER, array (
curl_setopt( $curlApp, CURLOPT_CUSTOMREQUEST, "POST"); 'Authorization: Bearer ' . $pmtoken
curl_setopt( $curlApp, CURLOPT_RETURNTRANSFER, true); ) );
curl_setopt( $curlApp, CURLOPT_SSL_VERIFYPEER, false); curl_setopt ( $curlApp, CURLOPT_CUSTOMREQUEST, "POST" );
curl_setopt( $curlApp, CURLOPT_SSL_VERIFYHOST, false); curl_setopt ( $curlApp, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curlApp, CURLOPT_CONNECTTIMEOUT, 0); curl_setopt ( $curlApp, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt ( $curlApp, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt ( $curlApp, CURLOPT_CONNECTTIMEOUT, 0 );
$curl_response_app = curl_exec( $curlApp ); $curl_response_app = curl_exec( $curlApp );
curl_close( $curlApp ); curl_close( $curlApp );