public virtual void RemoveProofOfDelivery(ProofOfDelivery __item)
 {
     if (__item != null)
     {
         __item.TruckDriver = null;
     }
 }
 public virtual void InternalRemoveProofOfDelivery(ProofOfDelivery __item)
 {
     if (__item == null)
     {
         return;
     }
     proofOfDelivery?.Remove(__item);
 }
 public virtual void InternalAddProofOfDelivery(ProofOfDelivery __item)
 {
     if (__item == null || disableInternalAdditions)
     {
         return;
     }
     proofOfDelivery?.Add(__item);
 }
 public virtual void AddProofOfDelivery(ProofOfDelivery __item)
 {
     if (__item == null)
     {
         return;
     }
     if (__item.TruckDriver != this)
     {
         __item.TruckDriver = this;
     }
 }
 public virtual void SetProofOfDeliveryAt(ProofOfDelivery __item, int __index)
 {
     if (__item == null)
     {
         proofOfDelivery[__index].TruckDriver = null;
     }
     else
     {
         proofOfDelivery[__index] = __item;
         if (__item.TruckDriver != this)
         {
             __item.TruckDriver = this;
         }
     }
 }
 public virtual void AddAtIndexProofOfDelivery(int index, ProofOfDelivery __item)
 {
     if (__item == null)
     {
         return;
     }
     proofOfDelivery?.Insert(index, __item);
     disableInternalAdditions = true;
     try
     {
         if (__item.TruckDriver != this)
         {
             __item.TruckDriver = this;
         }
     }
     finally
     {
         disableInternalAdditions = false;
     }
 }
        public void OrderWMS_persistence_test()
        {
            DateTime now = DateTime.Now;

            // Get datetime without milliseconds
            now = new DateTime(now.Ticks - (now.Ticks % TimeSpan.TicksPerSecond), now.Kind);
            var _order_proofofdelivery_orderwms = new DSS3_LogisticsPoolingForUrbanDistribution.BO.ProofOfDelivery
            {
                DateIssued       = now,
                PODNumber        = 3904,
                QualityStatus    = "ProofOfDelivery_QualityStatus",
                QuantityStatus   = "ProofOfDelivery_QuantityStatus",
                DeliveryStatus   = "ProofOfDelivery_DeliveryStatus",
                PODAttachment    = "ProofOfDelivery_PODAttachment",
                Comments         = "ProofOfDelivery_Comments",
                DamagedPackaging = true,
                DamagedProducts  = true,
                CloseToExpiry    = true,
            };

            new PersistenceSpecification <DSS3_LogisticsPoolingForUrbanDistribution.BO.OrderWMS>(Session)
            .CheckProperty(p => p.OrdID, 9106)
            .CheckProperty(p => p.OrdOrderID_Remote, 9568)
            .CheckProperty(p => p.OrdOrderExternalCode, "OrderWMS_OrdOrderExternalCode")
            .CheckProperty(p => p.OrdOrderDescr, "OrderWMS_OrdOrderDescr")
            .CheckProperty(p => p.OrdRegDateTime, now)
            .CheckProperty(p => p.OrdDateTime, now)
            .CheckProperty(p => p.OrdDeliveryDateTime, now)
            .CheckProperty(p => p.OrdDepositorCode, "OrderWMS_OrdDepositorCode")
            .CheckProperty(p => p.OrdDepositorFullName, "OrderWMS_OrdDepositorFullName")
            .CheckProperty(p => p.OrdCustomerCode, "OrderWMS_OrdCustomerCode")
            .CheckProperty(p => p.OrdCustomerFullName, "OrderWMS_OrdCustomerFullName")
            .CheckProperty(p => p.OrdStatus, 3543)
            .CheckProperty(p => p.OrdMemo, "OrderWMS_OrdMemo")
            .CheckProperty(p => p.OrdPurpose, "OrderWMS_OrdPurpose")
            .CheckProperty(p => p.OrdDeliveryValue, 222.222f)
            .CheckProperty(p => p.OrdDeliveryNotes, "OrderWMS_OrdDeliveryNotes")
            .CheckProperty(p => p.OrdIsReturn, 5583)
            .CheckProperty(p => p.OrdPrdTypeDescr, "OrderWMS_OrdPrdTypeDescr")
            .CheckProperty(p => p.OrdWrhRoutingCode, "OrderWMS_OrdWrhRoutingCode")
            .CheckProperty(p => p.OrdDlsId, 3628)
            .CheckProperty(p => p.OrdDlsDescr, "OrderWMS_OrdDlsDescr")
            .CheckProperty(p => p.OrdDlsAddress, "OrderWMS_OrdDlsAddress")
            .CheckProperty(p => p.OrdDlsZipCode, "OrderWMS_OrdDlsZipCode")
            .CheckProperty(p => p.OrdDlsCity, "OrderWMS_OrdDlsCity")
            .CheckProperty(p => p.OrdDlsArea, "OrderWMS_OrdDlsArea")
            .CheckProperty(p => p.OrdRoutingStatus, 9387)
            .CheckProperty(p => p.OrdLfdWeight, 222.222f)
            .CheckProperty(p => p.OrdLfdVol, 222.222f)
            .CheckProperty(p => p.OrdLfdCtn, 4903)
            .CheckProperty(p => p.OrdLfdBar, 1821)
            .CheckProperty(p => p.OrdLfdPalEuro, 565)
            .CheckProperty(p => p.OrdLfdPalInd, 7644)
            .CheckProperty(p => p.OrdLfdPalElsa, 53)
            .CheckProperty(p => p.OrdLfdParOU, 9919)
            .CheckProperty(p => p.OrdLfdVar, 1339)
            .CheckProperty(p => p.OrdVoucherDateTime, now)
            .CheckProperty(p => p.OrdVoucherNumber, "OrderWMS_OrdVoucherN")
            .CheckProperty(p => p.OrdVoucherSeries, "OrderWMS_OrdVoucherS")
            .CheckProperty(p => p.OrdVoucherId, 1794)
            .CheckProperty(p => p.OrdAgencyCode, "OrderWMS_OrdAgencyCode")
            .CheckProperty(p => p.OrdAgencyDescr, "OrderWMS_OrdAgencyDescr")
            .CheckProperty(p => p.OrdAgencyAddress, "OrderWMS_OrdAgencyAddress")
            .CheckProperty(p => p.OrdTelRouteId, 3043)
            .CheckProperty(p => p.OrdVchPlateNr, "OrderWMS_OrdVchPlateNr")
            .CheckProperty(p => p.OrdVchRouteNr, 1500)
            .CheckProperty(p => p.OrdVhrDate, now)
            .CheckProperty(p => p.OrdVhrID, 1766)
            .CheckProperty(p => p.OrdLastUpdateDateTime, now)
            .CheckProperty(p => p.OrdReadyForLoading, 7893)
            .CheckProperty(p => p.Polyline, "OrderWMS_Polyline")
            .CheckProperty(p => p.Warehouse, "OrderWMS_Warehouse")
            .CheckProperty(p => p.Truck, "OrderWMS_Truck")
            .CheckProperty(p => p.WarehouseAddress, "OrderWMS_WarehouseAddress")
            .CheckProperty(p => p.ETA, "OrderWMS_ETA")
            .CheckProperty(p => p.ATA, now)
            .CheckProperty(p => p.DestLat, 222.222f)
            .CheckProperty(p => p.DestLong, 222.222f)
            .CheckProperty(p => p.COE, 222.222f)
            .CheckReference(p => p.ProofOfDelivery, _order_proofofdelivery_orderwms)
            .VerifyTheMappings();
        }
/// <summary>
///     Returns true if self and the provided entity have the same Id values
///     and the Ids are not of the default Id value
/// </summary>
        protected bool HasSameNonDefaultIdAs(ProofOfDelivery compareTo)
        {
            return(!this.IsTransient() && !compareTo.IsTransient() && this.Id.Equals(compareTo.Id));
        }
/// <summary>
/// Copies the current object to a new instance
/// </summary>
/// <param name="deep">Copy members that refer to objects external to this class (not dependent)</param>
/// <param name="copiedObjects">Objects that should be reused</param>
/// <param name="asNew">Copy the current object as a new one, ready to be persisted, along all its members.</param>
/// <param name="reuseNestedObjects">If asNew is true, this flag if set, forces the reuse of all external objects.</param>
/// <param name="copy">Optional - An existing [ProofOfDelivery] instance to use as the destination.</param>
/// <returns>A copy of the object</returns>
        public virtual ProofOfDelivery Copy(bool deep = false, Hashtable copiedObjects = null, bool asNew = false, bool reuseNestedObjects = false, ProofOfDelivery copy = null)
        {
            if (copiedObjects == null)
            {
                copiedObjects = new Hashtable();
            }
            if (copy == null && copiedObjects.Contains(this))
            {
                return((ProofOfDelivery)copiedObjects[this]);
            }
            copy = copy ?? new ProofOfDelivery();
            if (!asNew)
            {
                copy.TransientId = this.TransientId;
                copy.Id          = this.Id;
            }
            copy.DateIssued       = this.DateIssued;
            copy.PODNumber        = this.PODNumber;
            copy.QualityStatus    = this.QualityStatus;
            copy.QuantityStatus   = this.QuantityStatus;
            copy.DeliveryStatus   = this.DeliveryStatus;
            copy.PODAttachment    = this.PODAttachment;
            copy.Comments         = this.Comments;
            copy.DamagedPackaging = this.DamagedPackaging;
            copy.DamagedProducts  = this.DamagedProducts;
            copy.CloseToExpiry    = this.CloseToExpiry;
            if (!copiedObjects.Contains(this))
            {
                copiedObjects.Add(this, copy);
            }
            if (deep && this.truckDriver != null)
            {
                if (!copiedObjects.Contains(this.truckDriver))
                {
                    if (asNew && reuseNestedObjects)
                    {
                        copy.TruckDriver = this.TruckDriver;
                    }
                    else if (asNew)
                    {
                        copy.TruckDriver = this.TruckDriver.Copy(deep, copiedObjects, true);
                    }
                    else
                    {
                        copy.truckDriver = this.truckDriver.Copy(deep, copiedObjects, false);
                    }
                }
                else
                {
                    if (asNew)
                    {
                        copy.TruckDriver = (TruckDriver)copiedObjects[this.TruckDriver];
                    }
                    else
                    {
                        copy.truckDriver = (TruckDriver)copiedObjects[this.TruckDriver];
                    }
                }
            }
            if (deep && this.orderWMS != null)
            {
                if (!copiedObjects.Contains(this.orderWMS))
                {
                    if (asNew && reuseNestedObjects)
                    {
                        copy.OrderWMS = this.OrderWMS;
                    }
                    else if (asNew)
                    {
                        copy.OrderWMS = this.OrderWMS.Copy(deep, copiedObjects, true);
                    }
                    else
                    {
                        copy.orderWMS = this.orderWMS.Copy(deep, copiedObjects, false);
                    }
                }
                else
                {
                    if (asNew)
                    {
                        copy.OrderWMS = (OrderWMS)copiedObjects[this.OrderWMS];
                    }
                    else
                    {
                        copy.orderWMS = (OrderWMS)copiedObjects[this.OrderWMS];
                    }
                }
            }
            return(copy);
        }