Merged in darojas/processmaker (pull request #66)

Validaciones para el metodo POST para PROCESS SUPERVISOR, BEHAT para OUTPUTDOCUMENTS
This commit is contained in:
erik ao
2014-01-10 16:29:22 -04:00
3 changed files with 217 additions and 46 deletions

View File

@@ -18,11 +18,81 @@ Feature: Output Documents Resources
And the type is "object"
Scenario: Create a new output document for a project
Given this scenario is not implemented yet
Given POST this data:
"""
{
"out_doc_title": "Output doc #1",
"out_doc_description": "Output doc #1 - Desc",
"out_doc_filename": "od_generated_1",
"out_doc_template": "",
"out_doc_report_generator": "HTML2PDF",
"out_doc_landscape": 0,
"out_doc_media": "Letter",
"out_doc_left_margin": 0,
"out_doc_right_margin": 0,
"out_doc_top_margin": 0,
"out_doc_bottom_margin": 0,
"out_doc_generate": "BOTH",
"out_doc_type": "HTML",
"out_doc_current_revision": 0,
"out_doc_field_mapping": "",
"out_doc_versioning": 0,
"out_doc_destination_path": "",
"out_doc_tags": "",
"out_doc_pdf_security_enabled": 0,
"out_doc_pdf_security_open_password": "",
"out_doc_pdf_security_owner_password": "",
"out_doc_pdf_security_permissions": ""
}
"""
And I request "project/4224292655297723eb98691001100052/output-document"
Then the response status code should be 201
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "object"
And store "out_doc_uid" in session array as variable "out_doc_uid"
Scenario: Update a output document for a project
Given this scenario is not implemented yet
Given PUT this data:
"""
{
"out_doc_title": "Output doc #1",
"out_doc_description": "Output doc #1 - Desc DESCRIPTION Modified",
"out_doc_filename": "od_generated_1",
"out_doc_template": "",
"out_doc_report_generator": "HTML2PDF",
"out_doc_landscape": 0,
"out_doc_media": "Letter",
"out_doc_left_margin": 0,
"out_doc_right_margin": 0,
"out_doc_top_margin": 0,
"out_doc_bottom_margin": 0,
"out_doc_generate": "BOTH",
"out_doc_type": "HTML",
"out_doc_current_revision": 0,
"out_doc_field_mapping": "",
"out_doc_versioning": 0,
"out_doc_destination_path": "",
"out_doc_tags": "",
"out_doc_pdf_security_enabled": 0,
"out_doc_pdf_security_open_password": "",
"out_doc_pdf_security_owner_password": "",
"out_doc_pdf_security_permissions": ""
}
"""
And that I want to update a resource with the key "out_doc_uid" stored in session array
And I request "project/4224292655297723eb98691001100052/output-document"
And the content type is "application/json"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "object"
And that "out_doc_description": "Output doc #1 - Desc DESCRIPTION Modified"
Scenario: Delete a output document of a project
Given this scenario is not implemented yet
Given that I want to delete a resource with the key "out_doc_uid" stored in session array
And I request "project/4224292655297723eb98691001100052/output-document"
And the content type is "application/json"
Then the response status code should be 200
And the response charset is "UTF-8"

View File

@@ -550,6 +550,43 @@ class ProcessSupervisor
throw (new \Exception( 'This id: '. $sUsrUID .' do not correspond to a registered ' .$sTypeUID ));
}
}
// validate Groups
$oCriteria = new \Criteria('workflow');
$oCriteria->addSelectColumn(\ProcessUserPeer::PU_UID);
$oCriteria->addSelectColumn(\ProcessUserPeer::USR_UID);
$oCriteria->addAsColumn('GRP_TITLE', \ContentPeer::CON_VALUE);
$aConditions [] = array(\ProcessUserPeer::USR_UID, \ContentPeer::CON_ID);
$aConditions [] = array(\ContentPeer::CON_CATEGORY, \DBAdapter::getStringDelimiter().'GRP_TITLE'.\DBAdapter::getStringDelimiter());
$aConditions [] = array(\ContentPeer::CON_LANG, \DBAdapter::getStringDelimiter().SYS_LANG.\DBAdapter::getStringDelimiter());
$oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
$oCriteria->add(\ProcessUserPeer::PU_TYPE, 'GROUP_SUPERVISOR');
$oCriteria->add(\ProcessUserPeer::PRO_UID, $sProcessUID);
$oCriteria->add(\ProcessUserPeer::USR_UID, $sUsrUID);
$oCriteria->addAscendingOrderByColumn(\ContentPeer::CON_VALUE);
$oDataset = \ProcessUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$sPuUIDT = $aRow['PU_UID'];
$oDataset->next();
}
// validate Users
$oCriteria = new \Criteria('workflow');
$oCriteria->addSelectColumn(\ProcessUserPeer::USR_UID);
$oCriteria->addSelectColumn(\ProcessUserPeer::PU_UID);
$oCriteria->addJoin(\ProcessUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN);
$oCriteria->add(\ProcessUserPeer::PU_TYPE, 'SUPERVISOR');
$oCriteria->add(\ProcessUserPeer::PRO_UID, $sProcessUID);
$oCriteria->add(\ProcessUserPeer::USR_UID, $sUsrUID);
$oCriteria->addAscendingOrderByColumn(\UsersPeer::USR_FIRSTNAME);
$oDataset = \ProcessUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$sPuUIDT = $aRow['PU_UID'];
$oDataset->next();
}
if (is_null($sPuUIDT)) {
$sPuUID = \G::generateUniqueID();
$oProcessUser->create(array('PU_UID' => $sPuUID,
'PRO_UID' => $sProcessUID,
@@ -557,6 +594,9 @@ class ProcessSupervisor
'PU_TYPE' => $sTypeUID));
$oCriteria = $this->getProcessSupervisor($sProcessUID, $sPuUID);
return $oCriteria;
} else {
throw (new \Exception('This relation already exist!'));
}
}
/**
@@ -568,6 +608,36 @@ class ProcessSupervisor
*/
public function addProcessSupervisorDynaform($sProcessUID, $sDynUID)
{
$oTypeDynaform = \DynaformPeer::retrieveByPK($sDynUID);
if (is_null( $oTypeDynaform )) {
throw (new \Exception( 'This id: '. $sDynUID .' do not correspond to a registered Dynaform'));
}
$sDelimiter = \DBAdapter::getStringDelimiter();
$oCriteria = new \Criteria('workflow');
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
$oCriteria->addAsColumn('DYN_TITLE', 'C.CON_VALUE');
$oCriteria->addAlias('C', 'CONTENT');
$aConditions = array();
$aConditions[] = array(\StepSupervisorPeer::STEP_UID_OBJ, \DynaformPeer::DYN_UID );
$aConditions[] = array(\StepSupervisorPeer::STEP_TYPE_OBJ, $sDelimiter . 'DYNAFORM' . $sDelimiter );
$oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
$aConditions = array();
$aConditions[] = array(\DynaformPeer::DYN_UID, 'C.CON_ID' );
$aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'DYN_TITLE' . $sDelimiter );
$aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
$oCriteria->add(\StepSupervisorPeer::PRO_UID, $sProcessUID);
$oCriteria->add(\StepSupervisorPeer::STEP_UID_OBJ, $sDynUID);
$oCriteria->add(\StepSupervisorPeer::STEP_TYPE_OBJ, 'DYNAFORM');
$oCriteria->addAscendingOrderByColumn(\StepSupervisorPeer::STEP_POSITION);
$oDataset = \StepSupervisorPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$sPuUIDT = $aRow['STEP_UID'];
$oDataset->next();
}
if (is_null($sPuUIDT)) {
$oStepSupervisor = new \StepSupervisor();
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
'STEP_TYPE_OBJ' => "DYNAFORM",
@@ -577,7 +647,6 @@ class ProcessSupervisor
$oCriteria = new \Criteria('workflow');
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
$oCriteria->addSelectColumn(\StepSupervisorPeer::PRO_UID);
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_TYPE_OBJ);
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID_OBJ);
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_POSITION);
$oCriteria->addAsColumn('DYN_TITLE', 'C.CON_VALUE');
@@ -606,6 +675,9 @@ class ProcessSupervisor
$oDataset->next();
}
return $aResp;
} else {
throw (new \Exception('This relation already exist!'));
}
}
/**
@@ -617,6 +689,36 @@ class ProcessSupervisor
*/
public function addProcessSupervisorInputDocument($sProcessUID, $sInputDocumentUID)
{
$oTypeInputDocument= \InputDocumentPeer::retrieveByPK($sInputDocumentUID);
if (is_null( $oTypeInputDocument )) {
throw (new \Exception( 'This id: '. $sInputDocumentUID .' do not correspond to a registered InputDocument'));
}
$sDelimiter = \DBAdapter::getStringDelimiter();
$oCriteria = new \Criteria('workflow');
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
$oCriteria->addAsColumn('INP_DOC_TITLE', 'C.CON_VALUE');
$oCriteria->addAlias('C', 'CONTENT');
$aConditions = array();
$aConditions[] = array(\StepSupervisorPeer::STEP_UID_OBJ, \InputDocumentPeer::INP_DOC_UID);
$aConditions[] = array(\StepSupervisorPeer::STEP_TYPE_OBJ, $sDelimiter . 'INPUT_DOCUMENT' . $sDelimiter);
$oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
$aConditions = array();
$aConditions[] = array(\InputDocumentPeer::INP_DOC_UID, 'C.CON_ID');
$aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter);
$aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
$oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
$oCriteria->add(\StepSupervisorPeer::PRO_UID, $sProcessUID);
$oCriteria->add(\StepSupervisorPeer::STEP_UID_OBJ, $sInputDocumentUID);
$oCriteria->add(\StepSupervisorPeer::STEP_TYPE_OBJ, 'INPUT_DOCUMENT');
$oCriteria->addAscendingOrderByColumn(\StepSupervisorPeer::STEP_POSITION);
$oDataset = \StepSupervisorPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$sPuUIDT = $aRow['STEP_UID'];
$oDataset->next();
}
if (is_null($sPuUIDT)) {
$oStepSupervisor = new \StepSupervisor();
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
'STEP_TYPE_OBJ' => "INPUT_DOCUMENT",
@@ -655,6 +757,9 @@ class ProcessSupervisor
$oDataset->next();
}
return $aResp;
} else {
throw (new \Exception('This relation already exist!'));
}
}
/**

View File

@@ -311,8 +311,4 @@ class ProcessSupervisors extends Api
}
return $response;
}
}