<?php
namespace QuickBooksOnline\API\Data;

/**
 * @xmlNamespace http://schema.intuit.com/finance/v3
 * @xmlType IntuitEntity
 * @xmlName IPPPriceLevel
 * @var IPPPriceLevel
 * @xmlDefinition 
				Product: QBW
				Description: You can use price levels
				to specify custom pricing for specific customers. Once you create a
				price level for a customer, QuickBooks will automatically use the
				custom price in new invoices, sales receipts, sales orders or credit
				memos for that customer. You can override this automatic feature,
				however, when you create the invoices, sales receipts, etc. The user
				can now specify a price level on line items in the following
				supported sales transactions: invoices, sales receipts, credit
				memos, and sales orders. Notice that the response data for the
				affected sales transaction does not list the price level that was
				used. The response simply lists the Rate for the item, which was set
				using the price level.
			
 */
class IPPPriceLevel
	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 dictionary $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)
		{
			foreach($keyValInitializers as $initPropName => $initPropVal)
			{
				if (property_exists('IPPPriceLevel',$initPropName) || property_exists('QuickBooksOnline\API\Data\IPPPriceLevel',$initPropName))
				{
					$this->{$initPropName} = $initPropVal;
				}
				else
				{
					if ($verbose)
						echo "Property does not exist ($initPropName) in class (".get_class($this).")";
				}
			}
		}

	
	/**
	 * @Definition 
								Product: QBW
								Description: User-visible name of
								the price level
							
	 * @xmlType element
	 * @xmlNamespace http://schema.intuit.com/finance/v3
	 * @xmlName Name
	 */
	public $Name;
	/**
	 * @xmlType element
	 * @xmlNamespace http://schema.intuit.com/finance/v3
	 * @xmlName Active
	 * @var boolean
	 */
	public $Active;
	/**
	 * @xmlType element
	 * @xmlNamespace http://schema.intuit.com/finance/v3
	 * @xmlName PriceLevelType
	 * @var com\intuit\schema\finance\v3\IPPPriceLevelTypeEnum
	 */
	public $PriceLevelType;
	/**
	 * @Definition 
									Product: QBW
									Description: A positive value
									would increase the price by the given percentage, a negative
									value would decrease the base price by the given percentage.
									All prices are changed by the same given percentage.
								
	 * @xmlType element
	 * @xmlNamespace http://schema.intuit.com/finance/v3
	 * @xmlName FixedPercentage
	 * @var float
	 */
	public $FixedPercentage;
	/**
	 * @Definition 
									Product: QBW
									Description: A list of items and
									the price or price percentage that applies to the item
								
	 * @xmlType element
	 * @xmlNamespace http://schema.intuit.com/finance/v3
	 * @xmlMinOccurs 0
	 * @xmlMaxOccurs unbounded
	 * @xmlName PriceLevelPerItem
	 * @var com\intuit\schema\finance\v3\IPPPriceLevelPerItem
	 */
	public $PriceLevelPerItem;
	/**
	 * @Definition 
								Product: QBW
								Description: Reference to the
								currency in which the price level is expressed.
							
	 * @xmlType element
	 * @xmlNamespace http://schema.intuit.com/finance/v3
	 * @xmlMinOccurs 0
	 * @xmlName CurrencyRef
	 * @var com\intuit\schema\finance\v3\IPPReferenceType
	 */
	public $CurrencyRef;
	/**
	 * @Definition Internal use only: extension place holder for
								PriceLevel  
	 * @xmlType element
	 * @xmlNamespace http://schema.intuit.com/finance/v3
	 * @xmlMinOccurs 0
	 * @xmlName PriceLevelEx
	 * @var com\intuit\schema\finance\v3\IPPIntuitAnyType
	 */
	public $PriceLevelEx;


} // end class IPPPriceLevel
