<?
function EVENT_OPO(){ if (!is_object($GLOBALS['EVENT_OPO'])) $GLOBALS['EVENT_OPO']=new i_event_opo();return($GLOBALS['EVENT_OPO']);}
class i_event_opo
{
   var $name='Обязательное пcихиатрическое освидетельствование (ОПО)' ; // переодичность инструктажа
   var $url_page_event_create='/cab/events_opo/' ;
   var $url_page_event_card='/window/events_opo/card/' ;
   var $default_settings=array('mode'=>6, // постоянное
                               'type'=>1, // ОПО - потом удалить
                               'sanction'=>array('block_mo'=>1),
                               'period_to_status_3'=>7,
                               'period_to_status_5'=>7,
                               'period_to_status_7'=>7,
                               'message1'=>'Вам необходимо получить документы по прохождению ОПО',
                               'message2'=>'Вам необходимо сдать документы по прохождению ОПО'
                               ) ;


    function __construct($options=[])
    {  $this->arr_status=OPO()->arr_status ;
       $this->arr_status_color=OPO()->arr_status_color ;

    }

	function get_url_event_card($id)
   {
     return('/window/events_opo/card/'.$id.'/') ;
   }

   function update_personal_status_1($event_id,$options=array())
   {  FILE_LOG()->append('update_personal_status_1') ;
      ob_start() ; $alerts=array() ;
      $GLOBALS['stack_sql_stats']=1 ; $GLOBALS['sql_stats']=array() ;

      $rec_event=EVENTS()->get_event_by_id($event_id) ;
      echo '<h3>Мероприятие "'.$rec_event['obj_name'].'", ID '.$rec_event['pkey'].'</h3><br>' ;

      ?><h3>Обновление списка учасников мероприятия</h3><?
      $result=EVENTS()->update_event_personals($event_id,array('remove_outer'=>1)) ;
      //damp_array($result,1,-1) ;


      // отправлемя на ОПО повторно тех, кто пошел на второй груг
      ?><h3>Отправка на второй круг сотрудников с истечением срока действия ОПО</h3><?
      $now=getdate() ;
      if($rec_event['_ext_info']['pmo_before'])
      {   $from=mktime($now['hours'],$now['minutes'],$now['seconds'],$now['mon'],$now['mday']+$rec_event['_ext_info']['pmo_before'],$now['year']);
          echo 'Ищем сотрудников, у которых срок действия ОПО заканчивается до '.date('d.m.Y H:i:s',$from).' ('.date('d.m.Y').' + '.$rec_event['_ext_info']['pmo_before'].' дн.) <br>' ;
          $ids=execSQL_row('select personal_id,status from obj_site_events_pass where data_to<='.$from.' and status in (8,9) and event_id='.$event_id) ;
          if (_sizeof($ids))
          {  foreach($ids as $personal_id=>$status)
             { $old_status_name=$this->arr_status[$status] ;
               $new_status_name=1 ;
               echo 'Сотрудник <strong><a href="/window/personal/person/'.$personal_id.'/" class="new_window">'.$personal_id.'</a></strong>, статус <strong>'.$old_status_name.'</strong> - необходимо перевести в статус <strong>'.$new_status_name.'</strong><br>' ;
               EVENTS()->set_event_personal_data($event_id,$personal_id,array('status'=>1,
                                                                              'fname'=>'',
                                                                              'time_print'=>0,
                                                                              'mess_id'=>0,
                                                                              'result'=>0,
                                                                              'doc_id'=>0,
                                                                              'group_id'=>0,
                                                                              'close_data'=>0,
                                                                              'scan_id'=>0,
                                                                              'block_data'=>0
                   ),'Подлежит повторному прохождению по истечению срока действия') ;
      }

              //FILE_LOG()->append('Подлежат повторному прохождению мероприятия: '._sizeof($ids).' сотрудников') ;
              //$result=EVENTS()->add_personals_to_event($event_id,$ids,array('pass_repeat'=>1)) ;
          }
          else echo '<div class="green">Сотрудников не найдено</div>' ;
      }


       // если в мероприятии автоперевод в "направлен на инструктаж" - направляем
       if ($rec_event['_ext_info']['auto_status_2']==2)
       {   ?><h3>В мероприятии установлен режим автоматического направления</h3><?
           $this->set_personal_to_status_2($event_id) ;
       }

       //$this->check_pmo_len_for_status_7_8($rec_event) ;
       $this->check_status_7($rec_event) ;
       $this->check_status_8($rec_event) ;

       if (_sizeof($alerts)) echo implode('<br>',$alerts) ;

       $text=ob_get_clean() ;
       echo $text ;

       LOGS()->reg_log('update_personal_status_1','',array('data'=>$result,'save_to_file'=>$text,'reffer'=>$rec_event['_reffer'])) ;

       FILE_LOG()->append('END');

      return($result) ;
   }

  function set_personal_to_status_3($event_id,$personal_id,$options=array())
 {   $data=array() ;
     $data['status']=($options['status'])? $options['status']:3 ;
     $options2=array('old_status'=>$options['old_status']) ;
     EVENTS()->set_event_personal_data($event_id,$personal_id,$data,'Документы готовы к выдаче',$options2) ;
 }

  function set_personal_to_status_6($event_id,$personal_id,$options=array())
       {   $data=array() ;
          $data['status']=($options['status'])? $options['status']:6 ;
          //$data['mess_id']=$mess_id ;
          $options2=array('old_status'=>$options['old_status']) ;
          EVENTS()->set_event_personal_data($event_id,$personal_id,$data,'Выдан пакет документов для прохождения ПМО',$options2) ;

       }

   function check_status_7($rec_event)
   {
     // проверяем сотрудников, у которых срок действия ОПО вышел - переводим их в блокировку, статус 7
      ?><h3>Проверка на сотрудников, у которых имеется актуальный срок действия ОПО, и этот срок вышел</h3><?
      $recs=execSQL('select t1.* 
                     from obj_site_events_pass t1
                     where t1.event_id='.$rec_event['pkey'].' and t1.status!=7 and t1.enabled=1 and t1.data_to>0 and t1.data_to<'.time().' 
                     order by t1.pkey desc
                    ') ;
      FILE_LOG()->append('Переводим в статус "Заблокирован по непрохождению ОПО" '._sizeof($recs).' сотрудников') ;

      if (_sizeof($recs)) foreach($recs as $rec_pass)
      { echo 'Сотрудник ID'.$rec_pass['personal_id'].' - будет переведен в статус 7 (заблокирован по непрохождению ОПО) с '.date('d.m.Y',$rec_pass['data_to']).'<br>' ;
        $this->set_personal_to_status_7($rec_pass,['time'=>$rec_pass['data_to']]);
      }
      else echo '<div class="green">Сотрудников не найдено</div>' ;

   }

   function check_status_8($rec_event)
   {
     // проверяем сотрудников, у которых еще актуальный срок действия ОПО, но их статус не 8
      ?><h3>Проверка на сотрудников, у которых имеется актуальный срок действия ОПО, и их статус не 8</h3><?
      $now=getdate() ;
      if($rec_event['_ext_info']['pmo_before'])
      {   $from=mktime($now['hours'],$now['minutes'],$now['seconds'],$now['mon'],$now['mday']+$rec_event['_ext_info']['pmo_before'],$now['year']);
          //echo 'Ищем сотрудников, у которых срок действия ОПО заканчивается до '.date('d.m.Y H:i:s',$from).' ('.date('d.m.Y').' + '.$rec_event['_ext_info']['pmo_before'].' дн.) <br>' ;
          $arr=execSQL_row('select personal_id,status from obj_site_events_pass where enabled=1 and data_to>'.$from.' and status not in (8,9) and event_id='.$rec_event['pkey']) ;
          if (_sizeof($arr))
          {   FILE_LOG()->append('Восстанавливаем статус ОПО пройден: '._sizeof($arr).' сотрудников') ;
              foreach($arr as $personal_id=>$old_status)
              { $old_status_name=$this->arr_status[$old_status] ;
                $new_status_name=$this->arr_status[8] ;

                echo 'Сотрудник <strong><a href="/window/personal/person/'.$personal_id.'/" class="new_window">'.$personal_id.'</a></strong>, статус <strong>'.$old_status_name.'</strong> - необходимо перевести в статус <strong>'.$new_status_name.'</strong><br>' ;
                EVENTS()->set_event_personal_data($rec_event['pkey'],$personal_id,array('status'=>8),'Восстановлен статус "ОПО пройден"',array()) ;
                // если у сотрудника остались незакрытые сообщения - они будут закрыты позднее
              }
          }
          else echo '<div class="green">Сотрудников не найдено</div>' ;
      }
   }

    // меняем статус из "подлежит ОПО" на "направлен на ОПО"
    //  если стоит опция "пропуск подготовкм докуметов" необходимо перевести в статус "документы подготовлены" и отправить сообщение о необхожимости получить документы на ОПО
    function set_personal_to_status_2($event_id,$personal_ids='')
      {  //$rec_event=EVENTS()->get_event_by_id($event_id) ;

         $_usl=array() ;
         $_usl[]='event_id='.$event_id ;
         $_usl[]='status=1' ;
         if ($personal_ids)  $_usl[]='personal_id in ('.$personal_ids.')' ;
         $usl=implode(' and ',$_usl) ;
        $arr_ids=[] ;
         $recs=execSQL('select * from obj_site_events_pass where '.$usl) ;
         if (_sizeof($recs))
         { foreach($recs as $rec_event_pass)
         {   // если нет этапа подготовки документа - отправляем уведомление о необходимости получить документы
                 $this->show_info_text($rec_event_pass,'будет перемещен в статус "<strong>'.$this->arr_status[2].'</strong>"') ;
                 // иначе просто переводим сотрудника в статус "направлен на ОПО" - оператор сможет начать  подготовки документов
                 EVENTS()->set_event_personal_data($event_id,$rec_event_pass['personal_id'],array('status'=>2),'Начато прохождение ОПО') ;
                 $arr_ids[]=$rec_event_pass['personal_id'] ;
         }


           $personal_ids=implode(',',$arr_ids) ; // в значениях массива - personal_id
           //echo '<strong>Производим отправку пакетов документов к ОПО в адрес АТП</strong><br>' ;
        $setting=array('event_id'=>$event_id,
                       'str_personal_ids'=>$personal_ids,
                       ) ;

           include_once('c_services_events_opo_send_pmo_dock_pack.php') ;
           $service=new c_services_events_opo_send_pmo_dock_pack($setting) ;
           $service->exec() ;

         }




      }

    function show_info_text($rec_pass,$text,$options=[])
    {
      $old_status_name=$this->arr_status[$rec_pass['status']] ;
      echo 'Сотрудник <strong><a href="/window/personal/person/'.$rec_pass['personal_id'].'/" class="new_window">'.$rec_pass['personal_id'].'</a></strong>, статус <strong>'.$old_status_name.'</strong> - '.$text.'<br>' ;
      }

  function set_personal_to_status_7($rec_pass,$options=array())
	{
		$event_id=$rec_pass['event_id'];
         $personal_id=$rec_pass['personal_id'] ;

          $data=array() ;
		$data['status']=($options['status'])?:7;
          $options2=array('old_status'=>$options['old_status']) ;
        EVENTS()->set_event_personal_data($event_id,$personal_id,$data,'Прохождение МО заблокировано в связи непрохождением ОПО',$options2) ;
       }

   // форма после распорзнования заключения
   function on_scan_doc_OCR($rec_doc,$params=array())
   {
       ?><div id="panel_set_diagnoz"><div id="panel_filter">
       <h2>Решение </h2>
                   <form id="sky-form" class="sky-form">
                        <fieldset>
                            <div>
                                <section class="col col-5">
                                    <label class="label">К выполенению служебных обязанностей:</label>
                                    <label class="radio"><input type="radio" name="pmo_result" value="1" ><i></i> Годен</label>
                                    <label class="radio"><input type="radio" name="pmo_result" value="3" ><i></i> Не годен</label>
                                </section>
                                <section class="col col-4">
                                    <label class="label">Дата заключения:</label>
                                    <label class="input"><input type="text" name="data_doc" class=datepicker data-required placeholder="" value=""></label>
                                </section>
                            </div>
                            <div class="clear">
                                <section>
                                    <label class="label">Ваш комментарий к документу:</label>
                                    <label class="textarea" style="width:100%;"><textarea name="comment"></textarea></label>
                                </section>
                         </div>
                        </fieldset>
                    <div id="panel_buttons">
                           <button class="button v2" cmd="esmo_magnit/ScanCaptureApply" personal_id=<?echo $params['personal_id']?> scan_id="<?echo $params['scan_id']?>">Принять документ</button>&nbsp;&nbsp;<??>
                           <button class="button v2" cmd="esmo_magnit/ScanCaptureCancel" scan_id="<?echo $params['scan_id']?>">Отклонить документ</button>&nbsp;&nbsp;
                           <button class="button v2" cmd="esmo_magnit/ScanPersonClear"  scan_id="<?echo $params['scan_id']?>">Сбросить сотрудника</button>&nbsp;&nbsp;
                       </div>
                    </form>
            </div>
       </div>
     <?
   }

   // дейсвия после принятия заключения
   function on_scan_doc_apply($rec_doc,$params=array())
   { // пока не проверяем   $rec_doc['source_tkey']
     $rec_event_personal=array() ;
     if (!$params['pmo_result']) return(array('modal_window'=>'Прием решения','text'=>'<div class="alert">Укажите результат решения</div><br><p class="center"><button class="cancel">Закрыть</button></p>')) ;
     if (!$params['data_doc']) return(array('modal_window'=>'Прием решения','text'=>'<div class="alert">Укажите дату решения</div><br><p class="center"><button class="cancel">Закрыть</button></p>')) ;
     if ($rec_doc['source_pkey'])$rec_event_personal=execSQL_van('select * from view_event_personals where event_pass_id='.$rec_doc['source_pkey']) ;
     // если участие в мероприятии, на основании которого был создан документ уже удалено и возможно, созданого новое, ищем сотрудника по event_id и personal_id
     if (!$rec_event_personal['pkey'])
     { // использован документ без привязки к мероприятию, но указано что это документ - заключение ОПО, поэтому
       // и попали сюда
       // есть только personal_id
       $rec_event_personal=execSQL_van('select * from view_event_personals where personal_id='.$params['personal_id'].' and event_id='.$GLOBALS['LS_esmo_OPO_event']) ;

     }
     //  damp_array($rec_doc) ;
         // обновляем данные в скане
     $diagnoz=($params['pmo_result']==1)? 'Годен':'Не годен' ;
     $data_doc=($params['data_doc'])? strtotime($params['data_doc']):0 ;
     $data_set=($params['data_set'])? $params['data_set']:time() ;
     $account_work=($params['account_work'])? $params['account_work']:MEMBER()->id ;

     $data=array('account_work'=>$account_work,
                 'data_set'=>$data_set,
                 'status'=>3,
                 'diagnoz'=>$diagnoz,
                 'comment'=>$params['comment'],
                 'data_doc'=>$data_doc
     ) ;
     if ($rec_event_personal['event_id'])
     { $data['event_id']=$rec_event_personal['event_id'] ;
       $data['event_pass_id']=$rec_event_personal['event_pass_id'] ;
     }
     if ($params['scan_id']) DOCS()->scan_update($params['scan_id'],$data) ;


         // обновляем данные в участнике мероприятия
     // изменяем статус на 8  - ОПО пройден, годен или на 9 - ОПО пройден, не годен
     $status=($params['pmo_result']==1)? 8:9 ;
     if ($rec_event_personal['event_id'])
     {   $rec_event=EVENTS()->get_event_by_id($rec_event_personal['event_id']) ;
         $from=($data_doc)? $data_doc:time() ;
         $now=getdate($from) ;
         $pmo_len=$rec_event['_ext_info']['pmo_len'] ; // срок в месяцах
         if ($pmo_len>0) $to=mktime(23,59,59,$now['mon']+$pmo_len,$now['mday'],$now['year']);
         else $to=mktime($now['hours'],$now['minutes']+10,$now['seconds'],$now['mon'],$now['mday'],$now['year']);// раз в 10 минут

         if ($params['scan_id']) $doc_id=execSQL_value('select doc_id from obj_site_scan where pkey='.$params['scan_id']) ; else $doc_id=0 ;
         if ($doc_id<=0) $doc_id=0 ;
         $data_event_pass=array() ;
         $data_event_pass['c_data']=$data_set ;
         $data_event_pass['status']=$status ;
         $data_event_pass['data_from']=$from ;
         $data_event_pass['data_to']=$to ;
         $data_event_pass['scan_id']=($params['scan_id'])? $params['scan_id']:0 ;
         $data_event_pass['doc_id']=$doc_id ;
         EVENTS()->set_event_personal_data($rec_event_personal['event_id'],$rec_event_personal['personal_id'],$data_event_pass,'Прием скана заключения') ;

     }


     $result=array('current_window'=>'close','opener_window'=>'reload') ;
     return($result) ;
   }


    function get_status_by_ids($ids,$options=array())
    { if (is_int($ids)) $ids=array($ids) ;
      if ($options['ids_in_keys']) $ids=array_keys($ids) ;
      $arr=array() ;
      if (_sizeof($ids)) foreach($ids as $id) $arr[]=$this->arr_status[$id] ;
      return(implode(',',$arr)) ;

    }


  function check_pmo_len_for_status_7_8($rec_event,$options=[])
    {
        // получаем ID сотрудников у которых статус ОПО пройден
        $_usl=[] ;
        $_usl[]='event_id='.$rec_event['pkey'] ;
        $_usl[]='status in (8,9)' ;
        $_usl[]='enabled=1' ;
        if ($options['personal_id']) $_usl[]='personal_id='.$options['personal_id'] ;
        $usl=implode(' and ',$_usl) ;
        $recs_pass=execSQL('select pkey,personal_id,status,data_from,data_to from obj_site_events_pass where '.$usl) ;
        echo 'Проверка срока действия ОПО для '._sizeof($recs_pass).' сотрудников<br>' ;
        // получаем медгруппу и ИНРМ этих сотрудников
        if (_sizeof($recs_pass)) foreach($recs_pass as $rec_pass)
        {
          $pmo_ot_info=OPO()->get_opo_len_info_to_person($rec_event,$rec_pass['personal_id']) ;
          $pmo_len=$pmo_ot_info['id'] ;
          $now=getdate($rec_pass['data_from']) ;
          $to=mktime(23,59,59,$now['mon']+$pmo_len,$now['mday'],$now['year']);
          if ($to>$rec_pass['data_to'])
          {
              echo 'Сотрудник ID '.$recs_pass['personal_id'].' Срок действия ОПО продлен до '.date('d.m.Y',$to).'<br>' ;
              update_rec_in_table('obj_site_events_pass',['data_to'=>$to,'period'=>$pmo_len],'pkey='.$rec_pass['pkey']) ;
  		}
          if ($to<$rec_pass['data_to'])
          {
              echo 'Сотрудник ID '.$recs_pass['personal_id'].' Срок действия ОПО уменьшен до '.date('d.m.Y',$to).'<br>' ;
              update_rec_in_table('obj_site_events_pass',['data_to'=>$to,'period'=>$pmo_len],'pkey='.$rec_pass['pkey']) ;
            // отправлемя на ОПО повторно тех, кто пошел на второй груг
              $from=mktime($now['hours'],$now['minutes'],$now['seconds'],$now['mon'],$now['mday']+$rec_event['_ext_info']['pmo_before'],$now['year']);
              if ($to<$from) EVENTS()->add_personals_to_event($rec_event['pkey'],$rec_pass['personal_id'],array('pass_repeat'=>1)) ;
  		}
          //damp_array($pmo_ot_info);
  	  }


    }

  // вызывается из EVENTS()->on_event_get_active_mess_to_personal по обраюботчику события get_active_mess_to_personal
   function prepare_message_to_personal($rec_pass)
      {  /*?><h2>i_event_pmo->prepare_message_to_personal</h2><?*/
          //damp_array($pass);
        //$rec_event=EVENTS()->get_event_by_id($rec_pass['event_id']) ;
          $mess=[] ;
        $def_mess=[      'pkey'=>0,
                         'tkey'=>0,
                         'clss'=>217,
                         'enabled'=>1,
                         'obj_name'=>'',
                         'parent'=>1,
                         'c_data'=>time(),
                         'r_data'=>time(),
                         'account_id'=>0,
                         'pass_id'=>$rec_pass['pkey'],
                         'personal_id'=>$rec_pass['personal_id'],
                         'status'=>1,
                         'view_mode'=>1,
                         'block_mo'=>1,
                         'close_data'=>0,
                         'source_pkey'=>$rec_pass['pkey'],
                         'source_tkey'=>$rec_pass['tkey'],
                         'source_obj'=>'events_opo/i_event_opo',
                         'block_from'=>0,
                         'block_to'=>0,
                         'auto_close'=>0,
                         'view_from'=>0,
                         'view_to'=>0,
                         'max_day'=>0,
                         '_personal_name'=>'',
                         '_personal_dr'=>'',
                         '_otdel_id'=>'',
                         '_otdel_name'=>'',
                         '_org_id'=>'',
                         '_org_name'=>'',
                         '_image_name'=>'',
                         'personal_parent1'=>'',
                         'personal_parent2'=>'',
                         'personal_parent3'=>'',
                         'personal_parent4'=>'',
                         'personal_parent5'=>'',
                         'dr'=>'',
                         'propusk'=>'',
                         'account_name'=>'',
                         '__href_window'=>'',
                         'mess_event_id'=>$rec_pass['event_id'],
                         'mess_event_name'=>''
                 ] ;
          ///$rec_pass_status=execSQL('select * from obj_site_events_pass_status where event_id='.$rec_pass['event_id'].' and personal_id='.$rec_pass['personal_id'].' and status_new='.$rec_pass['status'],2) ;

          // запись в истории по последнему статусу, кроме заблокированных (5 и 7 статус)
          $recs_pass_status=execSQL_van('select t1.personal_id,t1.c_data,t1.status_new from obj_site_events_pass_status t1
                                         right join
                                         (select t1.personal_id,max(pkey) as last_id
                                         from obj_site_events_pass_status t1
                                         where t1.event_id='.$rec_pass['event_id'].' and t1.enabled=1 and t1.personal_id='.$rec_pass['personal_id'].' and t1.status_new in (1,2,3,22,8,9)
                                         group by t1.personal_id) t2 on t1.pkey=t2.last_id
                                       ',0,1) ;

          // запись в истории по последнему статусу, кроме заблокированных (5 и 7 статус)
          $recs_pass_status=execSQL_van('select t1.personal_id,t1.c_data,t1.status_new from obj_site_events_pass_status t1
                                         right join
                                         (select t1.personal_id,max(pkey) as last_id
                                         from obj_site_events_pass_status t1
                                         where t1.event_id='.$rec_pass['event_id'].' and t1.enabled=1 and t1.personal_id='.$rec_pass['personal_id'].' and t1.status_new in (1,2,3,22,8,9)
                                         group by t1.personal_id) t2 on t1.pkey=t2.last_id
                                       ',0,1) ;

          switch($rec_pass['status'])
          {   // Не направлено на ПМО
              case 1: $mess=[] ;
                      break ;
              // направлен на ПМО - у магнита одно сообщения на все статусы!
            case 2:
            case 22:
              case 3:
              case 4:
              case 5:
              case 6: $rec_event=EVENTS()->get_event_by_id($rec_pass['event_id']) ;
                      $now=getdate($recs_pass_status['c_data']) ;
                      $block_from=mktime(23,59,59,$now['mon'],$now['mday']+$rec_event['_ext_info']['pmo_before'],$now['year']);
                      // если срок действия старого ПМО заканчивается раньше чем $block_from - уменьшаем $block_from до этой даты +1 cек
                      if ($rec_pass['data_to']>0 and $block_from>$rec_pass['data_to']) $block_from=$rec_pass['data_to']+1 ;
                      // если значение data_to пустое - вписываем в поле data_to значение $block_from-1 - нужно для перевода в статус "просрочено ПМО"
                      if (!$rec_pass['data_to']) execSQL_update('update obj_site_events_pass set data_to='.($block_from-1).' where pkey='.$rec_pass['pkey']) ;

                      $mess=['obj_name'=>$rec_event['_ext_info']['message1'].', срок до '.date('d.m.Y',$block_from),
                             'c_data'=>$recs_pass_status['c_data'],
                             'r_data'=>$recs_pass_status['c_data'],
                             'block_from'=>$block_from,
                             'view_from'=>$recs_pass_status['c_data'],
                             'status'=>1
                             ] ;
                      break ;
            /*case 4:
            case 5:
              case 6: $rec_event=EVENTS()->get_event_by_id($rec_pass['event_id']) ;

                      $now=getdate($recs_pass_status['c_data']) ;
                      //$block_from=mktime(23,59,59,$now['mon'],$now['mday']+$rec_event['_ext_info']['pmo_before'],$now['year']);
                      $block_from=mktime(23,59,59,$now['mon'],$now['mday']+$rec_event['_ext_info']['period_to_status_7'],$now['year']);
                      $view_from=mktime(23,59,59,$now['mon'],$now['mday']+$rec_event['_ext_info']['period_to_status_7']-$rec_event['_ext_info']['period_to_status_3'],$now['year']);

                      // если срок действия старого ПМО заканчивается раньше чем $block_from - уменьшаем $block_from до этой даты +1 cек
                      if ($rec_pass['data_to']>0 and $block_from>$rec_pass['data_to']) $block_from=$rec_pass['data_to']+1 ;
                      // если значение data_to пустое - вписываем в поле data_to значение $block_from-1 - нужно для перевода в статус "просрочено ПМО"
                      if (!$rec_pass['data_to']) execSQL_update('update obj_site_events_pass set data_to='.($block_from-1).' where pkey='.$rec_pass['pkey']) ;

                      $mess=['obj_name'=>$rec_event['_ext_info']['message2'].', срок до '.date('d.m.Y',$block_from),
                             'c_data'=>$recs_pass_status['c_data'],
                             'r_data'=>$recs_pass_status['c_data'],
                             'view_from'=>$view_from,
                             'status'=>1
                             ] ;
                      if ($rec_event['_ext_info']['block_mo']) $mess['block_from']=$block_from ;// срок - 10 дней от даты получения направления

                      break ;
                      */
              // Прохождение ПМО заблокировано
              case 7: $mess=['obj_name'=>'Прохождение МО заблокировано в связи с непрохождением ОПО',
                             'c_data'=>$recs_pass_status['c_data'],
                             'r_data'=>$recs_pass_status['c_data'],
                             'block_from'=>$recs_pass_status['c_data'],
                             'view_from'=>$recs_pass_status['c_data'],
                             'status'=>3
                            ] ;
                            break ;
              case 8: $mess=[] ;
                      break ;
              case 9: $mess=['obj_name'=>'Прохождение МО заблокировано в связи с отрицательным результатом ОПО',
                             'c_data'=>$recs_pass_status['c_data'],
                             'r_data'=>$recs_pass_status['c_data'],
                             'block_from'=>$recs_pass_status['c_data'],
                             'view_from'=>$recs_pass_status['c_data'],
                             'status'=>3
                            ] ;
                      break ;
 		 }

          // дописываем в сообщение стандартные поля
 		 if (sizeof($mess)) foreach($mess as $fname=>$value) $def_mess[$fname]=$value ;
 		 else $def_mess=[] ;
 		 return($def_mess);
  	}





}

?>
