<?
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_meeting/report_personals_in_event_meeting_free.php') ;
       $report_obj=new report_personals_in_event_meeting_free() ;
       $report_obj->filter=$report_obj->filter_array_flip($_POST['filter']);
       if (_sizeof($_POST['_check'])) foreach($_POST['_check'] as $reffer)
       { list($id,$tkey)=explode('.',$reffer) ;
         $report_obj->filter['personal_ids'][$id]=1 ;
       }

       $report_obj->event_id=$_POST['event_id'] ;
       $report_obj->group_id=MEMBER()->cur_group_id ;
       $report_obj->init();
       $usl=$report_obj->create_usl_select_obj() ;
       $cnt=$report_obj->get_cnt_items($usl) ;
       $_SESSION[$arr_id]['filter']=$report_obj->filter ;
       $_SESSION[$arr_id]['info_filter']=$report_obj->get_arr_info_filters() ;
       $_SESSION[$arr_id]['usl_select']=$usl ;
       $_SESSION[$arr_id]['cnt']=$cnt ;

       ?><form class="sky-form no_box_shadow"><div id="panel_buttons"><?
            echo 'Будет отправлено уведомление о приглашении на собрание <strong>'.$cnt.'</strong> '.get_case_by_count_1_2_5($cnt,'сотруднику,сотрудникам,сотрудникам').'<br>' ;
            echo implode('<br>',$_SESSION[$arr_id]['info_filter']) ;
            if ($cnt){?><br><button class="button v2" cmd="events_meeting/set_personal_to_status_2_apply" event_id=<?echo $_POST['event_id']?> arr_id="<?echo $arr_id?>" update_url="<?echo $_POST['update_url']?>">Отправить уведомление</button><?}
         ?><button class="button cancel">Отмена</button></div></form><?

       $this->add_element('show_modal_window','HTML',array('title'=>'Приглашение на собрание')) ;
     }

    function set_personal_to_status_2_apply()
       {  $usl=$_SESSION[$_POST['arr_id']]['usl_select'] ;
          $cnt=$_SESSION[$_POST['arr_id']]['cnt'] ;
          if ($usl)
          { $ids=execSQL_line('select pkey from view_event_personals where '.$usl) ;
            //if (_sizeof($ids)) foreach($ids as $id) EVENTS()->set_event_personal_data($_POST['event_id'],$id,array('status'=>2),'Направлен на ПМО') ;
            $obj_event=EVENTS()->get_event_obj_by_id($_POST['event_id']) ;
            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>' ;
          ?><form class="sky-form no_box_shadow"><div id="panel_buttons"><button class="button cancel">Закрыть</button></div></form><?
          $this->add_element('show_modal_window','HTML',array('title'=>'Приглашение на собрание','after_close_update_page'=>1)) ;
       }
    */


   /*
   function seacrh_personal()
   { $usl=array() ;
     $usl[]='event_id='.$_POST['event_id'] ;
     $usl[]='event_status in (2,3,4,5,6)' ;
     if ($_POST['filter']['name']) $usl[]='obj_name like "%'.addslashes($_POST['filter']['name']).'%"' ;
     if ($_POST['filter']['propusk']) $usl[]='propusk="'.addslashes($_POST['filter']['propusk']).'"' ;
     if ($_POST['filter']['name'] or $_POST['filter']['propusk'])
     { $recs=execSQL('select * from view_event_personals where '.implode(' and ',$usl),2) ;
       //ob_start() ;
       ?><table id="panel_reg_personal_to_start_inst"><?
       $col=0 ;
       if (_sizeof($recs)) foreach($recs as $rec)
           {  if (!$col) echo '<tr>' ; $col++ ;

              ?><td class="item right"><img class="photo" src="<?echo img_clone($rec,'200')?>"></td>
                <td class="item">
                    <div class="name"><?echo $rec['obj_name']?></div>
                    <div class="org_name"><?echo $rec['_org_name']?></div>
                    <div class="otdel_name"><?echo $rec['_otdel_name']?></div>
                    <div class="working_name"><?echo $rec['working_name']?></div>
                    <button class="v2 button_green" cmd="events_meeting/reg_personal" event_id="<?echo $rec['event_id']?>" lession_id="<?echo $_POST['lession_id']?>" event_person_id="<?echo $rec['event_person_id']?>" personal_id="<?echo $rec['pkey']?>">Зарегистрировать</button>
                    <div class="clear"></div>
               </td><?
               if ($col==2) { echo '</tr>' ; $col=0  ;}

           }
       ?></table>
         <style type="text/css">
                 #panel_reg_personal_to_start_inst{width:100%;table-layout:fixed;}
                 #panel_reg_personal_to_start_inst td{vertical-align:top;text-align:center;padding-bottom:25px;}
                 #panel_reg_personal_to_start_inst td.item img{border:1px solid #aaaaaa;float:left;}
                 #panel_reg_personal_to_start_inst td.item .name{font-size:16px;font-weight:bold;}
                 #panel_reg_personal_to_start_inst td.item div.org_name{font-size:13px;}
                 #panel_reg_personal_to_start_inst td.item div.otdel_name{font-size:11px;}
                 #panel_reg_personal_to_start_inst td.item div.working_name{font-size:11px;margin-bottom:12px;}
         </style>
       <?
       //damp_array($rec) ;
       //$text=ob_get_clean() ;
       //$this->add_element('panel_reg_personal_to_start_inst',$text) ;
     }
     ?><div class="center"><button class="button cancel">Закрыть</button></div><?
     $this->add_element('show_modal_window','HTML',array('title'=>'Регистрация сотрудника на инструктаж','width'=>'800px')) ;
   } */

   function get_personal_by_propusk($id)
   {   $fname='propusk' ;
       $debug=0 ;
       $text_en=ENGINE()->translit3(str_replace(array("'",'"','(',')',' ',"\n"),'',$id)) ;
       $_usl=array() ;
       $_usl[]='clss=211' ;
       $_usl[]='enabled=1' ;
       $_usl[]='('.$fname.'="'.$text_en.'" or '.$fname.'="'.$id.'" or '.$fname.'="'.$id.'")' ;
       $usl=implode(' and ',$_usl) ;
       $personal_id=execSQL_value('select pkey from obj_site_personals where '.$usl,$debug) ;
       return($personal_id) ;
   }

   // регистрируем участие в сеансе инструктажа
   function reg_personal_in_lession()
   {   $event_id=(int)$_POST['event_id'] ;
       $lession_id=(int)$_POST['lession_id'] ;
       $debug=0 ;
       if ($_POST['propusk'] and $event_id and $lession_id)
       { // разбить на два этапа
         // 1 - найти id человека по пропуску, источник пропуска - клавитатура
         // 2 - по id проверить участие в мепроприятии

         $personal_id=$this->get_personal_by_propusk($_POST['propusk']) ;
         if ($personal_id)
         {   // ищем пропуск в участиках инструктажа без учета его статуса
             $rec_personal_lession=execSQL_van('select pkey,status from obj_site_lession_persons where event_id='.$event_id.' and parent='.$lession_id.' and personal_id='.$personal_id,$debug) ;
             if (!$rec_personal_lession['pkey'])
             { // добавляем сотрудника в мероприятие, сразу в статус 4 - прибыл
               //adding_rec_to_table('obj_site_events_pass',array('clss'=>223,'event_id'=>$event_id,'personal_id'=>$personal_id,'account_id'=>MEMBER()->id,'status'=>4)) ;
               // регистрируем сотрудника на занятии
               EVENTS()->reg_personal_in_lession($event_id,$lession_id,$personal_id) ;
               $this->update_page=1 ;
             }
             else //if ($rec_personal_event['status']!=7)
             {   //$rec_person_lession_status=execSQL_value('select status from obj_site_lession_persons where parent='.$lession_id.' and personal_id='.$personal_id,$debug) ;
                 //if (!$rec_person_lession_status)
                 //{ // регистрируем сотрудника на занятии
                 //  EVENTS()->reg_personal_in_lession($event_id,$lession_id,$personal_id) ;
                   // изменяем статус участия в мероприятии
                 //  EVENTS()->set_event_personal_data($event_id,$personal_id,array('status'=>4),'Сотрудник зарегистрировался на собрание') ;
                 //  $this->update_page=1 ;
                 //}
                 //else
                     $this->add_element('show_notife','Сотрудник уже зарегистрирован на собрание',array('color'=>'red')) ;
             }
             //else $this->add_element('show_notife','Сотрудник уже получил зачет по данному собранию',array('color'=>'green')) ;
         }
         else $this->add_element('show_notife','Сотрудник не найден',array('color'=>'red')) ;


       }
       $this->add_element('JSCODE','<script type="text/javascript">$j("#propusk").val("").focus() ;</script>') ;
       //$this->add_element('show_modal_window','HTML',array('title'=>'Регистрация сотрудника на инструктаж','width'=>'800px')) ;
   }

   function lession_personal_unregister()
   {  // удаляем сотрудника из занятия
      EVENTS()->lession_personal_unregister($_POST['event_id'],$_POST['lession_id'],$_POST['personal_id']) ;
      // удаляем сотрудника из мероприятия
      //EVENTS()->delete_personal_from_event($_POST['event_id'],$_POST['personal_id']) ;
      $this->update_page=1 ;
   }

   function start_lession()
   {  $result=EVENTS()->start_lession($_POST['lession_id']) ;
      if (!$result['error'])
      { $this->go_url='/cab/events_meeting/lession/'.$_POST['lession_id'].'/' ;
      }
      else $this->add_element('show_notife',$result['error'],array('color'=>'red')) ;
   }

   function stop_lession()
   {  EVENTS()->stop_lession($_POST['lession_id']) ;
      $this->go_url='/cab/events_meeting/lession/'.$_POST['lession_id'].'/sign/' ;
   }

    // начало заняти
	function cancel_lession()
    {  echo 'Пожалуйста, подтвердите отмену собрания<br>' ;
       ?><form class="sky-form no_box_shadow"><div id="panel_buttons"><button class="button v2" cmd="events_meeting/cancel_lession_apply" lession_id="<?echo $_POST['lession_id']?>">Да, отменить собрание</button><button class="button cancel">Отмена</button></div></form><?
       $this->add_element('show_modal_window','HTML',array('title'=>'Отмена собрания','after_close_update_page'=>1)) ;
    }


   function cancel_lession_apply()
   {
      $result=EVENTS()->cancel_lession($_POST['lession_id']) ;
      if (!$result['error'])
      { $this->go_url='/window/events_meeting/lession/'.$_POST['lession_id'].'/' ;
      }
      else $this->add_element('show_notife',$result['error'],array('color'=>'red')) ;
   }


// поиск участника занятия для подписи
   function seach_personal_to_sign()
   {   $event_id=(int)$_POST['event_id'] ;
       $lession_id=(int)$_POST['lession_id'] ;
       $propusk_id=$_POST['propusk'] ;

       $personal_id=$this->get_personal_by_propusk($propusk_id) ;
       if ($personal_id)
       { $rec_lession_pass=execSQL_van('select * from obj_site_lession_persons where event_id='.$event_id.' and parent='.$lession_id.' and personal_id='.$personal_id,2) ;
         if ($rec_lession_pass['pkey'])
         {   if ($rec_lession_pass['status']==4)
             {
               $this->add_element('show_notife','Сотрудник уже подтвердил участие в собрании',array('color'=>'red')) ;
               $this->add_element('propusk','') ;
             }
             else
             {  // no_check_sign_themes - не проверять, все ли темы прослушал сотрудник, так в каждом собрании только одно занятие
                EVENTS()->lession_personal_sign($event_id,$lession_id,$personal_id,'',array('no_check_sign_themes'=>1)) ;
                $this->update_page=1 ;
             }
         }
         else
         { $this->add_element('show_notife','Сотрудник в участниках занятия не найден',array('color'=>'red')) ;
           $this->add_element('propusk','') ;
         }
       } else $this->add_element('show_notife','Сотрудник не найден',array('color'=>'red')) ;

       // проверяем, сколько сотрудников из зарегистрированных на занятие уже расписалось
       //$cnt_all=execSQL_value('select count(pkey) from obj_site_lession_persons where parent='.$_POST['lession_id']) ;
       //$cnt_sign=execSQL_value('select count(pkey) from obj_site_lession_persons where parent='.$_POST['lession_id'].' and status=4') ;
       //if ($cnt_sign==$cnt_all) update_rec_in_table('obj_site_lession',array('status'=>5),'pkey='.$_POST['lession_id']) ;

        $this->add_element('JSCODE','<script type="text/javascript">$j("#propusk").val("").focus() ;</script>') ;
       //$this->add_element('show_modal_window','HTML',array('title'=>'Регистрация сотрудника на инструктаж','width'=>'800px')) ;
     }

   function lession_create()
   {   //damp_array($_POST) ;
       //$this->add_element('show_modal_window','HTML',array('title'=>'Регистрация сотрудника на инструктаж','width'=>'800px')) ;
       if (_sizeof($_POST['theme_ids']))
       { $id=EVENTS()->create_lession_to_event($_POST['event_id'],$_POST['theme_ids'],array('guest_info'=>$_POST['guest_info'],'free_thema'=>$_POST['free_theme'])) ;
         $this->add_element('go_url','/cab/events_meeting/lession/'.$id.'/register/') ;
         //$this->add_element('go_url','/window/events_meeting/card/'.$_POST['event_id'].'/lessions/') ;
         //$this->add_element('show_new_window','/window/events_meeting/lession/'.$id.'/register/') ;

       } else $this->add_element('show_notife','Не выбрана ни одна тема',array('color'=>'red')) ;


   }

   function event_themes_create()
   {  if ($_POST['filter']['new_themes'])
        { $arr_themes=explode("\n",$_POST['filter']['new_themes']) ;
          if (_sizeof($arr_themes)) foreach($arr_themes as $name) EVENTS()->event_theme_create($_POST['event_id'],trim($name)) ;
        }
      $this->update_page=1 ;
   }

   function event_theme_delete()
   {   EVENTS()->event_theme_delete($_POST['event_id'],$_POST['_check']) ;
       $this->update_page=1 ;
   }

   function event_theme_save()
   {   if (_sizeof($_POST['theme_name'])) foreach($_POST['theme_name'] as $id=>$name) EVENTS()->event_theme_save($id,array('obj_name'=>$name,'length'=>$_POST['theme_length'][$id])) ;
       if ($_POST['new_theme_name']) EVENTS()->event_theme_create($_POST['event_id'],array('obj_name'=>trim($_POST['new_theme_name']),'length'=>0)) ;
       //$this->add_element('show_modal_window','HTML',array('title'=>'Регистрация сотрудника на инструктаж','width'=>'800px')) ;
       $this->update_page=1 ;
   }

   function event_theme_up()
   {
      $cur_indx=execSQL_value('select indx from obj_site_events_themes where parent='.$_POST['event_id'].' and pkey='.$_POST['theme_id'].' and clss=225') ;
      $prev_rec=execSQL_van('select pkey,indx from obj_site_events_themes where parent='.$_POST['event_id'].' and indx<'.$cur_indx.' and clss=225 order by indx desc limit 1') ;
      if ($prev_rec['pkey'])
      { execSQL_update('update obj_site_events_schedule set indx='.$prev_rec['indx'].' where pkey='.$_POST['theme_id']) ;
        execSQL_update('update obj_site_events_schedule set indx='.$cur_indx.' where pkey='.$prev_rec['pkey']) ;
        $this->add_element('theme_'.$_POST['theme_id'].'.HTML',$prev_rec['indx']) ;
        $this->add_element('theme_'.$prev_rec['pkey'].'.HTML',$cur_indx) ;

      }
   }

   function event_theme_down()
   {
      $cur_indx=execSQL_value('select indx from obj_site_events_themes where parent='.$_POST['event_id'].' and pkey='.$_POST['theme_id'].' and clss=225') ;
      $next_rec=execSQL_van('select pkey,indx from obj_site_events_themes where parent='.$_POST['event_id'].' and indx>'.$cur_indx.' and clss=225 order by indx limit 1') ;
      if ($next_rec['pkey'])
      { execSQL_update('update obj_site_events_schedule set indx='.$next_rec['indx'].' where pkey='.$_POST['theme_id']) ;
        execSQL_update('update obj_site_events_schedule set indx='.$cur_indx.' where pkey='.$next_rec['pkey']) ;
        $this->add_element('theme_'.$_POST['theme_id'].'.HTML',$next_rec['indx']) ;
        $this->add_element('theme_'.$next_rec['pkey'].'.HTML',$cur_indx) ;
      }
   }

   function delete_theme_docs()
   {
       execSQL_update('delete from obj_site_events_themes_files where pkey='.$_POST['doc_id']) ;
       $this->go_url=$_POST['after_delete_go_url'] ;

   }

   function check_lession_sign_before_report_create()
   {  $event_id=$_POST['event_id'] ;
      $rec_lession=EVENTS()->get_lession_by_id($_POST['lession_id']) ;
      $list_recs=execSQL_row('select pkey,obj_name from view_lession_personals where lession_id='.$_POST['lession_id'].' and lession_person_status<4') ;
      ?><div id="panel_filter">
          <form id="sky-form" class="sky-form">
              <strong>Внимание! </strong><br>Еще не подтвердили участие в собрании сотрудники:<br>
              <? if (_sizeof($list_recs)) foreach($list_recs as $id=>$value) {?>&nbsp;&nbsp;&nbsp;- <strong><?echo $value?></strong><br><?}?>
              Вы действительно хотите перейти к формированию ведомости?
              <input type="hidden" name="url_page_doc_view" value="/cab/events_meeting/lession/<?echo $rec_lession['pkey']?>/report/">
              <input type="hidden" name="filter[lession_id]" value="<?echo $rec_lession['pkey']?>">
              <input type="hidden" name="obj_reffer" value="<?echo $rec_lession['_reffer']?>">
              <input type="hidden" name="event_id" value="<?echo $event_id?>">
              <input type="hidden" name="lession_id" value="<?echo $rec_lession['pkey']?>">
              <input type="hidden" name="report_seria" value="<?echo htmlspecialchars(MEMBER()->cur_group_name)?>">
              <input type="hidden" name="report_code" value="meeting_lession_registr">
              <button class="button v2" cmd="docs/doc_create">Сформировать ведомость</button>
              <button class="button cancel">Отмена</button>
           </form>
        </div>
      <?
      $this->add_element('show_modal_window','HTML',array('title'=>'Переход к формированию ведомости')) ;
   }


   function delete_check_lession()
   {  echo 'Будет удалено <strong>'._sizeof($_POST['_check']).'</strong> занятий<br>' ;
       ?><div class="center">
             <button class="v2" cmd="events_meeting/delete_check_lession_apply" lession_ids="<?echo implode(',',array_keys($_POST['_check']))?>">Удалить</button>
             <button class="cancel">Отмена</button>
         </div><?
       $this->add_element('show_modal_window','HTML',array('title'=>'Удаление выбранных занятий')) ;
   }

   function delete_check_lession_apply()
   {  if ($_POST['lession_ids'])
      { execSQL_update('delete from obj_site_lession where pkey in ('.$_POST['lession_ids'].') and status=6') ;
        LOGS()->reg_log('Удаление занятий','Удалены отменнные занятия: '.$_POST['lession_ids']) ;
      }
      $this->update_page=1 ;
   }


}
