@@ -729,5 +729,28 @@ class Dynaform extends BaseDynaform
|
|||||||
}
|
}
|
||||||
return $flag;
|
return $flag;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* verify if a dynaform is assigned some dynaform
|
||||||
|
*
|
||||||
|
* @param string $proUid the uid of the process
|
||||||
|
* @param string $dynUid the uid of the dynaform
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function verifyDynaformAssignDynaform ($dynUid, $proUid)
|
||||||
|
{
|
||||||
|
$res = array();
|
||||||
|
$oCriteria = new Criteria();
|
||||||
|
$oCriteria->addSelectColumn(DynaformPeer::DYN_UID);
|
||||||
|
$oCriteria->add(DynaformPeer::PRO_UID, $proUid);
|
||||||
|
$oCriteria->add(DynaformPeer::DYN_UID, $dynUid, Criteria::NOT_EQUAL);
|
||||||
|
$oCriteria->add(DynaformPeer::DYN_CONTENT, "%" . $dynUid . "%", Criteria::LIKE);
|
||||||
|
$oDataset = DynaformPeer::doSelectRS($oCriteria);
|
||||||
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||||
|
while ($oDataset->next()) {
|
||||||
|
$res[] = $oDataset->getRow();
|
||||||
|
}
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -227,10 +227,19 @@ class DynaForm
|
|||||||
$messageCaseTracker = "($countSteps) Depends in case traker";
|
$messageCaseTracker = "($countSteps) Depends in case traker";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$dynaformDepends = \Dynaform::verifyDynaformAssignDynaform($dynUid, $proUid);
|
||||||
|
$messageDynaform = '(0) Depends in case traker';
|
||||||
|
if (!empty($dynaformDepends)) {
|
||||||
|
$flagDepend = true;
|
||||||
|
$countSteps = count($dynaformDepends);
|
||||||
|
$messageDynaform = "($countSteps) Depends in dynaform";
|
||||||
|
}
|
||||||
|
|
||||||
if ($flagDepend) {
|
if ($flagDepend) {
|
||||||
$message = "You can not delete the dynaform '$dynUid', because it has the following dependencies: \n\n";
|
$message = "You can not delete the dynaform '$dynUid', because it has the following dependencies: \n\n";
|
||||||
$message .= $messageSteps . ".\n" . $messageStepsSupervisors . ".\n";
|
$message .= $messageSteps . ".\n" . $messageStepsSupervisors . ".\n";
|
||||||
$message .= $messageObjectPermission . ".\n" . $messageCaseTracker;
|
$message .= $messageObjectPermission . ".\n" . $messageCaseTracker . "\n";
|
||||||
|
$message .= $messageDynaform;
|
||||||
return $message;
|
return $message;
|
||||||
}
|
}
|
||||||
return '';
|
return '';
|
||||||
@@ -1138,4 +1147,63 @@ class DynaForm
|
|||||||
throw $e;
|
throw $e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get data of a DynaForm History
|
||||||
|
*
|
||||||
|
* @param string $dynaFormUid Unique id of DynaForm
|
||||||
|
*
|
||||||
|
* return array Return an array with data of a DynaForm History
|
||||||
|
*/
|
||||||
|
public function getDynaFormHistory($prj_uid, $dynaFormUid, array $arrayData = array())
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$filter = "";
|
||||||
|
if (isset($arrayData["filter"])) {
|
||||||
|
$filter = $arrayData["filter"];
|
||||||
|
}
|
||||||
|
$start = 0;
|
||||||
|
if (isset($arrayData["start"])) {
|
||||||
|
$start = $arrayData["start"];
|
||||||
|
}
|
||||||
|
$limit = 50;
|
||||||
|
if (isset($arrayData["limit"])) {
|
||||||
|
$limit = $arrayData["limit"];
|
||||||
|
}
|
||||||
|
$this->throwExceptionIfNotExistsDynaForm($dynaFormUid, "", $this->arrayFieldNameForException["dynaFormUid"]);
|
||||||
|
|
||||||
|
$criteria = new \Criteria("workflow");
|
||||||
|
|
||||||
|
$subcriteria = $criteria->getNewCriterion(\AppHistoryPeer::HISTORY_DATE, "%" . $filter . "%", \Criteria::LIKE);
|
||||||
|
|
||||||
|
$criteria->addSelectColumn(\AppHistoryPeer::DYN_UID);
|
||||||
|
$criteria->addSelectColumn(\AppHistoryPeer::HISTORY_DATA);
|
||||||
|
$criteria->addSelectColumn(\AppHistoryPeer::HISTORY_DATE);
|
||||||
|
$criteria->addAnd(\AppHistoryPeer::DYN_UID, $dynaFormUid, \Criteria::EQUAL);
|
||||||
|
$criteria->addAnd(\AppHistoryPeer::OBJ_TYPE, "DYNAFORM", \Criteria::EQUAL);
|
||||||
|
$criteria->addAnd(\AppHistoryPeer::HISTORY_DATA, "%DYN_CONTENT_HISTORY%", \Criteria::LIKE);
|
||||||
|
$criteria->addAnd($subcriteria);
|
||||||
|
|
||||||
|
$criteria->addDescendingOrderByColumn(\AppHistoryPeer::HISTORY_DATE);
|
||||||
|
$criteria->setOffset($start);
|
||||||
|
$criteria->setLimit($limit);
|
||||||
|
|
||||||
|
$rsCriteria = \AppHistoryPeer::doSelectRS($criteria);
|
||||||
|
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||||
|
$data = array();
|
||||||
|
while ($rsCriteria->next()) {
|
||||||
|
$row = $rsCriteria->getRow();
|
||||||
|
$d = @unserialize($row["HISTORY_DATA"]);
|
||||||
|
$data[] = array(
|
||||||
|
"history_date" => $row["HISTORY_DATE"],
|
||||||
|
"dyn_uid" => $row["DYN_UID"],
|
||||||
|
"dyn_content_history" => isset($d["DYN_CONTENT_HISTORY"]) ? $d["DYN_CONTENT_HISTORY"] : ""
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $data;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1298,6 +1298,25 @@ class Workflow extends Handler
|
|||||||
|
|
||||||
$arrayWorkflowData = (array)($workflowData);
|
$arrayWorkflowData = (array)($workflowData);
|
||||||
|
|
||||||
|
foreach ($arrayWorkflowData["dynaforms"] as $key => $value) {
|
||||||
|
if ($arrayWorkflowData["dynaforms"][$key]["DYN_CONTENT"] != "") {
|
||||||
|
$dynaFormContent = $arrayWorkflowData["dynaforms"][$key]["DYN_CONTENT"];
|
||||||
|
|
||||||
|
foreach ($arrayWorkflowData["uid"] as $value2) {
|
||||||
|
$arrayAux = $value2;
|
||||||
|
|
||||||
|
foreach ($arrayAux as $key3 => $value3) {
|
||||||
|
$uidOld = $key3;
|
||||||
|
$uid = $value3;
|
||||||
|
|
||||||
|
$dynaFormContent = str_replace($uidOld, $uid, $dynaFormContent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$arrayWorkflowData["dynaforms"][$key]["DYN_CONTENT"] = $dynaFormContent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//Workflow files
|
//Workflow files
|
||||||
foreach ($arrayWorkflowFile as $key => $value) {
|
foreach ($arrayWorkflowFile as $key => $value) {
|
||||||
$arrayFile = $value;
|
$arrayFile = $value;
|
||||||
|
|||||||
@@ -181,4 +181,25 @@ class DynaForm extends Api
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @url POST /:prj_uid/dynaform/:dyn_uid/history
|
||||||
|
*
|
||||||
|
* @param string $dyn_uid {@min 32}{@max 32}
|
||||||
|
* @param string $prj_uid {@min 32}{@max 32}
|
||||||
|
* @param array $request_data
|
||||||
|
*/
|
||||||
|
public function doGetDynaFormHistory($dyn_uid, $prj_uid, $request_data)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$dynaForm = new \ProcessMaker\BusinessModel\DynaForm();
|
||||||
|
$dynaForm->setFormatFieldNameInUppercase(false);
|
||||||
|
|
||||||
|
$response = $dynaForm->getDynaFormHistory($prj_uid, $dyn_uid, $request_data);
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user