#region  --------------- Copyright Dresser Wayne Pignone -------------
/*
 * $Log: /Wrk/Support/ForecourtControl/Wrk/ForecourtControl/EventArgs/FuelDeliveryEventArgs.cs $
 * 
 * 2     07-03-09 15:36 roger.månsson
 * Made COM visible.
 * 
 * 1     07-01-05 15:17 roger.månsson
 * Created
 */
#endregion
using System;
using System.Runtime.InteropServices;

namespace Wayne.ForecourtControl
{
    /// <summary>
    /// Data structure that contains data for a manual fuel delivery registration.
    /// </summary>
    [ComVisible(true)]
    public class FuelDeliveryEventArgs : EventArgs, Com.IFuelDeliveryEventArgs
    {
        #region Fields

        FuelDeliveryType type;
        int tankGroupId;
        DateTime startDateTime;
        DateTime endDateTime;
        decimal quantity;
        decimal plannedQuantity;
        decimal truckFuelTemperature;
        string sourcePlantInfo;
        string referenceNote;

        #endregion

        #region Construction

        /// <summary>
        /// 
        /// </summary>
        /// <param name="type">Defines how the delivery was registered. I.e detected from a tank probe or a manual registration.</param>
        /// <param name="tankGroupId"> Id of the tank group that the delivery was made to.</param>
        /// <param name="startDateTime">Start date and time for the delivery.</param>
        /// <param name="endDateTime">End date and time for the delivery.</param>
        /// <param name="quantity">The delivered volume.</param>
        /// <param name="plannedQuantity">The volume that was planned to deliver.</param>
        /// <param name="truckFuelTemperature">Temperature of the fuel in the truck.</param>
        /// <param name="sourcePlantInfo">Plant where the truck came from. Free format string.</param>
        /// <param name="referenceNote">Note reference number entered by the truck driver.</param>
        public FuelDeliveryEventArgs(FuelDeliveryType type, int tankGroupId, DateTime startDateTime, DateTime endDateTime,
                                     decimal quantity, decimal plannedQuantity, decimal truckFuelTemperature, 
                                     string sourcePlantInfo, string referenceNote)
        {
            this.type = type;
            this.tankGroupId = tankGroupId;
            this.startDateTime = startDateTime;
            this.endDateTime = endDateTime;
            this.quantity = quantity;
            this.plannedQuantity = plannedQuantity;
            this.truckFuelTemperature = truckFuelTemperature;
            this.sourcePlantInfo = sourcePlantInfo;
            this.referenceNote = referenceNote;
        }
        #endregion

        #region IFuelDeliveryEevntArgs Members

        /// <summary>
        /// Defines how the delivery was registered. I.e detected from a tank probe or 
        /// a manual registration.
        /// </summary>
        public FuelDeliveryType Type
        {
            get { return type; }
        }

        /// <summary>
        ///  Id of the tank group that the delivery was made to.
        /// </summary>
        public int TankGroupId
        {
            get { return tankGroupId; }
        }

        /// <summary>
        /// Start date and time for the delivery.
        /// </summary>
        public DateTime StartDateTime
        {
            get { return startDateTime; }
        }

        /// <summary>
        /// End date and time for the delivery.
        /// </summary>
        public DateTime EndDateTime
        {
            get { return endDateTime; }
        }

        /// <summary>
        /// The delivered volume
        /// </summary>
        public decimal Quantity
        {
            get { return quantity; }
        }

        /// <summary>
        /// The volume that was planned to deliver.
        /// </summary>
        public decimal PlannedQuantity
        {
            get { return plannedQuantity; }
        }

        /// <summary>
        /// Temperature of the fuel in the truck.
        /// </summary>
        public decimal TruckFuelTemperature
        {
            get { return truckFuelTemperature; }
        }

        /// <summary>
        /// Plant where the truck came from. Free format string.
        /// </summary>
        public string SourcePlantInfo
        {
            get { return sourcePlantInfo; }
        }

        /// <summary>
        /// Note reference number entered by the truck driver.
        /// </summary>
        public string ReferenceNote
        {
            get { return referenceNote; }
        }

        #endregion
    }
}