2014-10-27 11:25:17 -04:00
|
|
|
<?php
|
|
|
|
|
class AppAssignSelfServiceValue extends BaseAppAssignSelfServiceValue
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* Create record
|
|
|
|
|
*
|
|
|
|
|
* @param string $applicationUid Unique id of Case
|
2018-07-31 08:45:54 -04:00
|
|
|
* @param int $delIndex Delegation index
|
|
|
|
|
* @param array $arrayData Data
|
2014-10-27 11:25:17 -04:00
|
|
|
*
|
2018-07-31 08:45:54 -04:00
|
|
|
* @return void
|
|
|
|
|
* @throws Exception
|
2014-10-27 11:25:17 -04:00
|
|
|
*/
|
2018-05-11 14:30:50 -04:00
|
|
|
public function create($applicationUid, $delIndex, array $arrayData, $dataVariable = [])
|
2014-10-27 11:25:17 -04:00
|
|
|
{
|
|
|
|
|
try {
|
|
|
|
|
$cnn = Propel::getConnection(AppAssignSelfServiceValuePeer::DATABASE_NAME);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
$appAssignSelfServiceValue = new AppAssignSelfServiceValue();
|
|
|
|
|
|
|
|
|
|
$appAssignSelfServiceValue->fromArray($arrayData, BasePeer::TYPE_FIELDNAME);
|
|
|
|
|
|
|
|
|
|
$appAssignSelfServiceValue->setAppUid($applicationUid);
|
|
|
|
|
$appAssignSelfServiceValue->setDelIndex($delIndex);
|
|
|
|
|
|
|
|
|
|
if ($appAssignSelfServiceValue->validate()) {
|
|
|
|
|
$cnn->begin();
|
|
|
|
|
$result = $appAssignSelfServiceValue->save();
|
|
|
|
|
$cnn->commit();
|
2016-12-08 17:02:13 -05:00
|
|
|
|
|
|
|
|
//SELECT LAST_INSERT_ID()
|
|
|
|
|
$stmt = $cnn->createStatement();
|
|
|
|
|
$rs = $stmt->executeQuery("SELECT LAST_INSERT_ID()", ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
$rs->next();
|
|
|
|
|
$row = $rs->getRow();
|
|
|
|
|
$appAssignSelfServiceValueId = $row['LAST_INSERT_ID()'];
|
|
|
|
|
$appAssignSelfServiceValueGroup = new AppAssignSelfServiceValueGroup();
|
|
|
|
|
$appAssignSelfServiceValueGroup->createRows($appAssignSelfServiceValueId, $dataVariable);
|
2014-10-27 11:25:17 -04:00
|
|
|
} else {
|
|
|
|
|
$msg = "";
|
|
|
|
|
|
|
|
|
|
foreach ($appAssignSelfServiceValue->getValidationFailures() as $validationFailure) {
|
|
|
|
|
$msg .= (($msg != "")? "\n" : "") . $validationFailure->getMessage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
throw new Exception(G::LoadTranslation("ID_RECORD_CANNOT_BE_CREATED") . (($msg != "")? "\n" . $msg : ""));
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
$cnn->rollback();
|
|
|
|
|
|
|
|
|
|
throw $e;
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
throw $e;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Remove record
|
|
|
|
|
*
|
|
|
|
|
* @param string $applicationUid Unique id of Case
|
2018-07-31 08:45:54 -04:00
|
|
|
* @param int $delIndex Delegation index
|
2014-10-27 11:25:17 -04:00
|
|
|
*
|
2018-07-31 08:45:54 -04:00
|
|
|
* @return void
|
|
|
|
|
* @throws Exception
|
2019-04-11 17:19:56 -04:00
|
|
|
*
|
|
|
|
|
* @see \Cases->removeCase()
|
|
|
|
|
* @see \Cases->setCatchUser()
|
|
|
|
|
* @see \Cases->updateCase()
|
|
|
|
|
*
|
|
|
|
|
* @link https://wiki.processmaker.com/3.2/Tasks#Self_Service_Value_Based_Assignment
|
2014-10-27 11:25:17 -04:00
|
|
|
*/
|
|
|
|
|
public function remove($applicationUid, $delIndex = 0)
|
|
|
|
|
{
|
|
|
|
|
try {
|
|
|
|
|
$criteria = new Criteria("workflow");
|
|
|
|
|
|
|
|
|
|
$criteria->add(AppAssignSelfServiceValuePeer::APP_UID, $applicationUid, Criteria::EQUAL);
|
|
|
|
|
|
|
|
|
|
if ($delIndex != 0) {
|
|
|
|
|
$criteria->add(AppAssignSelfServiceValuePeer::DEL_INDEX, $delIndex, Criteria::EQUAL);
|
|
|
|
|
}
|
|
|
|
|
|
2019-04-11 17:19:56 -04:00
|
|
|
AppAssignSelfServiceValuePeer::doDelete($criteria);
|
2014-10-27 11:25:17 -04:00
|
|
|
} catch (Exception $e) {
|
|
|
|
|
throw $e;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Generate data
|
2018-07-31 08:45:54 -04:00
|
|
|
* This method is used from the command database-generate-self-service-by-value
|
2014-10-27 11:25:17 -04:00
|
|
|
*
|
2018-08-02 08:00:09 -04:00
|
|
|
* @return void
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*
|
|
|
|
|
* @deprecated Method deprecated in Release 3.3.0
|
2014-10-27 11:25:17 -04:00
|
|
|
*/
|
|
|
|
|
public function generateData()
|
|
|
|
|
{
|
|
|
|
|
try {
|
|
|
|
|
AppAssignSelfServiceValuePeer::doDeleteAll(); //Delete all records
|
|
|
|
|
|
|
|
|
|
//Generate data
|
|
|
|
|
$case = new Cases();
|
|
|
|
|
|
|
|
|
|
$criteria = new Criteria("workflow");
|
|
|
|
|
|
|
|
|
|
$criteria->addSelectColumn(AppDelegationPeer::APP_UID);
|
|
|
|
|
$criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX);
|
|
|
|
|
$criteria->addSelectColumn(ApplicationPeer::APP_DATA);
|
|
|
|
|
$criteria->addSelectColumn(AppDelegationPeer::PRO_UID);
|
|
|
|
|
$criteria->addSelectColumn(TaskPeer::TAS_UID);
|
|
|
|
|
$criteria->addSelectColumn(TaskPeer::TAS_GROUP_VARIABLE);
|
|
|
|
|
$criteria->addJoin(AppDelegationPeer::APP_UID, ApplicationPeer::APP_UID, Criteria::LEFT_JOIN);
|
|
|
|
|
$criteria->addJoin(AppDelegationPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN);
|
|
|
|
|
$criteria->add(TaskPeer::TAS_ASSIGN_TYPE, "SELF_SERVICE", Criteria::EQUAL);
|
|
|
|
|
$criteria->add(TaskPeer::TAS_GROUP_VARIABLE, "", Criteria::NOT_EQUAL);
|
|
|
|
|
$criteria->add(AppDelegationPeer::USR_UID, "", Criteria::EQUAL);
|
|
|
|
|
$criteria->add(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN", Criteria::EQUAL);
|
|
|
|
|
|
|
|
|
|
$rsCriteria = AppDelegationPeer::doSelectRS($criteria);
|
|
|
|
|
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
|
|
|
|
|
|
while ($rsCriteria->next()) {
|
|
|
|
|
$row = $rsCriteria->getRow();
|
|
|
|
|
|
|
|
|
|
$applicationData = $case->unserializeData($row["APP_DATA"]);
|
|
|
|
|
$taskGroupVariable = trim($row["TAS_GROUP_VARIABLE"], " @#");
|
|
|
|
|
|
2015-09-01 14:57:25 -04:00
|
|
|
if ($taskGroupVariable != "" && isset($applicationData[$taskGroupVariable])) {
|
|
|
|
|
$dataVariable = $applicationData[$taskGroupVariable];
|
|
|
|
|
$dataVariable = (is_array($dataVariable))? $dataVariable : trim($dataVariable);
|
|
|
|
|
|
|
|
|
|
if (!empty($dataVariable)) {
|
2018-07-31 08:45:54 -04:00
|
|
|
//@todo, will be deprecate the command database-generate-self-service-by-value
|
2018-08-02 08:00:09 -04:00
|
|
|
$this->create(
|
|
|
|
|
$row["APP_UID"],
|
|
|
|
|
$row["DEL_INDEX"],
|
|
|
|
|
[
|
|
|
|
|
"PRO_UID" => $row["PRO_UID"],
|
|
|
|
|
"TAS_UID" => $row["TAS_UID"],
|
|
|
|
|
"GRP_UID" => serialize($dataVariable)
|
|
|
|
|
]
|
|
|
|
|
);
|
2015-09-01 14:57:25 -04:00
|
|
|
}
|
2014-10-27 11:25:17 -04:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
throw $e;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|