public static DSS1_RetailerDriverStockOptimisation.BO.Response ImportImplementation(System.Collections.Generic.List <DSS1_RetailerDriverStockOptimisation.BO.DeliverySchedule> deliverySchedules) { string message = ""; foreach (var delSchedule in deliverySchedules ?? Enumerable.Empty <DSS1_RetailerDriverStockOptimisation.BO.DeliverySchedule>()) { zAppDev.DotNet.Framework.Utilities.DebugHelper.Log(zAppDev.DotNet.Framework.Utilities.DebugMessageType.Info, "API", DSS1_RetailerDriverStockOptimisation.Hubs.EventsHub.RaiseDebugMessage, "Warehouse: " + (delSchedule?.Warehouse?.Code ?? "")); if ((delSchedule?.Supplier == null || delSchedule?.Warehouse == null)) { message = message + (delSchedule?.Id ?? 0) + " ,"; continue; } var _var0 = delSchedule?.Supplier?.Code; DSS1_RetailerDriverStockOptimisation.BO.Supplier existingSupplier = new DSS1_RetailerDriverStockOptimisation.DAL.Repository().GetAsQueryable <DSS1_RetailerDriverStockOptimisation.BO.Supplier>((w) => w.Code == _var0)?.FirstOrDefault(); var _var1 = delSchedule?.Warehouse?.Code; DSS1_RetailerDriverStockOptimisation.BO.Warehouse existingWarehouse = new DSS1_RetailerDriverStockOptimisation.DAL.Repository().GetAsQueryable <DSS1_RetailerDriverStockOptimisation.BO.Warehouse>((a) => a.Code == _var1)?.FirstOrDefault(); if ((existingSupplier == null || existingWarehouse == null)) { message = message + (delSchedule?.Id ?? 0) + " ,"; continue; } DSS1_RetailerDriverStockOptimisation.BO.DeliverySchedule newDelSchedule = new DSS1_RetailerDriverStockOptimisation.BO.DeliverySchedule(); newDelSchedule.Supplier = existingSupplier; newDelSchedule.Warehouse = existingWarehouse; newDelSchedule.LeadTime = (delSchedule?.LeadTime ?? 0); newDelSchedule.Weekday = (delSchedule?.Weekday ?? 0); new DSS1_RetailerDriverStockOptimisation.DAL.Repository().Save <DSS1_RetailerDriverStockOptimisation.BO.DeliverySchedule>(newDelSchedule); } if (((((message == null || message == "")) == false))) { zAppDev.DotNet.Framework.Utilities.DebugHelper.Log(zAppDev.DotNet.Framework.Utilities.DebugMessageType.Warning, "API", DSS1_RetailerDriverStockOptimisation.Hubs.EventsHub.RaiseDebugMessage, "Error message: " + message); return(DSS1_RetailerDriverStockOptimisation.BO.ResponseExtensions.GenerateResponse("Failed", "Failed to import entries with Ids: " + message, "", "-1")); } return(DSS1_RetailerDriverStockOptimisation.BO.ResponseExtensions.GenerateResponse("Succeed", "All entries imported successfully.", "", "1")); }
/// <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(DeliverySchedule 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 [DeliverySchedule] instance to use as the destination.</param> /// <returns>A copy of the object</returns> public virtual DeliverySchedule Copy(bool deep = false, Hashtable copiedObjects = null, bool asNew = false, bool reuseNestedObjects = false, DeliverySchedule copy = null) { if (copiedObjects == null) { copiedObjects = new Hashtable(); } if (copy == null && copiedObjects.Contains(this)) { return((DeliverySchedule)copiedObjects[this]); } copy = copy ?? new DeliverySchedule(); if (!asNew) { copy.TransientId = this.TransientId; copy.Id = this.Id; } copy.LeadTime = this.LeadTime; copy.Weekday = this.Weekday; copy.NameOfDay = this.NameOfDay; copy.DBWeekday = this.DBWeekday; if (!copiedObjects.Contains(this)) { copiedObjects.Add(this, copy); } if (deep && this.supplier != null) { if (!copiedObjects.Contains(this.supplier)) { if (asNew && reuseNestedObjects) { copy.Supplier = this.Supplier; } else if (asNew) { copy.Supplier = this.Supplier.Copy(deep, copiedObjects, true); } else { copy.supplier = this.supplier.Copy(deep, copiedObjects, false); } } else { if (asNew) { copy.Supplier = (Supplier)copiedObjects[this.Supplier]; } else { copy.supplier = (Supplier)copiedObjects[this.Supplier]; } } } if (deep && this.item != null) { if (!copiedObjects.Contains(this.item)) { if (asNew && reuseNestedObjects) { copy.Item = this.Item; } else if (asNew) { copy.Item = this.Item.Copy(deep, copiedObjects, true); } else { copy.item = this.item.Copy(deep, copiedObjects, false); } } else { if (asNew) { copy.Item = (Item)copiedObjects[this.Item]; } else { copy.item = (Item)copiedObjects[this.Item]; } } } if (deep && this.warehouse != null) { if (!copiedObjects.Contains(this.warehouse)) { if (asNew && reuseNestedObjects) { copy.Warehouse = this.Warehouse; } else if (asNew) { copy.Warehouse = this.Warehouse.Copy(deep, copiedObjects, true); } else { copy.warehouse = this.warehouse.Copy(deep, copiedObjects, false); } } else { if (asNew) { copy.Warehouse = (Warehouse)copiedObjects[this.Warehouse]; } else { copy.warehouse = (Warehouse)copiedObjects[this.Warehouse]; } } } return(copy); }
public void Item_persistence_test() { DateTime now = DateTime.Now; // Get datetime without milliseconds now = new DateTime(now.Ticks - (now.Ticks % TimeSpan.TicksPerSecond), now.Kind); var _agreement_agreements_items = new DSS1_RetailerDriverStockOptimisation.BO.Agreement { FullTruckLoad = true, AgreementDocument = "Agreement_AgreementDocument", LeadTime = "Agreement_LeadTime", DateCreated = now, WDDeliveries = true, TargetInventoryDays = 4750, Profile = "Agreement_Profile", }; var _agreement_agreements_items2 = new DSS1_RetailerDriverStockOptimisation.BO.Agreement { FullTruckLoad = true, AgreementDocument = "Agreement_AgreementDocument", LeadTime = "Agreement_LeadTime", DateCreated = now, WDDeliveries = true, TargetInventoryDays = 6123, Profile = "Agreement_Profile", }; var _forecast_deliveryschedules_item = new DSS1_RetailerDriverStockOptimisation.BO.DeliverySchedule { LeadTime = 2384, Weekday = 2568, NameOfDay = "DeliverySchedule_NameOfDay", DBWeekday = 6397, }; var _forecast_deliveryschedules_item2 = new DSS1_RetailerDriverStockOptimisation.BO.DeliverySchedule { LeadTime = 8869, Weekday = 4507, NameOfDay = "DeliverySchedule_NameOfDay", DBWeekday = 5241, }; var _inventoryitem_inventoryitems_item = new DSS1_RetailerDriverStockOptimisation.BO.InventoryItem { CoverageDays = 4330, SafetyStock = 2511, Status = "InventoryItem_Status", }; var _inventoryitem_inventoryitems_item2 = new DSS1_RetailerDriverStockOptimisation.BO.InventoryItem { CoverageDays = 9286, SafetyStock = 1203, Status = "InventoryItem_Status", }; var _item_suppliercapacities_item = new DSS1_RetailerDriverStockOptimisation.BO.SupplierCapacity { DateOfStockUpdate = now, DailyProduction = 2651, Stock = 9044, }; var _item_suppliercapacities_item2 = new DSS1_RetailerDriverStockOptimisation.BO.SupplierCapacity { DateOfStockUpdate = now, DailyProduction = 5174, Stock = 8303, }; var _item_supplier_items = new DSS1_RetailerDriverStockOptimisation.BO.Supplier { Code = "Supplier_Code", Name = "Supplier_Name", }; var _item_businessunit_item = new DSS1_RetailerDriverStockOptimisation.BO.BusinessUnit { Number = 5353, Description = "BusinessUnit_Description", }; var _item_category_item = new DSS1_RetailerDriverStockOptimisation.BO.Category { Number = 6940, Description = "Category_Description", }; var _item_subcategory_item = new DSS1_RetailerDriverStockOptimisation.BO.SubCategory { Number = 2833, Description = "SubCategory_Description", }; var _item_baseunit_item = new DSS1_RetailerDriverStockOptimisation.BO.BaseUnit { Number = 988, Description = "BaseUnit_Description", }; var _minimumquantity_minimumquantity_item = new DSS1_RetailerDriverStockOptimisation.BO.MinimumQuantity { Country = "MinimumQuantity_Country", Quantity = 7287, }; var _notification_notifications_item = new DSS1_RetailerDriverStockOptimisation.BO.Notification { Message = "Notification_Message", TotalSupplierStock = 2248, OrderForecastQuantity = 4736, Diff = 1992, SalesForecastDate = now, CreatedBy = "Notification_CreatedBy", }; var _notification_notifications_item2 = new DSS1_RetailerDriverStockOptimisation.BO.Notification { Message = "Notification_Message", TotalSupplierStock = 9495, OrderForecastQuantity = 8902, Diff = 4283, SalesForecastDate = now, CreatedBy = "Notification_CreatedBy", }; var _pastorder_pastorders_item = new DSS1_RetailerDriverStockOptimisation.BO.PastOrder { OrderNumber = 9238, WrittenDate = now, NotBeforeDate = now, QuantityOrdered = 4814, ReceiveDate = now, QuantityReceived = 4466, Caller = "PastOrder_Caller", }; var _pastorder_pastorders_item2 = new DSS1_RetailerDriverStockOptimisation.BO.PastOrder { OrderNumber = 1424, WrittenDate = now, NotBeforeDate = now, QuantityOrdered = 4993, ReceiveDate = now, QuantityReceived = 246, Caller = "PastOrder_Caller", }; var _sale_itemsforecast_item = new DSS1_RetailerDriverStockOptimisation.BO.Sales { ForecastDate = now, Units = 1957, }; var _sale_itemsforecast_item2 = new DSS1_RetailerDriverStockOptimisation.BO.Sales { ForecastDate = now, Units = 1789, }; var _sla_slaleadtimes_item = new DSS1_RetailerDriverStockOptimisation.BO.SLALeadTime { AgreedLeadTime = 9208, RealLeadTime = 324, Percentage = 222222.22M, ItemDescription = "SLALeadTime_ItemDescription", DateFormatted = "SLALeadTime_DateFormatted", Threshold = 222222.22M, SLALeadDate = now, Month = 1777, MonthlyDelayed = 222222.22M, MontlhyOrders = 222222.22M, MonthlyPercentage = 222222.22M, }; var _sla_slaleadtimes_item2 = new DSS1_RetailerDriverStockOptimisation.BO.SLALeadTime { AgreedLeadTime = 5943, RealLeadTime = 7596, Percentage = 222222.22M, ItemDescription = "SLALeadTime_ItemDescription", DateFormatted = "SLALeadTime_DateFormatted", Threshold = 222222.22M, SLALeadDate = now, Month = 639, MonthlyDelayed = 222222.22M, MontlhyOrders = 222222.22M, MonthlyPercentage = 222222.22M, }; var _sla_sladeliveries_item = new DSS1_RetailerDriverStockOptimisation.BO.SLADelivery { OrderedQuantities = 222222.22M, DeliveredQuantities = 222222.22M, Percentage = 222222.22M, ItemDescription = "SLADelivery_ItemDescription", Threshold = 222222.22M, SLADate = now, DateFormatted = "SLADelivery_DateFormatted", Month = 396, }; var _sla_sladeliveries_item2 = new DSS1_RetailerDriverStockOptimisation.BO.SLADelivery { OrderedQuantities = 222222.22M, DeliveredQuantities = 222222.22M, Percentage = 222222.22M, ItemDescription = "SLADelivery_ItemDescription", Threshold = 222222.22M, SLADate = now, DateFormatted = "SLADelivery_DateFormatted", Month = 8494, }; var _stockonhand_stocksonhand_item = new DSS1_RetailerDriverStockOptimisation.BO.StockOnHand { Units = 5008, CurrentInventoryDays = 222222.22M, StockOnHandDate = now, LeadTime = "StockOnHand_LeadTime", TargetInventoryDays = 222222.22M, FullTrackLoad = true, WDDays = true, }; var _stockonhand_stocksonhand_item2 = new DSS1_RetailerDriverStockOptimisation.BO.StockOnHand { Units = 5380, CurrentInventoryDays = 222222.22M, StockOnHandDate = now, LeadTime = "StockOnHand_LeadTime", TargetInventoryDays = 222222.22M, FullTrackLoad = true, WDDays = true, }; new PersistenceSpecification <DSS1_RetailerDriverStockOptimisation.BO.Item>(Session) .CheckProperty(p => p.SKU, "e9a08b5a-a00f-45b3-a68b-adb86cb8602cItem_SKU") .CheckProperty(p => p.Description, "Item_Description") .CheckProperty(p => p.UPC, "Item_UPC") .CheckProperty(p => p.AvgDailyDemand, 222222.22M) .CheckProperty(p => p.PalletSize, 9011) .CheckProperty(p => p.SupplierPackSize, 9480) .CheckProperty(p => p.InnerPackSize, 7252) .CheckProperty(p => p.PalletType, "Item_PalletType") .CheckProperty(p => p.PalTI, 7518) .CheckProperty(p => p.PalHI, 4266) .CheckProperty(p => p.UOM, "Item_UOM") .CheckBag(p => p.Agreements, (new List <DSS1_RetailerDriverStockOptimisation.BO.Agreement> { _agreement_agreements_items, _agreement_agreements_items2 })) .CheckBag(p => p.DeliverySchedules, (new List <DSS1_RetailerDriverStockOptimisation.BO.DeliverySchedule> { _forecast_deliveryschedules_item, _forecast_deliveryschedules_item2 })) .CheckBag(p => p.InventoryItems, (new List <DSS1_RetailerDriverStockOptimisation.BO.InventoryItem> { _inventoryitem_inventoryitems_item, _inventoryitem_inventoryitems_item2 })) .CheckBag(p => p.SupplierCapacities, (new List <DSS1_RetailerDriverStockOptimisation.BO.SupplierCapacity> { _item_suppliercapacities_item, _item_suppliercapacities_item2 })) .CheckReference(p => p.Supplier, _item_supplier_items) .CheckReference(p => p.BusinessUnit, _item_businessunit_item) .CheckReference(p => p.Category, _item_category_item) .CheckReference(p => p.SubCategory, _item_subcategory_item) .CheckReference(p => p.BaseUnit, _item_baseunit_item) .CheckReference(p => p.MinimumQuantity, _minimumquantity_minimumquantity_item) .CheckBag(p => p.Notifications, (new List <DSS1_RetailerDriverStockOptimisation.BO.Notification> { _notification_notifications_item, _notification_notifications_item2 })) .CheckBag(p => p.PastOrders, (new List <DSS1_RetailerDriverStockOptimisation.BO.PastOrder> { _pastorder_pastorders_item, _pastorder_pastorders_item2 })) .CheckBag(p => p.ItemsForecast, (new List <DSS1_RetailerDriverStockOptimisation.BO.Sales> { _sale_itemsforecast_item, _sale_itemsforecast_item2 })) .CheckBag(p => p.SLALeadTimes, (new List <DSS1_RetailerDriverStockOptimisation.BO.SLALeadTime> { _sla_slaleadtimes_item, _sla_slaleadtimes_item2 })) .CheckBag(p => p.SLADeliveries, (new List <DSS1_RetailerDriverStockOptimisation.BO.SLADelivery> { _sla_sladeliveries_item, _sla_sladeliveries_item2 })) .CheckBag(p => p.StocksOnHand, (new List <DSS1_RetailerDriverStockOptimisation.BO.StockOnHand> { _stockonhand_stocksonhand_item, _stockonhand_stocksonhand_item2 })) .VerifyTheMappings(); }