<?php
$__functions['init'][]='_client_site_vars' ;
$__functions['boot_site'][]='_client_site_boot' ;

define('_CLIENT_GROUP_ID',307) ; // потом вывести в настройки и интерфейс

function CLIENT() {return($_SESSION['client_system']);$_SESSION['client_system']=new c_client_system();return($_SESSION['client_system']);} ;


function _client_site_vars()
{   // роли модуля
    $_SESSION['init_options']['client']['debug']=0 ;

    //$_SESSION['ARR_chet_operation_types']=array(1=>'Поступление',2=>'Списание') ;
    //$_SESSION['ARR_chet_types']=array(0=>'Расходный',2=>'Приходный') ;

     ////
}

function _client_site_boot($options)
{
  create_system_modul_obj('client',$options) ;

}


class c_client_system
{
    public $table_bill ;
    public $client_list ;

    function __construct($create_options=array())
    { $this->system_name='client_system' ;
    // регистрируем обработчики событий

    //регистрируем документы
    ENGINE()->reg_ext('aspmo_client','Клиент') ;





    }

  function declare_menu_items_1($page)
  { // только для клиента
    if (MEMBER()->info['rol']==6)
     { //$page->menu['/cab/client/']=array('title'=>'Информация','class'=>'fa fa-info-circle') ;
       //$page->menu['/cab/client/org/']=array('title'=>'Организация','class'=>'fa fa-user-md') ;
       //$page->menu['/cab/client/orgs/']=array('title'=>'Организации','class'=>'fa fa-user-md') ;

       $page->menu['/cab/client/personals/']=array('title'=>'Сотрудники',
                                               'class'=>'fa fa-user',
                                               'items'=>array('/cab/client/personal_create/'=>'Добавить вручную',
                                                              '/cab/client/personals_upload_from_excel/'=>'Загрузить из Excel',
                                                              '/cab/client/personals_upload_from_post/'=>'Загрузить через шлюз'
                                                              )
                                              ) ;


       //$page->menu['/cab/client/drivers/']=array('title'=>'Водители',
       //                                        'class'=>'fa fa-user',
       //                                        'items'=>array('/cab/client/driver_create/'=>'Добавить вручную',
       //                                                       '/cab/client/drivers_upload_from_excel/'=>'Загрузить из Excel',
       //                                                       '/cab/client/drivers_upload_from_post/'=>'Загрузить через шлюз'
       //                                                       )
       //                                       ) ;
       $page->menu['/cab/client/cars/']=array('title'=>'Автомобили',
                                               'class'=>'fa fa-car',
                                               'items'=>array('/cab/client/car/create/'=>'Добавить вручную',
                                                              '/cab/client/cars_upload_from_excel/'=>'Загрузить из Excel',
                                                              '/cab/client/cars_upload_from_post/'=>'Загрузить через шлюз'
                                                              )
                                              ) ;

       $page->menu['/cab/client/get/personals/']=array('title'=>'Шлюз OUT') ;
       $page->menu['/cab/client/push/mo/']=array('title'=>'Шлюз PUSH') ;



     }

    // только для менеджера по клиентам
    if (MEMBER()->rol==7)
    { $page->menu['/cab/manager/']=array('title'=>'Клиенты','class'=>'fa fa-user') ;
      $page->menu['/cab/manager/client_create/']=array('title'=>'Новый клиент','class'=>'fa fa-user-plus') ;
    }

  }



   // обрабочик события прошедшего МО
   // выяснить чей клиент, и если у клиента стоит флаг отправки результатов МО на PUSH - отправить ему данные
   function on_event_examination_result($options=array())
   { ob_start() ; $rec_client=array() ; $rec_mo=array() ;
     if ($options['mo_id']) $rec_mo=ESMO()->get_mo_by_id($options['mo_id']) ;
     //damp_array($rec_mo,1,-1) ;
     if ($rec_mo['pkey'] and $rec_mo['member_client_id']) $rec_client=ACCOUNTS()->get_member_by_id($rec_mo['member_client_id']) ;
     //damp_array($rec_client,1,-1) ;
     if ($rec_client['pkey'] and $rec_client['_ext_info']['send_to_push_event_mo'] and $rec_client['_ext_info']['url_push'])
     {
        $rec=array
        ( 'mo_id'=>$rec_mo['pkey'],
          'time_now'=>time(),
          'time_start'=>$rec_mo['c_data'],
          'time_end'=>$rec_mo['e_data'],
          'terminal_id'=>$rec_mo['terminal_id'],
          'personal_name'=>$rec_mo['member_name'],
          'personal_uid'=>$rec_mo['member_uid'],
          'doctor_name'=>$rec_mo['_doctor_name'],
        ) ;

        if ($rec_mo['tonometer'])   { $rec['s']=$rec_mo['systolic'] ;     $rec['res_s']=$rec_mo['res_s'] ; }
        if ($rec_mo['tonometer'])   { $rec['d']=$rec_mo['diastolic'] ;    $rec['res_d']=$rec_mo['res_d'] ; }
        if ($rec_mo['thermometer']) { $rec['t']=$rec_mo['temperature'] ;  $rec['res_t']=$rec_mo['res_t'] ; }
        if ($rec_mo['pulsometer'])  { $rec['p']=$rec_mo['pulse'] ;        $rec['res_p']=$rec_mo['res_p'] ; }
        if ($rec_mo['alcotester'])  { $rec['a']=$rec_mo['alko'] ;         $rec['res_a']=$rec_mo['res_a'] ; }
        if ($rec_mo['pupilometer']) { $rec['n']=$rec_mo['narko'] ;        $rec['res_n']=$rec_mo['res_n'] ; }

        $rec['question']=($rec_mo['question'])? $rec_mo['question']:0 ;
        $rec['question_comment']=$rec_mo['question_comment'] ;

        $rec['comment']=strip_tags($rec_mo['_comment']) ;

        $rec['mo_result']=$rec_mo['status'] ;
        $rec['mo_result_text']=$rec_mo['_status_name'] ; //Осмотр окончен, отриц.
        //$rec['model_name']=$rec_mo['_model_name']; // МО1-
        $rec['dopusk']=$rec_mo['dopusk']; // Уклонился
        $rec['dopusk_text']=$rec_mo['_dopusk_name']; // Уклонился
        $rec['dopusk_user_id']=$rec_mo['dopusk_user_id'] ;
        $rec['dopusk_start']=$rec_mo['dopusk_time'] ;
        $rec['dopusk_end']=$rec_mo['dopusk_time_end'] ;
        $rec['reason']=$rec_mo['reason'] ;
        $rec['equipment']=$rec_mo['equipment'] ;

        //_member_img	http://dev.kvzrm.ru/images/no-avatar-62.png
        //_member_img_auth	http://dev.kvzrm.ru/public/mo_photo/211880_auth.jpg
        //_member_img_alco	http://dev.kvzrm.ru/public/mo_photo/211880_alco.jpg
        //_member_img_DTW	http://dev.kvzrm.ru/public/mo_photo/211880_DTW.png
        //if ($rec_mo['_member_img'])      $rec['image_personal']=base64_encode(file_get_contents($rec_mo['_member_img'])) ;
        //if ($rec_mo['_member_img_auth']) $rec['image_auth']=base64_encode(file_get_contents($rec_mo['_member_img_auth'])) ;
        //if ($rec_mo['_member_img_alco']) $rec['image_alko']=base64_encode(file_get_contents($rec_mo['_member_img_alco'])) ;
        //if ($rec_mo['_member_img_DTW'])  $rec['image_DTW']=base64_encode(file_get_contents($rec_mo['_member_img_DTW'])) ;

        if ($rec_mo['_member_img'])      $rec['image_personal']=$rec_mo['_member_img'] ;
        if ($rec_mo['_member_img_auth']) $rec['image_auth']=$rec_mo['_member_img_auth'] ;
        if ($rec_mo['_member_img_alco']) $rec['image_alko']=$rec_mo['_member_img_alco'] ;
        if ($rec_mo['_member_img_DTW'])  $rec['image_DTW']=$rec_mo['_member_img_DTW'] ;


        $arr_url=parse_url($rec_client['_ext_info']['url_push']) ;
        //damp_array($arr_url,1,-1) ;
        $text_json_out=json_encode($rec) ;
        $result=IO()->doPut_v2($arr_url['scheme'].'://',$arr_url['host'],$arr_url['path'],'',$text_json_out,array('basic_login'=>$rec_client['_ext_info']['basic_login'],'basic_pass'=>$rec_client['_ext_info']['basic_pass'])) ;
        if ($result['status']!=200)
        {  // если не удалось доставить - логгируем событие

        }

     }

     $text=ob_get_clean() ;
     if ($text) LOGS()->reg_log('on_event_examination_result',$text) ;
   }


    // заполняет у всех дочерних объектов организации поле client_id, соответственно client_id текущей органиации
    function full_client_id()
    { $recs=execSQL('select pkey,obj_name,client_id from obj_site_personals where parent=1 and clss=207',2) ;
      foreach($recs as $rec_client)
         {  ?><h2><?echo $rec_client['obj_name']?></h2><?
            $list_child=TREE('obj_site_personals')->get_list_child($rec_client['pkey']) ;
            //damp_array($list_child,1,-1) ;
            if (_sizeof($list_child)) execSQL_update('update obj_site_personals set client_id='.$rec_client['client_id'].' where pkey in ('.implode(',',array_keys($list_child)).')',array('debug'=>2)) ;
         }
    }




}



?>
