Deleting Sub Process send email functionality in PMGmail

This commit is contained in:
Jenny Murillo
2016-03-23 17:35:44 -04:00
parent d798d01f69
commit 0cf59dff9e
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);
$sTo = $respTo['to'];
$sCc = $respTo['cc'];
if($aTask["TAS_ASSIGN_TYPE"] === "SELF_SERVICE"){
if ($swtplDefault == 1) {
G::verifyPath($pathEmail, true); //Create if it does not exist
$fileTemplate = $pathEmail . 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);
}
$sBody2 = G::replaceDataField(file_get_contents($fileTemplate), $arrayData2);
}
$sCc = $respTo['cc'];
if ($aTask ["TAS_ASSIGN_TYPE"] === "SELF_SERVICE") {
if ($swtplDefault == 1) {
G::verifyPath ( $pathEmail, true ); // Create if it does not exist
$fileTemplate = $pathEmail . 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 );
}
$sBody2 = G::replaceDataField ( file_get_contents ( $fileTemplate ), $arrayData2 );
}
}
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)
{
$oConnection = Propel::getConnection(SubApplicationPeer::DATABASE_NAME);

View File

@@ -163,32 +163,32 @@ try {
// Send notifications - Start
$oUser = new Users();
$aUser = $oUser->load( $_SESSION['USER_LOGGED'] );
$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']);
$sFromName = $aUser['USR_FIRSTNAME'] . ' ' . $aUser['USR_LASTNAME'] . ($aUser['USR_EMAIL'] != '' ? ' <' . $aUser['USR_EMAIL'] . '>' : '');
$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']);
}
}
}
}
$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'] );
$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
/*----------------------------------********---------------------------------*/
$debuggerAvailable = true;
$casesRedirector = 'casesListExtJsRedirector';
if (isset( $_SESSION['user_experience'] ) && $flagGmail === false ) {
$aNextStep['PAGE'] = $casesRedirector.'?ux=' . $_SESSION['user_experience'];
$debuggerAvailable = false;
} else if( $flagGmail == true ){
$aNextStep['PAGE'] = $casesRedirector.'?gmail=1';
} else {
$aNextStep['PAGE'] = $casesRedirector;
$debuggerAvailable = true;
$casesRedirector = 'casesListExtJsRedirector';
if (isset ( $_SESSION ['user_experience'] ) && $flagGmail === false) {
$aNextStep ['PAGE'] = $casesRedirector . '?ux=' . $_SESSION ['user_experience'];
$debuggerAvailable = false;
} else if ($flagGmail == true) {
$aNextStep ['PAGE'] = $casesRedirector . '?gmail=1';
} else {
$aNextStep ['PAGE'] = $casesRedirector;
}
if (isset( $_SESSION['PMDEBUGGER'] ) && $_SESSION['PMDEBUGGER'] && $debuggerAvailable) {

View File

@@ -115,10 +115,6 @@ 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'];
@@ -137,102 +133,55 @@ class Pmgmail {
$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"]);
if (( string ) $mailToAddresses === "") {
if ($arrayTask) {
$oCases = new \Cases ();
$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);
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 );
$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']);
$rsCriteria = \AppAssignSelfServiceValuePeer::doSelectRs ( $criteria );
$rsCriteria->setFetchmode ( \ResultSet::FETCHMODE_ASSOC );
$roCriteria = \RoutePeer::doSelectRs($aCriteria);
$roCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ( $rsCriteria->next () ) {
$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()) {
$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'];
}
$usrData = $oUsers->loadDetails ( $nextUsr );
$mailToAddresses = $usrData ['USR_EMAIL'];
}
}
//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_SSL_VERIFYHOST, false);
if(curl_exec($gCurl) === false){
echo 'Curl error: ' . curl_error($gCurl);
if (curl_exec ( $gCurl ) === false) {
echo 'Curl error: ' . curl_error ( $gCurl );
} else {
$gCurl_response = curl_exec($gCurl);
curl_close($gCurl);
$gResp = G::json_decode($gCurl_response);
if ($gResp === false) {
echo Bootstrap::LoadTranslation('ID_NO_LICENSE_FEATURE_ENABLED');
die;
}
$gCurl_response = curl_exec ( $gCurl );
curl_close ( $gCurl );
$gResp = G::json_decode ( $gCurl_response );
if ($gResp === false) {
echo Bootstrap::LoadTranslation ( 'ID_NO_LICENSE_FEATURE_ENABLED' );
die ();
}
}
set_time_limit(60);
@@ -72,11 +72,11 @@ if( !isset($_SESSION['USER_LOGGED']) || $_SESSION['USER_LOGGED'] != $decodedResp
// init curl object
$ch = curl_init();
// define options
$optArray = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false
$optArray = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false
);
// apply those options
curl_setopt_array($ch, $optArray);
@@ -124,13 +124,15 @@ if( !isset($_SESSION['USER_LOGGED']) || $_SESSION['USER_LOGGED'] != $decodedResp
if ($action == "draft"){
//sending the email
$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_CUSTOMREQUEST, "POST");
curl_setopt( $curlApp, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $curlApp, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt( $curlApp, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt( $curlApp, CURLOPT_CONNECTTIMEOUT, 0);
$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_CUSTOMREQUEST, "POST" );
curl_setopt ( $curlApp, CURLOPT_RETURNTRANSFER, true );
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_close( $curlApp );