Merge pull request #546 from victorsl/BUG-7385

BUG 7385 "PMF functions required for handling cases..." SOLVED
This commit is contained in:
julceslauhub
2012-09-11 14:07:18 -07:00
5 changed files with 372 additions and 22 deletions

View File

@@ -30,24 +30,28 @@ require_once ("classes/model/AppCacheView.php");
require_once ("classes/model/AppDelay.php");
require_once ("classes/model/AppDelegation.php");
require_once ("classes/model/AppDocument.php");
require_once ("classes/model/AppEvent.php");
require_once ("classes/model/AppHistory.php");
require_once ("classes/model/AppMessage.php");
require_once ("classes/model/AppNotes.php");
require_once ("classes/model/AppOwner.php");
require_once ("classes/model/AppSolrQueue.php");
require_once ("classes/model/AppThread.php");
require_once ("classes/model/CaseTracker.php");
require_once ("classes/model/CaseTrackerObject.php");
require_once ('classes/model/Configuration.php');
require_once ("classes/model/Configuration.php");
require_once ("classes/model/Content.php");
require_once ("classes/model/DbSource.php");
require_once ("classes/model/Dynaform.php");
require_once ("classes/model/InputDocument.php");
require_once ("classes/model/Language.php");
require_once ('classes/model/AppMessage.php');
require_once ("classes/model/ObjectPermission.php");
require_once ("classes/model/OutputDocument.php");
require_once ("classes/model/Process.php");
require_once ("classes/model/ProcessUser.php");
require_once ("classes/model/ReportTable.php");
require_once ("classes/model/ReportVar.php");
require_once ('classes/model/Route.php');
require_once ("classes/model/Route.php");
require_once ("classes/model/Step.php");
require_once ("classes/model/StepSupervisor.php");
require_once ("classes/model/StepTrigger.php");
@@ -56,9 +60,8 @@ require_once ("classes/model/Task.php");
require_once ("classes/model/TaskUser.php");
require_once ("classes/model/Triggers.php");
require_once ("classes/model/Users.php");
require_once ("classes/model/AppHistory.php");
G::LoadClass('pmScript');
G::LoadClass("pmScript");
/**
* A Cases object where you can do start, load, update, refresh about cases
@@ -1003,9 +1006,9 @@ class Cases
public function removeCase($sAppUid)
{
try {
$oApplication = new Application();
$oAppDelegation = new AppDelegation();
$oAppDocument = new AppDocument();
//Delete the delegations of a application
$oCriteria2 = new Criteria('workflow');
$oCriteria2->add(AppDelegationPeer::APP_UID, $sAppUid);
@@ -1038,6 +1041,27 @@ class Cases
$oCriteria2 = new Criteria('workflow');
$oCriteria2->add(AppThreadPeer::APP_UID, $sAppUid);
AppThreadPeer::doDelete($oCriteria2);
//Delete the events from a application
$criteria = new Criteria("workflow");
$criteria->add(AppEventPeer::APP_UID, $sAppUid);
AppEventPeer::doDelete($criteria);
//Delete the histories from a application
$criteria = new Criteria("workflow");
$criteria->add(AppHistoryPeer::APP_UID, $sAppUid);
AppHistoryPeer::doDelete($criteria);
//Delete the notes from a application
$criteria = new Criteria("workflow");
$criteria->add(AppNotesPeer::APP_UID, $sAppUid);
AppNotesPeer::doDelete($criteria);
//Delete the owners from a application
$criteria = new Criteria("workflow");
$criteria->add(AppOwnerPeer::APP_UID, $sAppUid);
AppOwnerPeer::doDelete($criteria);
//Delete the SolrQueue from a application
$criteria = new Criteria("workflow");
$criteria->add(AppSolrQueuePeer::APP_UID, $sAppUid);
AppSolrQueuePeer::doDelete($criteria);
//Before delete verify if is a child case
$oCriteria2 = new Criteria('workflow');
$oCriteria2->add(SubApplicationPeer::APP_UID, $sAppUid);
@@ -1054,8 +1078,10 @@ class Cases
$oCriteria2 = new Criteria('workflow');
$oCriteria2->add(SubApplicationPeer::APP_PARENT, $sAppUid);
SubApplicationPeer::doDelete($oCriteria2);
$oApp = new Application;
$result = $oApp->remove($sAppUid);
//Delete record of the APPLICATION table (trigger: delete records of the APP_CACHE_VIEW table)
$application = new Application();
$result = $application->remove($sAppUid);
//delete application from index
if ($this->appSolr != null) {

View File

@@ -770,11 +770,10 @@ function WSProcessList()
/**
* @method
*
* Returns a list of processes in the current workspace.
* Returns Email configuration.
*
* @name getEmailConfiguration
* @label WS Get Email Configuration
*
* @label Get Email Configuration
*
* @return array | $aFields | Array |Get current email configuration
*
@@ -1161,6 +1160,78 @@ function WSGetSession()
}
}
/**
* @method
*
* Delete a specified case.
*
* @name WSDeleteCase
* @label WS Delete Case
* @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#WSDeleteCase.28.29
*
* @param string(32) | $caseUid | ID of the case | The unique ID of the case.
* @return array | $response | WS array | A WS Response associative array.
*
*/
function WSDeleteCase($caseUid)
{
$client = WSOpen();
$sessionId = $_SESSION["WS_SESSION_ID"];
$params = array(
"sessionId" => $sessionId,
"caseUid" => $caseUid
);
$result = $client->__soapCall("deleteCase", array($params));
$response = array();
$response["status_code"] = $result->status_code;
$response["message"] = $result->message;
$response["time_stamp"] = $result->timestamp;
return $response;
}
/**
* @method
*
* Cancel a specified case.
*
* @name WSCancelCase
* @label WS Cancel Case
* @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#WSCancelCase.28.29
*
* @param string(32) | $caseUid | ID of the case | The unique ID of the case.
* @param int | $delIndex | Delegation index of the case | The delegation index of the current task in the case.
* @param string(32) | $userUid | ID user | The unique ID of the user who will cancel the case.
* @return array | $response | WS array | A WS Response associative array.
*
*/
function WSCancelCase($caseUid, $delIndex, $userUid)
{
$client = WSOpen();
$sessionId = $_SESSION["WS_SESSION_ID"];
$params = array(
"sessionId" => $sessionId,
"caseUid" => $caseUid,
"delIndex" => $delIndex,
"userUid" => $userUid
);
$result = $client->__soapCall("cancelCase", array($params));
$response = array();
$response["status_code"] = $result->status_code;
$response["message"] = $result->message;
$response["time_stamp"] = $result->timestamp;
return $response;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/** Local Services Functions **/
@@ -1178,7 +1249,7 @@ function WSGetSession()
* @return array | $rows | List of tasks | A list of tasks
*
*/
function PMFTaskCase($caseId) #its test was successfull
function PMFTaskCase($caseId) //its test was successfull
{
G::LoadClass('wsBase');
$ws = new wsBase ();
@@ -1205,7 +1276,7 @@ function PMFTaskCase($caseId) #its test was successfull
* @return array | $rows | List of tasks | An array of tasks
*
*/
function PMFTaskList($userId) #its test was successfull
function PMFTaskList($userId) //its test was successfull
{
G::LoadClass('wsBase');
$ws = new wsBase ();
@@ -1231,7 +1302,7 @@ function PMFTaskList($userId) #its test was successfull
* @return array | $rows | List of users | An array of users
*
*/
function PMFUserList() #its test was successfull
function PMFUserList() //its test was successfull
{
G::LoadClass('wsBase');
$ws = new wsBase ();
@@ -1500,7 +1571,7 @@ function PMFGenerateOutputDocument($outputID, $sApplication=null, $index=null, $
* @return array | $rows | List of groups | An array of groups
*
*/
function PMFGroupList() #its test was successfull
function PMFGroupList() //its test was successfull
{
G::LoadClass('wsBase');
$ws = new wsBase ();
@@ -1527,7 +1598,7 @@ function PMFGroupList() #its test was successfull
* @return array | $rows | List of roles | This function returns an array of roles
*
*/
function PMFRoleList() #its test was successfull
function PMFRoleList() //its test was successfull
{
G::LoadClass('wsBase');
$ws = new wsBase ();
@@ -1554,7 +1625,7 @@ function PMFRoleList() #its test was successfull
* @return array | $rows | List of cases | A list of cases
*
*/
function PMFCaseList($userId) #its test was successfull
function PMFCaseList($userId) //its test was successfull
{
G::LoadClass('wsBase');
$ws = new wsBase ();
@@ -1580,7 +1651,7 @@ function PMFCaseList($userId) #its test was successfull
* @return array | $rows | Lis ot Processes | An array of tasks in the indicated case which have open delegations
*
*/
function PMFProcessList() #its test was successfull
function PMFProcessList() //its test was successfull
{
G::LoadClass('wsBase');
$ws = new wsBase ();
@@ -2205,7 +2276,7 @@ function PMFGetUserEmailAddress($id, $APP_UID=null, $prefix='usr')
* Get of the cases notes an application.
*
* @name PMFGetCaseNotes
* @label Get of the cases notes an application.
* @label PMF Get of the cases notes an application.
*
* @param string(32) | $applicationID | Application ID | ID of the Application
* @param string(32) | $type or default value 'array' | type of the return value | type of the return value (array, object, string)
@@ -2220,3 +2291,57 @@ function PMFGetCaseNotes ($applicationID, $type='array', $userUid='')
return $response;
}
/**
* @method
*
* Delete a specified case.
*
* @name PMFDeleteCase
* @label PMF Delete a specified case.
*
* @param string(32) | $caseUid | ID of the case | The unique ID of the case.
* @return int | $result | Result of the elimination | Returns 1 if the case is delete successfully; otherwise, returns 0 if an error occurred.
*
*/
function PMFDeleteCase($caseUid)
{
G::LoadClass("wsBase");
$ws = new wsBase();
$result = $ws->deleteCase($caseUid);
if ($result->status_code == 0) {
return 1;
} else {
return 0;
}
}
/**
* @method
*
* Cancel a specified case.
*
* @name PMFCancelCase
* @label PMF Cancel a specified case.
*
* @param string(32) | $caseUid | ID of the case | The unique ID of the case.
* @param int | $delIndex | Delegation index of the case | The delegation index of the current task in the case.
* @param string(32) | $userUid | ID user | The unique ID of the user who will cancel the case.
* @return int | $result | Result of the cancelation | Returns 1 if the case is cancel successfully; otherwise, returns 0 if an error occurred.
*
*/
function PMFCancelCase($caseUid, $delIndex, $userUid)
{
G::LoadClass("wsBase");
$ws = new wsBase();
$result = $ws->cancelCase($caseUid, $delIndex, $userUid);
if ($result->status_code == 0) {
return 1;
} else {
return 0;
}
}

View File

@@ -2815,5 +2815,87 @@ class wsBase
return $result;
}
}
/**
* Delete case
* @param string caseUid : ID of the case.
* @return $result will return an object
*/
public function deleteCase($caseUid)
{
try {
if (empty($caseUid)) {
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " caseUid");
return $result;
}
$case = new Cases();
$case->removeCase($caseUid);
//Response
$res = new wsResponse(0, G::LoadTranslation("ID_COMMAND_EXECUTED_SUCCESSFULLY"));
$result = array(
"status_code" => $res->status_code,
"message" => $res->message,
"timestamp" => $res->timestamp
);
return $result;
} catch (Exception $e) {
$result = wsResponse(100, $e->getMessage());
return $result;
}
}
/**
* Cancel case
* @param string caseUid : ID of the case.
* @param int delIndex : Delegation index of the case.
* @param string userUid : The unique ID of the user who will cancel the case.
* @return $result will return an object
*/
public function cancelCase($caseUid, $delIndex, $userUid)
{
try {
if (empty($caseUid)) {
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " caseUid");
return $result;
}
if (empty($delIndex)) {
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " delIndex");
return $result;
}
if (empty($userUid)) {
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " userUid");
return $result;
}
$case = new Cases();
$case->cancelCase($caseUid, $delIndex, $userUid);
//Response
$res = new wsResponse(0, G::LoadTranslation("ID_COMMAND_EXECUTED_SUCCESSFULLY"));
$result = array(
"status_code" => $res->status_code,
"message" => $res->message,
"timestamp" => $res->timestamp
);
return $result;
} catch (Exception $e) {
$result = wsResponse(100, $e->getMessage());
return $result;
}
}
}

View File

@@ -725,8 +725,45 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="deleteCaseRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="sessionId" type="xs:string"/>
<xs:element name="caseUid" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="deleteCaseResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="status_code" type="xs:integer"/>
<xs:element name="message" type="xs:string"/>
<xs:element name="timestamp" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="cancelCaseRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="sessionId" type="xs:string"/>
<xs:element name="caseUid" type="xs:string"/>
<xs:element name="delIndex" type="xs:string"/>
<xs:element name="userUid" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="cancelCaseResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="status_code" type="xs:integer"/>
<xs:element name="message" type="xs:string"/>
<xs:element name="timestamp" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="loginRequest">
<part name="parameters" element="xs0:login"/>
</message>
@@ -913,10 +950,22 @@
<message name="getCaseNotesResponse">
<part name="parameters" element="xs0:getCaseNotesResponse"/>
</message>
<message name="removeUserFromGroupRequest">
<part name="parameters" element="xs0:removeUserFromGroupRequest"/>
</message>
<message name="deleteCaseRequest">
<part name="parameters" element="xs0:deleteCaseRequest"/>
</message>
<message name="deleteCaseResponse">
<part name="parameters" element="xs0:deleteCaseResponse"/>
</message>
<message name="cancelCaseRequest">
<part name="parameters" element="xs0:cancelCaseRequest"/>
</message>
<message name="cancelCaseResponse">
<part name="parameters" element="xs0:cancelCaseResponse"/>
</message>
<portType name="ProcessMakerServiceSoap">
<operation name="login">
<input message="xs0:loginRequest"/>
@@ -1050,12 +1099,20 @@
<input message="xs0:getCaseNotesRequest"/>
<output message="xs0:getCaseNotesResponse"/>
</operation>
<operation name="removeUserFromGroup">
<input message="xs0:removeUserFromGroupRequest"/>
<output message="xs0:pmResponse"/>
</operation>
<operation name="deleteCase">
<input message="xs0:deleteCaseRequest"/>
<output message="xs0:deleteCaseResponse"/>
</operation>
<operation name="cancelCase">
<input message="xs0:cancelCaseRequest"/>
<output message="xs0:cancelCaseResponse"/>
</operation>
</portType>
<binding name="ProcessMakerServiceSoap" type="xs0:ProcessMakerServiceSoap">
<soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="login">
@@ -1355,7 +1412,6 @@
<soap12:body use="literal"/>
</output>
</operation>
<operation name="removeUserFromGroup">
<soap12:operation soapAction="urn:removeUserFromGroup" soapActionRequired="true" style="document"/>
<input>
@@ -1365,7 +1421,26 @@
<soap12:body use="literal"/>
</output>
</operation>
<operation name="deleteCase">
<soap12:operation soapAction="urn:deleteCase" soapActionRequired="true" style="document"/>
<input>
<soap12:body use="literal"/>
</input>
<output>
<soap12:body use="literal"/>
</output>
</operation>
<operation name="cancelCase">
<soap12:operation soapAction="urn:cancelCase" soapActionRequired="true" style="document"/>
<input>
<soap12:body use="literal"/>
</input>
<output>
<soap12:body use="literal"/>
</output>
</operation>
</binding>
<service name="ProcessMakerService">
<documentation>ProcessMaker Web Service</documentation>
<port name="ProcessMakerServiceSoap" binding="xs0:ProcessMakerServiceSoap">

View File

@@ -1062,6 +1062,46 @@ function ifPermission($sessionId, $permission)
return $sw;
}
function deleteCase($params)
{
$result = isValidSession($params->sessionId);
if ($result->status_code != 0) {
return $result;
}
if (ifPermission($params->sessionId, "PM_CASES") == 0) {
$result = new wsResponse(2, "You do not have privileges");
return $result;
}
$ws = new wsBase();
$result = $ws->deleteCase($params->caseUid);
return $result;
}
function cancelCase($params)
{
$result = isValidSession($params->sessionId);
if ($result->status_code != 0) {
return $result;
}
if (ifPermission($params->sessionId, "PM_CASES") == 0) {
$result = new wsResponse(2, "You do not have privileges");
return $result;
}
$ws = new wsBase();
$result = $ws->cancelCase($params->caseUid, $params->delIndex, $params->userUid);
return $result;
}
@@ -1102,5 +1142,7 @@ $server->addFunction("systemInformation");
$server->addFunction("importProcessFromLibrary");
$server->addFunction("removeUserFromGroup");
$server->addFunction("getCaseNotes");
$server->addFunction("deleteCase");
$server->addFunction("cancelCase");
$server->handle();