2013-12-23 09:54:33 -04:00
|
|
|
<?php
|
|
|
|
|
namespace BusinessModel;
|
|
|
|
|
|
|
|
|
|
use \G;
|
|
|
|
|
|
|
|
|
|
class ProcessSupervisor
|
|
|
|
|
{
|
|
|
|
|
/**
|
2014-01-06 16:31:11 -04:00
|
|
|
* Return supervisors
|
2013-12-23 09:54:33 -04:00
|
|
|
* @param string $sProcessUID
|
|
|
|
|
*
|
|
|
|
|
* @return array
|
|
|
|
|
*
|
|
|
|
|
* @access public
|
|
|
|
|
*/
|
2014-01-09 09:14:47 -04:00
|
|
|
public function getProcessSupervisors($sProcessUID = '')
|
2013-12-23 09:54:33 -04:00
|
|
|
{
|
|
|
|
|
try {
|
2014-01-06 16:31:11 -04:00
|
|
|
// Groups
|
|
|
|
|
$oCriteria = new \Criteria('workflow');
|
2014-01-09 09:14:47 -04:00
|
|
|
$oCriteria->addSelectColumn(\ProcessUserPeer::PU_UID);
|
2014-01-06 16:31:11 -04:00
|
|
|
$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->addAscendingOrderByColumn(\ContentPeer::CON_VALUE);
|
|
|
|
|
$oDataset = \ProcessUserPeer::doSelectRS($oCriteria);
|
|
|
|
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
2013-12-23 09:54:33 -04:00
|
|
|
$oDataset->next();
|
2014-01-06 16:31:11 -04:00
|
|
|
while ($aRow = $oDataset->getRow()) {
|
2014-01-09 09:14:47 -04:00
|
|
|
$aResp[] = array('pu_uid' => $aRow['PU_UID'],
|
|
|
|
|
'pu_type' => "GROUP_SUPERVISOR",
|
|
|
|
|
'grp_uid' => $aRow['USR_UID'],
|
|
|
|
|
'grp_name' => $aRow['GRP_TITLE']);
|
2014-01-06 16:31:11 -04:00
|
|
|
$oDataset->next();
|
|
|
|
|
}
|
|
|
|
|
// Users
|
|
|
|
|
$oCriteria = new \Criteria('workflow');
|
|
|
|
|
$oCriteria->addSelectColumn(\ProcessUserPeer::USR_UID);
|
2014-01-09 09:14:47 -04:00
|
|
|
$oCriteria->addSelectColumn(\ProcessUserPeer::PU_UID);
|
2014-01-06 16:31:11 -04:00
|
|
|
$oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
|
|
|
|
|
$oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
|
|
|
|
|
$oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
|
|
|
|
|
$oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL);
|
|
|
|
|
$oCriteria->addJoin(\ProcessUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN);
|
|
|
|
|
$oCriteria->add(\ProcessUserPeer::PU_TYPE, 'SUPERVISOR');
|
|
|
|
|
$oCriteria->add(\ProcessUserPeer::PRO_UID, $sProcessUID);
|
2014-01-09 09:14:47 -04:00
|
|
|
$oCriteria->addAscendingOrderByColumn(\UsersPeer::USR_FIRSTNAME);
|
|
|
|
|
$oDataset = \ProcessUserPeer::doSelectRS($oCriteria);
|
|
|
|
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
|
|
|
|
$aResp[] = array('pu_uid' => $aRow['PU_UID'],
|
|
|
|
|
'pu_type' => "SUPERVISOR",
|
|
|
|
|
'usr_uid' => $aRow['USR_UID'],
|
|
|
|
|
'usr_firstname' => $aRow['USR_FIRSTNAME'],
|
|
|
|
|
'usr_lastname' => $aRow['USR_LASTNAME'],
|
|
|
|
|
'usr_username' => $aRow['USR_USERNAME'],
|
|
|
|
|
'usr_email' => $aRow['USR_EMAIL'] );
|
|
|
|
|
$oDataset->next();
|
2014-01-06 16:31:11 -04:00
|
|
|
}
|
2014-01-09 09:14:47 -04:00
|
|
|
return $aResp;
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
throw $e;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Return a spefic supervisor
|
|
|
|
|
* @param string $sProcessUID
|
|
|
|
|
* @param string $sPuUID
|
|
|
|
|
*
|
|
|
|
|
* @return object
|
|
|
|
|
*
|
|
|
|
|
* @access public
|
|
|
|
|
*/
|
|
|
|
|
public function getProcessSupervisor($sProcessUID = '', $sPuUID = '')
|
|
|
|
|
{
|
|
|
|
|
try {
|
|
|
|
|
// 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::PU_UID, $sPuUID);
|
|
|
|
|
$oCriteria->addAscendingOrderByColumn(\ContentPeer::CON_VALUE);
|
|
|
|
|
$oDataset = \ProcessUserPeer::doSelectRS($oCriteria);
|
|
|
|
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
|
|
|
|
$aResp = array('pu_uid' => $aRow['PU_UID'],
|
|
|
|
|
'pu_type' => "GROUP_SUPERVISOR",
|
|
|
|
|
'grp_uid' => $aRow['USR_UID'],
|
|
|
|
|
'grp_name' => $aRow['GRP_TITLE']);
|
|
|
|
|
$oDataset->next();
|
2014-01-06 16:31:11 -04:00
|
|
|
}
|
2014-01-09 09:14:47 -04:00
|
|
|
// Users
|
|
|
|
|
$oCriteria = new \Criteria('workflow');
|
|
|
|
|
$oCriteria->addSelectColumn(\ProcessUserPeer::USR_UID);
|
|
|
|
|
$oCriteria->addSelectColumn(\ProcessUserPeer::PU_UID);
|
|
|
|
|
$oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
|
|
|
|
|
$oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
|
|
|
|
|
$oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
|
|
|
|
|
$oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL);
|
|
|
|
|
$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::PU_UID, $sPuUID);
|
2014-01-06 16:31:11 -04:00
|
|
|
$oCriteria->addAscendingOrderByColumn(\UsersPeer::USR_FIRSTNAME);
|
|
|
|
|
$oDataset = \ProcessUserPeer::doSelectRS($oCriteria);
|
|
|
|
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
2014-01-09 09:14:47 -04:00
|
|
|
$aResp = array('pu_uid' => $aRow['PU_UID'],
|
|
|
|
|
'pu_type' => "SUPERVISOR",
|
|
|
|
|
'usr_uid' => $aRow['USR_UID'],
|
|
|
|
|
'usr_firstname' => $aRow['USR_FIRSTNAME'],
|
|
|
|
|
'usr_lastname' => $aRow['USR_LASTNAME'],
|
|
|
|
|
'usr_username' => $aRow['USR_USERNAME'],
|
|
|
|
|
'usr_email' => $aRow['USR_EMAIL'] );
|
2014-01-06 16:31:11 -04:00
|
|
|
$oDataset->next();
|
|
|
|
|
}
|
|
|
|
|
return $aResp;
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
throw $e;
|
2013-12-23 09:54:33 -04:00
|
|
|
}
|
2014-01-06 16:31:11 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Return available supervisors
|
|
|
|
|
* @param string $sProcessUID
|
2014-01-09 09:14:47 -04:00
|
|
|
* @param string $obj_type
|
2014-01-06 16:31:11 -04:00
|
|
|
*
|
|
|
|
|
* @return array
|
|
|
|
|
*
|
|
|
|
|
* @access public
|
|
|
|
|
*/
|
2014-01-09 09:14:47 -04:00
|
|
|
public function getAvailableProcessSupervisors($sProcessUID = '', $obj_type)
|
2014-01-06 16:31:11 -04:00
|
|
|
{
|
|
|
|
|
try {
|
|
|
|
|
// Groups
|
|
|
|
|
$oCriteria = new \Criteria('workflow');
|
|
|
|
|
$oCriteria->addSelectColumn(\ProcessUserPeer::USR_UID);
|
|
|
|
|
$oCriteria->addSelectColumn(\ProcessUserPeer::PU_TYPE);
|
|
|
|
|
$oCriteria->add(\ProcessUserPeer::PRO_UID, $sProcessUID);
|
|
|
|
|
$oCriteria->add(\ProcessUserPeer::PU_TYPE, '%SUPERVISOR%', \Criteria::LIKE);
|
|
|
|
|
$oDataset = \ProcessUserPeer::doSelectRS($oCriteria);
|
|
|
|
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
$aUIDS = array();
|
|
|
|
|
$aGRUS = array();
|
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
|
|
|
|
if ($aRow['PU_TYPE'] == 'SUPERVISOR') {
|
|
|
|
|
$aUIDS [] = $aRow ['USR_UID'];
|
|
|
|
|
} else {
|
|
|
|
|
$aGRUS [] = $aRow ['USR_UID'];
|
|
|
|
|
}
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
}
|
|
|
|
|
$oCriteria = new \Criteria('workflow');
|
|
|
|
|
$oCriteria->addSelectColumn(\GroupwfPeer::GRP_UID);
|
|
|
|
|
$oCriteria->addAsColumn('GRP_TITLE', \ContentPeer::CON_VALUE);
|
|
|
|
|
$aConditions [] = array(\GroupwfPeer::GRP_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(\GroupwfPeer::GRP_UID, $aGRUS, \Criteria::NOT_IN);
|
|
|
|
|
$oCriteria->addAscendingOrderByColumn(\ContentPeer::CON_VALUE);
|
|
|
|
|
$oDataset = \GroupwfPeer::doSelectRS($oCriteria);
|
|
|
|
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
$oCriteria = new \Criteria('workflow');
|
|
|
|
|
$oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER');
|
|
|
|
|
$oCriteria->add(\GroupUserPeer::GRP_UID, $results['GRP_UID']);
|
|
|
|
|
$oDataset2 = \GroupUserPeer::doSelectRS($oCriteria);
|
|
|
|
|
$oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$oDataset2->next();
|
|
|
|
|
$aRow2 = $oDataset2->getRow();
|
2014-01-09 09:14:47 -04:00
|
|
|
if ($obj_type == 'group' || $obj_type == '') {
|
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
|
|
|
|
$aRespLi[] = array('grp_uid' => $aRow['GRP_UID'],
|
|
|
|
|
'grp_name' => $aRow['GRP_TITLE'],
|
|
|
|
|
'obj_type' => "group");
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
}
|
2014-01-06 16:31:11 -04:00
|
|
|
}
|
2014-01-09 09:14:47 -04:00
|
|
|
|
2014-01-06 16:31:11 -04:00
|
|
|
$sDelimiter = \DBAdapter::getStringDelimiter();
|
|
|
|
|
$oCriteria = new \Criteria('workflow');
|
|
|
|
|
$oCriteria->addSelectColumn(\UsersPeer::USR_UID);
|
|
|
|
|
$oCriteria->add(\UsersPeer::USR_UID, $aUIDS, \Criteria::NOT_IN);
|
|
|
|
|
$oDataset = \UsersPeer::doSelectRS($oCriteria);
|
|
|
|
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
$aUIDS = array();
|
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
|
|
|
|
$aUIDS [] = $aRow ['USR_UID'];
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
}
|
|
|
|
|
$oCriteria = new \Criteria('workflow');
|
|
|
|
|
$oCriteria->addSelectColumn(\UsersPeer::USR_UID);
|
|
|
|
|
$oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
|
|
|
|
|
$oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
|
|
|
|
|
$oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
|
2014-01-09 09:14:47 -04:00
|
|
|
$oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL);
|
2014-01-06 16:31:11 -04:00
|
|
|
$oCriteria->add(\UsersPeer::USR_UID, $aUIDS, \Criteria::IN);
|
|
|
|
|
$oCriteria->addAscendingOrderByColumn(\UsersPeer::USR_FIRSTNAME);
|
|
|
|
|
$oDataset = \UsersPeer::doSelectRS($oCriteria);
|
|
|
|
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$oDataset->next();
|
2014-01-09 09:14:47 -04:00
|
|
|
if ($obj_type == 'user' || $obj_type == '') {
|
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
|
|
|
|
$aRespLi[] = array('usr_uid' => $aRow['USR_UID'],
|
|
|
|
|
'usr_firstname' => $aRow['USR_FIRSTNAME'],
|
|
|
|
|
'usr_lastname' => $aRow['USR_LASTNAME'],
|
|
|
|
|
'usr_username' => $aRow['USR_USERNAME'],
|
|
|
|
|
'usr_email' => $aRow['USR_EMAIL'],
|
|
|
|
|
"obj_type" => "user" );
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return $aRespLi;
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
throw $e;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Return dynaforms supervisor
|
|
|
|
|
* @param string $sProcessUID
|
|
|
|
|
*
|
|
|
|
|
* @return array
|
|
|
|
|
*
|
|
|
|
|
* @access public
|
|
|
|
|
*/
|
|
|
|
|
public function getProcessSupervisorDynaforms($sProcessUID = '')
|
|
|
|
|
{
|
|
|
|
|
try {
|
|
|
|
|
$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('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_TYPE_OBJ, 'DYNAFORM');
|
|
|
|
|
$oCriteria->addAscendingOrderByColumn(\StepSupervisorPeer::STEP_POSITION);
|
|
|
|
|
$oDataset = \StepSupervisorPeer::doSelectRS($oCriteria);
|
|
|
|
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$oDataset->next();
|
2014-01-06 16:31:11 -04:00
|
|
|
while ($aRow = $oDataset->getRow()) {
|
2014-01-09 09:14:47 -04:00
|
|
|
$aResp[] = array('pud_uid' => $aRow['STEP_UID'],
|
|
|
|
|
'pud_position' => $aRow['STEP_POSITION'],
|
|
|
|
|
'dyn_uid' => $aRow['STEP_UID_OBJ'],
|
|
|
|
|
'dyn_title' => $aRow['DYN_TITLE']);
|
2014-01-06 16:31:11 -04:00
|
|
|
$oDataset->next();
|
|
|
|
|
}
|
2014-01-09 09:14:47 -04:00
|
|
|
return $aResp;
|
2013-12-23 09:54:33 -04:00
|
|
|
} catch (Exception $e) {
|
|
|
|
|
throw $e;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2014-01-09 09:14:47 -04:00
|
|
|
* Return a specific dynaform supervisor
|
2013-12-23 09:54:33 -04:00
|
|
|
* @param string $sProcessUID
|
2014-01-09 09:14:47 -04:00
|
|
|
* @param string $sPudUID
|
2013-12-23 09:54:33 -04:00
|
|
|
*
|
|
|
|
|
* @return array
|
|
|
|
|
*
|
|
|
|
|
* @access public
|
|
|
|
|
*/
|
2014-01-09 09:14:47 -04:00
|
|
|
public function getProcessSupervisorDynaform($sProcessUID = '', $sPudUID = '')
|
2013-12-23 09:54:33 -04:00
|
|
|
{
|
|
|
|
|
try {
|
|
|
|
|
$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('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);
|
2014-01-09 09:14:47 -04:00
|
|
|
$oCriteria->add(\StepSupervisorPeer::STEP_UID, $sPudUID);
|
2013-12-23 09:54:33 -04:00
|
|
|
$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()) {
|
2014-01-09 09:14:47 -04:00
|
|
|
$aResp = array('pud_uid' => $aRow['STEP_UID'],
|
|
|
|
|
'pud_position' => $aRow['STEP_POSITION'],
|
|
|
|
|
'dyn_uid' => $aRow['STEP_UID_OBJ'],
|
|
|
|
|
'dyn_title' => $aRow['DYN_TITLE']);
|
2013-12-23 09:54:33 -04:00
|
|
|
$oDataset->next();
|
2014-01-07 12:29:16 -04:00
|
|
|
}
|
|
|
|
|
return $aResp;
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
throw $e;
|
2013-12-23 09:54:33 -04:00
|
|
|
}
|
2014-01-07 12:29:16 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Return available dynaform supervisor
|
|
|
|
|
* @param string $sProcessUID
|
|
|
|
|
*
|
|
|
|
|
* @return array
|
|
|
|
|
*
|
|
|
|
|
* @access public
|
|
|
|
|
*/
|
2014-01-09 09:14:47 -04:00
|
|
|
public function getAvailableProcessSupervisorDynaform($sProcessUID = '')
|
2014-01-07 12:29:16 -04:00
|
|
|
{
|
|
|
|
|
try {
|
2014-01-09 09:14:47 -04:00
|
|
|
$oCriteria = $this->getProcessSupervisorDynaforms($sProcessUID);
|
2014-01-07 12:29:16 -04:00
|
|
|
$aUIDS = array();
|
|
|
|
|
foreach ($oCriteria as $oCriteria => $value) {
|
2014-01-09 09:14:47 -04:00
|
|
|
$aUIDS[] = $value["dyn_uid"];
|
2014-01-07 12:29:16 -04:00
|
|
|
}
|
|
|
|
|
$sDelimiter = \DBAdapter::getStringDelimiter();
|
|
|
|
|
$oCriteria = new \Criteria('workflow');
|
|
|
|
|
$oCriteria->addSelectColumn(\DynaformPeer::DYN_UID);
|
|
|
|
|
$oCriteria->addSelectColumn(\DynaformPeer::PRO_UID);
|
|
|
|
|
$oCriteria->addAsColumn('DYN_TITLE', 'C.CON_VALUE');
|
|
|
|
|
$oCriteria->addAlias('C', 'CONTENT');
|
|
|
|
|
$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(\DynaformPeer::PRO_UID, $sProcessUID);
|
|
|
|
|
$oCriteria->add(\DynaformPeer::DYN_TYPE, 'xmlform');
|
|
|
|
|
$oCriteria->add(\DynaformPeer::DYN_UID, $aUIDS, \Criteria::NOT_IN);
|
|
|
|
|
$oDataset = \StepSupervisorPeer::doSelectRS($oCriteria);
|
|
|
|
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
$oDataset = \StepSupervisorPeer::doSelectRS($oCriteria);
|
|
|
|
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
2014-01-09 09:14:47 -04:00
|
|
|
$aResp[] = array('dyn_uid' => $aRow['DYN_UID'],
|
|
|
|
|
'dyn_title' => $aRow['DYN_TITLE']);
|
2014-01-07 12:29:16 -04:00
|
|
|
$oDataset->next();
|
|
|
|
|
}
|
|
|
|
|
return $aResp;
|
2013-12-23 09:54:33 -04:00
|
|
|
} catch (Exception $e) {
|
|
|
|
|
throw $e;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2014-01-07 12:29:16 -04:00
|
|
|
* Return input documents supervisor
|
2013-12-23 09:54:33 -04:00
|
|
|
* @param string $sProcessUID
|
|
|
|
|
*
|
|
|
|
|
* @return array
|
|
|
|
|
*
|
|
|
|
|
* @access public
|
|
|
|
|
*/
|
2014-01-09 09:14:47 -04:00
|
|
|
public function getProcessSupervisorInputDocuments($sProcessUID = '')
|
2013-12-23 09:54:33 -04:00
|
|
|
{
|
|
|
|
|
try {
|
|
|
|
|
$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_TYPE_OBJ, 'INPUT_DOCUMENT');
|
|
|
|
|
$oCriteria->addAscendingOrderByColumn(\StepSupervisorPeer::STEP_POSITION);
|
|
|
|
|
$oDataset = \StepSupervisorPeer::doSelectRS($oCriteria);
|
|
|
|
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
2014-01-09 09:14:47 -04:00
|
|
|
$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;
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
throw $e;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Return a specific input document supervisor
|
|
|
|
|
* @param string $sProcessUID
|
|
|
|
|
* @param string $sPuiUID
|
|
|
|
|
*
|
|
|
|
|
* @return array
|
|
|
|
|
*
|
|
|
|
|
* @access public
|
|
|
|
|
*/
|
|
|
|
|
public function getProcessSupervisorInputDocument($sProcessUID = '', $sPuiUID = '')
|
|
|
|
|
{
|
|
|
|
|
try {
|
|
|
|
|
$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, $sPuiUID);
|
|
|
|
|
$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()) {
|
2014-01-09 12:56:23 -04:00
|
|
|
$aResp = array('pui_uid' => $aRow['STEP_UID'],
|
2014-01-09 09:14:47 -04:00
|
|
|
'pui_position' => $aRow['STEP_POSITION'],
|
|
|
|
|
'input_doc_uid' => $aRow['STEP_UID_OBJ'],
|
|
|
|
|
'input_doc_title' => $aRow['INP_DOC_TITLE']);
|
2013-12-23 09:54:33 -04:00
|
|
|
$oDataset->next();
|
|
|
|
|
}
|
|
|
|
|
return $aResp;
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
throw $e;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2014-01-07 12:29:16 -04:00
|
|
|
/**
|
|
|
|
|
* Return available inputdocuments supervisor
|
|
|
|
|
* @param string $sProcessUID
|
|
|
|
|
*
|
|
|
|
|
* @return array
|
|
|
|
|
*
|
|
|
|
|
* @access public
|
|
|
|
|
*/
|
2014-01-09 09:14:47 -04:00
|
|
|
public function getAvailableProcessSupervisorInputDocument($sProcessUID = '')
|
2014-01-07 12:29:16 -04:00
|
|
|
{
|
|
|
|
|
try {
|
2014-01-09 09:14:47 -04:00
|
|
|
$oCriteria = $this->getProcessSupervisorInputDocuments($sProcessUID);
|
2014-01-07 12:29:16 -04:00
|
|
|
$aUIDS = array();
|
|
|
|
|
foreach ($oCriteria as $oCriteria => $value) {
|
2014-01-09 09:14:47 -04:00
|
|
|
$aUIDS[] = $value["input_doc_uid"];
|
2014-01-07 12:29:16 -04:00
|
|
|
}
|
|
|
|
|
$sDelimiter = \DBAdapter::getStringDelimiter();
|
|
|
|
|
$oCriteria = new \Criteria('workflow');
|
|
|
|
|
$oCriteria->addSelectColumn(\InputDocumentPeer::INP_DOC_UID);
|
|
|
|
|
$oCriteria->addSelectColumn(\InputDocumentPeer::PRO_UID);
|
|
|
|
|
$oCriteria->addAsColumn('INP_DOC_TITLE', 'C.CON_VALUE');
|
|
|
|
|
$oCriteria->addAlias('C', 'CONTENT');
|
|
|
|
|
$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(\InputDocumentPeer::PRO_UID, $sProcessUID);
|
|
|
|
|
$oCriteria->add(\InputDocumentPeer::INP_DOC_UID, $aUIDS, \Criteria::NOT_IN);
|
|
|
|
|
$oDataset = \StepSupervisorPeer::doSelectRS($oCriteria);
|
|
|
|
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
$oDataset = \StepSupervisorPeer::doSelectRS($oCriteria);
|
|
|
|
|
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
2014-01-09 09:14:47 -04:00
|
|
|
$aResp[] = array('inp_doc_uid' => $aRow['INP_DOC_UID'],
|
|
|
|
|
'inp_doc_title' => $aRow['INP_DOC_TITLE']);
|
2014-01-07 12:29:16 -04:00
|
|
|
$oDataset->next();
|
|
|
|
|
}
|
|
|
|
|
return $aResp;
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
throw $e;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2014-01-09 09:14:47 -04:00
|
|
|
/**
|
|
|
|
|
* Assign a supervisor of a process
|
|
|
|
|
*
|
|
|
|
|
* @param string $sProcessUID
|
|
|
|
|
* @param string $sUsrUID
|
|
|
|
|
* @param string $sTypeUID
|
|
|
|
|
* @access public
|
|
|
|
|
*/
|
|
|
|
|
public function addProcessSupervisor($sProcessUID, $sUsrUID, $sTypeUID)
|
|
|
|
|
{
|
|
|
|
|
$oProcessUser = new \ProcessUser ( );
|
|
|
|
|
$oTypeAssigneeG = \GroupwfPeer::retrieveByPK( $sUsrUID );
|
|
|
|
|
$oTypeAssigneeU = \UsersPeer::retrieveByPK( $sUsrUID );
|
|
|
|
|
if (is_null( $oTypeAssigneeG ) && is_null( $oTypeAssigneeU ) ) {
|
|
|
|
|
throw (new \Exception( 'This id: '. $sUsrUID .' do not correspond to a registered ' .$sTypeUID ));
|
|
|
|
|
}
|
|
|
|
|
if (is_null( $oTypeAssigneeG ) && ! is_null( $oTypeAssigneeU) ) {
|
|
|
|
|
if ( "SUPERVISOR"!= $sTypeUID ) {
|
|
|
|
|
throw (new \Exception( 'This id: '. $sUsrUID .' do not correspond to a registered ' .$sTypeUID ));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (! is_null( $oTypeAssigneeG ) && is_null( $oTypeAssigneeU ) ) {
|
|
|
|
|
if ( "GROUP_SUPERVISOR" != $sTypeUID ) {
|
|
|
|
|
throw (new \Exception( 'This id: '. $sUsrUID .' do not correspond to a registered ' .$sTypeUID ));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Assign a dynaform supervisor of a process
|
|
|
|
|
*
|
|
|
|
|
* @param string $sProcessUID
|
|
|
|
|
* @param string $sDynUID
|
|
|
|
|
* @access public
|
|
|
|
|
*/
|
|
|
|
|
public function addProcessSupervisorDynaform($sProcessUID, $sDynUID)
|
|
|
|
|
{
|
|
|
|
|
$oStepSupervisor = new \StepSupervisor();
|
|
|
|
|
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
|
|
|
|
|
'STEP_TYPE_OBJ' => "DYNAFORM",
|
|
|
|
|
'STEP_UID_OBJ' => $sDynUID,
|
|
|
|
|
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "DYNAFORM")));
|
2014-01-09 09:39:16 -04:00
|
|
|
$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('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;
|
2014-01-09 09:14:47 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Assign a inputdocument supervisor of a process
|
|
|
|
|
*
|
|
|
|
|
* @param string $sProcessUID
|
|
|
|
|
* @param string $sInputDocumentUID
|
|
|
|
|
* @access public
|
|
|
|
|
*/
|
|
|
|
|
public function addProcessSupervisorInputDocument($sProcessUID, $sInputDocumentUID)
|
|
|
|
|
{
|
|
|
|
|
$oStepSupervisor = new \StepSupervisor();
|
|
|
|
|
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
|
|
|
|
|
'STEP_TYPE_OBJ' => "INPUT_DOCUMENT",
|
|
|
|
|
'STEP_UID_OBJ' => $sInputDocumentUID,
|
|
|
|
|
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "DYNAFORM")));
|
2014-01-09 09:39:16 -04:00
|
|
|
$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;
|
2014-01-09 09:14:47 -04:00
|
|
|
}
|
2014-01-07 12:29:16 -04:00
|
|
|
|
2013-12-23 15:44:40 -04:00
|
|
|
/**
|
2014-01-07 16:42:11 -04:00
|
|
|
* Remove a supervisor
|
2013-12-23 15:44:40 -04:00
|
|
|
*
|
|
|
|
|
* @param string $sProcessUID
|
2014-01-09 09:14:47 -04:00
|
|
|
* @param string $sPuUID
|
2013-12-23 15:44:40 -04:00
|
|
|
* @access public
|
|
|
|
|
*/
|
2014-01-09 09:14:47 -04:00
|
|
|
public function removeProcessSupervisor($sProcessUID, $sPuUID)
|
2013-12-23 15:44:40 -04:00
|
|
|
{
|
|
|
|
|
$oConnection = \Propel::getConnection(\ProcessUserPeer::DATABASE_NAME);
|
|
|
|
|
try {
|
2014-01-09 09:14:47 -04:00
|
|
|
$oProcessUser = \ProcessUserPeer::retrieveByPK($sPuUID);
|
2013-12-23 15:44:40 -04:00
|
|
|
if (!is_null($oProcessUser)) {
|
|
|
|
|
$oConnection->begin();
|
|
|
|
|
$iResult = $oProcessUser->delete();
|
|
|
|
|
$oConnection->commit();
|
|
|
|
|
return $iResult;
|
|
|
|
|
} else {
|
|
|
|
|
throw (new \Exception('This row doesn\'t exist!'));
|
|
|
|
|
}
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
$oConnection->rollback();
|
|
|
|
|
throw $e;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2014-01-07 16:42:11 -04:00
|
|
|
* Remove a dynaform supervisor
|
2013-12-23 15:44:40 -04:00
|
|
|
*
|
|
|
|
|
* @param string $sProcessUID
|
2014-01-09 09:14:47 -04:00
|
|
|
* @param string $sPudUID
|
2013-12-23 15:44:40 -04:00
|
|
|
* @access public
|
|
|
|
|
*/
|
2014-01-09 09:14:47 -04:00
|
|
|
public function removeDynaformSupervisor($sProcessUID, $sPudUID)
|
2013-12-23 15:44:40 -04:00
|
|
|
{
|
|
|
|
|
$oConnection = \Propel::getConnection(\StepSupervisorPeer::DATABASE_NAME);
|
|
|
|
|
try {
|
2014-01-09 09:14:47 -04:00
|
|
|
$oDynaformSupervidor = \StepSupervisorPeer::retrieveByPK($sPudUID);
|
2013-12-23 15:44:40 -04:00
|
|
|
if (!is_null($oDynaformSupervidor)) {
|
|
|
|
|
$oConnection->begin();
|
|
|
|
|
$iResult = $oDynaformSupervidor->delete();
|
|
|
|
|
$oConnection->commit();
|
|
|
|
|
return $iResult;
|
|
|
|
|
} else {
|
|
|
|
|
throw (new \Exception('This row doesn\'t exist!'));
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
$oConnection->rollback();
|
|
|
|
|
throw ($oError);
|
|
|
|
|
}
|
|
|
|
|
}
|
2013-12-23 09:54:33 -04:00
|
|
|
|
2013-12-23 15:44:40 -04:00
|
|
|
/**
|
2014-01-07 16:42:11 -04:00
|
|
|
* Remove a input document supervisor
|
2013-12-23 15:44:40 -04:00
|
|
|
*
|
|
|
|
|
* @param string $sProcessUID
|
2014-01-09 09:14:47 -04:00
|
|
|
* @param string $sPuiUID
|
2013-12-23 15:44:40 -04:00
|
|
|
* @access public
|
|
|
|
|
*/
|
2014-01-09 09:14:47 -04:00
|
|
|
public function removeInputDocumentSupervisor($sProcessUID, $sPuiUID)
|
2013-12-23 15:44:40 -04:00
|
|
|
{
|
|
|
|
|
$oConnection = \Propel::getConnection(\StepSupervisorPeer::DATABASE_NAME);
|
|
|
|
|
try {
|
2014-01-09 09:14:47 -04:00
|
|
|
$oInputDocumentSupervidor = \StepSupervisorPeer::retrieveByPK($sPuiUID);
|
2013-12-23 15:44:40 -04:00
|
|
|
if (!is_null($oInputDocumentSupervidor)) {
|
|
|
|
|
$oConnection->begin();
|
|
|
|
|
$iResult = $oInputDocumentSupervidor->delete();
|
|
|
|
|
$oConnection->commit();
|
|
|
|
|
return $iResult;
|
|
|
|
|
} else {
|
|
|
|
|
throw (new \Exception('This row doesn\'t exist!'));
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
$oConnection->rollback();
|
|
|
|
|
throw ($oError);
|
|
|
|
|
}
|
|
|
|
|
}
|
2013-12-23 09:54:33 -04:00
|
|
|
}
|
|
|
|
|
|