<?php
namespace ModulesAbstract\ElectronicInvoice\UBL21Structure;

/**
 * GoodsItem
 *
 * @see http://www.datypic.com/sc/ubl21/e-cac_GoodsItem.html
 */
class TypeGoodsItem extends AbstractPeppolElement
{

	/**
	 * cbc:ID, 0..1, optional tag
	 *
	 * An identifier for this goods item.
	 * @var mixed
	 */
	public $ID = null;

	/**
	 * cbc:SequenceNumberID, 0..1, optional tag
	 *
	 * A sequence number differentiating a specific goods item within a consignment.
	 * @var mixed
	 */
	public $SequenceNumberID = null;

	/**
	 * cbc:Description, 0..*
	 *
	 * Text describing this goods item to identify it for customs, statistical, or transport purposes.
	 * @var mixed
	 */
	public $Description = null;

	/**
	 * cbc:HazardousRiskIndicator, 0..1, optional tag
	 *
	 * An indication that the transported goods item is subject to an international regulation concerning the carriage of
	 *   dangerous goods (true) or not (false).
	 * @var mixed
	 */
	public $HazardousRiskIndicator = null;

	/**
	 * cbc:DeclaredCustomsValueAmount, 0..1, optional tag
	 *
	 * The total declared value for customs purposes of the goods item.
	 * @var mixed
	 */
	public $DeclaredCustomsValueAmount = null;

	/**
	 * cbc:DeclaredForCarriageValueAmount, 0..1, optional tag
	 *
	 * The value of this goods item, declared by the shipper or his agent solely for the purpose of varying the carrier's level
	 *   of liability from that provided in the contract of carriage, in case of loss or damage to goods or delayed delivery.
	 * @var mixed
	 */
	public $DeclaredForCarriageValueAmount = null;

	/**
	 * cbc:DeclaredStatisticsValueAmount, 0..1, optional tag
	 *
	 * The total declared value of all the goods items in the same consignment with this goods item that have the same
	 *   statistical heading.
	 * @var mixed
	 */
	public $DeclaredStatisticsValueAmount = null;

	/**
	 * cbc:FreeOnBoardValueAmount, 0..1, optional tag
	 *
	 * The monetary amount that has to be or has been paid as calculated under the applicable trade delivery.
	 * @var mixed
	 */
	public $FreeOnBoardValueAmount = null;

	/**
	 * cbc:InsuranceValueAmount, 0..1, optional tag
	 *
	 * The amount covered by insurance for this goods item.
	 * @var mixed
	 */
	public $InsuranceValueAmount = null;

	/**
	 * cbc:ValueAmount, 0..1, optional tag
	 *
	 * The amount on which a duty, tax, or fee will be assessed.
	 * @var mixed
	 */
	public $ValueAmount = null;

	/**
	 * cbc:GrossWeightMeasure, 0..1, optional tag
	 *
	 * The weight of this goods item, including packing and packaging but excluding the carrier's equipment.
	 * @var mixed
	 */
	public $GrossWeightMeasure = null;

	/**
	 * cbc:NetWeightMeasure, 0..1, optional tag
	 *
	 * The weight of this goods item, excluding packing but including packaging that normally accompanies the goods.
	 * @var mixed
	 */
	public $NetWeightMeasure = null;

	/**
	 * cbc:NetNetWeightMeasure, 0..1, optional tag
	 *
	 * The total weight of this goods item, excluding all packing and packaging.
	 * @var mixed
	 */
	public $NetNetWeightMeasure = null;

	/**
	 * cbc:ChargeableWeightMeasure, 0..1, optional tag
	 *
	 * The weight on which a charge is to be based.
	 * @var mixed
	 */
	public $ChargeableWeightMeasure = null;

	/**
	 * cbc:GrossVolumeMeasure, 0..1, optional tag
	 *
	 * The volume of this goods item, normally calculated by multiplying its maximum length, width, and height.
	 * @var mixed
	 */
	public $GrossVolumeMeasure = null;

	/**
	 * cbc:NetVolumeMeasure, 0..1, optional tag
	 *
	 * The volume contained by a goods item, excluding the volume of any packaging material.
	 * @var mixed
	 */
	public $NetVolumeMeasure = null;

	/**
	 * cbc:Quantity, 0..1, optional tag
	 *
	 * The number of units making up this goods item.
	 * @var mixed
	 */
	public $Quantity = null;

	/**
	 * cbc:PreferenceCriterionCode, 0..1, optional tag
	 *
	 * A code signifying the treatment preference for this goods item according to international trading agreements.
	 * @var mixed
	 */
	public $PreferenceCriterionCode = null;

	/**
	 * cbc:RequiredCustomsID, 0..1, optional tag
	 *
	 * An identifier for a set of tariff codes required to specify a type of goods for customs, transport, statistical, or
	 *   other regulatory purposes.
	 * @var mixed
	 */
	public $RequiredCustomsID = null;

	/**
	 * cbc:CustomsStatusCode, 0..1, optional tag
	 *
	 * A code assigned by customs to signify the status of this goods item.
	 * @var mixed
	 */
	public $CustomsStatusCode = null;

	/**
	 * cbc:CustomsTariffQuantity, 0..1, optional tag
	 *
	 * Quantity of the units in this goods item as required by customs for tariff, statistical, or fiscal purposes.
	 * @var mixed
	 */
	public $CustomsTariffQuantity = null;

	/**
	 * cbc:CustomsImportClassifiedIndicator, 0..1, optional tag
	 *
	 * An indicator that this goods item has been classified for import by customs (true) or not (false).
	 * @var mixed
	 */
	public $CustomsImportClassifiedIndicator = null;

	/**
	 * cbc:ChargeableQuantity, 0..1, optional tag
	 *
	 * The number of units in the goods item to which charges apply.
	 * @var mixed
	 */
	public $ChargeableQuantity = null;

	/**
	 * cbc:ReturnableQuantity, 0..1, optional tag
	 *
	 * The number of units in the goods item that may be returned.
	 * @var mixed
	 */
	public $ReturnableQuantity = null;

	/**
	 * cbc:TraceID, 0..1, optional tag
	 *
	 * An identifier for use in tracing this goods item, such as the EPC number used in RFID.
	 * @var mixed
	 */
	public $TraceID = null;

	/**
	 * cac:Item, 0..*
	 *
	 * Product information relating to a goods item.
	 * @var mixed
	 */
	public $Item = null;

	/**
	 * cac:GoodsItemContainer, 0..*
	 *
	 * The transporting of a goods item in a unit of transport equipment (e.g., container).
	 * @var mixed
	 */
	public $GoodsItemContainer = null;

	/**
	 * cac:FreightAllowanceCharge, 0..*
	 *
	 * A cost incurred by the shipper in moving goods, by whatever means, from one place to another under the terms of the
	 *   contract of carriage. In addition to transport costs, this may include such elements as packing, documentation, loading,
	 *   unloading, and insurance to the extent that they relate to the freight costs.
	 * @var mixed
	 */
	public $FreightAllowanceCharge = null;

	/**
	 * cac:InvoiceLine, 0..*
	 *
	 * Information about an invoice line relating to this goods item.
	 * @var mixed
	 */
	public $InvoiceLine = null;

	/**
	 * cac:Temperature, 0..*
	 *
	 * The temperature of the goods item.
	 * @var mixed
	 */
	public $Temperature = null;

	/**
	 * cac:ContainedGoodsItem, 0..*
	 *
	 * A goods item contained in this goods item.
	 * @var mixed
	 */
	public $ContainedGoodsItem = null;

	/**
	 * cac:OriginAddress, 0..1, optional tag
	 *
	 * The region in which the goods have been produced or manufactured, according to criteria laid down for the purposes of
	 *   application of the customs tariff, or of quantitative restrictions, or of any other measure related to trade.
	 * @var mixed
	 */
	public $OriginAddress = null;

	/**
	 * cac:Delivery, 0..1, optional tag
	 *
	 * The delivery of this goods item.
	 * @var mixed
	 */
	public $Delivery = null;

	/**
	 * cac:Pickup, 0..1, optional tag
	 *
	 * The pickup of this goods item.
	 * @var mixed
	 */
	public $Pickup = null;

	/**
	 * cac:Despatch, 0..1, optional tag
	 *
	 * The despatch of this goods item.
	 * @var mixed
	 */
	public $Despatch = null;

	/**
	 * cac:MeasurementDimension, 0..*
	 *
	 * A measurable dimension (length, mass, weight, or volume) of this goods item.
	 * @var mixed
	 */
	public $MeasurementDimension = null;

	/**
	 * cac:ContainingPackage, 0..*
	 *
	 * A package containing this goods item.
	 * @var mixed
	 */
	public $ContainingPackage = null;

	/**
	 * cac:ShipmentDocumentReference, 0..1, optional tag
	 *
	 * A reference to a shipping document associated with this goods item.
	 * @var mixed
	 */
	public $ShipmentDocumentReference = null;

	/**
	 * cac:MinimumTemperature, 0..1, optional tag
	 *
	 * Information about minimum temperature.
	 * @var mixed
	 */
	public $MinimumTemperature = null;

	/**
	 * cac:MaximumTemperature, 0..1, optional tag
	 *
	 * Information about maximum temperature.
	 * @var mixed
	 */
	public $MaximumTemperature = null;

}
