<?php
namespace QuickBooksOnline\API\Data;

/**
 * @xmlNamespace http://schema.intuit.com/finance/v3
 * @xmlType IntuitEntity
 * @xmlName IPPTaxRate
 * @var IPPTaxRate
 * @xmlDefinition 
				Product: ALL
				Description: A sales tax rate specifies
				the tax rate for the specific TaxCode.[br]See [a
				href="http://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0060_Financial_Management_Services_(v3)/01100_Global_Tax_Model"]Global
				Tax Model[/a].
			
 */
class IPPTaxRate
	extends IPPIntuitEntity	{

		/**                                                                       
		* Initializes this object, optionally with pre-defined property values    
		*                                                                         
		* Initializes this object and it's property members, using the dictionary
		* of key/value pairs passed as an optional argument.                      
		*                                                                         
		* @param array $keyValInitializers key/value pairs to be populated into object's properties 
		* @param boolean $verbose specifies whether object should echo warnings   
		*/                                                                        
		public function __construct($keyValInitializers=array(), $verbose=FALSE)
		{
			parent::__construct($keyValInitializers, $verbose);
			
			foreach($keyValInitializers as $initPropName => $initPropVal)
			{
				if (property_exists('IPPTaxRate',$initPropName) || property_exists('QuickBooksOnline\API\Data\IPPTaxRate',$initPropName))
				{
					$this->{$initPropName} = $initPropVal;
				}
				else
				{
					if ($verbose)
						echo "Property does not exist ($initPropName) in class (".get_class($this).")";
				}
			}
		}

	
	/**
	 * @Definition 
								Product: QBW
								Description: User recognizable name
								for the tax rate.[br /]Max. Length: 31 characters.[br /]Required
								for the Create request.
								Required: QBW
								ValidRange: QBW: Max=31
								Filterable: QBW
							
	 * @xmlType element
	 * @xmlNamespace 
	 * @xmlMinOccurs 0
	 * @xmlName Name
	 * @var string
	 */
	public $Name;
	/**
	 * @Definition 
								Product: QBW
								Description: User entered
								description for the tax rate.[br /]Max Length: 4000 characters.
								ValidRange: QBW: Max=4000
							
	 * @xmlType element
	 * @xmlNamespace 
	 * @xmlMinOccurs 0
	 * @xmlName Description
	 * @var string
	 */
	public $Description;
	/**
	 * @Definition 
								Product: QBW
								Description: False or null if
								inactive. Inactive sales rate codes may be hidden from display
								and may not be used on financial transactions.
								Filterable: QBW
							
	 * @xmlType element
	 * @xmlNamespace 
	 * @xmlMinOccurs 0
	 * @xmlName Active
	 * @var boolean
	 */
	public $Active;
	/**
	 * @Definition 
								Product: ALL
								Description: Represents rate value.
								Filterable: QBW
							
	 * @xmlType element
	 * @xmlNamespace 
	 * @xmlMinOccurs 0
	 * @xmlName RateValue
	 * @var float
	 */
	public $RateValue;
	/**
	 * @Definition 
								Product: ALL
								Description: Represents Agency
								Reference, Vendor Reference in case of QBW, Agency in case of
								QBO.
							
	 * @xmlType element
	 * @xmlNamespace 
	 * @xmlMinOccurs 0
	 * @xmlName AgencyRef
	 * @var IPPReferenceType
	 */
	public $AgencyRef;
	/**
	 * @Definition 
								Product: ALL
								Description: TaxReturnLine is
								representative of SalesTaxReturnLine reference
							
	 * @xmlType element
	 * @xmlNamespace 
	 * @xmlMinOccurs 0
	 * @xmlName TaxReturnLineRef
	 * @var IPPReferenceType
	 */
	public $TaxReturnLineRef;
	/**
	 * @Definition 
								Product: QBO
								Description: Effective list rates
								for different date ranges
							
	 * @xmlType element
	 * @xmlNamespace 
	 * @xmlMinOccurs 0
	 * @xmlMaxOccurs unbounded
	 * @xmlName EffectiveTaxRate
	 * @var IPPEffectiveTaxRate
	 */
	public $EffectiveTaxRate;
	/**
	 * @Definition 
								Product: QBO
								Description: Used for Zero rates
								for EC VAT.
								How it is used: VAT registered Businesses who receive
								goods/services (acquisitions) from other EU countries,
								will need to calculate the VAT due, but not paid, on these
								acquisitions. The rate of VAT payable is the same that would
								have been paid if the goods had been supplied by a UK supplier.
							
	 * @xmlType element
	 * @xmlNamespace 
	 * @xmlMinOccurs 0
	 * @xmlName SpecialTaxType
	 * @var IPPSpecialTaxTypeEnum
	 */
	public $SpecialTaxType;
	/**
	 * @Definition 
								Product: QBO
								Description: DisplayType of a tax
								rate, configuration of editability and display on forms
							
	 * @xmlType element
	 * @xmlNamespace 
	 * @xmlMinOccurs 0
	 * @xmlName DisplayType
	 * @var IPPTaxRateDisplayTypeEnum
	 */
	public $DisplayType;
	/**
	 * @Definition 
								Product: ALL
								Description: Internal use only:
								extension place holder for TaxRate
							
	 * @xmlType element
	 * @xmlNamespace 
	 * @xmlMinOccurs 0
	 * @xmlName TaxRateEx
	 * @var IPPIntuitAnyType
	 */
	public $TaxRateEx;


} // end class IPPTaxRate
