<?php
// сервис для сохранения файла титула 1 на диск и регистрации пакета
// более ничего с пакетом не делается
// обработка пакета будет выполняться отдельным заданием планировщика

include_once(_DIR_EXT.'/HTML/c_page_TXT.php') ;
class c_services_pl_get_packet extends c_page_txt
{

 function check_access()
  { /*if (!$this->setting['no_check_access']) $result=ESMO_GATEWAY()->api_check_access() ;
    else $result=['status'=>'success','comment'=>''] ;

    //if ($result['client_id']) $this->client_id=$result['client_id'] ;
		if ($result['status']!='success') { $this->response_error($mode,array('code'=>$result['comment'],'ip'=>$_SERVER['REMOTE_ADDR'])) ; }
*/
		$result=['status'=>'success','comment'=>''] ;
    return($result) ;
  }

  function body()
  {	  ob_start() ;
	  // packet_type=2 - титул 2
	  // status=3 - подписан
	  $rec_packet = execSQL_van('select * from pl_packets where pkey='._CUR_ID);
	  $text = ob_get_clean();
	  $result=[] ;

	  if ($rec_packet['pkey'])
	  {
		  $titul2_fname=PL()->get_file_dir_by_packet_id($rec_packet['packet_type'],$rec_packet['pkey'],'xml') ;
		  if (file_exists($titul2_fname))
		  {	  $xml_content=file_get_contents($titul2_fname) ;
			  header("Content-type: text/xml;charset=windows-1251");
			  header("Content-Length: ". filesize($titul2_fname));
			  header("Content-Disposition: attachment; filename=".$rec_packet['file_uid'].".xml");
			  //header("Content-type: text/xml;charset=utf-8");
			  echo $xml_content ;
			  // титул 2,6 статус 4 - пакет отдан
			  PL()->packet_save($rec_packet['pkey'], ['status'=>4]) ;
		  }
	  	  else $result=ENGINE()->prepare_result(['error'=>'file_not_found','comment'=>'Не удалось найти XML файл пакета']) ;
	  }
	  else $result=ENGINE()->prepare_result(['error'=>'packet_not_found','comment'=>'Не удалось найти пакет по ID']) ;

	  if (sizeof($result)) $this->response($result);
  }



  function response($result,$options=[])
  {   header("Content-type: text/xml;charset=windows-1251") ;
	  //var_dump($result);
	   $imp = new DOMImplementation; // Creates an instance of the DOMImplementation class
	   $xml_doc = $imp->createDocument("",""); // Creates a DOMDocument instance
		 //$xml_doc->encoding = 'win-1251';
		 $xml_doc->formatOutput = true;
		 $xml = add_element($xml_doc,$xml_doc,'results','',array('date'=>date('Y-m-d H:i'))) ;
		 if (_sizeof($result)) foreach ($result as $item_name=>$item_attr)
		 {
			 if (is_array($item_attr))
			 { $item_value=($item_attr['value'])?:'' ;
			   unset($item_attr['value']) ;
			 }
			 else $item_value=$item_attr ;
			 $item = add_element($xml_doc,$xml,$item_name,$item_value,$item_attr) ;
			 //if (_sizeof($arr)) foreach($arr as $name=>$value)  if ($name!='uid') add_element($xml_doc,$item,$name,$value) ;
		 }
		 if ($options['debug']) add_element($xml_doc,$xml,'debug',$options['debug']) ;
		 echo $xml_doc->saveXML() ;
  }

}



?>
