Example #1
0
 /**
  * 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]]);
     }
 }
Example #4
0
    /**

     * 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;
 }
Example #6
0
	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;
 }
Example #8
0
 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'];
Example #9
0
 /**
  * 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());
     }
 }