XML

  <function name="rpcf_service_report" id="0x3002">
      <input>
       <integer name="user_id" default="0" />
       <integer name="account_id" default="0"  />
       <integer name="group_id" default="0" />
       <integer name="apid" default="0" />
       <integer name="time_start" />
       <integer name="time_end" default="now()" />
      </input>
      <output>
          <integer name="accounts_count"/>
      <for name="j" from="0" count="accounts_count">
         <integer name="atr_size" />
          <set dst="atr_size_array" src="atr_size" dst_index="j" />
         <for name="i" from="0" count="atr_size">
            <integer name="account_id" array_index="j,i" />
            <string name="login" array_index="j,i" />
            <integer name="discount_date" array_index="j,i" />
        <integer name="discount_period_id" array_index="j,i" />
        <double name="discount" array_index="j,i" />
        <string name="service_name" array_index="j,i" />
        <integer name="service_type" array_index="j,i" />
        <string name="comment" array_index="j,i" />
         </for>
      </for>
      </output>
  </function>

PHP

	function rpcf_service_report($user_id=0,$account_id=0,$group_id=0,$apid=0,$time_start,$time_end) {  //3002
		$ret=array(); 
		if (!$this->connection->urfa_call(0x3002)) { 
			print "Error calling function ". __FUNCTION__ ."\n"; 
			return FALSE; 
		} 
		$packet = $this->connection->getPacket(); 
		$packet->DataSetInt($user_id); 
		$packet->DataSetInt($account_id); 
		$packet->DataSetInt($group_id); 
		$packet->DataSetInt($apid); 
		$packet->DataSetInt($time_start); 
		$packet->DataSetInt($time_end); 
		$this->connection->urfa_send_param($packet); 
		if ($x = $this->connection->urfa_get_data()) { 
			$ret['accounts_count'] = $x->DataGetInt(); 
			for ($i=0;$i<$ret['accounts_count'];$i++) { 
//				$x = $this->connection->urfa_get_data(); 
                               if($user_id) $x = $this->connection->urfa_get_data(); 
				$services['atr_size'] = $x->DataGetInt(); 
				for($j=0;$j<$services['atr_size'];$j++){ 
					$x = $this->connection->urfa_get_data(); 
					$services['atr_size_array'][$j]['account_id'] = $x->DataGetInt(); 
					$services['atr_size_array'][$j]['login'] = $x->DataGetString(); 					
					$services['atr_size_array'][$j]['discount_date'] = $x->DataGetInt(); 
					$services['atr_size_array'][$j]['discount_period_id'] = $x->DataGetInt(); 
					$services['atr_size_array'][$j]['discount'] = $x->DataGetDouble(); 
					$services['atr_size_array'][$j]['service_name'] = $x->DataGetString(); 
					$services['atr_size_array'][$j]['service_type'] = $x->DataGetInt(); 
					$services['atr_size_array'][$j]['comment'] = $x->DataGetString(); 
				} 
				$ret['services'][]=$services; 
			} 
//			$this->connection->urfa_get_data(); 
		} 
		return $ret; 
	} 
 
///// у меня заработало вот так:
 
function rpcf_service_report($param) {  //0x3021
	$ret = array();
	if (!$this->connection->urfa_call(0x3021)) { print "Error calling function ". __FUNCTION__ ."\n";return FALSE; }
 
	$packet=$this->connection->getPacket();
	$packet->DataSetInt( $param['user_id'] ); 
	$packet->DataSetInt( $param['account_id'] ); 
	$packet->DataSetInt( $param['group_id'] ); 
	$packet->DataSetInt( $param['apid'] ); 
	$packet->DataSetInt( $param['t_start'] ); 
	$packet->DataSetInt( $param['t_end'] ); 
	$this->connection->urfa_send_param($packet);
 
	if( $x = $this->connection->urfa_get_data() ){
		$ret['accounts_count'] = $x->DataGetInt(); 
		for ( $i=0 ; $i < $ret['accounts_count'] ; $i++ ) { 
			$services['atr_size'] = $x->DataGetInt(); 
			for( $j=0 ; $j < $services['atr_size'] ; $j++ ){ 
				$services['atr_size_array'][$j]['account_id'] = $x->DataGetInt(); 
				$services['atr_size_array'][$j]['login'] = $x->DataGetString(); 					
				$services['atr_size_array'][$j]['full_name'] = $x->DataGetString(); 
				$services['atr_size_array'][$j]['discount_date'] = $x->DataGetInt(); 
				$services['atr_size_array'][$j]['discount_period_id'] = $x->DataGetInt(); 
				$services['atr_size_array'][$j]['discount'] = $x->DataGetDouble(); 
				$services['atr_size_array'][$j]['service_name'] = $x->DataGetString(); 
				$services['atr_size_array'][$j]['service_type'] = $x->DataGetInt(); 
			} 
			$ret['services'][]=$services; 
		} 
	}
	return $ret;
}
 
/home/u18456/wiki.flintnet.ru/www/data/pages/function_admin/function_name_rpcf_service_report_id_0x3002.txt · Последние изменения: 2013/05/06 14:17 От 194.28.212.97
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki