load($Category,'', $Id, $Lang); return $value; } // General Validations if (!isset($_REQUEST['action'])) { $_REQUEST['action'] = ''; } if (!isset($_REQUEST['limit'])) { $_REQUEST['limit'] = ''; } if (!isset($_REQUEST['start'])) { $_REQUEST['start'] = ''; } // Initialize response object $response = new stdclass(); $response->status = 'OK'; // Main switch try { switch ($_REQUEST['action']) { case 'editTemplate': // Action Validations if (!isset($_REQUEST['TEMPLATE'])) { $_REQUEST['TEMPLATE'] = ''; } if ($_REQUEST['TEMPLATE'] == '') { throw new Exception('The TEMPLATE parameter is empty.'); } $data = array( 'CONTENT' => file_get_contents(PATH_DATA_MAILTEMPLATES . $_REQUEST['PRO_UID'] . PATH_SEP . $_REQUEST['TEMPLATE']), 'TEMPLATE' => $_REQUEST['TEMPLATE'], ); global $G_PUBLISH; $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent('xmlform', 'xmlform', 'actionsByEmail/actionsByEmail_FileEdit', '', $data); G::RenderPage('publish', 'raw'); die(); break; case 'updateTemplate': // Action Validations if (!isset($_REQUEST['TEMPLATE'])) { $_REQUEST['TEMPLATE'] = ''; } if (!isset($_REQUEST['CONTENT'])) { $_REQUEST['CONTENT'] = ''; } if ($_REQUEST['TEMPLATE'] == '') { throw new Exception('The TEMPLATE parameter is empty.'); } $templateFile = fopen(PATH_DATA_MAILTEMPLATES . $_REQUEST['PRO_UID'] . PATH_SEP . $_REQUEST['TEMPLATE'], 'w'); $content = stripslashes($_REQUEST['CONTENT']); $content = str_replace('@amp@', '&', $content); $content = base64_decode($content); fwrite($templateFile, $content); fclose($templateFile); break; // comment case 'loadFields': if (!isset($_REQUEST['DYN_UID'])) { $_REQUEST['DYN_UID'] = ''; } if (!isset($_REQUEST['PRO_UID'])) { $_REQUEST['PRO_UID'] = ''; } $response->emailFields = array(); $response->actionFields = array(); if ($_REQUEST['PRO_UID'] != '' && $_REQUEST['DYN_UID']) { $dynaform = new Form($_REQUEST['PRO_UID'] . PATH_SEP . $_REQUEST['DYN_UID'], PATH_DYNAFORM, SYS_LANG, false); foreach ($dynaform->fields as $fieldName => $data) { switch($data->type) { case 'text': case 'suggest': case 'hidden': case 'textarea': $response->emailFields[] = array('value' => $data->name, 'label' => $data->label . ' (@@' . $data->name . ')'); break; case 'dropdown': case 'radiogroup': case 'yesno': case 'checkbox': $response->actionFields[] = array('value' => $data->name, 'label' => $data->label . ' (@@' . $data->name . ')'); break; } } } break; case 'saveConfiguration': // Action Validations if (!isset($_REQUEST['ABE_UID'])) { $_REQUEST['ABE_UID'] = ''; } if (!isset($_REQUEST['PRO_UID'])) { $_REQUEST['PRO_UID'] = ''; } if (!isset($_REQUEST['TAS_UID'])) { $_REQUEST['TAS_UID'] = ''; } if (!isset($_REQUEST['ABE_TYPE'])) { $_REQUEST['ABE_TYPE'] = ''; } if (!isset($_REQUEST['ABE_TEMPLATE'])) { $_REQUEST['ABE_TEMPLATE'] = ''; } if (!isset($_REQUEST['DYN_UID'])) { $_REQUEST['DYN_UID'] = ''; } if (!isset($_REQUEST['ABE_EMAIL_FIELD'])) { $_REQUEST['ABE_EMAIL_FIELD'] = ''; } if (!isset($_REQUEST['ABE_ACTION_FIELD'])) { $_REQUEST['ABE_ACTION_FIELD'] = ''; } if (!isset($_REQUEST['ABE_CASE_NOTE_IN_RESPONSE'])) { $_REQUEST['ABE_CASE_NOTE_IN_RESPONSE'] = 0; } if ($_REQUEST['PRO_UID'] == '') { throw new Exception('The PRO_UID parameter is empty.'); } if ($_REQUEST['TAS_UID'] == '') { throw new Exception('The TAS_UID parameter is empty.'); } require_once 'classes/model/AbeConfiguration.php'; $abeConfigurationInstance = new AbeConfiguration(); if ($_REQUEST['ABE_TYPE'] != '') { if ($_REQUEST['DYN_UID'] == '') { throw new Exception('The DYN_UID parameter is empty.'); } try { $response->ABE_UID = $abeConfigurationInstance->createOrUpdate($_REQUEST); } catch (Exception $error) { throw $error; } } else { try { $abeConfigurationInstance->deleteByTasUid($_REQUEST['TAS_UID']); $response->ABE_UID = ''; } catch (Exception $error) { throw $error; } } break; case 'loadActionByEmail': $criteria = new Criteria(); $criteria->addSelectColumn( 'COUNT(*)'); $criteria->addJoin(AbeConfigurationPeer::ABE_UID,AbeRequestsPeer::ABE_UID); $criteria->addJoin(AppDelegationPeer::APP_UID,AbeRequestsPeer::APP_UID); $criteria->addJoin(AppDelegationPeer::DEL_INDEX,AbeRequestsPeer::DEL_INDEX); $result = AbeConfigurationPeer::doSelectRS($criteria); $result->setFetchmode(ResultSet::FETCHMODE_ASSOC); $result->next(); $totalCount = $result->getRow(); $totalCount = $totalCount['COUNT(*)']; $criteria = new Criteria(); $criteria->addSelectColumn(AbeConfigurationPeer::ABE_UID); $criteria->addSelectColumn(AbeConfigurationPeer::PRO_UID); $criteria->addSelectColumn(AbeConfigurationPeer::TAS_UID); $criteria->addSelectColumn(AbeConfigurationPeer::ABE_UPDATE_DATE); $criteria->addSelectColumn(AbeConfigurationPeer::ABE_TEMPLATE); $criteria->addSelectColumn(AbeConfigurationPeer::ABE_ACTION_FIELD); $criteria->addSelectColumn(AbeConfigurationPeer::DYN_UID); $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_UID); $criteria->addSelectColumn(AbeRequestsPeer::APP_UID); $criteria->addSelectColumn(AbeRequestsPeer::DEL_INDEX); $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_SENT_TO); $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_STATUS); $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_SUBJECT); $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_ANSWERED); $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_BODY); $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_DATE); $criteria->addSelectColumn(ApplicationPeer::APP_NUMBER); $criteria->addSelectColumn(AppDelegationPeer::DEL_PREVIOUS); $criteria->addJoin(AbeConfigurationPeer::ABE_UID,AbeRequestsPeer::ABE_UID); $criteria->addJoin(ApplicationPeer::APP_UID,AbeRequestsPeer::APP_UID); $criteria->addJoin(AppDelegationPeer::APP_UID,AbeRequestsPeer::APP_UID); $criteria->addJoin(AppDelegationPeer::DEL_INDEX,AbeRequestsPeer::DEL_INDEX); $criteria->addDescendingOrderByColumn(AbeRequestsPeer::ABE_REQ_DATE); $criteria->setLimit( $_REQUEST['limit'] ); $criteria->setOffset( $_REQUEST['start'] ); $result = AbeConfigurationPeer::doSelectRS($criteria); $result->setFetchmode(ResultSet::FETCHMODE_ASSOC); $data = Array(); $arrayPro = Array(); $arrayTAS = Array(); $index = 0; while ($result->next()) { $data[] = $result->getRow(); $criteriaRes = new Criteria(); $criteriaRes->addSelectColumn(AbeResponsesPeer::ABE_RES_UID); $criteriaRes->addSelectColumn(AbeResponsesPeer::ABE_RES_CLIENT_IP); $criteriaRes->addSelectColumn(AbeResponsesPeer::ABE_RES_DATA); $criteriaRes->addSelectColumn(AbeResponsesPeer::ABE_RES_STATUS); $criteriaRes->addSelectColumn(AbeResponsesPeer::ABE_RES_MESSAGE); $criteriaRes->add(AbeResponsesPeer::ABE_REQ_UID, $data[$index]['ABE_REQ_UID']); $resultRes = AbeResponsesPeer::doSelectRS($criteriaRes); $resultRes->setFetchmode(ResultSet::FETCHMODE_ASSOC); $resultRes->next(); $dataRes = Array(); if ($dataRes = $resultRes->getRow()) { $data[$index]['ABE_RES_UID'] = $dataRes['ABE_RES_UID']; $data[$index]['ABE_RES_CLIENT_IP'] = $dataRes['ABE_RES_CLIENT_IP']; $data[$index]['ABE_RES_DATA'] = $dataRes['ABE_RES_DATA']; $data[$index]['ABE_RES_STATUS'] = $dataRes['ABE_RES_STATUS']; $data[$index]['ABE_RES_MESSAGE'] = $dataRes['ABE_RES_MESSAGE']; } else { $data[$index]['ABE_RES_UID'] = ''; $data[$index]['ABE_RES_CLIENT_IP'] = ''; $data[$index]['ABE_RES_DATA'] = ''; $data[$index]['ABE_RES_STATUS'] = ''; $data[$index]['ABE_RES_MESSAGE'] = ''; } $criteriaRes = new Criteria(); $criteriaRes->addSelectColumn(AppDelegationPeer::USR_UID); $criteriaRes->addSelectColumn(UsersPeer::USR_FIRSTNAME); $criteriaRes->addSelectColumn(UsersPeer::USR_LASTNAME); $criteria->addJoin(AppDelegationPeer::APP_UID,$data[$index]['APP_UID']); $criteria->addJoin(AppDelegationPeer::DEL_INDEX,$data[$index]['DEL_PREVIOUS']); $criteria->addJoin(AppDelegationPeer::USR_UID,UsersPeer::USR_UID); $resultRes = AppDelegationPeer::doSelectRS($criteriaRes); $resultRes->setFetchmode(ResultSet::FETCHMODE_ASSOC); $resultRes->next(); if ($dataRes = $resultRes->getRow()) { $data[$index]['USER'] = $dataRes['USR_FIRSTNAME']. ' '.$dataRes['USR_LASTNAME']; } else { $data[$index]['USER'] = ''; } $data[$index]['ABE_REQ_ANSWERED'] = ($data[$index]['ABE_REQ_ANSWERED'] == 1)? 'YES' : 'NO'; /* $swPRO = false; foreach($arrayPro as $k => $field){ if($arrayPro[$k]['PRO_UID'] == $data[$index]['PRO_UID'] && $arrayPro[$k]['LANG'] == SYS_LANG){ $data[$index]['PRO_TITLE'] = $arrayPro[$k]['PRO_TITLE']; $swPRO = true; } } if(!$swPRO){ $data[$index]['PRO_TITLE'] = addTitlle('PRO_TITLE', $data[$index]['PRO_UID'], SYS_LANG); $arrayPRO[] = Array('PRO_UID'=>$data[$index]['PRO_UID'] , 'PRO_TITLE'=>$data[$index]['PRO_TITLE'],'LANG' => SYS_LANG); } $swTAS = false; foreach($arrayTAS as $k => $field){ if($arrayTAS[$k]['TAS_UID'] == $data[$index]['TAS_UID'] && $arrayTAS[$k]['LANG'] == SYS_LANG){ $data[$index]['TAS_TITLE'] = $arrayTAS[$k]['TAS_TITLE']; $swTAS = true; } } if(!$swTAS){ $data[$index]['TAS_TITLE'] = addTitlle('TAS_TITLE', $data[$index]['TAS_UID'], SYS_LANG); $arrayTAS[] = Array('TAS_UID'=>$data[$index]['TAS_UID'] , 'TAS_TITLE'=>$data[$index]['TAS_TITLE'],'LANG' => SYS_LANG); }*/ $index++; } $response = array(); $response['totalCount'] = $totalCount; $response['data'] = $data; break; case 'forwardMail': if (!isset($_REQUEST['REQ_UID'])) { $_REQUEST['REQ_UID'] = ''; } $criteria = new Criteria(); $criteria->addSelectColumn(AbeConfigurationPeer::ABE_UID); $criteria->addSelectColumn(AbeConfigurationPeer::PRO_UID); $criteria->addSelectColumn(AbeConfigurationPeer::TAS_UID); $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_UID); $criteria->addSelectColumn(AbeRequestsPeer::APP_UID); $criteria->addSelectColumn(AbeRequestsPeer::DEL_INDEX); $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_SENT_TO); $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_SUBJECT); $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_BODY); $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_ANSWERED); $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_STATUS); $criteria->addSelectColumn(AppDelegationPeer::DEL_FINISH_DATE); $criteria->add(AbeRequestsPeer::ABE_REQ_UID,$_REQUEST['REQ_UID']); $criteria->addJoin(AbeRequestsPeer::ABE_UID,AbeConfigurationPeer::ABE_UID); $criteria->addJoin(AppDelegationPeer::APP_UID,AbeRequestsPeer::APP_UID); $criteria->addJoin(AppDelegationPeer::DEL_INDEX,AbeRequestsPeer::DEL_INDEX); $resultRes = AbeRequestsPeer::doSelectRS($criteria); $resultRes->setFetchmode(ResultSet::FETCHMODE_ASSOC); $resultRes->next(); $dataRes = Array(); if ($dataRes = $resultRes->getRow()) { if (is_null($dataRes['DEL_FINISH_DATE'])) { require_once 'classes/model/Configuration.php'; G::LoadClass('spool'); $configuration = new Configuration(); $sDelimiter = DBAdapter::getStringDelimiter(); $criteria = new Criteria('workflow'); $criteria->add(ConfigurationPeer::CFG_UID, 'Emails'); $criteria->add(ConfigurationPeer::OBJ_UID, ''); $criteria->add(ConfigurationPeer::PRO_UID, ''); $criteria->add(ConfigurationPeer::USR_UID, ''); $criteria->add(ConfigurationPeer::APP_UID, ''); if (ConfigurationPeer::doCount($criteria) == 0) { $configuration->create(array('CFG_UID'=>'Emails', 'OBJ_UID'=>'', 'CFG_VALUE'=>'', 'PRO_UID'=>'', 'USR_UID'=>'', 'APP_UID'=>'')); $newConfiguration = array(); } else { $newConfiguration = $configuration->load('Emails', '', '', '', ''); if ($newConfiguration['CFG_VALUE'] != '') { $newConfiguration = unserialize($newConfiguration['CFG_VALUE']); } else { $newConfiguration = array(); } } $spool = new spoolRun(); $spool->setConfig(array( 'MESS_ENGINE' => $newConfiguration['MESS_ENGINE'], 'MESS_SERVER' => $newConfiguration['MESS_SERVER'], 'MESS_PORT' => $newConfiguration['MESS_PORT'], 'MESS_ACCOUNT' => $newConfiguration['MESS_ACCOUNT'], 'MESS_PASSWORD' => $newConfiguration['MESS_PASSWORD'], 'SMTPAuth' => $newConfiguration['MESS_RAUTH'] )); $spool->create(array( 'msg_uid' => '', 'app_uid' => $dataRes['APP_UID'], 'del_index' => $dataRes['DEL_INDEX'], 'app_msg_type' => 'TEST', 'app_msg_subject' => $dataRes['ABE_REQ_SUBJECT'], 'app_msg_from' => $newConfiguration['MESS_ACCOUNT'], 'app_msg_to' => $dataRes['ABE_REQ_SENT_TO'], 'app_msg_body' => $dataRes['ABE_REQ_BODY'], 'app_msg_cc' => '', 'app_msg_bcc' => '', 'app_msg_attach' => '', 'app_msg_template'=> '', 'app_msg_status' => 'pending' )); if ($spool->sendMail()) { $dataRes['ABE_REQ_STATUS'] = 'SENT'; $message = 'The email was resend to: '. $dataRes['ABE_REQ_SENT_TO']; } else { $dataRes['ABE_REQ_STATUS'] = 'ERROR'; $message = 'There was a problem sending the email to: '. $dataRes['ABE_REQ_SENT_TO'] .', please try later.'; } try { $abeRequestsInstance = new AbeRequests(); $abeRequestsInstance->createOrUpdate($dataRes); } catch (Exception $error) { throw $error; } } else { $message = 'Unable to send email, the task is closed.'; } } else { $message = 'An unexpected error occurred please try again later.'; } print_r($message); die; break; case 'viewForm': //coment if (!isset($_REQUEST['REQ_UID'])) { $_REQUEST['REQ_UID'] = ''; } $criteria = new Criteria(); $criteria->addSelectColumn(AbeConfigurationPeer::ABE_UID); $criteria->addSelectColumn(AbeConfigurationPeer::PRO_UID); $criteria->addSelectColumn(AbeConfigurationPeer::TAS_UID); $criteria->addSelectColumn(AbeConfigurationPeer::DYN_UID); $criteria->addSelectColumn(AbeConfigurationPeer::ABE_ACTION_FIELD); $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_UID); $criteria->addSelectColumn(AbeRequestsPeer::APP_UID); $criteria->addSelectColumn(AbeRequestsPeer::DEL_INDEX); $criteria->addSelectColumn(AbeResponsesPeer::ABE_RES_UID); $criteria->addSelectColumn(AbeResponsesPeer::ABE_RES_DATA); $criteria->add(AbeRequestsPeer::ABE_REQ_UID,$_REQUEST['REQ_UID']); $criteria->addJoin(AbeRequestsPeer::ABE_UID,AbeConfigurationPeer::ABE_UID); $criteria->addJoin(AbeResponsesPeer::ABE_REQ_UID,AbeRequestsPeer::ABE_REQ_UID); $resultRes = AbeRequestsPeer::doSelectRS($criteria); $resultRes->setFetchmode(ResultSet::FETCHMODE_ASSOC); $resultRes->next(); $dataRes = Array(); $message = 'The user has not responded to this request.'; if ($dataRes = $resultRes->getRow()) { $_SESSION['CURRENT_DYN_UID'] = trim($dataRes['DYN_UID']); $dynaform = new Form($dataRes['PRO_UID'] . PATH_SEP . trim($dataRes['DYN_UID']), PATH_DYNAFORM, SYS_LANG, false); $dynaform->mode = 'view'; if ($dataRes['ABE_RES_DATA'] != '') { $value = unserialize( $dataRes['ABE_RES_DATA'] ); if (is_array($value)) { $dynaform->values = $value; foreach ($dynaform->fields as $fieldName => $field) { if ($field->type == 'submit') { unset($dynaform->fields[$fieldName]); } } $message = $dynaform->render(PATH_CORE . 'templates/xmlform.html', $scriptCode); } else { $response = $dynaform->render(PATH_CORE . 'templates/xmlform.html', $scriptCode); $field = $dynaform->fields[$dataRes['ABE_ACTION_FIELD']]; $message = 'Type: '.$field->type . '
'; switch ($field->type) { case 'dropdown': case 'radiogroup': $message .=$field->label .' - '; $message .= $field->options[$value]; break; case 'yesno': $message .= ''.$field->label. ' - '; $message .= ($value == 1)? 'Yes' : 'No'; break; case 'checkbox': $message .= ''. $field->label. ' - '; $message .= ($value == 'On')? 'Check' : 'Uncheck'; break; } } } } print_r($message); die; break; } } catch (Exception $error) { $response = new stdclass(); $response->status = 'ERROR'; $response->message = $error->getMessage(); } header('Content-Type: application/json;'); die(G::json_encode($response));