<?
include_once(_DIR_TO_CLASS."/c_page.php");
class c_page_cab_esmo_magnit_pmo_create_docs_for_all extends c_page
{
	function body()
    { $event_id=$this->filter['event_id'] ;
      if (!$event_id) return ;
      $personal_ids=str_replace('_',',',$this->filter['personal_ids']) ;
      if (!$personal_ids) return ;
	  $recs_pass=execSQL('select * from obj_site_events_pass where event_id='.$event_id.' and personal_id in ('.$personal_ids.')',2) ;
	  $arr_html_docs=array() ;
       if (_sizeof($recs_pass)) foreach($recs_pass as $rec_pass)
	   { $res=DOCS()->doc_create('esmo_magnit_pmo/doc_union',
                             // filter
                             array('event_id'=>$rec_pass['event_id'],
                                   'personal_id'=>$rec_pass['personal_id']
                                   ),
                             // options
                             array('no_reg_doc'=>1, // не регистрировать документ в таблице документов
                                   'no_create_pdf'=>1, // не создавать PDF, будут возвращен массив исходных HTML документов для PDF
                                   'event_id'=>$rec_pass['event_id'],
                                   //'obj_reffer'=>$_POST['obj_reffer'],
                                   //'report_seria'=>$_POST['report_seria'],
                                   //'pdf_options'=>$_POST['pdf_options'],
                                   'source_pkey'=>$rec_pass['pkey'], // ID персоны в мероприяии
                                   'source_tkey'=>$rec_pass['tkey'], // ID персоны в мероприяии
                                   'source_obj'=>'esmo_magnit_pmo/i_event_pmo' // объект, которые будет использоваться в эвентах
                                   )
                             ) ;
		 if (_sizeof($res['arr_html_docs'])) foreach($res['arr_html_docs'] as $fname)  $arr_html_docs[]=$fname ;
		 echo 'Подготовлены документы для сотрудника ID '.$rec_pass['personal_id'].'<br>' ;
		 //FILE_LOG()->append('Подготовлены документы для сотрудника ID '.$rec_pass['personal_id']) ;
	   }
	   //damp_array($arr_html_docs) ;
	   // имеем подготовленый массив HTML документов, который надо собрать в один PDF файл
	   if (_sizeof($arr_html_docs))
	   { $source=implode(' ',$arr_html_docs) ;
		 // определяем директрию для сохранения документа
         $doc_dir=DOCS()->get_doc_dir('esmo_magnit_pmo/doc_union') ;
         DISK()->check_dir(_DIR_TO_ROOT.DOCS()->storage_pdf.$doc_dir) ;
		 $report_obj=REPORTS()->get_report_obj_by_code('esmo_magnit_pmo/doc_union') ;
		 $target_doc_pdf='pmo_docs_union_'.ENGINE()->generate_UID().'.pdf' ;
		 $options=array() ;
         $result_convert=$report_obj->execHTML2PDF($source,_DIR_TO_ROOT.DOCS()->storage_pdf.$doc_dir.$target_doc_pdf,array('pdf_options'=>$options['pdf_options'])) ;
	     //damp_array($result_convert) ;
	     if ($result_convert['error']) {?><div class="alert"><?echo $result_convert['error']?></div><?}
         else
         { $after_convert_go_url=$result_convert['PDF_file_name_url'] ;
           REPORT()->panel_view_pdf_convert($result_convert['cmd_uid'],$after_convert_go_url) ;
           // сохраняем в событии имя файла PDF пакета документов - он после подписи будет показан и пойдет на печать
           // надо сохранить и путь к папке где лежит файл
           //$pdf_file_name=str_replace('/docs/pdf/','',hide_server_dir($result_convert['to']))  ;


             // надо сохранить и путь к папке где лежит файл
           if (_sizeof($recs_pass)) foreach($recs_pass as $rec_pass)
           { $pdf_file_name=str_replace('/docs/pdf/','',hide_server_dir($result_convert['to']))  ;
             $data=array('fname'=>$pdf_file_name,'time_print'=>time()) ;
             update_rec_in_table('obj_site_events_pass',$data,'pkey='.$rec_pass['pkey']) ;
             $data=array('status'=>3) ;
             EVENTS()->set_event_personal_data($event_id,$rec_pass['personal_id'],$data,'Документы готовы к выдаче') ;
             // переводим в статус "Проходит ПМО" с отправкой соответствующего уведомления
             $this->fixed_put_packet_docs($event_id,$rec_pass['personal_id']) ;
           }



         }
	   }


    }

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

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


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

          $now=getdate() ;
          // $time_to=mktime(23,59,59,$now['mon'],$now['mday']+$rec_event['_ext_info']['period_to_status_7'],$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']);


          // закрываем старое сообщение о необходимости получить документы
          if ($rec_event_to_personal['mess_id']) PERSONAL()->message_personal_close($rec_event_to_personal['mess_id']) ;

          // и создаем новое сообщение о необходимо сдать документы
          $mess_reffer=PERSONAL()->message_personal_create(array('mess_text'=>$rec_event['_ext_info']['message2'].', срок до '.date('d.m.Y',$time_to),
                                                    'group_id'=>(MEMBER()->cur_group_id)? MEMBER()->cur_group_id:0,
                                                    'account_id'=>(MEMBER()->id)? MEMBER()->id:0,
                                                    'personal_id'=>$personal_id,
                                                    //'max_time'=>$time_to, // срок - 10 дней от даты получения направления
                                                    'view_from'=>$view_from,
                                                    'block_from'=>$block_from,
                                                    //'view_mode'=>1, // показывать при прохождении МО
                                                    //'block_mo'=>1, // блокировать прохождение МО если сообщение не будет закрыто
                                                    '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' // объект, которые будет использоваться в эвентах
                                                    )) ;

          list($mess_id,$mess_pkey)=explode('.',$mess_reffer) ;
          $data=array() ;
          $data['status']=6 ;
          $data['mess_id']=$mess_id ;
          EVENTS()->set_event_personal_data($event_id,$personal_id,$data,'Выдан пакет документов для прохождения ПМО') ;

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


      }

}

?>
