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

   function doc_delete()
   {  $result=DOCS()->doc_delete($_POST['doc_id']) ;
      $this->add_element('show_notife',$result[1],array('type'=>$result[0])) ;
      if ($_POST['after_delete_go_url']) $this->add_element('go_url',$_POST['after_delete_go_url']) ;   // переходим на страницу личного кабинета
      else                               $this->add_element('go_url','/cab/docs/') ;
      //$this->add_element('show_modal_window','HTML') ;
   }

   // создаем документ
   function doc_create()
   { $arr=explode('/',$_POST['filter_dir']) ;
     if (isset($_POST['report_type'])) $_POST['report_code']=$_POST['report_type'] ;
     $report_code=($_POST['report_code'])? $_POST['report_code']:$arr[3] ;   // report_code=report_type

     //damp_array($_POST) ;
	 $options=array() ;
	 if (isset($_POST['obj_reffer']))   $options['obj_reffer']=$_POST['obj_reffer'] ;
	 if (isset($_POST['event_id']))     $options['event_id']=$_POST['event_id'] ;
	 if (isset($_POST['lession_id']))   $options['lession_id']=$_POST['lession_id'] ;
	 if (isset($_POST['report_seria'])) $options['report_seria']=$_POST['report_seria'] ;
	 if (isset($_POST['pdf_options']))  $options['pdf_options']=$_POST['pdf_options'] ;
	 if (isset($_POST['source_pkey']))  $options['source_pkey']=$_POST['source_pkey'] ;
	 if (isset($_POST['source_tkey']))  $options['source_tkey']=$_POST['source_tkey'] ;
	 if (isset($_POST['source_obj']))   $options['source_obj']=$_POST['source_obj'] ;
	 if (isset($_POST['edit']))         $options['edit']=$_POST['edit'] ;
     if (isset($_POST['dont_use_member_personal_filter']))   $options['dont_use_member_personal_filter']=1;
     $res=DOCS()->doc_create($report_code,$_POST['filter'],$options) ;
     //damp_array($res,1,-1) ;

     if ($res['error']) $this->add_element('show_notife',$res['error'],array('type'=>'error')) ;
     else
     {  if ($_POST['url_page_doc_view'] and $_POST['append_doc_to_to_doc_url']) $_POST['url_page_doc_view'].=$res['doc_id'].'/' ;
        $url_page_doc_view=($_POST['url_page_doc_view'])? str_replace('***',$res['doc_id'],$_POST['url_page_doc_view']):_PATH_TO_SITE.'/cab/docs/pdf/'.$res['doc_id'].'/' ;

        REPORT()->panel_view_pdf_convert($res['result_convert']['cmd_uid'],$url_page_doc_view) ;

        $this->add_element('show_modal_window','HTML',array('width'=>'700','title'=>'Подготовка документа')) ;   // показываем модальное окно
     }

   }

    function doc_create_in_window()
   {   $arr=array() ;
       if (_sizeof($_POST['filter'])) foreach($_POST['filter'] as $id=>$value) $arr[]=$id.'='.$value ;
       $params_filter=implode(',',$arr) ;
       $url_window='/window/docs/put/['.$params_filter.']/' ;
       $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>') ;

   }

    //http://magnit.kvzrm.ru/window/esmo_magnit_pmo/card/291/put_docs/[personal_id=13006]/
    function prepare_put_napravlenie_AG()
     {   // $rec_personal=PERSONAL()->get_personal_by_id($_POST['personal_id']) ;
         $rec_mo=ESMO()->get_mo_by_id($_POST['mo_id']) ;
         $_POST['event_id']=272 ; // Задать через настройки
         $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']) ;
         //$url_window=($rec_event_to_personal['event_doc_fname'] and $_POST['show_saved_doc'])? '/docs/'.$rec_event_to_personal['event_doc_fname']:$rec_event['__href'].'put_docs/[personal_id='.$_POST['personal_id'].']/' ;
         $url_window='/cab/docs/put/[personal_id='.$rec_mo['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 doc_set_edit_mode()
     {
     	update_rec_in_table('obj_site_docs',array('edit'=>1),'pkey='.$_POST['doc_id']) ;
     	$this->update_page=1 ;
     }

   // пересоздаем отчет
   function doc_recreate()
   {   //damp_array($_POST,1,-1) ;
       $res=$this->save_content()  ;
       if (!$res['error'])
       { $res=DOCS()->doc_recreate($_POST['doc_id'],$_POST['filter'],array('pdf_options'=>$_POST['pdf_options'])) ;
       }


     if ($res['error'])
     { $this->add_element('show_notife',$res['error'],array('type'=>'error')) ;
	   //$this->add_element('show_modal_window','HTML',array('width'=>'700','title'=>'Подготовка документа')) ;   // показываем модальное окно
     }
     else
     {
        $url_page_doc_view=($_POST['url_page_doc_view'])? $_POST['url_page_doc_view']:_PATH_TO_SITE.'/cab/docs/pdf/'.$res['doc_id'].'/' ;

        REPORT()->panel_view_pdf_convert($res['result_convert']['cmd_uid'],$url_page_doc_view) ;

        $this->add_element('show_modal_window','HTML',array('width'=>'700','title'=>'Подготовка документа')) ;   // показываем модальное окно
     }

   }

   function save_content()
   {  $rec_doc=DOCS()->get_doc_by_id($_POST['doc_id']) ;
      if ($rec_doc['pkey'])
      {  $report_obj=REPORTS()->get_report_obj_by_code($rec_doc['report_code']) ;
         if ($report_obj->error) $res['error']=$report_obj->error ;
         else
         {  $validate=$report_obj->check_doc_fields($_POST['content']) ;
         	if ($validate['error'])  $res['error']=$validate['error'];
         }

          update_rec_in_table('obj_site_docs',array('content'=>$_POST['content']),'pkey='.$_POST['doc_id']) ;


          //$this->add_element('update_page',1) ;  // после подписания - перегружаем текущую страницу
          //$this->add_element('show_modal_window','HTML',array('width'=>'700','title'=>'Подготовка документа')) ;   // показываем модальное окно

      }
      return($res) ;

   }

  // сохраняем отчет в документах
  /*
  function save_as_doc()
  {  $arr=explode('/',$_POST['filter_dir']) ;
     $report_code=($_POST['report_code'])? $_POST['report_code']:$arr[3] ;

     $report_info='' ;
     if ($_POST['time_from']) $report_info=$_POST['time_from'] ;
     if ($_POST['time_to'])   $report_info.=' - '.$_POST['time_to'] ;

     $res=DOCS()->doc_create($report_code,$_POST['filter'],array('report_info'=>$report_info)) ;
     if ($res['error']) $this->add_element('show_notife',$res['error'],array('type'=>'error')) ;
     else $this->add_element('go_url','/cab/docs/pdf/'.$res['doc_id'].'/') ;   // переходим на страницу личного кабинета
  }  */



   function doc_type_create()
   { //damp_array($_POST) ;
     $this->add_element('show_modal_window','HTML',array('title'=>'Добавление нового типа документа','after_close_update_page'=>1)) ;
     ?><form>
          <table id="panel_personal_edit" class="info">
              <tr><td>Название документа:</td><td><input type="text" name="name" class="big" data-required value="" ></td></tr>
          </table>
          <br>
          <div class="center"><input type="submit" class="button v2" cmd="docs/doc_type_create_apply" validate="form" NoSubmitFormOnEnter="1" value="Создать новый тип документа">&nbsp;&nbsp;&nbsp;<button class="button cancel">Отмена</button></div>
         </form>
     <?
     }

    function doc_type_create_apply()
    { $doc_code=safe_file_names($_POST['name']) ;
      $result=DOCS()->reg_virtual_doc_type($doc_code,$_POST['name']) ;
      damp_array($result,1,-1);
      ?><div class="center"><button class="cancel">Закрыть</button></div><?
      $this->add_element('show_modal_window','HTML',array('title'=>'Добавление нового типа документа','width'=>'800px','after_close_update_page'=>1)) ;
   }

   function doc_type_save()
   {
      //damp_array($_POST) ;
       $result=[] ;
      if (_sizeof($_POST['doc_types'])) foreach($_POST['doc_types'] as $id=>$data)
      {
          $result=DOCS()->update_virtual_doc_type($id,$data) ;
          if ($result['error'])
          { $this->add_element('show_notife',$result['error'],array('type'=>'error')) ;
            break ;
          }
      }
      if (sizeof($_POST['scan_priority'])) SETUP()->save_ini_setting('/ini/scan_priority.yaml',$_POST['scan_priority']);
       if (!$result['error']) $this->update_page=1 ;
      //$this->add_element('show_modal_window','HTML',array('title'=>'Добавление нового типа документа','after_close_update_page'=>1)) ;

   }

   function doc_limit_save()
   {
      //damp_array($_POST) ;
      if (sizeof($_POST['docs_limits'])) SETUP()->save_ini_setting('/ini/docs_limits.yaml',$_POST['docs_limits']);
      $this->update_page=1 ;
      //$this->add_element('show_modal_window','HTML',array('title'=>'Добавление нового типа документа','after_close_update_page'=>1)) ;

   }

   function doc_type_delete()
   {  //$result=DOCS()->doc_delete($_POST['doc_id']) ;
      //$this->add_element('show_notife',$result[1],array('type'=>$result[0])) ;
      if (_sizeof($_POST['_check']))
      { foreach($_POST['_check'] as $id=>$value) DOCS()->virtual_doc_type_delete($id) ;
        $this->update_page=1 ;
      }
      else $this->add_element('show_notife','Не выбрано ни одного элемента',array('type'=>'error')) ;
      //$this->add_element('show_modal_window','HTML') ;
   }


   function doc_clear_pdf()
   {
       $dir_name=$_POST['dir'] ;
       $year_limit=$_POST['year_limit'] ;
       $day_limit=$year_limit*365 ;
       $cmd='find '.$dir_name.' -type f  -mtime +'.$day_limit.' | wc -l ' ;
       $result=ENGINE()->exec_bash_cmd($cmd) ;
       $cnt=(int)$result ;
       echo '<p>Будут удалены файлы из директории <strong>'.hide_server_dir($dir_name).'</strong>, старше <strong>'.$year_limit.'</strong> '.get_case_by_count_1_2_5($year_limit,'года,лет,лет').'</p>' ;
       echo '<p>Всего будет удалено <strong>'.$cnt.'</strong> файлов PDF</p><br>' ;
       echo '<p>Файлы будут удалены окончательно!</p><br>' ;
       ?><button class="button v2" cmd="docs/doc_clear_pdf_apply" dir="<?echo $dir_name?>" year_limit="<?echo $year_limit?>">Выполнить</button><?
       ?><button class="button cancel">Отмена</button><?
       $this->add_element('show_modal_window','HTML',array('title'=>'Удаление файлов PDF после окончания срока хранения','_after_close_update_page'=>1)) ;
   }

   function doc_clear_pdf_apply()
   {
       ob_start() ;
       $dir_name=$_POST['dir'] ;
       $year_limit=$_POST['year_limit'] ;
       $day_limit=$year_limit*365 ;
       $t1=fixed_time() ;

       $cmd='find '.$dir_name.' -type f -mtime +'.$day_limit.' -exec rm -rf {} \;' ;
       $result=ENGINE()->exec_bash_cmd($cmd) ;
       echo '<p>Файлы удалены<br>'.$result.'</p>' ;
       fixed_time($t1,'Время удаления файлов') ;

       ?><button class="button cancel">Закрыть</button><?
       $text=ob_get_clean() ;
       echo $text ;
       LOGS()->reg_log('doc_clear_pdf', $text) ;
       $this->add_element('show_modal_window','HTML',array('title'=>'Удаление файлов PDF после окончания срока хранения','after_close_update_page'=>1)) ;
   }



}
