<?
include_once(_DIR_EXT.'/HTML/c_page_XML_AJAX.php') ;
include_once(_CLASS_.'/ext/esmo_ct/panel_graf_preview.php') ;
include_once(_DIR_EXT.'/esmo_gateway/i_personal_import.php') ;
class c_page_ajax extends c_page_XML_AJAX
{
    function check_XML_import()
   {
       //damp_array($_POST,1,-1) ;
       //$this->add_element('show_modal_window','HTML',array('title'=>'Регистрация сотрудника на инструктаж','width'=>'800px')) ;
       $arr_name=explode(' ',$_POST['filter']['name'])  ;
       $uid1=($_POST['filter']['uid1'])? $_POST['filter']['uid1']:ENGINE()->generate_UID() ;
       $pattern_xml=file_get_contents(_DIR_EXT_LOCAL.'/magnit/test/soap1c.xml') ;

       $rec_fl=[  '_Ref_'=>'3f1e27b4-b26c-11e7-8105-5cf3fc374db1',
                  '_ТабельныйНомер_'=>'TN00-00035',
                  '_ФизическоеЛицо_'=>$_POST['filter']['person_uid'],
                  '_КодФЛ_'=>'00-0000112',
                  '_ДатаРождения_'=>date('Y-m-d',strtotime($_POST['filter']['dr'])).'T00:00:00',
                  '_Пол_'=>(($_POST['filter']['pol'])? 'Женский':'Мужской'),
                  '_Фамилия_'=>$arr_name[0],
                  '_Имя_'=>$arr_name[1],
                  '_Отчество_'=>$arr_name[2],
                 ] ;
       $xml_fl=str_replace(array_keys($rec_fl),$rec_fl,$pattern_xml) ;


       // отправлям информацию только если активен или уволен
       if ($_POST['filter']['status1']==1 or $_POST['filter']['status1']==2)
       {
         $rec_so=[ '_Сотрудник_'=>$uid1,
                   '_Подразделение_'=>'a523d39f-f737-11e6-80cd-42f2e9dc7849',
                   '_ПодразделениеНомер_'=>'K9CN-0020',
                   '_ПодразделениеНаименование_'=>$_POST['filter']['otdel_id1'],
                   '_Организация_'=>PERSONAL()->get_org_names_by_ids($_POST['filter']['org_id1']),
                   '_ДолжностьНаименование_'=>_IL('IL_works')->recs[$_POST['filter']['working1']]['obj_name'],
                   '_ДатаПриема_'=>'2017-10-15T00:00:00',
                   '_ДатаУвольнения_'=>(($_POST['filter']['status1']==2)? $_POST['filter']['date1'].'T00:00:00':'0001-01-01T00:00:00'),
                   '_ВидЗанятости_'=>'ОсновноеМестоРаботы',
                   '_Состояние_'=>'Работа',
                  ] ;


         $arr[]=str_replace(array_keys($rec_so),$rec_so,$xml_fl) ;
         // тест для второй основй должности
         //$rec_so['_Сотрудник_']=ENGINE()->generate_UID() ; $arr[]=str_replace(array_keys($rec_so),$rec_so,$xml_fl) ;
         // тест для второй должности, одинаковой с первой
         $rec_so['_Сотрудник_']=ENGINE()->generate_UID() ; $rec_so['_ВидЗанятости_']='Совмещение' ; $arr[]=str_replace(array_keys($rec_so),$rec_so,$xml_fl) ;

       }
       // информация по совмещению
       if ($_POST['filter']['status2']==1 or $_POST['filter']['status2']==2)
       {
           $rec_so=[ '_Сотрудник_'=>($_POST['filter']['uid2'])? $_POST['filter']['uid2']:ENGINE()->generate_UID() ,
                     '_Подразделение_'=>'a523d39f-f737-11e6-80cd-42f2e9dc7849',
                     '_ПодразделениеНомер_'=>'K9CN-0020',
                     '_ПодразделениеНаименование_'=>$_POST['filter']['otdel_id2'],
                     '_Организация_'=>PERSONAL()->get_org_names_by_ids($_POST['filter']['org_id2']),
                     '_ДолжностьНаименование_'=>_IL('IL_works')->recs[$_POST['filter']['working2']]['obj_name'],
                     '_ДатаПриема_'=>'2017-10-15T00:00:00',
                     '_ДатаУвольнения_'=>(($_POST['filter']['status2']==2)? $_POST['filter']['date2'].'T00:00:00':'0001-01-01T00:00:00'),
                     '_ВидЗанятости_'=>'Совмещение',
                    '_Состояние_'=>'Работа',
                 ] ;
           $arr[]=str_replace(array_keys($rec_so),$rec_so,$xml_fl) ;
           // тест для второго совмещения
           $rec_so['_Сотрудник_']=ENGINE()->generate_UID() ;
           $arr[]=str_replace(array_keys($rec_so),$rec_so,$xml_fl) ;


       }

        $XML_cont='<?xml version="1.0" encoding="UTF-8"?><MessageData><MessageNumber>15</MessageNumber><Data>'.implode('',$arr).'</Data></MessageData>' ;
        $xml_fname='XML_test_import_'.MEMBER()->id.'_'.time().'.xml' ;
        file_put_contents(_TEMP_DIR.'/'.$xml_fname,$XML_cont) ;
        ?><textarea style="width:100%;height:300px;"><?echo $XML_cont?></textarea><?
        $this->go_url='/cab/magnit/setting/tests/[action='.$_POST['filter']['action'].',data_source='.$_POST['filter']['data_source'].',data_type='.$_POST['filter']['data_type'].',read_only='.$_POST['filter']['read_only'].',action2=check_import_persons_from_SOAP_local_check,personal_id='.$_POST['filter']['person_id'].',xml_fname='.$xml_fname.']/' ;
        //$this->add_element('show_modal_window','HTML',array('width'=>'1000','title'=>'Завершение отложенного увольнения','_after_close_update_page'=>1)) ;
   }

   function close_fired_pause()
   {  $recs=execSQL('select pkey,is_main,is_second from obj_site_workers where clss=212 and personal_id='.$_POST['personal_id'].' and enabled=1 and fired_data_pause>0') ;
       if (sizeof($recs)) foreach($recs as $rec)
       {  echo 'Увольняем сотрудника по '.(($rec['is_main'])? 'основной должности':'совмещаемой должности').'<br>' ;
          PERSONAL()->worker_save($rec['pkey'],array('fired'=>1,'close_fired_pause'=>1)) ;
       } else echo 'У сотрудника нет должностей с отложенным увольнением<br>' ;

       PERSONAL_IMPORT()->sync_workings_persons() ;
       $this->add_element('show_modal_window','HTML',array('title'=>'Завершение отложенного увольнения','after_close_update_page'=>1)) ;
       $this->go_url='/cab/magnit/setting/tests/[action=check_import_persons_from_SOAP_local_check,personal_id='.$_POST['personal_id'].']/' ;
   }


   function remove_work_main()
   {  execSQL_update('delete from obj_site_workers where clss=212 and personal_id='.$_POST['personal_id'].' and is_main=1') ;
      execSQL_update('delete from obj_site_workers where clss=212 and personal_id='.$_POST['personal_id'].' and is_main=0 and is_second=0') ;
      PERSONAL_IMPORT()->sync_workings_persons() ;
      $this->go_url='/cab/magnit/setting/integration/tests/[action=check_import_persons_from_SOAP_local_check,personal_id='.$_POST['personal_id'].']/' ;
   }

    function remove_work_second()
    {  execSQL_update('delete from obj_site_workers where clss=212 and personal_id='.$_POST['personal_id'].' and is_second=1') ;
       PERSONAL_IMPORT()->sync_workings_persons() ;
       $this->go_url='/cab/magnit/setting/tests/[action=check_import_persons_from_SOAP_local_check,personal_id='.$_POST['personal_id'].']/' ;
    }

    function resend_personal_to_event()
    {
        $event_ids=$_POST['event_ids'] ;
        $personal_id=(int)$_POST['personal_id'] ;
        $comment=$_POST['comment'] ;
        //damp_array($_POST);
        $arr_event_ids=explode(',',$event_ids) ;
        $result=[] ;
        if (sizeof($arr_event_ids)) foreach($arr_event_ids as $event_id)
        {
            //echo '$event_id='.$event_id.'<br>' ;
            MAGNIT()->personal_goto_instruktion($event_id,$personal_id,$result,['comment'=>$comment]) ;
        }
        ?><strong>Результат:</strong><?
        damp_array($result,1,-1);

        $this->add_element('show_modal_window','HTML',array('title'=>'Повторная отправка сотрудников на мероприятие')) ;
        ?><div class="clear"></div><?
        echo '<button class="button cancel">Закрыть</button>' ;

    }

}
