<?
function EVENT_PMO(){ if (!is_object($GLOBALS['EVENT_PMO'])) $GLOBALS['EVENT_PMO']=new i_event_pmo();return($GLOBALS['EVENT_PMO']);}
class i_event_pmo
{
   var $name='Периодический медицинский осмотр' ; // переодичность инструктажа
   var $ext='esmo_magnit_pmo/i_event_pmo' ;
   var $url_page_event_create='/cab/esmo_magnit_pmo/' ;
   var $url_page_event_card='/window/esmo_magnit_pmo/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'=>'Вам необходимо сдать документы по прохождению ПМО'
                               ) ;

   var $arr_status=array(0=>'',
                         1=>'Подлежит ПМО',
                                     2=>'Направлен на ПМО',
                                     22=>'Идет подготовка документов',
                                     3=>'Документы подготовлены',
                                     4=>'Уведомлен',
                                     5=>'Заблокирован по уведомлению',
                                     6=>'Документы получены',
                                     7=>'Заблокирован по прохождению ПМО',
                         8=>'ПМО пройден, годен',
                         9=>'ПМО пройден, негоден'
                      ) ;

   var $arr_status_color=array(0=>'',
                                 1=>'gray',
                                 2=>'gray',
                                 22=>'gray',
                                 3=>'gray',
                                 4=>'gray',
                                 5=>'gray',
                                 6=>'gray',
                                 7=>'red',//'Заблокирован по прохождению ПМО' + //5=>'Заблокирован по уведомлению',
                                 8=>'green',
                                 9=>'red'
                      ) ;

    var $arr_pmo_len=array(12=>'раз в год',
                           24=>'раз в два года',
                           6=>'раз в полгода',
                           -1=>'10  минут (тест)') ;

   function get_url_event_card($id)
   {
     return('/window/esmo_magnit_pmo/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_Line('select personal_id from obj_site_events_pass where data_to<='.$from.' and status in (8,9) and event_id='.$event_id) ;
          if (_sizeof($ids))
          {   FILE_LOG()->append('Подлежат повторному прохождению мероприятия: '._sizeof($ids).' сотрудников') ;
              $result=EVENTS()->add_personals_to_event($event_id,$ids,array('pass_repeat'=>1)) ;
          }
          echo '<h2>Сотрудники на второй круг</h2>' ;
          damp_array($result,1,-1) ;
      }

     // проверяем сотрудников, у которых срок действия ПМО вышел - переводим их в блокировку, статус 7
     if ($rec_event['_ext_info']['block_pmo_end']==2)
     { $recs=execSQL('select t1.* 
                    from obj_site_events_pass t1
                    where t1.event_id='.$event_id.' 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)
     { echo 'Сотрудник ID'.$rec['personal_id'].' - будет переведен в статус 7 (заблокирован по непрохождению ПМО) с '.date('d.m.Y',$rec['data_to']).'<br>' ;
       EVENT_PMO()->set_personal_to_status_7($event_id,$rec['personal_id'],['time'=>$rec['data_to']]);
     }
     }

      // проверяем сотрудников, у которых еще актуальный срок действия ПМО, но их статус не 8,9
      $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_Line('select personal_id from obj_site_events_pass where data_to>'.$from.' and not status in (8,9) and event_id='.$event_id) ;
          if (_sizeof($ids))
          {   FILE_LOG()->append('Восстанавливаем статус ПМО пройден: '._sizeof($ids).' сотрудников') ;
              foreach($ids as $personal_id)  EVENTS()->set_event_personal_data($event_id,$personal_id,array('status'=>8,'enabled'=>1),'Восстановлен статус "ПМО пройден"',array()) ;
          }
          echo '<h2>Восстанавливаем статус ПМО пройден</h2>' ;
          damp_array($ids,1,-1) ;
      }

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

       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'])) ;

      return($result) ;
   }
    // меняем статус из "подлежит ПМО" на "направлен на ПМО"
    //  если стоит опция "пропуск подготовкм докуметов" необходимо перевести в статус "документы подготовлены" и отправить сообщение о необхожимости получить документы на ПМО
    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) ;
         $recs=execSQL('select pkey,personal_id from obj_site_events_pass where '.$usl) ;
         if (_sizeof($recs)) foreach($recs as $rec_event_pass)
         {   // если нет этапа подготовки документа - отправляем уведомление о необходимости получить документы
             if ($rec_event['_ext_info']['auto_status_3']==2)  $this->set_personal_to_status_3($event_id,$rec_event_pass['personal_id']) ;
             // иначе просто переводим сотрудника в статус "направлен на ПМО" - оператор сможет начать  подготовки документов
             else EVENTS()->set_event_personal_data($event_id,$rec_event_pass['personal_id'],array('status'=>2),'Направлен на ПМО') ;
         }
      }

    function set_personal_to_status_3($event_id,$personal_id,$options=array())
       {   $rec_event=EVENTS()->get_event_by_id($event_id) ;
           $rec_event_to_personal=EVENTS()->get_event_personal_rec($event_id,$personal_id) ;

           $now=($options['time'])? getdate($options['time']):getdate() ;
           $block_from=mktime(23,59,59,$now['mon'],$now['mday']+$rec_event['_ext_info']['period_to_status_5'],$now['year']);

           // отправляем ему сообщение
           $data=array('mess_text'=>$rec_event['_ext_info']['message1'].', срок до '.date('d.m.Y',$block_from),
                                                     'group_id'=>(MEMBER()->cur_group_id)? MEMBER()->cur_group_id:0,
                                                     'account_id'=>(MEMBER()->id)? MEMBER()->id:0,
                                                     'personal_id'=>$personal_id,
                                                     'source_pkey'=>$rec_event_to_personal['event_person_id'], // ID персоны в мероприяии
                                                     'source_tkey'=>$rec_event_to_personal['event_person_tkey'], // ID персоны в мероприяии
                                                     'source_obj'=>'esmo_magnit_pmo/i_event_pmo' // объект, которые будет использоваться в эвентах
                       ) ;
           if ($rec_event['_ext_info']['block_mo']) $data['block_from']=$block_from ;// срок - 10 дней от даты получения направления
           $mess_reffer=PERSONAL()->message_personal_create($data) ;

           // фиксируем в записи по человеку в событии ID отправленого ему сообщения
           list($mess_id,$mess_tkey)=explode('.',$mess_reffer) ;
           $data=array() ;
           $data['status']=($options['status'])? $options['status']:3 ;
           $data['mess_id']=$mess_id ;
           $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())
       {   $rec_event=EVENTS()->get_event_by_id($event_id) ;
           $rec_event_to_personal=EVENTS()->get_event_personal_rec($event_id,$personal_id) ;

           $now=($options['time'])? getdate($options['time']):getdate() ;
           $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']);

           // закрываем все старые сообщение о необходимости получить документы. Не используем mess_id, так как сообщений может быть
           PERSONAL()->messages_personal_close($personal_id,'esmo_magnit_pmo/i_event_pmo') ;


          // и создаем новое сообщение о необходимо сдать документы
          $data=array('mess_text'=>$rec_event['_ext_info']['message2'].', срок до '.date('d.m.Y',$block_from),
                                                    'group_id'=>(MEMBER()->cur_group_id)? MEMBER()->cur_group_id:0,
                                                    'account_id'=>(MEMBER()->id)? MEMBER()->id:0,
                                                    'personal_id'=>$personal_id,
                                                    'view_from'=>$view_from,
                                                    'source_pkey'=>$rec_event_to_personal['event_person_id'], // ID персоны в мероприяии
                                                    'source_tkey'=>$rec_event_to_personal['event_person_tkey'], // ID персоны в мероприяии
                                                    'source_obj'=>'esmo_magnit_pmo/i_event_pmo' // объект, которые будет использоваться в эвентах
                      ) ;

          if ($rec_event['_ext_info']['block_mo']) $data['block_from']=$block_from ;// срок - 10 дней от даты получения направления
          $mess_reffer=PERSONAL()->message_personal_create($data) ;

          list($mess_id,$mess_tkey)=explode('.',$mess_reffer) ;
          $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 set_personal_to_status_7($event_id,$personal_id,$options=array())
       {   $rec_event_to_personal=EVENTS()->get_event_personal_rec($event_id,$personal_id) ;

           // закрываем все старые сообщение о необходимости получить документы. Не используем mess_id, так как сообщений может быть
           PERSONAL()->messages_personal_close($personal_id,'esmo_magnit_pmo/i_event_pmo') ;

          // и создаем новое сообщение о необходимо сдать документы
          $data=array('mess_text'=>'Прохождение МО заблокировано в связи с непрохождением ПМО',
                    'group_id'=>(MEMBER()->cur_group_id)? MEMBER()->cur_group_id:0,
                    'account_id'=>(MEMBER()->id)? MEMBER()->id:0,
                    'personal_id'=>$personal_id,
                    'block_from'=>($options['time'])? $options['time']:time(),
                    'view_from'=>($options['time'])? $options['time']:time(),
                    'source_pkey'=>$rec_event_to_personal['event_person_id'], // ID персоны в мероприяии
                    'source_tkey'=>$rec_event_to_personal['event_person_tkey'], // ID персоны в мероприяии
                    'source_obj'=>'esmo_magnit_pmo/i_event_pmo' // объект, которые будет использоваться в эвентах
                      ) ;

          $mess_reffer=PERSONAL()->message_personal_create($data) ;

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

       }

   // показ сообщение о обном из этапом ПМО - необходимо перейти на следующий этап
   // вызывется из PERSONALS()->message_personal_set_view() ;
   function on_message_change($rec_mess,$params=array())
   { // пока не проверяем   $rec_mess['source_tkey']
     ob_start() ;

     $rec_event_personal=execSQL_van('select * from view_event_personals where event_person_id='.$rec_mess['source_pkey']) ;
     //echo 'event_status='.$rec_event_personal['event_status'].'<br>' ;
     //echo 'mess_status='.$rec_mess['status'].'<br>' ;
     if (_sizeof($rec_event_personal))
     { if ($rec_event_personal['event_status']==3) //  // Документы подготовлены
       { // изменяем статус 3=>4 Документы подготовлены => Уведомлен
         if ($rec_mess['status']==2) EVENTS()->set_event_personal_data($rec_event_personal['event_id'],$rec_event_personal['personal_id'],array('status'=>4),'Сотрудник уведомлен') ;
           // изменяем статус =>5 Документы подготовлены => Заблокирован по уведомлению'
         if ($rec_mess['status']==3) EVENTS()->set_event_personal_data($rec_event_personal['event_id'],$rec_event_personal['personal_id'],array('status'=>5),'Заблокирован по уведомлению') ;

       }
       if ($rec_event_personal['event_status']==5) //  Заблокирован по уведомлению
       { // разблокировка сотрудника после добавления дней
         if ($rec_mess['status']==1) EVENTS()->set_event_personal_data($rec_event_personal['event_id'],$rec_event_personal['personal_id'],array('status'=>4),'Разблокировка после добавления дней') ;
       }

       if ($rec_event_personal['event_status']==6) //  // Документы получены
       { // изменяем статус =>7  => Заблокирован по прохождению ПМО'
         if ($rec_mess['status']==3) EVENTS()->set_event_personal_data($rec_event_personal['event_id'],$rec_event_personal['personal_id'],array('status'=>7),'Заблокирован по прохождению ПМО') ;
       }

       if ($rec_event_personal['event_status']==7) //  Заблокирован по уведомлению
       { // разблокировка сотрудника после добавления дней
         if ($rec_mess['status']==1) EVENTS()->set_event_personal_data($rec_event_personal['event_id'],$rec_event_personal['personal_id'],array('status'=>6),'Разблокировка после добавления дней') ;
       }

     }
     $text=ob_get_clean() ;
     //LOGS()->reg_log('on_message_change',$text) ;
   }

   // форма после распорзнования заключения
   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_PMO_event']) ;

     }
     //  damp_array($rec_doc) ;
         // обновляем данные в скане
     $diagnoz=($params['pmo_result']==1)? 'Годен':'Не годен' ;
     $data_doc=($params['data_doc'])? strtotime($params['data_doc']):0 ;
     $data=array('account_work'=>MEMBER()->id,'data_set'=>time(),'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_info=$this->get_pmo_len_info_to_person($rec_event,$rec_event_personal['personal_id']) ;
         // vpf_len_id - число месяцев срока действия ПМО
         if ($pmo_len_info['id']>0) $to=mktime(23,59,59,$now['mon']+$pmo_len_info['id'],$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['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,'Прием скана заключения') ;
     }
     // закрываем старое сообщение о необходимости сдать документы
     // закрываем все сообщения сотрудника по ПМО
     PERSONAL()->messages_personal_close($params['personal_id'],'esmo_magnit_pmo/i_event_pmo') ;

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

	function prepare_vpf_data_for_inrm($temp_table)
    { $arr=[] ;
      //if (_sizeof($arr_inrm)) foreach($arr_inrm as $inrm) $arr[]='"'.$inrm.'"' ;
      //$usl_inrm=' t1.inrm in ('.implode(', ',$arr).')' ;
      $arr_vpf_numbers=execSQL(
           'select distinct(t2.number),t2.parent2,t3.number as rasdel_number,t2.period,t1.inrm 
            from list_rm_fvp t1 
            left join list_vpf t2 on t2.pkey=t1.vpf_id
            left join list_vpf t3 on t3.pkey=t2.parent2
            left join '.$temp_table.' t4 on t4.inrm=t1.inrm
            where not t4.pkey is null
            order by t2.indx
           ');

        $vfp_numbers=[] ;
        $vfp_numbers_by_section=[] ;

        $result=[] ;
		if(_sizeof($arr_vpf_numbers)) foreach($arr_vpf_numbers as $rec)
        { $vfp_numbers[$rec['inrm']][]=$rec['number'] ;
		  $vfp_numbers_by_section[$rec['inrm']][$rec['rasdel_number']][]=$rec['number'];
          if ($rec['period']>0 and  ($result[$rec['inrm']]['min_period']>$rec['period'] or !$result[$rec['inrm']]['min_period'])) $result[$rec['inrm']]['min_period']=$rec['period'] ;
		}
		//damp_array($vfp_numbers,1,-1);

		if (sizeof($vfp_numbers)) foreach($vfp_numbers as $inrm=>$arr) $result[$inrm]['vfp_numbers']=(_sizeof($arr))? implode(', ',$arr):'';
		if(_sizeof($vfp_numbers_by_section)) foreach($vfp_numbers_by_section as $inrm=>$arr) foreach($arr as $section_name=>$arr_vpf) $result[$inrm]['vfp_numbers_by_section'][$section_name]=implode(', ',$arr_vpf);
        //damp_array($vfp_numbers_by_section,1,-1);
        return($result) ;
    }

	function get_pmo_len_info_to_person($rec_event,$personal_id,$options=[])
   {  // по умолчнанию срок действия ПМО задается в мероприятии
      $result['id']=$rec_event['_ext_info']['pmo_len'];
      $result['comment']='по ПМО';
      // далее смотрим если данные по ИНРМ, у сотрудника может быть две должности, надо смотреть обе
		$inrm=($options['inrm'])? $options['inrm']:execSQL_value('select inrm from obj_site_workers where enabled=1 and personal_id='.$personal_id.' order by is_main desc');
        $result['inrm']=$inrm;
		if (isset($options['inrm_data']))
		{ $result['vfp_numbers']=$options['inrm_data']['vfp_numbers'] ;
          $result['vfp_numbers_by_section']=$options['inrm_data']['vfp_numbers_by_section'] ;
		}
		else
		{
      $arr_vpf_numbers=execSQL(
              'select distinct(t2.number),t2.parent2,t3.number as rasdel_number 
               from list_rm_fvp t1 
               left join list_vpf t2 on t2.pkey=t1.vpf_id
               left join list_vpf t3 on t3.pkey=t2.parent2
               where t1.inrm="'.$inrm.'"
               order by t2.indx
              ') ;

      if (_sizeof($arr_vpf_numbers)) foreach($arr_vpf_numbers as $rec)
      { $vfp_numbers[]=$rec['number'] ;
        $vfp_numbers_by_section[$rec['rasdel_number']][]=$rec['number'] ;
      }
            //damp_array($vfp_numbers,1,-1);
      $result['vfp_numbers']=(_sizeof($vfp_numbers))? implode(', ',$vfp_numbers):'';
      if (_sizeof($vfp_numbers_by_section)) foreach($vfp_numbers_by_section as $section_name=>$arr_vpf) $result['vfp_numbers_by_section'][$section_name]=implode(', ',$arr_vpf) ;
            //damp_array($vfp_numbers_by_section,1,-1);
        }
      if ($rec_event['_ext_info']['pmo_len_union']['use_vpf'])
           {
          $vpf_len_id=(isset($options['inrm_data']))? $options['inrm_data']['min_period']:OT()->get_id_period_PMO_by_vpf($inrm);
          $result['vpf_len_id']=($vpf_len_id)? $vpf_len_id:0;
         if ($vpf_len_id)
		  {		$result['id']=$vpf_len_id;
               $result['comment']='по ВПФ' ;
               $result['vpf_len_srok']=$this->arr_pmo_len[$result['vpf_len_id']];
           }
       }
      // далее смотрим настройку групп по болезни для сотрудника
      if (_sizeof($rec_event['_ext_info']['pmo_len_union']['use_gb']))
        {   // если группы сотрудника не переданы - получаем их
            if (isset($options['personal_medic_groups'])) $groups_medic=$options['personal_medic_groups'] ;
            else
            { // фукнция get_medic_groups_to_personal_ids работает с массивом сотрудников
              $personals_medic_groups=$this->get_medic_groups_to_personal_ids([$personal_id]) ;
              $groups_medic=$personals_medic_groups[$personal_id] ;
            }

          if (_sizeof($groups_medic)) foreach($groups_medic as $group_id=>$group_name)
          {   // надо выбрать группу с наименьшим сроком ПМО
              if (isset($rec_event['_ext_info']['pmo_len_union']['use_gb'][$group_id]))
                  { $result['id']=$rec_event['_ext_info']['pmo_len_union']['use_gb'][$group_id] ;
                    $result['comment']='по МГ' ;
                    //damp_array($result);
                  }
          }
          //damp_array($rec_event['_ext_info']['pmo_len_union']['use_gb']);
          //damp_array($groups_medic);
      }
      $result['srok']=$this->arr_pmo_len[ $result['id']] ;




      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)) ;

    }

    // $options[arr_inrm] - список ИНРМ, которые надо проверить
  function check_pmo_len_for_status_7_8($rec_event,$options=[])
    {
        // получаем ID сотрудников у которых статус ПМО пройден
		$_usl=[]; $usl_inrm='' ;
		$_usl[]='pass.event_id='.$rec_event['pkey'];
		$_usl[]='pass.status in (8,9)';
		$_usl[]='pass.enabled=1';
		$_usl[]='not so.pkey is null';
		if($options['personal_id']) $_usl[]='pass.personal_id='.$options['personal_id'];
        if (sizeof($options['arr_inrm']))
        {   $arr=[] ;
            if (_sizeof($options['arr_inrm'])) foreach($options['arr_inrm'] as $inrm) $arr[]='"'.$inrm.'"' ;
            $usl_inrm=' and so.inrm in ('.implode(', ',$arr).')' ;
		}
        $usl=implode(' and ',$_usl) ;
        $sql='select pass.pkey,pass.personal_id,pass.status,pass.data_from,pass.data_to,so.inrm 
                                    from obj_site_events_pass pass 
                                    left join obj_site_workers so on so.personal_id=pass.personal_id
                                    where '.$usl.$usl_inrm ;
        $temp_table_name='personals_pass_'.ENGINE()->generate_UID() ;
        SETUP()->create_temporary_table($temp_table_name,$sql);
		$recs_pass=execSQL('select * from '.$temp_table_name);
        echo 'Проверка срока действия ПМО для '._sizeof($recs_pass).' сотрудников<br>' ;
		if (!sizeof($options['arr_inrm']) and sizeof($recs_pass)) foreach($recs_pass as $rec) $options['arr_inrm'][]=$rec['inrm'] ;

        if ($options['arr_inrm']) $inrm_data=$this->prepare_vpf_data_for_inrm($temp_table_name) ;

        // получаем медгруппы для всех сотрудников разом
        $arr_personals_ids=[] ;
        if (sizeof($recs_pass)) foreach($recs_pass as $rec) $arr_personals_ids[]=$rec['personal_id'] ;
        $personals_medic_groups=$this->get_medic_groups_to_personal_ids_by_temptable($temp_table_name) ;

        if ($options['debug'])
        { damp_array($inrm_data,1,-1);
          damp_array($personals_medic_groups,1,-1);
        }

        // получаем медгруппу и ИНРМ этих сотрудников
        if (_sizeof($recs_pass)) foreach($recs_pass as $rec_pass)
		{   if ($options['debug']) echo 'Сотрудник <strong>'.$rec_pass['personal_id'].'</strong><br>' ;
			$pmo_ot_info=$this->get_pmo_len_info_to_person(
			        $rec_event,
                    $rec_pass['personal_id'],
                    ['inrm'=>$rec_pass['inrm'],
                     'inrm_data'=>(isset($inrm_data[$rec_pass['inrm']]))? $inrm_data[$rec_pass['inrm']]:[],
                     'personal_medic_groups'=>(isset($personals_medic_groups[$rec_pass['personal_id']]))? $personals_medic_groups[$rec_pass['personal_id']]:[],
                     'debug'=>$options['debug']
                    ]
            );
			if ($options['debug']) damp_array($pmo_ot_info,1,-1);
          $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);
  	  }


    }

  function get_medic_groups_to_personal_ids($arr_personals_ids=[])
  { $sql=[] ; $personals_medic_groups=[] ;
    if (_sizeof(_IL('IL_group_medic')->recs)) foreach(_IL('IL_group_medic')->recs as $rec_group) $sql[]='select pkey,'.$rec_group['id'].' as personal_group_id,"'.$rec_group['obj_name'].'" as personal_group_name from view_personals_medic_group_'.$rec_group['id'].' where pkey in ('.implode(',',$arr_personals_ids).')' ;
    if (_sizeof($sql)) $recs=execSQL(implode(' UNION ',$sql),0,1) ;
    if (sizeof($recs)) foreach($recs as $rec) $personals_medic_groups[$rec['pkey']][$rec['personal_group_id']]=$rec['personal_group_name'] ;
    return($personals_medic_groups) ;

  }

  // быстрая функция получения медгрупп сотрудника на основании временной таблицы с ID сотрудников и прямого обращения к медгурппам сотрудника минуя вьюверы
  function get_medic_groups_to_personal_ids_by_temptable($temp_table)
  { $personals_medic_groups=[] ;
    // схема хранения информациии по медгруппам сотрудников
    // таблица obj_site_link
    // p_id=879 - pkey мед группы сотрудника
    // p_clss=254 - clss медгруппы сотрудника
    // вьювер группы
    // select * from view_personals where clss=211 and pkey in (select o_id from obj_site_link where p_id=879 and p_clss=254)
    // pkey сотрудника храниться в поле o_id
    $arr_groups_pkeys=[] ; $group_clss=0 ;
    if (_sizeof(_IL('IL_group_medic')->recs)) foreach(_IL('IL_group_medic')->recs as $rec_group)
    { $arr_groups_pkeys[$rec_group['pkey']]=['id'=>$rec_group['id'],'name'=>$rec_group['obj_name']] ;
      $group_clss=$rec_group['clss'] ;
	}

    $sql='select t1.o_id,t1.p_id
          from obj_site_link t1
          left join '.$temp_table.' t2 on t2.personal_id=t1.o_id
          where t1.p_clss='.$group_clss.' and t1.p_id in ('.implode(',',array_keys($arr_groups_pkeys)).') and not t2.pkey is null' ;


    $recs=execSQL($sql,0,1) ;
    if (sizeof($recs)) foreach($recs as $rec)
    {   $med_group_info=$arr_groups_pkeys[$rec['p_id']] ; //print_r($med_group_info) ;
        if (sizeof($med_group_info))
        $personals_medic_groups[$rec['o_id']][$med_group_info['id']]=$med_group_info['name'] ;
    }
    //damp_array($personals_medic_groups,1,-1);
    return($personals_medic_groups) ;

  }

    // проверка статуса на основе даты блокировки текущего статуса
    function check_status_by_block_time($rec_event,$options=[])
    { $event_id=$rec_event['pkey'] ;
      echo '<h3>Выполняем проверку статусов через время блокировки сообщения</h3>' ;
      echo 'Ищем сотрудников, у которых срок действия ПМО не позднее '.date('d.m.Y').' и статусы в [2,22,3,4,5,6]' ;
      $usl_personals=($options['personal_id'])? ' and t1.personal_id in ('.$options['personal_id'].')':'' ;

      $recs_pass_mess=execSQL('select t1.pkey as pass_id,t1.tkey as pass_tkey,t1.personal_id,t1.status,
                                        t2.pkey as message_id,t2.status as message_status,t2.block_from as mess_block_from,t2.obj_name as message_text
                                        from obj_site_events_pass t1
                                        left join obj_site_personal_mess t2 on t2.source_obj="esmo_magnit_pmo/i_event_pmo" and t2.personal_id=t1.personal_id and t2.status!=4
                                        where t1.event_id='.$event_id.' and t1.enabled=1 and t2.block_from<'.time().' and t1.status in (2,22,3,4,5,6) '.$usl_personals. '
                                        order by t1.personal_id,t1.status,t2.status
                                        ',0,1) ;

      if (_sizeof($recs_pass_mess)) echo '<div class=green>Найдено '._sizeof($recs_pass_mess).' сотрудников</div>' ;
      else echo '<div class=green>Сотрудников не найдено</div>' ;

      if (_sizeof($recs_pass_mess)) foreach($recs_pass_mess as $rec)
        {  $old_status_name=EVENT_PMO()->arr_status[$rec['status']] ;
           $new_status_name=EVENT_PMO()->arr_status[7] ;
           echo 'Сотрудник <strong><a href="/window/personal/person/'.$rec['personal_id'].'/" class="new_window">'.$rec['personal_id'].'</a></strong>, статус <strong>'.$old_status_name.'</strong> - необходимо перевести в статус <strong>'.$new_status_name.'</strong><br>' ;
           if (!$options['read_only'])EVENTS()->set_personal_status($event_id,$rec['personal_id'],7) ;
        }
	}



    // проверка сообщений сотрудника на основании его статуса
    function check_messages_by_status($rec_event,$options=[])
    { $event_id=$rec_event['pkey'] ;
      echo '<h3>Проверка сообщений сотрудника на основании его статуса</h3>' ;
      FILE_LOG()->append('Проверка сообщений сотрудника на основании его статуса') ;

      $usl_personals=($options['personal_id'])? ' and t1.personal_id in ('.$options['personal_id'].')':'' ;
      $recs_pass_mess=execSQL('select t1.pkey as pass_id,t1.tkey as pass_tkey,t1.personal_id,t1.status,t1.enabled,
                                      t2.pkey as message_id,t2.c_data as c_data,t2.status as message_status,t2.block_from as mess_block_from,t2.block_to as mess_block_to,t2.view_from as mess_view_from,t2.view_to as mess_view_to,t2.auto_close as mess_auto_close,t2.obj_name as message_text,
                                      t3.enabled as personal_enabled
                                      from obj_site_events_pass t1
                                      left join obj_site_personal_mess t2 on t2.source_obj="esmo_magnit_pmo/i_event_pmo" and t2.personal_id=t1.personal_id and t2.status!=4
                                      left join obj_site_personals t3 on t3.pkey=t1.personal_id
                                      where t1.event_id='.$event_id.' and t1.enabled=1 '.$usl_personals.'
                                      order by t1.status,t1.personal_id
                                      ',0,1) ;

      FILE_LOG()->append('Будет проверено записей : '._sizeof($recs_pass_mess).' сотрудников') ;

      if (_sizeof($recs_pass_mess)) foreach($recs_pass_mess as $rec)
      {  switch($rec['status'])
          { case 1:  $text_status='PMO_wait' ; break ; // ожидает направления на ПМО
            case 2:
            case 22:
            case 3:
            case 4:
            case 5:
            case 6: $text_status='PMO_in_process' ; break ;// идет прохождение ПМО
            case 7: $text_status='PMO_error_block' ; break ;// ПМО не пройден
            case 8: $text_status='PMO_ok_success' ; break ;// ПМО пройден, годен
            case 9: $text_status='PMO_ok_failed' ; break ; // ПМО пройден, не годен
            default: $text_status=$rec['status'] ; break ;
          }
          if ($rec['message_id']) $arr[$text_status][$rec['personal_id']][$rec['message_id']]=$rec ;
          else                    $arr[$text_status][$rec['personal_id']]=[] ;
          $arr2[$rec['personal_id']]=$rec['pass_id'] ;
      }

      //damp_array($arr);
      // // ожидает направления на ПМО - сообщений быть не должно
      $i=0 ; $j=0 ;
      if (_sizeof($arr['PMO_wait'])) foreach($arr['PMO_wait'] as $personal_id=>$recs_messages)
      { $this->check_messages_to_close(['event_id'=>$event_id,
                                        'personal_id'=>$personal_id,
                                        'text_status'=>'PMO_ok_success',
                                        'recs_messages'=>$recs_messages,
                                        'read_only'=>$options['read_only']
                                        ]
                                       ) ;
        $i++ ; $j++ ;
        FILE_LOG()->append('Проверка статуса PMO_wait: '.$j.' из '._sizeof($arr['PMO_wait'])) ;
      }

      $j=0 ;
     if (_sizeof($arr['PMO_in_process'])) foreach($arr['PMO_in_process'] as $personal_id=>$recs_messages)
     {  $this->check_messages_to_open(['event_id'=>$event_id,
                                        'personal_id'=>$personal_id,
                                        'text_status'=>'PMO_in_process',
                                        'recs_messages'=>$recs_messages,
                                        'mess_text'=>'Вам необходимо пройти ПМО',
                                        'send_message_method_name'=>'send_message_for_status_2',
                                        'read_only'=>$options['read_only']
                                       ]) ;
       $i++ ;$j++ ;
       FILE_LOG()->append('Проверка статуса PMO_in_process: '.$j.' из '._sizeof($arr['PMO_in_process'])) ;
     }

      $j=0 ;
     if (_sizeof($arr['PMO_error_block'])) foreach($arr['PMO_error_block'] as $personal_id=>$recs_messages)
     {   $this->check_messages_to_open(['event_id'=>$event_id,
                                       'personal_id'=>$personal_id,
                                       'text_status'=>'PMO_error_block',
                                       'recs_messages'=>$recs_messages,
                                       'mess_text'=>'Прохождение МО заблокировано',
                                       'send_message_method_name'=>'send_message_for_status_7',
                                       'read_only'=>$options['read_only']
                                       ]) ;
       $i++ ;$j++ ;
       FILE_LOG()->append('Проверка статуса PMO_error_block: '.$j.' из '._sizeof($arr['PMO_error_block'])) ;
     }

      $j=0 ;
     if (_sizeof($arr['PMO_ok_success'])) foreach($arr['PMO_ok_success'] as $personal_id=>$recs_messages)
     {   $this->check_messages_to_close(['event_id'=>$event_id,
                                         'personal_id'=>$personal_id,
                                         'text_status'=>'PMO_ok_success',
                                         'recs_messages'=>$recs_messages,
                                         'read_only'=>$options['read_only']
                                         ]
                                        ) ;
       $i++ ;$j++ ;
       FILE_LOG()->append('Проверка статуса PMO_ok_success: '.$j.' из '._sizeof($arr['PMO_ok_success'])) ;
     }

      $j=0 ;
     if (_sizeof($arr['PMO_ok_failed'])) foreach($arr['PMO_ok_failed'] as $personal_id=>$recs_messages)
     {   $this->check_messages_to_open(['event_id'=>$event_id,
                                       'personal_id'=>$personal_id,
                                       'text_status'=>'PMO_ok_failed',
                                       'recs_messages'=>$recs_messages,
                                       'mess_text'=>'Прохождение МО заблокировано',
                                       'send_message_method_name'=>'send_message_for_status_9',
                                       'read_only'=>$options['read_only']
                                       ]) ;
       $i++ ;$j++ ;
       FILE_LOG()->append('Проверка статуса PMO_ok_failed: '.$j.' из '._sizeof($arr['PMO_ok_failed'])) ;
     }
     echo '<div class=green>Проверено '.$i.' сотрудников</div>' ;


       //damp_array($arr);
       echo 'Проверка завершена<br>' ;
    }

    function check_messages_to_close($options=[])
    { $event_id=$options['event_id'] ;
      $personal_id=$options['personal_id'] ;
      $text_status=$options['text_status'] ;
      $recs_messages=$options['recs_messages'] ;
      if (_sizeof($recs_messages)) foreach($recs_messages as $rec_message) if ($rec_message['message_status']!=4)
           {
             echo 'Сотрудник <strong><a href="/window/personal/person/'.$personal_id.'/" class="new_window">'.$personal_id.'</a></strong>, статус <strong>'.$text_status.'</strong> - необходимо закрыть сообщение <strong>'.$rec_message['message_id'].'</strong><br>' ;
             if (!$options['read_only']) PERSONAL()->message_personal_close($rec_message['message_id']) ;
   		}

    }


    function check_messages_to_open($options=[])
    {   $event_id=$options['event_id'] ;
        $personal_id=$options['personal_id'] ;
        $text_status=$options['text_status'] ;
        $recs_messages=$options['recs_messages'] ;
        $mess_text=$options['mess_text'] ;
        $send_message_method_name=$options['send_message_method_name'] ;

      {   $arr_mess_status=[] ;
          $rec_pass=execSQL_van('select * from obj_site_events_pass where personal_id='.$personal_id.' and event_id='.$event_id)  ;

          foreach($recs_messages as $rec) if ($rec['message_status']==4) $arr_mess_status['closed'][]=[$rec['message_id'],$rec['message_text']] ;
                                 else                           $arr_mess_status['open'][]=[$rec['message_id'],$rec['message_text']]  ;



        // вооще нет сообзений - отправляем
          if (!_sizeof($recs_messages))
          { echo 'Сотрудник <strong><a href="/window/personal/person/'.$personal_id.'/" class="new_window">'.$personal_id.'</a></strong>, статус <strong>'.$text_status.'</strong> - будет отправлено сообщение "'.$mess_text.'"<br>' ;
            if (!$options['read_only'] and $send_message_method_name and method_exists(EVENT_PMO(),$send_message_method_name)) $this->$send_message_method_name($rec_pass) ;
  		  }
          else // сообщения есть, надо их проверить
          { $ff=1 ;
              // если только одно открытое сообщение, проверяем текст сообщения
              if (_sizeof($arr_mess_status['open'])==1)
              {   $message_id=$arr_mess_status['open'][0][0] ;
                  $message_text=$arr_mess_status['open'][0][1] ;

                  if (stripos($message_text,$mess_text)===false)
                  { // закрываем сообщение и отправляем новое
                    echo 'Сотрудник <strong><a href="/window/personal/person/'.$personal_id.'/" class="new_window">'.$personal_id.'</a></strong>, статус <strong>'.$text_status.'</strong> - необходимо закрыть сообщение <strong>'.$message_id.'</strong> с текстом "'.$message_text.'"<br>' ;
                    if (!$options['read_only']) PERSONAL()->message_personal_close($message_id) ;
                    echo 'Сотрудник <strong><a href="/window/personal/person/'.$personal_id.'/" class="new_window">'.$personal_id.'</a></strong>, статус <strong>'.$text_status.'</strong> - будет отправлено сообщение "'.$mess_text.'"<br>' ;
                    if (!$options['read_only'] and $send_message_method_name and method_exists(EVENT_PMO(),$send_message_method_name)) EVENT_PMO()->$send_message_method_name($rec_pass) ;

  				}
                  $ff=0 ;
  			}
              // если сотрудник имеет более одного открытого сообщения - надо найти сообщение по прохождению ПМО, остальные закрыть
              else if (_sizeof($arr_mess_status['open'])>1)
              {
                echo 'Сотрудник <strong><a href="/window/personal/person/'.$personal_id.'/" class="new_window">'.$personal_id.'</a></strong>, статус <strong>'.$text_status.'</strong> - более одного открытого сообщения<br>' ;
                // закрываем все сообщения и открываем новое
                foreach($arr_mess_status['open'] as $rec_mess)
                { $message_id=$rec_mess[0] ;
                  $message_text=$rec_mess[1] ;
                  echo 'Сотрудник <strong><a href="/window/personal/person/'.$personal_id.'/" class="new_window">'.$personal_id.'</a></strong>, статус <strong>'.$text_status.'</strong> - необходимо закрыть сообщение <strong>'.$message_id.'</strong> с текстом "'.$message_text.'"<br>' ;
                  if (!$options['read_only']) PERSONAL()->message_personal_close($message_id) ;
  			  }
                echo 'Сотрудник <strong><a href="/window/personal/person/'.$personal_id.'/" class="new_window">'.$personal_id.'</a></strong>, статус <strong>'.$text_status.'</strong> - будет отправлено сообщение "'.$mess_text.'"<br>' ;
                if (!$options['read_only'] and $send_message_method_name and method_exists(EVENT_PMO(),$send_message_method_name)) EVENT_PMO()->$send_message_method_name($rec_pass) ;
                $ff=0 ;
  			}
              // если сотрудник имеет только закрые сообщения - надо найти сообщение по прохождению ПМО, открыть, остальные не трогать
              else if (_sizeof($arr_mess_status['closed']))
              {
                echo 'Сотрудник <strong><a href="/window/personal/person/'.$personal_id.'/" class="new_window">'.$personal_id.'</a></strong>, статус <strong>'.$text_status.'</strong> - имеет только закрытые сообщения<br>' ;
                echo 'Сотрудник <strong><a href="/window/personal/person/'.$personal_id.'/" class="new_window">'.$personal_id.'</a></strong>, статус <strong>'.$text_status.'</strong> - будет отправлено сообщение "'.$mess_text.'"<br>' ;
                if (!$options['read_only'] and $send_message_method_name)
                    if (method_exists(EVENT_PMO(),$send_message_method_name)) EVENT_PMO()->$send_message_method_name($rec_pass) ;
                    else echo 'Не найден метод: <strong>'.$send_message_method_name.'</strong><br>' ;
                $ff=0 ;
  			}


              if ($ff) damp_array($arr_mess_status);

              //foreach($recs as $rec) $arr_mess_status[$rec['message_status']]=$rec ;

  		}

  	}
    }

  function prepare_message_to_personal($rec_pass)
     {
         //damp_array($pass);
         $data=[] ;
         $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']) ;
         switch($rec_pass['status'])
         {   // начата подготовка документов
             case 22:

		 }

         return($data);
 	}



}

?>
