<?php
include_once(_DIR_EXT.'/HTML/c_page_TXT.php') ;
class c_page_cab_client_get extends c_page_txt
{ public $rec_client ;
  function body()
  {  $arr=explode('/',_CUR_PAGE_DIR) ;
     $client_uid=$arr[3] ;
     $report_code=$arr[4] ;
     // для клиента сделан отдельный отчет, где не было бы возможность выбирать подразделения других клиентов
     if ($report_code=='personals') $report_code='client_personals' ;
     $mode=$arr[5] ;
     $options=array() ;
     $report_obj=null ;

     if (isset($_GET['limit'])) $options['limit']=$_GET['limit'] ;
     if ($client_uid) $this->rec_client=execSQL_van('select pkey,obj_name from obj_site_account where UID="'.addslashes($client_uid).'"') ;
     if (!$this->rec_client['pkey']) echo 'undefined client UID' ;
     else
     {    if (isset(REPORTS()->reports_list[$report_code])) $use_report_code=$report_code ;
          if (isset(REPORTS()->reports_list['report_'.$report_code])) $use_report_code='report_'.$report_code ;


         $rec_report=REPORTS()->reports_list[$use_report_code] ;
         if (_sizeof($rec_report))
         { $script_dir=$rec_report['script_dir'] ;
           $class_name=$rec_report['class_name'] ;
           if (file_exists(_DIR_EXT.'/'.$script_dir))
            { include_once(_DIR_EXT.'/'.$script_dir) ;
              if (class_exists($class_name))
              { $report_obj=new $class_name() ;
                if (is_object($report_obj))
                {   $report_obj->filter=$_GET;
                    $report_obj->filter['client_id']=$this->rec_client['pkey'];
                    switch($mode)
                    { case 'json': $report_obj->view_as_JSON($options) ; break ;
                      case 'xml':  $report_obj->view_as_XML($options) ; break ;
                      case 'html':  $report_obj->view_as_HTML($options) ; break ;
                      default:     echo 'undefined output mode' ;
                    }
                } else $this->error=array('code'=>'file_not_found','text'=>'Не удалось создать объект класса для отчета "'.$report_code.'": <strong>'.$class_name.'</strong>') ;
              } else $this->error=array('code'=>'file_not_found','text'=>'Не найден класс отчета "'.$report_code.'": <strong>'.$class_name.'</strong> в скрипте <strong>'.hide_server_dir(_DIR_EXT.'/'.$script_dir).'</strong>') ;
            } else $this->error=array('code'=>'file_not_found','text'=>'Не найден скрипт отчета "'.$report_code.'": <strong>'.hide_server_dir(_DIR_EXT.'/'.$script_dir).'</strong>') ;
         }
         else $this->error=array('code'=>'report_not_register','text'=>'Отчет "'.$report_code.'" не зарегистрирован в REPORTS()->reports_list') ;
     }
  }

}



?>
