Merged in darojas/processmaker (pull request #66)
Validaciones para el metodo POST para PROCESS SUPERVISOR, BEHAT para OUTPUTDOCUMENTS
This commit is contained in:
@@ -18,11 +18,81 @@ Feature: Output Documents Resources
|
|||||||
And the type is "object"
|
And the type is "object"
|
||||||
|
|
||||||
Scenario: Create a new output document for a project
|
Scenario: Create a new output document for a project
|
||||||
Given this scenario is not implemented yet
|
Given POST this data:
|
||||||
|
"""
|
||||||
Scenario: Update a output document for a project
|
{
|
||||||
Given this scenario is not implemented yet
|
"out_doc_title": "Output doc #1",
|
||||||
|
"out_doc_description": "Output doc #1 - Desc",
|
||||||
Scenario: Delete a output document of a project
|
"out_doc_filename": "od_generated_1",
|
||||||
Given this scenario is not implemented yet
|
"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 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 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"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -550,13 +550,53 @@ class ProcessSupervisor
|
|||||||
throw (new \Exception( 'This id: '. $sUsrUID .' do not correspond to a registered ' .$sTypeUID ));
|
throw (new \Exception( 'This id: '. $sUsrUID .' do not correspond to a registered ' .$sTypeUID ));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$sPuUID = \G::generateUniqueID();
|
// validate Groups
|
||||||
$oProcessUser->create(array('PU_UID' => $sPuUID,
|
$oCriteria = new \Criteria('workflow');
|
||||||
'PRO_UID' => $sProcessUID,
|
$oCriteria->addSelectColumn(\ProcessUserPeer::PU_UID);
|
||||||
'USR_UID' => $sUsrUID,
|
$oCriteria->addSelectColumn(\ProcessUserPeer::USR_UID);
|
||||||
'PU_TYPE' => $sTypeUID));
|
$oCriteria->addAsColumn('GRP_TITLE', \ContentPeer::CON_VALUE);
|
||||||
$oCriteria = $this->getProcessSupervisor($sProcessUID, $sPuUID);
|
$aConditions [] = array(\ProcessUserPeer::USR_UID, \ContentPeer::CON_ID);
|
||||||
return $oCriteria;
|
$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,
|
||||||
|
'USR_UID' => $sUsrUID,
|
||||||
|
'PU_TYPE' => $sTypeUID));
|
||||||
|
$oCriteria = $this->getProcessSupervisor($sProcessUID, $sPuUID);
|
||||||
|
return $oCriteria;
|
||||||
|
} else {
|
||||||
|
throw (new \Exception('This relation already exist!'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -568,18 +608,13 @@ class ProcessSupervisor
|
|||||||
*/
|
*/
|
||||||
public function addProcessSupervisorDynaform($sProcessUID, $sDynUID)
|
public function addProcessSupervisorDynaform($sProcessUID, $sDynUID)
|
||||||
{
|
{
|
||||||
$oStepSupervisor = new \StepSupervisor();
|
$oTypeDynaform = \DynaformPeer::retrieveByPK($sDynUID);
|
||||||
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
|
if (is_null( $oTypeDynaform )) {
|
||||||
'STEP_TYPE_OBJ' => "DYNAFORM",
|
throw (new \Exception( 'This id: '. $sDynUID .' do not correspond to a registered Dynaform'));
|
||||||
'STEP_UID_OBJ' => $sDynUID,
|
}
|
||||||
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "DYNAFORM")));
|
|
||||||
$sDelimiter = \DBAdapter::getStringDelimiter();
|
$sDelimiter = \DBAdapter::getStringDelimiter();
|
||||||
$oCriteria = new \Criteria('workflow');
|
$oCriteria = new \Criteria('workflow');
|
||||||
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
|
$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');
|
$oCriteria->addAsColumn('DYN_TITLE', 'C.CON_VALUE');
|
||||||
$oCriteria->addAlias('C', 'CONTENT');
|
$oCriteria->addAlias('C', 'CONTENT');
|
||||||
$aConditions = array();
|
$aConditions = array();
|
||||||
@@ -599,13 +634,50 @@ class ProcessSupervisor
|
|||||||
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||||
$oDataset->next();
|
$oDataset->next();
|
||||||
while ($aRow = $oDataset->getRow()) {
|
while ($aRow = $oDataset->getRow()) {
|
||||||
$aResp = array('pud_uid' => $aRow['STEP_UID'],
|
$sPuUIDT = $aRow['STEP_UID'];
|
||||||
'pud_position' => $aRow['STEP_POSITION'],
|
|
||||||
'dyn_uid' => $aRow['STEP_UID_OBJ'],
|
|
||||||
'dyn_title' => $aRow['DYN_TITLE']);
|
|
||||||
$oDataset->next();
|
$oDataset->next();
|
||||||
}
|
}
|
||||||
return $aResp;
|
if (is_null($sPuUIDT)) {
|
||||||
|
$oStepSupervisor = new \StepSupervisor();
|
||||||
|
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
|
||||||
|
'STEP_TYPE_OBJ' => "DYNAFORM",
|
||||||
|
'STEP_UID_OBJ' => $sDynUID,
|
||||||
|
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "DYNAFORM")));
|
||||||
|
$sDelimiter = \DBAdapter::getStringDelimiter();
|
||||||
|
$oCriteria = new \Criteria('workflow');
|
||||||
|
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
|
||||||
|
$oCriteria->addSelectColumn(\StepSupervisorPeer::PRO_UID);
|
||||||
|
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID_OBJ);
|
||||||
|
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_POSITION);
|
||||||
|
$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()) {
|
||||||
|
$aResp = array('pud_uid' => $aRow['STEP_UID'],
|
||||||
|
'pud_position' => $aRow['STEP_POSITION'],
|
||||||
|
'dyn_uid' => $aRow['STEP_UID_OBJ'],
|
||||||
|
'dyn_title' => $aRow['DYN_TITLE']);
|
||||||
|
$oDataset->next();
|
||||||
|
}
|
||||||
|
return $aResp;
|
||||||
|
} else {
|
||||||
|
throw (new \Exception('This relation already exist!'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -617,18 +689,13 @@ class ProcessSupervisor
|
|||||||
*/
|
*/
|
||||||
public function addProcessSupervisorInputDocument($sProcessUID, $sInputDocumentUID)
|
public function addProcessSupervisorInputDocument($sProcessUID, $sInputDocumentUID)
|
||||||
{
|
{
|
||||||
$oStepSupervisor = new \StepSupervisor();
|
$oTypeInputDocument= \InputDocumentPeer::retrieveByPK($sInputDocumentUID);
|
||||||
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
|
if (is_null( $oTypeInputDocument )) {
|
||||||
'STEP_TYPE_OBJ' => "INPUT_DOCUMENT",
|
throw (new \Exception( 'This id: '. $sInputDocumentUID .' do not correspond to a registered InputDocument'));
|
||||||
'STEP_UID_OBJ' => $sInputDocumentUID,
|
}
|
||||||
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "DYNAFORM")));
|
|
||||||
$sDelimiter = \DBAdapter::getStringDelimiter();
|
$sDelimiter = \DBAdapter::getStringDelimiter();
|
||||||
$oCriteria = new \Criteria('workflow');
|
$oCriteria = new \Criteria('workflow');
|
||||||
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
|
$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('INP_DOC_TITLE', 'C.CON_VALUE');
|
$oCriteria->addAsColumn('INP_DOC_TITLE', 'C.CON_VALUE');
|
||||||
$oCriteria->addAlias('C', 'CONTENT');
|
$oCriteria->addAlias('C', 'CONTENT');
|
||||||
$aConditions = array();
|
$aConditions = array();
|
||||||
@@ -648,13 +715,51 @@ class ProcessSupervisor
|
|||||||
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||||
$oDataset->next();
|
$oDataset->next();
|
||||||
while ($aRow = $oDataset->getRow()) {
|
while ($aRow = $oDataset->getRow()) {
|
||||||
$aResp = array('pui_uid' => $aRow['STEP_UID'],
|
$sPuUIDT = $aRow['STEP_UID'];
|
||||||
'pui_position' => $aRow['STEP_POSITION'],
|
|
||||||
'input_doc_uid' => $aRow['STEP_UID_OBJ'],
|
|
||||||
'input_doc_title' => $aRow['INP_DOC_TITLE']);
|
|
||||||
$oDataset->next();
|
$oDataset->next();
|
||||||
}
|
}
|
||||||
return $aResp;
|
if (is_null($sPuUIDT)) {
|
||||||
|
$oStepSupervisor = new \StepSupervisor();
|
||||||
|
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
|
||||||
|
'STEP_TYPE_OBJ' => "INPUT_DOCUMENT",
|
||||||
|
'STEP_UID_OBJ' => $sInputDocumentUID,
|
||||||
|
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "DYNAFORM")));
|
||||||
|
$sDelimiter = \DBAdapter::getStringDelimiter();
|
||||||
|
$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('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()) {
|
||||||
|
$aResp = array('pui_uid' => $aRow['STEP_UID'],
|
||||||
|
'pui_position' => $aRow['STEP_POSITION'],
|
||||||
|
'input_doc_uid' => $aRow['STEP_UID_OBJ'],
|
||||||
|
'input_doc_title' => $aRow['INP_DOC_TITLE']);
|
||||||
|
$oDataset->next();
|
||||||
|
}
|
||||||
|
return $aResp;
|
||||||
|
} else {
|
||||||
|
throw (new \Exception('This relation already exist!'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -311,8 +311,4 @@ class ProcessSupervisors extends Api
|
|||||||
}
|
}
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user