PMCORE-927

This commit is contained in:
Paula Quispe
2022-02-14 15:13:40 -04:00
parent 3e25a2752e
commit c71bfb9128
8 changed files with 93 additions and 50 deletions

View File

@@ -130,8 +130,8 @@ class CaseTrackerObject extends BaseCaseTrackerObject
) ); ) );
$oDataset->next(); $oDataset->next();
} }
} catch (Exception $oException) { } catch (Exception $e) {
throw $Exception; throw $e;
} }
} }
@@ -169,7 +169,7 @@ class CaseTrackerObject extends BaseCaseTrackerObject
* *
* @return array * @return array
*/ */
public function verifyDynaformAssigCaseTracker ($dynUid, $proUid) public static function verifyDynaformAssigCaseTracker ($dynUid, $proUid)
{ {
$res = array(); $res = array();
$oCriteria = new Criteria(); $oCriteria = new Criteria();

View File

@@ -705,7 +705,7 @@ class Dynaform extends BaseDynaform
* *
* @return array * @return array
*/ */
public function verifyDynaformAssignDynaform ($dynUid, $proUid) public static function verifyDynaformAssignDynaform ($dynUid, $proUid)
{ {
$res = array(); $res = array();
$oCriteria = new Criteria(); $oCriteria = new Criteria();

View File

@@ -141,7 +141,7 @@ class ObjectPermission extends BaseObjectPermission
* *
* @return array * @return array
*/ */
public function verifyDynaformAssigObjectPermission ($dynUid, $proUid) public static function verifyDynaformAssigObjectPermission ($dynUid, $proUid)
{ {
$res = array(); $res = array();
$oCriteria = new Criteria(); $oCriteria = new Criteria();

View File

@@ -230,8 +230,8 @@ class Step extends BaseStep
$oDataset->next(); $oDataset->next();
$aRow = $oDataset->getRow(); $aRow = $oDataset->getRow();
return (int) $aRow['POSITION']; return (int) $aRow['POSITION'];
} catch (Exception $oException) { } catch (Exception $exception) {
throw $Exception; throw $exception;
} }
} }
@@ -413,7 +413,7 @@ class Step extends BaseStep
* *
* @return array * @return array
*/ */
public function verifyDynaformAssigStep ($dynUid, $proUid) public static function verifyDynaformAssigStep ($dynUid, $proUid)
{ {
$res = array(); $res = array();
$oCriteria = new Criteria(); $oCriteria = new Criteria();
@@ -432,7 +432,7 @@ class Step extends BaseStep
return $res; return $res;
} }
public function getAttribute ($node, $attName) public static function getAttribute ($node, $attName)
{ {
foreach ($node->attributes as $attribute) { foreach ($node->attributes as $attribute) {

View File

@@ -166,8 +166,8 @@ class StepSupervisor extends BaseStepSupervisor
$oDataset->next(); $oDataset->next();
$aRow = $oDataset->getRow(); $aRow = $oDataset->getRow();
return (int) $aRow['POSITION']; return (int) $aRow['POSITION'];
} catch (Exception $oException) { } catch (Exception $e) {
throw $Exception; throw $e;
} }
} }
@@ -189,8 +189,8 @@ class StepSupervisor extends BaseStepSupervisor
$oDataset->next(); $oDataset->next();
$aRow = $oDataset->getRow(); $aRow = $oDataset->getRow();
return (int) $aRow['POSITION']; return (int) $aRow['POSITION'];
} catch (Exception $oException) { } catch (Exception $e) {
throw $Exception; throw $e;
} }
} }
@@ -217,8 +217,8 @@ class StepSupervisor extends BaseStepSupervisor
$this->update( array ('STEP_UID' => $aRow['STEP_UID'],'PRO_UID' => $aRow['PRO_UID'],'STEP_TYPE_OBJ' => $aRow['STEP_TYPE_OBJ'],'STEP_UID_OBJ' => $aRow['STEP_UID_OBJ'],'STEP_POSITION' => $aRow['STEP_POSITION'] - 1 $this->update( array ('STEP_UID' => $aRow['STEP_UID'],'PRO_UID' => $aRow['PRO_UID'],'STEP_TYPE_OBJ' => $aRow['STEP_TYPE_OBJ'],'STEP_UID_OBJ' => $aRow['STEP_UID_OBJ'],'STEP_POSITION' => $aRow['STEP_POSITION'] - 1
) ); ) );
} }
} catch (Exception $oException) { } catch (Exception $e) {
throw $Exception; throw $e;
} }
} }
@@ -254,7 +254,7 @@ class StepSupervisor extends BaseStepSupervisor
* *
* @return array * @return array
*/ */
public function verifyDynaformAssigStepSupervisor ($dynUid, $proUid) public static function verifyDynaformAssigStepSupervisor ($dynUid, $proUid)
{ {
$res = array(); $res = array();
$oCriteria = new Criteria(); $oCriteria = new Criteria();

View File

@@ -7181,6 +7181,36 @@ msgstr "Copy/Import Dynaform"
msgid "Select the dynaform you want to copy/import." msgid "Select the dynaform you want to copy/import."
msgstr "Select the dynaform you want to copy/import." msgstr "Select the dynaform you want to copy/import."
# TRANSLATION
# LABEL/ID_DYNAFORM_DEPENDS_DYNAFORMS
#: LABEL/ID_DYNAFORM_DEPENDS_DYNAFORMS
msgid "({0}) Depends in dynaform"
msgstr "({0}) Depends in dynaform"
# TRANSLATION
# LABEL/ID_DYNAFORM_DEPENDS_CASE_TRACKER
#: LABEL/ID_DYNAFORM_DEPENDS_CASE_TRACKER
msgid "({0}) Depends in case traker"
msgstr "({0}) Depends in case traker"
# TRANSLATION
# LABEL/ID_DYNAFORM_DEPENDS_PERMISSIONS
#: LABEL/ID_DYNAFORM_DEPENDS_PERMISSIONS
msgid "({0}) Depends in permissions"
msgstr "({0}) Depends in permissions"
# TRANSLATION
# LABEL/ID_DYNAFORM_DEPENDS_STEPS
#: LABEL/ID_DYNAFORM_DEPENDS_STEPS
msgid "({0}) Depends in steps"
msgstr "({0}) Depends in steps"
# TRANSLATION
# LABEL/ID_DYNAFORM_DEPENDS_STEPS_SUPERVISOR
#: LABEL/ID_DYNAFORM_DEPENDS_STEPS_SUPERVISOR
msgid "({0}) Depends in steps supervisor"
msgstr "({0}) Depends in steps supervisor"
# TRANSLATION # TRANSLATION
# LABEL/ID_DYNAFORM_DOES_NOT_EXIST # LABEL/ID_DYNAFORM_DOES_NOT_EXIST
#: LABEL/ID_DYNAFORM_DOES_NOT_EXIST #: LABEL/ID_DYNAFORM_DOES_NOT_EXIST

View File

@@ -58034,6 +58034,11 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_DYNAFORM_ASSIGN_FAILED','en','Failed saving DynaForm assigned to the process.','2015-01-16') , ( 'LABEL','ID_DYNAFORM_ASSIGN_FAILED','en','Failed saving DynaForm assigned to the process.','2015-01-16') ,
( 'LABEL','ID_DYNAFORM_COPY','en','Copy/Import Dynaform','2014-01-15') , ( 'LABEL','ID_DYNAFORM_COPY','en','Copy/Import Dynaform','2014-01-15') ,
( 'LABEL','ID_DYNAFORM_COPY_REQUIRED','en','Select the dynaform you want to copy/import.','2014-01-15') , ( 'LABEL','ID_DYNAFORM_COPY_REQUIRED','en','Select the dynaform you want to copy/import.','2014-01-15') ,
( 'LABEL','ID_DYNAFORM_DEPENDS_DYNAFORMS','en','({0}) Depends in dynaform','2022-02-15') ,
( 'LABEL','ID_DYNAFORM_DEPENDS_CASE_TRACKER','en','({0}) Depends in case traker','2022-02-15') ,
( 'LABEL','ID_DYNAFORM_DEPENDS_PERMISSIONS','en','({0}) Depends in permissions','2022-02-15') ,
( 'LABEL','ID_DYNAFORM_DEPENDS_STEPS','en','({0}) Depends in steps','2022-02-15') ,
( 'LABEL','ID_DYNAFORM_DEPENDS_STEPS_SUPERVISOR','en','({0}) Depends in steps supervisor','2022-02-15') ,
( 'LABEL','ID_DYNAFORM_DOES_NOT_EXIST','en','The DynaForm with {0}: {1} does not exist.','2014-05-20') , ( 'LABEL','ID_DYNAFORM_DOES_NOT_EXIST','en','The DynaForm with {0}: {1} does not exist.','2014-05-20') ,
( 'LABEL','ID_DYNAFORM_EDITOR','en','DynaForm Editor','2014-01-15') , ( 'LABEL','ID_DYNAFORM_EDITOR','en','DynaForm Editor','2014-01-15') ,
( 'LABEL','ID_DYNAFORM_EDITOR_LOGIN_AGAIN','en','You have lost your session and you have to login to continue. Please enter your password.','2014-01-15') , ( 'LABEL','ID_DYNAFORM_EDITOR_LOGIN_AGAIN','en','You have lost your session and you have to login to continue. Please enter your password.','2014-01-15') ,

View File

@@ -3,9 +3,18 @@
namespace ProcessMaker\BusinessModel; namespace ProcessMaker\BusinessModel;
use AdditionalTables; use AdditionalTables;
use CaseTrackerObject;
use Criteria;
use Dynaform as ModelDynaform;
use DynaformHandler; use DynaformHandler;
use DynaformPeer;
use Exception; use Exception;
use G; use G;
use ObjectPermission;
use ResultSet;
use Step;
use StepSupervisor;
use PmDynaform; use PmDynaform;
class DynaForm class DynaForm
@@ -139,35 +148,34 @@ class DynaForm
*/ */
public function dynaFormDepends($dynUid, $proUid) public function dynaFormDepends($dynUid, $proUid)
{ {
$oCriteria = new \Criteria(); $oCriteria = new Criteria();
$oCriteria->addSelectColumn(\DynaformPeer::DYN_TYPE); $oCriteria->addSelectColumn(DynaformPeer::DYN_TYPE);
$oCriteria->add(\DynaformPeer::DYN_UID, $dynUid); $oCriteria->add(DynaformPeer::DYN_UID, $dynUid);
$oCriteria->add(\DynaformPeer::PRO_UID, $proUid); $oCriteria->add(DynaformPeer::PRO_UID, $proUid);
$oDataset = \DynaformPeer::doSelectRS($oCriteria); $oDataset = DynaformPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next(); $oDataset->next();
$dataDyna = $oDataset->getRow(); $dataDyna = $oDataset->getRow();
if ($dataDyna['DYN_TYPE'] == 'grid') { if ($dataDyna['DYN_TYPE'] == 'grid') {
$formsDepend = array(); $formsDepend = [];
$oCriteria = new Criteria('workflow');
$oCriteria = new \Criteria('workflow'); $oCriteria->addSelectColumn(DynaformPeer::DYN_UID);
$oCriteria->addSelectColumn(\DynaformPeer::DYN_UID); $oCriteria->addSelectColumn(DynaformPeer::DYN_TITLE);
$oCriteria->addSelectColumn(\DynaformPeer::DYN_TITLE); $oCriteria->add(DynaformPeer::PRO_UID, $proUid);
$oCriteria->add(\DynaformPeer::PRO_UID, $proUid); $oCriteria->add(DynaformPeer::DYN_TYPE, "xmlform");
$oCriteria->add(\DynaformPeer::DYN_TYPE, "xmlform"); $oDataset = DynaformPeer::doSelectRS($oCriteria);
$oDataset = \DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($oDataset->next()) { while ($oDataset->next()) {
$dataForms = $oDataset->getRow(); $dataForms = $oDataset->getRow();
$dynHandler = new DynaformHandler(PATH_DYNAFORM . $proUid . PATH_SEP . $dataForms["DYN_UID"] . ".xml"); $dynHandler = new DynaformHandler(PATH_DYNAFORM . $proUid . PATH_SEP . $dataForms["DYN_UID"] . ".xml");
$dynFields = $dynHandler->getFields(); $dynFields = $dynHandler->getFields();
foreach ($dynFields as $field) { foreach ($dynFields as $field) {
$sType = \Step::getAttribute($field, 'type'); $sType = Step::getAttribute($field, 'type');
if ($sType == 'grid') { if ($sType == 'grid') {
$sxmlgrid = \Step::getAttribute($field, 'xmlgrid'); $sxmlgrid = Step::getAttribute($field, 'xmlgrid');
$aGridInfo = explode("/", $sxmlgrid); $aGridInfo = explode("/", $sxmlgrid);
if ($aGridInfo[0] == $proUid && $aGridInfo[1] == $dynUid) { if ($aGridInfo[0] == $proUid && $aGridInfo[1] == $dynUid) {
$formsDepend[] = $dataForms["DYN_TITLE"]; $formsDepend[] = $dataForms["DYN_TITLE"];
@@ -183,9 +191,9 @@ class DynaForm
} }
} else { } else {
$flagDepend = false; $flagDepend = false;
$stepsDepends = \Step::verifyDynaformAssigStep($dynUid, $proUid); $stepsDepends = Step::verifyDynaformAssigStep($dynUid, $proUid);
$messageSteps = '(0) Depends in steps'; $messageSteps = G::LoadTranslation("ID_DYNAFORM_DEPENDS_STEPS", [0]);
if (!empty($stepsDepends)) { if (!empty($stepsDepends)) {
$flagDepend = true; $flagDepend = true;
$countSteps = count($stepsDepends); $countSteps = count($stepsDepends);
@@ -193,41 +201,41 @@ class DynaForm
foreach ($stepsDepends as $value) { foreach ($stepsDepends as $value) {
$messTemp .= ", the task '" . $value['CON_VALUE'] . "' position " . $value['STEP_POSITION']; $messTemp .= ", the task '" . $value['CON_VALUE'] . "' position " . $value['STEP_POSITION'];
} }
$messageSteps = "($countSteps) Depends in steps in" . $messTemp; $messageSteps = G::LoadTranslation("ID_DYNAFORM_DEPENDS_STEPS", [$countSteps]) . ' in ' . $messTemp;
} }
$stepSupervisorsDepends = \StepSupervisor::verifyDynaformAssigStepSupervisor($dynUid, $proUid); $stepSupervisorsDepends = StepSupervisor::verifyDynaformAssigStepSupervisor($dynUid, $proUid);
$messageStepsSupervisors = '(0) Depends in steps supervisor'; $messageStepsSupervisors = G::LoadTranslation("ID_DYNAFORM_DEPENDS_STEPS_SUPERVISOR", [0]);
if (!empty($stepSupervisorsDepends)) { if (!empty($stepSupervisorsDepends)) {
$flagDepend = true; $flagDepend = true;
$countSteps = count($stepSupervisorsDepends); $countSteps = count($stepSupervisorsDepends);
$messageStepsSupervisors = "($countSteps) Depends in steps supervisor"; $messageStepsSupervisors = G::LoadTranslation("ID_DYNAFORM_DEPENDS_STEPS_SUPERVISOR", [$countSteps]);
} }
$objectPermissionDepends = \ObjectPermission::verifyDynaformAssigObjectPermission($dynUid, $proUid); $objectPermissionDepends = ObjectPermission::verifyDynaformAssigObjectPermission($dynUid, $proUid);
$messageObjectPermission = '(0) Depends in permissions'; $messageObjectPermission = G::LoadTranslation("ID_DYNAFORM_DEPENDS_PERMISSIONS", [0]);
if (!empty($objectPermissionDepends)) { if (!empty($objectPermissionDepends)) {
$flagDepend = true; $flagDepend = true;
$countSteps = count($objectPermissionDepends); $countSteps = count($objectPermissionDepends);
$messageObjectPermission = "($countSteps) Depends in permissions"; $messageObjectPermission = G::LoadTranslation("ID_DYNAFORM_DEPENDS_PERMISSIONS", [$countSteps]);
} }
$caseTrackerDepends = \CaseTrackerObject::verifyDynaformAssigCaseTracker($dynUid, $proUid); $caseTrackerDepends = CaseTrackerObject::verifyDynaformAssigCaseTracker($dynUid, $proUid);
$messageCaseTracker = '(0) Depends in case traker'; $messageCaseTracker = G::LoadTranslation("ID_DYNAFORM_DEPENDS_CASE_TRACKER", [0]);
if (!empty($caseTrackerDepends)) { if (!empty($caseTrackerDepends)) {
$flagDepend = true; $flagDepend = true;
$countSteps = count($caseTrackerDepends); $countSteps = count($caseTrackerDepends);
$messageCaseTracker = "($countSteps) Depends in case traker"; $messageCaseTracker = G::LoadTranslation("ID_DYNAFORM_DEPENDS_CASE_TRACKER", [$countSteps]);
} }
$dynaformDepends = \Dynaform::verifyDynaformAssignDynaform($dynUid, $proUid); $dynaformDepends = ModelDynaform::verifyDynaformAssignDynaform($dynUid, $proUid);
$messageDynaform = '(0) Depends in case traker'; $messageDynaform = G::LoadTranslation("ID_DYNAFORM_DEPENDS_DYNAFORMS", [0]);
if (!empty($dynaformDepends)) { if (!empty($dynaformDepends)) {
$flagDepend = true; $flagDepend = true;
$countSteps = count($dynaformDepends); $countSteps = count($dynaformDepends);
$messageDynaform = "($countSteps) Depends in dynaform"; $messageDynaform = G::LoadTranslation("ID_DYNAFORM_DEPENDS_DYNAFORMS", [$countSteps]);
} }
$message = '';
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";
@@ -235,7 +243,7 @@ class DynaForm
$message .= $messageDynaform; $message .= $messageDynaform;
return $message; return $message;
} }
return ''; return $message;
} }
} }