Merge remote branch 'upstream/master'

This commit is contained in:
jennylee
2014-04-29 12:22:37 -04:00
12 changed files with 246 additions and 81 deletions

View File

@@ -33,7 +33,7 @@ class WebApplication
*/ */
public function setRootDir($rootDir) public function setRootDir($rootDir)
{ {
$this->rootDir = $rootDir; $this->rootDir = rtrim($rootDir, DS);
$this->workflowDir = $rootDir . DS . "workflow" . DS; $this->workflowDir = $rootDir . DS . "workflow" . DS;
} }
@@ -160,7 +160,7 @@ class WebApplication
*/ */
header('Access-Control-Allow-Origin: *'); 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 contains directory where Services Classes are allocated
$servicesDir = $this->workflowDir . 'engine' . DS . 'src' . DS . 'ProcessMaker' . DS . 'Services' . DS; $servicesDir = $this->workflowDir . 'engine' . DS . 'src' . DS . 'ProcessMaker' . DS . 'Services' . DS;
@@ -383,7 +383,7 @@ class WebApplication
PATH_RBAC_CORE . PATH_SEPARATOR . PATH_RBAC_CORE . PATH_SEPARATOR .
get_include_path() get_include_path()
); );
///print_r(get_include_path()); die;
/* /*
* Setting Up Workspace * Setting Up Workspace

View File

@@ -31,8 +31,7 @@
require_once 'classes/model/om/BaseRbacUsersPeer.php'; require_once 'classes/model/om/BaseRbacUsersPeer.php';
// include object class // 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. * Skeleton subclass for performing query and update operations on the 'USERS' table.

View File

@@ -30,7 +30,7 @@
require_once 'classes/model/om/BaseUsersRolesPeer.php'; require_once 'classes/model/om/BaseUsersRolesPeer.php';
// include object class // include object class
include_once 'classes/model/UsersRoles.php'; //include_once 'classes/model/UsersRoles.php';
/** /**

View File

@@ -3,7 +3,7 @@
require_once 'propel/util/BasePeer.php'; require_once 'propel/util/BasePeer.php';
// The object class -- needed for instanceof checks in this class. // The object class -- needed for instanceof checks in this class.
// actual class may be a subclass -- as returned by RbacUsersPeer::getOMClass() // 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. * Base static class for performing query and update operations on the 'USERS' table.

View File

@@ -3,7 +3,7 @@
require_once 'propel/util/BasePeer.php'; require_once 'propel/util/BasePeer.php';
// The object class -- needed for instanceof checks in this class. // The object class -- needed for instanceof checks in this class.
// actual class may be a subclass -- as returned by UsersRolesPeer::getOMClass() // 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. * Base static class for performing query and update operations on the 'USERS_ROLES' table.

View File

@@ -1269,7 +1269,12 @@ class adminProxy extends HttpProxyController
$data = array('info' => array()); $data = array('info' => array());
$pmRestClient = OauthClientsPeer::retrieveByPK('x-pm-local-client'); $pmRestClient = OauthClientsPeer::retrieveByPK('x-pm-local-client');
$status = ! empty($pmRestClient); $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( $data['info'] = array(
array( array(

View File

@@ -217,7 +217,7 @@ class CaseScheduler
$oCriteria->add( \UsersPeer::USR_USERNAME, $sWS_USER ); $oCriteria->add( \UsersPeer::USR_USERNAME, $sWS_USER );
$userIsAssigned = \GroupUserPeer::doCount( $oCriteria ); $userIsAssigned = \GroupUserPeer::doCount( $oCriteria );
if (! ($userIsAssigned >= 1)) { 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); $oDataset = \TaskUserPeer::doSelectRS($oCriteria);
@@ -258,7 +258,7 @@ class CaseScheduler
throw (new \Exception( 'Task not found for id: '. $aData['TAS_UID'])); throw (new \Exception( 'Task not found for id: '. $aData['TAS_UID']));
} }
if ($aData['SCH_NAME']=='') { 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'])) { if ($this->existsName($sProcessUID, $aData['SCH_NAME'])) {
throw (new \Exception( 'Duplicate Case Scheduler name')); throw (new \Exception( 'Duplicate Case Scheduler name'));
@@ -273,23 +273,19 @@ class CaseScheduler
if ($sOption != '5') { if ($sOption != '5') {
$pattern="/^([0-1][0-9]|[2][0-3])[\:]([0-5][0-9])$/"; $pattern="/^([0-1][0-9]|[2][0-3])[\:]([0-5][0-9])$/";
if (!preg_match($pattern, $aData['SCH_START_TIME'])) { 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}$/"; $patternDate="/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/";
if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if ($sOption == '1' || $sOption == '2' || $sOption == '3') {
if (!preg_match($patternDate, $aData['SCH_START_DATE'])) { 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'])) { 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'] == "") { 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') { if ($sOption == '2') {
@@ -311,7 +307,6 @@ class CaseScheduler
$sWeeks = ''; $sWeeks = '';
$sMonths = ''; $sMonths = '';
$sStartDay = ''; $sStartDay = '';
$nSW = 0;
$aData['SCH_DAYS_PERFORM_TASK'] = ''; $aData['SCH_DAYS_PERFORM_TASK'] = '';
switch ($sOption) { switch ($sOption) {
case '1': // If the option is zero, set by default 1 case '1': // If the option is zero, set by default 1
@@ -336,7 +331,7 @@ class CaseScheduler
break; break;
case '2': // If the option is zero, set by default 1 case '2': // If the option is zero, set by default 1
if ($aData['SCH_WEEK_DAYS'] == "") { 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 { } else {
$weeks = $aData['SCH_WEEK_DAYS']; $weeks = $aData['SCH_WEEK_DAYS'];
$weeks = explode("|", $weeks); $weeks = explode("|", $weeks);
@@ -344,7 +339,7 @@ class CaseScheduler
if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7") { if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7") {
$aData['SCH_WEEK_DAYS'] = $aData['SCH_WEEK_DAYS']; $aData['SCH_WEEK_DAYS'] = $aData['SCH_WEEK_DAYS'];
} else { } 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']; $nEveryDays = $aData['SCH_EVERY_DAYS'];
} }
$aData['SCH_EVERY_DAYS'] = $nEveryDays; $aData['SCH_EVERY_DAYS'] = $nEveryDays;
$sWeeks = '';
if (! empty( $aData['SCH_WEEK_DAYS'] )) { if (! empty( $aData['SCH_WEEK_DAYS'] )) {
$aWeekDays = $aData['SCH_WEEK_DAYS']; $aWeekDays = $aData['SCH_WEEK_DAYS'];
} }
@@ -365,50 +359,49 @@ class CaseScheduler
case '3': case '3':
$nStartDay = $aData['SCH_START_DAY']; $nStartDay = $aData['SCH_START_DAY'];
if ($nStartDay == "") { 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 ($nStartDay == 1) {
if ($aData['SCH_START_DAY_OPT_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 = $aData['SCH_START_DAY_OPT_1'];
$temp = (int)$temp; $temp = (int)$temp;
if ($temp >= 1 && $temp <= 31) { if ($temp >= 1 && $temp <= 31) {
$aData['SCH_START_DAY_OPT_1'] = $aData['SCH_START_DAY_OPT_1']; $aData['SCH_START_DAY_OPT_1'] = $aData['SCH_START_DAY_OPT_1'];
} else { } 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']; $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_1'];
} else { } else {
if ($aData['SCH_START_DAY_OPT_2'] == "") { 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']; $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_2'];
$optionTwo = $aData['SCH_START_DAY_OPT_2']{0}; $optionTwo = $aData['SCH_START_DAY_OPT_2']{0};
if ($optionTwo == "1" || $optionTwo == "2" || $optionTwo == "3" || $optionTwo == "4" || $optionTwo == "5") { if ($optionTwo == "1" || $optionTwo == "2" || $optionTwo == "3" || $optionTwo == "4" || $optionTwo == "5") {
$aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2'];
} else { } 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}; $pipelineTwo = $aData['SCH_START_DAY_OPT_2']{1};
if ($pipelineTwo == "|") { if ($pipelineTwo == "|") {
$aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2'];
} else { } 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}; $dayTwo = $aData['SCH_START_DAY_OPT_2']{2};
if ($dayTwo == "1" || $dayTwo == "2" || $dayTwo == "3" || $dayTwo == "4" || $dayTwo == "5" || $dayTwo == "6" || $dayTwo == "7") { 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']; $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2'];
} else { } 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 == "") { 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'] == "") { 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'] )) { if (! empty( $aData['SCH_MONTHS'] )) {
$aMonths = $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") { 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']; $aData['SCH_MONTHS'] = $aData['SCH_MONTHS'];
} else { } 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_TIME'] = time();
$aData['SCH_START_DATE'] = $aData['SCH_START_TIME']; $aData['SCH_START_DATE'] = $aData['SCH_START_TIME'];
if ($aData['SCH_REPEAT_EVERY'] == "") { 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])$/"; $patternHour="/^([0-1][0-9]|[2][0-3])[\.]([0-5][0-9])$/";
if (!preg_match($patternHour, $aData['SCH_REPEAT_EVERY'])) { 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; $nextRun = $aData['SCH_REPEAT_EVERY'] * 60 * 60;
$aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY']; $aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY'];
@@ -536,8 +529,8 @@ class CaseScheduler
} }
$oCaseScheduler = new \CaseScheduler(); $oCaseScheduler = new \CaseScheduler();
$aFields = $oCaseScheduler->Load($sSchUID); $aFields = $oCaseScheduler->Load($sSchUID);
$sOption = $aFields['SCH_OPTION']; //$sOption = $aFields['SCH_OPTION'];
$aData['SCH_OPTION'] = $sOption; $sOption = $aData['SCH_OPTION'];
$aData['sch_repeat_stop_if_running'] = '0'; $aData['sch_repeat_stop_if_running'] = '0';
$aData['case_sh_plugin_uid'] = null; $aData['case_sh_plugin_uid'] = null;
$aData = array_change_key_case($aData, CASE_UPPER); $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'])); throw (new \Exception( 'Task not found for id: '. $aData['TAS_UID']));
} }
if ($aData['SCH_NAME']=='') { 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'])) { if ($this->existsNameUpdate($sSchUID, $aData['SCH_NAME'])) {
throw (new \Exception( 'Duplicate Case Scheduler name')); throw (new \Exception( 'Duplicate Case Scheduler name'));
@@ -564,23 +557,19 @@ class CaseScheduler
if ($sOption != '5') { if ($sOption != '5') {
$pattern="/^([0-1][0-9]|[2][0-3])[\:]([0-5][0-9])$/"; $pattern="/^([0-1][0-9]|[2][0-3])[\:]([0-5][0-9])$/";
if (!preg_match($pattern, $aData['SCH_START_TIME'])) { 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}$/"; $patternDate="/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/";
if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if ($sOption == '1' || $sOption == '2' || $sOption == '3') {
if (!preg_match($patternDate, $aData['SCH_START_DATE'])) { 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'])) { 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'] == "") { 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') { if ($sOption == '2') {
@@ -592,7 +581,7 @@ class CaseScheduler
$aData['SCH_UID'] = $sSchUID; $aData['SCH_UID'] = $sSchUID;
$aData['PRO_UID'] = $sProcessUID; $aData['PRO_UID'] = $sProcessUID;
if ($aData['SCH_STATE'] == "" || $aData['SCH_STATE'] == null) { 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 { } else {
if ($aData['SCH_STATE'] == 'ACTIVE') { if ($aData['SCH_STATE'] == 'ACTIVE') {
$aData['SCH_LAST_STATE'] = 'CREATED'; $aData['SCH_LAST_STATE'] = 'CREATED';
@@ -609,7 +598,6 @@ class CaseScheduler
$sWeeks = ''; $sWeeks = '';
$sMonths = ''; $sMonths = '';
$sStartDay = ''; $sStartDay = '';
$nSW = 0;
$aData['SCH_DAYS_PERFORM_TASK'] = ''; $aData['SCH_DAYS_PERFORM_TASK'] = '';
switch ($sOption) { switch ($sOption) {
case '1': // If the option is zero, set by default 1 case '1': // If the option is zero, set by default 1
@@ -634,7 +622,7 @@ class CaseScheduler
break; break;
case '2': // If the option is zero, set by default 1 case '2': // If the option is zero, set by default 1
if ($aData['SCH_WEEK_DAYS'] == "") { 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 { } else {
$weeks = $aData['SCH_WEEK_DAYS']; $weeks = $aData['SCH_WEEK_DAYS'];
$weeks = explode("|", $weeks); $weeks = explode("|", $weeks);
@@ -642,7 +630,7 @@ class CaseScheduler
if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7") { if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7") {
$aData['SCH_WEEK_DAYS'] = $aData['SCH_WEEK_DAYS']; $aData['SCH_WEEK_DAYS'] = $aData['SCH_WEEK_DAYS'];
} else { } 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']; $nEveryDays = $aData['SCH_EVERY_DAYS'];
} }
$aData['SCH_EVERY_DAYS'] = $nEveryDays; $aData['SCH_EVERY_DAYS'] = $nEveryDays;
$sWeeks = '';
if (! empty( $aData['SCH_WEEK_DAYS'] )) { if (! empty( $aData['SCH_WEEK_DAYS'] )) {
$aWeekDays = $aData['SCH_WEEK_DAYS']; $aWeekDays = $aData['SCH_WEEK_DAYS'];
} }
@@ -663,50 +650,49 @@ class CaseScheduler
case '3': case '3':
$nStartDay = $aData['SCH_START_DAY']; $nStartDay = $aData['SCH_START_DAY'];
if ($nStartDay == "") { 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 ($nStartDay == 1) {
if ($aData['SCH_START_DAY_OPT_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 = $aData['SCH_START_DAY_OPT_1'];
$temp = (int)$temp; $temp = (int)$temp;
if ($temp >= 1 && $temp <= 31) { if ($temp >= 1 && $temp <= 31) {
$aData['SCH_START_DAY_OPT_1'] = $aData['SCH_START_DAY_OPT_1']; $aData['SCH_START_DAY_OPT_1'] = $aData['SCH_START_DAY_OPT_1'];
} else { } 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']; $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_1'];
} else { } else {
if ($aData['SCH_START_DAY_OPT_2'] == "") { 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']; $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_2'];
$optionTwo = $aData['SCH_START_DAY_OPT_2']{0}; $optionTwo = $aData['SCH_START_DAY_OPT_2']{0};
if ($optionTwo == "1" || $optionTwo == "2" || $optionTwo == "3" || $optionTwo == "4" || $optionTwo == "5") { if ($optionTwo == "1" || $optionTwo == "2" || $optionTwo == "3" || $optionTwo == "4" || $optionTwo == "5") {
$aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2'];
} else { } 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}; $pipelineTwo = $aData['SCH_START_DAY_OPT_2']{1};
if ($pipelineTwo == "|") { if ($pipelineTwo == "|") {
$aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2'];
} else { } 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}; $dayTwo = $aData['SCH_START_DAY_OPT_2']{2};
if ($dayTwo == "1" || $dayTwo == "2" || $dayTwo == "3" || $dayTwo == "4" || $dayTwo == "5" || $dayTwo == "6" || $dayTwo == "7") { 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']; $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2'];
} else { } 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 == "") { 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'] == "") { 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'] )) { if (! empty( $aData['SCH_MONTHS'] )) {
$aMonths = $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") { 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']; $aData['SCH_MONTHS'] = $aData['SCH_MONTHS'];
} else { } 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; $sValue = $nStartDay;
break; break;
} }
if (($sOption != '1') && ($sOption != '4') && ($sOption != '5')) { if (($sOption != '1') && ($sOption != '4') && ($sOption != '5')) {
if ($sStartDay == '') { if ($sStartDay == '') {
$sStartDay = date('Y-m-d'); $sStartDay = date('Y-m-d');
@@ -774,11 +761,11 @@ class CaseScheduler
$aData['SCH_START_TIME'] = time(); $aData['SCH_START_TIME'] = time();
$aData['SCH_START_DATE'] = $aData['SCH_START_TIME']; $aData['SCH_START_DATE'] = $aData['SCH_START_TIME'];
if ($aData['SCH_REPEAT_EVERY'] == "") { 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])$/"; $patternHour="/^([0-1][0-9]|[2][0-3])[\.]([0-5][0-9])$/";
if (!preg_match($patternHour, $aData['SCH_REPEAT_EVERY'])) { 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; $nextRun = $aData['SCH_REPEAT_EVERY'] * 60 * 60;
$aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY']; $aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY'];

View File

@@ -456,7 +456,7 @@ class Table
public function saveTableData ($pmt_uid, $pmt_data) public function saveTableData ($pmt_uid, $pmt_data)
{ {
$pmt_uid = $this->validateTabUid($pmt_uid, false); $pmt_uid = $this->validateTabUid($pmt_uid, false);
$rows = $pmt_data['pmt_rows']; $rows = $pmt_data;
$additionalTables = new AdditionalTables(); $additionalTables = new AdditionalTables();
$table = $additionalTables->load($pmt_uid, true); $table = $additionalTables->load($pmt_uid, true);
@@ -570,7 +570,7 @@ class Table
public function updateTableData($pmt_uid, $pmt_data) public function updateTableData($pmt_uid, $pmt_data)
{ {
$pmt_uid = $this->validateTabUid($pmt_uid, false); $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 ) ); $rows = array_merge( array_change_key_case( $rows, CASE_LOWER ), array_change_key_case( $rows, CASE_UPPER ) );
$oAdditionalTables = new AdditionalTables(); $oAdditionalTables = new AdditionalTables();

View File

@@ -226,6 +226,18 @@ class BpmnWorkflow extends Project\Bpmn
if ($event && $event->getEvnType() == "START") { if ($event && $event->getEvnType() == "START") {
$this->wp->setStartTask($data["FLO_ELEMENT_DEST"]); $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;
} }
break; break;
@@ -271,6 +283,25 @@ class BpmnWorkflow extends Project\Bpmn
$this->wp->setStartTask($activity->getActUid(), false); $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" && } elseif ($flow->getFloElementOriginType() == "bpmnActivity" &&
$flow->getFloElementDestType() == "bpmnEvent") { $flow->getFloElementDestType() == "bpmnEvent") {
// verify case: activity -> event(end) // verify case: activity -> event(end)
@@ -306,7 +337,38 @@ class BpmnWorkflow extends Project\Bpmn
throw new \RuntimeException("Required param \"EVN_TYPE\" is missing."); 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() public function mapBpmnFlowsToWorkflowRoutes()

View File

@@ -580,9 +580,10 @@ class Bpmn extends Handler
case "bpmnActivity": $class = "BpmnActivity"; break; case "bpmnActivity": $class = "BpmnActivity"; break;
case "bpmnGateway": $class = "BpmnGateway"; break; case "bpmnGateway": $class = "BpmnGateway"; break;
case "bpmnEvent": $class = "BpmnEvent"; break; case "bpmnEvent": $class = "BpmnEvent"; break;
case "bpmnArtifact": $class = "BpmnArtifact"; break;
default: default:
throw new \RuntimeException(sprintf("Invalid Object type, accepted types: [%s|%s|%s], given %s.", throw new \RuntimeException(sprintf("Invalid Object type, accepted types: [%s|%s|%s|%s], given %s.",
"BpmnActivity", "BpmnBpmnGateway", "BpmnEvent", $data["FLO_ELEMENT_ORIGIN_TYPE"] "BpmnActivity", "BpmnBpmnGateway", "BpmnEvent", "bpmnArtifact", $data["FLO_ELEMENT_ORIGIN_TYPE"]
)); ));
} }
@@ -597,9 +598,10 @@ class Bpmn extends Handler
case "bpmnActivity": $class = "BpmnActivity"; break; case "bpmnActivity": $class = "BpmnActivity"; break;
case "bpmnGateway": $class = "BpmnGateway"; break; case "bpmnGateway": $class = "BpmnGateway"; break;
case "bpmnEvent": $class = "BpmnEvent"; break; case "bpmnEvent": $class = "BpmnEvent"; break;
case "bpmnArtifact": $class = "BpmnArtifact"; break;
default: default:
throw new \RuntimeException(sprintf("Invalid Object type, accepted types: [%s|%s|%s], given %s.", throw new \RuntimeException(sprintf("Invalid Object type, accepted types: [%s|%s|%s|%s], given %s.",
"BpmnActivity", "BpmnBpmnGateway", "BpmnEvent", $data["FLO_ELEMENT_DEST_TYPE"] "BpmnActivity", "BpmnBpmnGateway", "BpmnEvent", "bpmnArtifact", $data["FLO_ELEMENT_DEST_TYPE"]
)); ));
} }

View File

@@ -771,4 +771,120 @@ class Workflow extends Handler
$status = $value ? "DISABLED" : "ACTIVE"; $status = $value ? "DISABLED" : "ACTIVE";
$this->update(array("PRO_STATUS" => $status)); $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;
}
}
} }

View File

@@ -103,7 +103,6 @@ class Pmtable extends Api
* @param string $pmt_uid {@min 1} {@max 32} * @param string $pmt_uid {@min 1} {@max 32}
* *
* @param array $request_data * @param array $request_data
* @param array $pmt_rows {@from body} {@required true}
* @return array * @return array
* *
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com> * @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
@@ -114,8 +113,7 @@ class Pmtable extends Api
*/ */
public function doPostPmTableData( public function doPostPmTableData(
$pmt_uid, $pmt_uid,
$request_data, $request_data
$pmt_rows = ''
) { ) {
try { try {
$oReportTable = new \ProcessMaker\BusinessModel\Table(); $oReportTable = new \ProcessMaker\BusinessModel\Table();
@@ -130,7 +128,6 @@ class Pmtable extends Api
* @param string $pmt_uid {@min 1} {@max 32} * @param string $pmt_uid {@min 1} {@max 32}
* *
* @param array $request_data * @param array $request_data
* @param string $pmt_tab_dsc {@from body}
* @return void * @return void
* *
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com> * @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
@@ -140,8 +137,7 @@ class Pmtable extends Api
*/ */
public function doPutPmTable( public function doPutPmTable(
$pmt_uid, $pmt_uid,
$request_data, $request_data
$pmt_tab_dsc = ''
) { ) {
try { try {
$request_data['pmt_uid'] = $pmt_uid; $request_data['pmt_uid'] = $pmt_uid;
@@ -156,7 +152,6 @@ class Pmtable extends Api
* @param string $pmt_uid {@min 1} {@max 32} * @param string $pmt_uid {@min 1} {@max 32}
* *
* @param array $request_data * @param array $request_data
* @param array $pmt_rows {@from body} {@required true}
* @return array * @return array
* *
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com> * @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
@@ -166,8 +161,7 @@ class Pmtable extends Api
*/ */
public function doPutPmTableData( public function doPutPmTableData(
$pmt_uid, $pmt_uid,
$request_data, $request_data
$pmt_rows = ''
) { ) {
try { try {
$oReportTable = new \ProcessMaker\BusinessModel\Table(); $oReportTable = new \ProcessMaker\BusinessModel\Table();