diff --git a/gulliver/system/class.xmlform.php b/gulliver/system/class.xmlform.php index 38185148c..b2070690b 100755 --- a/gulliver/system/class.xmlform.php +++ b/gulliver/system/class.xmlform.php @@ -506,7 +506,6 @@ class XmlForm_Field if ($e !== '') { $correct = false; } - //##,###.## --> ^...$ no parece pero no, o mejor si, donde # es \d?, en general todos // es valida cuando no encuentra un caracter que no deberia estar, puede no terminar la mascara // pero si sobran caracteres en el value entonces no se cumple la mascara. @@ -4246,7 +4245,6 @@ class XmlForm_Field_Date extends XmlForm_Field_SimpleText * $html .= ''; * * */ - if ($this->gridFieldType == '') { $html .= $this->renderHint(); } diff --git a/workflow/engine/controllers/adhocUserProxy.php b/workflow/engine/controllers/adhocUserProxy.php index cd16a5781..75af2e669 100755 --- a/workflow/engine/controllers/adhocUserProxy.php +++ b/workflow/engine/controllers/adhocUserProxy.php @@ -1,73 +1,77 @@ -getGroupsOfTask($_SESSION['TASK'], 2); - $aAdhocUsers = array(); - $oGroups = new Groups(); - foreach($aAux as $aGroup) { - $aUsers = $oGroups->getUsersOfGroup($aGroup['GRP_UID']); - foreach($aUsers as $aUser) { - if($aUser['USR_UID'] != $_SESSION['USER_LOGGED']) { - $aAdhocUsers[] = $aUser['USR_UID']; - } - } - } - $aAux = $oTasks->getUsersOfTask($_SESSION['TASK'], 2); - foreach($aAux as $aUser) { - if($aUser['USR_UID'] != $_SESSION['USER_LOGGED']) { - $aAdhocUsers[] = $aUser['USR_UID']; - } - } - require_once 'classes/model/Users.php'; - $oCriteria = new Criteria('workflow'); - $oCriteria->addSelectColumn(UsersPeer::USR_UID); - $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME); - $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME); - $oCriteria->add(UsersPeer::USR_UID, $aAdhocUsers, Criteria::IN); - $oDataset = UsersPeer::doSelectRS($oCriteria); - $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); - $aData=array(); - while ($oDataset->next()){ - $aData[] = $oDataset->getRow(); - } - - $this->data = $aData; - - } - //assign user adhoc - function reassignCase($params){ - - $cases = new Cases(); - $cases->reassignCase($_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['USER_LOGGED'], $_POST['USR_UID'], $_POST['THETYPE']); - $this->success = true; - - } - //delete case adhoc - function deleteCase($params){ - $ainfoCase = array(); - try{ - $applicationUID = (isset($_POST['APP_UID'])) ? $_POST['APP_UID'] : $_SESSION['APPLICATION']; - $app = new Application(); - $caseData = $app->load($applicationUID); - $data['APP_NUMBER'] = $caseData['APP_NUMBER']; - - $oCase = new Cases(); - $oCase->removeCase($applicationUID); - - $this->success = true; - $this->msg = G::LoadTranslation('ID_CASE_DELETED_SUCCESSFULLY', SYS_LANG, $data); - } catch(Exception $e) { - $this->success = false; - $this->msg = $e->getMessage(); - } - } - -} //End adhocUserProxy +getGroupsOfTask( $_SESSION['TASK'], 2 ); + $aAdhocUsers = array (); + $oGroups = new Groups(); + foreach ($aAux as $aGroup) { + $aUsers = $oGroups->getUsersOfGroup( $aGroup['GRP_UID'] ); + foreach ($aUsers as $aUser) { + if ($aUser['USR_UID'] != $_SESSION['USER_LOGGED']) { + $aAdhocUsers[] = $aUser['USR_UID']; + } + } + } + $aAux = $oTasks->getUsersOfTask( $_SESSION['TASK'], 2 ); + foreach ($aAux as $aUser) { + if ($aUser['USR_UID'] != $_SESSION['USER_LOGGED']) { + $aAdhocUsers[] = $aUser['USR_UID']; + } + } + require_once 'classes/model/Users.php'; + $oCriteria = new Criteria( 'workflow' ); + $oCriteria->addSelectColumn( UsersPeer::USR_UID ); + $oCriteria->addSelectColumn( UsersPeer::USR_FIRSTNAME ); + $oCriteria->addSelectColumn( UsersPeer::USR_LASTNAME ); + $oCriteria->add( UsersPeer::USR_UID, $aAdhocUsers, Criteria::IN ); + $oDataset = UsersPeer::doSelectRS( $oCriteria ); + $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $aData = array (); + while ($oDataset->next()) { + $aData[] = $oDataset->getRow(); + } + + $this->data = $aData; + + } + //assign user adhoc + function reassignCase ($params) + { + $cases = new Cases(); + $cases->reassignCase( $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['USER_LOGGED'], $_POST['USR_UID'], $_POST['THETYPE'] ); + $this->success = true; + } + //delete case adhoc + function deleteCase ($params) + { + $ainfoCase = array (); + try { + $applicationUID = (isset( $_POST['APP_UID'] )) ? $_POST['APP_UID'] : $_SESSION['APPLICATION']; + $app = new Application(); + $caseData = $app->load( $applicationUID ); + $data['APP_NUMBER'] = $caseData['APP_NUMBER']; + + $oCase = new Cases(); + $oCase->removeCase( $applicationUID ); + + $this->success = true; + $this->msg = G::LoadTranslation( 'ID_CASE_DELETED_SUCCESSFULLY', SYS_LANG, $data ); + } catch (Exception $e) { + $this->success = false; + $this->msg = $e->getMessage(); + } + } + +} +//End adhocUserProxy + diff --git a/workflow/engine/controllers/admin.php b/workflow/engine/controllers/admin.php index e129a18ba..4b4fdaeba 100644 --- a/workflow/engine/controllers/admin.php +++ b/workflow/engine/controllers/admin.php @@ -1,184 +1,185 @@ -getLanguagesList(); - $sysConf = System::getSystemConfiguration(PATH_CONFIG . 'env.ini'); - - foreach ($skinsList['skins'] as $skin) { - $skins[] = array($skin['SKIN_FOLDER_ID'], $skin['SKIN_NAME']); - } - - foreach ($timeZonesList as $tz) { - $timeZones[] = array($tz, $tz); - } - - - - $this->includeExtJS('admin/system'); - //G::LoadClass('configuration'); - - // $c = new Configurations(); - // $configPage = $c->getConfiguration('usersList', 'pageSize','',$_SESSION['USER_LOGGED']); - // $Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20; - - $this->setJSVar('skinsList', $skins); - $this->setJSVar('languagesList', $languagesList); - $this->setJSVar('timeZonesList', $timeZones); - $this->setJSVar('sysConf', $sysConf); - - G::RenderPage('publish', 'extJs'); - } - - public function uxList() - { - require_once PATH_CONTROLLERS . 'adminProxy.php'; - $this->includeExtJS('admin/uxUsersList'); - G::LoadClass('configuration'); - - $c = new Configurations(); - $configPage = $c->getConfiguration('usersList', 'pageSize','',$_SESSION['USER_LOGGED']); - $Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20; - - $this->setJSVar('CONFIG', $Config); - $this->setJSVar('FORMATS', $c->getFormats()); - $this->setJSVar('uxTypes', AdminProxy::getUxTypesList('list')); - - G::RenderPage('publish', 'extJs'); - } - - - /** - * CALENDAR - * getting default list - * @param string $httpData->PRO_UID (opional) - */ - public function calendarEdit($httpData) - { - global $RBAC; - //$RBAC->requirePermissions('PM_SETUP_ADVANCE'); - G::LoadClass('configuration'); - G::LoadClass('calendar'); - - $CalendarUid = str_replace ( '"', '', isset ( $_GET ['id'] ) ? $_GET ['id'] : G::GenerateUniqueID () ); - $calendarObj = new calendar ( ); - - if ((isset ( $_GET ['id'] )) && ($_GET ['id'] != "")) { - $fields = $calendarObj->getCalendarInfoE ( $CalendarUid ); - $fields ['OLD_NAME'] = $fields['CALENDAR_NAME']; - } - if (!isset($fields['CALENDAR_UID'])) { //For a new Calendar - $fields ['CALENDAR_UID'] = $CalendarUid; - $fields ['OLD_NAME'] = ''; - - //Default Business Hour - $fields ['BUSINESS_DAY'] [1] ['CALENDAR_BUSINESS_DAY'] = 7; - $fields ['BUSINESS_DAY'] [1] ['CALENDAR_BUSINESS_START'] = "09:00"; - $fields ['BUSINESS_DAY'] [1] ['CALENDAR_BUSINESS_END'] = "17:00"; - } - if ((isset ( $_GET ['cp'] )) && ($_GET ['cp'] == 1)) { // Copy Calendar - $fields ['CALENDAR_UID'] = G::GenerateUniqueID (); - $fields ['CALENDAR_NAME'] = G::LoadTranslation ( "ID_COPY_OF" ) . " " . $fields ['CALENDAR_NAME']; - $fields ['OLD_NAME'] = $fields['CALENDAR_NAME'];; - } - - $c = new Configurations(); - $configPage = $c->getConfiguration('additionalTablesList', 'pageSize','',$_SESSION['USER_LOGGED']); - $Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20; - - $this->includeExtJS('admin/calendarEdit'); - $this->setView('admin/calendarEdit'); - $businessDayArray = array(); - - for($i=0;$isetJSVar('CALENDAR_UID',$fields['CALENDAR_UID']); - $this->setJSVar('fields',$fields); - - G::RenderPage('publish', 'extJs'); - } - - /** - * getting email configuration - * @autor Alvaro - */ - public function emails() - { - global $RBAC; - - $RBAC->requirePermissions('PM_SETUP_ADVANCE'); - $this->includeExtJS('admin/emails'); - //render content - G::RenderPage('publish', 'extJs'); - } - - /** - * getting default list - * @param string $httpData->PRO_UID (opional) - */ - public function pmLogo($httpData) - { - global $RBAC; - $RBAC->requirePermissions('PM_SETUP_ADVANCE'); - - G::LoadClass('configuration'); - $c = new Configurations(); - $configPage = $c->getConfiguration('additionalTablesList', 'pageSize', '', $_SESSION['USER_LOGGED']); - $Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20; - - $this->includeExtJS('admin/pmLogo'); - $this->setView('admin/pmLogo'); - - //assigning js variables - $this->setJSVar('FORMATS', $c->getFormats()); - $this->setJSVar('CONFIG', $Config); - $this->setJSVar('PRO_UID', isset($_GET['PRO_UID'])? $_GET['PRO_UID'] : false); - - if (isset($_SESSION['_cache_pmtables'])) { - unset($_SESSION['_cache_pmtables']); - } - - if (isset($_SESSION['ADD_TAB_UID'])) { - unset($_SESSION['ADD_TAB_UID']); - } - //render content - G::RenderPage('publish', 'extJs'); - } - -} +getLanguagesList(); + $sysConf = System::getSystemConfiguration( PATH_CONFIG . 'env.ini' ); + + foreach ($skinsList['skins'] as $skin) { + $skins[] = array ($skin['SKIN_FOLDER_ID'],$skin['SKIN_NAME']); + } + + foreach ($timeZonesList as $tz) { + $timeZones[] = array ($tz,$tz); + } + + $this->includeExtJS( 'admin/system' ); + //G::LoadClass('configuration'); + + // $c = new Configurations(); + // $configPage = $c->getConfiguration('usersList', 'pageSize','',$_SESSION['USER_LOGGED']); + // $Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20; + + $this->setJSVar( 'skinsList', $skins ); + $this->setJSVar( 'languagesList', $languagesList ); + $this->setJSVar( 'timeZonesList', $timeZones ); + $this->setJSVar( 'sysConf', $sysConf ); + + G::RenderPage( 'publish', 'extJs' ); + } + + public function uxList () + { + require_once PATH_CONTROLLERS . 'adminProxy.php'; + $this->includeExtJS( 'admin/uxUsersList' ); + G::LoadClass( 'configuration' ); + + $c = new Configurations(); + $configPage = $c->getConfiguration( 'usersList', 'pageSize', '', $_SESSION['USER_LOGGED'] ); + $Config['pageSize'] = isset( $configPage['pageSize'] ) ? $configPage['pageSize'] : 20; + + $this->setJSVar( 'CONFIG', $Config ); + $this->setJSVar( 'FORMATS', $c->getFormats() ); + $this->setJSVar( 'uxTypes', AdminProxy::getUxTypesList( 'list' ) ); + + G::RenderPage( 'publish', 'extJs' ); + } + + /** + * CALENDAR + * getting default list + * + * @param string $httpData->PRO_UID (opional) + */ + public function calendarEdit ($httpData) + { + global $RBAC; + //$RBAC->requirePermissions('PM_SETUP_ADVANCE'); + G::LoadClass( 'configuration' ); + G::LoadClass( 'calendar' ); + + $CalendarUid = str_replace( '"', '', isset( $_GET['id'] ) ? $_GET['id'] : G::GenerateUniqueID() ); + $calendarObj = new calendar(); + + if ((isset( $_GET['id'] )) && ($_GET['id'] != "")) { + $fields = $calendarObj->getCalendarInfoE( $CalendarUid ); + $fields['OLD_NAME'] = $fields['CALENDAR_NAME']; + } + if (! isset( $fields['CALENDAR_UID'] )) { //For a new Calendar + $fields['CALENDAR_UID'] = $CalendarUid; + $fields['OLD_NAME'] = ''; + + //Default Business Hour + $fields['BUSINESS_DAY'][1]['CALENDAR_BUSINESS_DAY'] = 7; + $fields['BUSINESS_DAY'][1]['CALENDAR_BUSINESS_START'] = "09:00"; + $fields['BUSINESS_DAY'][1]['CALENDAR_BUSINESS_END'] = "17:00"; + } + if ((isset( $_GET['cp'] )) && ($_GET['cp'] == 1)) { // Copy Calendar + $fields['CALENDAR_UID'] = G::GenerateUniqueID(); + $fields['CALENDAR_NAME'] = G::LoadTranslation( "ID_COPY_OF" ) . " " . $fields['CALENDAR_NAME']; + $fields['OLD_NAME'] = $fields['CALENDAR_NAME']; + } + + $c = new Configurations(); + $configPage = $c->getConfiguration( 'additionalTablesList', 'pageSize', '', $_SESSION['USER_LOGGED'] ); + $Config['pageSize'] = isset( $configPage['pageSize'] ) ? $configPage['pageSize'] : 20; + + $this->includeExtJS( 'admin/calendarEdit' ); + $this->setView( 'admin/calendarEdit' ); + $businessDayArray = array (); + + for ($i = 0; $i < sizeof( $fields['BUSINESS_DAY'] ); $i ++) { + $businessDayArray[$i] = $fields['BUSINESS_DAY'][$i + 1]; + } + + $fields['BUSINESS_DAY'] = $businessDayArray; + //validating if the calendar is new, it means that we don't have the $_GET array + $fields['HOLIDAY'] = (isset( $_GET['id'] ) && $_GET['id'] != '') ? $fields['HOLIDAY'] : array (); + $holidayArray = array (); + for ($i = 0; $i < sizeof( $fields['HOLIDAY'] ); $i ++) { + $holidayArray[$i] = $fields['HOLIDAY'][$i + 1]; + + } + + $_GET['id'] = (isset( $_GET['id'] ) && $_GET['id'] != '') ? $_GET['id'] : ''; + $fields['HOLIDAY'] = $holidayArray; + $fields['NEWCALENDAR'] = 'NO'; + if (isset( $_GET['id'] ) && $_GET['id'] == '') { + $fields['CALENDAR_UID'] = G::GenerateUniqueID(); + $fields['NEWCALENDAR'] = 'YES'; + } + $this->setJSVar( 'CALENDAR_UID', $fields['CALENDAR_UID'] ); + $this->setJSVar( 'fields', $fields ); + + G::RenderPage( 'publish', 'extJs' ); + } + + /** + * getting email configuration + * @autor Alvaro + */ + public function emails () + { + global $RBAC; + + $RBAC->requirePermissions( 'PM_SETUP_ADVANCE' ); + $this->includeExtJS( 'admin/emails' ); + //render content + G::RenderPage( 'publish', 'extJs' ); + } + + /** + * getting default list + * + * @param string $httpData->PRO_UID (opional) + */ + public function pmLogo ($httpData) + { + global $RBAC; + $RBAC->requirePermissions( 'PM_SETUP_ADVANCE' ); + + G::LoadClass( 'configuration' ); + $c = new Configurations(); + $configPage = $c->getConfiguration( 'additionalTablesList', 'pageSize', '', $_SESSION['USER_LOGGED'] ); + $Config['pageSize'] = isset( $configPage['pageSize'] ) ? $configPage['pageSize'] : 20; + + $this->includeExtJS( 'admin/pmLogo' ); + $this->setView( 'admin/pmLogo' ); + + //assigning js variables + $this->setJSVar( 'FORMATS', $c->getFormats() ); + $this->setJSVar( 'CONFIG', $Config ); + $this->setJSVar( 'PRO_UID', isset( $_GET['PRO_UID'] ) ? $_GET['PRO_UID'] : false ); + + if (isset( $_SESSION['_cache_pmtables'] )) { + unset( $_SESSION['_cache_pmtables'] ); + } + + if (isset( $_SESSION['ADD_TAB_UID'] )) { + unset( $_SESSION['ADD_TAB_UID'] ); + } + //render content + G::RenderPage( 'publish', 'extJs' ); + } +} + diff --git a/workflow/engine/controllers/appProxy.php b/workflow/engine/controllers/appProxy.php index 20a9e02de..a68a97955 100644 --- a/workflow/engine/controllers/appProxy.php +++ b/workflow/engine/controllers/appProxy.php @@ -1,222 +1,240 @@ - - * @herits Controller - * @access public - */ - -class AppProxy extends HttpProxyController -{ - /** - * Get Notes List - * @param int $httpData->start - * @param int $httpData->limit - * @param string $httpData->appUid (optionalif it is not passed try use $_SESSION['APPLICATION']) - * @return array containg the case notes - */ - function getNotesList($httpData) - { - $appUid = null; - - if (isset($httpData->appUid) && trim($httpData->appUid) != "") { - $appUid = $httpData->appUid; - } - else { - if (isset($_SESSION['APPLICATION'])) { - $appUid = $_SESSION['APPLICATION']; - } - } - - G::LoadClass('case'); - $case = new Cases(); - - $proUid = ($httpData->pro == '') ? $_SESSION['PROCESS'] : $httpData->pro; - $tasUid = ($httpData->tas == '') ? $_SESSION['TASK'] : $httpData->tas; - $usrUid = $_SESSION['USER_LOGGED']; - - $respView = $case->getAllObjectsFrom($proUid, $appUid, $tasUid, $usrUid, 'VIEW'); - $respBlock = $case->getAllObjectsFrom($proUid, $appUid, $tasUid, $usrUid, 'BLOCK'); - - if ($respView['CASES_NOTES'] == 0 && $respBlock['CASES_NOTES'] == 0) { - return array('totalCount' => 0, 'notes' => array(), 'noPerms' => 1); - } - - require_once ( "classes/model/AppNotes.php" ); - - if (!isset($appUid)) { - throw new Exception('Can\'t resolve the Apllication ID for this request.'); - } - - $usrUid = isset($_SESSION['USER_LOGGED']) ? $_SESSION['USER_LOGGED'] : ""; - $appNotes = new AppNotes(); - $response = $appNotes->getNotesList($appUid, '', $httpData->start, $httpData->limit); - - return $response['array']; - } - - /** - * post Note Action - * @param string $httpData->appUid (optional, if it is not passed try use $_SESSION['APPLICATION']) - * @return array containg the case notes - */ - function postNote($httpData) - { - //extract(getExtJSParams()); - if (isset($httpData->appUid) && trim($httpData->appUid) != "") { - $appUid = $httpData->appUid; - } - else { - $appUid = $_SESSION['APPLICATION']; - } - - if (!isset($appUid)) { - throw new Exception('Can\'t resolve the Apllication ID for this request.'); - } - - $usrUid = (isset($_SESSION['USER_LOGGED'])) ? $_SESSION['USER_LOGGED'] : ""; - require_once ( "classes/model/AppNotes.php" ); - - $appNotes = new AppNotes(); - $noteContent = addslashes($httpData->noteText); - - $result = $appNotes->postNewNote($appUid, $usrUid, $noteContent, false); - - //Disabling the controller response because we handle a special behavior - $this->setSendResponse(false); - - //Send the response to client - @ini_set('implicit_flush', 1); - ob_start(); - echo G::json_encode($result); - @ob_flush(); - @flush(); - @ob_end_flush(); - ob_implicit_flush(1); - - //Send notification in background - if (intval($httpData->swSendMail) == 1) { - G::LoadClass("case"); - - $oCase = new Cases(); - - $p = $oCase->getUsersParticipatedInCase($appUid); - $noteRecipientsList = array(); - - foreach ($p["array"] as $key => $userParticipated) { - $noteRecipientsList[] = $key; - } - - $noteRecipients = implode(",", $noteRecipientsList); - $noteContent = stripslashes($noteContent); - - $appNotes->sendNoteNotification($appUid, $usrUid, $noteContent, $noteRecipients); - } - } - - /** - * request to open the case summary - * @param string $httpData->appUid - * @param string $httpData->delIndex - * @return object bool $result->succes, string $result->message(is an exception was thrown), string $result->dynUid - */ - function requestOpenSummary($httpData) - { - global $RBAC; - $this->success = true; - $this->dynUid = ''; - - switch ($RBAC->userCanAccess('PM_CASES')) { - case -2: - throw new Exception(G::LoadTranslation('ID_USER_HAVENT_RIGHTS_SYSTEM')); - break; - case -1: - throw new Exception(G::LoadTranslation('ID_USER_HAVENT_RIGHTS_PAGE')); - break; - } - - G::LoadClass('case'); - $case = new Cases(); - - if ($RBAC->userCanAccess('PM_ALLCASES') < 0 && $case->userParticipatedInCase($httpData->appUid, $_SESSION['USER_LOGGED']) == 0) { - throw new Exception(G::LoadTranslation('ID_NO_PERMISSION_NO_PARTICIPATED')); - } - - $applicationFields = $case->loadCase($httpData->appUid, $httpData->delIndex); - $process = new Process(); - $processData = $process->load($applicationFields['PRO_UID']); - - if (isset($processData['PRO_DYNAFORMS']['PROCESS'])) { - $this->dynUid = $processData['PRO_DYNAFORMS']['PROCESS']; - } - - $_SESSION['_applicationFields'] = $applicationFields; - $_SESSION['_processData'] = $processData; - $_SESSION['APPLICATION'] = $httpData->appUid; - $_SESSION['INDEX'] = $httpData->delIndex; - $_SESSION['PROCESS'] = $applicationFields['PRO_UID']; - $_SESSION['TASK'] = $applicationFields['TAS_UID']; - $_SESSION['STEP_POSITION'] = ''; - } - - /** - * get the case summary data - * @param string $httpData->appUid - * @param string $httpData->delIndex - * @return array containg the case summary data - */ - function getSummary($httpData) - { - $labels = array(); - $form = new Form('cases/cases_Resume', PATH_XMLFORM, SYS_LANG); - G::LoadClass('case'); - $case = new Cases(); - - foreach($form->fields as $fieldName => $field) { - $labels[$fieldName] = $field->label; - } - - if (isset($_SESSION['_applicationFields']) && $_SESSION['_processData']) { - $applicationFields = $_SESSION['_applicationFields']; - unset($_SESSION['_applicationFields']); - $processData = $_SESSION['_processData']; - unset($_SESSION['_processData']); - } - else { - $applicationFields = $case->loadCase($httpData->appUid, $httpData->delIndex); - $process = new Process(); - $processData = $process->load($applicationFields['PRO_UID']); - } - - $data = array(); - $task = new Task(); - $taskData = $task->load($applicationFields['TAS_UID']); - $currentUser = $applicationFields['CURRENT_USER'] != '' ? $applicationFields['CURRENT_USER'] : '[' . G::LoadTranslation('ID_UNASSIGNED') . ']'; - - $data[] = array('label'=>$labels['PRO_TITLE'] , 'value' => $processData['PRO_TITLE'], 'section'=>$labels['TITLE1']); - $data[] = array('label'=>$labels['TITLE'] , 'value' => $applicationFields['TITLE'], 'section'=>$labels['TITLE1']); - $data[] = array('label'=>$labels['APP_NUMBER'] , 'value' => $applicationFields['APP_NUMBER'], 'section'=>$labels['TITLE1']); - $data[] = array('label'=>$labels['STATUS'] , 'value' => $applicationFields['STATUS'], 'section'=>$labels['TITLE1']); - $data[] = array('label'=>$labels['APP_UID'] , 'value' => $applicationFields['APP_UID'], 'section'=>$labels['TITLE1']); - $data[] = array('label'=>$labels['CREATOR'] , 'value' => $applicationFields['CREATOR'], 'section'=>$labels['TITLE1']); - $data[] = array('label'=>$labels['CREATE_DATE'] , 'value' => $applicationFields['CREATE_DATE'],'section'=>$labels['TITLE1']); - $data[] = array('label'=>$labels['UPDATE_DATE'] , 'value' => $applicationFields['UPDATE_DATE'],'section'=>$labels['TITLE1']); - $data[] = array('label'=>$labels['DESCRIPTION'] , 'value' => $applicationFields['DESCRIPTION'],'section'=>$labels['TITLE1']); - - // note added by krlos pacha carlos[at]colosa[dot]com - //getting this field if it doesn't exist. Related 7994 bug - $taskData['TAS_TITLE'] = (array_key_exists('TAS_TITLE', $taskData))?$taskData['TAS_TITLE']:Content::Load("TAS_TITLE", "", $applicationFields['TAS_UID'], SYS_LANG); - - $data[] = array('label'=>$labels['TAS_TITLE'] , 'value' => $taskData['TAS_TITLE'], 'section'=>$labels['TITLE2']); - $data[] = array('label'=>$labels['CURRENT_USER'] , 'value' => $currentUser, 'section'=>$labels['TITLE2']); - $data[] = array('label'=>$labels['DEL_DELEGATE_DATE'] , 'value' => $applicationFields['DEL_DELEGATE_DATE'],'section'=>$labels['TITLE2']); - $data[] = array('label'=>$labels['DEL_INIT_DATE'] , 'value' => $applicationFields['DEL_INIT_DATE'], 'section'=>$labels['TITLE2']); - $data[] = array('label'=>$labels['DEL_TASK_DUE_DATE'] , 'value' => $applicationFields['DEL_TASK_DUE_DATE'],'section'=>$labels['TITLE2']); - $data[] = array('label'=>$labels['DEL_FINISH_DATE'] , 'value' => $applicationFields['DEL_FINISH_DATE'], 'section'=>$labels['TITLE2']); - //$data[] = array('label'=>$labels['DYN_UID'] , 'value' => $processData['PRO_DYNAFORMS']['PROCESS'];, 'section'=>$labels['DYN_UID']); - - return $data; - } - -} - + + * @herits Controller + * @access public + */ + +class AppProxy extends HttpProxyController +{ + + /** + * Get Notes List + * + * @param int $httpData->start + * @param int $httpData->limit + * @param string $httpData->appUid (optionalif it is not passed try use $_SESSION['APPLICATION']) + * @return array containg the case notes + */ + function getNotesList ($httpData) + { + $appUid = null; + + if (isset( $httpData->appUid ) && trim( $httpData->appUid ) != "") { + $appUid = $httpData->appUid; + } else { + if (isset( $_SESSION['APPLICATION'] )) { + $appUid = $_SESSION['APPLICATION']; + } + } + + G::LoadClass( 'case' ); + $case = new Cases(); + + $proUid = ($httpData->pro == '') ? $_SESSION['PROCESS'] : $httpData->pro; + $tasUid = ($httpData->tas == '') ? $_SESSION['TASK'] : $httpData->tas; + $usrUid = $_SESSION['USER_LOGGED']; + + $respView = $case->getAllObjectsFrom( $proUid, $appUid, $tasUid, $usrUid, 'VIEW' ); + $respBlock = $case->getAllObjectsFrom( $proUid, $appUid, $tasUid, $usrUid, 'BLOCK' ); + + if ($respView['CASES_NOTES'] == 0 && $respBlock['CASES_NOTES'] == 0) { + return array ('totalCount' => 0,'notes' => array (),'noPerms' => 1 + ); + } + + require_once ("classes/model/AppNotes.php"); + + if (! isset( $appUid )) { + throw new Exception( 'Can\'t resolve the Apllication ID for this request.' ); + } + + $usrUid = isset( $_SESSION['USER_LOGGED'] ) ? $_SESSION['USER_LOGGED'] : ""; + $appNotes = new AppNotes(); + $response = $appNotes->getNotesList( $appUid, '', $httpData->start, $httpData->limit ); + + return $response['array']; + } + + /** + * post Note Action + * + * @param string $httpData->appUid (optional, if it is not passed try use $_SESSION['APPLICATION']) + * @return array containg the case notes + */ + function postNote ($httpData) + { + //extract(getExtJSParams()); + if (isset( $httpData->appUid ) && trim( $httpData->appUid ) != "") { + $appUid = $httpData->appUid; + } else { + $appUid = $_SESSION['APPLICATION']; + } + + if (! isset( $appUid )) { + throw new Exception( 'Can\'t resolve the Apllication ID for this request.' ); + } + + $usrUid = (isset( $_SESSION['USER_LOGGED'] )) ? $_SESSION['USER_LOGGED'] : ""; + require_once ("classes/model/AppNotes.php"); + + $appNotes = new AppNotes(); + $noteContent = addslashes( $httpData->noteText ); + + $result = $appNotes->postNewNote( $appUid, $usrUid, $noteContent, false ); + + //Disabling the controller response because we handle a special behavior + $this->setSendResponse( false ); + + //Send the response to client + @ini_set( 'implicit_flush', 1 ); + ob_start(); + echo G::json_encode( $result ); + @ob_flush(); + @flush(); + @ob_end_flush(); + ob_implicit_flush( 1 ); + + //Send notification in background + if (intval( $httpData->swSendMail ) == 1) { + G::LoadClass( "case" ); + + $oCase = new Cases(); + + $p = $oCase->getUsersParticipatedInCase( $appUid ); + $noteRecipientsList = array (); + + foreach ($p["array"] as $key => $userParticipated) { + $noteRecipientsList[] = $key; + } + + $noteRecipients = implode( ",", $noteRecipientsList ); + $noteContent = stripslashes( $noteContent ); + + $appNotes->sendNoteNotification( $appUid, $usrUid, $noteContent, $noteRecipients ); + } + } + + /** + * request to open the case summary + * + * @param string $httpData->appUid + * @param string $httpData->delIndex + * @return object bool $result->succes, string $result->message(is an exception was thrown), string $result->dynUid + */ + function requestOpenSummary ($httpData) + { + global $RBAC; + $this->success = true; + $this->dynUid = ''; + + switch ($RBAC->userCanAccess( 'PM_CASES' )) { + case - 2: + throw new Exception( G::LoadTranslation( 'ID_USER_HAVENT_RIGHTS_SYSTEM' ) ); + break; + case - 1: + throw new Exception( G::LoadTranslation( 'ID_USER_HAVENT_RIGHTS_PAGE' ) ); + break; + } + + G::LoadClass( 'case' ); + $case = new Cases(); + + if ($RBAC->userCanAccess( 'PM_ALLCASES' ) < 0 && $case->userParticipatedInCase( $httpData->appUid, $_SESSION['USER_LOGGED'] ) == 0) { + throw new Exception( G::LoadTranslation( 'ID_NO_PERMISSION_NO_PARTICIPATED' ) ); + } + + $applicationFields = $case->loadCase( $httpData->appUid, $httpData->delIndex ); + $process = new Process(); + $processData = $process->load( $applicationFields['PRO_UID'] ); + + if (isset( $processData['PRO_DYNAFORMS']['PROCESS'] )) { + $this->dynUid = $processData['PRO_DYNAFORMS']['PROCESS']; + } + + $_SESSION['_applicationFields'] = $applicationFields; + $_SESSION['_processData'] = $processData; + $_SESSION['APPLICATION'] = $httpData->appUid; + $_SESSION['INDEX'] = $httpData->delIndex; + $_SESSION['PROCESS'] = $applicationFields['PRO_UID']; + $_SESSION['TASK'] = $applicationFields['TAS_UID']; + $_SESSION['STEP_POSITION'] = ''; + } + + /** + * get the case summary data + * + * @param string $httpData->appUid + * @param string $httpData->delIndex + * @return array containg the case summary data + */ + function getSummary ($httpData) + { + $labels = array (); + $form = new Form( 'cases/cases_Resume', PATH_XMLFORM, SYS_LANG ); + G::LoadClass( 'case' ); + $case = new Cases(); + + foreach ($form->fields as $fieldName => $field) { + $labels[$fieldName] = $field->label; + } + + if (isset( $_SESSION['_applicationFields'] ) && $_SESSION['_processData']) { + $applicationFields = $_SESSION['_applicationFields']; + unset( $_SESSION['_applicationFields'] ); + $processData = $_SESSION['_processData']; + unset( $_SESSION['_processData'] ); + } else { + $applicationFields = $case->loadCase( $httpData->appUid, $httpData->delIndex ); + $process = new Process(); + $processData = $process->load( $applicationFields['PRO_UID'] ); + } + + $data = array (); + $task = new Task(); + $taskData = $task->load( $applicationFields['TAS_UID'] ); + $currentUser = $applicationFields['CURRENT_USER'] != '' ? $applicationFields['CURRENT_USER'] : '[' . G::LoadTranslation( 'ID_UNASSIGNED' ) . ']'; + + $data[] = array ('label' => $labels['PRO_TITLE'],'value' => $processData['PRO_TITLE'],'section' => $labels['TITLE1'] + ); + $data[] = array ('label' => $labels['TITLE'],'value' => $applicationFields['TITLE'],'section' => $labels['TITLE1'] + ); + $data[] = array ('label' => $labels['APP_NUMBER'],'value' => $applicationFields['APP_NUMBER'],'section' => $labels['TITLE1'] + ); + $data[] = array ('label' => $labels['STATUS'],'value' => $applicationFields['STATUS'],'section' => $labels['TITLE1'] + ); + $data[] = array ('label' => $labels['APP_UID'],'value' => $applicationFields['APP_UID'],'section' => $labels['TITLE1'] + ); + $data[] = array ('label' => $labels['CREATOR'],'value' => $applicationFields['CREATOR'],'section' => $labels['TITLE1'] + ); + $data[] = array ('label' => $labels['CREATE_DATE'],'value' => $applicationFields['CREATE_DATE'],'section' => $labels['TITLE1'] + ); + $data[] = array ('label' => $labels['UPDATE_DATE'],'value' => $applicationFields['UPDATE_DATE'],'section' => $labels['TITLE1'] + ); + $data[] = array ('label' => $labels['DESCRIPTION'],'value' => $applicationFields['DESCRIPTION'],'section' => $labels['TITLE1'] + ); + + // note added by krlos pacha carlos[at]colosa[dot]com + //getting this field if it doesn't exist. Related 7994 bug + $taskData['TAS_TITLE'] = (array_key_exists( 'TAS_TITLE', $taskData )) ? $taskData['TAS_TITLE'] : Content::Load( "TAS_TITLE", "", $applicationFields['TAS_UID'], SYS_LANG ); + + $data[] = array ('label' => $labels['TAS_TITLE'],'value' => $taskData['TAS_TITLE'],'section' => $labels['TITLE2'] + ); + $data[] = array ('label' => $labels['CURRENT_USER'],'value' => $currentUser,'section' => $labels['TITLE2'] + ); + $data[] = array ('label' => $labels['DEL_DELEGATE_DATE'],'value' => $applicationFields['DEL_DELEGATE_DATE'],'section' => $labels['TITLE2'] + ); + $data[] = array ('label' => $labels['DEL_INIT_DATE'],'value' => $applicationFields['DEL_INIT_DATE'],'section' => $labels['TITLE2'] + ); + $data[] = array ('label' => $labels['DEL_TASK_DUE_DATE'],'value' => $applicationFields['DEL_TASK_DUE_DATE'],'section' => $labels['TITLE2'] + ); + $data[] = array ('label' => $labels['DEL_FINISH_DATE'],'value' => $applicationFields['DEL_FINISH_DATE'],'section' => $labels['TITLE2'] + ); + //$data[] = array('label'=>$labels['DYN_UID'] , 'value' => $processData['PRO_DYNAFORMS']['PROCESS'];, 'section'=>$labels['DYN_UID']); + return $data; + } +} + diff --git a/workflow/engine/controllers/authSourceProxy.php b/workflow/engine/controllers/authSourceProxy.php index 83fff9c79..2974bbcef 100755 --- a/workflow/engine/controllers/authSourceProxy.php +++ b/workflow/engine/controllers/authSourceProxy.php @@ -1,102 +1,81 @@ - $params->optionAuthS); + $G_PUBLISH = new Publisher(); + $data=array(); + $aCommonFields = array('AUTH_SOURCE_UID', + 'AUTH_SOURCE_NAME', + 'AUTH_SOURCE_PROVIDER', + 'AUTH_SOURCE_SERVER_NAME', + 'AUTH_SOURCE_PORT', + 'AUTH_SOURCE_ENABLED_TLS', + 'AUTH_ANONYMOUS', + 'AUTH_SOURCE_SEARCH_USER', + 'AUTH_SOURCE_PASSWORD', + 'AUTH_SOURCE_VERSION', + 'AUTH_SOURCE_BASE_DN', + 'AUTH_SOURCE_OBJECT_CLASSES', + 'AUTH_SOURCE_ATTRIBUTES'); + $aFields = $aData = array(); - - - - -class authSourceProxy extends HttpProxyController { - - function testingOption($params){ - /*global $RBAC; - - $fields = array('AUTH_SOURCE_PROVIDER' => $params->optionAuthS); - - $G_PUBLISH = new Publisher(); - $data=array(); - - $aCommonFields = array('AUTH_SOURCE_UID', - 'AUTH_SOURCE_NAME', - 'AUTH_SOURCE_PROVIDER', - 'AUTH_SOURCE_SERVER_NAME', - 'AUTH_SOURCE_PORT', - 'AUTH_SOURCE_ENABLED_TLS', - 'AUTH_ANONYMOUS', - 'AUTH_SOURCE_SEARCH_USER', - 'AUTH_SOURCE_PASSWORD', - 'AUTH_SOURCE_VERSION', - 'AUTH_SOURCE_BASE_DN', - 'AUTH_SOURCE_OBJECT_CLASSES', - 'AUTH_SOURCE_ATTRIBUTES'); - - $aFields = $aData = array(); - - unset($params->PHPSESSID); - foreach ($params as $sField => $sValue) { - if (in_array($sField, $aCommonFields)) { - $aFields[$sField] = (($sField=='AUTH_SOURCE_ENABLED_TLS' || $sField=='AUTH_ANONYMOUS'))? ($sValue=='yes')?1:0 :$sValue; - } - else { - $aData[$sField] = $sValue; - } - } - $aFields['AUTH_SOURCE_DATA'] = $aData; - if (isset($aFields['AUTH_SOURCE_UID']) && $aFields['AUTH_SOURCE_UID'] != '') { - $RBAC->updateAuthSource($aFields); - } - else { - $aAuth = $RBAC->createAuthSource($aFields); - }*/ - //G::pr($aAuth);die; - $data['success'] = true; - $data['optionAuthS'] = $params->optionAuthS; - //$data['sUID'] = $aAuth; - return $data; - } - - function saveAuthSources($params){ - - global $RBAC; - if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') != 1) { - G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); - G::header('location: ../login/login'); - die; - } - $aCommonFields = array('AUTH_SOURCE_UID', - 'AUTH_SOURCE_NAME', - 'AUTH_SOURCE_PROVIDER', - 'AUTH_SOURCE_SERVER_NAME', - 'AUTH_SOURCE_PORT', - 'AUTH_SOURCE_ENABLED_TLS', - 'AUTH_ANONYMOUS', - 'AUTH_SOURCE_SEARCH_USER', - 'AUTH_SOURCE_PASSWORD', - 'AUTH_SOURCE_VERSION', - 'AUTH_SOURCE_BASE_DN', - 'AUTH_SOURCE_OBJECT_CLASSES', - 'AUTH_SOURCE_ATTRIBUTES'); - - $aFields = $aData = array(); - - unset($params->PHPSESSID); - foreach ($params as $sField => $sValue) { - if (in_array($sField, $aCommonFields)) { - $aFields[$sField] = (($sField=='AUTH_SOURCE_ENABLED_TLS' || $sField=='AUTH_ANONYMOUS'))? ($sValue=='yes')?1:0 :$sValue; - } - else { - $aData[$sField] = $sValue; - } - } - $aFields['AUTH_SOURCE_DATA'] = $aData; - if ($aFields['AUTH_SOURCE_UID'] == '') { - $RBAC->createAuthSource($aFields); - } - else { - $RBAC->updateAuthSource($aFields); - } - $data=array(); - $data['success'] = true; - return $data; - }//end saveAuthSoruces function - - -} //end authSourceProxy class + unset($params->PHPSESSID); + foreach ($params as $sField => $sValue) { + if (in_array($sField, $aCommonFields)) { + $aFields[$sField] = (($sField=='AUTH_SOURCE_ENABLED_TLS' || $sField=='AUTH_ANONYMOUS'))? ($sValue=='yes')?1:0 :$sValue; + } + else { + $aData[$sField] = $sValue; + } + } + $aFields['AUTH_SOURCE_DATA'] = $aData; + if (isset($aFields['AUTH_SOURCE_UID']) && $aFields['AUTH_SOURCE_UID'] != '') { + $RBAC->updateAuthSource($aFields); + } + else { + $aAuth = $RBAC->createAuthSource($aFields); + }*/ + //G::pr($aAuth);die; + $data['success'] = true; + $data['optionAuthS'] = $params->optionAuthS; + //$data['sUID'] = $aAuth; + return $data; + } + + function saveAuthSources ($params) + { + global $RBAC; + if ($RBAC->userCanAccess( 'PM_SETUP_ADVANCE' ) != 1) { + G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' ); + G::header( 'location: ../login/login' ); + die(); + } + $aCommonFields = array ('AUTH_SOURCE_UID','AUTH_SOURCE_NAME','AUTH_SOURCE_PROVIDER','AUTH_SOURCE_SERVER_NAME','AUTH_SOURCE_PORT','AUTH_SOURCE_ENABLED_TLS','AUTH_ANONYMOUS','AUTH_SOURCE_SEARCH_USER','AUTH_SOURCE_PASSWORD','AUTH_SOURCE_VERSION','AUTH_SOURCE_BASE_DN','AUTH_SOURCE_OBJECT_CLASSES','AUTH_SOURCE_ATTRIBUTES'); + + $aFields = $aData = array (); + + unset( $params->PHPSESSID ); + foreach ($params as $sField => $sValue) { + if (in_array( $sField, $aCommonFields )) { + $aFields[$sField] = (($sField == 'AUTH_SOURCE_ENABLED_TLS' || $sField == 'AUTH_ANONYMOUS')) ? ($sValue == 'yes') ? 1 : 0 : $sValue; + } else { + $aData[$sField] = $sValue; + } + } + $aFields['AUTH_SOURCE_DATA'] = $aData; + if ($aFields['AUTH_SOURCE_UID'] == '') { + $RBAC->createAuthSource( $aFields ); + } else { + $RBAC->updateAuthSource( $aFields ); + } + $data = array (); + $data['success'] = true; + return $data; + } //end saveAuthSoruces function +} //end authSourceProxy class + diff --git a/workflow/engine/methods/cases/casesMenuLoader.php b/workflow/engine/methods/cases/casesMenuLoader.php index def25208e..760481042 100755 --- a/workflow/engine/methods/cases/casesMenuLoader.php +++ b/workflow/engine/methods/cases/casesMenuLoader.php @@ -24,16 +24,13 @@ function getLoadTreeMenuData () $oMenu->load( 'cases' ); $oCases = new Cases(); - $aTypes = Array ('to_do','draft','cancelled','sent','paused','completed','selfservice' + $aTypes = Array ('to_do','draft','cancelled','sent','paused','completed','selfservice'); //'to_revise', //'to_reassign' - ; - $aTypesID = Array ('CASES_INBOX' => 'to_do','CASES_DRAFT' => 'draft','CASES_CANCELLED' => 'cancelled','CASES_SENT' => 'sent','CASES_PAUSED' => 'paused','CASES_COMPLETED' => 'completed','CASES_SELFSERVICE' => 'selfservice' + $aTypesID = Array ('CASES_INBOX' => 'to_do','CASES_DRAFT' => 'draft','CASES_CANCELLED' => 'cancelled','CASES_SENT' => 'sent','CASES_PAUSED' => 'paused','CASES_COMPLETED' => 'completed','CASES_SELFSERVICE' => 'selfservice'); //'CASES_TO_REVISE'=>'to_revise', //'CASES_TO_REASSIGN'=>'to_reassign' - ; - - $list = array (); + $list = array (); $list['count'] = ' '; $empty = array (); @@ -64,8 +61,7 @@ function getLoadTreeMenuData () $menuCases[$CurrentBlockID]['blockType'] = $oMenu->Types[$i]; $menuCases[$CurrentBlockID]['link'] = $oMenu->Options[$i]; } else { - $menuCases[$CurrentBlockID]['blockItems'][$oMenu->Id[$i]] = Array ('label' => $oMenu->Labels[$i],'link' => $oMenu->Options[$i],'icon' => (isset( $oMenu->Icons[$i] ) && $oMenu->Icons[$i] != '') ? $oMenu->Icons[$i] : 'kcmdf.png' - ); + $menuCases[$CurrentBlockID]['blockItems'][$oMenu->Id[$i]] = Array ('label' => $oMenu->Labels[$i],'link' => $oMenu->Options[$i],'icon' => (isset( $oMenu->Icons[$i] ) && $oMenu->Icons[$i] != '') ? $oMenu->Icons[$i] : 'kcmdf.png'); if (isset( $aTypesID[$oMenu->Id[$i]] )) { $menuCases[$CurrentBlockID]['blockItems'][$oMenu->Id[$i]]['cases_count'] = $aCount[$aTypesID[$oMenu->Id[$i]]]['count']; @@ -131,8 +127,7 @@ function getProcess () $aTypesID['CASES_SELFSERVICE'] = 'selfservice'; //$aTypesID['CASES_TO_REVISE'] = 'to_revise'; //$aTypesID['CASES_TO_REASSIGN'] = 'to_reassign'; - $aTypesID = Array ('CASES_INBOX' => 'to_do','CASES_DRAFT' => 'draft','CASES_CANCELLED' => 'cancelled','CASES_SENT' => 'sent','CASES_PAUSED' => 'paused','CASES_COMPLETED' => 'completed','CASES_SELFSERVICE' => 'selfservice','CASES_TO_REVISE' => 'to_revise','CASES_TO_REASSIGN' => 'to_reassign' - ); + $aTypesID = Array ('CASES_INBOX' => 'to_do','CASES_DRAFT' => 'draft','CASES_CANCELLED' => 'cancelled','CASES_SENT' => 'sent','CASES_PAUSED' => 'paused','CASES_COMPLETED' => 'completed','CASES_SELFSERVICE' => 'selfservice','CASES_TO_REVISE' => 'to_revise','CASES_TO_REASSIGN' => 'to_reassign'); $aCount = $oCases->getAllCounters( Array ($aTypesID[$type] ), $userId, true ); @@ -188,8 +183,7 @@ function getAllCounters () $aCount = $ApplicationSolrIndex->getCasesCount( $userUid ); //get paused count - $aCountMissing = $oAppCache->getAllCounters( array ('paused','completed','cancelled' - ), $userUid ); + $aCountMissing = $oAppCache->getAllCounters( array ('paused','completed','cancelled'), $userUid ); $aCount = array_merge( $aCount, $aCountMissing ); } else { diff --git a/workflow/engine/methods/controls/buscador.php b/workflow/engine/methods/controls/buscador.php index 933f368c5..6bd27a558 100755 --- a/workflow/engine/methods/controls/buscador.php +++ b/workflow/engine/methods/controls/buscador.php @@ -1,50 +1,52 @@ -. - * - * For more information, contact Colosa Inc, 2566 Le Jeune Rd., - * Coral Gables, FL, 33134, USA, or email info@colosa.com. - * - */ - $frm = $HTTP_GET_VARS; - -?> - -

demo de buscador

-
- - -Buscador tipo :
- - - -
- curso -
-
-
- - - +. + * + * For more information, contact Colosa Inc, 2566 Le Jeune Rd., + * Coral Gables, FL, 33134, USA, or email info@colosa.com. + */ +$frm = $HTTP_GET_VARS; + +?> + +

demo de buscador

+
+ +Buscador tipo :
+ + + + + + + + + +
curso
+
+ + + diff --git a/workflow/engine/methods/controls/buscador2.php b/workflow/engine/methods/controls/buscador2.php index 9466b8641..301b360ae 100755 --- a/workflow/engine/methods/controls/buscador2.php +++ b/workflow/engine/methods/controls/buscador2.php @@ -1,38 +1,32 @@ -demo de buscador
-/** - * buscador2.php - * - * ProcessMaker Open Source Edition - * Copyright (C) 2004 - 2008 Colosa Inc.23 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. +demo de buscador +
+/** * buscador2.php * * ProcessMaker Open Source Edition * Copyright (C) +2004 - 2008 Colosa Inc.23 * * This program is free software: you can +redistribute it and/or modify * it under the terms of the GNU Affero +General Public License as * published by the Free Software Foundation, +either version 3 of the * License, or (at your option) any later +version. * * This program is distributed in the hope that it will be +useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU +Affero General Public License for more details. * * You should have +received a copy of the GNU Affero General Public License * along with +this program. If not, see + +. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - * For more information, contact Colosa Inc, 2566 Le Jeune Rd., + * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. - * + * */ -Execute ( $sql ); +Execute( $sql ); ?> - - diff --git a/workflow/engine/methods/controls/calendar.js b/workflow/engine/methods/controls/calendar.js index 699b00378..33179d766 100755 --- a/workflow/engine/methods/controls/calendar.js +++ b/workflow/engine/methods/controls/calendar.js @@ -57,9 +57,6 @@ function cal_popup1 (str_datetime) { ); obj_calwindow.opener = window; obj_calwindow.focus(); - - - } // timestamp generating function @@ -160,3 +157,4 @@ function cal_error (str_message) { alert (str_message); return null; } + diff --git a/workflow/engine/methods/controls/calendar.php b/workflow/engine/methods/controls/calendar.php index c7a9013b9..ee4ad7a70 100755 --- a/workflow/engine/methods/controls/calendar.php +++ b/workflow/engine/methods/controls/calendar.php @@ -22,7 +22,10 @@ * Coral Gables, FL, 33134, USA, or email info@colosa.com. * */ - td {font-family: Tahoma, Verdana, sans-serif; font-size: 12px;} +td { + font-family: Tahoma, Verdana, sans-serif; + font-size: 12px; +} - -'; + $sHTML .= ''; + $sHTML .= ''; + $sHTML .= ''; + $sHTML .= ''; + $sHTML .= ''; + } + $sHTML .= ''; + //$sHTML .= ''; + $sHTML .= '
- - +
- - + + + +
+(obj_caller&&obj_caller.year_scroll?' - previous year ':'')+' - - previous month -
+ + + - - -
+ + - - ' -); - - -
+(obj_caller&&obj_caller.year_scroll?' previous year ':'')+' previous month + - +ARR_MONTHS[dt_current.getMonth()]+' '+dt_current.getFullYear() - next month - '+(obj_caller && obj_caller.year_scroll?'  - - next year - ':'')+' -
+ +
- - + \ No newline at end of file diff --git a/workflow/engine/methods/controls/varsAjax.php b/workflow/engine/methods/controls/varsAjax.php index 1e5f251d0..721f29d93 100755 --- a/workflow/engine/methods/controls/varsAjax.php +++ b/workflow/engine/methods/controls/varsAjax.php @@ -12,69 +12,59 @@ * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . + * along with this program. If not, see . * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. - * */ -G::LoadClass('xmlfield_InputPM'); -$aFields = getDynaformsVars($_POST['sProcess'], true, isset($_POST['bIncMulSelFields']) ? $_POST['bIncMulSelFields'] : 0); +G::LoadClass( 'xmlfield_InputPM' ); +$aFields = getDynaformsVars( $_POST['sProcess'], true, isset( $_POST['bIncMulSelFields'] ) ? $_POST['bIncMulSelFields'] : 0 ); -$sHTML = ''; +foreach ($aFields as $aField) { + $sHTML .= ''; } -$aRows[0] = Array ( - 'fieldname' => 'char', - 'variable' => 'char', - 'type' => 'type', - 'label' => 'char' +$aRows[0] = Array ('fieldname' => 'char','variable' => 'char','type' => 'type','label' => 'char' ); -foreach ( $aFields as $aField ) { - $aRows[] = Array ( - 'fieldname' => $_POST['sFieldName'], - 'variable' => $_POST['sSymbol'] . $aField['sName'], - 'variable_label' => '', - 'type' => $aField['sType'], - 'label' => $aField['sLabel'] - ); +foreach ($aFields as $aField) { + $aRows[] = Array ('fieldname' => $_POST['sFieldName'],'variable' => $_POST['sSymbol'] . $aField['sName'],'variable_label' => '','type' => $aField['sType'],'label' => $aField['sLabel'] + ); } $sHTML .= ''; $sHTML = ''; -if (! isset($_POST['sNoShowLeyend'])) { - $sHTML = ''; - $sHTML .= ''; - if (isset($_POST['sType'])) { - $sHTML .= ''; - $sHTML .= ''; - /*$sHTML .= ''; +if (! isset( $_POST['sNoShowLeyend'] )) { + $sHTML = '
Variables cast prefix
' . G::LoadTranslation('ID_ESC') . '
' . G::LoadTranslation('ID_NONEC') . '
' . G::LoadTranslation('ID_EURL') . '
'; + $sHTML .= ''; + if (isset( $_POST['sType'] )) { + $sHTML .= ''; + $sHTML .= ''; + /*$sHTML .= ''; $sHTML .= ''; $sHTML .= ''; $sHTML .= ''; $sHTML .= '';*/ - } else { - $sHTML .= ''; - $sHTML .= ''; - $sHTML .= ''; - $sHTML .= ''; - $sHTML .= ''; - $sHTML .= ''; - } - $sHTML .= ''; - //$sHTML .= ''; - $sHTML .= '
Variables cast prefix
' . G::LoadTranslation( 'ID_ESC' ) . '
' . G::LoadTranslation( 'ID_NONEC' ) . '
' . G::LoadTranslation('ID_EURL') . '
' . G::LoadTranslation('ID_EVAL') . '
' . G::LoadTranslation('ID_ESCJS') . '
' . G::LoadTranslation('ID_ESCSJS') . '
' . G::LoadTranslation('ID_FUNCTION') . '
@@' . G::LoadTranslation('ID_TO_STRING') . '
@#' . G::LoadTranslation('ID_TO_FLOAT') . '
@%' . G::LoadTranslation('ID_TO_INTEGER') . '
@?' . G::LoadTranslation('ID_TO_URL') . '
@$' . G::LoadTranslation('ID_SQL_ESCAPE') . '
@=' . G::LoadTranslation('ID_REPLACE_WITHOUT_CHANGES') . '
 
' . G::LoadTranslation('ID_DOCLICK') . '
'; + } else { + $sHTML .= '
@@' . G::LoadTranslation( 'ID_TO_STRING' ) . '
@#' . G::LoadTranslation( 'ID_TO_FLOAT' ) . '
@%' . G::LoadTranslation( 'ID_TO_INTEGER' ) . '
@?' . G::LoadTranslation( 'ID_TO_URL' ) . '
@$' . G::LoadTranslation( 'ID_SQL_ESCAPE' ) . '
@=' . G::LoadTranslation( 'ID_REPLACE_WITHOUT_CHANGES' ) . '
 
' . G::LoadTranslation('ID_DOCLICK') . '
'; } else { - // please don't remove this definition if there isn't some sort of html tags before the css styles aren't loaded in IE - $sHTML = ''; - $sHTML .= '
'; + // please don't remove this definition if there isn't some sort of html tags before the css styles aren't loaded in IE + $sHTML = ''; + $sHTML .= '
'; } $sStyle = " "; $cssTabs = " "; echo $sHTML; echo $sStyle; - //////////////////////////////////////////////////////// + echo "
"; echo $cssTabs; -G::LoadClass('ArrayPeer'); +G::LoadClass( 'ArrayPeer' ); global $_DBArray; $_DBArray['dynavars'] = $aRows; $_SESSION['_DBArray'] = $_DBArray; -G::LoadClass('ArrayPeer'); -$oCriteria = new Criteria('dbarray'); -$oCriteria->setDBArrayTable('dynavars'); +G::LoadClass( 'ArrayPeer' ); +$oCriteria = new Criteria( 'dbarray' ); +$oCriteria->setDBArrayTable( 'dynavars' ); $aFields = array (); $G_PUBLISH = new Publisher(); -$oHeadPublisher =& headPublisher::getSingleton(); +$oHeadPublisher = & headPublisher::getSingleton(); $oHeadPublisher->addScriptFile( "/jscore/controls/varsAjax.js" ); -$G_PUBLISH->AddContent('propeltable', 'paged-table', 'triggers/dynavars', $oCriteria); -G::RenderPage('publish', 'raw'); +$G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'triggers/dynavars', $oCriteria ); +G::RenderPage( 'publish', 'raw' ); echo "
"; -?> \ No newline at end of file + diff --git a/workflow/engine/methods/controls/varsAjaxByType.php b/workflow/engine/methods/controls/varsAjaxByType.php index c3065b93b..f86361002 100755 --- a/workflow/engine/methods/controls/varsAjaxByType.php +++ b/workflow/engine/methods/controls/varsAjaxByType.php @@ -1,115 +1,89 @@ -. - * - * For more information, contact Colosa Inc, 2566 Le Jeune Rd., - * Coral Gables, FL, 33134, USA, or email info@colosa.com. - * - */ - -/** - * @author Gustavo Cruz gustavo-at-colosa.com - * @param $_POST variables - * @desc the varAjaxByType file as the varAjax.php handle the render of the diferent - * types of dynaform variables there are 3 of them system, process, and the default - * that show both system and process variables. - * uses almost the same variables passed to varsAjax, plus $_POST['type'] that is the - * type of the variables. Then it render a propel table with all the variables - * loaded for that type. - */ - -G::LoadClass('xmlfield_InputPM'); -$aFields = getDynaformsVars($_POST['sProcess'], true, isset($_POST['bIncMulSelFields']) ? $_POST['bIncMulSelFields'] : 0); -$aType = $_POST['type']; - -$aRows[0] = Array ( - 'fieldname' => 'char', - 'variable' => 'char', - 'type' => 'type', - 'label' => 'char' -); -foreach ( $aFields as $aField ) { - switch ($aType){ - case "system": - if($aField['sType']=="system"){ - $aRows[] = Array ( - 'fieldname' => $_POST['sFieldName'], - 'variable' => $_POST['sSymbol'] . $aField['sName'], - 'variable_label' => '', - 'type' => $aField['sType'], - 'label' => $aField['sLabel'] - ); - } - break; - case "process": - if($aField['sType']!="system"){ - $aRows[] = Array ( - 'fieldname' => $_POST['sFieldName'], - 'variable' => $_POST['sSymbol'] . $aField['sName'], - 'variable_label' => '', - 'type' => $aField['sType'], - 'label' => $aField['sLabel'] - ); - } - break; - default: - $aRows[] = Array ( - 'fieldname' => $_POST['sFieldName'], - 'variable' => $_POST['sSymbol'] . $aField['sName'], - 'variable_label' => '', - 'type' => $aField['sType'], - 'label' => $aField['sLabel'] - ); - break; - } - -} +. + * + * For more information, contact Colosa Inc, 2566 Le Jeune Rd., + * Coral Gables, FL, 33134, USA, or email info@colosa.com. + */ + +/** + * the varAjaxByType file as the varAjax.php handle the render of the diferent + * types of dynaform variables there are 3 of them system, process, and the default + * that show both system and process variables. + * uses almost the same variables passed to varsAjax, plus $_POST['type'] that is the + * type of the variables. Then it render a propel table with all the variables + * loaded for that type. + * + * @author Gustavo Cruz gustavo-at-colosa.com + * @param $_POST variables + */ + +G::LoadClass( 'xmlfield_InputPM' ); +$aFields = getDynaformsVars( $_POST['sProcess'], true, isset( $_POST['bIncMulSelFields'] ) ? $_POST['bIncMulSelFields'] : 0 ); +$aType = $_POST['type']; + +$aRows[0] = Array ('fieldname' => 'char','variable' => 'char','type' => 'type','label' => 'char' +); +foreach ($aFields as $aField) { + switch ($aType) { + case "system": + if ($aField['sType'] == "system") { + $aRows[] = Array ('fieldname' => $_POST['sFieldName'],'variable' => $_POST['sSymbol'] . $aField['sName'],'variable_label' => '','type' => $aField['sType'],'label' => $aField['sLabel'] + ); + } + break; + case "process": + if ($aField['sType'] != "system") { + $aRows[] = Array ('fieldname' => $_POST['sFieldName'],'variable' => $_POST['sSymbol'] . $aField['sName'],'variable_label' => '','type' => $aField['sType'],'label' => $aField['sLabel'] + ); + } + break; + default: + $aRows[] = Array ('fieldname' => $_POST['sFieldName'],'variable' => $_POST['sSymbol'] . $aField['sName'],'variable_label' => '','type' => $aField['sType'],'label' => $aField['sLabel'] + ); + break; + } + +} // Use and make a load translation variable call to the titles of the tabs -$cssTabs = "
+$cssTabs = " - "; - -echo $cssTabs; -G::LoadClass('ArrayPeer'); - -global $_DBArray; -$_DBArray['dynavars'] = $aRows; -$_SESSION['_DBArray'] = $_DBArray; - -G::LoadClass('ArrayPeer'); -$oCriteria = new Criteria('dbarray'); -$oCriteria->setDBArrayTable('dynavars'); - -$aFields = array (); -$G_PUBLISH = new Publisher(); -$G_PUBLISH->AddContent('propeltable', 'paged-table', 'triggers/dynavars', $oCriteria); -G::RenderPage('publish', 'raw'); - -?> + "; + +echo $cssTabs; +G::LoadClass( 'ArrayPeer' ); + +global $_DBArray; +$_DBArray['dynavars'] = $aRows; +$_SESSION['_DBArray'] = $_DBArray; + +G::LoadClass( 'ArrayPeer' ); +$oCriteria = new Criteria( 'dbarray' ); +$oCriteria->setDBArrayTable( 'dynavars' ); + +$aFields = array (); +$G_PUBLISH = new Publisher(); +$G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'triggers/dynavars', $oCriteria ); +G::RenderPage( 'publish', 'raw' ); + diff --git a/workflow/engine/methods/events/eventList.php b/workflow/engine/methods/events/eventList.php index f59820ca0..dc98cce45 100644 --- a/workflow/engine/methods/events/eventList.php +++ b/workflow/engine/methods/events/eventList.php @@ -12,84 +12,85 @@ * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . + * along with this program. If not, see . * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. - * */ global $RBAC; -if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') != 1) { - G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); - G::header('location: ../login/login'); - die; +if ($RBAC->userCanAccess( 'PM_SETUP_ADVANCE' ) != 1) { + G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' ); + G::header( 'location: ../login/login' ); + die(); } -G::LoadClass('configuration'); +G::LoadClass( 'configuration' ); $c = new Configurations(); -$configPage = $c->getConfiguration('eventList', 'pageSize','',$_SESSION['USER_LOGGED']); -$Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20; +$configPage = $c->getConfiguration( 'eventList', 'pageSize', '', $_SESSION['USER_LOGGED'] ); +$Config['pageSize'] = isset( $configPage['pageSize'] ) ? $configPage['pageSize'] : 20; -$G_MAIN_MENU = 'processmaker'; -$G_SUB_MENU = 'logs'; -$G_ID_MENU_SELECTED = 'logs'; +$G_MAIN_MENU = 'processmaker'; +$G_SUB_MENU = 'logs'; +$G_ID_MENU_SELECTED = 'logs'; $G_ID_SUB_MENU_SELECTED = 'EVENT'; //get values for the comboBoxes -$userUid = ( isset($_SESSION['USER_LOGGED'] ) && $_SESSION['USER_LOGGED'] != '' ) ? - $_SESSION['USER_LOGGED'] : null; -$status = array( - array('', G::LoadTranslation('ID_ALL')), - array("PENDING",G::LoadTranslation('ID_OPEN')), - array("COMPLETED",G::LoadTranslation('ID_CLOSE'))); -$type = array( - array('', G::LoadTranslation('ID_ALL')), - array('SEND_MESSAGE',G::LoadTranslation('ID_EVENT_MESSAGE')), - array('EXECUTE_TRIGGER',G::LoadTranslation('ID_EVENT_TIMER')), - array('EXECUTE_CONDITIONAL_TRIGGER',G::LoadTranslation('ID_EVENT_CONDITIONAL'))); -$processes = getProcessArray($userUid ); +$userUid = (isset( $_SESSION['USER_LOGGED'] ) && $_SESSION['USER_LOGGED'] != '') ? $_SESSION['USER_LOGGED'] : null; +$status = array (array ('',G::LoadTranslation( 'ID_ALL' ) +),array ("PENDING",G::LoadTranslation( 'ID_OPEN' ) +),array ("COMPLETED",G::LoadTranslation( 'ID_CLOSE' ) +) +); +$type = array (array ('',G::LoadTranslation( 'ID_ALL' ) +),array ('SEND_MESSAGE',G::LoadTranslation( 'ID_EVENT_MESSAGE' ) +),array ('EXECUTE_TRIGGER',G::LoadTranslation( 'ID_EVENT_TIMER' ) +),array ('EXECUTE_CONDITIONAL_TRIGGER',G::LoadTranslation( 'ID_EVENT_CONDITIONAL' ) +) +); +$processes = getProcessArray( $userUid ); -$G_PUBLISH = new Publisher; +$G_PUBLISH = new Publisher(); -$oHeadPublisher =& headPublisher::getSingleton(); -$oHeadPublisher->addExtJsScript('events/eventList', false); //adding a javascript file .js -$oHeadPublisher->addContent('events/eventList'); //adding a html file .html. +$oHeadPublisher = & headPublisher::getSingleton(); +$oHeadPublisher->addExtJsScript( 'events/eventList', false ); //adding a javascript file .js +$oHeadPublisher->addContent( 'events/eventList' ); //adding a html file .html. //sending the columns to display in grid -$oHeadPublisher->assign( 'typeValues', $type ); -$oHeadPublisher->assign( 'statusValues', $status ); -$oHeadPublisher->assign( 'processValues', $processes); +$oHeadPublisher->assign( 'typeValues', $type ); +$oHeadPublisher->assign( 'statusValues', $status ); +$oHeadPublisher->assign( 'processValues', $processes ); -function getProcessArray ( $userUid ) { +function getProcessArray ($userUid) +{ global $oAppCache; - require_once ( "classes/model/AppCacheView.php" ); + require_once ("classes/model/AppCacheView.php"); - $processes = Array(); - $processes[] = array ( '', G::LoadTranslation('ID_ALL_PROCESS') ); + $processes = Array (); + $processes[] = array ('',G::LoadTranslation( 'ID_ALL_PROCESS' )); - $cProcess = new Criteria('workflow'); + $cProcess = new Criteria( 'workflow' ); $cProcess->clearSelectColumns(); - $cProcess->addSelectColumn(AppCacheViewPeer::PRO_UID); - $cProcess->addSelectColumn(AppCacheViewPeer::APP_PRO_TITLE); - $cProcess->setDistinct(AppCacheViewPeer::PRO_UID); - - $cProcess->addAscendingOrderByColumn(AppCacheViewPeer::APP_PRO_TITLE); + $cProcess->addSelectColumn( AppCacheViewPeer::PRO_UID ); + $cProcess->addSelectColumn( AppCacheViewPeer::APP_PRO_TITLE ); + $cProcess->setDistinct( AppCacheViewPeer::PRO_UID ); - $oDataset = AppCacheViewPeer::doSelectRS($cProcess); - $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $cProcess->addAscendingOrderByColumn( AppCacheViewPeer::APP_PRO_TITLE ); + + $oDataset = AppCacheViewPeer::doSelectRS( $cProcess ); + $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); - while($aRow = $oDataset->getRow()){ - $processes[] = array ( $aRow['PRO_UID'], $aRow['APP_PRO_TITLE'] ); - $oDataset->next(); + while ($aRow = $oDataset->getRow()) { + $processes[] = array ($aRow['PRO_UID'],$aRow['APP_PRO_TITLE']); + $oDataset->next(); } return $processes; } -G::RenderPage('publish', 'extJs'); +G::RenderPage( 'publish', 'extJs' ); diff --git a/workflow/engine/methods/events/eventsAjax.php b/workflow/engine/methods/events/eventsAjax.php index 852204690..c301f030e 100755 --- a/workflow/engine/methods/events/eventsAjax.php +++ b/workflow/engine/methods/events/eventsAjax.php @@ -6,7 +6,6 @@ require_once 'classes/model/Content.php'; switch($req){ case 'showUsers': - /* $sql = "SELECT USR_UID, USR_EMAIL, CONCAT(USR_FIRSTNAME, ' ' , USR_LASTNAME) AS USR_FULLNAME FROM USERS WHERE USR_STATUS = 'ACTIVE' AND USR_EMAIL <> ''"; */ @@ -29,7 +28,7 @@ switch($req){ $rs = $stmt->executeQuery(); $aRows[] = array('USR_UID'=>'char', 'USR_EMAIL'=>'char', 'USR_FULLNAME'=>'char'); - while($rs->next()){ + while ($rs->next()) { $aRows[] = array('USR_UID'=>$rs->getString('USR_UID'), 'USR_EMAIL'=>$rs->getString('USR_EMAIL'), 'USR_FULLNAME'=>$rs->getString('USR_FULLNAME')); } //echo '
';     print_r($aRows);
@@ -40,11 +39,10 @@ switch($req){
         G::LoadClass('ArrayPeer');
         $oCriteria = new Criteria('dbarray');
         $oCriteria->setDBArrayTable('virtualtable');
-
         $G_PUBLISH = new Publisher();
         $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/usermailList', $oCriteria);
         G::RenderPage('publish', 'raw');
-    break;
+        break;
     case 'showGroups':
         G::LoadClass('groups');
         $groups = new Groups();
@@ -56,41 +54,35 @@ switch($req){
             $GROUP_TITLE = strip_tags($group->getGrpTitle());
             $aRows[] = array('GRP_UID'=>$UID, 'GROUP_TITLE'=>$GROUP_TITLE);
         }
-
         global $_DBArray;
         $_DBArray['virtualtable']   = $aRows;
         $_SESSION['_DBArray'] = $_DBArray;
         G::LoadClass('ArrayPeer');
         $oCriteria = new Criteria('dbarray');
         $oCriteria->setDBArrayTable('virtualtable');
-
         $G_PUBLISH = new Publisher();
         $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/groupmailList', $oCriteria);
         G::RenderPage('publish', 'raw');
-    break;
+        break;
     case 'showDynavars':
         G::LoadClass('xmlfield_InputPM');
         $dynaformFields = getDynaformsVars($_SESSION['PROCESS'], false, false);
         $fields = array(array('id' => 'char', 'dynaform' => 'char', 'name' => 'char'));
-
         foreach ($dynaformFields as $dynaformField) {
             $fields[] = array('id' => $dynaformField['sName'],
                               'name' => '@#' . $dynaformField['sName'] . '', 'label' => $dynaformField['sLabel']);
         }
-
         global $_DBArray;
         $_DBArray['virtualtable'] = $fields;
         $_SESSION['_DBArray'] = $_DBArray;
         G::LoadClass('ArrayPeer');
         $oCriteria = new Criteria('dbarray');
         $oCriteria->setDBArrayTable('virtualtable');
-
         $G_PUBLISH = new Publisher();
         $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/dynavarsList', $oCriteria);
         G::RenderPage('publish', 'raw');
-    break;
+        break;
     case 'eventList':
-
         $start      = (isset($_REQUEST['start']))?      $_REQUEST['start']      : '0';
         $limit      = (isset($_REQUEST['limit']))?      $_REQUEST['limit']      : '25';
         $proUid     = (isset($_REQUEST['process']))?    $_REQUEST['process']    : '';
@@ -110,7 +102,7 @@ switch($req){
         $result = AppEventPeer::doSelectRS($criteria);
         $result->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $data = Array();
-        while( $result->next() ) {
+        while ( $result->next() ) {
             $data[] = $result->getRow();
         }
         $totalCount = count($data);
@@ -120,8 +112,7 @@ switch($req){
         if ($sort != '') {
             if ($dir == 'ASC') {
                 $criteria->addAscendingOrderByColumn($sort);
-            }
-            else {
+            } else {
                 $criteria->addDescendingOrderByColumn($sort);
             }
         } else {
@@ -136,12 +127,13 @@ switch($req){
         $data = Array();
         $dataPro = array();
         $index = 0;
-        while( $result->next() ) {
+        while ( $result->next() ) {
             $data[] = $result->getRow();
         }
         $response = array();
         $response['totalCount'] = $totalCount;
         $response['data']       = $data;
         die(G::json_encode($response));
-    break;
+        break;
 }
+
diff --git a/workflow/engine/methods/events/eventsCompleted.php b/workflow/engine/methods/events/eventsCompleted.php
index baaf787d3..5eab54b07 100755
--- a/workflow/engine/methods/events/eventsCompleted.php
+++ b/workflow/engine/methods/events/eventsCompleted.php
@@ -12,27 +12,27 @@
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU Affero General Public License for more details.
  *
  * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see .
+ * along with this program. If not, see .
  *
  * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
  * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
  */
 global $RBAC;
-if ($RBAC->userCanAccess('PM_SETUP') != 1) {
-  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  G::header('location: ../login/login');
-  die;
+if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1) {
+    G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+    G::header( 'location: ../login/login' );
+    die();
 }
 
 require_once 'classes/model/AppEvent.php';
 $oAppEvent = new AppEvent();
 
 global $G_PUBLISH;
-$G_PUBLISH = new Publisher;
-$G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/appEventsListCompleted', $oAppEvent->getAppEventsCriteria($_GET['PRO_UID'], 'COMPLETED', $_GET['EVN_TYPE']));
-G::RenderPage('publish', 'raw');
+$G_PUBLISH = new Publisher();
+$G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'events/appEventsListCompleted', $oAppEvent->getAppEventsCriteria( $_GET['PRO_UID'], 'COMPLETED', $_GET['EVN_TYPE'] ) );
+G::RenderPage( 'publish', 'raw' );
+
diff --git a/workflow/engine/methods/events/eventsDelete.php b/workflow/engine/methods/events/eventsDelete.php
index dd77c3bc9..2c5933c3d 100755
--- a/workflow/engine/methods/events/eventsDelete.php
+++ b/workflow/engine/methods/events/eventsDelete.php
@@ -12,24 +12,24 @@
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU Affero General Public License for more details.
  *
  * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see .
+ * along with this program. If not, see .
  *
  * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
  * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
  */
 global $RBAC;
-if ($RBAC->userCanAccess('PM_SETUP') != 1) {
-  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-	G::header('location: ../login/login');
-	die;
+if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1) {
+    G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+    G::header( 'location: ../login/login' );
+    die();
 }
 
 $evnUid = $_POST['EVN_UID'];
 require_once 'classes/model/Event.php';
 $oEvent = new Event();
-$oEvent->remove( $evnUid );
\ No newline at end of file
+$oEvent->remove( $evnUid );
+
diff --git a/workflow/engine/methods/events/eventsEdit.php b/workflow/engine/methods/events/eventsEdit.php
index c6186521d..46cf4d764 100755
--- a/workflow/engine/methods/events/eventsEdit.php
+++ b/workflow/engine/methods/events/eventsEdit.php
@@ -12,74 +12,68 @@
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU Affero General Public License for more details.
  *
  * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see .
+ * along with this program. If not, see .
  *
  * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
  * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
  */
 global $RBAC;
-if ($RBAC->userCanAccess('PM_SETUP') != 1) {
-  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-	G::header('location: ../login/login');
-	die;
+if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1) {
+    G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+    G::header( 'location: ../login/login' );
+    die();
 }
 
-G::LoadClass('tasks');
-G::LoadClass('processMap');
+G::LoadClass( 'tasks' );
+G::LoadClass( 'processMap' );
 global $_DBArray;
 
-if (isset($_GET['EVN_UID'])) {
-  require_once 'classes/model/Event.php';
-  $oEvent = new Event();
-  $aFields = $oEvent->load($_GET['EVN_UID']);
-}
-else {
-  $aFields = array('PRO_UID' => $_GET['PRO_UID']);
+if (isset( $_GET['EVN_UID'] )) {
+    require_once 'classes/model/Event.php';
+    $oEvent = new Event();
+    $aFields = $oEvent->load( $_GET['EVN_UID'] );
+} else {
+    $aFields = array ('PRO_UID' => $_GET['PRO_UID'] );
 }
 
-
-if (!isset($_SESSION['PROCESS'])){
-  if (isset($aFields['PRO_UID'])){
-    $_SESSION['PROCESS'] = $aFields['PRO_UID'];
-  }
+if (! isset( $_SESSION['PROCESS'] )) {
+    if (isset( $aFields['PRO_UID'] )) {
+        $_SESSION['PROCESS'] = $aFields['PRO_UID'];
+    }
 }
 
-$oTasks   = new Tasks();
-$aAux1    = $oTasks->getAllTasks($aFields['PRO_UID']);
-$aTasks   = array();
-$aTasks[] = array('TAS_UID'   => 'char',
-      	          'TAS_TITLE' => 'char');
+$oTasks = new Tasks();
+$aAux1 = $oTasks->getAllTasks( $aFields['PRO_UID'] );
+$aTasks = array ();
+$aTasks[] = array ('TAS_UID' => 'char','TAS_TITLE' => 'char');
 foreach ($aAux1 as $aAux2) {
-  if ($aAux2['TAS_TYPE'] != 'SUBPROCESS') {
-    $aTasks[] = array('TAS_UID'   => $aAux2['TAS_UID'], 'TAS_TITLE' => $aAux2['TAS_TITLE']);
-  }
+    if ($aAux2['TAS_TYPE'] != 'SUBPROCESS') {
+        $aTasks[] = array ('TAS_UID' => $aAux2['TAS_UID'],'TAS_TITLE' => $aAux2['TAS_TITLE'] );
+    }
 }
 
+$oProcessMap = new processMap( new DBConnection() );
+$aTriggersList = $oProcessMap->getTriggers( $_SESSION['PROCESS'] );
+$aTriggersFileds = Array ('TRI_UID' => 'char','TRI_TITLE' => 'char');
 
-$oProcessMap = new processMap(new DBConnection);
-$aTriggersList = $oProcessMap->getTriggers($_SESSION['PROCESS']);
-$aTriggersFileds = Array('TRI_UID'=>'char', 'TRI_TITLE'=>'char');
-
-foreach($aTriggersList as $i=>$v){
-  unset($aTriggersList[$i]['PRO_UID']);
-  unset($aTriggersList[$i]['TRI_DESCRIPTION']);
-  $aTriggersList[$i]['TRI_TITLE'] = (strlen($aTriggersList[$i]['TRI_TITLE'])>32)? substr($aTriggersList[$i]['TRI_TITLE'], 0, 32).'...': $aTriggersList[$i]['TRI_TITLE'];
+foreach ($aTriggersList as $i => $v) {
+    unset( $aTriggersList[$i]['PRO_UID'] );
+    unset( $aTriggersList[$i]['TRI_DESCRIPTION'] );
+    $aTriggersList[$i]['TRI_TITLE'] = (strlen( $aTriggersList[$i]['TRI_TITLE'] ) > 32) ? substr( $aTriggersList[$i]['TRI_TITLE'], 0, 32 ) . '...' : $aTriggersList[$i]['TRI_TITLE'];
 }
 
-$aTriggersList = array_merge(Array($aTriggersFileds), $aTriggersList);
+$aTriggersList = array_merge( Array ($aTriggersFileds, $aTriggersList ));
 
 $_DBArray['tasks'] = $aTasks;
 $_DBArray['TMP_TRIGGERS'] = $aTriggersList;
 
-
 $_SESSION['_DBArray'] = $_DBArray;
 
 $G_PUBLISH = new Publisher();
-$G_PUBLISH->AddContent('xmlform', 'xmlform', 'events/eventsEdit', '', $aFields, '../events/eventsSave');
-G::RenderPage('publish', 'raw');
-?>
+$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'events/eventsEdit', '', $aFields, '../events/eventsSave' );
+G::RenderPage( 'publish', 'raw' );
+
diff --git a/workflow/engine/methods/events/eventsEditAction.php b/workflow/engine/methods/events/eventsEditAction.php
index 23589f4a4..72e939d66 100755
--- a/workflow/engine/methods/events/eventsEditAction.php
+++ b/workflow/engine/methods/events/eventsEditAction.php
@@ -12,238 +12,224 @@
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU Affero General Public License for more details.
  *
  * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see .
+ * along with this program. If not, see .
  *
  * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
  * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
  */
 global $RBAC;
 global $_DBArray;
 
-if ($RBAC->userCanAccess('PM_SETUP') != 1) {
-  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-	G::header('location: ../login/login');
-	die;
+if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1) {
+    G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+    G::header( 'location: ../login/login' );
+    die();
 }
-if ( isset ($_SESSION['EVN_UID']) )  {
-  $evnUid = $_SESSION['EVN_UID'];
-  unset ( $_SESSION['EVN_UID'] );
+if (isset( $_SESSION['EVN_UID'] )) {
+    $evnUid = $_SESSION['EVN_UID'];
+    unset( $_SESSION['EVN_UID'] );
+} else {
+    $evnUid = $_GET['EVN_UID'];
 }
-else
-  $evnUid = $_GET['EVN_UID'];
 
 require_once 'classes/model/Event.php';
 require_once 'classes/model/Triggers.php';
-$oEvent   = new Event();
+$oEvent = new Event();
 $oTrigger = new Triggers();
 $aFields = $oEvent->load( $evnUid );
-$parameters = unserialize ( $oEvent->getEvnActionParameters() );
+$parameters = unserialize( $oEvent->getEvnActionParameters() );
 //g::pr($parameters); die;
-$aTrigger = $oTrigger->load($aFields['TRI_UID']);
+$aTrigger = $oTrigger->load( $aFields['TRI_UID'] );
 
-$hash = md5 ( $oTrigger->getTriWebbot() );
+$hash = md5( $oTrigger->getTriWebbot() );
 //var_dump($hash,$parameters->hash);die;
 //if the hash is different, the script was edited , so we will show the trigger editor.
-if ( ( isset($parameters->hash) && $hash <> $parameters->hash ) || $aFields['EVN_ACTION'] == 'EXECUTE_TRIGGER' || $aFields['EVN_ACTION'] == 'EXECUTE_CONDITIONAL_TRIGGER' ) {
-  $oTriggerParams = unserialize($aTrigger['TRI_PARAM']);
-  // check again a hash, this time to check the trigger itself integrity
-  if ($oTriggerParams['hash']!=$hash){
-    // if has changed edit manually
-    G::LoadClass('xmlfield_InputPM');
-    $G_PUBLISH = new Publisher();
-    $G_PUBLISH->AddContent('xmlform', 'xmlform', 'triggers/triggersNarrowEdit', '', $aTrigger, '../events/triggersSave');
-    G::RenderPage('publish', 'raw');
-    die;
-  } else {
-    // if not launch the wizard view.
-    $triUid = $aFields['TRI_UID'];
-    $_GET = $oTriggerParams['params'];
-    $_GET['TRI_UID'] = $triUid;
-    require_once(PATH_METHODS.'triggers/triggers_EditWizard.php');
-    die;
-  }
+if ((isset( $parameters->hash ) && $hash != $parameters->hash) || $aFields['EVN_ACTION'] == 'EXECUTE_TRIGGER' || $aFields['EVN_ACTION'] == 'EXECUTE_CONDITIONAL_TRIGGER') {
+    $oTriggerParams = unserialize( $aTrigger['TRI_PARAM'] );
+    // check again a hash, this time to check the trigger itself integrity
+    if ($oTriggerParams['hash'] != $hash) {
+        // if has changed edit manually
+        G::LoadClass( 'xmlfield_InputPM' );
+        $G_PUBLISH = new Publisher();
+        $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'triggers/triggersNarrowEdit', '', $aTrigger, '../events/triggersSave' );
+        G::RenderPage( 'publish', 'raw' );
+        die();
+    } else {
+        // if not launch the wizard view.
+        $triUid = $aFields['TRI_UID'];
+        $_GET = $oTriggerParams['params'];
+        $_GET['TRI_UID'] = $triUid;
+        require_once (PATH_METHODS . 'triggers/triggers_EditWizard.php');
+        die();
+    }
 }
 
-$aFields['EVN_MESSAGE_SUBJECT']  = (isset($parameters->SUBJECT) ? $parameters->SUBJECT : '');
+$aFields['EVN_MESSAGE_SUBJECT'] = (isset( $parameters->SUBJECT ) ? $parameters->SUBJECT : '');
 
-if(isset($parameters->TO)){
-	$paramTO[] = Array('id'=>'char', 'name'=>'char');
-	
-	//echo '
';print_r($parameters->TO);
-	foreach($parameters->TO as $item){
-		$row = explode('|', $item);
-		switch($row[0]){
-			case 'usr':
-				require_once('classes/model/Users.php');
-				$user = new Users();
-				
-				if($row[1] == '-1'){
-					$value = '(Current Task User)'; 
-				} else {
-					$rec = $user->load($row[1]);
-					$value = $rec['USR_FIRSTNAME'].' '.$rec['USR_LASTNAME'];
-				}
-			break;
-			
-			case 'grp':
-				G::LoadClass('groups');
-				$group = new Groups();
-				$rec = $group->load($row[1]);
-				
-				$value = strip_tags($rec->getGrpTitle());
-			break;
-			
-			case 'ext':
-				$value = htmlentities($row[1]); 
-			break;
-			
-			case 'dyn':
-				$value = htmlentities('@#'.$row[1]); 
-			break;
-			
-			default:
-					echo '->'.$row[0];
-		}
-		$paramTO[] = Array('id'=>replaceQuotes($item), 'name'=>$value);
-	}
+if (isset( $parameters->TO )) {
+    $paramTO[] = Array ('id' => 'char','name' => 'char' );
+
+    //echo '
';print_r($parameters->TO);
+    foreach ($parameters->TO as $item) {
+        $row = explode( '|', $item );
+        switch ($row[0]) {
+            case 'usr':
+                require_once ('classes/model/Users.php');
+                $user = new Users();
+                if ($row[1] == '-1') {
+                    $value = '(Current Task User)';
+                } else {
+                    $rec = $user->load( $row[1] );
+                    $value = $rec['USR_FIRSTNAME'] . ' ' . $rec['USR_LASTNAME'];
+                }
+                break;
+            case 'grp':
+                G::LoadClass( 'groups' );
+                $group = new Groups();
+                $rec = $group->load( $row[1] );
+                $value = strip_tags( $rec->getGrpTitle() );
+                break;
+            case 'ext':
+                $value = htmlentities( $row[1] );
+                break;
+            case 'dyn':
+                $value = htmlentities( '@#' . $row[1] );
+                break;
+            default:
+                echo '->' . $row[0];
+        }
+        $paramTO[] = Array ('id' => replaceQuotes( $item ),'name' => $value
+        );
+    }
 } else {
-	$paramTO[] = Array('id'=>'char', 'name'=>'char');
-	$paramTO[] = Array('id'=>'usr|-1', 'name'=>'(Current Task User)');
+    $paramTO[] = Array ('id' => 'char','name' => 'char'
+    );
+    $paramTO[] = Array ('id' => 'usr|-1','name' => '(Current Task User)'
+    );
 }
 $_DBArray['eventomsgto'] = $paramTO;
 
-if(isset($parameters->CC)){
-	$paramCC[] = Array('id'=>'char', 'name'=>'char');
-	foreach($parameters->CC as $item){
-		$row = explode('|', $item);
-		switch($row[0]){
-			case 'usr':
-				require_once('classes/model/Users.php');
-				$user = new Users();
-				
-				if($row[1] == '-1'){
-					$value = '(Current Task User)'; 
-				} else {
-					$rec = $user->load($row[1]);
-					$value = $rec['USR_FIRSTNAME'].' '.$rec['USR_LASTNAME'];
-				}
-			break;
-			
-			case 'grp':
-				G::LoadClass('groups');
-				$group = new Groups();
-				$rec = $group->load($row[1]);
-				
-				$value = strip_tags($rec->getGrpTitle());
-			break;
-			
-			case 'ext':
-				$value = htmlentities($row[1]); 
-			break;
-			
-			case 'dyn':
-				$value = htmlentities('@#'.$row[1]); 
-			break;
-		}
-		$paramCC[] = Array('id'=>replaceQuotes($item), 'name'=>$value);
-	}
-	
-	$_DBArray['eventomsgcc'] = $paramCC;
-	
+if (isset( $parameters->CC )) {
+    $paramCC[] = Array ('id' => 'char','name' => 'char' );
+    foreach ($parameters->CC as $item) {
+        $row = explode( '|', $item );
+        switch ($row[0]) {
+            case 'usr':
+                require_once ('classes/model/Users.php');
+                $user = new Users();
+
+                if ($row[1] == '-1') {
+                    $value = '(Current Task User)';
+                } else {
+                    $rec = $user->load( $row[1] );
+                    $value = $rec['USR_FIRSTNAME'] . ' ' . $rec['USR_LASTNAME'];
+                }
+                break;
+            case 'grp':
+                G::LoadClass( 'groups' );
+                $group = new Groups();
+                $rec = $group->load( $row[1] );
+                $value = strip_tags( $rec->getGrpTitle() );
+                break;
+            case 'ext':
+                $value = htmlentities( $row[1] );
+                break;
+            case 'dyn':
+                $value = htmlentities( '@#' . $row[1] );
+                break;
+        }
+        $paramCC[] = Array ('id' => replaceQuotes( $item ),'name' => $value
+        );
+    }
+
+    $_DBArray['eventomsgcc'] = $paramCC;
+
 } else {
-	$_DBArray['eventomsgcc'] = Array();
+    $_DBArray['eventomsgcc'] = Array ();
 }
 
-if(isset($parameters->BCC)){
-	$paramBCC[] = Array('id'=>'char', 'name'=>'char');
-	foreach($parameters->BCC as $item){
-		$row = explode('|', $item);
-		switch($row[0]){
-			case 'usr':
-				require_once('classes/model/Users.php');
-				$user = new Users();
-				
-				if($row[1] == '-1'){
-					$value = '(Current Task User)'; 
-				} else {
-					$rec = $user->load($row[1]);
-					$value = $rec['USR_FIRSTNAME'].' '.$rec['USR_LASTNAME'];
-				}
-			break;
-			
-			case 'grp':
-				G::LoadClass('groups');
-				$group = new Groups();
-				$rec = $group->load($row[1]);
-				
-				$value = strip_tags($rec->getGrpTitle());
-			break;
-			
-			case 'ext':
-				$value = htmlentities($row[1]); 
-			break;
-			
-			case 'dyn':
-				$value = htmlentities('@#'.$row[1]); 
-			break;
-		}
-		$paramBCC[] = Array('id'=>replaceQuotes($item), 'name'=>$value);
-	}
-	
-	$_DBArray['eventomsgbcc'] = $paramBCC;
-	
+if (isset( $parameters->BCC )) {
+    $paramBCC[] = Array ('id' => 'char','name' => 'char' );
+    foreach ($parameters->BCC as $item) {
+        $row = explode( '|', $item );
+        switch ($row[0]) {
+            case 'usr':
+                require_once ('classes/model/Users.php');
+                $user = new Users();
+
+                if ($row[1] == '-1') {
+                    $value = '(Current Task User)';
+                } else {
+                    $rec = $user->load( $row[1] );
+                    $value = $rec['USR_FIRSTNAME'] . ' ' . $rec['USR_LASTNAME'];
+                }
+                break;
+            case 'grp':
+                G::LoadClass( 'groups' );
+                $group = new Groups();
+                $rec = $group->load( $row[1] );
+                $value = strip_tags( $rec->getGrpTitle() );
+                break;
+            case 'ext':
+                $value = htmlentities( $row[1] );
+                break;
+            case 'dyn':
+                $value = htmlentities( '@#' . $row[1] );
+                break;
+        }
+        $paramBCC[] = Array ('id' => replaceQuotes( $item ),'name' => $value);
+    }
+
+    $_DBArray['eventomsgbcc'] = $paramBCC;
+
 } else {
-	$_DBArray['eventomsgbcc'] = Array();
+    $_DBArray['eventomsgbcc'] = Array ();
 }
-$aFields['EVN_MESSAGE_TO_TO']    = $paramTO;
-$aFields['EVN_MESSAGE_TO_CC']    = (isset($parameters->CC) ? $paramCC : '');
-$aFields['EVN_MESSAGE_TO_BCC']   = (isset($parameters->BCC) ? $paramBCC : '');
-$aFields['EVN_MESSAGE_TEMPLATE'] = (isset($parameters->TEMPLATE) ? $parameters->TEMPLATE : '');
+$aFields['EVN_MESSAGE_TO_TO'] = $paramTO;
+$aFields['EVN_MESSAGE_TO_CC'] = (isset( $parameters->CC ) ? $paramCC : '');
+$aFields['EVN_MESSAGE_TO_BCC'] = (isset( $parameters->BCC ) ? $paramBCC : '');
+$aFields['EVN_MESSAGE_TEMPLATE'] = (isset( $parameters->TEMPLATE ) ? $parameters->TEMPLATE : '');
 
-
-$aTemplates   = array();
-$aTemplates[] = array('TEMPLATE1' => 'char',
-      	              'TEMPLATE2' => 'char');
+$aTemplates = array ();
+$aTemplates[] = array ('TEMPLATE1' => 'char','TEMPLATE2' => 'char');
 $sDirectory = PATH_DATA_MAILTEMPLATES . $aFields['PRO_UID'] . PATH_SEP;
-G::verifyPath($sDirectory, true);
-if (!file_exists($sDirectory . 'alert_message.html')) {
-  @copy(PATH_TPL . 'mails' . PATH_SEP . 'alert_message.html', $sDirectory . 'alert_message.html');
+G::verifyPath( $sDirectory, true );
+if (! file_exists( $sDirectory . 'alert_message.html' )) {
+    @copy( PATH_TPL . 'mails' . PATH_SEP . 'alert_message.html', $sDirectory . 'alert_message.html' );
 }
-$oDirectory   = dir($sDirectory);
+$oDirectory = dir( $sDirectory );
 while ($sObject = $oDirectory->read()) {
-  if (($sObject !== '.') && ($sObject !== '..') && ($sObject !== 'alert_message.html')) {
-    $aTemplates[] = array('TEMPLATE1' => $sObject,
-      	                  'TEMPLATE2' => $sObject);
-  }
+    if (($sObject !== '.') && ($sObject !== '..') && ($sObject !== 'alert_message.html')) {
+        $aTemplates[] = array ('TEMPLATE1' => $sObject,'TEMPLATE2' => $sObject);
+    }
 }
 $_DBArray['templates'] = $aTemplates;
 
-$aTriggers[] = array('TRI_UID'   => 'char',
-      	             'TRI_TITLE' => 'char');
-G::LoadClass('processMap');
+$aTriggers[] = array ('TRI_UID' => 'char','TRI_TITLE' => 'char');
+G::LoadClass( 'processMap' );
 $oProcessMap = new ProcessMap();
-$oDataset = TriggersPeer::doSelectRS($oProcessMap->getTriggersCriteria($aFields['PRO_UID']));
-$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+$oDataset = TriggersPeer::doSelectRS( $oProcessMap->getTriggersCriteria( $aFields['PRO_UID'] ) );
+$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
 $oDataset->next();
 while ($aRow = $oDataset->getRow()) {
-  $aTriggers[] = array('TRI_UID'   => $aRow['TRI_UID'],
-      	               'TRI_TITLE' => $aRow['TRI_TITLE']);
-  $oDataset->next();
+    $aTriggers[] = array ('TRI_UID' => $aRow['TRI_UID'],'TRI_TITLE' => $aRow['TRI_TITLE'] );
+    $oDataset->next();
 }
 $_DBArray['triggers'] = $aTriggers;
 
 $_SESSION['_DBArray'] = $_DBArray;
 
 $G_PUBLISH = new Publisher();
-$G_PUBLISH->AddContent('xmlform', 'xmlform', 'events/eventsEditAction', '', $aFields, '../events/eventsSave');
+$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'events/eventsEditAction', '', $aFields, '../events/eventsSave' );
 //$G_PUBLISH->AddContent('xmlform', 'xmlform', 'events/eventsEditAction', '', $aFields, '../events/eventsSave');
-G::RenderPage('publish', 'raw');
+G::RenderPage( 'publish', 'raw' );
 
-function replaceQuotes($aData){
-	return str_replace('"', '"e;', $aData);
+function replaceQuotes ($aData)
+{
+    return str_replace( '"', '"e;', $aData );
 }
+
diff --git a/workflow/engine/methods/events/eventsNew.php b/workflow/engine/methods/events/eventsNew.php
index 0f49f3e9a..6dda40be7 100755
--- a/workflow/engine/methods/events/eventsNew.php
+++ b/workflow/engine/methods/events/eventsNew.php
@@ -12,50 +12,49 @@
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU Affero General Public License for more details.
  *
  * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see .
+ * along with this program. If not, see .
  *
  * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
  * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
  */
 global $RBAC;
-if ($RBAC->userCanAccess('PM_SETUP') != 1) {
-  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  G::header('location: ../login/login');
-  die;
+if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1) {
+    G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+    G::header( 'location: ../login/login' );
+    die();
 }
 
 global $_DBArray;
-G::LoadClass('tasks');
-G::LoadClass('processMap');
+G::LoadClass( 'tasks' );
+G::LoadClass( 'processMap' );
 
-$oTasks   = new Tasks();
-$aAux1    = $oTasks->getAllTasks($_GET['PRO_UID']);
-$aTasks   = array();
-$aTasks[] = array('TAS_UID'   => 'char', 'TAS_TITLE' => 'char');
+$oTasks = new Tasks();
+$aAux1 = $oTasks->getAllTasks( $_GET['PRO_UID'] );
+$aTasks = array ();
+$aTasks[] = array ('TAS_UID' => 'char','TAS_TITLE' => 'char');
 
 //g::pr($aAux1);die;
 foreach ($aAux1 as $aAux2) {
-  if ($aAux2['TAS_TYPE'] != 'SUBPROCESS') {
-    $aTasks[] = array('TAS_UID'   => $aAux2['TAS_UID'], 'TAS_TITLE' => $aAux2['TAS_TITLE']);
-  }
+    if ($aAux2['TAS_TYPE'] != 'SUBPROCESS') {
+        $aTasks[] = array ('TAS_UID' => $aAux2['TAS_UID'],'TAS_TITLE' => $aAux2['TAS_TITLE']);
+    }
 }
 
-$oProcessMap = new processMap(new DBConnection);
-$aTriggersList = $oProcessMap->getTriggers($_SESSION['PROCESS']);
-$aTriggersFileds = Array('TRI_UID'=>'char', 'TRI_TITLE'=>'char');
+$oProcessMap = new processMap( new DBConnection() );
+$aTriggersList = $oProcessMap->getTriggers( $_SESSION['PROCESS'] );
+$aTriggersFileds = Array ('TRI_UID' => 'char','TRI_TITLE' => 'char');
 
-foreach($aTriggersList as $i=>$v){
-  unset($aTriggersList[$i]['PRO_UID']);
-  unset($aTriggersList[$i]['TRI_DESCRIPTION']);
-  $aTriggersList[$i]['TRI_TITLE'] = (strlen($aTriggersList[$i]['TRI_TITLE'])>32)? substr($aTriggersList[$i]['TRI_TITLE'], 0, 32).'...': $aTriggersList[$i]['TRI_TITLE'];
+foreach ($aTriggersList as $i => $v) {
+    unset( $aTriggersList[$i]['PRO_UID'] );
+    unset( $aTriggersList[$i]['TRI_DESCRIPTION'] );
+    $aTriggersList[$i]['TRI_TITLE'] = (strlen( $aTriggersList[$i]['TRI_TITLE'] ) > 32) ? substr( $aTriggersList[$i]['TRI_TITLE'], 0, 32 ) . '...' : $aTriggersList[$i]['TRI_TITLE'];
 }
 
-$aTriggersList = array_merge(Array($aTriggersFileds), $aTriggersList);
+$aTriggersList = array_merge( Array ($aTriggersFileds), $aTriggersList );
 
 $_DBArray['tasks'] = $aTasks;
 $_DBArray['TMP_TRIGGERS'] = $aTriggersList;
@@ -63,6 +62,6 @@ $_DBArray['TMP_TRIGGERS'] = $aTriggersList;
 $_SESSION['_DBArray'] = $_DBArray;
 
 $G_PUBLISH = new Publisher();
-$G_PUBLISH->AddContent('xmlform', 'xmlform', 'events/eventsNew',  '', array('PRO_UID' => $_GET['PRO_UID'], 'EVN_ACTION' => $_GET['EVN_TYPE']), '');
-G::RenderPage('publish', 'raw');
+$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'events/eventsNew', '', array ('PRO_UID' => $_GET['PRO_UID'],'EVN_ACTION' => $_GET['EVN_TYPE']), '' );
+G::RenderPage( 'publish', 'raw' );
 
diff --git a/workflow/engine/methods/events/eventsNewAction.php b/workflow/engine/methods/events/eventsNewAction.php
index c63fd3bc1..efd80aff3 100755
--- a/workflow/engine/methods/events/eventsNewAction.php
+++ b/workflow/engine/methods/events/eventsNewAction.php
@@ -12,37 +12,36 @@
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU Affero General Public License for more details.
  *
  * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see .
+ * along with this program. If not, see .
  *
  * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
  * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
  */
 global $RBAC;
-if ($RBAC->userCanAccess('PM_SETUP') != 1) {
-  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-	G::header('location: ../login/login');
-	die;
+if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1) {
+    G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+    G::header( 'location: ../login/login' );
+    die();
 }
 
 global $_DBArray;
 
-//get the posted fields of new Event and create a new record of that 
+//get the posted fields of new Event and create a new record of that
 require_once 'classes/model/Event.php';
 
 $oEvent = new Event();
-$envUId = $oEvent->create($_POST);
+$envUId = $oEvent->create( $_POST );
 
 $_SESSION['EVN_UID'] = $envUId;
-require_once ( 'eventsEditAction.php' );
-die;
+require_once ('eventsEditAction.php');
+die();
 
 /*
-//this page is showing the parameters for setup email messages and triggers, 
+//this page is showing the parameters for setup email messages and triggers,
 //probably this will be changed soon.
 
 $aTemplates   = array();
@@ -80,4 +79,5 @@ $G_PUBLISH = new Publisher();
 $G_PUBLISH->AddContent('xmlform', 'xmlform', 'events/events_EditAction', '', $_POST, '../events/eventsSave');
 G::RenderPage('publish', 'raw');
 
-*/
\ No newline at end of file
+*/
+
diff --git a/workflow/engine/methods/events/eventsPending.php b/workflow/engine/methods/events/eventsPending.php
index 253c1c49a..6723f58b7 100755
--- a/workflow/engine/methods/events/eventsPending.php
+++ b/workflow/engine/methods/events/eventsPending.php
@@ -12,27 +12,27 @@
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU Affero General Public License for more details.
  *
  * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see .
+ * along with this program. If not, see .
  *
  * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
  * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
  */
 global $RBAC;
-if ($RBAC->userCanAccess('PM_SETUP') != 1) {
-  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  G::header('location: ../login/login');
-  die;
+if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1) {
+    G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+    G::header( 'location: ../login/login' );
+    die();
 }
 
 require_once 'classes/model/AppEvent.php';
 $oAppEvent = new AppEvent();
 
 global $G_PUBLISH;
-$G_PUBLISH = new Publisher;
-$G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/appEventsList', $oAppEvent->getAppEventsCriteria($_GET['PRO_UID'], 'PENDING', $_GET['EVN_TYPE']));
-G::RenderPage('publish', 'raw');
+$G_PUBLISH = new Publisher();
+$G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'events/appEventsList', $oAppEvent->getAppEventsCriteria( $_GET['PRO_UID'], 'PENDING', $_GET['EVN_TYPE'] ) );
+G::RenderPage( 'publish', 'raw' );
+
diff --git a/workflow/engine/methods/events/eventsSave.php b/workflow/engine/methods/events/eventsSave.php
index 2b4105353..bd38f717a 100755
--- a/workflow/engine/methods/events/eventsSave.php
+++ b/workflow/engine/methods/events/eventsSave.php
@@ -12,66 +12,59 @@
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU Affero General Public License for more details.
  *
  * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see .
+ * along with this program. If not, see .
  *
  * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
  * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
  */
 global $RBAC;
-if ($RBAC->userCanAccess('PM_SETUP') != 1) {
-  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-	G::header('location: ../login/login');
-	die;
+if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1) {
+    G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+    G::header( 'location: ../login/login' );
+    die();
 }
-$EVN_MESSAGE_TO_TO  = isset($_POST['form']['EVN_MESSAGE_TO_TO'])?  replaceQuotes($_POST['form']['EVN_MESSAGE_TO_TO']): Array();
-$EVN_MESSAGE_TO_CC  = isset($_POST['form']['EVN_MESSAGE_TO_CC'])?  replaceQuotes($_POST['form']['EVN_MESSAGE_TO_CC']): Array();
-$EVN_MESSAGE_TO_BCC = isset($_POST['form']['EVN_MESSAGE_TO_BCC'])? replaceQuotes($_POST['form']['EVN_MESSAGE_TO_BCC']): Array();
+$EVN_MESSAGE_TO_TO = isset( $_POST['form']['EVN_MESSAGE_TO_TO'] ) ? replaceQuotes( $_POST['form']['EVN_MESSAGE_TO_TO'] ) : Array ();
+$EVN_MESSAGE_TO_CC = isset( $_POST['form']['EVN_MESSAGE_TO_CC'] ) ? replaceQuotes( $_POST['form']['EVN_MESSAGE_TO_CC'] ) : Array ();
+$EVN_MESSAGE_TO_BCC = isset( $_POST['form']['EVN_MESSAGE_TO_BCC'] ) ? replaceQuotes( $_POST['form']['EVN_MESSAGE_TO_BCC'] ) : Array ();
 
-if (isset($_POST['form']['EVN_MESSAGE_SUBJECT'])) {
-  $_POST['form']['EVN_ACTION_PARAMETERS'] = array(
-  	'SUBJECT'  => $_POST['form']['EVN_MESSAGE_SUBJECT'],
-	  'TO'       => $EVN_MESSAGE_TO_TO,
-	  'CC'       => $EVN_MESSAGE_TO_CC,
-	  'BCC'      => $EVN_MESSAGE_TO_BCC,
-	  'TEMPLATE' => $_POST['form']['EVN_MESSAGE_TEMPLATE']
-  );
-  
-  unset($_POST['form']['EVN_MESSAGE_SUBJECT']);
-  unset($_POST['form']['EVN_MESSAGE_TO_TO']);
-  unset($_POST['form']['EVN_MESSAGE_TO_CC']);
-  unset($_POST['form']['EVN_MESSAGE_TO_BCC']);
-  unset($_POST['form']['EVN_MESSAGE_TEMPLATE']);
+if (isset( $_POST['form']['EVN_MESSAGE_SUBJECT'] )) {
+    $_POST['form']['EVN_ACTION_PARAMETERS'] = array ('SUBJECT' => $_POST['form']['EVN_MESSAGE_SUBJECT'],'TO' => $EVN_MESSAGE_TO_TO,'CC' => $EVN_MESSAGE_TO_CC,'BCC' => $EVN_MESSAGE_TO_BCC,'TEMPLATE' => $_POST['form']['EVN_MESSAGE_TEMPLATE']);
+
+    unset( $_POST['form']['EVN_MESSAGE_SUBJECT'] );
+    unset( $_POST['form']['EVN_MESSAGE_TO_TO'] );
+    unset( $_POST['form']['EVN_MESSAGE_TO_CC'] );
+    unset( $_POST['form']['EVN_MESSAGE_TO_BCC'] );
+    unset( $_POST['form']['EVN_MESSAGE_TEMPLATE'] );
 }
-unset($_POST['form']['SAVE']);
+unset( $_POST['form']['SAVE'] );
 
 require_once 'classes/model/Event.php';
 $oEvent = new Event();
 if ($_POST['form']['EVN_UID'] == '') {
-  //this is probably not used, because the creation of one Event is done directly in EventsNewAction
-  $oEvent->create($_POST['form']);
-}
-else {
-  /*
-   *if($_POST['form']['EVN_ACTION'] == 'SEND_MESSAGE' && $ev->getTriUid() != trim($_POST['form']['TRI_UID']) ){
+    //this is probably not used, because the creation of one Event is done directly in EventsNewAction
+    $oEvent->create( $_POST['form'] );
+} else {
+    /*
+    *if($_POST['form']['EVN_ACTION'] == 'SEND_MESSAGE' && $ev->getTriUid() != trim($_POST['form']['TRI_UID']) ){
     $oEvnActionParameters = unserialize($ev->getEvnActionParameters());
     prit_r($oEvnActionParameters);
     if( isset($oEvnActionParameters->TRI_UID) ){
       $_POST['form']['TRI_UID'] = $oEvnActionParameters->TRI_UID;
     }
-
-  }
-   */
-  $oEvent->update($_POST['form']);
+    }
+    */
+    $oEvent->update( $_POST['form'] );
+}
+
+function replaceQuotes ($aData)
+{
+    for ($i = 0; $i < sizeof( $aData ); $i ++) {
+        $aData[$i] = str_replace( ""e;", '"', $aData[$i] );
+    }
+    return $aData;
 }
 
-function replaceQuotes($aData){
-	for($i=0; $i abs($estimated) ) { //this event is before the start of the task, so will never occurs
-      $xTimer = 30;
-      $sWhen = abs($when) - abs($estimated);
-      imagestring ($im, 2, $xTimer -8 , $h -16, $sWhen, $black);
-      $s = 'i';
+//when is negative and the event occurs after, then this event will occurs
+if ($when < 0 && $o == 'a') {
+    if (abs( $when ) > abs( $estimated )) {
+        //this event is before the start of the task, so will never occurs
+        $xTimer = 30;
+        $sWhen = abs( $when ) - abs( $estimated );
+        imagestring( $im, 2, $xTimer - 8, $h - 16, $sWhen, $black );
+        $s = 'i';
     }
-  	if ( abs($when) < abs($estimated) ) { //this event is after the start of the task, drawing
-      $xTimer = 170;
-      $sWhen = $estimated + $when;
-      imagestring ($im, 2, $xTimer -4 , $h -16, $sWhen, $black);
+    if (abs( $when ) < abs( $estimated )) {
+        //this event is after the start of the task, drawing
+        $xTimer = 170;
+        $sWhen = $estimated + $when;
+        imagestring( $im, 2, $xTimer - 4, $h - 16, $sWhen, $black );
     }
-  	if ( abs($when) == abs($estimated) ) { //this event is exactly at starting 
-      $xTimer = 80;
-      $sWhen = $estimated + $when;
-      imagestring ($im, 2, $xTimer -4 , $h -16, $sWhen, $black);
+    if (abs( $when ) == abs( $estimated )) {
+        //this event is exactly at starting
+        $xTimer = 80;
+        $sWhen = $estimated + $when;
+        imagestring( $im, 2, $xTimer - 4, $h - 16, $sWhen, $black );
     }
-  }
+}
 
-  //when is positive and the event occurs after, then this event will occurs
-  if ( $when > 0 && $o == 'a' ) {
-      $xTimer = 270;
-      $sWhen = $estimated + $when;
-      imagestring ($im, 2, $xTimer -4 , $h -16, $sWhen, $black);
-  }
+//when is positive and the event occurs after, then this event will occurs
+if ($when > 0 && $o == 'a') {
+    $xTimer = 270;
+    $sWhen = $estimated + $when;
+    imagestring( $im, 2, $xTimer - 4, $h - 16, $sWhen, $black );
+}
 
-  //when is positive and the event occurs starting, then this event will occurs
-  if ( $when > 0 && $o == 's' ) {
-  	if ( abs($when) <  abs($estimated) ) $xTimer = 140;
-  	if ( abs($when) >  abs($estimated) ) $xTimer = 270;
-  	if ( abs($when) == abs($estimated) ) $xTimer = 220;
-  	
-    imagestring ($im, 2, $xTimer -4 , $h -16, $when, $black);
-  }
+//when is positive and the event occurs starting, then this event will occurs
+if ($when > 0 && $o == 's') {
+    if (abs( $when ) < abs( $estimated )) {
+        $xTimer = 140;
+    }
+    if (abs( $when ) > abs( $estimated )) {
+        $xTimer = 270;
+    }
+    if (abs( $when ) == abs( $estimated )) {
+        $xTimer = 220;
+    }
+    imagestring( $im, 2, $xTimer - 4, $h - 16, $when, $black );
+}
 
-  if ( $when == 0 ) {
-    $xTimer = ( $o == 's' ) ? 80: 220 ;  
-  }
+if ($when == 0) {
+    $xTimer = ($o == 's') ? 80 : 220;
+}
 
-  if ( $s == 'a' ) {    
-    drawTimerEvent ( $im, $xTimer, $h -70 , $h -15);
-  }
+if ($s == 'a') {
+    drawTimerEvent( $im, $xTimer, $h - 70, $h - 15 );
+}
+
+header( "Content-Type: image/png" );
+imagepng( $im );
+die();
 
-  header("Content-Type: image/png");
-  imagepng($im);
-die;
diff --git a/workflow/engine/methods/events/triggersSave.php b/workflow/engine/methods/events/triggersSave.php
index fc98ebf57..b9402984a 100755
--- a/workflow/engine/methods/events/triggersSave.php
+++ b/workflow/engine/methods/events/triggersSave.php
@@ -1,10 +1,10 @@
 .
- * 
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd., 
+ * along with this program. If not, see .
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
  * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- * 
  */
- 
-if (($RBAC_Response=$RBAC->userCanAccess("PM_FACTORY"))!=1) return $RBAC_Response;
-require_once('classes/model/Triggers.php');
-$oTrigger = new Triggers();
-if ($_POST['form']['TRI_UID'] != '')
-{
-	$oTrigger->load($_POST['form']['TRI_UID']);
+
+if (($RBAC_Response = $RBAC->userCanAccess( "PM_FACTORY" )) != 1) {
+    return $RBAC_Response;
 }
-else
-{
-	$oTrigger->create($_POST['form']);
-	$_POST['form']['TRI_UID']=$oTrigger->getTriUid();
+require_once ('classes/model/Triggers.php');
+$oTrigger = new Triggers();
+if ($_POST['form']['TRI_UID'] != '') {
+    $oTrigger->load( $_POST['form']['TRI_UID'] );
+} else {
+    $oTrigger->create( $_POST['form'] );
+    $_POST['form']['TRI_UID'] = $oTrigger->getTriUid();
 }
 
-$oTrigger->update($_POST['form']);
-?>
\ No newline at end of file
+$oTrigger->update( $_POST['form'] );
+
diff --git a/workflow/engine/methods/groups/groups.php b/workflow/engine/methods/groups/groups.php
index 1502d03ed..1347f7328 100755
--- a/workflow/engine/methods/groups/groups.php
+++ b/workflow/engine/methods/groups/groups.php
@@ -1,70 +1,69 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
-
-$access = $RBAC->userCanAccess('PM_USERS');
-if( $access != 1 ){
-  switch ($access)
-  {
-  	case -1:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	case -2:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	default:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;  	
-  }
-}  
-
-if (($RBAC_Response=$RBAC->userCanAccess("PM_USERS"))!=1) return $RBAC_Response;
-
-  $G_MAIN_MENU            = 'processmaker';
-  $G_SUB_MENU             = 'users';
-  $G_ID_MENU_SELECTED     = 'USERS';
-  $G_ID_SUB_MENU_SELECTED = 'GROUPS';
-  
-  
-$G_PUBLISH = new Publisher;
-
-G::LoadClass('configuration');
-$c = new Configurations();
-$configPage = $c->getConfiguration('groupList', 'pageSize','',$_SESSION['USER_LOGGED']);
-$configEnv = $c->getConfiguration('ENVIRONMENT_SETTINGS', '');
-$Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20;
-
-$oHeadPublisher =& headPublisher::getSingleton();
-$oHeadPublisher->addExtJsScript('groups/groupsList', false);    //adding a javascript file .js
-$oHeadPublisher->addContent('groups/groupsList'); //adding a html file  .html.
-$oHeadPublisher->assign('CONFIG', $Config);
-
-G::RenderPage('publish', 'extJs');
-?>
\ No newline at end of file
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+
+$access = $RBAC->userCanAccess( 'PM_USERS' );
+if ($access != 1) {
+    switch ($access) {
+        case - 1:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        case - 2:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        default:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+    }
+}
+
+if (($RBAC_Response = $RBAC->userCanAccess( "PM_USERS" )) != 1) {
+    return $RBAC_Response;
+}
+
+$G_MAIN_MENU = 'processmaker';
+$G_SUB_MENU = 'users';
+$G_ID_MENU_SELECTED = 'USERS';
+$G_ID_SUB_MENU_SELECTED = 'GROUPS';
+
+$G_PUBLISH = new Publisher();
+
+G::LoadClass( 'configuration' );
+$c = new Configurations();
+$configPage = $c->getConfiguration( 'groupList', 'pageSize', '', $_SESSION['USER_LOGGED'] );
+$configEnv = $c->getConfiguration( 'ENVIRONMENT_SETTINGS', '' );
+$Config['pageSize'] = isset( $configPage['pageSize'] ) ? $configPage['pageSize'] : 20;
+
+$oHeadPublisher = & headPublisher::getSingleton();
+$oHeadPublisher->addExtJsScript( 'groups/groupsList', false ); //adding a javascript file .js
+$oHeadPublisher->addContent( 'groups/groupsList' ); //adding a html file  .html.
+$oHeadPublisher->assign( 'CONFIG', $Config );
+
+G::RenderPage( 'publish', 'extJs' );
+
diff --git a/workflow/engine/methods/groups/groupsMembers.php b/workflow/engine/methods/groups/groupsMembers.php
index fe40d43bc..572f9358d 100755
--- a/workflow/engine/methods/groups/groupsMembers.php
+++ b/workflow/engine/methods/groups/groupsMembers.php
@@ -12,65 +12,64 @@
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU Affero General Public License for more details.
  *
  * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see .
+ * along with this program. If not, see .
  *
  * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
  * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
  */
 
-$access = $RBAC->userCanAccess('PM_USERS');
-if( $access != 1 ){
-  switch ($access)
-  {
-  	case -1:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	case -2:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	default:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;  	
-  }
-}  
+$access = $RBAC->userCanAccess( 'PM_USERS' );
+if ($access != 1) {
+    switch ($access) {
+        case - 1:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        case - 2:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        default:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+    }
+}
 
-if (($RBAC_Response=$RBAC->userCanAccess("PM_USERS"))!=1) return $RBAC_Response;
+if (($RBAC_Response = $RBAC->userCanAccess( "PM_USERS" )) != 1) {
+    return $RBAC_Response;
+}
 
-  $G_MAIN_MENU            = 'processmaker';
-  $G_SUB_MENU             = 'users';
-  $G_ID_MENU_SELECTED     = 'USERS';
-  $G_ID_SUB_MENU_SELECTED = 'GROUPS';
-  
-  
-$G_PUBLISH = new Publisher;
+$G_MAIN_MENU = 'processmaker';
+$G_SUB_MENU = 'users';
+$G_ID_MENU_SELECTED = 'USERS';
+$G_ID_SUB_MENU_SELECTED = 'GROUPS';
 
-$oHeadPublisher =& headPublisher::getSingleton();
+$G_PUBLISH = new Publisher();
 
-$oHeadPublisher->addExtJsScript('groups/groupsMembers', false);    //adding a javascript file .js
-$oHeadPublisher->addContent('groups/groupsMembers'); //adding a html file  .html.
+$oHeadPublisher = & headPublisher::getSingleton();
 
-$labels = G::getTranslations(Array('ID_GROUPS','ID_GROUP_NAME','ID_BACK','ID_ASSIGN_ALL_MEMBERS','ID_REMOVE_ALL_MEMBERS',
- 'ID_MSG_AJAX_FAILURE', 'ID_PROCESSING','ID_ENTER_SEARCH_TERM','ID_FIRST_NAME','ID_LAST_NAME','ID_USER_NAME','ID_AVAILABLE_MEMBERS','ID_ASSIGNED_MEMBERS'));
+$oHeadPublisher->addExtJsScript( 'groups/groupsMembers', false ); //adding a javascript file .js
+$oHeadPublisher->addContent( 'groups/groupsMembers' ); //adding a html file  .html.
 
-G::LoadClass('groups');
+
+$labels = G::getTranslations( Array ('ID_GROUPS','ID_GROUP_NAME','ID_BACK','ID_ASSIGN_ALL_MEMBERS','ID_REMOVE_ALL_MEMBERS','ID_MSG_AJAX_FAILURE','ID_PROCESSING','ID_ENTER_SEARCH_TERM','ID_FIRST_NAME','ID_LAST_NAME','ID_USER_NAME','ID_AVAILABLE_MEMBERS','ID_ASSIGNED_MEMBERS') );
+
+G::LoadClass( 'groups' );
 $oGroup = new Groupwf();
-$oGroup->load($_REQUEST['GRP_UID']);
+$oGroup->load( $_REQUEST['GRP_UID'] );
 
 $groups['GRP_UID'] = $_REQUEST['GRP_UID'];
 $groups['GRP_TITLE'] = $oGroup->getGrpTitle();
 
 //$oHeadPublisher->assign('TRANSLATIONS', $labels);
-$oHeadPublisher->assign('GROUPS', $groups);
-G::RenderPage('publish', 'extJs');
-?>
\ No newline at end of file
+$oHeadPublisher->assign( 'GROUPS', $groups );
+G::RenderPage( 'publish', 'extJs' );
+
diff --git a/workflow/engine/methods/groups/groups_AddUser.php b/workflow/engine/methods/groups/groups_AddUser.php
index a44c0ba23..a9be222ae 100755
--- a/workflow/engine/methods/groups/groups_AddUser.php
+++ b/workflow/engine/methods/groups/groups_AddUser.php
@@ -1,57 +1,58 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
-  require_once ( 'classes/class.xmlfield_InputPM.php' );
-
-$access = $RBAC->userCanAccess('PM_USERS');
-if( $access != 1 ){
-  switch ($access)
-  {
-  	case -1:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	case -2:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	default:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;  	
-  }
-}  
-  if (($RBAC_Response=$RBAC->userCanAccess("PM_USERS"))!=1) return $RBAC_Response;
-  G::LoadClass('groups');
-  $oGroups = new Groups();
-  $oGroup  = new Groupwf();
-  $aFields = $oGroup->load($_GET['UID']);
-  $G_PUBLISH = new Publisher();
-  //$G_PUBLISH->AddContent('xmlform', 'xmlform', 'groups/groups_UsersListTitle', '', array('GRP_NAME' => $aFields['GRP_TITLE']));
-  $G_PUBLISH->AddContent('propeltable', 'groups/paged-table', 'groups/groups_AvailableUsers', $oGroups->getAvailableUsersCriteria($_GET['UID']));
-  //$G_PUBLISH->AddContent('xmlform', 'xmlform', 'groups/groups_SelectUsers','',  '','save' );
-  G::RenderPage('publish', 'raw');
\ No newline at end of file
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+require_once ('classes/class.xmlfield_InputPM.php');
+
+$access = $RBAC->userCanAccess( 'PM_USERS' );
+if ($access != 1) {
+    switch ($access) {
+        case - 1:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        case - 2:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        default:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+    }
+}
+if (($RBAC_Response = $RBAC->userCanAccess( "PM_USERS" )) != 1) {
+    return $RBAC_Response;
+}
+G::LoadClass( 'groups' );
+$oGroups = new Groups();
+$oGroup = new Groupwf();
+$aFields = $oGroup->load( $_GET['UID'] );
+$G_PUBLISH = new Publisher();
+//$G_PUBLISH->AddContent('xmlform', 'xmlform', 'groups/groups_UsersListTitle', '', array('GRP_NAME' => $aFields['GRP_TITLE']));
+$G_PUBLISH->AddContent( 'propeltable', 'groups/paged-table', 'groups/groups_AvailableUsers', $oGroups->getAvailableUsersCriteria( $_GET['UID'] ) );
+//$G_PUBLISH->AddContent('xmlform', 'xmlform', 'groups/groups_SelectUsers','',  '','save' );
+G::RenderPage( 'publish', 'raw' );
+
diff --git a/workflow/engine/methods/groups/groups_Ajax.php b/workflow/engine/methods/groups/groups_Ajax.php
index 034bec5eb..e1fd842bb 100755
--- a/workflow/engine/methods/groups/groups_Ajax.php
+++ b/workflow/engine/methods/groups/groups_Ajax.php
@@ -12,339 +12,320 @@
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU Affero General Public License for more details.
  *
  * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see .
+ * along with this program. If not, see .
  *
  * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
  * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
  */
-if (($RBAC_Response=$RBAC->userCanAccess("PM_USERS"))!=1) return $RBAC_Response;
-G::LoadInclude('ajax');
-$_POST['action'] = get_ajax_value('action');
-
-switch ($_POST['action'])
-{
-  case 'showUsers':
-    G::LoadClass('groups');
-    $oGroups = new Groups();
-    $oGroup  = new Groupwf();
-    $aFields = $oGroup->load($_POST['sGroupUID']);
-    global $G_PUBLISH;
-    $G_PUBLISH = new Publisher();
-    //$G_PUBLISH->AddContent('xmlform', 'xmlform', 'groups/groups_UsersListTitle', '', array('GRP_NAME' => $aFields['GRP_TITLE']));
-    $G_PUBLISH->AddContent('propeltable', 'groups/paged-table2', 'groups/groups_UsersList', $oGroups->getUsersGroupCriteria($_POST['sGroupUID']), array('GRP_UID' => $_POST['sGroupUID'], 'GRP_NAME' => $aFields['GRP_TITLE']));
-
-    $oHeadPublisher =& headPublisher::getSingleton();
-    $oHeadPublisher->addScriptCode("groupname=\"{$aFields["GRP_TITLE"]}\";");
-
-    G::RenderPage('publish', 'raw');
-  break;
-
-  case 'assignUser':
-    G::LoadClass('groups');
-    $oGroup = new Groups();
-    $oGroup->addUserToGroup($_POST['GRP_UID'], $_POST['USR_UID']);
-  break;
-
-  case 'assignAllUsers':
-    G::LoadClass('groups');
-    $oGroup = new Groups();
-    $aUsers=explode(',', $_POST['aUsers']);
-
-    for($i=0; $iaddUserToGroup($_POST['GRP_UID'], $aUsers[$i]);
-    }
-  break;
-
-  case 'ofToAssignUser':
-    G::LoadClass('groups');
-    $oGroup = new Groups();
-    $oGroup->removeUserOfGroup($_POST['GRP_UID'], $_POST['USR_UID']);
-  break;
-
-  case 'verifyGroupname':
-    $_POST['sOriginalGroupname'] = get_ajax_value('sOriginalGroupname');
-    $_POST['sGroupname']         = get_ajax_value('sGroupname');
-    if ($_POST['sOriginalGroupname'] == $_POST['sGroupname'])
-    {
-      echo '0';
-    }
-    else
-    {
-      require_once 'classes/model/Groupwf.php';
-      G::LoadClass('Groupswf');
-      $oGroup = new Groupwf();
-      $oCriteria=$oGroup->loadByGroupname($_POST['sGroupname']);
-      $oDataset = GroupwfPeer::doSelectRS($oCriteria);
-      $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
-      $oDataset->next();
-      $aRow = $oDataset->getRow();
-      if (!$aRow)
-      {
-        echo '0';
-      }
-      else
-      {
-        echo '1';
-      }
-    }
-    break;
-  case 'groupsList':
-    require_once 'classes/model/Groupwf.php';
-    require_once 'classes/model/TaskUser.php';
-    require_once 'classes/model/GroupUser.php';
-    G::LoadClass('configuration');
-    $co = new Configurations();
-    $config = $co->getConfiguration('groupList', 'pageSize','',$_SESSION['USER_LOGGED']);
-    $env = $co->getConfiguration('ENVIRONMENT_SETTINGS', '');
-    $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'] : '';
-
-    global $RBAC;
-    if ($limit == $start) $limit = $limit +$limit ;
-    $tasks = new TaskUser();
-    $aTask = $tasks->getCountAllTaksByGroups();
-
-    $members = new GroupUser();
-    $aMembers = $members->getCountAllUsersByGroup();
-
-    require_once PATH_CONTROLLERS . 'adminProxy.php';
-    $uxList = adminProxy::getUxTypesList();
-
-    $groups = new Groupwf();
-    $data = $groups->getAllGroup($start,$limit,$filter);
-    $result  = $data['rows'];
-
-    $totalRows =  0;
-    $arrData   =  array();
-    foreach ($result as $results) {
-      $totalRows ++;
-      $results['CON_VALUE'] = str_replace(array("<", ">"), array("<", ">"), $results['GRP_TITLE']);
-      $results['GRP_TASKS'] = isset($aTask[$results['GRP_UID']]) ? $aTask[$results['GRP_UID']] : 0;
-      $results['GRP_USERS'] = isset($aMembers[$results['GRP_UID']]) ? $aMembers[$results['GRP_UID']] : 0;
-      $arrData[] = $results;
-    }
-
-    $result = new StdClass();
-    $result->success = true;
-    $result->groups = $arrData;
-    $result->total_groups = $data['totalCount'];
-
-    echo G::json_encode($result);
-    break;
-  case 'exitsGroupName':
-    require_once 'classes/model/Groupwf.php';
-    G::LoadClass('Groupswf');
-    $oGroup = new Groupwf();
-    $oCriteria=$oGroup->loadByGroupname($_POST['GRP_NAME']);
-    $oDataset = GroupwfPeer::doSelectRS($oCriteria);
-    $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
-    $oDataset->next();
-    $aRow = $oDataset->getRow();
-    $response = ($aRow) ? 'true' : 'false';
-    echo $response;
-    break;
-  case 'saveNewGroup':
-    G::LoadClass('groups');
-    $newGroup['GRP_UID'] = '';
-    $newGroup['GRP_STATUS'] = G::toUpper($_POST['status']);
-    $newGroup['GRP_TITLE'] = trim($_POST['name']);
-    unset($newGroup['GRP_UID']);
-    $group = new Groupwf();
-    $group->create($newGroup);
-    echo '{success: true}';
-    break;
-  case 'saveEditGroup':
-    G::LoadClass('groups');
-    $editGroup['GRP_UID'] = $_POST['grp_uid'];
-    $editGroup['GRP_STATUS'] = G::toUpper($_POST['status']);
-    $editGroup['GRP_TITLE'] = trim($_POST['name']);
-    $group = new Groupwf();
-    $group->update($editGroup);
-    echo '{success: true}';
-    break;
-  case 'deleteGroup':
-    G::LoadClass('groups');
-    $group = new Groupwf();
-    if (!isset($_POST['GRP_UID'])) return;
-    $group->remove(urldecode($_POST['GRP_UID']));
-    require_once 'classes/model/TaskUser.php';
-    $oProcess   = new TaskUser();
-    $oCriteria = new Criteria('workflow');
-    $oCriteria->add(TaskUserPeer::USR_UID, $_POST['GRP_UID']);
-    TaskUserPeer::doDelete($oCriteria);
-    echo '{success: true}';
-    break;
-  case 'assignedMembers':
-    require_once 'classes/model/Users.php';
-    require_once 'classes/model/GroupUser.php';
-
-    G::LoadClass('configuration');
-    $co = new Configurations();
-    $config = $co->getConfiguration('groupList', 'pageSize','',$_SESSION['USER_LOGGED']);
-    $env = $co->getConfiguration('ENVIRONMENT_SETTINGS', '');
-    $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'] : '';
-
-    $sGroupUID = $_REQUEST['gUID'];
-
-    $aUsers = Array();
-    $oCriteria = new Criteria('workflow');
-    $oCriteria->addSelectColumn('COUNT(*) AS CNT');
-    $oCriteria->addJoin(GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
-    $oCriteria->add(GroupUserPeer::GRP_UID, $sGroupUID);
-    $oCriteria->add(UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL);
-    $filter = (isset($_POST['textFilter']))? $_POST['textFilter'] : '';
-    if ($filter != ''){
-      $oCriteria->add(
-      $oCriteria->getNewCriterion(UsersPeer::USR_USERNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
-      $oCriteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
-      $oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%'.$filter.'%', Criteria::LIKE))));
-    }
-    $oDataset = UsersPeer::DoSelectRs ($oCriteria);
-    $oDataset->setFetchmode (ResultSet::FETCHMODE_ASSOC);
-    $oDataset->next();
-    $row = $oDataset->getRow();
-    $totalRows = $row['CNT'];
-
-    $oCriteria = new Criteria('workflow');
-    $oCriteria->addSelectColumn(GroupUserPeer::GRP_UID);
-    $oCriteria->addSelectColumn(UsersPeer::USR_UID);
-    $oCriteria->addSelectColumn(UsersPeer::USR_USERNAME);
-    $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
-    $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
-    $oCriteria->addSelectColumn(UsersPeer::USR_EMAIL);
-    $oCriteria->addSelectColumn(UsersPeer::USR_STATUS);
-    $oCriteria->addJoin(GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
-    $oCriteria->add(GroupUserPeer::GRP_UID, $sGroupUID);
-    $oCriteria->add(UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL);
-    $filter = (isset($_POST['textFilter']))? $_POST['textFilter'] : '';
-    if ($filter != ''){
-      $oCriteria->add(
-      $oCriteria->getNewCriterion(UsersPeer::USR_USERNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
-      $oCriteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
-      $oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%'.$filter.'%', Criteria::LIKE))));
-    }
-    $oCriteria->setOffset($start);
-    $oCriteria->setLimit($limit);
-
-    $oDataset = UsersPeer::doSelectRS($oCriteria);
-    $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
-    $arrData = Array();
-    while ($oDataset->next()){
-      $arrData[] = $oDataset->getRow();
-    }
-    echo '{success: true, members: '.G::json_encode($arrData).', total_users: '.$totalRows.'}';
-    break;
-  case 'availableMembers':
-    require_once 'classes/model/Users.php';
-    require_once 'classes/model/GroupUser.php';
-
-    G::LoadClass('configuration');
-    $co = new Configurations();
-    $config = $co->getConfiguration('groupList', 'pageSize','',$_SESSION['USER_LOGGED']);
-    $env = $co->getConfiguration('ENVIRONMENT_SETTINGS', '');
-    $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'] : '';
-
-    $sGroupUID = $_REQUEST['gUID'];
-    $oCriteria = new Criteria('workflow');
-    $oCriteria->addSelectColumn(GroupUserPeer::GRP_UID);
-    $oCriteria->addSelectColumn(UsersPeer::USR_UID);
-    $oCriteria->addJoin(GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
-    $oCriteria->add(GroupUserPeer::GRP_UID, $sGroupUID);
-    $oCriteria->add(UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL);
-    $oDataset = UsersPeer::doSelectRS($oCriteria);
-    $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
-    $oDataset->next();
-    $uUIDs = array();
-    while ($aRow = $oDataset->getRow()) {
-      $uUIDs[] = $aRow['USR_UID'];
-      $oDataset->next();
-    }
-
-    $aUsers = Array();
-    $oCriteria = new Criteria('workflow');
-    $oCriteria->addSelectColumn('COUNT(*) AS CNT');
-    $oCriteria->add(UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL);
-    $oCriteria->add(UsersPeer::USR_UID, $uUIDs, Criteria::NOT_IN);
-    $filter = (isset($_POST['textFilter']))? $_POST['textFilter'] : '';
-    if ($filter != ''){
-      $oCriteria->add(
-      $oCriteria->getNewCriterion(UsersPeer::USR_USERNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
-      $oCriteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
-      $oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%'.$filter.'%', Criteria::LIKE))));
-    }
-    $oDataset = UsersPeer::DoSelectRs ($oCriteria);
-    $oDataset->setFetchmode (ResultSet::FETCHMODE_ASSOC);
-    $oDataset->next();
-    $row = $oDataset->getRow();
-    $totalRows = $row['CNT'];
-
-    $oCriteria = new Criteria('workflow');
-    $oCriteria->addSelectColumn(UsersPeer::USR_UID);
-    $oCriteria->addSelectColumn(UsersPeer::USR_USERNAME);
-    $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
-    $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
-    $oCriteria->addSelectColumn(UsersPeer::USR_EMAIL);
-    $oCriteria->addSelectColumn(UsersPeer::USR_STATUS);
-    $oCriteria->add(UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL);
-    $oCriteria->add(UsersPeer::USR_UID, $uUIDs, Criteria::NOT_IN);
-    $filter = (isset($_POST['textFilter']))? $_POST['textFilter'] : '';
-    if ($filter != ''){
-      $oCriteria->add(
-      $oCriteria->getNewCriterion(UsersPeer::USR_USERNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
-      $oCriteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%'.$filter.'%', Criteria::LIKE)->addOr(
-      $oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%'.$filter.'%', Criteria::LIKE))));
-    }
-    $oCriteria->setOffset($start);
-    $oCriteria->setLimit($limit);
-    $oDataset = UsersPeer::doSelectRS($oCriteria);
-    $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
-    $arrData = Array();
-    while ($oDataset->next()){
-      $arrData[] = $oDataset->getRow();
-    }
-    echo '{success: true, members: '.G::json_encode($arrData).', total_users: '.$totalRows.'}';
-    break;
-  case 'assignUsersToGroupsMultiple':
-    $GRP_UID = $_POST['GRP_UID'];
-    $uUIDs = explode(',',$_POST['USR_UID']);
-    G::LoadClass('groups');
-    $oGroup = new Groups();
-    foreach ($uUIDs as $USR_UID){
-      $oGroup->addUserToGroup($GRP_UID, $USR_UID);
-    }
-    break;
-  case 'deleteUsersToGroupsMultiple':
-    $GRP_UID = $_POST['GRP_UID'];
-    $uUIDs = explode(',',$_POST['USR_UID']);
-    G::LoadClass('groups');
-    $oGroup = new Groups();
-    foreach ($uUIDs as $USR_UID){
-      $oGroup->removeUserOfGroup($GRP_UID, $USR_UID);
-    }
-    break;
-  case 'updatePageSize':
-    G::LoadClass('configuration');
-    $c = new Configurations();
-    $arr['pageSize'] = $_REQUEST['size'];
-    $arr['dateSave'] = date('Y-m-d H:i:s');
-    $config = Array();
-    $config[] = $arr;
-    $c->aConfig = $config;
-    $c->saveConfig('groupList', 'pageSize','',$_SESSION['USER_LOGGED']);
-    echo '{success: true}';
-    break;
+if (($RBAC_Response = $RBAC->userCanAccess( "PM_USERS" )) != 1) {
+    return $RBAC_Response;
 }
+G::LoadInclude( 'ajax' );
+$_POST['action'] = get_ajax_value( 'action' );
+
+switch ($_POST['action']) {
+    case 'showUsers':
+        G::LoadClass( 'groups' );
+        $oGroups = new Groups();
+        $oGroup = new Groupwf();
+        $aFields = $oGroup->load( $_POST['sGroupUID'] );
+        global $G_PUBLISH;
+        $G_PUBLISH = new Publisher();
+        //$G_PUBLISH->AddContent('xmlform', 'xmlform', 'groups/groups_UsersListTitle', '', array('GRP_NAME' => $aFields['GRP_TITLE']));
+        $G_PUBLISH->AddContent( 'propeltable', 'groups/paged-table2', 'groups/groups_UsersList', $oGroups->getUsersGroupCriteria( $_POST['sGroupUID'] ), array ('GRP_UID' => $_POST['sGroupUID'],'GRP_NAME' => $aFields['GRP_TITLE']) );
+        $oHeadPublisher = & headPublisher::getSingleton();
+        $oHeadPublisher->addScriptCode( "groupname=\"{$aFields["GRP_TITLE"]}\";" );
+        G::RenderPage( 'publish', 'raw' );
+        break;
+    case 'assignUser':
+        G::LoadClass( 'groups' );
+        $oGroup = new Groups();
+        $oGroup->addUserToGroup( $_POST['GRP_UID'], $_POST['USR_UID'] );
+        break;
+    case 'assignAllUsers':
+        G::LoadClass( 'groups' );
+        $oGroup = new Groups();
+        $aUsers = explode( ',', $_POST['aUsers'] );
+        for ($i = 0; $i < count( $aUsers ); $i ++) {
+            $oGroup->addUserToGroup( $_POST['GRP_UID'], $aUsers[$i] );
+        }
+        break;
+    case 'ofToAssignUser':
+        G::LoadClass( 'groups' );
+        $oGroup = new Groups();
+        $oGroup->removeUserOfGroup( $_POST['GRP_UID'], $_POST['USR_UID'] );
+        break;
+    case 'verifyGroupname':
+        $_POST['sOriginalGroupname'] = get_ajax_value( 'sOriginalGroupname' );
+        $_POST['sGroupname'] = get_ajax_value( 'sGroupname' );
+        if ($_POST['sOriginalGroupname'] == $_POST['sGroupname']) {
+            echo '0';
+        } else {
+            require_once 'classes/model/Groupwf.php';
+            G::LoadClass( 'Groupswf' );
+            $oGroup = new Groupwf();
+            $oCriteria = $oGroup->loadByGroupname( $_POST['sGroupname'] );
+            $oDataset = GroupwfPeer::doSelectRS( $oCriteria );
+            $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
+            $oDataset->next();
+            $aRow = $oDataset->getRow();
+            if (! $aRow) {
+                echo '0';
+            } else {
+                echo '1';
+            }
+        }
+        break;
+    case 'groupsList':
+        require_once 'classes/model/Groupwf.php';
+        require_once 'classes/model/TaskUser.php';
+        require_once 'classes/model/GroupUser.php';
+        G::LoadClass( 'configuration' );
+        $co = new Configurations();
+        $config = $co->getConfiguration( 'groupList', 'pageSize', '', $_SESSION['USER_LOGGED'] );
+        $env = $co->getConfiguration( 'ENVIRONMENT_SETTINGS', '' );
+        $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'] : '';
+
+        global $RBAC;
+        if ($limit == $start) {
+            $limit = $limit + $limit;
+        }
+        $tasks = new TaskUser();
+        $aTask = $tasks->getCountAllTaksByGroups();
+
+        $members = new GroupUser();
+        $aMembers = $members->getCountAllUsersByGroup();
+
+        require_once PATH_CONTROLLERS . 'adminProxy.php';
+        $uxList = adminProxy::getUxTypesList();
+
+        $groups = new Groupwf();
+        $data = $groups->getAllGroup( $start, $limit, $filter );
+        $result = $data['rows'];
+
+        $totalRows = 0;
+        $arrData = array ();
+        foreach ($result as $results) {
+            $totalRows ++;
+            $results['CON_VALUE'] = str_replace( array ("<",">"
+            ), array ("<",">"
+            ), $results['GRP_TITLE'] );
+            $results['GRP_TASKS'] = isset( $aTask[$results['GRP_UID']] ) ? $aTask[$results['GRP_UID']] : 0;
+            $results['GRP_USERS'] = isset( $aMembers[$results['GRP_UID']] ) ? $aMembers[$results['GRP_UID']] : 0;
+            $arrData[] = $results;
+        }
+
+        $result = new StdClass();
+        $result->success = true;
+        $result->groups = $arrData;
+        $result->total_groups = $data['totalCount'];
+
+        echo G::json_encode( $result );
+        break;
+    case 'exitsGroupName':
+        require_once 'classes/model/Groupwf.php';
+        G::LoadClass( 'Groupswf' );
+        $oGroup = new Groupwf();
+        $oCriteria = $oGroup->loadByGroupname( $_POST['GRP_NAME'] );
+        $oDataset = GroupwfPeer::doSelectRS( $oCriteria );
+        $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
+        $oDataset->next();
+        $aRow = $oDataset->getRow();
+        $response = ($aRow) ? 'true' : 'false';
+        echo $response;
+        break;
+    case 'saveNewGroup':
+        G::LoadClass( 'groups' );
+        $newGroup['GRP_UID'] = '';
+        $newGroup['GRP_STATUS'] = G::toUpper( $_POST['status'] );
+        $newGroup['GRP_TITLE'] = trim( $_POST['name'] );
+        unset( $newGroup['GRP_UID'] );
+        $group = new Groupwf();
+        $group->create( $newGroup );
+        echo '{success: true}';
+        break;
+    case 'saveEditGroup':
+        G::LoadClass( 'groups' );
+        $editGroup['GRP_UID'] = $_POST['grp_uid'];
+        $editGroup['GRP_STATUS'] = G::toUpper( $_POST['status'] );
+        $editGroup['GRP_TITLE'] = trim( $_POST['name'] );
+        $group = new Groupwf();
+        $group->update( $editGroup );
+        echo '{success: true}';
+        break;
+    case 'deleteGroup':
+        G::LoadClass( 'groups' );
+        $group = new Groupwf();
+        if (! isset( $_POST['GRP_UID'] )) {
+            return;
+        }
+        $group->remove( urldecode( $_POST['GRP_UID'] ) );
+        require_once 'classes/model/TaskUser.php';
+        $oProcess = new TaskUser();
+        $oCriteria = new Criteria( 'workflow' );
+        $oCriteria->add( TaskUserPeer::USR_UID, $_POST['GRP_UID'] );
+        TaskUserPeer::doDelete( $oCriteria );
+        echo '{success: true}';
+        break;
+    case 'assignedMembers':
+        require_once 'classes/model/Users.php';
+        require_once 'classes/model/GroupUser.php';
+
+        G::LoadClass( 'configuration' );
+        $co = new Configurations();
+        $config = $co->getConfiguration( 'groupList', 'pageSize', '', $_SESSION['USER_LOGGED'] );
+        $env = $co->getConfiguration( 'ENVIRONMENT_SETTINGS', '' );
+        $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'] : '';
+
+        $sGroupUID = $_REQUEST['gUID'];
+
+        $aUsers = Array ();
+        $oCriteria = new Criteria( 'workflow' );
+        $oCriteria->addSelectColumn( 'COUNT(*) AS CNT' );
+        $oCriteria->addJoin( GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN );
+        $oCriteria->add( GroupUserPeer::GRP_UID, $sGroupUID );
+        $oCriteria->add( UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL );
+        $filter = (isset( $_POST['textFilter'] )) ? $_POST['textFilter'] : '';
+        if ($filter != '') {
+            $oCriteria->add( $oCriteria->getNewCriterion( UsersPeer::USR_USERNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_FIRSTNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_LASTNAME, '%' . $filter . '%', Criteria::LIKE ) ) ) );
+        }
+        $oDataset = UsersPeer::DoSelectRs( $oCriteria );
+        $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
+        $oDataset->next();
+        $row = $oDataset->getRow();
+        $totalRows = $row['CNT'];
+
+        $oCriteria = new Criteria( 'workflow' );
+        $oCriteria->addSelectColumn( GroupUserPeer::GRP_UID );
+        $oCriteria->addSelectColumn( UsersPeer::USR_UID );
+        $oCriteria->addSelectColumn( UsersPeer::USR_USERNAME );
+        $oCriteria->addSelectColumn( UsersPeer::USR_FIRSTNAME );
+        $oCriteria->addSelectColumn( UsersPeer::USR_LASTNAME );
+        $oCriteria->addSelectColumn( UsersPeer::USR_EMAIL );
+        $oCriteria->addSelectColumn( UsersPeer::USR_STATUS );
+        $oCriteria->addJoin( GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN );
+        $oCriteria->add( GroupUserPeer::GRP_UID, $sGroupUID );
+        $oCriteria->add( UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL );
+        $filter = (isset( $_POST['textFilter'] )) ? $_POST['textFilter'] : '';
+        if ($filter != '') {
+            $oCriteria->add( $oCriteria->getNewCriterion( UsersPeer::USR_USERNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_FIRSTNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_LASTNAME, '%' . $filter . '%', Criteria::LIKE ) ) ) );
+        }
+        $oCriteria->setOffset( $start );
+        $oCriteria->setLimit( $limit );
+
+        $oDataset = UsersPeer::doSelectRS( $oCriteria );
+        $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
+        $arrData = Array ();
+        while ($oDataset->next()) {
+            $arrData[] = $oDataset->getRow();
+        }
+        echo '{success: true, members: ' . G::json_encode( $arrData ) . ', total_users: ' . $totalRows . '}';
+        break;
+    case 'availableMembers':
+        require_once 'classes/model/Users.php';
+        require_once 'classes/model/GroupUser.php';
+
+        G::LoadClass( 'configuration' );
+        $co = new Configurations();
+        $config = $co->getConfiguration( 'groupList', 'pageSize', '', $_SESSION['USER_LOGGED'] );
+        $env = $co->getConfiguration( 'ENVIRONMENT_SETTINGS', '' );
+        $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'] : '';
+
+        $sGroupUID = $_REQUEST['gUID'];
+        $oCriteria = new Criteria( 'workflow' );
+        $oCriteria->addSelectColumn( GroupUserPeer::GRP_UID );
+        $oCriteria->addSelectColumn( UsersPeer::USR_UID );
+        $oCriteria->addJoin( GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN );
+        $oCriteria->add( GroupUserPeer::GRP_UID, $sGroupUID );
+        $oCriteria->add( UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL );
+        $oDataset = UsersPeer::doSelectRS( $oCriteria );
+        $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
+        $oDataset->next();
+        $uUIDs = array ();
+        while ($aRow = $oDataset->getRow()) {
+            $uUIDs[] = $aRow['USR_UID'];
+            $oDataset->next();
+        }
+
+        $aUsers = Array ();
+        $oCriteria = new Criteria( 'workflow' );
+        $oCriteria->addSelectColumn( 'COUNT(*) AS CNT' );
+        $oCriteria->add( UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL );
+        $oCriteria->add( UsersPeer::USR_UID, $uUIDs, Criteria::NOT_IN );
+        $filter = (isset( $_POST['textFilter'] )) ? $_POST['textFilter'] : '';
+        if ($filter != '') {
+            $oCriteria->add( $oCriteria->getNewCriterion( UsersPeer::USR_USERNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_FIRSTNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_LASTNAME, '%' . $filter . '%', Criteria::LIKE ) ) ) );
+        }
+        $oDataset = UsersPeer::DoSelectRs( $oCriteria );
+        $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
+        $oDataset->next();
+        $row = $oDataset->getRow();
+        $totalRows = $row['CNT'];
+
+        $oCriteria = new Criteria( 'workflow' );
+        $oCriteria->addSelectColumn( UsersPeer::USR_UID );
+        $oCriteria->addSelectColumn( UsersPeer::USR_USERNAME );
+        $oCriteria->addSelectColumn( UsersPeer::USR_FIRSTNAME );
+        $oCriteria->addSelectColumn( UsersPeer::USR_LASTNAME );
+        $oCriteria->addSelectColumn( UsersPeer::USR_EMAIL );
+        $oCriteria->addSelectColumn( UsersPeer::USR_STATUS );
+        $oCriteria->add( UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL );
+        $oCriteria->add( UsersPeer::USR_UID, $uUIDs, Criteria::NOT_IN );
+        $filter = (isset( $_POST['textFilter'] )) ? $_POST['textFilter'] : '';
+        if ($filter != '') {
+            $oCriteria->add( $oCriteria->getNewCriterion( UsersPeer::USR_USERNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_FIRSTNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_LASTNAME, '%' . $filter . '%', Criteria::LIKE ) ) ) );
+        }
+        $oCriteria->setOffset( $start );
+        $oCriteria->setLimit( $limit );
+        $oDataset = UsersPeer::doSelectRS( $oCriteria );
+        $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
+        $arrData = Array ();
+        while ($oDataset->next()) {
+            $arrData[] = $oDataset->getRow();
+        }
+        echo '{success: true, members: ' . G::json_encode( $arrData ) . ', total_users: ' . $totalRows . '}';
+        break;
+    case 'assignUsersToGroupsMultiple':
+        $GRP_UID = $_POST['GRP_UID'];
+        $uUIDs = explode( ',', $_POST['USR_UID'] );
+        G::LoadClass( 'groups' );
+        $oGroup = new Groups();
+        foreach ($uUIDs as $USR_UID) {
+            $oGroup->addUserToGroup( $GRP_UID, $USR_UID );
+        }
+        break;
+    case 'deleteUsersToGroupsMultiple':
+        $GRP_UID = $_POST['GRP_UID'];
+        $uUIDs = explode( ',', $_POST['USR_UID'] );
+        G::LoadClass( 'groups' );
+        $oGroup = new Groups();
+        foreach ($uUIDs as $USR_UID) {
+            $oGroup->removeUserOfGroup( $GRP_UID, $USR_UID );
+        }
+        break;
+    case 'updatePageSize':
+        G::LoadClass( 'configuration' );
+        $c = new Configurations();
+        $arr['pageSize'] = $_REQUEST['size'];
+        $arr['dateSave'] = date( 'Y-m-d H:i:s' );
+        $config = Array ();
+        $config[] = $arr;
+        $c->aConfig = $config;
+        $c->saveConfig( 'groupList', 'pageSize', '', $_SESSION['USER_LOGGED'] );
+        echo '{success: true}';
+        break;
+}
+
diff --git a/workflow/engine/methods/groups/groups_Delete.php b/workflow/engine/methods/groups/groups_Delete.php
index 23d3eda92..c7559628b 100755
--- a/workflow/engine/methods/groups/groups_Delete.php
+++ b/workflow/engine/methods/groups/groups_Delete.php
@@ -1,64 +1,65 @@
-.
- * 
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd., 
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- * 
- */
-
-$access = $RBAC->userCanAccess('PM_USERS');
-if( $access != 1 ){
-  switch ($access)
-  {
-  	case -1:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	case -2:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	default:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;  	
-  }
-}  
-if (($RBAC_Response=$RBAC->userCanAccess("PM_USERS"))!=1) return $RBAC_Response;
-
-  G::LoadClass('groups');
-  
-  $group = new Groupwf();
-
-  if (!isset($_POST['GRP_UID'])) return;
-  
-  $group->remove(urldecode($_POST['GRP_UID']));
-  
-  require_once 'classes/model/TaskUser.php';
-  $oProcess   = new TaskUser();
-
-  $oCriteria = new Criteria('workflow');
-  $oCriteria->add(TaskUserPeer::USR_UID, $_POST['GRP_UID']);
-  TaskUserPeer::doDelete($oCriteria);
-  
-?>
\ No newline at end of file
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+
+$access = $RBAC->userCanAccess( 'PM_USERS' );
+if ($access != 1) {
+    switch ($access) {
+        case - 1:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        case - 2:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        default:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+    }
+}
+if (($RBAC_Response = $RBAC->userCanAccess( "PM_USERS" )) != 1) {
+    return $RBAC_Response;
+}
+
+G::LoadClass( 'groups' );
+
+$group = new Groupwf();
+
+if (! isset( $_POST['GRP_UID'] )) {
+    return;
+}
+
+$group->remove( urldecode( $_POST['GRP_UID'] ) );
+
+require_once 'classes/model/TaskUser.php';
+$oProcess = new TaskUser();
+
+$oCriteria = new Criteria( 'workflow' );
+$oCriteria->add( TaskUserPeer::USR_UID, $_POST['GRP_UID'] );
+TaskUserPeer::doDelete( $oCriteria );
+
diff --git a/workflow/engine/methods/groups/groups_Edit.php b/workflow/engine/methods/groups/groups_Edit.php
index c7fdbb1e6..7c613ce0b 100755
--- a/workflow/engine/methods/groups/groups_Edit.php
+++ b/workflow/engine/methods/groups/groups_Edit.php
@@ -1,70 +1,65 @@
-.
- * 
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd., 
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- * 
- */
-
-
-$access = $RBAC->userCanAccess('PM_USERS');
-if( $access != 1 ){
-  switch ($access)
-  {
-  	case -1:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	case -2:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	default:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;  	
-  }
-}  
-if (($RBAC_Response=$RBAC->userCanAccess("PM_USERS"))!=1) return $RBAC_Response;
-
-  G::LoadClass('groups');
-
-  $dbc = new DBConnection();
-  $ses = new DBSession($dbc);
-
-  $group = new Groupwf();
-  $GrpUid = (isset($_GET['UID'])) ? urldecode($_GET['UID']):'';
-  if ($GrpUid)
-  {
-    $aFields=$group->Load( $GrpUid );
-  }
-  else
-  {
-    $aFields=array();
-  }
-  $G_PUBLISH = new Publisher();
-  $G_PUBLISH->AddContent('xmlform', 'xmlform', 'groups/groups_Edit', '', $aFields , 'groups_Save');
-
-  G::RenderPage( "publish" , "raw" );
-
-?>
\ No newline at end of file
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+
+$access = $RBAC->userCanAccess( 'PM_USERS' );
+if ($access != 1) {
+    switch ($access) {
+        case - 1:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        case - 2:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        default:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+    }
+}
+if (($RBAC_Response = $RBAC->userCanAccess( "PM_USERS" )) != 1) {
+    return $RBAC_Response;
+}
+
+G::LoadClass( 'groups' );
+
+$dbc = new DBConnection();
+$ses = new DBSession( $dbc );
+
+$group = new Groupwf();
+$GrpUid = (isset( $_GET['UID'] )) ? urldecode( $_GET['UID'] ) : '';
+if ($GrpUid) {
+    $aFields = $group->Load( $GrpUid );
+} else {
+    $aFields = array ();
+}
+$G_PUBLISH = new Publisher();
+$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'groups/groups_Edit', '', $aFields, 'groups_Save' );
+
+G::RenderPage( "publish", "raw" );
+
diff --git a/workflow/engine/methods/groups/groups_List.php b/workflow/engine/methods/groups/groups_List.php
index 6da3cb32d..055d62bc6 100755
--- a/workflow/engine/methods/groups/groups_List.php
+++ b/workflow/engine/methods/groups/groups_List.php
@@ -1,55 +1,55 @@
-.
- * 
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd., 
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- * 
- */
-
-
-$access = $RBAC->userCanAccess('PM_USERS');
-if( $access != 1 ){
-  switch ($access)
-  {
-  	case -1:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	case -2:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	default:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;  	
-  }
-}  
-if (($RBAC_Response=$RBAC->userCanAccess("PM_USERS"))!=1) return $RBAC_Response;
-  
-  //G::genericForceLogin( 'WF_MYINFO' , 'login/noViewPage', $urlLogin = 'login/login' );
-
-$G_PUBLISH = new Publisher;
-  $G_PUBLISH->AddContent( 'view', 'groups/groups_Tree' );
-  G::RenderPage( "publish-raw" , "raw" );  
-?>
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+
+$access = $RBAC->userCanAccess( 'PM_USERS' );
+if ($access != 1) {
+    switch ($access) {
+        case - 1:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        case - 2:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        default:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+    }
+}
+if (($RBAC_Response = $RBAC->userCanAccess( "PM_USERS" )) != 1) {
+    return $RBAC_Response;
+}
+
+    //G::genericForceLogin( 'WF_MYINFO' , 'login/noViewPage', $urlLogin = 'login/login' );
+
+
+$G_PUBLISH = new Publisher();
+$G_PUBLISH->AddContent( 'view', 'groups/groups_Tree' );
+G::RenderPage( "publish-raw", "raw" );
+
diff --git a/workflow/engine/methods/groups/groups_Save.php b/workflow/engine/methods/groups/groups_Save.php
index 0332a8655..33431483a 100755
--- a/workflow/engine/methods/groups/groups_Save.php
+++ b/workflow/engine/methods/groups/groups_Save.php
@@ -1,69 +1,65 @@
-.
- * 
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd., 
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- * 
- */
-
-$access = $RBAC->userCanAccess('PM_USERS');
-if( $access != 1 ){
-  switch ($access)
-  {
-  	case -1:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	case -2:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	default:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;  	
-  }
-}  
-if (($RBAC_Response=$RBAC->userCanAccess("PM_USERS"))!=1) return $RBAC_Response;
-  
-  G::LoadClass('groups');
-  
-  $G_MAIN_MENU     = 'wf.login';
-  $G_MENU_SELECTED = '';
-
-  $group = new Groupwf();  
-  if($_POST['form']['GRP_UID']==='')
-  { 
-  	$grpRow = $_POST['form'];
-  	unset ( $grpRow['GRP_UID'] );
-    $group->create( $grpRow );
-    
-    //$_POST['form']['GRP_UID']=$group->getGrpUid();
-    //$group->update($_POST['form']);
-  }
-  else
-  {
-    $group->update($_POST['form']);
-  }
-  
-?>
\ No newline at end of file
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+
+$access = $RBAC->userCanAccess( 'PM_USERS' );
+if ($access != 1) {
+    switch ($access) {
+        case - 1:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        case - 2:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        default:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+    }
+}
+if (($RBAC_Response = $RBAC->userCanAccess( "PM_USERS" )) != 1) {
+    return $RBAC_Response;
+}
+
+G::LoadClass( 'groups' );
+
+$G_MAIN_MENU = 'wf.login';
+$G_MENU_SELECTED = '';
+
+$group = new Groupwf();
+if ($_POST['form']['GRP_UID'] === '') {
+    $grpRow = $_POST['form'];
+    unset( $grpRow['GRP_UID'] );
+    $group->create( $grpRow );
+
+    //$_POST['form']['GRP_UID']=$group->getGrpUid();
+    //$group->update($_POST['form']);
+} else {
+    $group->update( $_POST['form'] );
+}
+
diff --git a/workflow/engine/methods/groups/groups_SaveAddUser.php b/workflow/engine/methods/groups/groups_SaveAddUser.php
index 00e00ee3a..4ba9e6593 100755
--- a/workflow/engine/methods/groups/groups_SaveAddUser.php
+++ b/workflow/engine/methods/groups/groups_SaveAddUser.php
@@ -1,10 +1,10 @@
 .
- * 
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd., 
+ * along with this program. If not, see .
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
  * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- * 
  */
-if (($RBAC_Response=$RBAC->userCanAccess("PM_USERS"))!=1) return $RBAC_Response;
-  
-  G::LoadClass('groups');
-  $groups = new Groups;
-  $groups->addUserToGroup( $_GET['GRP_UID'], $_POST['form']['USR_UID'] );
+if (($RBAC_Response = $RBAC->userCanAccess( "PM_USERS" )) != 1) {
+    return $RBAC_Response;
+}
+
+G::LoadClass( 'groups' );
+$groups = new Groups();
+$groups->addUserToGroup( $_GET['GRP_UID'], $_POST['form']['USR_UID'] );
+
diff --git a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql
index 3149c6f86..03c1e1578 100755
--- a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql
+++ b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql
@@ -13,6 +13,7 @@ BEGIN
   DECLARE APP_DEL_PREVIOUS_USER VARCHAR(255);
   DECLARE APP_THREAD_STATUS VARCHAR(32);
   SET @DEFAULT_LANG = '{lang}';
+  SET @APP_CURRENT_USER = '';
   SELECT APPLICATION.APP_NUMBER into @APP_NUMBER FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1;
   SELECT APPLICATION.APP_STATUS into @APP_STATUS FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1;
   SELECT APPLICATION.APP_CREATE_DATE into @APP_CREATE_DATE FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1;
@@ -20,7 +21,7 @@ BEGIN
   IF ( @APP_TITLE IS NULL ) THEN
     SET @APP_TITLE = '';
   END IF;
-  SELECT CONTENT.CON_VALUE into @APP_PRO_TITLE FROM CONTENT WHERE NEW.PRO_UID=CON_ID AND CON_CATEGORY='PRO_TITLE' and CON_LANG = '{lang}'  LIMIT 1;
+  SELECT CONTENT.CON_VALUE into @APP_PRO_TITLE FROM CONTENT WHERE NEW.PRO_UID=CON_ID AND CON_CATEGORY='PRO_TITLE' and CON_LANG = '{lang}' LIMIT 1;
   SELECT CONTENT.CON_VALUE into @APP_TAS_TITLE FROM CONTENT WHERE NEW.TAS_UID=CON_ID AND CON_CATEGORY='TAS_TITLE' and CON_LANG = '{lang}' LIMIT 1;
   SELECT CONCAT(USERS.USR_LASTNAME,  ' ',  USERS.USR_FIRSTNAME) INTO @APP_CURRENT_USER FROM USERS WHERE USR_UID = NEW.USR_UID LIMIT 1;
   IF ( @APP_CURRENT_USER IS NULL ) THEN
@@ -52,7 +53,7 @@ BEGIN
     TAS_UID,
     PRO_UID,
     DEL_DELEGATE_DATE,
-    DEL_INIT_DATE, 
+    DEL_INIT_DATE,
     DEL_TASK_DUE_DATE,
     DEL_FINISH_DATE,
     DEL_THREAD_STATUS,
@@ -84,9 +85,9 @@ BEGIN
     NEW.TAS_UID,
     NEW.PRO_UID,
     NEW.DEL_DELEGATE_DATE,
-    NEW.DEL_INIT_DATE,    
+    NEW.DEL_INIT_DATE,
     NEW.DEL_TASK_DUE_DATE,
-    NEW.DEL_FINISH_DATE,  
+    NEW.DEL_FINISH_DATE,
     NEW.DEL_THREAD_STATUS,
     @APP_THREAD_STATUS,
     @APP_TITLE,
diff --git a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql
index e78b80dcf..c8baf5d15 100755
--- a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql
+++ b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql
@@ -13,6 +13,7 @@ BEGIN
   DECLARE APP_DEL_PREVIOUS_USER VARCHAR(255);
   DECLARE APP_THREAD_STATUS VARCHAR(32);
   SET @DEFAULT_LANG = '{lang}';
+  SET @APP_CURRENT_USER = '';
   SELECT APPLICATION.APP_NUMBER into @APP_NUMBER FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1;
   SELECT APPLICATION.APP_STATUS into @APP_STATUS FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1;
   SELECT APPLICATION.APP_CREATE_DATE into @APP_CREATE_DATE FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1;
@@ -41,7 +42,7 @@ BEGIN
     SET @APP_THREAD_STATUS = 'OPEN';
   END IF;
   SET @TAS_TYPE = (SELECT TAS_TYPE FROM TASK WHERE TAS_UID = NEW.TAS_UID LIMIT 1);
-  IF( @TAS_TYPE != 'SUBPROCESS') THEN  
+  IF( @TAS_TYPE != 'SUBPROCESS') THEN
     UPDATE `APP_CACHE_VIEW`
     SET
     APP_NUMBER            =   @APP_NUMBER,
diff --git a/workflow/engine/methods/tracker/authentication.php b/workflow/engine/methods/tracker/authentication.php
index 9c14cd0f7..aeb6b5620 100755
--- a/workflow/engine/methods/tracker/authentication.php
+++ b/workflow/engine/methods/tracker/authentication.php
@@ -1,120 +1,113 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
-  /*
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+/*
    * Authentication for Case Tracker
    *
    * @author Everth S. Berrios Morales 
    *
-   */
-
-  if (!isset($_POST['form']) ) {
-    G::SendTemporalMessage ('ID_USER_HAVENT_RIGHTS_SYSTEM', "error");
-    G::header  ("location: login.php");die;
-  }
-
-try {
-  $frm = $_POST['form'];
-  $case = '';
-  $pin = '';
-
-  if (isset($frm['CASE'])) {
-    $case = strtolower(trim($frm['CASE']));
-    $pin = trim($frm['PIN']);
-  }
-
-  G::LoadClass('case');
-  $cases = new Cases();
-
-  $uid = $cases->verifyCaseTracker($case, $pin);
-  switch ($uid) {
-    //The case doesn't exist
-    case -1:
-      G::SendTemporalMessage ('ID_CASE_NOT_EXISTS', "error");
-      break;
-    //The pin is invalid
-    case -2:
-      G::SendTemporalMessage ('ID_PIN_INVALID', "error");
-      break;
-  }
-
-  if ($uid < 0 ) {
-    G::header  ("location: login.php");
-    die;
-  }
-
-  if(is_array($uid))
-  {
-    require_once ("classes/model/CaseTracker.php");
-    require_once ("classes/model/CaseTrackerObject.php");
-    $_SESSION['CASE']         = $case;
-    $_SESSION['PIN']          = $pin;
-    $_SESSION['PROCESS']      = $uid['PRO_UID'];
-    $_SESSION['APPLICATION']  = $uid['APP_UID'];
-    $_SESSION['TASK']         = -1;
-    $_SESSION['INDEX']        = -1;
-
-    $criteria = new Criteria();
-    $criteria->add(CaseTrackerPeer::PRO_UID, $_SESSION['PROCESS']);
-    $caseTracker = new CaseTracker();
-    if (CaseTrackerPeer::doCount($criteria) === 0) {
-      $permissionsCaseTracker = array('PRO_UID'     => $_SESSION['PROCESS'],
-                            'CT_MAP_TYPE'           => 'PROCESSMAP',
-                            'CT_DERIVATION_HISTORY' => 1,
-                            'CT_MESSAGE_HISTORY'    => 1);
-      $caseTracker->create($permissionsCaseTracker);
-    }
-    $caseTracker = $cases->caseTrackerPermissions( $_SESSION['PROCESS']);
-
-    if ($caseTracker['CT_MAP_TYPE']) {
-      G::header  ('location: tracker_ViewMap');
-    }
-    else {
-      if ($caseTracker['DYNADOC']) {
-        G::header  ("location: tracker_DynaDocs");
-      }
-      else {
-        if ($caseTracker['CT_DERIVATION_HISTORY']) {
-          G::header  ("location: tracker_History");
-        }
-        else {
-          if ($caseTracker['CT_MESSAGE_HISTORY']) {
-            G::header  ("location: tracker_No");
-          }
-          else {
-            G::header  ("location: login.php");
-            G::SendTemporalMessage ('ID_ACCOUNT_DISABLED_CONTACT_ADMIN', "error");
-          }
-        }
-      }
-    }
-  }
-}
-catch ( Exception $e ) {
-  $aMessage['MESSAGE'] = $e->getMessage();
-  $G_PUBLISH = new Publisher;
-  $G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
-  G::RenderPage( 'publish' );
-  die;
-}
\ No newline at end of file
+   */
+
+if (! isset( $_POST['form'] )) {
+    G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', "error" );
+    G::header( "location: login.php" );
+    die();
+}
+
+try {
+    $frm = $_POST['form'];
+    $case = '';
+    $pin = '';
+
+    if (isset( $frm['CASE'] )) {
+        $case = strtolower( trim( $frm['CASE'] ) );
+        $pin = trim( $frm['PIN'] );
+    }
+
+    G::LoadClass( 'case' );
+    $cases = new Cases();
+
+    $uid = $cases->verifyCaseTracker( $case, $pin );
+    switch ($uid) {
+        //The case doesn't exist
+        case - 1:
+            G::SendTemporalMessage( 'ID_CASE_NOT_EXISTS', "error" );
+            break;
+        //The pin is invalid
+        case - 2:
+            G::SendTemporalMessage( 'ID_PIN_INVALID', "error" );
+            break;
+    }
+
+    if ($uid < 0) {
+        G::header( "location: login.php" );
+        die();
+    }
+
+    if (is_array( $uid )) {
+        require_once ("classes/model/CaseTracker.php");
+        require_once ("classes/model/CaseTrackerObject.php");
+        $_SESSION['CASE'] = $case;
+        $_SESSION['PIN'] = $pin;
+        $_SESSION['PROCESS'] = $uid['PRO_UID'];
+        $_SESSION['APPLICATION'] = $uid['APP_UID'];
+        $_SESSION['TASK'] = - 1;
+        $_SESSION['INDEX'] = - 1;
+
+        $criteria = new Criteria();
+        $criteria->add( CaseTrackerPeer::PRO_UID, $_SESSION['PROCESS'] );
+        $caseTracker = new CaseTracker();
+        if (CaseTrackerPeer::doCount( $criteria ) === 0) {
+            $permissionsCaseTracker = array ('PRO_UID' => $_SESSION['PROCESS'],'CT_MAP_TYPE' => 'PROCESSMAP','CT_DERIVATION_HISTORY' => 1,'CT_MESSAGE_HISTORY' => 1
+            );
+            $caseTracker->create( $permissionsCaseTracker );
+        }
+        $caseTracker = $cases->caseTrackerPermissions( $_SESSION['PROCESS'] );
+
+        if ($caseTracker['CT_MAP_TYPE']) {
+            G::header( 'location: tracker_ViewMap' );
+        } else {
+            if ($caseTracker['DYNADOC']) {
+                G::header( "location: tracker_DynaDocs" );
+            } else {
+                if ($caseTracker['CT_DERIVATION_HISTORY']) {
+                    G::header( "location: tracker_History" );
+                } else {
+                    if ($caseTracker['CT_MESSAGE_HISTORY']) {
+                        G::header( "location: tracker_No" );
+                    } else {
+                        G::header( "location: login.php" );
+                        G::SendTemporalMessage( 'ID_ACCOUNT_DISABLED_CONTACT_ADMIN', "error" );
+                    }
+                }
+            }
+        }
+    }
+} catch (Exception $e) {
+    $aMessage['MESSAGE'] = $e->getMessage();
+    $G_PUBLISH = new Publisher();
+    $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
+    G::RenderPage( 'publish' );
+    die();
+}
+
diff --git a/workflow/engine/methods/tracker/login.php b/workflow/engine/methods/tracker/login.php
index feb06f2be..d7d125635 100755
--- a/workflow/engine/methods/tracker/login.php
+++ b/workflow/engine/methods/tracker/login.php
@@ -1,45 +1,39 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
- 
-   /*
-   * Login for authentication of Case Tracker
-   *
-   * @author Everth S. Berrios Morales 
-   *   
-   */
- 
-
-$G_PUBLISH = new Publisher;
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+
+/*
+* Login for authentication of Case Tracker
+*
+* @author Everth S. Berrios Morales 
+*
+*/
+
+$G_PUBLISH = new Publisher();
 //echo G::generateUniqueNumber();
-$G_PUBLISH->AddContent('xmlform', 'xmlform', 'tracker/login', '', '', SYS_URI.'tracker/authentication.php');
-
-G::RenderPage( "publish" );
-session_destroy();
-session_start();
-
- 
- 
- 
- 
\ No newline at end of file
+$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'tracker/login', '', '', SYS_URI . 'tracker/authentication.php' );
+
+G::RenderPage( "publish" );
+session_destroy();
+session_start();
+
diff --git a/workflow/engine/methods/tracker/tracker_Ajax.php b/workflow/engine/methods/tracker/tracker_Ajax.php
index 5764a84f9..f77318610 100755
--- a/workflow/engine/methods/tracker/tracker_Ajax.php
+++ b/workflow/engine/methods/tracker/tracker_Ajax.php
@@ -1,69 +1,68 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
-try {
-  if (isset($_POST['form']['action'])) {
-    $_POST['action'] = $_POST['form']['action'];
-  }
-  switch ($_POST['action']) {
-  	case 'availableCaseTrackerObjects':
-  	  G::LoadClass('processMap');
-      $oProcessMap = new ProcessMap();
-  	  $oProcessMap->availableCaseTrackerObjects($_POST['PRO_UID']);
-    break;
-    case 'assignCaseTrackerObject':
-      G::LoadClass('processMap');
-      $oProcessMap = new ProcessMap();
-      $cto_UID = $oProcessMap->assignCaseTrackerObject($_POST['PRO_UID'], $_POST['OBJECT_TYPE'], $_POST['OBJECT_UID']);
-      $oProcessMap->getCaseTrackerObjectsCriteria($_POST['PRO_UID']);
-      echo $cto_UID;
-    break;
-    case 'removeCaseTrackerObject':
-      G::LoadClass('processMap');
-      $oProcessMap = new ProcessMap();
-      $oProcessMap->removeCaseTrackerObject($_POST['CTO_UID'], $_POST['PRO_UID'], $_POST['STEP_POSITION']);
-      $oProcessMap->getCaseTrackerObjectsCriteria($_POST['PRO_UID']);
-    break;
-    case 'upCaseTrackerObject':
-      G::LoadClass('processMap');
-      $oProcessMap = new ProcessMap();
-      $oProcessMap->upCaseTrackerObject($_POST['CTO_UID'], $_POST['PRO_UID'], $_POST['STEP_POSITION']);
-      $oProcessMap->getCaseTrackerObjectsCriteria($_POST['PRO_UID']);
-    break;
-    case 'downCaseTrackerObject':
-      G::LoadClass('processMap');
-      $oProcessMap = new ProcessMap();
-      $oProcessMap->downCaseTrackerObject($_POST['CTO_UID'], $_POST['PRO_UID'], $_POST['STEP_POSITION']);
-      $oProcessMap->getCaseTrackerObjectsCriteria($_POST['PRO_UID']);
-    break;
-    case 'editStagesMap':
-      $oTemplatePower = new TemplatePower(PATH_TPL . 'tracker/stages_Map.html');
-			$oTemplatePower->prepare();
-			$G_PUBLISH = new Publisher;
-			$G_PUBLISH->AddContent('template', '', '', '', $oTemplatePower);
-	    $oHeadPublisher =& headPublisher::getSingleton();
-	    $oHeadPublisher->addScriptCode('
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+try {
+    if (isset( $_POST['form']['action'] )) {
+        $_POST['action'] = $_POST['form']['action'];
+    }
+    switch ($_POST['action']) {
+        case 'availableCaseTrackerObjects':
+            G::LoadClass( 'processMap' );
+            $oProcessMap = new ProcessMap();
+            $oProcessMap->availableCaseTrackerObjects( $_POST['PRO_UID'] );
+            break;
+        case 'assignCaseTrackerObject':
+            G::LoadClass( 'processMap' );
+            $oProcessMap = new ProcessMap();
+            $cto_UID = $oProcessMap->assignCaseTrackerObject( $_POST['PRO_UID'], $_POST['OBJECT_TYPE'], $_POST['OBJECT_UID'] );
+            $oProcessMap->getCaseTrackerObjectsCriteria( $_POST['PRO_UID'] );
+            echo $cto_UID;
+            break;
+        case 'removeCaseTrackerObject':
+            G::LoadClass( 'processMap' );
+            $oProcessMap = new ProcessMap();
+            $oProcessMap->removeCaseTrackerObject( $_POST['CTO_UID'], $_POST['PRO_UID'], $_POST['STEP_POSITION'] );
+            $oProcessMap->getCaseTrackerObjectsCriteria( $_POST['PRO_UID'] );
+            break;
+        case 'upCaseTrackerObject':
+            G::LoadClass( 'processMap' );
+            $oProcessMap = new ProcessMap();
+            $oProcessMap->upCaseTrackerObject( $_POST['CTO_UID'], $_POST['PRO_UID'], $_POST['STEP_POSITION'] );
+            $oProcessMap->getCaseTrackerObjectsCriteria( $_POST['PRO_UID'] );
+            break;
+        case 'downCaseTrackerObject':
+            G::LoadClass( 'processMap' );
+            $oProcessMap = new ProcessMap();
+            $oProcessMap->downCaseTrackerObject( $_POST['CTO_UID'], $_POST['PRO_UID'], $_POST['STEP_POSITION'] );
+            $oProcessMap->getCaseTrackerObjectsCriteria( $_POST['PRO_UID'] );
+            break;
+        case 'editStagesMap':
+            $oTemplatePower = new TemplatePower( PATH_TPL . 'tracker/stages_Map.html' );
+            $oTemplatePower->prepare();
+            $G_PUBLISH = new Publisher();
+            $G_PUBLISH->AddContent( 'template', '', '', '', $oTemplatePower );
+            $oHeadPublisher = & headPublisher::getSingleton();
+            $oHeadPublisher->addScriptCode( '
 			  var pb=leimnud.dom.capture("tag.body 0");
 			  Sm=new stagesmap();
 			  Sm.options = {
@@ -77,366 +76,361 @@ try {
 			  	rw        : true,
 			  	hideMenu  : false
 			  };
-			  Sm.make();');
-			G::RenderPage('publish', 'raw');
-    break;
-    case 'showUploadedDocumentTracker':
-		  require_once 'classes/model/AppDocument.php';
-		  require_once 'classes/model/AppDelegation.php';
-		  require_once 'classes/model/InputDocument.php';
-		  require_once 'classes/model/Users.php';
-		  $oAppDocument = new AppDocument();
-		  $oAppDocument->Fields = $oAppDocument->load($_POST['APP_DOC_UID']);
-
-		  $oInputDocument = new InputDocument();
-		  if ($oAppDocument->Fields['DOC_UID'] != -1) {
-		    $Fields = $oInputDocument->load($oAppDocument->Fields['DOC_UID']);
-		  }
-		  else {
-		    $Fields = array('INP_DOC_FORM_NEEDED' => '', 'FILENAME' => $oAppDocument->Fields['APP_DOC_FILENAME']);
-		  }
-		  $oCriteria = new Criteria('workflow');
-      $oCriteria->add(AppDelegationPeer::DEL_INDEX, $oAppDocument->Fields['DEL_INDEX']);
-      $oDataset = AppDelegationPeer::doSelectRS($oCriteria);
-      $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
-      $oDataset->next();
-      $aRow = $oDataset->getRow();
-      $oTask = new Task();
-      $aTask = $oTask->load($aRow['TAS_UID']);
-      $Fields['ORIGIN'] = $aTask['TAS_TITLE'];
-		  $oUser = new Users();
-		  $aUser = $oUser->load($oAppDocument->Fields['USR_UID']);
-		  $Fields['CREATOR'] = $aUser['USR_FIRSTNAME'] . ' ' . $aUser['USR_LASTNAME'];
-		  switch ($Fields['INP_DOC_FORM_NEEDED'])
-		  {
-		  	case 'REAL':
-		  	$sXmlForm = 'tracker/tracker_ViewAnyInputDocument2';
-		  	break;
-		  	case 'VIRTUAL':
-		  	$sXmlForm = 'tracker/tracker_ViewAnyInputDocument1';
-		  	break;
-		  	case 'VREAL':
-		  	$sXmlForm = 'tracker/tracker_ViewAnyInputDocument3';
-		  	break;
-		  	default:
-		  	$sXmlForm = 'tracker/tracker_ViewAnyInputDocument';
-		  	break;
-		  }
-		  $oAppDocument->Fields['VIEW'] = G::LoadTranslation('ID_OPEN');
-		  $oAppDocument->Fields['FILE'] = 'tracker_ShowDocument?a=' . $_POST['APP_DOC_UID'] . '&r=' . rand();
-
-  		  //If plugin and trigger are defined for listing
-		  if ( $oPluginRegistry->existsTrigger ( PM_CASE_DOCUMENT_LIST_ARR ) ) {
-      			$oPluginRegistry =& PMPluginRegistry::getSingleton();
-      			$filesPluginArray=$oPluginRegistry->executeTriggers ( PM_CASE_DOCUMENT_LIST_ARR , $_SESSION['APPLICATION'] );
-      			//Now search for the file, if exists the change the download URL
-      			foreach($filesPluginArray as $file){
-      				if($file->filename==$_POST['APP_DOC_UID']){
-      					$oAppDocument->Fields['FILE'] = $file->downloadScript;
-      				}
-      			}
-    		}
-
-
-		  $G_PUBLISH = new Publisher;
-		  $G_PUBLISH->AddContent('xmlform', 'xmlform', $sXmlForm, '', G::array_merges($Fields, $oAppDocument->Fields), '');
-		  G::RenderPage('publish', 'raw');
-		break;
-		case 'showGeneratedDocumentTracker':
-		  require_once 'classes/model/AppDocument.php';
-		  require_once 'classes/model/AppDelegation.php';
-		  $oAppDocument = new AppDocument();
-		  $aFields = $oAppDocument->load($_POST['APP_DOC_UID']);
-		  require_once 'classes/model/OutputDocument.php';
-		  $oOutputDocument = new OutputDocument();
-		  $aOD = $oOutputDocument->load($aFields['DOC_UID']);
-
-		  $oCriteria = new Criteria('workflow');
-      $oCriteria->add(AppDelegationPeer::APP_UID, $aFields['APP_UID']);
-      $oCriteria->add(AppDelegationPeer::DEL_INDEX, $aFields['DEL_INDEX']);
-      $oDataset = AppDelegationPeer::doSelectRS($oCriteria);
-      $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
-      $oDataset->next();
-      $aRow = $oDataset->getRow();
-      $oTask = new Task();
-      $aTask = $oTask->load($aRow['TAS_UID']);
-      $aFields['ORIGIN'] = $aTask['TAS_TITLE'];
-      require_once 'classes/model/Users.php';
-		  $oUser = new Users();
-		  $aUser = $oUser->load($aFields['USR_UID']);
-		  $aFields['CREATOR'] = $aUser['USR_FIRSTNAME'] . ' ' . $aUser['USR_LASTNAME'];
-		  $aFields['VIEW'] = G::LoadTranslation('ID_OPEN');
-		  $aFields['FILE1'] = 'tracker_ShowOutputDocument?a=' . $aFields['APP_DOC_UID'] . '&ext=doc&random=' . rand();
-		  $aFields['FILE2'] = 'tracker_ShowOutputDocument?a=' . $aFields['APP_DOC_UID'] . '&ext=pdf&random=' . rand();
-
-
-		  //If plugin and trigger are defined for listing
-		  if ( $oPluginRegistry->existsTrigger ( PM_CASE_DOCUMENT_LIST_ARR ) ) {
-      			$oPluginRegistry =& PMPluginRegistry::getSingleton();
-      			$filesPluginArray=$oPluginRegistry->executeTriggers ( PM_CASE_DOCUMENT_LIST_ARR , $aFields['APP_UID'] );
-      			//Now search for the file, if exists the change the download URL
-      			foreach($filesPluginArray as $file){
-      				if($file->filename==$_POST['APP_DOC_UID']){
-      					$aFields['FILE2'] = $file->downloadScript;// The PDF is the only one uploaded to KT
-      				}
-      			}
-    		}
-
-
-
-		  $G_PUBLISH = new Publisher();
-		  $G_PUBLISH->AddContent('xmlform', 'xmlform', 'tracker/tracker_ViewAnyOutputDocument', '', G::array_merges($aOD, $aFields), '');
-		  G::RenderPage('publish', 'raw');
-		break;
-		case 'load':
-      $oConnection = Propel::getConnection('workflow');
-		  $oStatement  = $oConnection->prepareStatement("CREATE TABLE IF NOT EXISTS `STAGE` (
+			  Sm.make();' );
+            G::RenderPage( 'publish', 'raw' );
+            break;
+        case 'showUploadedDocumentTracker':
+            require_once 'classes/model/AppDocument.php';
+            require_once 'classes/model/AppDelegation.php';
+            require_once 'classes/model/InputDocument.php';
+            require_once 'classes/model/Users.php';
+            $oAppDocument = new AppDocument();
+            $oAppDocument->Fields = $oAppDocument->load( $_POST['APP_DOC_UID'] );
+
+            $oInputDocument = new InputDocument();
+            if ($oAppDocument->Fields['DOC_UID'] != - 1) {
+                $Fields = $oInputDocument->load( $oAppDocument->Fields['DOC_UID'] );
+            } else {
+                $Fields = array ('INP_DOC_FORM_NEEDED' => '','FILENAME' => $oAppDocument->Fields['APP_DOC_FILENAME']);
+            }
+            $oCriteria = new Criteria( 'workflow' );
+            $oCriteria->add( AppDelegationPeer::DEL_INDEX, $oAppDocument->Fields['DEL_INDEX'] );
+            $oDataset = AppDelegationPeer::doSelectRS( $oCriteria );
+            $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
+            $oDataset->next();
+            $aRow = $oDataset->getRow();
+            $oTask = new Task();
+            $aTask = $oTask->load( $aRow['TAS_UID'] );
+            $Fields['ORIGIN'] = $aTask['TAS_TITLE'];
+            $oUser = new Users();
+            $aUser = $oUser->load( $oAppDocument->Fields['USR_UID'] );
+            $Fields['CREATOR'] = $aUser['USR_FIRSTNAME'] . ' ' . $aUser['USR_LASTNAME'];
+            switch ($Fields['INP_DOC_FORM_NEEDED']) {
+                case 'REAL':
+                    $sXmlForm = 'tracker/tracker_ViewAnyInputDocument2';
+                    break;
+                case 'VIRTUAL':
+                    $sXmlForm = 'tracker/tracker_ViewAnyInputDocument1';
+                    break;
+                case 'VREAL':
+                    $sXmlForm = 'tracker/tracker_ViewAnyInputDocument3';
+                    break;
+                default:
+                    $sXmlForm = 'tracker/tracker_ViewAnyInputDocument';
+                    break;
+            }
+            $oAppDocument->Fields['VIEW'] = G::LoadTranslation( 'ID_OPEN' );
+            $oAppDocument->Fields['FILE'] = 'tracker_ShowDocument?a=' . $_POST['APP_DOC_UID'] . '&r=' . rand();
+
+            //If plugin and trigger are defined for listing
+            if ($oPluginRegistry->existsTrigger( PM_CASE_DOCUMENT_LIST_ARR )) {
+                $oPluginRegistry = & PMPluginRegistry::getSingleton();
+                $filesPluginArray = $oPluginRegistry->executeTriggers( PM_CASE_DOCUMENT_LIST_ARR, $_SESSION['APPLICATION'] );
+                //Now search for the file, if exists the change the download URL
+                foreach ($filesPluginArray as $file) {
+                    if ($file->filename == $_POST['APP_DOC_UID']) {
+                        $oAppDocument->Fields['FILE'] = $file->downloadScript;
+                    }
+                }
+            }
+
+            $G_PUBLISH = new Publisher();
+            $G_PUBLISH->AddContent( 'xmlform', 'xmlform', $sXmlForm, '', G::array_merges( $Fields, $oAppDocument->Fields ), '' );
+            G::RenderPage( 'publish', 'raw' );
+            break;
+        case 'showGeneratedDocumentTracker':
+            require_once 'classes/model/AppDocument.php';
+            require_once 'classes/model/AppDelegation.php';
+            $oAppDocument = new AppDocument();
+            $aFields = $oAppDocument->load( $_POST['APP_DOC_UID'] );
+            require_once 'classes/model/OutputDocument.php';
+            $oOutputDocument = new OutputDocument();
+            $aOD = $oOutputDocument->load( $aFields['DOC_UID'] );
+
+            $oCriteria = new Criteria( 'workflow' );
+            $oCriteria->add( AppDelegationPeer::APP_UID, $aFields['APP_UID'] );
+            $oCriteria->add( AppDelegationPeer::DEL_INDEX, $aFields['DEL_INDEX'] );
+            $oDataset = AppDelegationPeer::doSelectRS( $oCriteria );
+            $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
+            $oDataset->next();
+            $aRow = $oDataset->getRow();
+            $oTask = new Task();
+            $aTask = $oTask->load( $aRow['TAS_UID'] );
+            $aFields['ORIGIN'] = $aTask['TAS_TITLE'];
+            require_once 'classes/model/Users.php';
+            $oUser = new Users();
+            $aUser = $oUser->load( $aFields['USR_UID'] );
+            $aFields['CREATOR'] = $aUser['USR_FIRSTNAME'] . ' ' . $aUser['USR_LASTNAME'];
+            $aFields['VIEW'] = G::LoadTranslation( 'ID_OPEN' );
+            $aFields['FILE1'] = 'tracker_ShowOutputDocument?a=' . $aFields['APP_DOC_UID'] . '&ext=doc&random=' . rand();
+            $aFields['FILE2'] = 'tracker_ShowOutputDocument?a=' . $aFields['APP_DOC_UID'] . '&ext=pdf&random=' . rand();
+
+            //If plugin and trigger are defined for listing
+            if ($oPluginRegistry->existsTrigger( PM_CASE_DOCUMENT_LIST_ARR )) {
+                $oPluginRegistry = & PMPluginRegistry::getSingleton();
+                $filesPluginArray = $oPluginRegistry->executeTriggers( PM_CASE_DOCUMENT_LIST_ARR, $aFields['APP_UID'] );
+                //Now search for the file, if exists the change the download URL
+                foreach ($filesPluginArray as $file) {
+                    if ($file->filename == $_POST['APP_DOC_UID']) {
+                        $aFields['FILE2'] = $file->downloadScript; // The PDF is the only one uploaded to KT
+                    }
+                }
+            }
+
+            $G_PUBLISH = new Publisher();
+            $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'tracker/tracker_ViewAnyOutputDocument', '', G::array_merges( $aOD, $aFields ), '' );
+            G::RenderPage( 'publish', 'raw' );
+            break;
+        case 'load':
+            $oConnection = Propel::getConnection( 'workflow' );
+            $oStatement = $oConnection->prepareStatement( "CREATE TABLE IF NOT EXISTS `STAGE` (
                                                        `STG_UID` VARCHAR( 32 ) NOT NULL ,
                                                        `PRO_UID` VARCHAR( 32 ) NOT NULL ,
                                                        `STG_POSX` INT( 11 ) NOT NULL DEFAULT '0',
                                                        `STG_POSY` INT( 11 ) NOT NULL DEFAULT '0',
                                                        `STG_INDEX` INT( 11 ) NOT NULL DEFAULT '0',
                                                        PRIMARY KEY ( `STG_UID` )
-                                                     );");
-		  $oStatement->executeQuery();
-		  /***************************************************************************************************************/
-		  require_once 'classes/model/Stage.php';
-		  require_once 'classes/model/Process.php';
-		  require_once 'classes/model/Task.php';
-		  require_once 'classes/model/AppDelegation.php';
-		  $oJSON    = new Services_JSON();
-      $oData    = $oJSON->decode(stripslashes($_POST['data']));
-      $oProcess = new Process();
-      $aRow     = $oProcess->load($oData->uid);
-  		$oSM->title->label       = strip_tags($aRow['PRO_TITLE']);
-      //$oSM->title->position->x = $aRow['PRO_TITLE_X'];
-      //$oSM->title->position->y = $aRow['PRO_TITLE_Y'];
-      $oSM->title->position->x = 10;
-      $oSM->title->position->y = 10;
-      $oSM->stages             = array();
-      $oCriteria = new Criteria('workflow');
-      $oCriteria->addSelectColumn(StagePeer::STG_UID);
-      $oCriteria->addSelectColumn(ContentPeer::CON_VALUE);
-      $oCriteria->addSelectColumn(StagePeer::STG_POSX);
-      $oCriteria->addSelectColumn(StagePeer::STG_POSY);
-      $aConditions   = array();
-      $aConditions[] = array(0 => StagePeer::STG_UID,        1 => ContentPeer::CON_ID);
-      $aConditions[] = array(0 => ContentPeer::CON_CATEGORY, 1 => DBAdapter::getStringDelimiter() . 'STG_TITLE' . DBAdapter::getStringDelimiter());
-      $aConditions[] = array(0 => ContentPeer::CON_LANG,     1 => DBAdapter::getStringDelimiter() . SYS_LANG . DBAdapter::getStringDelimiter());
-      $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
-      $oCriteria->add(StagePeer::PRO_UID, $oData->uid);
-      $oCriteria->addAscendingOrderByColumn(StagePeer::STG_INDEX);
-      $oDataset = StagePeer::doSelectRS($oCriteria);
-      $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
-      $oDataset->next();
-      while ($aRow1 = $oDataset->getRow()) {
-        $oStage                 = null;
-      	$oStage->uid            = $aRow1['STG_UID'];
-      	$oStage->label          = strip_tags($aRow1['CON_VALUE']);
-      	$oStage->position->x    = (int)$aRow1['STG_POSX'];
-      	$oStage->position->y    = (int)$aRow1['STG_POSY'];
-      	$oStage->derivation     = null;
-      	$oStage->derivation->to = array();
-      	if (!$oData->mode) {
-      	  $oCriteria = new Criteria('workflow');
-      	  $oCriteria->add(TaskPeer::STG_UID, $aRow1['STG_UID']);
-      	  $oDataset1 = TaskPeer::doSelectRS($oCriteria);
-          $oDataset1->setFetchmode(ResultSet::FETCHMODE_ASSOC);
-          $oDataset1->next();
-          $aTasks = array();
-          while ($aRow2 = $oDataset1->getRow()) {
-            $aTasks[] = $aRow2['TAS_UID'];
-            $oDataset1->next();
-          }
-          $oCriteria = new Criteria('workflow');
-          $oCriteria->add(AppDelegationPeer::APP_UID, $_SESSION['APPLICATION']);
-      	  $oCriteria->add(AppDelegationPeer::TAS_UID, $aTasks, Criteria::IN);
-      	  $oCriteria->add($oCriteria->getNewCriterion(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL)->addOr($oCriteria->getNewCriterion(AppDelegationPeer::DEL_FINISH_DATE, '')));
-      	  if (AppDelegationPeer::doCount($oCriteria) > 0) {
-      	    $oStage->color = '#FF0000';
-      	  }
-      	}
-        $oSM->stages[]          = $oStage;
-        $oDataset->next();
-      }
-      foreach ($oSM->stages as $iKey => $oStage) {
-        if (isset($oSM->stages[$iKey + 1])) {
-          $oDerivation = new StdClass();
-          $oDerivation->stage = $oSM->stages[$iKey + 1]->uid;
-          $oSM->stages[$iKey]->derivation->to = array($oDerivation);
-          $oSM->stages[$iKey]->derivation->type = 0;
-        }
-      }
-      $oJSON = new Services_JSON();
-      echo $oJSON->encode($oSM);
-    break;
-    case 'addStage':
-      require_once 'classes/model/Stage.php';
-		  $oJSON    = new Services_JSON();
-      $oData    = $oJSON->decode(stripslashes($_POST['data']));
-      $oCriteria = new Criteria('workflow');
-      $oCriteria->addSelectColumn('STG_UID');
-      $oCriteria->add(StagePeer::PRO_UID, $oData->uid);
-      $oDataset = StagePeer::doSelectRS($oCriteria);
-      $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
-      $oDataset->next();
-      $aStages      = array();
-      $iStageNumber = 0;
-      while ($aRow = $oDataset->getRow()) {
-      	$aStages[] = $aRow['STG_UID'];
-      	$iStageNumber++;
-      	$oDataset->next();
-      }
-      if ($iStageNumber == 0) {
-      	$iStageNumber = 1;
-      }
-      $iIndex    = $iStageNumber + 1;
-      $bContinue = false;
-      while (!$bContinue) {
-      	$oCriteria = new Criteria('workflow');
-        $oCriteria->addSelectColumn('COUNT(*) AS TIMES');
-        $oCriteria->add(ContentPeer::CON_ID,       $aStages, Criteria::IN);
-        $oCriteria->add(ContentPeer::CON_CATEGORY, 'STG_TITLE');
-        $oCriteria->add(ContentPeer::CON_LANG,     SYS_LANG);
-        $oCriteria->add(ContentPeer::CON_VALUE,    G::LoadTranslation('ID_STAGE') . ' ' . $iStageNumber);
-        $oDataset = ContentPeer::doSelectRS($oCriteria);
-        $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
-        $oDataset->next();
-        $aRow = $oDataset->getRow();
-        if ((int)$aRow['TIMES'] > 0) {
-          $iStageNumber += 1;
-        }
-        else {
-          $bContinue = true;
-        }
-      }
-  	  $oStage           = new Stage();
-  	  $oNewStage->label = G::LoadTranslation('ID_STAGE') . ' ' . $iStageNumber;
-
-  	  if($oData->position->x < 0) $oData->position->x *= -1;
-  	  if($oData->position->y < 0) $oData->position->y *= -1;
-
-  	  $oNewStage->uid   = $oStage->create(array('PRO_UID' => $oData->uid, 'STG_TITLE' => $oNewStage->label, 'STG_POSX' => $oData->position->x, 'STG_POSY' => $oData->position->y, 'STG_INDEX' => $iIndex));
-  	  $oJSON            = new Services_JSON();
-  	  echo $oJSON->encode($oNewStage);
-    break;
-    case 'saveStagePosition':
-      require_once 'classes/model/Stage.php';
-		  $oJSON               = new Services_JSON();
-      $oData               = $oJSON->decode(stripslashes($_POST['data']));
-      $oStage              = new Stage();
-  	  $aFields             = $oStage->load($oData->uid);
-  	  $aFields['STG_UID']  = $oData->uid;
-  	  $aFields['STG_POSX'] = $oData->position->x;
-  	  $aFields['STG_POSY'] = $oData->position->y;
-  	  $oStage->update($aFields);
-    break;
-    case 'deleteStage':
-      require_once 'classes/model/Stage.php';
-		  $oJSON   = new Services_JSON();
-      $oData   = $oJSON->decode(stripslashes($_POST['data']));
-      $oStage  = new Stage();
-      $aFields = $oStage->load($oData->stg_uid);
-  	  $oStage->remove($oData->stg_uid);
-  	  $oStage->reorderPositions($aFields['PRO_UID'], $aFields['STG_INDEX']);
-  	  require_once 'classes/model/Task.php';
-  		$oCriteria1 = new Criteria('workflow');
-  		$oCriteria1->add(TaskPeer::STG_UID, $oData->stg_uid);
-  		$oCriteria2 = new Criteria('workflow');
-  		$oCriteria2->add(TaskPeer::STG_UID, '');
-  		BasePeer::doUpdate($oCriteria1, $oCriteria2, Propel::getConnection('workflow'));
-    break;
-    case 'editStage':
-      require_once 'classes/model/Stage.php';
-		  $oJSON   = new Services_JSON();
-      $oData   = $oJSON->decode(stripslashes($_POST['data']));
-      $oStage  = new Stage();
-      $aFields = $oStage->load($oData->stg_uid);
-      $aFields['THEINDEX'] = $oData->theindex;
-      $aFields['action']   = 'updateStage';
-    	global $G_PUBLISH;
-  	  $G_PUBLISH = new Publisher();
-      $G_PUBLISH->AddContent('xmlform', 'xmlform', 'tracker/tracker_StageEdit', '', $aFields, '../tracker/tracker_Ajax');
-      G::RenderPage('publish', 'raw');
-    break;
-    case 'updateStage':
-      require_once 'classes/model/Stage.php';
-      $oStage  = new Stage();
-      $aFields = $oStage->load($_POST['form']['STG_UID']);
-    	$aFields['STG_TITLE'] = $_POST['form']['STG_TITLE'];
-    	$oStage->update($aFields);
-    break;
-    case 'tasksAssigned':
-      require_once 'classes/model/Stage.php';
-      require_once 'classes/model/Task.php';
-		  $oJSON     = new Services_JSON();
-      $oData     = $oJSON->decode(stripslashes($_POST['data']));
-      $oCriteria = new Criteria('workflow');
-      $oCriteria->addSelectColumn(TaskPeer::TAS_UID);
-      $oCriteria->addAsColumn('TAS_TITLE', ContentPeer::CON_VALUE);
-      $aConditions   = array();
-      $aConditions[] = array(0 => TaskPeer::TAS_UID,         1 => ContentPeer::CON_ID);
-      $aConditions[] = array(0 => ContentPeer::CON_CATEGORY, 1 => DBAdapter::getStringDelimiter() . 'TAS_TITLE' . DBAdapter::getStringDelimiter());
-      $aConditions[] = array(0 => ContentPeer::CON_LANG,     1 => DBAdapter::getStringDelimiter() . SYS_LANG . DBAdapter::getStringDelimiter());
-      $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
-      $oCriteria->add(TaskPeer::STG_UID, $oData->stg_uid);
-      $oCriteria->addAscendingOrderByColumn('TAS_TITLE');
-    	global $G_PUBLISH;
-  	  $G_PUBLISH = new Publisher();
-      $G_PUBLISH->AddContent('propeltable', 'paged-table', 'tracker/tracker_StageTasks', $oCriteria, array('PRO_UID' => $oData->pro_uid, 'STG_UID' => $oData->stg_uid));
-      G::RenderPage('publish', 'raw');
-    break;
-    case 'availableTasksForTheStage':
-      require_once 'classes/model/Process.php';
-      require_once 'classes/model/Task.php';
-      $oCriteria = new Criteria('workflow');
-      $oCriteria->addSelectColumn(TaskPeer::TAS_UID);
-      $oCriteria->addAsColumn('TAS_TITLE', ContentPeer::CON_VALUE);
-      $aConditions   = array();
-      $aConditions[] = array(0 => TaskPeer::TAS_UID,         1 => ContentPeer::CON_ID);
-      $aConditions[] = array(0 => ContentPeer::CON_CATEGORY, 1 => DBAdapter::getStringDelimiter() . 'TAS_TITLE' . DBAdapter::getStringDelimiter());
-      $aConditions[] = array(0 => ContentPeer::CON_LANG,     1 => DBAdapter::getStringDelimiter() . SYS_LANG . DBAdapter::getStringDelimiter());
-      $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
-      $oCriteria->add(TaskPeer::PRO_UID, $_POST['PRO_UID']);
-      $oCriteria->add(TaskPeer::STG_UID, '');
-      $oCriteria->addAscendingOrderByColumn('TAS_TITLE');
-    	global $G_PUBLISH;
-  	  $G_PUBLISH = new Publisher();
-      $G_PUBLISH->AddContent('propeltable', 'paged-table', 'tracker/tracker_AvailableStageTasks', $oCriteria, array('STG_UID' => $_POST['STG_UID']));
-      G::RenderPage('publish', 'raw');
-    break;
-    case 'assignTaskToStage':
-      require_once 'classes/model/Task.php';
-  		$oCriteria1 = new Criteria('workflow');
-  		$oCriteria1->add(TaskPeer::TAS_UID, $_POST['TAS_UID']);
-  		$oCriteria2 = new Criteria('workflow');
-  		$oCriteria2->add(TaskPeer::STG_UID, $_POST['STG_UID']);
-  		BasePeer::doUpdate($oCriteria1, $oCriteria2, Propel::getConnection('workflow'));
-    break;
-    case 'removeTaskFromTheStage':
-      require_once 'classes/model/Task.php';
-  		$oCriteria1 = new Criteria('workflow');
-  		$oCriteria1->add(TaskPeer::TAS_UID, $_POST['TAS_UID']);
-  		$oCriteria2 = new Criteria('workflow');
-  		$oCriteria2->add(TaskPeer::STG_UID, '');
-  		BasePeer::doUpdate($oCriteria1, $oCriteria2, Propel::getConnection('workflow'));
-    break;
-
-    case "processMapLegend":
-      $arrayField = array();
-      $arrayField["sLabel1"] = G::LoadTranslation("ID_TASK_IN_PROGRESS");
-      $arrayField["sLabel2"] = G::LoadTranslation("ID_COMPLETED_TASK");
-      $arrayField["sLabel3"] = G::LoadTranslation("ID_PENDING_TASK");
-      $arrayField["sLabel4"] = G::LoadTranslation("ID_PARALLEL_TASK");
-      $arrayField["tracker"] = 1;
-
-      $G_PUBLISH = new Publisher();
-      $G_PUBLISH->AddContent("smarty", "cases/cases_Leyends", "", "", $arrayField);
-      G::RenderPage("publish", "raw");
-      break;
-  }
-}
-catch (Exception $oException) {
-	die($oException->getMessage());
-}
-?>
\ No newline at end of file
+                                                     );" );
+            $oStatement->executeQuery();
+            /**
+             * ************************************************************************************************************
+             */
+            require_once 'classes/model/Stage.php';
+            require_once 'classes/model/Process.php';
+            require_once 'classes/model/Task.php';
+            require_once 'classes/model/AppDelegation.php';
+            $oJSON = new Services_JSON();
+            $oData = $oJSON->decode( stripslashes( $_POST['data'] ) );
+            $oProcess = new Process();
+            $aRow = $oProcess->load( $oData->uid );
+            $oSM->title->label = strip_tags( $aRow['PRO_TITLE'] );
+            //$oSM->title->position->x = $aRow['PRO_TITLE_X'];
+            //$oSM->title->position->y = $aRow['PRO_TITLE_Y'];
+            $oSM->title->position->x = 10;
+            $oSM->title->position->y = 10;
+            $oSM->stages = array ();
+            $oCriteria = new Criteria( 'workflow' );
+            $oCriteria->addSelectColumn( StagePeer::STG_UID );
+            $oCriteria->addSelectColumn( ContentPeer::CON_VALUE );
+            $oCriteria->addSelectColumn( StagePeer::STG_POSX );
+            $oCriteria->addSelectColumn( StagePeer::STG_POSY );
+            $aConditions = array ();
+            $aConditions[] = array (0 => StagePeer::STG_UID,1 => ContentPeer::CON_ID);
+            $aConditions[] = array (0 => ContentPeer::CON_CATEGORY,1 => DBAdapter::getStringDelimiter() . 'STG_TITLE' . DBAdapter::getStringDelimiter());
+            $aConditions[] = array (0 => ContentPeer::CON_LANG,1 => DBAdapter::getStringDelimiter() . SYS_LANG . DBAdapter::getStringDelimiter());
+            $oCriteria->addJoinMC( $aConditions, Criteria::LEFT_JOIN );
+            $oCriteria->add( StagePeer::PRO_UID, $oData->uid );
+            $oCriteria->addAscendingOrderByColumn( StagePeer::STG_INDEX );
+            $oDataset = StagePeer::doSelectRS( $oCriteria );
+            $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
+            $oDataset->next();
+            while ($aRow1 = $oDataset->getRow()) {
+                $oStage = null;
+                $oStage->uid = $aRow1['STG_UID'];
+                $oStage->label = strip_tags( $aRow1['CON_VALUE'] );
+                $oStage->position->x = (int) $aRow1['STG_POSX'];
+                $oStage->position->y = (int) $aRow1['STG_POSY'];
+                $oStage->derivation = null;
+                $oStage->derivation->to = array ();
+                if (! $oData->mode) {
+                    $oCriteria = new Criteria( 'workflow' );
+                    $oCriteria->add( TaskPeer::STG_UID, $aRow1['STG_UID'] );
+                    $oDataset1 = TaskPeer::doSelectRS( $oCriteria );
+                    $oDataset1->setFetchmode( ResultSet::FETCHMODE_ASSOC );
+                    $oDataset1->next();
+                    $aTasks = array ();
+                    while ($aRow2 = $oDataset1->getRow()) {
+                        $aTasks[] = $aRow2['TAS_UID'];
+                        $oDataset1->next();
+                    }
+                    $oCriteria = new Criteria( 'workflow' );
+                    $oCriteria->add( AppDelegationPeer::APP_UID, $_SESSION['APPLICATION'] );
+                    $oCriteria->add( AppDelegationPeer::TAS_UID, $aTasks, Criteria::IN );
+                    $oCriteria->add( $oCriteria->getNewCriterion( AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL )->addOr( $oCriteria->getNewCriterion( AppDelegationPeer::DEL_FINISH_DATE, '' ) ) );
+                    if (AppDelegationPeer::doCount( $oCriteria ) > 0) {
+                        $oStage->color = '#FF0000';
+                    }
+                }
+                $oSM->stages[] = $oStage;
+                $oDataset->next();
+            }
+            foreach ($oSM->stages as $iKey => $oStage) {
+                if (isset( $oSM->stages[$iKey + 1] )) {
+                    $oDerivation = new StdClass();
+                    $oDerivation->stage = $oSM->stages[$iKey + 1]->uid;
+                    $oSM->stages[$iKey]->derivation->to = array ($oDerivation);
+                    $oSM->stages[$iKey]->derivation->type = 0;
+                }
+            }
+            $oJSON = new Services_JSON();
+            echo $oJSON->encode( $oSM );
+            break;
+        case 'addStage':
+            require_once 'classes/model/Stage.php';
+            $oJSON = new Services_JSON();
+            $oData = $oJSON->decode( stripslashes( $_POST['data'] ) );
+            $oCriteria = new Criteria( 'workflow' );
+            $oCriteria->addSelectColumn( 'STG_UID' );
+            $oCriteria->add( StagePeer::PRO_UID, $oData->uid );
+            $oDataset = StagePeer::doSelectRS( $oCriteria );
+            $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
+            $oDataset->next();
+            $aStages = array ();
+            $iStageNumber = 0;
+            while ($aRow = $oDataset->getRow()) {
+                $aStages[] = $aRow['STG_UID'];
+                $iStageNumber ++;
+                $oDataset->next();
+            }
+            if ($iStageNumber == 0) {
+                $iStageNumber = 1;
+            }
+            $iIndex = $iStageNumber + 1;
+            $bContinue = false;
+            while (! $bContinue) {
+                $oCriteria = new Criteria( 'workflow' );
+                $oCriteria->addSelectColumn( 'COUNT(*) AS TIMES' );
+                $oCriteria->add( ContentPeer::CON_ID, $aStages, Criteria::IN );
+                $oCriteria->add( ContentPeer::CON_CATEGORY, 'STG_TITLE' );
+                $oCriteria->add( ContentPeer::CON_LANG, SYS_LANG );
+                $oCriteria->add( ContentPeer::CON_VALUE, G::LoadTranslation( 'ID_STAGE' ) . ' ' . $iStageNumber );
+                $oDataset = ContentPeer::doSelectRS( $oCriteria );
+                $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
+                $oDataset->next();
+                $aRow = $oDataset->getRow();
+                if ((int) $aRow['TIMES'] > 0) {
+                    $iStageNumber += 1;
+                } else {
+                    $bContinue = true;
+                }
+            }
+            $oStage = new Stage();
+            $oNewStage->label = G::LoadTranslation( 'ID_STAGE' ) . ' ' . $iStageNumber;
+
+            if ($oData->position->x < 0)
+                $oData->position->x *= - 1;
+            if ($oData->position->y < 0)
+                $oData->position->y *= - 1;
+
+            $oNewStage->uid = $oStage->create( array ('PRO_UID' => $oData->uid,'STG_TITLE' => $oNewStage->label,'STG_POSX' => $oData->position->x,'STG_POSY' => $oData->position->y,'STG_INDEX' => $iIndex) );
+            $oJSON = new Services_JSON();
+            echo $oJSON->encode( $oNewStage );
+            break;
+        case 'saveStagePosition':
+            require_once 'classes/model/Stage.php';
+            $oJSON = new Services_JSON();
+            $oData = $oJSON->decode( stripslashes( $_POST['data'] ) );
+            $oStage = new Stage();
+            $aFields = $oStage->load( $oData->uid );
+            $aFields['STG_UID'] = $oData->uid;
+            $aFields['STG_POSX'] = $oData->position->x;
+            $aFields['STG_POSY'] = $oData->position->y;
+            $oStage->update( $aFields );
+            break;
+        case 'deleteStage':
+            require_once 'classes/model/Stage.php';
+            $oJSON = new Services_JSON();
+            $oData = $oJSON->decode( stripslashes( $_POST['data'] ) );
+            $oStage = new Stage();
+            $aFields = $oStage->load( $oData->stg_uid );
+            $oStage->remove( $oData->stg_uid );
+            $oStage->reorderPositions( $aFields['PRO_UID'], $aFields['STG_INDEX'] );
+            require_once 'classes/model/Task.php';
+            $oCriteria1 = new Criteria( 'workflow' );
+            $oCriteria1->add( TaskPeer::STG_UID, $oData->stg_uid );
+            $oCriteria2 = new Criteria( 'workflow' );
+            $oCriteria2->add( TaskPeer::STG_UID, '' );
+            BasePeer::doUpdate( $oCriteria1, $oCriteria2, Propel::getConnection( 'workflow' ) );
+            break;
+        case 'editStage':
+            require_once 'classes/model/Stage.php';
+            $oJSON = new Services_JSON();
+            $oData = $oJSON->decode( stripslashes( $_POST['data'] ) );
+            $oStage = new Stage();
+            $aFields = $oStage->load( $oData->stg_uid );
+            $aFields['THEINDEX'] = $oData->theindex;
+            $aFields['action'] = 'updateStage';
+            global $G_PUBLISH;
+            $G_PUBLISH = new Publisher();
+            $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'tracker/tracker_StageEdit', '', $aFields, '../tracker/tracker_Ajax' );
+            G::RenderPage( 'publish', 'raw' );
+            break;
+        case 'updateStage':
+            require_once 'classes/model/Stage.php';
+            $oStage = new Stage();
+            $aFields = $oStage->load( $_POST['form']['STG_UID'] );
+            $aFields['STG_TITLE'] = $_POST['form']['STG_TITLE'];
+            $oStage->update( $aFields );
+            break;
+        case 'tasksAssigned':
+            require_once 'classes/model/Stage.php';
+            require_once 'classes/model/Task.php';
+            $oJSON = new Services_JSON();
+            $oData = $oJSON->decode( stripslashes( $_POST['data'] ) );
+            $oCriteria = new Criteria( 'workflow' );
+            $oCriteria->addSelectColumn( TaskPeer::TAS_UID );
+            $oCriteria->addAsColumn( 'TAS_TITLE', ContentPeer::CON_VALUE );
+            $aConditions = array ();
+            $aConditions[] = array (0 => TaskPeer::TAS_UID,1 => ContentPeer::CON_ID);
+            $aConditions[] = array (0 => ContentPeer::CON_CATEGORY,1 => DBAdapter::getStringDelimiter() . 'TAS_TITLE' . DBAdapter::getStringDelimiter());
+            $aConditions[] = array (0 => ContentPeer::CON_LANG,1 => DBAdapter::getStringDelimiter() . SYS_LANG . DBAdapter::getStringDelimiter());
+            $oCriteria->addJoinMC( $aConditions, Criteria::LEFT_JOIN );
+            $oCriteria->add( TaskPeer::STG_UID, $oData->stg_uid );
+            $oCriteria->addAscendingOrderByColumn( 'TAS_TITLE' );
+            global $G_PUBLISH;
+            $G_PUBLISH = new Publisher();
+            $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'tracker/tracker_StageTasks', $oCriteria, array ('PRO_UID' => $oData->pro_uid,'STG_UID' => $oData->stg_uid) );
+            G::RenderPage( 'publish', 'raw' );
+            break;
+        case 'availableTasksForTheStage':
+            require_once 'classes/model/Process.php';
+            require_once 'classes/model/Task.php';
+            $oCriteria = new Criteria( 'workflow' );
+            $oCriteria->addSelectColumn( TaskPeer::TAS_UID );
+            $oCriteria->addAsColumn( 'TAS_TITLE', ContentPeer::CON_VALUE );
+            $aConditions = array ();
+            $aConditions[] = array (0 => TaskPeer::TAS_UID,1 => ContentPeer::CON_ID );
+            $aConditions[] = array (0 => ContentPeer::CON_CATEGORY,1 => DBAdapter::getStringDelimiter() . 'TAS_TITLE' . DBAdapter::getStringDelimiter());
+            $aConditions[] = array (0 => ContentPeer::CON_LANG,1 => DBAdapter::getStringDelimiter() . SYS_LANG . DBAdapter::getStringDelimiter());
+            $oCriteria->addJoinMC( $aConditions, Criteria::LEFT_JOIN );
+            $oCriteria->add( TaskPeer::PRO_UID, $_POST['PRO_UID'] );
+            $oCriteria->add( TaskPeer::STG_UID, '' );
+            $oCriteria->addAscendingOrderByColumn( 'TAS_TITLE' );
+            global $G_PUBLISH;
+            $G_PUBLISH = new Publisher();
+            $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'tracker/tracker_AvailableStageTasks', $oCriteria, array ('STG_UID' => $_POST['STG_UID']) );
+            G::RenderPage( 'publish', 'raw' );
+            break;
+        case 'assignTaskToStage':
+            require_once 'classes/model/Task.php';
+            $oCriteria1 = new Criteria( 'workflow' );
+            $oCriteria1->add( TaskPeer::TAS_UID, $_POST['TAS_UID'] );
+            $oCriteria2 = new Criteria( 'workflow' );
+            $oCriteria2->add( TaskPeer::STG_UID, $_POST['STG_UID'] );
+            BasePeer::doUpdate( $oCriteria1, $oCriteria2, Propel::getConnection( 'workflow' ) );
+            break;
+        case 'removeTaskFromTheStage':
+            require_once 'classes/model/Task.php';
+            $oCriteria1 = new Criteria( 'workflow' );
+            $oCriteria1->add( TaskPeer::TAS_UID, $_POST['TAS_UID'] );
+            $oCriteria2 = new Criteria( 'workflow' );
+            $oCriteria2->add( TaskPeer::STG_UID, '' );
+            BasePeer::doUpdate( $oCriteria1, $oCriteria2, Propel::getConnection( 'workflow' ) );
+            break;
+
+        case "processMapLegend":
+            $arrayField = array ();
+            $arrayField["sLabel1"] = G::LoadTranslation( "ID_TASK_IN_PROGRESS" );
+            $arrayField["sLabel2"] = G::LoadTranslation( "ID_COMPLETED_TASK" );
+            $arrayField["sLabel3"] = G::LoadTranslation( "ID_PENDING_TASK" );
+            $arrayField["sLabel4"] = G::LoadTranslation( "ID_PARALLEL_TASK" );
+            $arrayField["tracker"] = 1;
+            $G_PUBLISH = new Publisher();
+            $G_PUBLISH->AddContent( "smarty", "cases/cases_Leyends", "", "", $arrayField );
+            G::RenderPage( "publish", "raw" );
+            break;
+    }
+} catch (Exception $oException) {
+    die( $oException->getMessage() );
+}
+
diff --git a/workflow/engine/methods/tracker/tracker_ConditionsEdit.php b/workflow/engine/methods/tracker/tracker_ConditionsEdit.php
index 292f2e827..50c396864 100755
--- a/workflow/engine/methods/tracker/tracker_ConditionsEdit.php
+++ b/workflow/engine/methods/tracker/tracker_ConditionsEdit.php
@@ -1,54 +1,51 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
- if (!isset($_SESSION['PROCESS']))
-  {
-	  G::header('location: login');
-  }
-try {
-	global $RBAC;
-  switch ($RBAC->userCanAccess('PM_FACTORY')) {
-  	case -2:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	case -1:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  }
-  require_once 'classes/model/CaseTrackerObject.php';
-  $oCaseTrackerObject = new CaseTrackerObject();
-  $aFields = $oCaseTrackerObject->load($_GET['CTO_UID']);
-  G::LoadClass('xmlfield_InputPM');
-  $G_PUBLISH = new Publisher();
-  $G_PUBLISH->AddContent('xmlform', 'xmlform', 'tracker/tracker_ConditionsEdit', '', $aFields, '../tracker/tracker_ConditionsSave');
-  G::RenderPage('publish-raw' , 'raw');
-}
-catch (Exception $oException) {
-	die($oException->getMessage());
-}
-?>
\ No newline at end of file
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+if (! isset( $_SESSION['PROCESS'] )) {
+    G::header( 'location: login' );
+}
+try {
+    global $RBAC;
+    switch ($RBAC->userCanAccess( 'PM_FACTORY' )) {
+        case - 2:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        case - 1:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+    }
+    require_once 'classes/model/CaseTrackerObject.php';
+    $oCaseTrackerObject = new CaseTrackerObject();
+    $aFields = $oCaseTrackerObject->load( $_GET['CTO_UID'] );
+    G::LoadClass( 'xmlfield_InputPM' );
+    $G_PUBLISH = new Publisher();
+    $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'tracker/tracker_ConditionsEdit', '', $aFields, '../tracker/tracker_ConditionsSave' );
+    G::RenderPage( 'publish-raw', 'raw' );
+} catch (Exception $oException) {
+    die( $oException->getMessage() );
+}
+
diff --git a/workflow/engine/methods/tracker/tracker_ConditionsSave.php b/workflow/engine/methods/tracker/tracker_ConditionsSave.php
index f9a0fb21c..4ef89a7bd 100755
--- a/workflow/engine/methods/tracker/tracker_ConditionsSave.php
+++ b/workflow/engine/methods/tracker/tracker_ConditionsSave.php
@@ -1,57 +1,54 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
- if (!isset($_SESSION['PROCESS']))
-  {
-	  G::header('location: login');
-  }
-try {
-	global $RBAC;
-  switch ($RBAC->userCanAccess('PM_FACTORY')) {
-  	case -2:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  	case -1:
-  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
-  	  G::header('location: ../login/login');
-  	  die;
-  	break;
-  }
-  require_once 'classes/model/CaseTrackerObject.php';
-  $oCaseTrackerObject = new CaseTrackerObject();
-  if(isset ($_POST['form']))
-      $value=$_POST['form'];
-  else
-      $value=$_POST;
-  
-  $aFields = $oCaseTrackerObject->load($value['CTO_UID']);
-  $aFields['CTO_CONDITION'] = $value['CTO_CONDITION'];
-  $oCaseTrackerObject->update($aFields);
-}
-catch (Exception $oException) {
-	die($oException->getMessage());
-}
-?>
\ No newline at end of file
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+if (! isset( $_SESSION['PROCESS'] )) {
+    G::header( 'location: login' );
+}
+try {
+    global $RBAC;
+    switch ($RBAC->userCanAccess( 'PM_FACTORY' )) {
+        case - 2:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+        case - 1:
+            G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
+            G::header( 'location: ../login/login' );
+            die();
+            break;
+    }
+    require_once 'classes/model/CaseTrackerObject.php';
+    $oCaseTrackerObject = new CaseTrackerObject();
+    if (isset( $_POST['form'] ))
+        $value = $_POST['form'];
+    else
+        $value = $_POST;
+
+    $aFields = $oCaseTrackerObject->load( $value['CTO_UID'] );
+    $aFields['CTO_CONDITION'] = $value['CTO_CONDITION'];
+    $oCaseTrackerObject->update( $aFields );
+} catch (Exception $oException) {
+    die( $oException->getMessage() );
+}
+
diff --git a/workflow/engine/methods/tracker/tracker_DynaDocs.php b/workflow/engine/methods/tracker/tracker_DynaDocs.php
index b6fb0f6e2..f41f847b0 100755
--- a/workflow/engine/methods/tracker/tracker_DynaDocs.php
+++ b/workflow/engine/methods/tracker/tracker_DynaDocs.php
@@ -1,73 +1,69 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
 /*
  * dynaforms & documents for Case Tracker
  *
  * @author Everth S. Berrios Morales 
  *
- */
-if (!isset($_SESSION['PROCESS'])) {
-    G::header('location: login');
-}
-$G_MAIN_MENU        = 'caseTracker';
-$G_ID_MENU_SELECTED = 'DYNADOC';
-
-G::LoadClass('processMap');
-$oProcessMap = new processMap();
-
-G::LoadClass('case');
-$oCase = new Cases();
-
-$idProcess = $_SESSION['PROCESS'];
-$oProcess = new Process();
-$aProcessFieds = $oProcess->load($idProcess);
-$noShowTitle = 0;
-if (isset($aProcessFieds['PRO_SHOW_MESSAGE'])) {
-    $noShowTitle = $aProcessFieds['PRO_SHOW_MESSAGE'];
-}
-
-$aFields = $oCase->loadCase($_SESSION['APPLICATION']);
-if (isset($aFields['TITLE'])) {
-    $aFields['APP_TITLE'] = $aFields['TITLE'];
-}
-if ($aFields['APP_PROC_CODE'] != '') {
-    $aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
-}
-$aFields['CASE'] = G::LoadTranslation('ID_CASE');
-$aFields['TITLE'] = G::LoadTranslation('ID_TITLE');
-
-$G_PUBLISH = new Publisher();
-if ($noShowTitle == 0) {
-    $G_PUBLISH->AddContent('smarty', 'cases/cases_title', '', '', $aFields);
-}
-$G_PUBLISH->AddContent( 'propeltable',
-                        'paged-table',
-                        'tracker/tracker_DynaDocs',
-                        $oProcessMap->getCaseTrackerObjectsCriteria($_SESSION['PROCESS']),
-                        array('VIEW' => G::LoadTranslation('ID_VIEW')));
-
-G::RenderPage('publish');
-
+ */
+if (! isset( $_SESSION['PROCESS'] )) {
+    G::header( 'location: login' );
+}
+$G_MAIN_MENU = 'caseTracker';
+$G_ID_MENU_SELECTED = 'DYNADOC';
+
+G::LoadClass( 'processMap' );
+$oProcessMap = new processMap();
+
+G::LoadClass( 'case' );
+$oCase = new Cases();
+
+$idProcess = $_SESSION['PROCESS'];
+$oProcess = new Process();
+$aProcessFieds = $oProcess->load( $idProcess );
+$noShowTitle = 0;
+if (isset( $aProcessFieds['PRO_SHOW_MESSAGE'] )) {
+    $noShowTitle = $aProcessFieds['PRO_SHOW_MESSAGE'];
+}
+
+$aFields = $oCase->loadCase( $_SESSION['APPLICATION'] );
+if (isset( $aFields['TITLE'] )) {
+    $aFields['APP_TITLE'] = $aFields['TITLE'];
+}
+if ($aFields['APP_PROC_CODE'] != '') {
+    $aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
+}
+$aFields['CASE'] = G::LoadTranslation( 'ID_CASE' );
+$aFields['TITLE'] = G::LoadTranslation( 'ID_TITLE' );
+
+$G_PUBLISH = new Publisher();
+if ($noShowTitle == 0) {
+    $G_PUBLISH->AddContent( 'smarty', 'cases/cases_title', '', '', $aFields );
+}
+$G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'tracker/tracker_DynaDocs', $oProcessMap->getCaseTrackerObjectsCriteria( $_SESSION['PROCESS'] ), array ('VIEW' => G::LoadTranslation( 'ID_VIEW' )
+) );
+
+G::RenderPage( 'publish' );
+
diff --git a/workflow/engine/methods/tracker/tracker_History.php b/workflow/engine/methods/tracker/tracker_History.php
index 0783874b6..22154d040 100755
--- a/workflow/engine/methods/tracker/tracker_History.php
+++ b/workflow/engine/methods/tracker/tracker_History.php
@@ -1,70 +1,65 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
 /*
  * Hystory case for Case Tracker
  *
  * @author Everth S. Berrios Morales 
  *
- */
-if (!isset($_SESSION['PROCESS'])) {
-    G::header('location: login');
-}
-
-$G_MAIN_MENU = 'caseTracker';
-$G_ID_MENU_SELECTED = 'HISTORY';
-
-G::LoadClass('case');
-$oCase = new Cases();
-$aFields = $oCase->loadCase($_SESSION['APPLICATION']);
-
-$idProcess = $_SESSION['PROCESS'];
-$oProcess = new Process();
-$aProcessFieds = $oProcess->load($idProcess);
-$noShowTitle = 0;
-if (isset($aProcessFieds['PRO_SHOW_MESSAGE'])) {
-    $noShowTitle = $aProcessFieds['PRO_SHOW_MESSAGE'];
-}
-
-if (isset($aFields['TITLE'])) {
-    $aFields['APP_TITLE'] = $aFields['TITLE'];
-}
-if ($aFields['APP_PROC_CODE'] != '') {
-    $aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
-}
-$aFields['CASE'] = G::LoadTranslation('ID_CASE');
-$aFields['TITLE'] = G::LoadTranslation('ID_TITLE');
-
-$G_PUBLISH = new Publisher();
-if ($noShowTitle == 0) {
-    $G_PUBLISH->AddContent('smarty', 'cases/cases_title', '', '', $aFields);
-}
-$G_PUBLISH->AddContent( 'propeltable',
-                        'paged-table',
-                        'tracker/tracker_TransferHistory',
-                        Cases::getTransferHistoryCriteria($_SESSION['APPLICATION']),
-                        array());
-G::RenderPage('publish');
- 
\ No newline at end of file
+ */
+if (! isset( $_SESSION['PROCESS'] )) {
+    G::header( 'location: login' );
+}
+
+$G_MAIN_MENU = 'caseTracker';
+$G_ID_MENU_SELECTED = 'HISTORY';
+
+G::LoadClass( 'case' );
+$oCase = new Cases();
+$aFields = $oCase->loadCase( $_SESSION['APPLICATION'] );
+
+$idProcess = $_SESSION['PROCESS'];
+$oProcess = new Process();
+$aProcessFieds = $oProcess->load( $idProcess );
+$noShowTitle = 0;
+if (isset( $aProcessFieds['PRO_SHOW_MESSAGE'] )) {
+    $noShowTitle = $aProcessFieds['PRO_SHOW_MESSAGE'];
+}
+
+if (isset( $aFields['TITLE'] )) {
+    $aFields['APP_TITLE'] = $aFields['TITLE'];
+}
+if ($aFields['APP_PROC_CODE'] != '') {
+    $aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
+}
+$aFields['CASE'] = G::LoadTranslation( 'ID_CASE' );
+$aFields['TITLE'] = G::LoadTranslation( 'ID_TITLE' );
+
+$G_PUBLISH = new Publisher();
+if ($noShowTitle == 0) {
+    $G_PUBLISH->AddContent( 'smarty', 'cases/cases_title', '', '', $aFields );
+}
+$G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'tracker/tracker_TransferHistory', Cases::getTransferHistoryCriteria( $_SESSION['APPLICATION'] ), array () );
+G::RenderPage( 'publish' );
+
diff --git a/workflow/engine/methods/tracker/tracker_Messages.php b/workflow/engine/methods/tracker/tracker_Messages.php
index 0d31e7d01..547514d11 100755
--- a/workflow/engine/methods/tracker/tracker_Messages.php
+++ b/workflow/engine/methods/tracker/tracker_Messages.php
@@ -1,70 +1,67 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
 /*
  * History messages for Case Tracker
  *
  * @author Everth S. Berrios Morales 
  *
- */
-if (!isset($_SESSION['PROCESS'])) {
-    G::header('location: login');
-}
-$G_MAIN_MENU = 'caseTracker';
-$G_ID_MENU_SELECTED = 'MESSAGES';
-
-$oHeadPublisher->addScriptFile('/jscore/tracker/tracker.js');
-
-G::LoadClass('case');
-$oCase = new Cases();
-$aFields = $oCase->loadCase($_SESSION['APPLICATION']);
-
-$idProcess = $_SESSION['PROCESS'];
-$oProcess = new Process();
-$aProcessFieds = $oProcess->load($idProcess);
-$noShowTitle = 0;
-if (isset($aProcessFieds['PRO_SHOW_MESSAGE'])) {
-    $noShowTitle = $aProcessFieds['PRO_SHOW_MESSAGE'];
-}
-
-if (isset($aFields['TITLE'])) {
-    $aFields['APP_TITLE'] = $aFields['TITLE'];
-}
-if ($aFields['APP_PROC_CODE'] != '') {
-    $aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
-}
-$aFields['CASE'] = G::LoadTranslation('ID_CASE');
-$aFields['TITLE'] = G::LoadTranslation('ID_TITLE');
-
-$G_PUBLISH = new Publisher();
-if ($noShowTitle == 0) {
-    $G_PUBLISH->AddContent('smarty', 'cases/cases_title', '', '', $aFields);
-}
-$G_PUBLISH->AddContent( 'propeltable',
-                        'paged-table',
-                        'tracker/tracker_Messages',
-                        Cases::getHistoryMessagesTracker($_SESSION['APPLICATION']),
-                        array('VIEW' => G::LoadTranslation('ID_VIEW')));
-G::RenderPage('publish');
+ */
+if (! isset( $_SESSION['PROCESS'] )) {
+    G::header( 'location: login' );
+}
+$G_MAIN_MENU = 'caseTracker';
+$G_ID_MENU_SELECTED = 'MESSAGES';
+
+$oHeadPublisher->addScriptFile( '/jscore/tracker/tracker.js' );
+
+G::LoadClass( 'case' );
+$oCase = new Cases();
+$aFields = $oCase->loadCase( $_SESSION['APPLICATION'] );
+
+$idProcess = $_SESSION['PROCESS'];
+$oProcess = new Process();
+$aProcessFieds = $oProcess->load( $idProcess );
+$noShowTitle = 0;
+if (isset( $aProcessFieds['PRO_SHOW_MESSAGE'] )) {
+    $noShowTitle = $aProcessFieds['PRO_SHOW_MESSAGE'];
+}
+
+if (isset( $aFields['TITLE'] )) {
+    $aFields['APP_TITLE'] = $aFields['TITLE'];
+}
+if ($aFields['APP_PROC_CODE'] != '') {
+    $aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
+}
+$aFields['CASE'] = G::LoadTranslation( 'ID_CASE' );
+$aFields['TITLE'] = G::LoadTranslation( 'ID_TITLE' );
+
+$G_PUBLISH = new Publisher();
+if ($noShowTitle == 0) {
+    $G_PUBLISH->AddContent( 'smarty', 'cases/cases_title', '', '', $aFields );
+}
+$G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'tracker/tracker_Messages', Cases::getHistoryMessagesTracker( $_SESSION['APPLICATION'] ), array ('VIEW' => G::LoadTranslation( 'ID_VIEW' )
+) );
+G::RenderPage( 'publish' );
+
diff --git a/workflow/engine/methods/tracker/tracker_MessagesView.php b/workflow/engine/methods/tracker/tracker_MessagesView.php
index ed2cac794..8f4307711 100755
--- a/workflow/engine/methods/tracker/tracker_MessagesView.php
+++ b/workflow/engine/methods/tracker/tracker_MessagesView.php
@@ -1,45 +1,44 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
- 
-   /*
-   * Messages for Case Tracker
-   *
-   * @author Everth S. Berrios Morales 
-   * 
-   */
-	if (!isset($_SESSION['PROCESS']))
-  {
-	  G::header('location: login');
-  }
-	$G_MAIN_MENU            = 'caseTracker';
-  $G_ID_MENU_SELECTED     = 'MESSAGES';  
-  
-  G::LoadClass("case");
-	$Fields = Cases::getHistoryMessagesTrackerView($_GET['APP_UID'], $_GET['APP_MSG_UID']);        
-  
-  $G_PUBLISH = new Publisher();
-  
-	$G_PUBLISH->AddContent('xmlform', 'xmlform', 'tracker/tracker_MessagesView', '',$Fields);
-	G::RenderPage('publish');
\ No newline at end of file
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+
+/*
+* Messages for Case Tracker
+*
+* @author Everth S. Berrios Morales 
+*
+*/
+if (! isset( $_SESSION['PROCESS'] )) {
+    G::header( 'location: login' );
+}
+$G_MAIN_MENU = 'caseTracker';
+$G_ID_MENU_SELECTED = 'MESSAGES';
+
+G::LoadClass( "case" );
+$Fields = Cases::getHistoryMessagesTrackerView( $_GET['APP_UID'], $_GET['APP_MSG_UID'] );
+
+$G_PUBLISH = new Publisher();
+
+$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'tracker/tracker_MessagesView', '', $Fields );
+G::RenderPage( 'publish' );
+
diff --git a/workflow/engine/methods/tracker/tracker_No.php b/workflow/engine/methods/tracker/tracker_No.php
index 5f78e25ac..4eddbb177 100755
--- a/workflow/engine/methods/tracker/tracker_No.php
+++ b/workflow/engine/methods/tracker/tracker_No.php
@@ -1,45 +1,44 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
- 
-   /*
-   * message for Case Tracker
-   *
-   * @author Everth S. Berrios Morales 
-   * 
-   */
-	if (!isset($_SESSION['PROCESS']))
-  {
-	  G::header('location: login');
-  }
-	$G_MAIN_MENU            = 'caseTracker';
-  //$G_ID_MENU_SELECTED     = 'DYNADOC';  
-
-  G::LoadClass('processMap');  
-  
-  $G_PUBLISH = new Publisher();
-  $G_PUBLISH->AddContent('xmlform', 'xmlform', 'tracker/tracker_No', '', '');
-	
-	G::RenderPage('publish');
-	
\ No newline at end of file
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+
+/*
+* message for Case Tracker
+*
+* @author Everth S. Berrios Morales 
+*
+*/
+if (! isset( $_SESSION['PROCESS'] )) {
+    G::header( 'location: login' );
+}
+$G_MAIN_MENU = 'caseTracker';
+//$G_ID_MENU_SELECTED     = 'DYNADOC';
+
+
+G::LoadClass( 'processMap' );
+
+$G_PUBLISH = new Publisher();
+$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'tracker/tracker_No', '', '' );
+
+G::RenderPage( 'publish' );
+
diff --git a/workflow/engine/methods/tracker/tracker_PrintView.php b/workflow/engine/methods/tracker/tracker_PrintView.php
index 57a392fd4..ef9123c82 100755
--- a/workflow/engine/methods/tracker/tracker_PrintView.php
+++ b/workflow/engine/methods/tracker/tracker_PrintView.php
@@ -1,76 +1,72 @@
-.
- * 
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd., 
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- * 
- */
-
-try {
-
-  if (!isset($_SESSION['PROCESS']))
-  {
-    G::header('location: login');
-  }
-
-  global $_DBArray;
-  if (!isset($_DBArray)) {
-    $_DBArray = array();
-  }
-
-  $G_MAIN_MENU            = 'caseTracker';
-  $G_ID_MENU_SELECTED     = 'DYNADOC';
-  global $G_PUBLISH;
-  G::LoadClass('case');
-  $oCase = new Cases();
-  $Fields = $oCase->loadCase( $_SESSION['APPLICATION'] );
-
-  if(isset($_SESSION['APPLICATION'])){
-    $array['CASE']            = G::LoadTranslation('ID_CASE');
-    $array['USER']            = G::LoadTranslation('ID_USER');
-    $array['WORKSPACE']       = G::LoadTranslation('ID_WORKSPACE');
-    $array['APP_NUMBER']      = $Fields['APP_NUMBER'];
-    $array['APP_TITLE']       = $Fields['TITLE'];
-    $array['USR_USERNAME']    = $Fields['APP_DATA']['USR_USERNAME'];
-    $array['USER_ENV']        = $Fields['APP_DATA']['SYS_SYS'];
-    $array['DATEPRINT']       = date('Y-m-d H:m:s');
-  }
-    $array['APP_PROCESS']     = $sProcess;
-
-  if(isset($Fields['TITLE']) && strlen($Fields['TITLE'])>0)
-    $array['TITLE'] = G::LoadTranslation('ID_TITLE');
-  else 
-    $array['TITLE']         = '';
-//      $array['PROCESS']         = G::LoadTranslation('ID_PROCESS');
-  $array['DATELABEL']        = G::LoadTranslation('DATE_LABEL');
-
-
-  $G_PUBLISH = new Publisher;
-  $G_PUBLISH->AddContent('smarty', 'cases/cases_PrintViewTitle', '', '', $array);
-  $G_PUBLISH->AddContent('dynaform', 'xmlform', $_SESSION['PROCESS']. '/' . $_GET['CTO_UID_OBJ'], '', $Fields['APP_DATA'], '', '', 'view');
-  G::RenderPage('publish', 'blank');
-
-
-} catch (Exception $oException) {
-  die($oException->getMessage());
-}
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+
+try {
+
+    if (! isset( $_SESSION['PROCESS'] )) {
+        G::header( 'location: login' );
+    }
+
+    global $_DBArray;
+    if (! isset( $_DBArray )) {
+        $_DBArray = array ();
+    }
+
+    $G_MAIN_MENU = 'caseTracker';
+    $G_ID_MENU_SELECTED = 'DYNADOC';
+    global $G_PUBLISH;
+    G::LoadClass( 'case' );
+    $oCase = new Cases();
+    $Fields = $oCase->loadCase( $_SESSION['APPLICATION'] );
+
+    if (isset( $_SESSION['APPLICATION'] )) {
+        $array['CASE'] = G::LoadTranslation( 'ID_CASE' );
+        $array['USER'] = G::LoadTranslation( 'ID_USER' );
+        $array['WORKSPACE'] = G::LoadTranslation( 'ID_WORKSPACE' );
+        $array['APP_NUMBER'] = $Fields['APP_NUMBER'];
+        $array['APP_TITLE'] = $Fields['TITLE'];
+        $array['USR_USERNAME'] = $Fields['APP_DATA']['USR_USERNAME'];
+        $array['USER_ENV'] = $Fields['APP_DATA']['SYS_SYS'];
+        $array['DATEPRINT'] = date( 'Y-m-d H:m:s' );
+    }
+    $array['APP_PROCESS'] = $sProcess;
+
+    if (isset( $Fields['TITLE'] ) && strlen( $Fields['TITLE'] ) > 0)
+        $array['TITLE'] = G::LoadTranslation( 'ID_TITLE' );
+    else
+        $array['TITLE'] = '';
+        //      $array['PROCESS']         = G::LoadTranslation('ID_PROCESS');
+    $array['DATELABEL'] = G::LoadTranslation( 'DATE_LABEL' );
+
+    $G_PUBLISH = new Publisher();
+    $G_PUBLISH->AddContent( 'smarty', 'cases/cases_PrintViewTitle', '', '', $array );
+    $G_PUBLISH->AddContent( 'dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_GET['CTO_UID_OBJ'], '', $Fields['APP_DATA'], '', '', 'view' );
+    G::RenderPage( 'publish', 'blank' );
+
+} catch (Exception $oException) {
+    die( $oException->getMessage() );
+}
 ?>
 
 
+
+
diff --git a/workflow/engine/methods/tracker/tracker_Save.php b/workflow/engine/methods/tracker/tracker_Save.php
index d67ce12b1..fcc27d712 100755
--- a/workflow/engine/methods/tracker/tracker_Save.php
+++ b/workflow/engine/methods/tracker/tracker_Save.php
@@ -1,16 +1,17 @@
-update($sValue);
+update( $sValue );
+
diff --git a/workflow/engine/methods/tracker/tracker_Show.php b/workflow/engine/methods/tracker/tracker_Show.php
index 53ba49fde..652b24949 100755
--- a/workflow/engine/methods/tracker/tracker_Show.php
+++ b/workflow/engine/methods/tracker/tracker_Show.php
@@ -1,92 +1,88 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
-
-   /*
-   * dynaforms & documents for Case Tracker
-   *
-   * @author Everth S. Berrios Morales 
-   *
-   */
-
-	if (!isset($_SESSION['PROCESS']))
-  {
-	  G::header('location: login');
-  }
-
-  global $_DBArray;
-  if (!isset($_DBArray)) {
-    $_DBArray = array();
-  }
-
-  $G_MAIN_MENU            = 'caseTracker';
-  $G_ID_MENU_SELECTED     = 'DYNADOC';
-  global $G_PUBLISH;
-  
-  switch ($_GET['CTO_TYPE_OBJ'])
-  {
-    case 'DYNAFORM':
-      G::LoadClass('case');
-      $oCase  = new Cases();
-      $Fields = $oCase->loadCase( $_SESSION['APPLICATION'] );
-      $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PREVIOUS_STEP_LABEL']  = '';
-      $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP_LABEL']      = '';
-      $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP']            = '#';
-      $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_ACTION']          = 'alert("Sample"); return false;';
-      $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PRINT_PREVIEW']        = '#';
-      $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PRINT_PREVIEW_ACTION'] = 'tracker_PrintView?CTO_UID_OBJ=' . $_GET['CTO_UID_OBJ'] . '&CTO_TYPE_OBJ=PRINT_PREVIEW';
-      $_SESSION['CTO_UID_OBJ'] =  $_GET['CTO_UID_OBJ'];
-      $G_PUBLISH = new Publisher;
-      $G_PUBLISH->AddContent('dynaform', 'xmlform', $_SESSION['PROCESS']. '/' . $_GET['CTO_UID_OBJ'], '', $Fields['APP_DATA'],'','','view');
-      G::RenderPage('publish');
-    break;
-
-    case 'INPUT_DOCUMENT':
-      G::LoadClass('case');
-      $oCase = new Cases();
-      $c = $oCase->getAllUploadedDocumentsCriteriaTracker($_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_GET['CTO_UID_OBJ']);
-
-      $oHeadPublisher =& headPublisher::getSingleton();
-      $oHeadPublisher->addScriptFile('/jscore/tracker/tracker.js');
-
-      $G_PUBLISH = new Publisher;
-      $G_PUBLISH->AddContent('propeltable', 'paged-table', 'tracker/tracker_Inputdocs', $c);
-      G::RenderPage('publish');
-    break;
-
-    case 'OUTPUT_DOCUMENT':
-      G::LoadClass('case');
-      $oCase = new Cases();
-      $c = $oCase->getAllGeneratedDocumentsCriteriaTracker($_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_GET['CTO_UID_OBJ']);
-
-      $oHeadPublisher =& headPublisher::getSingleton();
-      $oHeadPublisher->addScriptFile('/jscore/tracker/tracker.js');
-
-      $G_PUBLISH = new Publisher();
-      $G_PUBLISH->AddContent('propeltable', 'paged-table', 'tracker/tracker_Outputdocs', $c);
-      G::RenderPage('publish');
-    break;
-  }
-
-?>
\ No newline at end of file
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+
+/*
+* dynaforms & documents for Case Tracker
+*
+* @author Everth S. Berrios Morales 
+*
+*/
+
+if (! isset( $_SESSION['PROCESS'] )) {
+    G::header( 'location: login' );
+}
+
+global $_DBArray;
+if (! isset( $_DBArray )) {
+    $_DBArray = array ();
+}
+
+$G_MAIN_MENU = 'caseTracker';
+$G_ID_MENU_SELECTED = 'DYNADOC';
+global $G_PUBLISH;
+
+switch ($_GET['CTO_TYPE_OBJ']) {
+    case 'DYNAFORM':
+        G::LoadClass( 'case' );
+        $oCase = new Cases();
+        $Fields = $oCase->loadCase( $_SESSION['APPLICATION'] );
+        $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PREVIOUS_STEP_LABEL'] = '';
+        $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP_LABEL'] = '';
+        $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP'] = '#';
+        $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_ACTION'] = 'alert("Sample"); return false;';
+        $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PRINT_PREVIEW'] = '#';
+        $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PRINT_PREVIEW_ACTION'] = 'tracker_PrintView?CTO_UID_OBJ=' . $_GET['CTO_UID_OBJ'] . '&CTO_TYPE_OBJ=PRINT_PREVIEW';
+        $_SESSION['CTO_UID_OBJ'] = $_GET['CTO_UID_OBJ'];
+        $G_PUBLISH = new Publisher();
+        $G_PUBLISH->AddContent( 'dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_GET['CTO_UID_OBJ'], '', $Fields['APP_DATA'], '', '', 'view' );
+        G::RenderPage( 'publish' );
+        break;
+
+    case 'INPUT_DOCUMENT':
+        G::LoadClass( 'case' );
+        $oCase = new Cases();
+        $c = $oCase->getAllUploadedDocumentsCriteriaTracker( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_GET['CTO_UID_OBJ'] );
+
+        $oHeadPublisher = & headPublisher::getSingleton();
+        $oHeadPublisher->addScriptFile( '/jscore/tracker/tracker.js' );
+
+        $G_PUBLISH = new Publisher();
+        $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'tracker/tracker_Inputdocs', $c );
+        G::RenderPage( 'publish' );
+        break;
+
+    case 'OUTPUT_DOCUMENT':
+        G::LoadClass( 'case' );
+        $oCase = new Cases();
+        $c = $oCase->getAllGeneratedDocumentsCriteriaTracker( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_GET['CTO_UID_OBJ'] );
+
+        $oHeadPublisher = & headPublisher::getSingleton();
+        $oHeadPublisher->addScriptFile( '/jscore/tracker/tracker.js' );
+
+        $G_PUBLISH = new Publisher();
+        $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'tracker/tracker_Outputdocs', $c );
+        G::RenderPage( 'publish' );
+        break;
+}
+
diff --git a/workflow/engine/methods/tracker/tracker_ShowDocument.php b/workflow/engine/methods/tracker/tracker_ShowDocument.php
index 838ba00a3..a8bcc5cba 100755
--- a/workflow/engine/methods/tracker/tracker_ShowDocument.php
+++ b/workflow/engine/methods/tracker/tracker_ShowDocument.php
@@ -1,85 +1,82 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
-
-require_once ( "classes/model/AppDocumentPeer.php" );
-
-$oAppDocument = new AppDocument();
-if(!isset($_GET['v'])){//Load last version of the document
-    $docVersion=$oAppDocument->getLastAppDocVersion($_GET['a']);
-}else{
-    $docVersion=$_GET['v'];
-}
-$oAppDocument->Fields = $oAppDocument->load($_GET['a'],$docVersion);
-
-$sAppDocUid = $oAppDocument->getAppDocUid();
-$iDocVersion = $oAppDocument->getDocVersion();
-$info = pathinfo( $oAppDocument->getAppDocFilename() );
-$ext = $info['extension'];
-
-if (isset($_GET['b'])) {
-    if ($_GET['b'] == '0') {
-        $bDownload = false;
-    }
-    else {
-        $bDownload = true;
-    }
-}
-else {
-    $bDownload = true;
-}
-
-
-$realPath = PATH_DOCUMENT . $oAppDocument->Fields['APP_UID'] . '/' . $sAppDocUid .'_'.$iDocVersion . '.' . $ext ;
-$realPath1 = PATH_DOCUMENT . $oAppDocument->Fields['APP_UID'] . '/' . $sAppDocUid  . '.' . $ext ;
-$sw_file_exists=false;
-if(file_exists($realPath)){
-    $sw_file_exists=true;
-}elseif(file_exists($realPath1)){
-    $sw_file_exists=true;
-    $realPath=$realPath1;
-}
-
-if(!$sw_file_exists){
-    $error_message="'".$oAppDocument->Fields['APP_DOC_FILENAME']. "' ".G::LoadTranslation('ID_ERROR_STREAMING_FILE');
-    if((isset($_POST['request']))&&($_POST['request']==true)){
-        $res ['success'] = 'failure';
-        $res ['message'] = $error_message;
-        print G::json_encode ( $res );
-    }else{
-        G::SendMessageText($error_message, "ERROR");
-        $backUrlObj=explode("sys".SYS_SYS,$_SERVER['HTTP_REFERER']);
-        G::header("location: "."/sys".SYS_SYS.$backUrlObj[1]);
-        die;
-    }
-
-}else{
-    if((isset($_POST['request']))&&($_POST['request']==true)){
-        $res ['success'] = 'success';
-        $res ['message'] = $oAppDocument->Fields['APP_DOC_FILENAME'];
-        print G::json_encode ( $res );
-    }else{
-        G::streamFile ( $realPath, $bDownload, $oAppDocument->Fields['APP_DOC_FILENAME'] );
-    }
-}
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
+
+require_once ("classes/model/AppDocumentPeer.php");
+
+$oAppDocument = new AppDocument();
+if (! isset( $_GET['v'] )) { //Load last version of the document
+    $docVersion = $oAppDocument->getLastAppDocVersion( $_GET['a'] );
+} else {
+    $docVersion = $_GET['v'];
+}
+$oAppDocument->Fields = $oAppDocument->load( $_GET['a'], $docVersion );
+
+$sAppDocUid = $oAppDocument->getAppDocUid();
+$iDocVersion = $oAppDocument->getDocVersion();
+$info = pathinfo( $oAppDocument->getAppDocFilename() );
+$ext = $info['extension'];
+
+if (isset( $_GET['b'] )) {
+    if ($_GET['b'] == '0') {
+        $bDownload = false;
+    } else {
+        $bDownload = true;
+    }
+} else {
+    $bDownload = true;
+}
+
+$realPath = PATH_DOCUMENT . $oAppDocument->Fields['APP_UID'] . '/' . $sAppDocUid . '_' . $iDocVersion . '.' . $ext;
+$realPath1 = PATH_DOCUMENT . $oAppDocument->Fields['APP_UID'] . '/' . $sAppDocUid . '.' . $ext;
+$sw_file_exists = false;
+if (file_exists( $realPath )) {
+    $sw_file_exists = true;
+} elseif (file_exists( $realPath1 )) {
+    $sw_file_exists = true;
+    $realPath = $realPath1;
+}
+
+if (! $sw_file_exists) {
+    $error_message = "'" . $oAppDocument->Fields['APP_DOC_FILENAME'] . "' " . G::LoadTranslation( 'ID_ERROR_STREAMING_FILE' );
+    if ((isset( $_POST['request'] )) && ($_POST['request'] == true)) {
+        $res['success'] = 'failure';
+        $res['message'] = $error_message;
+        print G::json_encode( $res );
+    } else {
+        G::SendMessageText( $error_message, "ERROR" );
+        $backUrlObj = explode( "sys" . SYS_SYS, $_SERVER['HTTP_REFERER'] );
+        G::header( "location: " . "/sys" . SYS_SYS . $backUrlObj[1] );
+        die();
+    }
+
+} else {
+    if ((isset( $_POST['request'] )) && ($_POST['request'] == true)) {
+        $res['success'] = 'success';
+        $res['message'] = $oAppDocument->Fields['APP_DOC_FILENAME'];
+        print G::json_encode( $res );
+    } else {
+        G::streamFile( $realPath, $bDownload, $oAppDocument->Fields['APP_DOC_FILENAME'] );
+    }
+}
+
diff --git a/workflow/engine/methods/tracker/tracker_ShowOutputDocument.php b/workflow/engine/methods/tracker/tracker_ShowOutputDocument.php
index a396dcc86..6b0b5e830 100755
--- a/workflow/engine/methods/tracker/tracker_ShowOutputDocument.php
+++ b/workflow/engine/methods/tracker/tracker_ShowOutputDocument.php
@@ -1,89 +1,86 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
 /*
  * Created on 13-02-2008
  *
  * @author David Callizaya 
- */
-require_once ( "classes/model/AppDocumentPeer.php" );
-
-$oAppDocument = new AppDocument();
-$oAppDocument->Fields = $oAppDocument->load($_GET['a'],(isset($_GET['v']) )? $_GET['v'] : NULL );
-
-$sAppDocUid = $oAppDocument->getAppDocUid();
-$info = pathinfo( $oAppDocument->getAppDocFilename() );
-if (!isset($_GET['ext'])) {
-    $ext = $info['extension'];
-}
-else {
-    if ($_GET['ext'] != '') {
-        $ext = $_GET['ext'];
-    }
-    else {
-        $ext = $info['extension'];
-    }
-}
-$ver= (isset($_GET['v']) && $_GET['v']!='') ? '_'.$_GET['v'] : '';
-
-if(!$ver)   //This code is in the case the outputdocument won't be versioned
-  $ver='_1';
-
-$realPath = PATH_DOCUMENT . $oAppDocument->Fields['APP_UID'] . '/outdocs/' . $sAppDocUid .$ver. '.' . $ext ;
-$realPath1 = PATH_DOCUMENT . $oAppDocument->Fields['APP_UID'] . '/outdocs/' . $info['basename'] .$ver. '.' . $ext ;
-$realPath2 = PATH_DOCUMENT . $oAppDocument->Fields['APP_UID'] . '/outdocs/' . $info['basename']. '.' . $ext ;
-$sw_file_exists=false;
-if(file_exists($realPath)){
-    $sw_file_exists=true;
-}elseif(file_exists($realPath1)){
-    $sw_file_exists=true;
-    $realPath=$realPath1;
-}elseif(file_exists($realPath2)){
-    $sw_file_exists=true;
-    $realPath=$realPath2;
-}
-if(!$sw_file_exists){
-    $error_message="'".$info['basename'] .$ver. '.' . $ext."' ".G::LoadTranslation('ID_ERROR_STREAMING_FILE');
-    if((isset($_POST['request']))&&($_POST['request']==true)){
-        $res ['success'] = 'failure';
-        $res ['message'] = $error_message;
-        print G::json_encode ( $res );
-    }else{
-        G::SendMessageText($error_message, "ERROR");
-        $backUrlObj=explode("sys".SYS_SYS,$_SERVER['HTTP_REFERER']);
-        G::header("location: "."/sys".SYS_SYS.$backUrlObj[1]);
-        die;
-    }
-
-}else{
-    if((isset($_POST['request']))&&($_POST['request']==true)){
-        $res ['success'] = 'success';
-        $res ['message'] = $info['basename'] .$ver. '.' . $ext;
-        print G::json_encode ( $res );
-    }else{
-        G::streamFile ( $realPath, true ,$info['basename'] .$ver. '.' . $ext );
-    }
-}
-//G::streamFile ( $realPath, true);
-?>
+ */
+require_once ("classes/model/AppDocumentPeer.php");
+
+$oAppDocument = new AppDocument();
+$oAppDocument->Fields = $oAppDocument->load( $_GET['a'], (isset( $_GET['v'] )) ? $_GET['v'] : NULL );
+
+$sAppDocUid = $oAppDocument->getAppDocUid();
+$info = pathinfo( $oAppDocument->getAppDocFilename() );
+if (! isset( $_GET['ext'] )) {
+    $ext = $info['extension'];
+} else {
+    if ($_GET['ext'] != '') {
+        $ext = $_GET['ext'];
+    } else {
+        $ext = $info['extension'];
+    }
+}
+$ver = (isset( $_GET['v'] ) && $_GET['v'] != '') ? '_' . $_GET['v'] : '';
+
+if (! $ver) //This code is in the case the outputdocument won't be versioned
+    $ver = '_1';
+
+$realPath = PATH_DOCUMENT . $oAppDocument->Fields['APP_UID'] . '/outdocs/' . $sAppDocUid . $ver . '.' . $ext;
+$realPath1 = PATH_DOCUMENT . $oAppDocument->Fields['APP_UID'] . '/outdocs/' . $info['basename'] . $ver . '.' . $ext;
+$realPath2 = PATH_DOCUMENT . $oAppDocument->Fields['APP_UID'] . '/outdocs/' . $info['basename'] . '.' . $ext;
+$sw_file_exists = false;
+if (file_exists( $realPath )) {
+    $sw_file_exists = true;
+} elseif (file_exists( $realPath1 )) {
+    $sw_file_exists = true;
+    $realPath = $realPath1;
+} elseif (file_exists( $realPath2 )) {
+    $sw_file_exists = true;
+    $realPath = $realPath2;
+}
+if (! $sw_file_exists) {
+    $error_message = "'" . $info['basename'] . $ver . '.' . $ext . "' " . G::LoadTranslation( 'ID_ERROR_STREAMING_FILE' );
+    if ((isset( $_POST['request'] )) && ($_POST['request'] == true)) {
+        $res['success'] = 'failure';
+        $res['message'] = $error_message;
+        print G::json_encode( $res );
+    } else {
+        G::SendMessageText( $error_message, "ERROR" );
+        $backUrlObj = explode( "sys" . SYS_SYS, $_SERVER['HTTP_REFERER'] );
+        G::header( "location: " . "/sys" . SYS_SYS . $backUrlObj[1] );
+        die();
+    }
+
+} else {
+    if ((isset( $_POST['request'] )) && ($_POST['request'] == true)) {
+        $res['success'] = 'success';
+        $res['message'] = $info['basename'] . $ver . '.' . $ext;
+        print G::json_encode( $res );
+    } else {
+        G::streamFile( $realPath, true, $info['basename'] . $ver . '.' . $ext );
+    }
+}
+//G::streamFile ( $realPath, true);
+
diff --git a/workflow/engine/methods/tracker/tracker_ViewMap.php b/workflow/engine/methods/tracker/tracker_ViewMap.php
index a47745c35..c9e9cedbc 100755
--- a/workflow/engine/methods/tracker/tracker_ViewMap.php
+++ b/workflow/engine/methods/tracker/tracker_ViewMap.php
@@ -1,79 +1,78 @@
-.
- *
- * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
- * Coral Gables, FL, 33134, USA, or email info@colosa.com.
- *
- */
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ */
 /*
  * Map for Case Tracker
  *
  * @author Everth S. Berrios Morales 
  *
- */
-require_once 'classes/model/Process.php';
-if (!isset($_SESSION['PROCESS'])) {
-    G::header('location: login');
-}
-$G_MAIN_MENU = 'caseTracker';
-$G_ID_MENU_SELECTED = 'MAP';
-
-require_once 'classes/model/CaseTracker.php';
-$oCaseTracker = new CaseTracker();
-$aCaseTracker = $oCaseTracker->load($_SESSION['PROCESS']);
-
-$idProcess = $_SESSION['PROCESS'];
-$oProcess = new Process();
-$aProcessFieds = $oProcess->load($idProcess);
-$noShowTitle = 0;
-if (isset($aProcessFieds['PRO_SHOW_MESSAGE'])) {
-    $noShowTitle = $aProcessFieds['PRO_SHOW_MESSAGE'];
-}
-switch (($aCaseTracker['CT_MAP_TYPE'])) {
-    case 'NONE':
+ */
+require_once 'classes/model/Process.php';
+if (! isset( $_SESSION['PROCESS'] )) {
+    G::header( 'location: login' );
+}
+$G_MAIN_MENU = 'caseTracker';
+$G_ID_MENU_SELECTED = 'MAP';
+
+require_once 'classes/model/CaseTracker.php';
+$oCaseTracker = new CaseTracker();
+$aCaseTracker = $oCaseTracker->load( $_SESSION['PROCESS'] );
+
+$idProcess = $_SESSION['PROCESS'];
+$oProcess = new Process();
+$aProcessFieds = $oProcess->load( $idProcess );
+$noShowTitle = 0;
+if (isset( $aProcessFieds['PRO_SHOW_MESSAGE'] )) {
+    $noShowTitle = $aProcessFieds['PRO_SHOW_MESSAGE'];
+}
+switch (($aCaseTracker['CT_MAP_TYPE'])) {
+    case 'NONE':
         //Nothing
-        break;
-    case 'PROCESSMAP':
-        G::LoadClass('case');
-        G::LoadClass('processMap');
-        $oCase = new Cases();
-        $aFields = $oCase->loadCase($_SESSION['APPLICATION']);
-        if (isset($aFields['TITLE'])) {
-            $aFields['APP_TITLE'] = $aFields['TITLE'];
-        }
-        if ($aFields['APP_PROC_CODE'] != '') {
-            $aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
-        }
-        $aFields['CASE'] = G::LoadTranslation('ID_CASE');
-        $aFields['TITLE'] = G::LoadTranslation('ID_TITLE');
-        $oTemplatePower = new TemplatePower(PATH_TPL . 'processes/processes_Map.html');
-        $oTemplatePower->prepare();
-        $G_PUBLISH = new Publisher;
-        if ($noShowTitle == 0) {
-            $G_PUBLISH->AddContent('smarty', 'cases/cases_title', '', '', $aFields);
-        }
-        $G_PUBLISH->AddContent('template', '', '', '', $oTemplatePower);
-        $oHeadPublisher = & headPublisher::getSingleton();
-        $oHeadPublisher->addScriptCode('
-        var maximunX = ' . processMap::getMaximunTaskX($_SESSION['PROCESS']) . ';
+        break;
+    case 'PROCESSMAP':
+        G::LoadClass( 'case' );
+        G::LoadClass( 'processMap' );
+        $oCase = new Cases();
+        $aFields = $oCase->loadCase( $_SESSION['APPLICATION'] );
+        if (isset( $aFields['TITLE'] )) {
+            $aFields['APP_TITLE'] = $aFields['TITLE'];
+        }
+        if ($aFields['APP_PROC_CODE'] != '') {
+            $aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
+        }
+        $aFields['CASE'] = G::LoadTranslation( 'ID_CASE' );
+        $aFields['TITLE'] = G::LoadTranslation( 'ID_TITLE' );
+        $oTemplatePower = new TemplatePower( PATH_TPL . 'processes/processes_Map.html' );
+        $oTemplatePower->prepare();
+        $G_PUBLISH = new Publisher();
+        if ($noShowTitle == 0) {
+            $G_PUBLISH->AddContent( 'smarty', 'cases/cases_title', '', '', $aFields );
+        }
+        $G_PUBLISH->AddContent( 'template', '', '', '', $oTemplatePower );
+        $oHeadPublisher = & headPublisher::getSingleton();
+        $oHeadPublisher->addScriptCode( '
+        var maximunX = ' . processMap::getMaximunTaskX( $_SESSION['PROCESS'] ) . ';
         leimnud.event.add(window,"load",function(){
           var pb = leimnud.dom.capture("tag.body 0");
           pm = new processmap();
@@ -133,30 +132,30 @@ switch (($aCaseTracker['CT_MAP_TYPE'])) {
           }.extend(this);
 
           rpcRequest.make();
-        });');
-        G::RenderPage('publish');
-        break;
-    case 'STAGES':
-        G::LoadClass('case');
-        $oCase = new Cases();
-        $aFields = $oCase->loadCase($_SESSION['APPLICATION']);
-        if (isset($aFields['TITLE'])) {
-            $aFields['APP_TITLE'] = $aFields['TITLE'];
-        }
-        if ($aFields['APP_PROC_CODE'] != '') {
-            $aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
-        }
-        $aFields['CASE'] = G::LoadTranslation('ID_CASE');
-        $aFields['TITLE'] = G::LoadTranslation('ID_TITLE');
-        $oTemplatePower = new TemplatePower(PATH_TPL . 'tracker/stages_Map.html');
-        $oTemplatePower->prepare();
-        $G_PUBLISH = new Publisher;
-        if ($noShowTitle == 0) {
-            $G_PUBLISH->AddContent('smarty', 'cases/cases_title', '', '', $aFields);
-        }
-        $G_PUBLISH->AddContent('template', '', '', '', $oTemplatePower);
-        $oHeadPublisher = & headPublisher::getSingleton();
-        $oHeadPublisher->addScriptCode('
+        });' );
+        G::RenderPage( 'publish' );
+        break;
+    case 'STAGES':
+        G::LoadClass( 'case' );
+        $oCase = new Cases();
+        $aFields = $oCase->loadCase( $_SESSION['APPLICATION'] );
+        if (isset( $aFields['TITLE'] )) {
+            $aFields['APP_TITLE'] = $aFields['TITLE'];
+        }
+        if ($aFields['APP_PROC_CODE'] != '') {
+            $aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
+        }
+        $aFields['CASE'] = G::LoadTranslation( 'ID_CASE' );
+        $aFields['TITLE'] = G::LoadTranslation( 'ID_TITLE' );
+        $oTemplatePower = new TemplatePower( PATH_TPL . 'tracker/stages_Map.html' );
+        $oTemplatePower->prepare();
+        $G_PUBLISH = new Publisher();
+        if ($noShowTitle == 0) {
+            $G_PUBLISH->AddContent( 'smarty', 'cases/cases_title', '', '', $aFields );
+        }
+        $G_PUBLISH->AddContent( 'template', '', '', '', $oTemplatePower );
+        $oHeadPublisher = & headPublisher::getSingleton();
+        $oHeadPublisher->addScriptCode( '
         leimnud.Package.Load("stagesmap",{Type:"file",Absolute:true,Path:"/jscore/stagesmap/core/stagesmap.js"});
         leimnud.event.add(window,"load",function(){
           var pb=leimnud.dom.capture("tag.body 0");
@@ -174,7 +173,8 @@ switch (($aCaseTracker['CT_MAP_TYPE'])) {
             hideMenu  : false
           };
           Sm.make();
-        });');
-        G::RenderPage('publish');
-        break;
-}
+        });' );
+        G::RenderPage( 'publish' );
+        break;
+}
+