public ItemPricing GetCurrentItemPricing(long typeId, long regionId = 10000002, IEnumerable <long> stationIds = null) { var region = _eveDb.mapRegions.Single(r => r.regionID == regionId); var regionStations = region.stations.ToList(); var stationDict = regionStations.ToDictionary(s => s.stationID, s => s.stationName); var sellOrders = _liteDb.GetCollection <RegionMarketOrder>("region-market-orders"); var regionOrders = sellOrders.FindOne(o => o.TypeId == typeId && o.RegionId == regionId); if (regionOrders != null) { foreach (var marketOrder in regionOrders.MarketOrders) { marketOrder.StationName = stationDict[marketOrder.StationId]; } var itemPricing = new ItemPricing { RegionId = regionId, LastUpdated = regionOrders.LastUpdated, MarketOrders = regionOrders.MarketOrders, AllowedStationIds = stationIds ?? new List <long> { 60003760 }, }; return(itemPricing); } return(null); }
public TicketItem AddItemToOrder(Item item) { double itemPrice = item.Price; // TODO: VIP! Check for special pricing foreach (ItemPricing price in ItemPricing.GetAll(item.Id, true, true)) { itemPrice = price.Price; } TicketItem ticketItem = TicketItem.Add(SessionManager.ActiveTicket.PrimaryKey, item.Id, 1, itemPrice, null, null); if (item.IsGrouping) { var itemGroups = new List <ItemGroup>(ItemGroup.GetAll(item.Id)); var ticketItems = new Stack <TicketItem>(); foreach (TicketItem childTicketItem in itemGroups .Select(itemGroup => TicketItem.Add(SessionManager.ActiveTicket.PrimaryKey, itemGroup.TargetItemId, 1, 0, null, null, ticketItem.PrimaryKey.Id))) { ticketItems.Push(childTicketItem); } AddItemToOrder(ticketItems.Pop(), BranchType.Last); foreach (TicketItem childTicketItem in ticketItems) { AddItemToOrder(childTicketItem, BranchType.Middle); } } return(AddItemToOrder(ticketItem)); }
public ItemPricingModel(ItemPricing itemPricing) { Id = itemPricing.Id; ItemId = itemPricing.ItemId; DayOfWeek = itemPricing.DayOfWeek; StartTime = itemPricing.StartTime; EndTime = itemPricing.EndTime; Price = itemPricing.Price; }
public void Setup() { dbConnStr = buildConnectionString(CustomerManagementTest.Properties.Settings.Default.TestDb, () => DateTimeOffset.UtcNow.ToString("yyyy-MM-dd_hh:mm:ssZ")); using (var db = new CustomerContext(dbConnStr)) { var item = new Item { ItemClass = "iclass", SubscriptionDays = 30, Glacctno = "1234" }; var itempricing = new ItemPricing { Item = item, OverrideGlacctno = "abcd", PromoCode = "code", UnitPrice = 30M, StartDate = DateTime.UtcNow.AddHours(-1), EndDate = DateTime.UtcNow.AddHours(300) }; db.Save(itempricing); db.SaveChanges(); id = itempricing.Id; } }
public void TestItemPricing() { using (var db = new CustomerContext(dbConnStr)) { var item = db.Items.First(p => p.Id == itemId); db.Attach(item); var itempricing = new ItemPricing { Item=item, OverrideGlacctno="abcd", PromoCode="code", UnitPrice=30M, StartDate=DateTime.UtcNow.AddHours(-1), EndDate=DateTime.UtcNow.AddHours(300) }; item.ItemPricings.Add(itempricing); db.SaveChanges(); item = db.Items.First(p => p.Id == itemId); Assert.IsTrue(item.ItemPricings.Count == 1, "Did not save Item pricing"); } }
private void btnAddPrice_Click(object sender, EventArgs e) { var itemPrice = new ItemPricing() { ItemCode = txtCode.Text, UnitPrice = Convert.ToDecimal(txtNewPrice.Text), NotedDate = MegaService.GetComputeTime(), ComputerCode = MegaService.GetComputerCode(), ComputeTime = MegaService.GetComputeTime() }; using (var context = new MegaEntities()) { context.ItemPricings.Add(itemPrice); } txtNewPrice.Clear(); txtNewPrice.Focus(); newPrice = itemPrice.UnitPrice; dgvList.Rows.Add((dgvList.Rows.Count + 1), itemPrice.NotedDate, itemPrice.UnitPrice.ToString("C2")); }
private void map(ItemPricing itemPricing, DAL.ItemPricing dalItemPricing) { bool isNew = itemPricing.Id == 0; bool isModified = false; if (dalItemPricing.ItemId != itemPricing.ItemId) { dalItemPricing.ItemId = itemPricing.ItemId; isModified = true; } if (dalItemPricing.StartDate != itemPricing.StartDate) { dalItemPricing.StartDate = itemPricing.StartDate; isModified = true; } if (dalItemPricing.EndDate != itemPricing.EndDate) { dalItemPricing.EndDate = itemPricing.EndDate; isModified = true; } if (dalItemPricing.OverrideGlacctno != itemPricing.OverrideGlacctno) { dalItemPricing.OverrideGlacctno = itemPricing.OverrideGlacctno; isModified = true; } if (dalItemPricing.UnitPrice != itemPricing.UnitPrice) { dalItemPricing.UnitPrice = itemPricing.UnitPrice; isModified = true; } if (dalItemPricing.Description != itemPricing.Description) { dalItemPricing.Description = itemPricing.Description; isModified = true; } if (dalItemPricing.PromoCode != itemPricing.PromoCode) { dalItemPricing.PromoCode = itemPricing.PromoCode; isModified = true; } if (isNew) { dalItemPricing.CreatedBy = itemPricing.LastChangedBy; dalItemPricing.CreatedDate = DateTime.Now; } if (isModified) { dalItemPricing.LastChangedBy = itemPricing.LastChangedBy; dalItemPricing.LastChangedDate = DateTime.Now; } }
private void map(DAL.ItemPricing dalItemPricing, ItemPricing itemPricing) { itemPricing.Id = dalItemPricing.Id; itemPricing.ItemId = dalItemPricing.ItemId; itemPricing.StartDate = dalItemPricing.StartDate; itemPricing.EndDate = dalItemPricing.EndDate; itemPricing.OverrideGlacctno = dalItemPricing.OverrideGlacctno; itemPricing.UnitPrice = dalItemPricing.UnitPrice; itemPricing.Description = dalItemPricing.Description; itemPricing.PromoCode = dalItemPricing.PromoCode; }
internal static void Delete(DAL.CustomersDataContext dc, ItemPricing itemPricing) { DAL.ItemPricing dalItemPricing = findRecord(dc, itemPricing.Id); dalItemPricing.Deleted = true; dc.SubmitChanges(); }
public bool UpdateItem() { int categoryId = itemEditorDetailsControl.CategoryId; string fullName = itemEditorDetailsControl.FullName; string shortName = itemEditorDetailsControl.ShortName; double price = itemEditorDetailsControl.Price; PrintDestination printOptionSet = itemEditorDetailsControl.PrintDestinations; bool isActive = itemEditorDetailsControl.IsActive; int taxId = itemEditorDetailsControl.TaxId; int itemOptionSet1 = itemEditorOptionControl.OptionSetId1; int itemOptionSet2 = itemEditorOptionControl.OptionSetId2; int itemOptionSet3 = itemEditorOptionControl.OptionSetId3; bool isReturnable = itemEditorDetailsControl.IsReturnable; bool isTaxExemptable = itemEditorDetailsControl.IsTaxExemptable; bool isFired = itemEditorDetailsControl.IsFired; bool isOutOfStock = itemEditorDetailsControl.IsOutOfStock; bool isGrouping = itemEditorDetailsControl.IsGrouping; // TODO: Implement for delivery and future times TimeSpan?prepareTime = null; // Verify Category is set if (categoryId <= 0) { PosDialogWindow.ShowDialog( Strings.ItemEditorErrorNoCategory, Strings.ItemEditorInvalidCategory); return(false); } // Verify name is valid and unique try { if (string.IsNullOrEmpty(fullName)) { throw new Exception(Strings.ItemEditorErrorNoName); } Item current = Item.Get(fullName); if (current != null) { if ((ActiveItem == null) || ((ActiveItem != null) && (current.Id != ActiveItem.Id))) { throw new Exception(Strings.ItemEditorErrorExistingName); } } } catch (Exception ex) { PosDialogWindow.ShowDialog(ex.Message, Strings.ItemEditorInvalidName); return(false); } // Is there an ActiveItem? Item activeItem = ActiveItem; if (activeItem == null) { activeItem = Item.Add(categoryId, fullName, shortName, price, itemOptionSet1, itemOptionSet2, itemOptionSet3, printOptionSet, isActive, taxId, prepareTime, isReturnable, isTaxExemptable, isFired, isOutOfStock, isGrouping); } else { LogItemChanges(activeItem, itemOptionSet1, itemOptionSet2, itemOptionSet3); // Update the category values for the ActiveItem activeItem.SetCategory(categoryId); activeItem.SetFullName(fullName); activeItem.SetShortName(shortName); if (Math.Abs(price - activeItem.Price) > double.Epsilon) { LogPriceChange(activeItem.Id, activeItem.Price, price); } activeItem.SetPrice(price); activeItem.SetOptionSet1(itemOptionSet1); activeItem.SetOptionSet2(itemOptionSet2); activeItem.SetOptionSet3(itemOptionSet3); activeItem.SetActive(isActive); activeItem.SetPrintOptionSet(printOptionSet); activeItem.SetTaxId(taxId); activeItem.SetPrepareTime(prepareTime); activeItem.SetIsReturnable(isReturnable); activeItem.SetIsTaxExemptable(isTaxExemptable); activeItem.SetIsFired(isFired); activeItem.SetIsOutOfStock(isOutOfStock); activeItem.SetIsGrouping(isGrouping); // Update the database activeItem.Update(); } // Update ItemPricing List <int> removedIds = new List <int>(); if (itemEditorSpecialPricing.RemovedItems != null) { foreach (ItemEditorSpecialPricingControl.ItemPricingModel removed in itemEditorSpecialPricing.RemovedItems) { removedIds.Add(removed.Id); ItemPricing.Delete(removed.Id); LogPriceChange(removed.Id, removed.ItemId, removed.Price, null, removed.DayOfWeek, null, removed.StartTime, null, removed.EndTime, null); } } if (itemEditorSpecialPricing.NewItems != null) { foreach (ItemEditorSpecialPricingControl.ItemPricingModel added in itemEditorSpecialPricing.NewItems) { // ToDo: Placeholder Constants ItemPricing itemPricing = ItemPricing.Add(activeItem.Id, added.DayOfWeek, added.StartTime, added.EndTime, added.Price, null, null, null, true); LogPriceChange(itemPricing.Id, added.ItemId, null, added.Price, null, added.DayOfWeek, null, added.StartTime, null, added.EndTime); } } if (itemEditorSpecialPricing.ExistingItems != null) { foreach (ItemEditorSpecialPricingControl.ItemPricingModel existing in itemEditorSpecialPricing.ExistingItems) { if (removedIds.Contains(existing.Id)) { continue; } double? oldPrice = null, newPrice = null; Days? oldDayOfWeek = null, newDayOfWeek = null; TimeSpan? oldStartTime = null, newStartTime = null, oldEndTime = null, newEndTime = null; ItemPricing itemPricing = ItemPricing.Get(existing.Id); if (Math.Abs(itemPricing.Price - existing.Price) > double.Epsilon) { oldPrice = itemPricing.Price; newPrice = existing.Price; } if (itemPricing.DayOfWeek != existing.DayOfWeek) { oldDayOfWeek = itemPricing.DayOfWeek; newDayOfWeek = existing.DayOfWeek; } if (itemPricing.StartTime != existing.StartTime) { oldStartTime = itemPricing.StartTime; newStartTime = existing.StartTime; } if (itemPricing.EndTime != existing.EndTime) { oldEndTime = itemPricing.EndTime; newEndTime = existing.EndTime; } itemPricing.SetItemId(existing.ItemId); itemPricing.SetDayOfTheWeek(existing.DayOfWeek); itemPricing.SetPrice(existing.Price); itemPricing.SetStartTime(existing.StartTime); itemPricing.SetEndTime(existing.EndTime); itemPricing.Update(); LogPriceChange(itemPricing.Id, itemPricing.ItemId, oldPrice, newPrice, oldDayOfWeek, newDayOfWeek, oldStartTime, newStartTime, oldEndTime, newEndTime); } } if (ActiveItem == null) { ActiveItem = activeItem; } itemEditorGroupingControl.Update(ActiveItem.Id); itemEditorIngredientsControl.Update(ActiveItem.Id); itemEditorSpecialPricing.ActiveItem = ActiveItem; return(true); }
public ItemPricing UpdateItemPricing(long itemPricingId, ItemPricing ip) { throw new Exception("This is not a valid function, itempricing should never be updated"); using (var db = Db()) { var itempricing = db.ItemPricings.FirstOrDefault(i => i.Id == itemPricingId); db.Attach(itempricing); itempricing.StartDate= ip.StartDate; itempricing.EndDate = ip.EndDate; itempricing.OverrideGlacctno =ip.OverrideGlacctno; itempricing.UnitPrice = ip.UnitPrice; itempricing.Description = ip.Description; itempricing.PromoCode = ip.PromoCode; db.SaveChanges(); return ip; } }
public ItemPricing CreateItemPricing(long itemId, DateTime start, DateTime end, string overrideGlacctno, decimal unitprice, string description, string promo ) { using (var db = Db()) { var item = db.Items.FirstOrDefault(i => i.Id == itemId); if (item == null) throw new ArgumentNullException("Item does not exist"); var itempricing = new ItemPricing { StartDate = start, EndDate = end, OverrideGlacctno = overrideGlacctno, UnitPrice = unitprice, Description = description, PromoCode = promo }; db.Save(itempricing); db.SaveChanges(); return itempricing; } }