/** * Get process and task properties * * @param object $httpData{type, UID} */ public function getProperties($httpData) { switch ($httpData->type) { case 'process': require_once 'classes/model/ProcessCategory.php'; require_once 'classes/model/CalendarDefinition.php'; G::LoadClass('processMap'); $oProcessMap = new processMap(new DBConnection()); $process = $oProcessMap->editProcessNew($httpData->UID); $category = ProcessCategoryPeer::retrieveByPk($process['PRO_CATEGORY']); $categoryName = is_object($category) ? $category->getCategoryName() : ''; $calendar = CalendarDefinitionPeer::retrieveByPk($process['PRO_CALENDAR']); $calendarName = is_object($calendar) ? $calendar->getCalendarName() : ''; $properties['Title'] = $process['PRO_TITLE']; $properties['Description'] = $process['PRO_DESCRIPTION']; $properties['Calendar'] = $calendarName; $properties['Category'] = $categoryName; $properties['Debug'] = $process['PRO_DEBUG'] == '1' ? true : false; $this->sucess = true; $this->prop = $properties; break; case 'task': require_once 'classes/model/Task.php'; $task = new Task(); $taskData = $task->load($httpData->UID); $properties['Title'] = $taskData['TAS_TITLE']; $properties['Description'] = $taskData['TAS_DESCRIPTION']; $properties['Variable for case priority'] = $taskData['TAS_PRIORITY_VARIABLE']; $properties['Starting Task'] = $taskData['TAS_START'] == 'TRUE' ? true : false; $this->sucess = true; $this->prop = $properties; break; } }
function deleteCalendar($CalendarUid) { //if exists the row in the database propel will update it, otherwise will insert. $tr = CalendarDefinitionPeer::retrieveByPK($CalendarUid); if (!(is_object($tr) && get_class($tr) == 'CalendarDefinition')) { // return false; } $defaultCalendars[] = '00000000000000000000000000000001'; if (in_array($tr->getCalendarUid(), $defaultCalendars)) { return false; } $tr->setCalendarStatus('DELETED'); $tr->setCalendarUpdateDate('now'); if ($tr->validate()) { // we save it, since we get no validation errors, or do whatever else you like. $res = $tr->save(); } else { // Something went wrong. We can now get the validationFailures and handle them. $msg = ''; $validationFailuresArray = $tr->getValidationFailures(); foreach ($validationFailuresArray as $objValidationFailure) { $msg .= $objValidationFailure->getMessage() . "<br/>"; } G::SendMessage("ERROR", $msg); //return array ( 'codError' => -100, 'rowsAffected' => 0, 'message' => $msg ); } //return array ( 'codError' => 0, 'rowsAffected' => $res, 'message' => ''); //to do: uniform coderror structures for all classes //if ( $res['codError'] < 0 ) { // G::SendMessageText ( $res['message'] , 'error' ); //} }
/** * Populates the object using an array. * * This is particularly useful when populating an object from one of the * request arrays (e.g. $_POST). This method goes through the column * names, checking to see whether a matching key exists in populated * array. If so the setByName() method is called for that column. * * You can specify the key type of the array by additionally passing one * of the class type constants TYPE_PHPNAME, TYPE_COLNAME, TYPE_FIELDNAME, * TYPE_NUM. The default key type is the column's phpname (e.g. 'authorId') * * @param array $arr An array to populate the object from. * @param string $keyType The type of keys the array uses. * @return void */ public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) { $keys = CalendarDefinitionPeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setCalendarUid($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setCalendarName($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setCalendarCreateDate($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setCalendarUpdateDate($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { $this->setCalendarWorkDays($arr[$keys[4]]); } if (array_key_exists($keys[5], $arr)) { $this->setCalendarDescription($arr[$keys[5]]); } if (array_key_exists($keys[6], $arr)) { $this->setCalendarStatus($arr[$keys[6]]); } }
/** * Validate the data if they are invalid (INSERT and UPDATE) * * @param string $userUid Unique id of User * @param array $arrayData Data * * return void Throw exception if data has an invalid value */ public function throwExceptionIfDataIsInvalid($userUid, array $arrayData) { try { //Set variables $arrayUserData = ($userUid == "")? array() : $this->getUser($userUid, true); $flagInsert = ($userUid == "")? true : false; $arrayFinalData = array_merge($arrayUserData, $arrayData); //Verify data - Field definition. $process = new \ProcessMaker\BusinessModel\Process(); $process->throwExceptionIfDataNotMetFieldDefinition($arrayData, $this->arrayFieldDefinition, $this->arrayFieldNameForException, $flagInsert); //Verify data if (isset($arrayData["USR_USERNAME"])) { $this->throwExceptionIfExistsName($arrayData["USR_USERNAME"], $this->arrayFieldNameForException["usrUsername"], $userUid); } if (isset($arrayData["USR_EMAIL"])) { if (!filter_var($arrayData["USR_EMAIL"], FILTER_VALIDATE_EMAIL)) { throw new \Exception($this->arrayFieldNameForException["usrEmail"] . ": " . \G::LoadTranslation("ID_INCORRECT_EMAIL")); } } if (isset($arrayData["USR_NEW_PASS"])) { $this->throwExceptionIfPasswordIsInvalid($arrayData["USR_NEW_PASS"], $this->arrayFieldNameForException["usrNewPass"]); } if (isset($arrayData["USR_REPLACED_BY"]) && $arrayData["USR_REPLACED_BY"] != "") { $obj = \UsersPeer::retrieveByPK($arrayData["USR_REPLACED_BY"]); if (is_null($obj)) { throw new \Exception(\G::LoadTranslation("ID_USER_DOES_NOT_EXIST", array($this->arrayFieldNameForException["usrReplacedBy"], $arrayData["USR_REPLACED_BY"]))); } } if (isset($arrayData["USR_DUE_DATE"])) { $arrayUserDueDate = explode("-", $arrayData["USR_DUE_DATE"]); if (ctype_digit($arrayUserDueDate[0])) { if (!checkdate($arrayUserDueDate[1], $arrayUserDueDate[2], $arrayUserDueDate[0])) { throw new \Exception($this->arrayFieldNameForException["usrDueDate"] . ": " . \G::LoadTranslation("ID_MSG_ERROR_DUE_DATE")); } } else { throw new \Exception($this->arrayFieldNameForException["usrDueDate"] . ": " . \G::LoadTranslation("ID_MSG_ERROR_DUE_DATE")); } } if (isset($arrayData["USR_ROLE"])) { require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Roles.php"); $criteria = new \Criteria("rbac"); $criteria->add(\RolesPeer::ROL_CODE, $arrayData["USR_ROLE"]); $rsCriteria = \RolesPeer::doSelectRS($criteria); if (!$rsCriteria->next()) { throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array($this->arrayFieldNameForException["usrRole"]))); } } if (isset($arrayData["USR_COUNTRY"]) && $arrayData["USR_COUNTRY"] != "") { $obj = \IsoCountryPeer::retrieveByPK($arrayData["USR_COUNTRY"]); if (is_null($obj)) { throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array($this->arrayFieldNameForException["usrCountry"]))); } } if (isset($arrayData["USR_CITY"]) && $arrayData["USR_CITY"] != "") { if (!isset($arrayFinalData["USR_COUNTRY"]) || $arrayFinalData["USR_COUNTRY"] == "") { throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array($this->arrayFieldNameForException["usrCountry"]))); } $obj = \IsoSubdivisionPeer::retrieveByPK($arrayFinalData["USR_COUNTRY"], $arrayData["USR_CITY"]); if (is_null($obj)) { throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array($this->arrayFieldNameForException["usrCity"]))); } } if (isset($arrayData["USR_LOCATION"]) && $arrayData["USR_LOCATION"] != "") { if (!isset($arrayFinalData["USR_COUNTRY"]) || $arrayFinalData["USR_COUNTRY"] == "") { throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array($this->arrayFieldNameForException["usrCountry"]))); } $obj = \IsoLocationPeer::retrieveByPK($arrayFinalData["USR_COUNTRY"], $arrayData["USR_LOCATION"]); if (is_null($obj)) { throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array($this->arrayFieldNameForException["usrLocation"]))); } } if (isset($arrayData["USR_CALENDAR"]) && $arrayData["USR_CALENDAR"] != "") { $obj = \CalendarDefinitionPeer::retrieveByPK($arrayData["USR_CALENDAR"]); if (is_null($obj)) { throw new \Exception(\G::LoadTranslation("ID_CALENDAR_DOES_NOT_EXIST", array($this->arrayFieldNameForException["usrCalendar"], $arrayData["USR_CALENDAR"]))); } } if (isset($arrayData["DEP_UID"]) && $arrayData["DEP_UID"] != "") { $department = new \Department(); if (!$department->existsDepartment($arrayData["DEP_UID"])) { throw new \Exception(\G::LoadTranslation("ID_DEPARTMENT_NOT_EXIST", array($this->arrayFieldNameForException["depUid"], $arrayData["DEP_UID"]))); } } } catch (\Exception $e) { throw $e; } }
public function calendarName($calendarUid) { $tr = CalendarDefinitionPeer::retrieveByPK($calendarUid); if (is_object($tr) && get_class($tr) == 'CalendarDefinition') { return $tr->getCalendarName(); } return false; }
public function getCalendarData ($calendarUid = null) { require_once ( 'classes/model/CalendarDefinition.php' ); $calendarUid = (is_null($calendarUid)) ? $this->pmCalendarUid : $calendarUid; $this->pmCalendarUid = $calendarUid; //if exists the row in the database propel will update it, otherwise will insert. $tr = CalendarDefinitionPeer::retrieveByPK ( $calendarUid ); $defaultCalendar ['CALENDAR_UID'] = '00000000000000000000000000000001'; $defaultCalendar ['CALENDAR_NAME'] = 'Default'; $defaultCalendar ['CALENDAR_CREATE_DATE'] = date ( 'Y-m-d' ); $defaultCalendar ['CALENDAR_UPDATE_DATE'] = date ( 'Y-m-d' ); $defaultCalendar ['CALENDAR_DESCRIPTION'] = 'Default'; $defaultCalendar ['CALENDAR_STATUS'] = 'ACTIVE'; $defaultCalendar ['CALENDAR_WORK_DAYS'] = '1|2|3|4|5'; $defaultCalendar ['CALENDAR_WORK_DAYS'] = explode ( '|', '1|2|3|4|5' ); $defaultCalendar ['BUSINESS_DAY'] [1] ['CALENDAR_BUSINESS_DAY'] = 7; $defaultCalendar ['BUSINESS_DAY'] [1] ['CALENDAR_BUSINESS_START'] = '09:00'; $defaultCalendar ['BUSINESS_DAY'] [1] ['CALENDAR_BUSINESS_END'] = '17:00'; $defaultCalendar ['BUSINESS_DAY'] [1] ['DIFF_HOURS'] = '8'; $defaultCalendar ['HOURS_FOR_DAY'] = '8'; $defaultCalendar ['HOLIDAY'] = array (); if ((is_object ( $tr ) && get_class ( $tr ) == 'CalendarDefinition')) { $fields ['CALENDAR_UID'] = $tr->getCalendarUid (); $fields ['CALENDAR_NAME'] = $tr->getCalendarName (); $fields ['CALENDAR_CREATE_DATE'] = $tr->getCalendarCreateDate (); $fields ['CALENDAR_UPDATE_DATE'] = $tr->getCalendarUpdateDate (); $fields ['CALENDAR_DESCRIPTION'] = $tr->getCalendarDescription (); $fields ['CALENDAR_STATUS'] = $tr->getCalendarStatus (); $fields ['CALENDAR_WORK_DAYS'] = $tr->getCalendarWorkDays (); $fields ['CALENDAR_WORK_DAYS_A'] = explode ( '|', $tr->getCalendarWorkDays () ); } else { $fields=$defaultCalendar; //$this->saveCalendarInfo ( $fields ); $fields ['CALENDAR_WORK_DAYS'] = '1|2|3|4|5'; $fields ['CALENDAR_WORK_DAYS_A'] = explode ( '|', '1|2|3|4|5' ); //$tr = CalendarDefinitionPeer::retrieveByPK ( $calendarUid ); } $CalendarBusinessHoursObj = new CalendarBusinessHours ( ); $CalendarBusinessHours = $this->getCalendarBusinessHours ( $calendarUid ); $numDay = 8; $daysHours = array(); $hoursCant = array(); $modaHours = 0; $keyModa = 0; foreach ($CalendarBusinessHours as $value) { if ($value['CALENDAR_BUSINESS_DAY'] != $numDay) { $numDay = $value['CALENDAR_BUSINESS_DAY']; $daysHours[$numDay] = 0; } $daysHours[$numDay] += $value['DIFF_HOURS']; } foreach ($daysHours as $value) { if (isset($hoursCant[$value])) { $hoursCant[$value]++; } else { $hoursCant[$value] = 1; } } foreach ($hoursCant as $key => $value) { if ($value > $modaHours ) { $modaHours = $value; $keyModa = $key; } } $fields ['HOURS_FOR_DAY'] = $keyModa; $fields ['BUSINESS_DAY'] = $CalendarBusinessHours; $CalendarHolidaysObj = new CalendarHolidays ( ); $CalendarHolidays = $this->getCalendarHolidays ( $calendarUid ); $fields ['HOLIDAY'] = $CalendarHolidays; $fields=$this->validateCalendarInfo($fields, $defaultCalendar); $this->pmCalendarData = $fields; return $this->pmCalendarData; }
/** * Retrieve multiple objects by pkey. * * @param array $pks List of primary keys * @param Connection $con the connection to use * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function retrieveByPKs($pks, $con = null) { if ($con === null) { $con = Propel::getConnection(self::DATABASE_NAME); } $objs = null; if (empty($pks)) { $objs = array(); } else { $criteria = new Criteria(); $criteria->add(CalendarDefinitionPeer::CALENDAR_UID, $pks, Criteria::IN); $objs = CalendarDefinitionPeer::doSelect($criteria, $con); } return $objs; }
case 'calendarList': G::LoadClass('configuration'); G::LoadClass('calendar'); $co = new Configurations(); $config = $co->getConfiguration('calendarList', 'pageSize', '', $_SESSION['USER_LOGGED']); $limit_size = isset($config['pageSize']) ? $config['pageSize'] : 20; $start = isset($_REQUEST['start']) ? $_REQUEST['start'] : 0; $limit = isset($_REQUEST['limit']) ? $_REQUEST['limit'] : $limit_size; $filter = isset($_REQUEST['textFilter']) ? $_REQUEST['textFilter'] : ''; $calendar = new calendar(); $CRI = $calendar->getCalendarCriterias($filter, $start, $limit); $aUsers = $calendar->getAllCounterByCalendar('USER'); $aTasks = $calendar->getAllCounterByCalendar('TASK'); $aProcess = $calendar->getAllCounterByCalendar('PROCESS'); $total_cals = CalendarDefinitionPeer::doCount($CRI['COUNTER']); $oDataSet = CalendarDefinitionPeer::doSelectRS($CRI['LIST']); $oDataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC); $aCals = array(); while ($oDataSet->next()) { $aCals[] = $oDataSet->getRow(); $index = sizeof($aCals) - 1; $aCals[$index]['TOTAL_USERS'] = isset($aUsers[$aCals[$index]['CALENDAR_UID']]) ? $aUsers[$aCals[$index]['CALENDAR_UID']] : 0; $aCals[$index]['TOTAL_TASKS'] = isset($aTasks[$aCals[$index]['CALENDAR_UID']]) ? $aTasks[$aCals[$index]['CALENDAR_UID']] : 0; $aCals[$index]['TOTAL_PROCESS'] = isset($aProcess[$aCals[$index]['CALENDAR_UID']]) ? $aProcess[$aCals[$index]['CALENDAR_UID']] : 0; } echo '{cals: ' . G::json_encode($aCals) . ', total_cals: ' . $total_cals . '}'; break; case 'updatePageSize': G::LoadClass('configuration'); $c = new Configurations(); $arr['pageSize'] = $_REQUEST['size'];
/** * Get data of a Calendar * * @param string $calendarUid Unique id of Calendar * * return array Return an array with data of a Calendar */ public function getCalendar($calendarUid) { try { //Verify data $this->throwExceptionIfNotExistsCalendar($calendarUid, $this->arrayFieldNameForException["calendarUid"]); //Get data //Set variables $calendar = new \CalendarDefinition(); $arrayTotalUsersByCalendar = $calendar->getAllCounterByCalendar("USER"); $arrayTotalProcessesByCalendar = $calendar->getAllCounterByCalendar("PROCESS"); $arrayTotalTasksByCalendar = $calendar->getAllCounterByCalendar("TASK"); //SQL $criteria = $this->getCalendarCriteria(); $criteria->add(\CalendarDefinitionPeer::CALENDAR_UID, $calendarUid, \Criteria::EQUAL); $rsCriteria = \CalendarDefinitionPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $rsCriteria->next(); $row = $rsCriteria->getRow(); $row["CALENDAR_TOTAL_USERS"] = isset($arrayTotalUsersByCalendar[$calendarUid]) ? $arrayTotalUsersByCalendar[$calendarUid] : 0; $row["CALENDAR_TOTAL_PROCESSES"] = isset($arrayTotalProcessesByCalendar[$calendarUid]) ? $arrayTotalProcessesByCalendar[$calendarUid] : 0; $row["CALENDAR_TOTAL_TASKS"] = isset($arrayTotalTasksByCalendar[$calendarUid]) ? $arrayTotalTasksByCalendar[$calendarUid] : 0; //Return return $this->getCalendarDataFromRecord($row); } catch (\Exception $e) { throw $e; } }
/** * Implementation for 'DELETE' method for Rest API * * @param mixed $calendarUid Primary key * * @return array $result Returns array within multiple records or a single record depending if * a single selection was requested passing id(s) as param */ protected function delete($calendarUid) { $conn = Propel::getConnection(CalendarDefinitionPeer::DATABASE_NAME); try { $conn->begin(); $obj = CalendarDefinitionPeer::retrieveByPK($calendarUid); if (!is_object($obj)) { throw new RestException(412, 'Record does not exist.'); } $obj->delete(); $conn->commit(); } catch (Exception $e) { $conn->rollback(); throw new RestException(412, $e->getMessage()); } }