From 69cf387ee8cee7e3351d91f18cda2cc57e59708a Mon Sep 17 00:00:00 2001 From: Dante Date: Mon, 7 Dec 2015 09:34:42 -0400 Subject: [PATCH] revert GI-159 --- workflow/engine/classes/class.labelsGmail.php | 2 +- .../ProcessMaker/BusinessModel/Pmgmail.php | 170 ++++-------------- .../Services/Api/GmailIntegration.php | 2 +- 3 files changed, 35 insertions(+), 139 deletions(-) diff --git a/workflow/engine/classes/class.labelsGmail.php b/workflow/engine/classes/class.labelsGmail.php index 010ba2d5b..4ec9a240a 100644 --- a/workflow/engine/classes/class.labelsGmail.php +++ b/workflow/engine/classes/class.labelsGmail.php @@ -72,7 +72,7 @@ class labelsGmail function setLabels($caseId, $index, $actualLastIndex, $unassigned=false){ //First getting the actual thread data $Pmgmail = new \ProcessMaker\BusinessModel\Pmgmail(); - $appData = $Pmgmail->getAppData($caseId, $index); + $appData = $Pmgmail->getDraftApp($caseId, $index); foreach ($appData as $application){ $appNumber = $application['APP_NUMBER']; diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php b/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php index 4e3ae0c1e..5e8b085c2 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php @@ -2,8 +2,6 @@ namespace ProcessMaker\BusinessModel; use \G; -use Symfony\Component\Config\Definition\Exception\Exception; - /** * @copyright Colosa - Bolivia */ @@ -34,152 +32,45 @@ class Pmgmail { } /** - * Get Application data by appUid. Searches just in list_inbox, list_paused, list_unassigned - * because those are the only places from which an email to update user gmail trays will - * be sent. - * the reason to seach in thos 3 tables is because We prefer to make 3 queries in - * 3 tables with few rows than using app_cache_view that has - * a lot more. + * Get Application data by appUid * - * @param string $appUid Unique id of the app + * @param string $app_uid Unique id of the app * @param string $index * - * return row in list_inbox, list_paused or list_unassigned, if nothing is - * found a null value is returned + * return row app_cache_view * */ - public function getAppData($appUid, $index=1) + public function getDraftApp($app_uid, $index=1) { - if (empty($appUid)) { - throw new Exception('Null or undefined appUids are not accepted.'); - } + $c = new \Criteria( 'workflow' ); - //the current version of Propel does not support union queries, so - //3 queries are sent. The first time that a row that conforms to the - //seach criteria is found, the function terminates and returns this row. + $c->clearSelectColumns(); + $c->addSelectColumn( \AppCacheViewPeer::APP_NUMBER ); + $c->addSelectColumn( \AppCacheViewPeer::APP_STATUS ); + $c->addSelectColumn( \AppCacheViewPeer::DEL_INDEX ); + $c->addSelectColumn( \AppCacheViewPeer::APP_DEL_PREVIOUS_USER ); + $c->addSelectColumn( \AppCacheViewPeer::DEL_DELEGATE_DATE ); + $c->addSelectColumn( \AppCacheViewPeer::USR_UID ); + $c->addSelectColumn( \AppCacheViewPeer::PRO_UID ); + $c->addSelectColumn( \AppCacheViewPeer::APP_PRO_TITLE ); + $c->addSelectColumn( \AppCacheViewPeer::APP_TAS_TITLE ); + $c->addSelectColumn( \AppCacheViewPeer::DEL_THREAD_STATUS ); + $c->addSelectColumn( \AppCacheViewPeer::TAS_UID ); + $c->addSelectColumn( \AppCacheViewPeer::DEL_LAST_INDEX ); - $rowInbox = $this->getAppDataFromListInbox($appUid, $index); - if (count($rowInbox) > 0) { - return $rowInbox; - } + $c->add( \AppCacheViewPeer::APP_UID, $app_uid ); + $c->add( \AppCacheViewPeer::DEL_INDEX, $index ); - $rowUnassigned = $this->getAppDataFromListUnassigned($appUid, $index); - if (count($rowUnassigned) > 0) { - return $rowUnassigned; - } + $rs = \AppCacheViewPeer::doSelectRS( $c ); + $rs->setFetchmode( \ResultSet::FETCHMODE_ASSOC ); - $rowPaused = $this->getAppDataFromListPaused($appUid, $index); - if (count($rowPaused) > 0) { - return $rowPaused; - } - - return null; + $rows = Array (); + while ($rs->next()) { + $rows[] = $rs->getRow(); + } + return $rows; } - /** - * Get Application data in a del index searchin in the list_inbox table - * - * @param string $appUid Unique id of the app - * @param string $index - * - * return row - * - */ - private function getAppDataFromListInbox($appUid, $index) { - $c = new \Criteria( 'workflow' ); - $c->clearSelectColumns(); - $c->addSelectColumn( \ListInboxPeer::APP_NUMBER ); - $c->addSelectColumn( \ListInboxPeer::APP_STATUS ); - $c->addSelectColumn( \ListInboxPeer::DEL_INDEX ); - $c->addSelectColumn( \ListInboxPeer::DEL_DELEGATE_DATE ); - $c->addSelectColumn( \ListInboxPeer::USR_UID ); - $c->addSelectColumn( \ListInboxPeer::PRO_UID ); - $c->addSelectColumn( \ListInboxPeer::APP_PRO_TITLE ); - $c->addSelectColumn( \ListInboxPeer::APP_TAS_TITLE ); - $c->addSelectColumn( \ListInboxPeer::TAS_UID ); - $c->add( \ListInboxPeer::APP_UID, $appUid ); - $c->add( \ListInboxPeer::DEL_INDEX, $index ); - - $rs = \ListInboxPeer::doSelectRS( $c ); - $rs->setFetchmode( \ResultSet::FETCHMODE_ASSOC ); - return $this->resultSetToArray($rs); - } - - - /** - * Get Application data in a del index searchin in the list_inbox table - * - * @param string $appUid Unique id of the app - * @param string $index - * - * return row - * - */ - private function getAppDataFromListPaused($appUid, $index) { - $c = new \Criteria( 'workflow' ); - $c->clearSelectColumns(); - $c->addSelectColumn( \ListPausedPeer::APP_NUMBER ); - $c->addSelectColumn("'PAUSED' APP_STATUS"); - $c->addSelectColumn( \ListPausedPeer::DEL_INDEX ); - $c->addSelectColumn( \ListPausedPeer::DEL_DELEGATE_DATE ); - $c->addSelectColumn( \ListPausedPeer::USR_UID ); - $c->addSelectColumn( \ListPausedPeer::PRO_UID ); - $c->addSelectColumn( \ListPausedPeer::APP_PRO_TITLE ); - $c->addSelectColumn( \ListPausedPeer::APP_TAS_TITLE ); - $c->addSelectColumn( \ListPausedPeer::TAS_UID ); - $c->add( \ListPausedPeer::APP_UID, $appUid ); - $c->add( \ListPausedPeer::DEL_INDEX, $index ); - - $rs = \ListPausedPeer::doSelectRS( $c ); - $rs->setFetchmode( \ResultSet::FETCHMODE_ASSOC ); - return $this->resultSetToArray($rs); - } - /** - * Get Application data in a del index searchin in the list_inbox table - * - * @param string $appUid Unique id of the app - * @param string $index - * - * return row - * - */ - private function getAppDataFromListUnassigned($appUid, $index) { - $c = new \Criteria( 'workflow' ); - $c->clearSelectColumns(); - $c->addSelectColumn( \ListUnassignedPeer::APP_NUMBER ); - $c->addSelectColumn("'UNASSIGNED' APP_STATUS"); - $c->addSelectColumn( \ListUnassignedPeer::DEL_INDEX ); - $c->addSelectColumn( \ListUnassignedPeer::DEL_DELEGATE_DATE ); - $c->addSelectColumn("'' USR_UID"); - $c->addSelectColumn( \ListUnassignedPeer::PRO_UID ); - $c->addSelectColumn( \ListUnassignedPeer::APP_PRO_TITLE ); - $c->addSelectColumn( \ListUnassignedPeer::APP_TAS_TITLE ); - $c->addSelectColumn( \ListUnassignedPeer::TAS_UID ); - $c->add( \ListUnassignedPeer::APP_UID, $appUid ); - $c->add( \ListUnassignedPeer::DEL_INDEX, $index ); - - $rs = \ListUnassignedPeer::doSelectRS( $c ); - $rs->setFetchmode( \ResultSet::FETCHMODE_ASSOC ); - return $this->resultSetToArray($rs); - } - - /** - * Returns an array create from a resultset - * - * @param string $rs result set from which the array will be created - * - * return row array - * - */ - private function resultSetToArray($rs) { - $rows = Array (); - while ($rs->next()) { - $rows[] = $rs->getRow(); - } - return $rows; - } - - /** * Send email using appUid and mail * @@ -212,18 +103,21 @@ class Pmgmail { $dataFormToShowString .= " " . $field . " " . $value; } } - $appData = $this->getAppData($app_uid, $index); + $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"; @@ -267,6 +161,7 @@ class Pmgmail { fwrite($file, '-**- Task Name: @#taskName
'); fwrite($file, '-**- Index: @#index
'); fwrite($file, '-**- Action: @#action
'); + fwrite($file, '-**- Previous User: @#prevUser
'); fwrite($file, '-**- Delegate Date: @#delDate
'); fwrite($file, '-**- Process Id: @#proUid
'); fwrite($file, '-**- Type: @#type
'); @@ -284,6 +179,7 @@ class Pmgmail { 'taskName' => $tasName, 'index' => $index, 'action' => $appStatus, + 'prevUser' => $prvUsr, 'delDate' => $delegateDate, 'proUid' => $proUid, 'type' => $labelID, diff --git a/workflow/engine/src/ProcessMaker/Services/Api/GmailIntegration.php b/workflow/engine/src/ProcessMaker/Services/Api/GmailIntegration.php index 17ed12a66..2b8586503 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/GmailIntegration.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/GmailIntegration.php @@ -46,7 +46,7 @@ class GmailIntegration extends Api { try { $Pmgmail = new \ProcessMaker\BusinessModel\Pmgmail(); - $response = $Pmgmail->getAppData($app_uid); + $response = $Pmgmail->getDraftApp($app_uid); return $response; } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));