<?
include_once(_DIR_EXT.'/HTML/c_page_XML_AJAX.php') ;
class c_page_ajax extends c_page_XML_AJAX
{

    function set_check_personal_to_status_2()
     {  if (_sizeof($_POST['_check'])) $this->set_personal_to_status_2() ;
        else $this->add_element('show_notife','Не выбрано ни одного сотрудника') ;
     }

    function set_all_personal_to_status_2()
     { $_POST['_check']=array();
       $this->set_personal_to_status_2() ;
     }

    function set_personal_to_status_2()
     { $arr_id='arr_'.rand(1,1000000) ;

       include_once(_DIR_EXT.'/events/report_personals_in_event.php') ;
       $report_obj=new report_personals_in_event() ;
       $report_obj->filter=$report_obj->filter_array_flip($_POST['filter']);
       $report_obj->event_id=$_POST['event_id'] ;
       if (_sizeof($_POST['_check'])) $report_obj->filter['personal_ids']=implode(',',$_POST['_check']) ;
       else
       { $personal_ids=execSQL_line('select personal_id from obj_site_events_pass where event_id='.$_POST['event_id'].' and status=1 and enabled=1') ;
         $report_obj->filter['personal_ids']=implode(',',$personal_ids) ;
       }
       $report_obj->init();
       $usl=$report_obj->create_usl_select_obj() ;
       $cnt=$report_obj->get_cnt_items($usl) ;

       $_SESSION[$arr_id]['filter']=$report_obj->filter ;

       echo get_case_by_count_1_2_5($cnt,'Будет направлен,Будут направлены,Будут направлены').' на ОПО <strong>'.$cnt.'</strong> '.get_case_by_count_1_2_5($cnt,'сотрудник,сотрудника,сотрудников').'<br>' ;
       if ($cnt){?><br><button class="button v2" cmd="events_opo/set_personal_to_status_2_apply" event_id=<?echo $_POST['event_id']?> arr_id="<?echo $arr_id?>">Направить</button><?}
       ?><button class="button cancel">Отмена</button><?

       $this->add_element('show_modal_window','HTML',array('title'=>'Направление на ОПО')) ;
   }

   function set_personal_to_status_2_apply()
   { include_once(_DIR_EXT.'/events/report_personals_in_event.php') ;
     $report_obj=new report_personals_in_event() ;
     $report_obj->filter=$_SESSION[$_POST['arr_id']]['filter'] ;
     $report_obj->event_id=$_POST['event_id'] ;
     $report_obj->init();
     $usl=$report_obj->create_usl_select_obj() ;
     $cnt=$report_obj->get_cnt_items($usl) ;
     if ($cnt)
     { $recs=$report_obj->get_items($usl) ;
       $ids=array_keys($recs) ;
       $obj_event=EVENTS()->get_event_obj_by_id($_POST['event_id']) ;
       //if (_sizeof($recs)) foreach($recs as $rec) EVENTS()->set_event_personal_data($_POST['event_id'],$rec['personal_id'],array('status'=>2),'Направлен на ОПО') ;
       if (is_object($obj_event) and _sizeof($ids)) $obj_event->set_personal_to_status_2($_POST['event_id'],implode(',',$ids)) ;

     }
     echo 'Было направлено на ОПО <strong>'.$cnt.'</strong> '.get_case_by_count_1_2_5($cnt,'сотрудник,сотрудника,сотрудников').'<br>' ;
     ?><button class="button cancel">Закрыть</button><?
     $this->add_element('show_modal_window','HTML',array('title'=>'Направление на ОПО','after_close_update_page'=>1)) ;
     unset($_SESSION[$_POST['arr_id']]) ;
   }


   function prepare_put_packet_docs()
   {   // $rec_personal=PERSONAL()->get_personal_by_id($_POST['personal_id']) ;
       //$this->add_element('show_modal_window','HTML',array('title'=>'Направление на ОПО')) ;

       $rec_event=EVENTS()->get_event_by_id($_POST['event_id']) ;
       $rec_event_to_personal=EVENTS()->get_event_personal_rec($_POST['event_id'],$_POST['personal_id']) ;
       //print_r($rec_event_to_personal) ;
       // документы PDF раздложены по папкам с датами. Даты генерации документа нет, надо найти документ в папках с датами
       $doc_dir='' ;
       if (($rec_event_to_personal['event_doc_fname'] and $_POST['show_saved_doc']))
       { $arr_dir_name=explode('/',$rec_event_to_personal['event_doc_fname']) ;
         if (_sizeof($arr_dir_name)==1)
         { $dir_list=get_dir_list(_DIR_TO_ROOT.'/docs/pdf/events_opo_doc_union/') ;
           foreach($dir_list as $dir) if (file_exists($dir.$rec_event_to_personal['event_doc_fname']))
           { $doc_dir=hide_server_dir($dir.$rec_event_to_personal['event_doc_fname'])  ;
             break ;
           }
         }
         else if (file_exists(_DIR_TO_ROOT.'/docs/pdf/'.$rec_event_to_personal['event_doc_fname'])) $doc_dir='/docs/pdf/'.$rec_event_to_personal['event_doc_fname'] ;

       }

       // $_POST['show_saved_doc'] - опция для показа уже сгенерированного файла
       // для генерации пакета документов открывается окно с URL /window/events_opo/card/26/put_docs/[personal_id=13797]/
       // 26 - ID мероприятия
       $url_window=($rec_event_to_personal['event_doc_fname'] and $_POST['show_saved_doc'] and $doc_dir)? $doc_dir:$rec_event['__href'].'put_docs/[personal_id='.$_POST['personal_id'].']/' ;
       $this->add_element('JSCODE','<script type="text/javascript">
       var newWin=window.open("'.$url_window.'","window_event_cart_doc",\'status=1,dependent=1,width=\'+LS_popup_window_width+\',height=\'+LS_popup_window_height+\',left=0,top=0, resizable=1, scrollbars=yes\') ;
       newWin.focus() ;
       </script>') ;
       $this->add_element('time_print_'.$rec_event_to_personal['event_person_id'].'.HTML','напечатано '.date('d.m.Y H:i')) ;
       if ($rec_event_to_personal['event_status']==2) EVENTS()->set_event_personal_data($_POST['event_id'],$_POST['personal_id'],array('status'=>22),'Начата подготовка документов') ;
       LOGS()->reg_log('Событие мероприятия','Пакет документов готов к печати',array('_data'=>$rec_event_to_personal,'reffers'=>array($rec_event['_reffer'],$rec_event_to_personal['_reffer'])))  ;
   }

   // фиксация готовности документов для выдачи сотруднику
   /*function fixed_prepare_packet_docs()
   {   $rec_event=EVENTS()->get_event_by_id($_POST['event_id']) ;
       $rec_event_to_personal=EVENTS()->get_event_personal_rec($_POST['event_id'],$_POST['personal_id']) ;

       ?><p>При прохождении первого МО сотрудник получит уведомление о необходимости получить документы на прохождение ОПО</p><br><?
       ?><p class="center"><button class="v2 cancel">Закрыть</button></p><?
       $this->add_element('show_modal_window','HTML',array('title'=>'Уведомление о готовности документов','after_close_update_page'=>1)) ;   // показываем модальное окно

       // переводим сотрудника в статус "документы подготовлены"
       $event_obj=EVENTS()->get_event_obj_by_id($_POST['event_id']) ;
       $event_obj->set_personal_to_status_3($_POST['event_id'],$_POST['personal_id']) ;
       // отправка сообщения перенесена в функцию set_personal_to_status_3
       LOGS()->reg_log('Событие мероприятия','Пакет документов готов к выдаче сотруднику',array('reffers'=>array($rec_event['_reffer'],$rec_event_to_personal['_reffer'])))  ;
   }*/

   // фиксация выдачи документов сотруднику
   function fixed_put_packet_docs()
   {   $rec_event=EVENTS()->get_event_by_id($_POST['event_id']) ;
 //  ACCOUNTS()->get_member_name_by_id($id)
       $rec_event_to_personal=EVENTS()->get_event_personal_rec($_POST['event_id'],$_POST['personal_id']) ;

       ?><p>Сотрудник обязан вернуть заключение по ОПО в <?echo $rec_event['_ext_info']['period_to_status_7']?>-дневный срок</p><br><?
       ?><p class="center"><button class="v2 cancel">Сотрудник ознакомлен</button></p><?

       $this->add_element('show_modal_window','HTML',array('title'=>'Уведомление о выдаче документов','after_close_update_page'=>1)) ;   // показываем модальное окно
       // переводим сотрудника в статус "документы выданы"
       // 6=>'Документы получены',

       $event_obj=EVENTS()->get_event_obj_by_id($_POST['event_id']) ;
       $event_obj->set_personal_to_status_6($_POST['event_id'],$_POST['personal_id']) ;

       LOGS()->reg_log('Событие мероприятия','Пакет документов получен сотрудником',array('reffers'=>array($rec_event['_reffer'],$rec_event_to_personal['_reffer'])))  ;


   }

   function get_podrasdel_select()
   {   $otdel_names=execSQL_row('select pkey,obj_name from obj_site_personals where parent='.$_POST['org_id'].' and enabled=1 order by obj_name') ;
       ob_start() ;
       ?>
       <section class="col col-3">
               <label class="label">Подразделение</label>
               <label class="select">
                   <select class=filter id=select_orgs name="filter[org_id]" data-select="data-select"><option></option>
                       <?if (_sizeof($otdel_names)) foreach($otdel_names as $org_id=>$org_name){?><option value="<?echo $org_id?>" <?if (isset($this->filter['dep_ids'][$org_id])) echo 'selected'?>><?echo $org_name?></option><?}?>
                   </select><i></i>
        </section>
       <?
       $text=ob_get_clean() ;
       $this->add_element('otdel.HTML',$text) ;
       //$this->add_element('JSCODE','<script type="text/javascript">mForm.Element.Select.initialize();</script>') ;
   }


   function prepare_docs_for_all()
   {   $arr=array() ;
       if (_sizeof($_POST['_check'])) foreach($_POST['_check'] as $ref)
       {  list($id,$t)=explode('.',$ref) ;
          $arr[]=$id ;
       }
       $this->add_element('show_modal_window','HTML',array('title'=>'Направление на ОПО и выдача документов')) ;
       echo '<p>Выбранным сотрудникам будет сформированы документы для ОПО, затем они будут переведены в статус "Проходят ОПО", при этом им будет отправлено уведомление о необходимости сдачи документов с соответствующими ограничениями по прохождению МО при несвоевременной сдаче документов</p>' ;
       echo '<p>Выбрано: <strong>'._sizeof($arr).'</strong> сотрудников</p>' ;
       echo '<p class="center"><button class="v2" cmd="events_opo/prepare_docs_for_all_apply" ids="'.implode(',',$arr).'" event_id="'.$_POST['event_id'].'">Далее</button></p>' ;
       //damp_array($_POST) ;
   }

   function prepare_docs_for_all_apply()
   {   $ids=str_replace(',','_',$_POST['ids']) ;
       $this->add_element('show_new_window','/cab/events_opo/create_docs_for_all/[event_id='.$_POST['event_id'].',personal_ids='.$ids.']/') ;
       $this->update_page=1  ;
   }

  function event_orgs_emails_save()
     {   EVENTS()->save_events($_POST['event_id'],array('emails_to_orgs'=>$_POST['emails_to_orgs'])) ;
       $this->update_page=1  ;
   }

  function event_orgs_adres_save()
       {   EVENTS()->save_events($_POST['event_id'],array('adres_to_orgs'=>$_POST['adres_to_orgs'],'name_to_orgs'=>$_POST['name_to_orgs'])) ;
           $this->update_page=1 ;
       }


  function send_doc_pach()
  {
    ob_start() ;
    $setting=array('event_id'=>$_POST['event_id'],
                      'org_id'=>$_POST['org_id'],
                      ) ;
    include(_DIR_TO_MODULES.'/engine/i_backgroup_process.php') ;
    $back_process=new i_backgroup_process('/services/events_opo/send_pmo_dock_pack/',$setting) ; // будет вызван  /ext/events/c_update_personal_status.php::c_update_personal_status->show()
    $back_process->panel_background_process() ;
    $text=ob_get_clean() ;
    //$this->add_element('show_modal_window','HTML',array('title'=>'Отправка документов на АТП по ОПО','width:1000px')) ;
    $this->add_element('panel_debug.HTML',$text);


  }


}
