<?php

	// Check nonce
	PHPCUS_PARAM::CUS_REQUIRES_NONCE();
	
	// Check Array Input
	PHPCUS_PARAM::CUS_DOES_NOT_SUPPORT_ARRAY();
	
	// Check already authenticated
	PHPCUS_PARAM::CUS_REQUIRES_AUTHENTICATION();
	
	// Check access rights
	PHPCUS_PARAM::CUS_HAS_PERMISSION(PHPCUS_SYSTEM::AUTHORITY_VIEW_ONLY, 'mobile_outbox_history');
	
	
	if
	(
		PHPRC_HTTP_PARAM::REF_ISSET_IN_ARRAY
		(
			[
					'PARAM_OUTHISTORY_ID',
					'PARAM_OUTHISTORY_OUTBOX_ID',
					'PARAM_OUTHISTORY_TRANSACTION_ID',
					'PARAM_OUTHISTORY_MOBILE_NUMBER',
					'PARAM_OUTHISTORY_STATUS',
					
					'PARAM_ORDER_FIELD',
					'PARAM_ORDER_TYPE',
					'PARAM_SKIP'
			], True
		)
	)
	{
		Try
		{
			// Read params
			// ------------------------------------------------------------------	

			$PARAM_OUTHISTORY_ID = PHPCUS_PARAM::CUS_READ_BIGINT('PARAM_OUTHISTORY_ID');
			$PARAM_OUTHISTORY_OUTBOX_ID = PHPCUS_PARAM::CUS_READ_BIGINT('PARAM_OUTHISTORY_OUTBOX_ID');
			$PARAM_OUTHISTORY_TRANSACTION_ID = PHPCUS_PARAM::CUS_READ_NVARCHAR('PARAM_OUTHISTORY_TRANSACTION_ID');
			$PARAM_OUTHISTORY_MOBILE_NUMBER = PHPCUS_PARAM::CUS_READ_NVARCHAR('PARAM_OUTHISTORY_MOBILE_NUMBER');
			$PARAM_OUTHISTORY_STATUS = PHPCUS_PARAM::CUS_READ_INT('PARAM_OUTHISTORY_STATUS');
			
			$PARAM_ORDER_FIELD = PHPCUS_PARAM::CUS_READ_SORT_FIELD
			(
					'PARAM_ORDER_FIELD',
					[
						'OUTHISTORY_ID', 
						'OUTHISTORY_OUTBOX_ID', 
						'OUTHISTORY_TRANSACTION_ID', 
						'OUTHISTORY_MOBILE_NUMBER', 
						'OUTHISTORY_STATUS'
					]
			);
			
			$PARAM_ORDER_TYPE = PHPCUS_PARAM::CUS_READ_SORT_TYPE('PARAM_ORDER_TYPE');
			$PARAM_SKIP	= PHPCUS_PARAM::CUS_READ_BIGINT('PARAM_SKIP');
			
			// ------------------------------------------------------------------
			
			
			// Execute Stored Procedure
			$DATA_SET = PHPCUS_MOBILE_OUTBOX_HISTORY::CUS_GET
						(
								$PARAM_OUTHISTORY_ID,
								$PARAM_OUTHISTORY_OUTBOX_ID,
								$PARAM_OUTHISTORY_TRANSACTION_ID,
								$PARAM_OUTHISTORY_MOBILE_NUMBER,
								$PARAM_OUTHISTORY_STATUS,
								
								$PARAM_ORDER_FIELD,
								$PARAM_ORDER_TYPE,
								$PARAM_SKIP
						);
						
			// Return JSON response
			if(empty($DATA_SET) === False)
			{
				PHPCUS_PARAM::CUS_JSON_SUCCESS($DATA_SET);
			}
			else
			{
				PHPCUS_PARAM::CUS_JSON_SUCCESS('');
			}
			
		}
		Catch(Exception $ERR)
		{
			PHPVC_LOG::VAR_REPORT_ERROR($ERR, 0);
			PHPCUS_PARAM::CUS_JSON_ERROR($ERR->getMessage());
		}
	}
	else
	{
		PHPCUS_PARAM::CUS_JSON_ERROR('Missing parameters');
	}

?>