diff --git a/framework/src/Maveriks/WebApplication.php b/framework/src/Maveriks/WebApplication.php index 5112cf87b..0a931758a 100644 --- a/framework/src/Maveriks/WebApplication.php +++ b/framework/src/Maveriks/WebApplication.php @@ -33,7 +33,7 @@ class WebApplication */ public function setRootDir($rootDir) { - $this->rootDir = $rootDir; + $this->rootDir = rtrim($rootDir, DS); $this->workflowDir = $rootDir . DS . "workflow" . DS; } @@ -160,7 +160,7 @@ class WebApplication */ header('Access-Control-Allow-Origin: *'); - require_once $this->rootDir . "framework/src/Maveriks/Extension/Restler/UploadFormat.php"; + require_once $this->rootDir . "/framework/src/Maveriks/Extension/Restler/UploadFormat.php"; // $servicesDir contains directory where Services Classes are allocated $servicesDir = $this->workflowDir . 'engine' . DS . 'src' . DS . 'ProcessMaker' . DS . 'Services' . DS; @@ -383,7 +383,7 @@ class WebApplication PATH_RBAC_CORE . PATH_SEPARATOR . get_include_path() ); - + ///print_r(get_include_path()); die; /* * Setting Up Workspace diff --git a/rbac/engine/classes/model/RbacUsersPeer.php b/rbac/engine/classes/model/RbacUsersPeer.php index 26d98b455..a417b1d7b 100755 --- a/rbac/engine/classes/model/RbacUsersPeer.php +++ b/rbac/engine/classes/model/RbacUsersPeer.php @@ -31,8 +31,7 @@ require_once 'classes/model/om/BaseRbacUsersPeer.php'; // include object class - include_once 'classes/model/RbacUsers.php'; - + //include_once 'classes/model/RbacUsers.php'; /** * Skeleton subclass for performing query and update operations on the 'USERS' table. diff --git a/rbac/engine/classes/model/UsersRolesPeer.php b/rbac/engine/classes/model/UsersRolesPeer.php index 50086ae93..f91079fab 100755 --- a/rbac/engine/classes/model/UsersRolesPeer.php +++ b/rbac/engine/classes/model/UsersRolesPeer.php @@ -30,7 +30,7 @@ require_once 'classes/model/om/BaseUsersRolesPeer.php'; // include object class - include_once 'classes/model/UsersRoles.php'; + //include_once 'classes/model/UsersRoles.php'; /** diff --git a/rbac/engine/classes/model/om/BaseRbacUsersPeer.php b/rbac/engine/classes/model/om/BaseRbacUsersPeer.php index 373bf685b..8a917aea0 100755 --- a/rbac/engine/classes/model/om/BaseRbacUsersPeer.php +++ b/rbac/engine/classes/model/om/BaseRbacUsersPeer.php @@ -3,7 +3,7 @@ require_once 'propel/util/BasePeer.php'; // The object class -- needed for instanceof checks in this class. // actual class may be a subclass -- as returned by RbacUsersPeer::getOMClass() -include_once 'classes/model/RbacUsers.php'; +//include_once 'classes/model/RbacUsers.php'; /** * Base static class for performing query and update operations on the 'USERS' table. diff --git a/rbac/engine/classes/model/om/BaseUsersRolesPeer.php b/rbac/engine/classes/model/om/BaseUsersRolesPeer.php index 083cb396b..a878c6c4c 100755 --- a/rbac/engine/classes/model/om/BaseUsersRolesPeer.php +++ b/rbac/engine/classes/model/om/BaseUsersRolesPeer.php @@ -3,7 +3,7 @@ require_once 'propel/util/BasePeer.php'; // The object class -- needed for instanceof checks in this class. // actual class may be a subclass -- as returned by UsersRolesPeer::getOMClass() -include_once 'classes/model/UsersRoles.php'; +//include_once 'classes/model/UsersRoles.php'; /** * Base static class for performing query and update operations on the 'USERS_ROLES' table. diff --git a/workflow/engine/controllers/adminProxy.php b/workflow/engine/controllers/adminProxy.php index eec58ac5d..fa21a0648 100644 --- a/workflow/engine/controllers/adminProxy.php +++ b/workflow/engine/controllers/adminProxy.php @@ -1269,7 +1269,12 @@ class adminProxy extends HttpProxyController $data = array('info' => array()); $pmRestClient = OauthClientsPeer::retrieveByPK('x-pm-local-client'); $status = ! empty($pmRestClient); - $row = $pmRestClient->toArray(BasePeer::TYPE_FIELDNAME); + + if ($status) { + $row = $pmRestClient->toArray(BasePeer::TYPE_FIELDNAME); + } else { + $row = array("CLIENT_ID" => ''); + } $data['info'] = array( array( diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php b/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php index a6bfff44d..2993c74e1 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php @@ -217,7 +217,7 @@ class CaseScheduler $oCriteria->add( \UsersPeer::USR_USERNAME, $sWS_USER ); $userIsAssigned = \GroupUserPeer::doCount( $oCriteria ); if (! ($userIsAssigned >= 1)) { - throw (new \Exception( "The User \'" . $sWS_USER . "\' doesn't have the activity \'" . $sTASKS . "\' assigned")); + throw (new \Exception( "The User " . $sWS_USER . " doesn't have the activity " . $sTASKS . " assigned")); } } $oDataset = \TaskUserPeer::doSelectRS($oCriteria); @@ -258,7 +258,7 @@ class CaseScheduler throw (new \Exception( 'Task not found for id: '. $aData['TAS_UID'])); } if ($aData['SCH_NAME']=='') { - throw (new \Exception( '\'sch_name\' can\'t be empty')); + throw (new \Exception( 'sch_name can not be empty')); } if ($this->existsName($sProcessUID, $aData['SCH_NAME'])) { throw (new \Exception( 'Duplicate Case Scheduler name')); @@ -273,23 +273,19 @@ class CaseScheduler if ($sOption != '5') { $pattern="/^([0-1][0-9]|[2][0-3])[\:]([0-5][0-9])$/"; if (!preg_match($pattern, $aData['SCH_START_TIME'])) { - throw (new \Exception( 'Invalid value specified for \'sch_start_time\'. Expecting time in HH:MM format (The time can not be increased to 23:59)')); + throw (new \Exception( 'Invalid value specified for sch_start_time. Expecting time in HH:MM format (The time can not be increased to 23:59)')); } } $patternDate="/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/"; if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if (!preg_match($patternDate, $aData['SCH_START_DATE'])) { - throw (new \Exception( 'Invalid value specified for \'sch_start_date\'. Expecting date in \'YYYY-MM-DD\' format, such as \'2014-01-01\'')); + throw (new \Exception( 'Invalid value specified for sch_start_date. Expecting date in YYYY-MM-DD format, such as 2014-01-01')); } - } - if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if (!preg_match($patternDate, $aData['SCH_END_DATE'])) { - throw (new \Exception( 'Invalid value specified for \'sch_end_date\'. Expecting date in \'YYYY-MM-DD\' format, such as \'2014-01-01\'')); + throw (new \Exception( 'Invalid value specified for sch_end_date. Expecting date in YYYY-MM-DD format, such as 2014-01-01')); } - } - if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if ($aData['SCH_START_DATE'] == "") { - throw (new \Exception( '\'sch_start_date\' can\'t be null')); + throw (new \Exception( 'sch_start_date can not be null')); } } if ($sOption == '2') { @@ -311,7 +307,6 @@ class CaseScheduler $sWeeks = ''; $sMonths = ''; $sStartDay = ''; - $nSW = 0; $aData['SCH_DAYS_PERFORM_TASK'] = ''; switch ($sOption) { case '1': // If the option is zero, set by default 1 @@ -336,7 +331,7 @@ class CaseScheduler break; case '2': // If the option is zero, set by default 1 if ($aData['SCH_WEEK_DAYS'] == "") { - throw (new \Exception( '\'sch_week_days\' can\'t be null')); + throw (new \Exception( 'sch_week_days can not be null')); } else { $weeks = $aData['SCH_WEEK_DAYS']; $weeks = explode("|", $weeks); @@ -344,7 +339,7 @@ class CaseScheduler if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7") { $aData['SCH_WEEK_DAYS'] = $aData['SCH_WEEK_DAYS']; } else { - throw (new \Exception( 'Invalid value specified for \'sch_week_days\'')); + throw (new \Exception( 'Invalid value specified for sch_week_days')); } } } @@ -355,7 +350,6 @@ class CaseScheduler $nEveryDays = $aData['SCH_EVERY_DAYS']; } $aData['SCH_EVERY_DAYS'] = $nEveryDays; - $sWeeks = ''; if (! empty( $aData['SCH_WEEK_DAYS'] )) { $aWeekDays = $aData['SCH_WEEK_DAYS']; } @@ -365,50 +359,49 @@ class CaseScheduler case '3': $nStartDay = $aData['SCH_START_DAY']; if ($nStartDay == "") { - throw (new \Exception( '\'sch_start_day\' can\'t be null')); + throw (new \Exception( 'sch_start_day can not be null')); } if ($nStartDay == 1) { if ($aData['SCH_START_DAY_OPT_1'] == "") { - throw (new \Exception( '\'sch_start_day_opt_1\' can\'t be null')); + throw (new \Exception( 'sch_start_day_opt_1 can not be null')); } $temp = $aData['SCH_START_DAY_OPT_1']; $temp = (int)$temp; if ($temp >= 1 && $temp <= 31) { $aData['SCH_START_DAY_OPT_1'] = $aData['SCH_START_DAY_OPT_1']; } else { - throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_1\'. Must be between 1 and 31')); + throw (new \Exception( 'Invalid value specified for sch_start_day_opt_1. Must be between 1 and 31')); } $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_1']; } else { if ($aData['SCH_START_DAY_OPT_2'] == "") { - throw (new \Exception( '\'sch_start_day_opt_2\' can\'t be null')); + throw (new \Exception( 'sch_start_day_opt_2 can not be null')); } $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_2']; $optionTwo = $aData['SCH_START_DAY_OPT_2']{0}; if ($optionTwo == "1" || $optionTwo == "2" || $optionTwo == "3" || $optionTwo == "4" || $optionTwo == "5") { $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; } else { - throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); + throw (new \Exception( 'Invalid value specified for sch_start_day_opt_2')); } $pipelineTwo = $aData['SCH_START_DAY_OPT_2']{1}; if ($pipelineTwo == "|") { $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; } else { - throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); + throw (new \Exception( 'Invalid value specified for sch_start_day_opt_2')); } $dayTwo = $aData['SCH_START_DAY_OPT_2']{2}; if ($dayTwo == "1" || $dayTwo == "2" || $dayTwo == "3" || $dayTwo == "4" || $dayTwo == "5" || $dayTwo == "6" || $dayTwo == "7") { $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; } else { - throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); + throw (new \Exception( 'Invalid value specified for sch_start_day_opt_2')); } } if ($nStartDay == "") { - throw (new \Exception( '\'sch_start_day\' can\'t be null')); + throw (new \Exception( 'sch_start_day can not be null')); } - $sMonths = ''; if ($aData['SCH_MONTHS'] == "") { - throw (new \Exception( '\'sch_months\' can\'t be null')); + throw (new \Exception( 'sch_months can not be null')); } if (! empty( $aData['SCH_MONTHS'] )) { $aMonths = $aData['SCH_MONTHS']; @@ -417,7 +410,7 @@ class CaseScheduler if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7"|| $row == "8" || $row == "9" || $row == "10"|| $row == "11" || $row == "12") { $aData['SCH_MONTHS'] = $aData['SCH_MONTHS']; } else { - throw (new \Exception( 'Invalid value specified for \'sch_months\'')); + throw (new \Exception( 'Invalid value specified for sch_months')); } } } @@ -476,11 +469,11 @@ class CaseScheduler $aData['SCH_START_TIME'] = time(); $aData['SCH_START_DATE'] = $aData['SCH_START_TIME']; if ($aData['SCH_REPEAT_EVERY'] == "") { - throw (new \Exception( '\'sch_repeat_every\' can\'t be null')); + throw (new \Exception( 'sch_repeat_every can not be null')); } $patternHour="/^([0-1][0-9]|[2][0-3])[\.]([0-5][0-9])$/"; if (!preg_match($patternHour, $aData['SCH_REPEAT_EVERY'])) { - throw (new \Exception( 'Invalid value specified for \'sch_repeat_every\'. Expecting time in HH.MM format')); + throw (new \Exception( 'Invalid value specified for sch_repeat_every. Expecting time in HH.MM format')); } $nextRun = $aData['SCH_REPEAT_EVERY'] * 60 * 60; $aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY']; @@ -536,8 +529,8 @@ class CaseScheduler } $oCaseScheduler = new \CaseScheduler(); $aFields = $oCaseScheduler->Load($sSchUID); - $sOption = $aFields['SCH_OPTION']; - $aData['SCH_OPTION'] = $sOption; + //$sOption = $aFields['SCH_OPTION']; + $sOption = $aData['SCH_OPTION']; $aData['sch_repeat_stop_if_running'] = '0'; $aData['case_sh_plugin_uid'] = null; $aData = array_change_key_case($aData, CASE_UPPER); @@ -549,7 +542,7 @@ class CaseScheduler throw (new \Exception( 'Task not found for id: '. $aData['TAS_UID'])); } if ($aData['SCH_NAME']=='') { - throw (new \Exception( '\'sch_name\' can\'t be empty')); + throw (new \Exception( 'sch_name can not be empty')); } if ($this->existsNameUpdate($sSchUID, $aData['SCH_NAME'])) { throw (new \Exception( 'Duplicate Case Scheduler name')); @@ -564,23 +557,19 @@ class CaseScheduler if ($sOption != '5') { $pattern="/^([0-1][0-9]|[2][0-3])[\:]([0-5][0-9])$/"; if (!preg_match($pattern, $aData['SCH_START_TIME'])) { - throw (new \Exception( 'Invalid value specified for \'sch_start_time\'. Expecting time in HH:MM format (The time can not be increased to 23:59)')); + throw (new \Exception( 'Invalid value specified for sch_start_time. Expecting time in HH:MM format (The time can not be increased to 23:59)')); } } $patternDate="/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/"; if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if (!preg_match($patternDate, $aData['SCH_START_DATE'])) { - throw (new \Exception( 'Invalid value specified for \'sch_start_date\'. Expecting date in \'YYYY-MM-DD\' format, such as \'2014-01-01\'')); + throw (new \Exception( 'Invalid value specified for sch_start_date. Expecting date in YYYY-MM-DD format, such as 2014-01-01')); } - } - if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if (!preg_match($patternDate, $aData['SCH_END_DATE'])) { - throw (new \Exception( 'Invalid value specified for \'sch_end_date\'. Expecting date in \'YYYY-MM-DD\' format, such as \'2014-01-01\'')); + throw (new \Exception( 'Invalid value specified for sch_end_date. Expecting date in YYYY-MM-DD format, such as 2014-01-01')); } - } - if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if ($aData['SCH_START_DATE'] == "") { - throw (new \Exception( '\'sch_start_date\' can\'t be null')); + throw (new \Exception( 'sch_start_date can not be null')); } } if ($sOption == '2') { @@ -592,7 +581,7 @@ class CaseScheduler $aData['SCH_UID'] = $sSchUID; $aData['PRO_UID'] = $sProcessUID; if ($aData['SCH_STATE'] == "" || $aData['SCH_STATE'] == null) { - throw (new \Exception( '\'sch_state\' can\'t be null')); + throw (new \Exception( 'sch_state can not be null')); } else { if ($aData['SCH_STATE'] == 'ACTIVE') { $aData['SCH_LAST_STATE'] = 'CREATED'; @@ -609,7 +598,6 @@ class CaseScheduler $sWeeks = ''; $sMonths = ''; $sStartDay = ''; - $nSW = 0; $aData['SCH_DAYS_PERFORM_TASK'] = ''; switch ($sOption) { case '1': // If the option is zero, set by default 1 @@ -634,7 +622,7 @@ class CaseScheduler break; case '2': // If the option is zero, set by default 1 if ($aData['SCH_WEEK_DAYS'] == "") { - throw (new \Exception( '\'sch_week_days\' can\'t be null')); + throw (new \Exception( 'sch_week_days can not be null')); } else { $weeks = $aData['SCH_WEEK_DAYS']; $weeks = explode("|", $weeks); @@ -642,7 +630,7 @@ class CaseScheduler if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7") { $aData['SCH_WEEK_DAYS'] = $aData['SCH_WEEK_DAYS']; } else { - throw (new \Exception( 'Invalid value specified for \'sch_week_days\'')); + throw (new \Exception( 'Invalid value specified for sch_week_days')); } } } @@ -653,7 +641,6 @@ class CaseScheduler $nEveryDays = $aData['SCH_EVERY_DAYS']; } $aData['SCH_EVERY_DAYS'] = $nEveryDays; - $sWeeks = ''; if (! empty( $aData['SCH_WEEK_DAYS'] )) { $aWeekDays = $aData['SCH_WEEK_DAYS']; } @@ -663,50 +650,49 @@ class CaseScheduler case '3': $nStartDay = $aData['SCH_START_DAY']; if ($nStartDay == "") { - throw (new \Exception( '\'sch_start_day\' can\'t be null')); + throw (new \Exception( 'sch_start_day can not be null')); } if ($nStartDay == 1) { if ($aData['SCH_START_DAY_OPT_1'] == "") { - throw (new \Exception( '\'sch_start_day_opt_1\' can\'t be null')); + throw (new \Exception( 'sch_start_day_opt_1 can not be null')); } $temp = $aData['SCH_START_DAY_OPT_1']; $temp = (int)$temp; if ($temp >= 1 && $temp <= 31) { $aData['SCH_START_DAY_OPT_1'] = $aData['SCH_START_DAY_OPT_1']; } else { - throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_1\'. Must be between 1 and 31')); + throw (new \Exception( 'Invalid value specified for sch_start_day_opt_1. Must be between 1 and 31')); } $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_1']; } else { if ($aData['SCH_START_DAY_OPT_2'] == "") { - throw (new \Exception( '\'sch_start_day_opt_2\' can\'t be null')); + throw (new \Exception( 'sch_start_day_opt_2 can not be null')); } $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_2']; $optionTwo = $aData['SCH_START_DAY_OPT_2']{0}; if ($optionTwo == "1" || $optionTwo == "2" || $optionTwo == "3" || $optionTwo == "4" || $optionTwo == "5") { $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; } else { - throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); + throw (new \Exception( 'Invalid value specified for sch_start_day_opt_2')); } $pipelineTwo = $aData['SCH_START_DAY_OPT_2']{1}; if ($pipelineTwo == "|") { $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; } else { - throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); + throw (new \Exception( 'Invalid value specified for sch_start_day_opt_2')); } $dayTwo = $aData['SCH_START_DAY_OPT_2']{2}; if ($dayTwo == "1" || $dayTwo == "2" || $dayTwo == "3" || $dayTwo == "4" || $dayTwo == "5" || $dayTwo == "6" || $dayTwo == "7") { $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; } else { - throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); + throw (new \Exception( 'Invalid value specified for sch_start_day_opt_2')); } } if ($nStartDay == "") { - throw (new \Exception( '\'sch_start_day\' can\'t be null')); + throw (new \Exception( 'sch_start_day can not be null')); } - $sMonths = ''; if ($aData['SCH_MONTHS'] == "") { - throw (new \Exception( '\'sch_months\' can\'t be null')); + throw (new \Exception( 'sch_months can not be null')); } if (! empty( $aData['SCH_MONTHS'] )) { $aMonths = $aData['SCH_MONTHS']; @@ -715,7 +701,7 @@ class CaseScheduler if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7"|| $row == "8" || $row == "9" || $row == "10"|| $row == "11" || $row == "12") { $aData['SCH_MONTHS'] = $aData['SCH_MONTHS']; } else { - throw (new \Exception( 'Invalid value specified for \'sch_months\'')); + throw (new \Exception( 'Invalid value specified for sch_months')); } } } @@ -724,6 +710,7 @@ class CaseScheduler $sValue = $nStartDay; break; } + if (($sOption != '1') && ($sOption != '4') && ($sOption != '5')) { if ($sStartDay == '') { $sStartDay = date('Y-m-d'); @@ -774,11 +761,11 @@ class CaseScheduler $aData['SCH_START_TIME'] = time(); $aData['SCH_START_DATE'] = $aData['SCH_START_TIME']; if ($aData['SCH_REPEAT_EVERY'] == "") { - throw (new \Exception( '\'sch_repeat_every\' can\'t be null')); + throw (new \Exception( 'sch_repeat_every can not be null')); } $patternHour="/^([0-1][0-9]|[2][0-3])[\.]([0-5][0-9])$/"; if (!preg_match($patternHour, $aData['SCH_REPEAT_EVERY'])) { - throw (new \Exception( 'Invalid value specified for \'sch_repeat_every\'. Expecting time in HH.MM format')); + throw (new \Exception( 'Invalid value specified for sch_repeat_every. Expecting time in HH.MM format')); } $nextRun = $aData['SCH_REPEAT_EVERY'] * 60 * 60; $aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY']; diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Table.php b/workflow/engine/src/ProcessMaker/BusinessModel/Table.php index d56e90dfc..9904fd5c2 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Table.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Table.php @@ -456,7 +456,7 @@ class Table public function saveTableData ($pmt_uid, $pmt_data) { $pmt_uid = $this->validateTabUid($pmt_uid, false); - $rows = $pmt_data['pmt_rows']; + $rows = $pmt_data; $additionalTables = new AdditionalTables(); $table = $additionalTables->load($pmt_uid, true); @@ -570,7 +570,7 @@ class Table public function updateTableData($pmt_uid, $pmt_data) { $pmt_uid = $this->validateTabUid($pmt_uid, false); - $rows = $pmt_data['pmt_rows']; + $rows = $pmt_data; $rows = array_merge( array_change_key_case( $rows, CASE_LOWER ), array_change_key_case( $rows, CASE_UPPER ) ); $oAdditionalTables = new AdditionalTables(); diff --git a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php index 45cd4f6a0..eee0bf7b2 100644 --- a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php @@ -226,6 +226,18 @@ class BpmnWorkflow extends Project\Bpmn if ($event && $event->getEvnType() == "START") { $this->wp->setStartTask($data["FLO_ELEMENT_DEST"]); } + + // update case scheduler + if ($event && $event->getEvnType() == "START" && $event->getEvnMarker() == "TIMER") { + $aData = array('TAS_UID'=>$data["FLO_ELEMENT_DEST"], 'SCH_UID'=>$data["FLO_ELEMENT_ORIGIN"]); + $this->wp->updateCaseScheduler($aData); + } + + // update web entry + if ($event && $event->getEvnType() == "START" && $event->getEvnMarker() == "MESSAGE") { + $aData = array('TAS_UID'=>$data["FLO_ELEMENT_DEST"], 'WE_UID'=>$data["FLO_ELEMENT_ORIGIN"]); + $this->wp->updateWebEntry($aData); + } break; } break; @@ -271,6 +283,25 @@ class BpmnWorkflow extends Project\Bpmn $this->wp->setStartTask($activity->getActUid(), false); } } + + // update case scheduler + if (! is_null($event) && $event->getEvnType() == "START" && $event->getEvnMarker() == "TIMER") { + $aData = array( + 'TAS_UID'=>'', + 'SCH_UID'=>$flow->getFloElementOrigin() + ); + $this->wp->updateCaseScheduler($aData); + } + + // update web entry + if (! is_null($event) && $event->getEvnType() == "START" && $event->getEvnMarker() == "MESSAGE") { + $aData = array( + 'TAS_UID'=>'', + 'WE_UID'=>$flow->getFloElementOrigin() + ); + $this->wp->updateWebEntry($aData); + } + } elseif ($flow->getFloElementOriginType() == "bpmnActivity" && $flow->getFloElementDestType() == "bpmnEvent") { // verify case: activity -> event(end) @@ -306,7 +337,38 @@ class BpmnWorkflow extends Project\Bpmn throw new \RuntimeException("Required param \"EVN_TYPE\" is missing."); } - return parent::addEvent($data); + $eventUid = parent::addEvent($data); + $event = \BpmnEventPeer::retrieveByPK($eventUid); + + // create case scheduler + if ($event && $event->getEvnMarker() == "TIMER" && $event->getEvnType() == "START") { + $this->wp->addCaseScheduler($eventUid); + } + + // create web entry + if ($event && $event->getEvnMarker() == "MESSAGE" && $event->getEvnType() == "START") { + $this->wp->addWebEntry($eventUid); + } + + return $eventUid; + } + + public function removeEvent($data) + { + + $event = \BpmnEventPeer::retrieveByPK($data); + + // delete case scheduler + if ($event && $event->getEvnMarker() == "TIMER" && $event->getEvnType() == "START") { + $this->wp->removeCaseScheduler($data); + } + + // delete web entry + if ($event && $event->getEvnMarker() == "MESSAGE" && $event->getEvnType() == "START") { + $this->wp->removeWebEntry($data); + } + + parent::removeEvent($data); } public function mapBpmnFlowsToWorkflowRoutes() diff --git a/workflow/engine/src/ProcessMaker/Project/Bpmn.php b/workflow/engine/src/ProcessMaker/Project/Bpmn.php index 4e132094a..8e3b477d2 100644 --- a/workflow/engine/src/ProcessMaker/Project/Bpmn.php +++ b/workflow/engine/src/ProcessMaker/Project/Bpmn.php @@ -580,9 +580,10 @@ class Bpmn extends Handler case "bpmnActivity": $class = "BpmnActivity"; break; case "bpmnGateway": $class = "BpmnGateway"; break; case "bpmnEvent": $class = "BpmnEvent"; break; + case "bpmnArtifact": $class = "BpmnArtifact"; break; default: - throw new \RuntimeException(sprintf("Invalid Object type, accepted types: [%s|%s|%s], given %s.", - "BpmnActivity", "BpmnBpmnGateway", "BpmnEvent", $data["FLO_ELEMENT_ORIGIN_TYPE"] + throw new \RuntimeException(sprintf("Invalid Object type, accepted types: [%s|%s|%s|%s], given %s.", + "BpmnActivity", "BpmnBpmnGateway", "BpmnEvent", "bpmnArtifact", $data["FLO_ELEMENT_ORIGIN_TYPE"] )); } @@ -597,9 +598,10 @@ class Bpmn extends Handler case "bpmnActivity": $class = "BpmnActivity"; break; case "bpmnGateway": $class = "BpmnGateway"; break; case "bpmnEvent": $class = "BpmnEvent"; break; + case "bpmnArtifact": $class = "BpmnArtifact"; break; default: - throw new \RuntimeException(sprintf("Invalid Object type, accepted types: [%s|%s|%s], given %s.", - "BpmnActivity", "BpmnBpmnGateway", "BpmnEvent", $data["FLO_ELEMENT_DEST_TYPE"] + throw new \RuntimeException(sprintf("Invalid Object type, accepted types: [%s|%s|%s|%s], given %s.", + "BpmnActivity", "BpmnBpmnGateway", "BpmnEvent", "bpmnArtifact", $data["FLO_ELEMENT_DEST_TYPE"] )); } diff --git a/workflow/engine/src/ProcessMaker/Project/Workflow.php b/workflow/engine/src/ProcessMaker/Project/Workflow.php index f8ac9275c..c484b07c5 100644 --- a/workflow/engine/src/ProcessMaker/Project/Workflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Workflow.php @@ -771,4 +771,120 @@ class Workflow extends Handler $status = $value ? "DISABLED" : "ACTIVE"; $this->update(array("PRO_STATUS" => $status)); } + + public function addCaseScheduler($schUid) + { + try { + $caseScheduler = new \CaseScheduler(); + $data = array( + 'SCH_NAME'=>'', + 'SCH_DEL_USER_NAME'=>'', + 'SCH_DEL_USER_UID'=>'', + 'PRO_UID'=>$this->proUid, + 'TAS_UID'=>'', + 'SCH_TIME_NEXT_RUN'=>date('Y-m-d H:i:s'), + 'SCH_LAST_RUN_TIME'=>NULL, + 'SCH_STATE'=>'', + 'SCH_LAST_STATE'=>'', + 'USR_UID'=>'', + 'SCH_OPTION'=>'', + 'SCH_START_TIME'=>date('Y-m-d H:i:s'), + 'SCH_START_DATE'=>date('Y-m-d H:i:s'), + 'SCH_DAYS_PERFORM_TASK'=>'', + 'SCH_EVERY_DAYS'=>NULL, + 'SCH_WEEK_DAYS'=>'', + 'SCH_START_DAY'=>'', + 'SCH_START_DAY_OPT_1'=>'', + 'SCH_START_DAY_OPT_2'=>'', + 'SCH_MONTHS'=>'', + 'SCH_END_DATE'=>date('Y-m-d H:i:s'), + 'SCH_REPEAT_EVERY'=>'', + 'SCH_REPEAT_STOP_IF_RUNNING'=>'', + 'CASE_SH_PLUGIN_UID'=>NULL, + 'SCH_DEL_USER_PASS'=>'', + 'SCH_UID'=>$schUid, + 'SCH_REPEAT_UNTIL'=>'' + ); + + self::log("Adding Case Scheduler with data: ", $data); + $caseSchedulerUid = $caseScheduler->create($data); + self::log("Adding Case Scheduler success!, created case Scheduler id: ", $caseSchedulerUid); + + return $caseSchedulerUid; + } catch (\Exception $oError) { + throw ($oError); + } + } + + public function removeCaseScheduler($schUid) + { + try { + $caseScheduler = new \CaseScheduler(); + self::log("Remove Case Scheduler: ".$schUid); + $caseScheduler->remove($schUid); + self::log("Remove Case Scheduler Success!"); + } catch (\Exception $e) { + self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString()); + throw $e; + } + } + + public function updateCaseScheduler($data) + { + try { + $caseScheduler = new \CaseScheduler(); + $caseScheduler->update($data); + self::log("Update Case Scheduler Success!"); + } catch (\Exception $e) { + self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString()); + throw $e; + } + } + + public function addWebEntry($weUid) + { + try { + $webEntry = new \WebEntry(); + $webEntryUid = $weUid; + $webEntry->setWeUid($webEntryUid); + $webEntry->setProUid($this->proUid); + $webEntry->setWeMethod(''); + $webEntry->setWeCreateDate(date('Y-m-d H:i:s')); + $webEntry->save(); + + //Return + self::log("Adding Web Entry success!, created Web Entry id: ", $webEntryUid); + return $webEntryUid; + } catch (\Exception $oError) { + throw ($oError); + } + } + + public function removeWebEntry($weUid) + { + try { + $webEntry = new \ProcessMaker\BusinessModel\WebEntry(); + self::log("Remove Web Entry: ".$weUid); + $webEntry->delete($weUid); + self::log("Remove Web Entry Success!"); + } catch (\Exception $e) { + self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString()); + throw $e; + } + } + + public function updateWebEntry($data) + { + try { + $webEntryUid = $data['WE_UID']; + $webEntry = \WebEntryPeer::retrieveByPK($webEntryUid); + $webEntry->fromArray($data, \BasePeer::TYPE_FIELDNAME); + $webEntry->save(); + self::log("Update Web Entry Success!"); + } catch (\Exception $e) { + self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString()); + throw $e; + } + + } } \ No newline at end of file diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Pmtable.php b/workflow/engine/src/ProcessMaker/Services/Api/Pmtable.php index 4bcdac5c2..d75d9ba69 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Pmtable.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Pmtable.php @@ -103,7 +103,6 @@ class Pmtable extends Api * @param string $pmt_uid {@min 1} {@max 32} * * @param array $request_data - * @param array $pmt_rows {@from body} {@required true} * @return array * * @author Brayan Pereyra (Cochalo) @@ -114,8 +113,7 @@ class Pmtable extends Api */ public function doPostPmTableData( $pmt_uid, - $request_data, - $pmt_rows = '' + $request_data ) { try { $oReportTable = new \ProcessMaker\BusinessModel\Table(); @@ -130,7 +128,6 @@ class Pmtable extends Api * @param string $pmt_uid {@min 1} {@max 32} * * @param array $request_data - * @param string $pmt_tab_dsc {@from body} * @return void * * @author Brayan Pereyra (Cochalo) @@ -140,8 +137,7 @@ class Pmtable extends Api */ public function doPutPmTable( $pmt_uid, - $request_data, - $pmt_tab_dsc = '' + $request_data ) { try { $request_data['pmt_uid'] = $pmt_uid; @@ -156,7 +152,6 @@ class Pmtable extends Api * @param string $pmt_uid {@min 1} {@max 32} * * @param array $request_data - * @param array $pmt_rows {@from body} {@required true} * @return array * * @author Brayan Pereyra (Cochalo) @@ -166,8 +161,7 @@ class Pmtable extends Api */ public function doPutPmTableData( $pmt_uid, - $request_data, - $pmt_rows = '' + $request_data ) { try { $oReportTable = new \ProcessMaker\BusinessModel\Table();