<?php
include_once(_DIR_EXT.'/HTML/c_page_TXT.php') ;
class c_page_cab_mo_get extends c_page_txt
{ public $rec_personal  ;
  public $rec_mo  ;
  public $rec_client  ;

  function body()
  { if (isset($_GET['manual']))
      {   $this->show_manual() ;
          return ;

      }

    $result=array() ;  $org_parent_ids='' ;
    $time_mo=getdate(time()) ;
    $time_from=mktime($time_mo['hours']-8,$time_mo['minutes'],$time_mo['seconds'],$time_mo['mon'],$time_mo['mday'],$time_mo['year']);
    $result['time_now']=date('d.m.Y H:i:s') ;
    $result['time_from']=date('d.m.Y H:i:s',$time_from) ;
    $personal_UID=urldecode(_CUR_PAGE_NAME) ;
    $arr=explode('/',_CUR_PAGE_DIR) ;
    $org_uid=$arr[3] ;
    if ($org_uid) $this->rec_client=execSQL_van('select pkey,obj_name from obj_site_account where UID="'.addslashes($org_uid).'"') ;

    if ($this->rec_client['pkey'])
    {   $orgs_ids=execSQL_line('select pkey from obj_site_personals where clss=207 and client_id='.$this->rec_client['pkey']) ;
        $otdel_ids=execSQL_line('select pkey from obj_site_personals where clss=208 and parent in ('.implode(',',$orgs_ids).')') ;
        $org_parent_ids=implode(',',array_merge($orgs_ids,$otdel_ids)) ;
        //$result['org_parent_ids']=$org_parent_ids ;
        $this->rec_personal=PERSONAL()->get_personal(array('uid'=>$personal_UID),array('dop_usl'=>'enabled=1 and parent in ('.$org_parent_ids.')','debug'=>0)) ;
        if ($this->rec_personal['pkey'])
        {   $result['name']=$this->rec_personal['obj_name'] ;
            $result['dr']=$this->rec_personal['dr'] ;
            $result['org_name']=$this->rec_personal['_org_name'] ;
            $result['otdel_name']=$this->rec_personal['_otdel_name'] ;

            $this->rec_mo=ESMO()->check_active_dopusk($this->rec_personal['pkey'],array('_only_model'=>'all','time_from'=>$time_from,'debug'=>0)) ;

            //$result['debug']['personal']=$this->rec_personal ;
            //$result['debug']['time_from']=date('d.m.Y H:i',$time_from) ;
            //$result['debug2']=$text ;
            //damp_array($this->rec_mo) ;
            if ($this->rec_mo)
            {  $result['terminal_name']=$this->rec_mo['terminal_name'] ;
               $result['time_MO']=$this->rec_mo['_data'] ;
               $result['mo_id']=$this->rec_mo['pkey'] ;
               $result['question']=$this->rec_mo['_question'] ;
               $result['alko']=$this->rec_mo['_alko'] ;
               $result['systolic']=$this->rec_mo['_systolic'] ;
               $result['diastolic']=$this->rec_mo['_diastolic'] ;
               $result['pulse']=$this->rec_mo['_pulse'] ;
               $result['temperature']=$this->rec_mo['temperature'] ;
               $result['doctor_comment']=$this->rec_mo['doctor_comment'] ;
               $result['mo_result_id']=$this->rec_mo['status'] ;
               $result['mo_result_text']=$this->rec_mo['_status_name'] ;
               $result['mo_dopusk_id']=$this->rec_mo['dopusk'] ;
               $result['mo_dopusk_text']=$this->rec_mo['_dopusk_name_full'] ;
            }
            else
            { $result['error_code']='mo_not_found' ;
              $result['error_text']='сотрудник последние 8 часов МО не проходил или срок действия его допуска истек' ;
            }
        }
        else
        { $result['error_code']='person_undefined' ;
          $result['error_text']='неизвестный UID сотрудника' ;
        }

    }
    else
    { $result['error_code']='client_undefined' ;
      $result['error_text']='неизвестный UID клиента' ;
    }

    $text_json_out=json_encode($result) ;
    if (isset($_GET['check'])) damp_array($result,1,-1) ; else echo $text_json_out ;
    LOGS()->reg_log('GET',$_SERVER['REQUEST_URI'],array('data'=>$result,'reffers'=>array($this->rec_client['_reffer'],$this->rec_personal['_reffer']))) ;
  }

  function show_manual()
  { ?><link rel="stylesheet" type="text/css" href="/images/open-sans/opensans_regular_cyrillic/stylesheet.css" charset="utf-8">
  	  <link rel="stylesheet" type="text/css" href="/images/open-sans/opensans_bold_cyrillic/stylesheet.css" charset="utf-8">
  	  <link rel="stylesheet" type="text/css" href="/class/style.css" charset="utf-8">
      <body style="padding:20px;">
        <h1>Интерфейс для получения информации по МО сотрудника</h1>
        <h2>Параметры запроса</h2>
        <p>Запрос производится обращением на URL, который включает в себя параметры запроса:</p>
        <p><strong><?echo _MAIN_PROTOCOL._MAIN_DOMAIN?>/get/mo/UID_CLIENT/UID_PERSON</strong></p>
        <ul>
          <li>UID_CLIENT - UID клиента системы, назначенный вам при регистрации в системе</li>
          <li>UID_PERSON - UID сотрудника</li>
        </ul>
        <p>Пример URL: <strong><?echo _MAIN_PROTOCOL._MAIN_DOMAIN?>/get/mo/6831923912739183/39352287-8e40-e311-a462-001e671f718d22</strong>, в данном запросе:</p>
        <ul>
                  <li>6831923912739183 - UID клиента системы</li>
                  <li>39352287-8e40-e311-a462-001e671f718d22 - UID сотрудника</li>
        </ul>
        <p>Параметры, которые можно передать в строке запроса:</p>
                <ul>
                          <li>check - вывод результата в виде таблицы</li>
                          <li>manual - данное руководство</li>
                </ul>
        <p>Примеры URL с параметрами</p>
                <ul>
                          <li><?echo _MAIN_PROTOCOL._MAIN_DOMAIN?>/get/mo/6831923912739183/97591a93-9598-e311-a462-001e671f718d?check</li>
                          <li><?echo _MAIN_PROTOCOL._MAIN_DOMAIN?>/get/mo/?manual</li>
                </ul>
        <h2>Формат ответа</h2>
        <p>Ответ системы происходит в формате JSON, поля ответа:</p>
        <ul>
                  <li><strong>time_now</strong> - текущее время сервера</li>
                  <li><strong>time_from</strong> - время, от которого происходил поиск МО</li>
                  <li><strong>name</strong> -  ФИО сотрудника</li>
                  <li><strong>dr</strong> -  дата рождения сотрудника</li>
                  <li><strong>org_name</strong> -  организация сотрудника</li>
                  <li><strong>otdel_name</strong> -  подразделение сотрудника</li>
                  <li><strong>terminal_name</strong> -  терминал, на котором сотрудник проходил МО</li>
                  <li><strong>time_MO</strong> -  дата прохождения МО</li>
                  <li><strong>mo_id</strong> - id сессии МО</li>
                  <li><strong>mo_result_id</strong> - id результата МО на терминале (1: осмотр окончен, успешно, 2: осмотр окончен, ошибка, 3: осмотр не проводился)</li>
                  <li><strong>mo_result_text</strong> - текстовое описание результата МО</li>
                  <li><strong>mo_dopusk_id</strong> - id допуска(1: допуск получен, 2: допуск запрещен)</li>
                  <li><strong>mo_dopusk_text</strong> - текстовое описание допуска</li>
        </ul>
        <p><strong>Пример ответа системы в формате JSON</strong></p>
        <p>{"time_now":"22.10.2015 14:41:14","time_from":"22.10.2015 06:41:14","name":"\u0410\u0437\u0430\u0440\u043e\u0432 \u041f\u0430\u0432\u0435\u043b \u0413\u0435\u043d\u043d\u0430\u0434\u044c\u0435\u0432\u0438\u0447","dr":"03.01.1992","org_name":"\u041e\u041e\u041e \u00ab\u0422\u0440\u0430\u043d\u0441\u043a\u043e\u043c\u00bb ","otdel_name":"\u0411\u0443\u043a\u0435\u0442 \u0442\u0430\u043a\u0441\u0438","terminal_name":"\u0410\u043b\u0435\u043a\u0441\u0435\u0435\u0432\u0441\u043a\u0430\u044f \u041c\u0422-6","time_MO":"22.10.2015 12:42","mo_id":"175477","mo_result_id":"2","mo_result_text":"\u041e\u0441\u043c\u043e\u0442\u0440 \u043e\u043a\u043e\u043d\u0447\u0435\u043d, \u0443\u0441\u043f\u0435\u0448\u043d\u043e","mo_dopusk_id":"1","mo_dopusk_text":"\u0414\u043e\u043f\u0443\u0441\u043a \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d"}</p>
        <p><strong>Пример ответа системы в тестовом режиме (при передаче параметра check)</strong></p>
        <style>
         table.debug {table-layout:fixed;border-collapse:collapse;empty-cells:show;margin:10px 0;background:white;}
         table.debug td{border:1px solid gray;padding:5px;}
         table.debug td strong{color:black;}
       </style>              <table class="left debug damp_array"><tr><td>time_now</td><td>22.10.2015 14:41:30</td></tr><tr><td>time_from</td><td>22.10.2015 06:41:30</td></tr><tr><td>name</td><td>Азаров Павел Геннадьевич</td></tr><tr><td>dr</td><td>03.01.1992</td></tr><tr><td>org_name</td><td>ООО «Транском»</div></td></tr><tr><td>otdel_name</td><td>Букет такси</td></tr><tr><td>terminal_name</td><td>Алексеевская МТ-6</td></tr><tr><td>time_MO</td><td>22.10.2015 12:42</td></tr><tr><td>mo_id</td><td>175477</td></tr><tr><td>mo_result_id</td><td>2</td></tr><tr><td>mo_result_text</td><td>Осмотр окончен, успешно</td></tr><tr><td>mo_dopusk_id</td><td>1</td></tr><tr><td>mo_dopusk_text</td><td>Допуск разрешен</td></tr></table>
        <h2>Сообщения о ошибках</h2>
        <p>В случае ошибочного ввода параметров запроса или отсутствия данных по МО, системой будет возвращен код ошибки и его текстовое описание:</p>
        <ul>
                          <li><strong>error_code</strong> - код ошибки</li>
                          <li><strong>error_text</strong> - описание ошибки</li>
        </ul>
        <p><strong>Воможные коды ошибок и их описания</strong></p>
        <ul>
                          <li><strong>client_undefined</strong> - неверный UID клиента для доступа к системе</li>
                          <li><strong>person_undefined</strong> - неверный UID сотрудника</li>
                          <li><strong>mo_not_found</strong> - Сотрудник последние 8 часов МО не проходил</li>
                </ul>
      </body>

    <?
  }




}



?>