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

   function get_panel_select_group()
   {  $rec_personal=PERSONAL()->get_personal_by_id($_POST['personal_id']) ;
      //if (_sizeof($rec_personal['_groups'])) damp_array($rec_personal['_groups']) ;
     //damp_array($_POST) ;
      ?><div id="get_panel_select_group"><?
       if (_sizeof(_IL('IL_groups')->recs)) foreach(_IL('IL_groups')->recs as $rec) if ($rec['enabled'])
          {?><div class="item"><label><input type="checkbox" <?if (isset($rec_personal['_groups'][$rec['id']])) echo 'checked'?> value="1" class="v2" cmd="aspmo_personal/set_personal_group" group_reffer="<?echo $rec['_reffer']?>" group_id="<?echo $rec['id']?>" personal_reffer="<?echo $rec_personal['_reffer']?>">&nbsp;&nbsp;<?echo $rec['obj_name']?></label></div><?}
       ?><div class="center"><button class="cancel">Закрыть</button></div><?
     ?></div><?
     $this->add_element('show_modal_window','HTML',array('title'=>'Выбор группы сотрудника')) ;

   }

    function set_personal_group()
    { $checked=$_POST['checked'] ;
      if ($checked) { create_link($_POST['personal_reffer'],$_POST['group_reffer']) ; $this->add_element('show_notife','Сотрудник добавлен в группу') ; }
      else          { delete_link($_POST['personal_reffer'],$_POST['group_reffer']) ; $this->add_element('show_notife','Сотрудник удален из группы') ; }

      PERSONAL()->group_personal_change($_POST['group_id']) ;
      $rec_personal=PERSONAL()->get_personal_by_id($_POST['personal_reffer']) ;
      $this->add_element('personal_groups.HTML',$rec_personal['_groups_names']) ;
      //$this->add_element('show_modal_window','HTML',array('title'=>'Выбор группы сотрудника')) ;
    }

    function set_org_group()
    {
       $cnt=execSQL_update('update obj_site_personals set group_id='.$_POST['group_id'].' where pkey='.$_POST['org_id']) ;
       if ($cnt) $this->add_element('show_notife','Сохранено',array('color'=>'green')) ;
       //$this->add_element('show_modal_window','HTML',array('title'=>'set_org_group')) ;
    }


   function get_panel_create_org()
   { include_once('panel_org_create.php')  ;
     if ($_POST['org_id']=='new')
     { panel_org_create(array('def_park'=>$_POST['park_id'],'client_id'=>$_POST['client_id'])) ;
       $this->add_element('show_modal_window','HTML',array('title'=>'Добавляем новую организацию')) ;
     }
     else
     { execSQL_update('update obj_site_personals set parent='.$_POST['org_id'].' where pkey='.$_POST['park_id'].' and clss=208') ;
       reboot_engine() ;
       $this->add_element('update_page',1) ;
     }
   }

   function get_panel_delete_personal()
   { $rec_personal=PERSONAL()->get_personal_by_id($_POST['id']) ;
     ?><p class="center">Вы действительно хотите удалить сотрудника</p>
       <p class="center"><strong><?echo $rec_personal['obj_name']?></strong>?</p>
       <br>
       <p class="center"><button class="v2" cmd="aspmo_personal/delete_personal" id="<?echo $rec_personal['pkey']?>">Удалить</button>&nbsp;&nbsp;&nbsp;<button class="cancel">Отмена</button></p>

     <?
     $this->add_element('show_modal_window','HTML',array('title'=>'Удаление сотрудника')) ;
   }

   function delete_personal()
   { $rec_personal=PERSONAL()->get_personal_by_id($_POST['id']) ;
     if ($rec_personal['pkey'])
     { execSQL_update('update obj_site_personals set enabled=0 where pkey='.$rec_personal['pkey']) ;
       LOGS()->reg_log('Удаление сотрудника',$rec_personal['obj_name'].' (id '.$rec_personal['pkey'].')') ;
       $this->add_element('update_page',1) ;
     }


   }

   function create_org()
   {  $org_id=PERSONAL()->create_org($_POST['org']) ;
      if ($_POST['def_park']) execSQL_update('update obj_site_personals set parent='.$org_id.' where pkey='.$_POST['def_park'].' and clss=208') ;
      reboot_engine() ;
      $this->add_element('update_page',1) ;
   }

   function delete_org_from_park()
   {  if ($_POST['park_id']) execSQL_update('update obj_site_personals set parent=1 where pkey='.$_POST['park_id'].' and clss=208') ;
      reboot_engine() ;
      $this->add_element('update_page',1) ;
   }


  function save_org()
  {   $res=array() ;
      if ($_POST['org_id']) $res[]=PERSONAL()->save_org($_POST['org_id'],$_POST['org']) ;
      //if (_sizeof($_POST['otdel'])) foreach($_POST['otdel'] as $otdel_id=>$otdel_name) $res[]=PERSONAL()->update_personal_section_name($otdel_id,$otdel_name) ;
      reboot_engine() ;
      $this->add_element('go_url','/cab/personal/org/') ;
  }

  function save_otdel()
  {   $res=array() ;
      if (_sizeof($_POST['otdel'])) foreach($_POST['otdel'] as $otdel_id=>$otdel_name) $res[]=PERSONAL()->save_otdel($otdel_id,array('obj_name'=>$otdel_name)) ;
      reboot_engine() ;
      $this->add_element('update_page',1) ;
  }

  function add_otdel()
  { if ($_POST['new_otdel'] and $_POST['org_id'])
    { PERSONAL()->create_otdel($_POST['org_id'],array('obj_name'=>$_POST['new_otdel'])) ;
      $this->add_element('update_page',1) ;
      reboot_engine() ;
    }
  }

  function after_delete_otdel()
  {
      $rec_otdel=PERSONAL()->get_org_by_id($_POST['otdel_id']) ;
      $personal=execSQL_value('select count(pkey) from obj_site_personals where parent'.$rec_otdel['level'].'='.$_POST['otdel_id']);
      if (!$personal) {
          ?><p class="center">Вы действительно хотите удалить подразделение</p>
          <p class="center"><strong><?echo $rec_otdel['obj_name'] ?></strong>?</p><br>
          <p class="center">
          <button class="v2" cmd="aspmo_personal/delete_otdel_or_org" otdel_id="<?echo $rec_otdel['pkey'] ?>">Удалить</button>&nbsp;&nbsp;&nbsp;<button class="cancel">Отмена</button></p><?
          $this->add_element('show_modal_window', 'HTML', array('title' => 'Удаление подразделения'));
      } else {
          ?><p class="center">В подразделении <strong><?echo $rec_otdel['obj_name'] ?></strong> есть <?echo $personal.' '.get_case_by_count_1_2_5($personal,'сотрудник,сотрудника,сотрудников')?>!</p>
          <p class="center">Удалить данное подразделение, нельзя</p><br>
          <p class="center"><button class="cancel">Отмена</button></p><?
          $this->add_element('show_modal_window', 'HTML', array('title' => 'Удаление подразделения'));
      }
  }

  function delete_otdel_or_org()
  { if ($_POST['otdel_id']) PERSONAL()->delete_otdel_or_org($_POST['otdel_id']) ;
    if ($_POST['org_id']) PERSONAL()->delete_otdel_or_org($_POST['org_id']) ;
    $this->add_element('update_page',1) ;
    //$this->add_element('show_modal_window','HTML') ;
    reboot_engine() ;
  }

  function after_delete_org()
  {
      $rec_org=PERSONAL()->get_org_by_id($_POST['org_id']) ;
      $child=execSQL_row('select clss,count(pkey) from obj_site_personals where parent2='.$_POST['org_id'].' and enabled=1 and _enabled=1 group by clss');
      if (!$child['208'] and !$child['211']) {
          ?><p class="center">Вы действительно хотите удалить организацию</p>
          <p class="center"><strong><?echo $rec_org['obj_name'] ?></strong>?</p><br>
          <p class="center">
          <button class="v2" cmd="aspmo_personal/delete_otdel_or_org" org_id="<?echo $rec_org['pkey'] ?>">Удалить</button>&nbsp;&nbsp;&nbsp;<button class="cancel">Отмена</button></p><?
          $this->add_element('show_modal_window', 'HTML', array('title' => 'Удаление организации'));
      } else {
          ?><p class="center">В организации <strong><?echo $rec_org['obj_name'] ?></strong> есть <?if ($child['208']) { echo $child['208'].' '.get_case_by_count_1_2_5($child['208'],'подразделение,подразделения,подразделений');} if ($child['211'] and $child['208']) { echo ' и '; } if ($child['211']) { echo $child['211'].' '.get_case_by_count_1_2_5($child['211'],'сотрудник,сотрудника,сотрудников');}?>!</p>
          <p class="center">Удалить данную организацию нельзя</p><br>
          <p class="center"><button class="cancel">Отмена</button></p><?
          $this->add_element('show_modal_window', 'HTML', array('title' => 'Удаление подразделения'));
      }
  }

    function after_transfer_personals()
    {
        include_once(_DIR_TO_MODULES.'/engine/i_report.php');
        $rec_org=PERSONAL()->get_org_by_id($_POST['org_id']) ;
        if ($_POST['otdel_id']) $persons=execSQL('select pkey,obj_name from obj_site_personals where clss=211 and enabled=1 and parent2='.$_POST['org_id'].' and parent3='.$_POST['otdel_id']);
        else $persons=execSQL('select pkey,obj_name from obj_site_personals where clss=211 and enabled=1 and parent2='.$_POST['org_id']);
        ?><div id="panel_filter">
        <p><b>Для перевода сотрудников в другую организацию/подразделение необходимо:</b></p>
        <p><b>1.</b> Выбрать сотрудников для перевода</p><br>
        <form id="sky-form" class="sky-form"><?
            if ($persons) {?>
                <input class="hidden" name="old_org_id" value="<?echo $rec_org['pkey'] ?>">
                <div class="row">
                    <?REPORT()->filter_section_select_multiple('personals','Выберите сотрудников для перевода:',10,$persons);?>
                </div>
            <?}
            $orgs=execSQL('select pkey,obj_name from obj_site_personals where clss=207 order by obj_name'); //PERSONAL()->get_arr_orgs_to_cur_account('pkey != '.$rec_org['pkey']) ; не все!
            if ($orgs) {?>
        <br><p><b>2.</b> Выбрать организацию, в которую будем переводить сотрудников</p><br>
                <div class="row">
                    <?REPORT()->filter_section_select('org_id','Выберите организацию для перевода:',10,$orgs);?>
                </div>
            <?} ?>
        <br><p><b>3.</b> После нажатия на кнопку выбрать, при наличии подразделений у организации будет предложено выбрать подразделение, в которое перевести сотрудников.</p>
            <div id="panel_buttons">
                <button class="button v2" cmd="aspmo_personal/select_otdel_for_transfer" title="Перейти к выбору подразделения">Выбрать</button>
                <button class="button v2 cancel" title="Отменить перевод сотрудников">Отмена</button>
            </div><br>
        </form></div>
        <? $this->add_element('show_modal_window', 'HTML', array('title' => 'Перевод сотрудников'));
    }

    function select_otdel_for_transfer()
    {
        include_once(_DIR_TO_MODULES.'/engine/i_report.php');
        $old_org_id = $_POST['old_org_id'] ;
        $personals = $_POST['filter']['personals'];
        $pkeys_person = implode(',',$personals);
        $new_org_id = $_POST['filter']['org_id'];
        $arr_otdel_ids=PERSONAL()->get_arr_otdels_to_cur_account([$new_org_id=>0]) ;
        ?><div id="panel_filter"><form id="sky-form" class="sky-form">
            <input class="hidden" name="old_org_id" value="<?echo $old_org_id?>">
            <input class="hidden" name="personals" value="<?echo $pkeys_person?>">
            <input class="hidden" name="new_org_id" value="<?echo $new_org_id?>">
        <?
        if ($arr_otdel_ids) {?>
            <div class="row">
                <?REPORT()->filter_section_select('otdel_id','Выберите подразделение для перевода:',10,$arr_otdel_ids);?>
            </div><?
        } else {
            $old_org = PERSONAL()->get_org_by_id($old_org_id);
            $new_org = PERSONAL()->get_org_by_id($new_org_id);
            ?>
            <p>Перевести <?echo count($personals)?> сотрудников из организации <?echo $old_org['obj_name']?> в организацию <?echo $new_org['obj_name'];?></p>
        <?}?>
        <div id="panel_buttons">
            <button class="button v2" cmd="aspmo_personal/transfer_personals" title="После подтвержения, отменить действие будет не возможно">Подтведить перевод сотрудников</button>
            <button class="button v2 cancel" title="Отменить перевод сотрудников">Отмена</button>
        </div>
        <? $this->add_element('show_modal_window', 'HTML', array('title' => 'Перевод сотрудников'));
    }

    function transfer_personals()
    {
        $old_org_id = $_POST['old_org_id'] ;
        $personals = $_POST['personals'];
        $new_org_id = $_POST['new_org_id'];
        $otdel_id = $_POST['filter']['otdel_id'];
        $set = 'parent2='.$new_org_id;
        if ($otdel_id) $set .= ', parent3='.$otdel_id;
        else $set .= ', parent3=0';
        $count = execSQL_update('update obj_site_personals set '.$set.' where parent2='.$old_org_id.' and pkey in ('.$personals.')');
        LOGS()->reg_log('transfer personals', 'update '.$count.' rows',['data'=>$_POST]);
        $this->add_element('update_page',1) ;
    }

  function search_personal()
  {  //$this->add_element('show_modal_window','HTML') ;
     //damp_array($_POST,1,-1) ;
     $personal_ids='' ; $options=array() ;
     ob_start() ;
     if ($_POST['search_text'])
     { ob_start() ;
       $arr_ids=PERSONAL()->search_personal_ids($_POST['search_text']) ;
       if (_sizeof($arr_ids)) $options['personal_id']=implode(',',$arr_ids) ;
       else                  $options['personal_id']=-1 ;
       $options['personal_id_search']=$_POST['search_text'] ;
       $text=ob_get_clean() ;
       //damp_array($_POST) ;
       $options['personal_id_debug']=$text ;
     }

     $options['pages_base_url']=$_SERVER['HTTP_REFERER'] ;
     $options['client_id']=$_POST['client_id'] ;
     $options['view_ext']=$_POST['view_ext'] ;
     $options['view_fired']=$_POST['view_fired'] ;

     if ($_SESSION['list_personal_filter_org'])  $options['org_id']=$_SESSION['list_personal_filter_org'] ;
     if ($_SESSION['list_personal_filter_park']) $options['park_id']=$_SESSION['list_personal_filter_park'] ;
     if ($personal_ids)                          $options['personal_id']=$personal_ids ;


     include_once(_DIR_EXT.'/aspmo_personal/panel_list_personal.php') ;
     $cnt=panel_list_personal($options) ;
     $this->add_element('panel_list_personal.HTML',ob_get_clean()) ;

     if ($cnt) $this->add_element('show_notife','Найдено '.$cnt.' сотрудников',array('type'=>'info')) ;
     else      $this->add_element('show_notife','Сотрудников не найдено',array('type'=>'info')) ;
  }

  function change_personal_sort()
  {  $_SESSION['list_members_sort_mode']=$_POST['sort_mode'] ;
     $this->add_element('show_notife','Сортировка изменена',array('type'=>'info')) ;
     $this->search_personal() ;
  }

  function set_filter_park()
  {  $_SESSION['list_personal_filter_park']=($_POST['value']==-1)? 0:$_POST['value'] ;
     //$this->add_element('show_notife','Фильтр изменен',array('type'=>'info')) ;
     $this->search_personal() ;
  }

  function set_filter_org()
  {  $_SESSION['list_personal_filter_org']=($_POST['value']==-1)? 0:$_POST['value'] ;
     //$this->add_element('show_notife','Фильтр изменен',array('type'=>'info')) ;
     $this->search_personal() ;
  }


  //==========================================================================================================================================================================
  // Работа с сотрудниками предприятия
  //==========================================================================================================================================================================

 function get_panel_personal_create()
 { include(_DIR_EXT.'/aspmo_personal/panel_personal_edit.php') ;
   if (!$_POST['to_extlist']) { panel_personal_edit(array('save_cmd'=>'personal_create','to_extlist'=>0)) ; $title='Добавление нового сотрудника' ; }
   else                       { panel_personal_edit(array('save_cmd'=>'personal_create','to_extlist'=>1)) ; $title='Добавление в дополнительный список' ; }
   $this->add_element('show_modal_window','HTML',array('title'=>$title)) ;
 }

 function get_panel_personal_edit_info()
 {

   $rec_personal=PERSONAL()->get_personal_by_id($_POST['reffer']) ;
   if ($rec_personal['pkey'])
   { include(_DIR_EXT.'/aspmo_personal/panel_personal_edit.php') ;
     panel_personal_edit(array('rec'=>$rec_personal,'save_cmd'=>'personal_save')) ;
     $this->add_element('show_modal_window','HTML',array('title'=>'Редактирование данных сотрудника')) ; ;
   }
   else $this->add_element('show_notife','Сотрудник не найден или нет прав доступа',array('type'=>'error')) ;
 }

 function personal_create()
 { //LOGS()->reg_log('Вызов AJAX:personal_create','',array('data'=>$_POST)) ;
   // TODO из-за наличия двух кнопок submit вызов ajax происходит два раза. Добавлена проверка по пропуску, чтобы заблокировать создание второго аккаунта
   $rec_personal=PERSONAL()->get_personal_by_propusk($_POST['propusk']) ;
   if (!$rec_personal['pkey']) $reffer=PERSONAL()->personal_create($_POST) ;
   else                        $reffer=$rec_personal['_reffer'] ;
   $this->add_element('close_mBox_window','all') ;
   if ($reffer) {
       $rec_personal=PERSONAL()->get_personal_by_id($reffer) ;

       $this->go_url=$rec_personal['__href_window'];
       if ($_POST['make_photo']) $_SESSION['make_personal_photo']=1;

                      /*switch($_POST['after_create'])
                       { case 'list': if (!$_POST['to_extlist']) $this->add_element('go_url','/cab/personal/') ;
                                      else                       $this->add_element('go_url','/cab/personal/extlist/') ;
                                      $_SESSION['after_personal_create']='list' ;
                                      break ;
                         case 'card': ob_start() ;
                                      ?><script type="text/javascript">var newWin=window.open("<?echo $rec_personal['__href']?>",'win_second','status=1,dependent=1,width=1920,height=1000,left=1920,top=200, resizable=1, scrollbars=yes') ;newWin.focus() ;</script><?
                                      $_SESSION['after_personal_create']='' ;
                                      $this->add_element('JSCODE',ob_get_clean()) ;
                                      $this->go_url=$rec_personal['__href_window'] ;
                                      break ;
                         case 'photo': if ($rec_personal['pkey'])
                                        { include(_DIR_EXT.'/webcamera_capture/panel_photo_capture.php') ;
                                          panel_photo_capture(array('title'=>'Фото сотрудника','save_cmd'=>'webcamera_capture/save_capture_photo','rec'=>$rec_personal)) ;
                                          $this->add_element('show_modal_window','HTML',array('width'=>'700px','after_close_func'=>'stop_video_capture')) ;
                                        }
                                       $_SESSION['after_personal_create']='photo' ;
                                       break ;
                       }*/
                    }
    else $this->add_element('show_notife','Не удалось добавить нового сотрудника',array('type'=>'error')) ;

 }

 function personal_save()
 { if (!is_member_right('personal_change_propusk')) {unset($_POST['propusk']) ; $this->add_element('show_notife','Нет прав для измерения номера пропуска',array('type'=>'alert')) ; }
   if (isset($_POST['propusk'])) $_POST['propusk_uptime']=time() ;
   $res=PERSONAL()->personal_save($_POST['reffer'],$_POST,array('source_action'=>'Карточка сотрудника')) ;
   //damp_array($_POST) ; damp_array($res) ; $this->add_element('success','modal_window') ; ; return ;

   if ($res['update'])                       { //$this->add_element('show_notife','Сохранено',array('type'=>'info')) ;
                                               $this->update_page=1 ;
                                             }
   else if($res['found'] and !$res['update'])  { $this->add_element('show_notife','Изменений не произведено',array('type'=>'info')) ; $this->add_element('close_mBox_window','all') ; }
   else                                        { $this->add_element('show_notife','Не удалось сохранить изменения',array('type'=>'info')) ; $this->add_element('close_mBox_window','all') ; }
 }


 function get_panel_upload_photo()
 {  include_once('panel_upload_img.php') ;
    panel_upload_img() ;
    $this->add_element('show_modal_window','HTML',array('title'=>'Загрузка фото')) ;

 }

 function leave_propusk()
 {  $rec_personal=PERSONAL()->get_personal_by_id($_POST['id']) ;
    $new_propusk='id'.$rec_personal['pkey'] ;
    LOGS()->reg_log('Освобождение пропуска',$rec_personal['propusk'].' => '.$new_propusk,array('personal_id'=>$rec_personal['_reffer'])) ;
    PERSONAL()->personal_save($rec_personal['_reffer'],array('propusk'=>$new_propusk),array('source_action'=>'Карточка сотрудника')) ;
    $this->add_element('panel_propusk',$new_propusk) ;
    $this->add_element('show_notife','Пропуск "'.$rec_personal['propusk'].'" освобожден',array('type'=>'info')) ;
 }


    //==========================================================================================================================================================================
    // Сообщения сотрудникам
    //==========================================================================================================================================================================

    // диалоговое окно вызова на прием
    function send_mess_to_personal()
    {   //$now=getdate() ;
        //$tt=date('d.m.Y',mktime(0,0,0,$now['mon'],$now['mday']+5,$now['year']));
        //damp_array($_POST);
        $setting_uid='' ; $rec_personal=[] ; $button_options=[] ;
        if ($_POST['personal_id'])
        {   $rec_personal=PERSONAL()->get_personal_by_id($_POST['personal_id']) ;
            $button_options=['personal_id'=>$rec_personal['pkey']] ;
            ?><div class="left" id="panel_mess_to_personal"><form>

                <table class="person_info">
                    <tr>
                        <td><img src="<?echo img_clone($rec_personal,'small')?>"></td>
                        <td>
                            <div class="name1"><? echo $rec_personal['name1']?></div>
                            <div class="name2"><? echo $rec_personal['name2'].' '.$rec_personal['name3']?></div>
                            <div class="person_info"><span><? echo $rec_personal['_org_name']?>,</span> <span><?echo $rec_personal['_otdel_name']?>,</span> <span><? echo $rec_personal['_work_name']?></span></div>
                        </td>
                    </tr>
                </table>
                <?
        }
        if (_sizeof($_POST['filter']))
        { include_once(_DIR_EXT.'/personal/report_personals_ids_by_filter.php');
          $report_obj=new report_personals_ids_by_filter();
          // внимание, в  $_POST['filter'] значения элементов в мультисписках идут не в индексах, а в значениях
          $report_obj->filter=ENGINE()->filter_array_flip($_POST['filter']) ;
          //$report_obj->no_use_account_usl_select=1 ;
          $usl=$report_obj->create_usl_select_obj();
          $cnt=$report_obj->get_cnt_items($usl) ; // этот отчет дает ФЛ, тут не могут иметь место искажения из-за совмещенцев
          echo 'Сообщения будут отправлены <strong>'.$cnt.'</strong> сотрудникам, отобранных по следующим условиям:<br>';
          $info_filter=$report_obj->panel_info_filter();
          if($info_filter) echo '<div style="width:100%;height:100px;overflow:scroll;border:1px solid gray;text-align:left;">'.strip_tags(nl2br($info_filter)).'</div>';
          $setting_uid=ENGINE()->save_temp_setting(['filter'=>$_POST['filter']]) ;
          $button_options=['setting_uid'=>$setting_uid] ;

        }

        ?><p><strong>Ваше сообщение сотруднику:</strong> </p><?

          FORM()->form_open() ;
          FORM()->section_textarea(['title'=>'Текст сообщения','name'=>'mess_text','required'=>1,'col_count'=>12]) ;
          FORM()->section_input(['title'=>'Показывать от:','name'=>'view_from','type'=>'date','col_count'=>6,'value'=>date('Y-m-d')]); ;
          FORM()->section_input(['title'=>'Показывать до:','name'=>'view_to','type'=>'date','col_count'=>6]) ;
          FORM()->section_input(['title'=>'Блокировать МО от:','name'=>'block_from','type'=>'date','col_count'=>6]) ;
          FORM()->section_input(['title'=>'Блокировать МО до:','name'=>'block_to','type'=>'date','col_count'=>6]) ;
          ?><div class="clear"></div>
                      <ul>
                          <li class="green">Сообщение будет закрыто автоматически, если задана дата окончания показа</li>
                          <li class="green">Если не задана дата окончания блокировки - прохождение МО будет заблокировано, пока сообщение не будет закрыто</li>
                      </ul>
                      <div class="clear"></div><?
          FORM()->button('Отправить сообщение','aspmo_personal/send_mess_to_personal_apply',$button_options) ;
          FORM()->button(['title'=>'Отмена','class'=>'cancel']) ;
          ?>
        </form></div>
        <style type="text/css">
            div#panel_mess_to_personal{font-size:13px;}
            div#panel_mess_to_personal table.person_info{width:100%;table-layout:fixed;border-collapse:collapse;}
            div#panel_mess_to_personal table.person_info td:first-child{width:120px;}
            div#panel_mess_to_personal table.person_info td:last-child{width:auto;}
            div#panel_mess_to_personal table.mess_params{width:100%;table-layout:auto;border-collapse:collapse;margin:5px 0 10px 0; }
            div#panel_mess_to_personal ul{margin-left:0;padding-left:40px;}
        </style>
        <script type="text/javascript">
            $j('input.datepicker').datepicker($j.datepicker.regional["ru"]);
        </script>

        <?
        $this->add_element('show_modal_window','HTML',array('title'=>'Отправка сообщения сотруднику')) ;

    }

    function mess_to_personal_save()
    {   PERSONAL()->message_personal_save($_POST['mess_id'],$_POST['mess']) ;
        ?><div class="center"><button class="cancel">Закрыть</button></div><?
        //$this->add_element('panel_debug_info');
        //$this->update_page=1 ;

        //damp_array($_POST) ;
        //$rec_mess=PERSONAL()->get_message_by_id($_POST['mess_id']) ;
        //echo date('d.m.Y H:i:s',$rec_mess['max_data']) ;
        $this->add_element('show_modal_window','HTML',array('title'=>'Сохранение сообщения','after_close_update_page'=>1,'width'=>1000)) ;
    }

    // отмена вызова на прием - исполнение
    function send_mess_to_personal_apply()
    {  if ($_POST['personal_id']) PERSONAL()->message_personal_create($_POST) ;
       if ($_POST['setting_uid'])
       {
           $settings=ENGINE()->load_temp_setting($_POST['setting_uid']) ;
           if (isset($settings['filter']))
           {
              include_once(_DIR_EXT.'/personal/report_personals_ids_by_filter.php');
              $report_obj=new report_personals_ids_by_filter();
              // внимание, в  $_POST['filter'] значения элементов в мультисписках идут не в индексах, а в значениях
              $report_obj->filter=ENGINE()->filter_array_flip($settings['filter']) ;
              //$report_obj->no_use_account_usl_select=1 ;
              $usl=$report_obj->create_usl_select_obj();
              $arr_ids=$report_obj->get_items($usl) ;
              //damp_array($arr_ids);
              $cnt_mess_send=0 ;
              if (sizeof($arr_ids)) foreach ($arr_ids as $rec)
                  {
                      $data=$_POST ;
                      $data['personal_id']=$rec['pkey'];
                      $mess_reffer=PERSONAL()->message_personal_create($data) ;
                      if ($mess_reffer) $cnt_mess_send++ ;
                  }
              echo 'Было отправлено <strong>'.$cnt_mess_send.'</strong> сообщений<br>' ;
           }
       }
       $this->add_element('close_mBox_window','all') ;
       $this->add_element('show_modal_window','HTML',array('title'=>'Отправка сообщения сотруднику','after_close_update_page'=>1)) ;
       ?><div id="panel_mess_to_personal">
            <div class="info">Ваше сообщение отправлено</div>
            <div class="center"><button class="cancel">Закрыть</button></div><br>
         </div>
        <style type="text/css">
            div#panel_mess_to_personal{font-size:13px;}
            div#panel_mess_to_personal div.info{font-size:16px;text-align: center;margin:20px 0;}
        </style>
        <?
    }

    function personal_message_close()
    {  PERSONAL()->message_personal_close($_POST['mess_id']) ;
       $this->add_element('update_page',1) ;
    }

    function personal_message_repeat()
      {   PERSONAL()->message_personal_repeat($_POST['mess_id']) ;
          $this->add_element('update_page',1) ;
      }

    function personal_message_add_day()
    {   $rec_mess=PERSONAL()->get_message_by_id($_POST['mess_id']) ;
        //$block_from=($rec_mess['block_from'])? $rec_mess['block_from']:$rec_mess['max_data']  ;
        $block_from=$rec_mess['block_from']  ;
        ?><form><div class="center">
                      <p>Вы изменяете дату начала блокировки прохождения МО</p>
                      <p>Укажите число дней, на котор надо отсрочить блокировку <br><input type="text" name="day" class="small" value="10" style="width:50px;font-size:20px;text-align:center;font-weight:bold;"> дней от <strong><?echo date('d.m.Y',$block_from)?></strong></p><br>
                      <button class="v2" cmd="aspmo_personal/personal_message_add_day_apply" mess_id="<?echo $_POST['mess_id']?>">Применить</button>&nbsp;&nbsp;&nbsp;&nbsp;
                      <button class="cencel">Отмена</button>
                 </div></form><?

        $this->add_element('show_modal_window','HTML',array('title'=>'Отсрочка блокировки','after_close_update_page'=>1,'_width'=>'700px')) ;
    }

    function personal_message_add_day_apply()
    {  $rec_mess=PERSONAL()->get_message_by_id($_POST['mess_id']) ;
       if ($rec_mess['pkey']) PERSONAL()->message_personal_add_day($rec_mess['pkey'],$_POST['day']) ;
        $this->add_element('update_page',1) ;
    }

    function set_fields_XLS_ESMO()
        {  $setting=unserialize(stripslashes($GLOBALS['LS_import_XLS_setting_'.$_POST['account_id']])) ;
           $setting['set'][$_POST['el_name']]=$_POST['el_value'] ;
           update_site_setting('LS_import_XLS_setting_'.$_POST['account_id'],addslashes(serialize($setting))) ;
       $this->add_element('show_notife','Сохранено',array('color'=>'green')) ;
    }

    function check_personal_messages()
    {   //damp_array($_POST) ;
        $rec_personal=PERSONAL()->get_personal_by_id($_POST['personal_id']) ;
        ESMO()->check_personal_message($rec_personal) ;
        $arr['__check_comment']=$rec_personal['__check_comment'] ;
        $arr['__terminal_comment']=$rec_personal['__terminal_comment'] ;
        $arr['__check']=$rec_personal['__check'] ;
        $arr['__pause']=$rec_personal['__pause'] ;
        damp_array($arr,1,-1) ;
        ?><br><div class="center"><button class="button cancel">Закрыть</button></div><?

        $this->add_element('show_modal_window','HTML',array('title'=>'Проверка сообщений сотруднику','after_close_update_page'=>1)) ;
    }

    function personal_merge()
    {
        //damp_array($_POST) ;
        $person_ids=implode(',',$_POST['person_ids']) ;
        $arr_persons=execSQL('select * from view_personals where pkey in ('.$person_ids.')') ;
        echo 'Объединить '._sizeof($arr_persons).' учетных записей в одну? После объединения операция не сможет быть отменена.<br><br>' ;
        echo '<p><button class="v2" cmd="aspmo_personal/personal_merge_apply" personal_ids="'.$person_ids.'" main_id="'.$_POST['check_person'].'" form_id="'.$_POST['form_id'].'">Да, подтверждаю</button>&nbsp;&nbsp;&nbsp;<button class="cancel">Отмена</button></p>' ;

        $this->add_element('show_modal_window','HTML',array('title'=>'Объединение учетных записей','_after_close_update_page'=>0)) ;

    }

  function personal_merge_apply()
    {
        //damp_array($_POST) ;
        ob_start() ;
$main_id=$_POST['main_id'] ;
        $personal_ids=$_POST['personal_ids'] ;
        if (!$main_id and $_POST['check_person'])
        { $main_id=$_POST['check_person'] ;
          $personal_ids=implode(',',$_POST['person_ids']) ;
         }

        echo 'main_id: '.$main_id.'<br>' ;
        echo 'personal_ids: '.$personal_ids.'<br>' ;


        $sql='update obj_site_personals_image set parent='.$main_id.' where parent in ('.$personal_ids.')' ; //echo $sql.'<br>' ;
        $count=execSQL_update($sql) ;
        if ($count) echo 'Фотографии сотрудника - затронуто <strong>'.$count.'</strong> '.get_case_by_count_1_2_5($count,'запись,записи,записей').'<br>' ;

        $sql='update obj_site_link set o_id='.$main_id.' where o_id in ('.$personal_ids.') and o_clss=211' ; //echo $sql.'<br>' ;
        $count=execSQL_update($sql) ;
        if ($count) echo 'Участие в группах - затронуто <strong>'.$count.'</strong> '.get_case_by_count_1_2_5($count,'запись,записи,записей').'<br>' ;

        $sql='update obj_site_link set p_id='.$main_id.' where p_id in ('.$personal_ids.') and p_clss=211' ; //echo $sql.'<br>' ;
        $count=execSQL_update($sql) ;
        if ($count) echo 'Участие в группах - затронуто <strong>'.$count.'</strong> '.get_case_by_count_1_2_5($count,'запись,записи,записей').'<br>' ;

        $sql='update obj_site_mo_session set member_id='.$main_id.' where member_id  in ('.$personal_ids.')' ; //echo $sql.'<br>' ;
        $count=execSQL_update($sql) ;
        if ($count) echo 'Сеансы МО - затронуто <strong>'.$count.'</strong> '.get_case_by_count_1_2_5($count,'запись,записи,записей').'<br>' ;

        $sql='update obj_site_mo_session_now set member_id='.$main_id.' where member_id  in ('.$personal_ids.')' ; //echo $sql.'<br>' ;
        $count=execSQL_update($sql) ;
        if ($count) echo 'Сеансы МО (оперативная таблица) - затронуто <strong>'.$count.'</strong> '.get_case_by_count_1_2_5($count,'запись,записи,записей').'<br>' ;

        $sql='update obj_site_mo_log set personal_id='.$main_id.' where personal_id in ('.$personal_ids.')' ; //echo $sql.'<br>' ;
        $count=execSQL_update($sql) ;
        if ($count) echo 'Журнал событий - затронуто <strong>'.$count.'</strong> '.get_case_by_count_1_2_5($count,'запись,записи,записей').'<br>' ;

        $sql='update obj_site_mo_log_now set personal_id='.$main_id.' where personal_id in ('.$personal_ids.')' ; //echo $sql.'<br>' ;
        $count=execSQL_update($sql) ;
        if ($count) echo 'Журнал событий (оперативная таблица) - затронуто <strong>'.$count.'</strong> '.get_case_by_count_1_2_5($count,'запись,записи,записей').'<br>' ;

        $sql='update obj_site_docs set personal_id='.$main_id.' where personal_id in ('.$personal_ids.')' ; //echo $sql.'<br>' ;
        $count=execSQL_update($sql) ;
        if ($count) echo 'Документы - затронуто <strong>'.$count.'</strong> '.get_case_by_count_1_2_5($count,'запись,записи,записей').'<br>' ;

        //$sql='update obj_site_cars_to set personal_id='.$main_id.' where personal_id ('.$personal_ids.')' ; echo $sql.'<br>' ;
        //$sql='update obj_site_ct_stats set personal_id='.$main_id.' where personal_id ('.$personal_ids.')' ; echo $sql.'<br>' ;
        $sql='update obj_site_scan set personal_id='.$main_id.' where personal_id in ('.$personal_ids.')' ; //echo $sql.'<br>' ;
        $count=execSQL_update($sql) ;
        if ($count) echo 'Сканы - затронуто <strong>'.$count.'</strong> '.get_case_by_count_1_2_5($count,'запись,записи,записей').'<br>' ;

        $sql='update obj_site_personal_mess set personal_id='.$main_id.' where personal_id in ('.$personal_ids.')' ; //echo $sql.'<br>' ;
        $count=execSQL_update($sql) ;
        if ($count) echo 'Сообщения - затронуто <strong>'.$count.'</strong> '.get_case_by_count_1_2_5($count,'запись,записи,записей').'<br>' ;

        $sql='update obj_site_events_pass set personal_id='.$main_id.' where personal_id in ('.$personal_ids.')' ; //echo $sql.'<br>' ;
        $count=execSQL_update($sql) ;
        if ($count) echo 'Мероприятия - затронуто <strong>'.$count.'</strong> '.get_case_by_count_1_2_5($count,'запись,записи,записей').'<br>' ;

        $sql='update obj_site_events_pass_status set personal_id='.$main_id.' where personal_id in ('.$personal_ids.')' ; //echo $sql.'<br>' ;
        $count=execSQL_update($sql) ;
        if ($count) echo 'Мероприятия/статусы - затронуто <strong>'.$count.'</strong> '.get_case_by_count_1_2_5($count,'запись,записи,записей').'<br>' ;


        $sql='update obj_site_lession_persons set personal_id='.$main_id.' where personal_id in ('.$personal_ids.')' ; //echo $sql.'<br>' ;
        $count=execSQL_update($sql) ;
        if ($count) echo 'Занятия - затронуто <strong>'.$count.'</strong> '.get_case_by_count_1_2_5($count,'запись,записи,записей').'<br>' ;

        $sql='delete from obj_site_personals where pkey in ('.$personal_ids.') and pkey!='.$main_id ; //echo $sql.'<br>' ;
        $count=execSQL_update($sql) ;
        if ($count) echo 'ФЛ - удалено <strong>'.$count.'</strong> '.get_case_by_count_1_2_5($count,'запись,записи,записей').'<br>' ;

        $sql='delete from obj_site_workers where personal_id in ('.$personal_ids.') and personal_id!='.$main_id ; //echo $sql.'<br>' ;
        $count=execSQL_update($sql) ;
        if ($count) echo 'СО - удалено <strong>'.$count.'</strong> '.get_case_by_count_1_2_5($count,'запись,записи,записей').'<br>' ;

        $this->add_element($_POST['form_id'],'');

        $text=ob_get_clean() ;
        LOGS()->reg_log('merge_persons',$text,array('personal_id'=>$main_id,'reffers'=>array($main_id.'.'.PERSONAL()->tkey))) ;
        echo $text ;
        ?><br><button class="cancel">Закрыть</button><?
        //$this->add_element('show_modal_window','HTML',array('title'=>'Объединение учетных записей','_after_close_update_page'=>1)) ;

    }

  function personal_delete()
  {  echo 'Удалить учетную запись # '.$_POST['personal_id'].'? После удаления операция не сможет быть отменена.<br><br>' ;
     echo '<p><button class="v2" cmd="aspmo_personal/personal_delete_apply" personal_id="'.$_POST['personal_id'].'">Да, подтверждаю</button>&nbsp;&nbsp;&nbsp;<button class="cancel">Отмена</button></p>' ;
     $this->add_element('show_modal_window','HTML',array('title'=>'Удаление учетной записи','after_close_update_page'=>0)) ;
  }

  function personal_delete_apply()
  {   ob_start() ;
      $rec=PERSONAL()->get_personal_by_id($_POST['personal_id']) ;
      $sql='delete from obj_site_personals where pkey='.$_POST['personal_id'] ; //echo $sql.'<br>' ;
      execSQL_update($sql) ;
      echo 'Сотрудник - удалена учетная запись <strong>'.$rec['obj_name'].'</strong>, id='.$_POST['personal_id'].'<br>' ;
      $text=ob_get_clean() ;
      LOGS()->reg_log('delete_persons',$text) ;
      echo $text ;
      ?><br><button class="cancel">Закрыть</button><?
      $this->add_element('show_modal_window','HTML',array('title'=>'Удаление учетной записи','after_close_update_page'=>1)) ;
  }


}
