diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php index e0dbec4c2..fea4199d5 100755 --- a/workflow/engine/classes/class.case.php +++ b/workflow/engine/classes/class.case.php @@ -5529,4 +5529,48 @@ class Cases { $response['array']=$rows; return $response; } + + function getCaseNotes($applicationID, $type = 'array',$userUid = '') { + require_once ( "classes/model/AppNotes.php" ); + $appNotes = new AppNotes(); + $appNotes = $appNotes->getNotesList($applicationID,$userUid); + $response = ''; + if (is_array($appNotes)) { + switch ($type) { + case 'array': + $response = array(); + foreach ($appNotes['array']['notes'] as $key => $value) { + $list = array(); + $list['FULL_NAME'] = $value['USR_FIRSTNAME']." ".$value['USR_LASTNAME']; + foreach ($value as $keys => $value) { + if ($keys != 'USR_FIRSTNAME' && $keys != 'USR_LASTNAME' && $keys != 'USR_EMAIL') { + $list[$keys] = $value; + } + } + $response[$key+1] = $list; + } + break; + case 'object': + $response = new stdclass(); + foreach ($appNotes['array']['notes'] as $key => $value) { + $response->$key->FULL_NAME = $value['USR_FIRSTNAME']." ".$value['USR_LASTNAME']; + foreach ($value as $keys => $value) { + if ($keys != 'USR_FIRSTNAME' && $keys != 'USR_LASTNAME' && $keys != 'USR_EMAIL') { + $response->$key->$keys = $value; + } + } + } + break; + case 'string': + $response = ''; + foreach ($appNotes['array']['notes'] as $key => $value) { + $response .= $value['USR_FIRSTNAME']." ".$value['USR_LASTNAME']." "."(".$value['USR_USERNAME'].")". + " ".$value['NOTE_CONTENT']." "." (".$value['NOTE_DATE']." ) ". + " \n"; + } + break; + } + } + return $response; + } } diff --git a/workflow/engine/classes/class.pmFunctions.php b/workflow/engine/classes/class.pmFunctions.php index b0b7401f3..6d00c8a4b 100755 --- a/workflow/engine/classes/class.pmFunctions.php +++ b/workflow/engine/classes/class.pmFunctions.php @@ -1999,3 +1999,9 @@ function PMFGetUserEmailAddress($id, $APP_UID=null, $prefix='usr') { return $aRecipient; } } + +function PMFGetCaseNotes ($applicationID, $type = 'array',$userUid = '') { + G::LoadClass('case'); + $response = Cases::getCaseNotes($applicationID, $type, $userUid); + return $response; +} diff --git a/workflow/engine/classes/class.wsBase.php b/workflow/engine/classes/class.wsBase.php index b1c6310cc..fe1e7bab5 100755 --- a/workflow/engine/classes/class.wsBase.php +++ b/workflow/engine/classes/class.wsBase.php @@ -2171,5 +2171,27 @@ class wsBase return $result; } } + + public function getCaseNotes ($applicationID, $userUid = '') { + try { + G::LoadClass('case'); + $result = new wsGetCaseNotesResponse (0, G::loadTranslation('ID_SUCCESS'), Cases::getCaseNotes($applicationID, 'array', $userUid)); + $var = array(); + foreach ($result->notes as $key => $value) { + $var2 = array(); + foreach ($value as $keys => $values) { + $field = strtolower($keys); + $var2[$field] = $values; + } + $var[] = $var2; + } + $result->notes = $var; + return $result; + } + catch ( Exception $e ) { + $result = new wsResponse (100, $e->getMessage()); + return $result; + } + } } diff --git a/workflow/engine/classes/class.wsResponse.php b/workflow/engine/classes/class.wsResponse.php index 22e814bf3..9fa7a21ba 100755 --- a/workflow/engine/classes/class.wsResponse.php +++ b/workflow/engine/classes/class.wsResponse.php @@ -182,4 +182,31 @@ class wsGetVariableResponse $this->timestamp = date('Y-m-d H:i:s'); } } + +/** + * Class wsGetCaseNotesResponse + * @package workflow.engine.classes + */ +class wsGetCaseNotesResponse +{ + public $status_code = 0; + public $message = ''; + public $notes = null; + public $timestamp = ''; + + /** + * Function __construct + * Constructor of the class + * @param string $status + * @param string $message + * @param array|object|string $notes + * @return void + */ + function __construct( $status, $message, $notes ) { + $this->status_code = $status; + $this->message = $message; + $this->notes = $notes; + $this->timestamp = date('Y-m-d H:i:s'); + } +} ?> \ No newline at end of file diff --git a/workflow/engine/classes/model/AppNotes.php b/workflow/engine/classes/model/AppNotes.php index ba42c4e5f..52397a40a 100755 --- a/workflow/engine/classes/model/AppNotes.php +++ b/workflow/engine/classes/model/AppNotes.php @@ -15,7 +15,7 @@ require_once 'classes/model/om/BaseAppNotes.php'; */ class AppNotes extends BaseAppNotes { - function getNotesList($appUid, $usrUid, $start, $limit) { + function getNotesList($appUid, $usrUid = '', $start = '', $limit = '') { require_once ( "classes/model/Users.php" ); G::LoadClass('ArrayPeer'); @@ -35,24 +35,28 @@ class AppNotes extends BaseAppNotes { $Criteria->addSelectColumn(AppNotesPeer::NOTE_RECIPIENTS); $Criteria->addSelectColumn(UsersPeer::USR_USERNAME); $Criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME); - $Criteria->addSelectColumn(UsersPeer::USR_LASTNAME); - + $Criteria->addSelectColumn(UsersPeer::USR_LASTNAME); $Criteria->addSelectColumn(UsersPeer::USR_EMAIL); $Criteria->addJoin(AppNotesPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN); $Criteria->add(appNotesPeer::APP_UID, $appUid, CRITERIA::EQUAL); + + if ($usrUid != '') { + $Criteria->add(appNotesPeer::USR_UID, $usrUid, CRITERIA::EQUAL); + } $Criteria->addDescendingOrderByColumn(AppNotesPeer::NOTE_DATE); - $response = array(); $totalCount = AppNotesPeer::doCount($Criteria); $response['totalCount'] = $totalCount; $response['notes'] = array(); - $Criteria->setLimit($limit); - $Criteria->setOffset($start); + if ($start != '') { + $Criteria->setLimit($limit); + $Criteria->setOffset($start); + } $oDataset = appNotesPeer::doSelectRS($Criteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); diff --git a/workflow/engine/controllers/appProxy.php b/workflow/engine/controllers/appProxy.php index 1fd9ce897..1d063b43c 100644 --- a/workflow/engine/controllers/appProxy.php +++ b/workflow/engine/controllers/appProxy.php @@ -35,7 +35,7 @@ class AppProxy extends HttpProxyController $usrUid = isset($_SESSION['USER_LOGGED']) ? $_SESSION['USER_LOGGED'] : ""; $appNotes = new AppNotes(); - $response = $appNotes->getNotesList($appUid, $usrUid, $httpData->start, $httpData->limit); + $response = $appNotes->getNotesList($appUid, '', $httpData->start, $httpData->limit); return $response['array']; } diff --git a/workflow/engine/controllers/home.php b/workflow/engine/controllers/home.php old mode 100644 new mode 100755 index b37589cbd..95b3dd5dc --- a/workflow/engine/controllers/home.php +++ b/workflow/engine/controllers/home.php @@ -224,7 +224,7 @@ class Home extends Controller $cases['data'][$i]['APP_DEL_PREVIOUS_USER'] = ucwords($row['APP_DEL_PREVIOUS_USER']); // Completting with Notes - $notes = $appNotes->getNotesList($row['APP_UID'], $this->userID, $notesStart, $notesLimit); + $notes = $appNotes->getNotesList($row['APP_UID'], '', $notesStart, $notesLimit); $notes = $notes['array']; $cases['data'][$i]['NOTES_COUNT'] = $notes['totalCount']; diff --git a/workflow/engine/methods/cases/caseNotesAjax.php b/workflow/engine/methods/cases/caseNotesAjax.php index f13b38fee..70a2fd4b3 100755 --- a/workflow/engine/methods/cases/caseNotesAjax.php +++ b/workflow/engine/methods/cases/caseNotesAjax.php @@ -47,7 +47,7 @@ function getNotesList() { } $usrUid = (isset($_SESSION['USER_LOGGED'])) ? $_SESSION['USER_LOGGED'] : ""; $appNotes = new AppNotes(); - $response = $appNotes->getNotesList($appUid, $usrUid, $start, $limit); + $response = $appNotes->getNotesList($appUid, '', $start, $limit); sendJsonResultGeneric($response['array'], $callback); } diff --git a/workflow/engine/methods/services/pmos2.wsdl b/workflow/engine/methods/services/pmos2.wsdl index c56d30ce7..7e65e3d14 100755 --- a/workflow/engine/methods/services/pmos2.wsdl +++ b/workflow/engine/methods/services/pmos2.wsdl @@ -662,6 +662,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -838,6 +873,12 @@ + + + + + + @@ -892,7 +933,7 @@ - + @@ -967,6 +1008,11 @@ + + + + + @@ -1253,6 +1299,16 @@ + + + + + + + + + + diff --git a/workflow/engine/methods/services/soap2.php b/workflow/engine/methods/services/soap2.php index 4162be5b1..06f642c68 100755 --- a/workflow/engine/methods/services/soap2.php +++ b/workflow/engine/methods/services/soap2.php @@ -801,6 +801,17 @@ return $res; } + function getCaseNotes( $params ) { + $vsResult = isValidSession($params->sessionId); + if( $vsResult->status_code !== 0 ){ + return $vsResult; + } + + $ws = new wsBase (); + $res = $ws->getCaseNotes( $params->applicationID ,$params->userUid); + return $res; + } + /*************/ #added By Erik AO in datetime 26.06.2008 10:00:00 @@ -884,5 +895,6 @@ $server->addFunction("ReassignCase"); $server->addFunction("systemInformation"); $server->addFunction("importProcessFromLibrary"); $server->addFunction("removeUserFromGroup"); +$server->addFunction("getCaseNotes"); $server->handle();