<?
// включение плагина на /cab/setting/moduls/
// код для вывода
// $this->form_checkbox_left('<strong>Рабочее место руководителя</strong>','Модуль объедиенной статистики для руководителя','IS[plugins][esmo_master]',$GLOBALS['_SETTING']['plugins']['esmo_master'],'i_esmo_master') ;

$__functions['install'][]	='_esmo_gateway_install_modul' ;
$__functions['init'][]      ='_esmo_gateway_admin_vars' ;
$__functions['boot_site'][] ='_esmo_gateway_site_boot' ;
$__functions['main_menu'][] ='_esmo_gateway_main_menu' ;


function _esmo_gateway_admin_vars() //
{   //$_SESSION['descr_clss'][250]['fields']['frs']=array('type'=>'int(11)','default'=>0) ; // Фрамингемская шкала
    //$_SESSION['descr_clss'][211]['fields']['hol']=array('type'=>'float(10,2)') ;
    //$_SESSION['descr_clss'][211]['fields']['lek']=array('type'=>'float(10,2)') ;
    //$_SESSION['descr_clss'][211]['fields']['smoking']=array('type'=>'int(1)','default'=>0) ;
    //$_SESSION['descr_clss'][211]['fields']['frs']=array('type'=>'int(11)') ;

}

function _esmo_gateway_install_modul($DOT_root)
{   $id_sect=SETUP_add_section_to_site_setting('Интеграция / PUSH - уведомления') ;
    SETUP_add_rec_to_site_setting($id_sect,"Адрес push-шлюза",'','LS_mo_push_server') ;
    SETUP_add_rec_to_site_setting($id_sect,"Логин basic авторизации",'','LS_mo_push_login') ;
    SETUP_add_rec_to_site_setting($id_sect,"Пароль basic авторизации",'','LS_mo_push_password',array('crypt'=>1)) ;
    SETUP_add_rec_to_site_setting($id_sect,"Отправляемые поля при push-уведомлениях",'','LS_mo_push_fields',array('hidden'=>1)) ;
    SETUP_add_rec_to_site_setting($id_sect,"Уведомлять фельдшера при недоступности шлюза",0,'LS_mo_push_notify_doctor',array('el'=>'checkbox')) ;
    SETUP_add_rec_to_site_setting($id_sect,"Синхронная отправка данных на push-шлюз",0,'LS_mo_push_sync',array('el'=>'checkbox')) ;
    SETUP_add_rec_to_site_setting($id_sect,"Асинхронная отправка данных на push-шлюз",0,'LS_mo_push_async',array('el'=>'checkbox')) ;
    SETUP_add_rec_to_site_setting($id_sect,"Дата начала отправки push-уведомлений",100,'LS_mo_push_time_from') ;
    SETUP_add_rec_to_site_setting($id_sect,"Таймаут при синхронной отправке",3,'LS_mo_push_timeout_sync',array('human'=>'sec')) ;
    SETUP_add_rec_to_site_setting($id_sect,"Таймаут при асинхронной отправке",3,'LS_mo_push_timeout_async',array('human'=>'sec')) ;
    SETUP_add_rec_to_site_setting($id_sect,"Максимальное число МО, отправляемых за раз при асинхронной отправке",100,'LS_mo_push_async_size') ;
    SETUP_add_rec_to_site_setting($id_sect,"Логгировать обмен данными при push-уведомлениях",0,'LS_mo_push_log_req',array('el'=>'checkbox')) ;
	SETUP_add_rec_to_site_setting($id_sect,"Формат отправки данных",2,'LS_mo_push_format',array('el'=>'select','array'=>'ARR_mo_push_format')) ;
	SETUP_add_rec_to_site_setting($id_sect,"Отправка в формате JSON без использования массивов Root-Results",0,'LS_mo_push_json_old_format',array('el'=>'checkbox')) ; //только для Внуково

    $id_sect=SETUP_add_section_to_site_setting('Интеграция / КТ - PUSH - уведомления') ;
    SETUP_add_rec_to_site_setting($id_sect,"Адрес push-шлюза",'','LS_kt_push_server') ;
    SETUP_add_rec_to_site_setting($id_sect,"Логин basic авторизации",'','LS_kt_push_login') ;
    SETUP_add_rec_to_site_setting($id_sect,"Пароль basic авторизации",'','LS_kt_push_password',array('crypt'=>1)) ;
    SETUP_add_rec_to_site_setting($id_sect,"Отправляемые поля при push-уведомлениях",'','LS_kt_push_fields',array('hidden'=>1)) ;
    SETUP_add_rec_to_site_setting($id_sect,"Синхронная отправка данных на push-шлюз",0,'LS_kt_push_sync',array('el'=>'checkbox')) ;
    SETUP_add_rec_to_site_setting($id_sect,"Асинхронная отправка данных на push-шлюз",0,'LS_kt_push_async',array('el'=>'checkbox')) ;
    SETUP_add_rec_to_site_setting($id_sect,"Таймаут при синхронной отправке",3,'LS_kt_push_timeout_sync',array('human'=>'sec')) ;
    SETUP_add_rec_to_site_setting($id_sect,"Таймаут при асинхронной отправке",3,'LS_kt_push_timeout_async',array('human'=>'sec')) ;
    SETUP_add_rec_to_site_setting($id_sect,"Максимальное число КТ, отправляемых за раз при асинхронной отправке",100,'LS_kt_push_async_size') ;
    SETUP_add_rec_to_site_setting($id_sect,"Логгировать обмен данными при push-уведомлениях",0,'LS_kt_push_log_req',array('el'=>'checkbox')) ;
    SETUP_add_rec_to_site_setting($id_sect,"Формат отправки данных",2,'LS_kt_push_format',array('el'=>'select','array'=>'ARR_mo_push_format')) ;
    SETUP_add_rec_to_site_setting($id_sect,"Отправлять нулевой допуск в случае запрета по алкоголю",0,'LS_kt_push_zero_dopusk',array('el'=>'checkbox','descr'=>'Заменяем значение "dopusk" на 0')) ;

    $id_sect=SETUP_add_section_to_site_setting('Интеграция / Загрузка данных в ЭСМО') ;
	SETUP_add_rec_to_site_setting($id_sect,"URL загрузки пакета из внешнего источника",'','LS_esmo_gateway_ext_source') ;
    SETUP_add_rec_to_site_setting($id_sect,"Менять местами месяц и день даты рождения при загрузке через XLS",0,'LS_esmo_gateway_xls_replace_m_and_d_br',array('el'=>'checkbox','descr'=>'Необходимо изменить настройку если при загрузке данных месяц и день перепутаны местами')) ;
    SETUP_add_rec_to_site_setting($id_sect,"Выполнять выбор организации перед загрузкой сотрудников из XLS",0,'LS_esmo_gateway_select_org',array('el'=>'checkbox')) ;
    SETUP_add_rec_to_site_setting($id_sect,"Удалять старые фото сотрудника при асинхронной загрузке фото сотрудников",0,'LS_esmo_gateway_delete_old_photo',array('el'=>'checkbox')) ;

	$id_sect=SETUP_add_section_to_site_setting('Интеграция / Безопасность') ;
    //SETUP_add_rec_to_site_setting($id_sect,"Формат пропуска при загрузке",'propusk','LS_gate_person_propusk_mode') ;
    SETUP_add_rec_to_site_setting($id_sect,"IP адреса, с которых разрешено обращаться к шлюзу",'127.0.0.1','LS_gate_extended_server_ip',array('descr'=>'Несколько IP адресов задаются через запятую')) ;

    $id_sect=SETUP_add_section_to_site_setting('ORACLE - Интеграция / Загрузка данных в ЭСМО') ;
    SETUP_add_rec_to_site_setting($id_sect,"Использовать подключение к ORACLE",0,'LS_esmo_gateway_ORACLE_enable',array('el'=>'checkbox')) ;
    SETUP_add_rec_to_site_setting($id_sect,"Логин для подключения к ORACLE",'','LS_esmo_gateway_ORACLE_login') ;
    SETUP_add_rec_to_site_setting($id_sect,"Пароль для подключения к ORACLE",'','LS_esmo_gateway_ORACLE_password',array('crypt'=>1)) ;
    SETUP_add_rec_to_site_setting($id_sect,"Подключение к ORACLE connection_string: DESCRIPTION ADDRESS_LIST ADDRESS PROTOCOL",'TCP','LS_esmo_gateway_ORACLE_ADDRESS_LIST_ADDRESS_PROTOCOL') ;
    SETUP_add_rec_to_site_setting($id_sect,"Подключение к ORACLE connection_string: DESCRIPTION ADDRESS_LIST ADDRESS HOST",'127.0.0.1','LS_esmo_gateway_ORACLE_ADDRESS_LIST_ADDRESS_HOST') ;
    SETUP_add_rec_to_site_setting($id_sect,"Подключение к ORACLE connection_string: DESCRIPTION ADDRESS_LIST ADDRESS PORT",'1521','LS_esmo_gateway_ORACLE_ADDRESS_LIST_ADDRESS_PORT') ;
    SETUP_add_rec_to_site_setting($id_sect,"Подключение к ORACLE connection_string: DESCRIPTION CONNECT_DATA SID",'XSM','LS_esmo_gateway_ORACLE_CONNECT_DATA_SID') ;
    SETUP_add_rec_to_site_setting($id_sect,"Подключение к ORACLE connection_string: DESCRIPTION CONNECT_DATA SERVER",'DEDICATED','LS_esmo_gateway_ORACLE_CONNECT_DATA_SERVER') ;
    SETUP_add_rec_to_site_setting($id_sect,"Подключение к ORACLE connection_string: DESCRIPTION CONNECT_DATA SERVICE_NAME",'','LS_esmo_gateway_ORACLE_CONNECT_DATA_SERVICE_NAME') ;

    SETUP_add_rec_to_site_setting($id_sect,"Подключение к ORACLE connection_string:",'','LS_esmo_gateway_ORACLE_connection_string',array('descr'=>'Строка вида "(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SID = XSM)(SERVER = DEDICATED)))". Если переменная задана, то она используется при подключении игнорируя все предыдущие настройки')) ;





   ENGINE()->reg_cron('Асинхронная отправка пакета с данными по пройденным МО','ESMO/cron_send_push_mo_result_async','*/1 * * * *') ;
   ENGINE()->reg_cron('Асинхронная отправка пакета с данными по пройденным КТ','KT/cron_send_push_kt_result_async','*/1 * * * *') ;
   ENGINE()->reg_cron('Асинхронная загрузка фото сотрудников','PERSONAL/upload_image_personal_async','*/1 * * * *',array('enabled'=>1)) ;
   ENGINE()->reg_cron('Загрузка данных из внешнего источника','PERSONAL/upload_personal_from_ext_data','0 1 * * *') ;

    //SETUP()->reg_report('МО - отчеты','score/report_itog_ff.php') ;         //
	// регистрируем отчеты по интеграции
 SETUP()->reg_report('Интеграция','esmo_gateway/report_get_persons.php') ;         //
 SETUP()->reg_report('Интеграция','esmo_gateway/report_get_mo.php') ;         //
 SETUP()->reg_report('Интеграция','esmo_gateway/report_get_mo_full.php') ;         //
 SETUP()->reg_report('Интеграция','esmo_gateway/report_get_mo_based.php') ;         //
 SETUP()->reg_report('Интеграция','esmo_gateway/report_get_last_mo_personal.php') ;         //
}

function _esmo_gateway_site_boot($options)
{


   ENGINE()->reg_ext('esmo_gateway','Шлюз интеграции') ;
}

function _esmo_gateway_main_menu($page)
{ $page->menu['/cab/esmo_gateway/upload/personals/gate/']['title']='Интеграция';
  $page->menu['/cab/esmo_gateway/upload/personals/gate/']['class']='fas fa-link';
  $page->menu['/cab/esmo_gateway/upload/personals/gate/']['items']['/cab/esmo_gateway/upload/personals/gate/']=array('title'=>'Загрузка в ЭСМО') ;
  $page->menu['/cab/esmo_gateway/upload/personals/gate/']['items']['/cab/esmo_gateway/get/persons/']=array('title'=>'Выгрузка из ЭСМО') ;
  $page->menu['/cab/esmo_gateway/upload/personals/gate/']['items']['/cab/esmo_gateway/push/mo/']=array('title'=>'Уведомление по результату МО') ;
  if (function_exists('KT')) $page->menu['/cab/esmo_gateway/upload/personals/gate/']['items']['/cab/esmo_gateway/push/kt/']=array('title'=>'Уведомление по результату КТ') ;
  $page->menu['/cab/esmo_gateway/upload/personals/gate/']['items']['/cab/esmo_gateway/settings/']=array('title'=>'Настройки интеграции') ;
}

class i_esmo_gateway
{
 var $tt=array() ;

 function __construct()
 {
 }

 function oracle_enable() {
     if ($GLOBALS['LS_esmo_gateway_ORACLE_enable']) include_once(_DIR_EXT.'/esmo_gateway/i_oracle_import.php') ;
 }

}

?>