public Boolean TestItem(ItemRecord a_Item) { if (!TestTristate(Published, a_Item.IsPublished)) { return(false); } if (!TestTristate(PlainMaterials, !a_Item.HasUnknownMaterials)) { return(false); } if (!TestTristate(HasMarketGroup, (0 != a_Item.MarketGroupID))) { return(false); } if (!TestTristate(IsPricesOk, a_Item.IsPricesOk(PriceExpiryDays))) { return(false); } if ((AssetsFilter != null) && !AssetsFilter.ContainsKey(a_Item.TypeID)) { return(false); } return(true); }
private void UpdateTotalsRow() { if (m_TotalsItem == null) { return; } m_TotalsItem.ItemData = CreateSpecialItem_Totals(); m_TotalsItem.Quantity = 0; ItemRecord totalRecord = m_TotalsItem.ItemData; foreach (MainListItem listItem in m_ItemList) { if (listItem.TypeID == SpecialTypeID_Totals) { continue; } ItemRecord currRecord = listItem.ItemData; lock (currRecord) { m_TotalsItem.Quantity += listItem.Quantity; m_TotalsItem.ItemData.Volume += listItem.Quantity * currRecord.Volume; bool isPriceExpired = !currRecord.IsPricesOk(m_Engine.m_Settings.PriceLoad.Items.ExpiryDays); bool isZeroPrice = (currRecord.Price == 0); if (!isPriceExpired && !isZeroPrice) { totalRecord.Price += listItem.Quantity * currRecord.Price; } for (int i = 0; i < currRecord.MaterialAmount.Count(); i++) { double currAmount = m_Engine.GetPerfectRefiningQuota(currRecord, listItem.Quantity, (Materials)i); totalRecord.MaterialAmount[i] += currAmount; } } } }
/// <summary> /// Gets various prices and colors for an item /// </summary> /// <param name="a_Item">Item in question</param> /// <param name="a_Quantity">Quantity of the item</param> /// <param name="a_QuantityOK">true means that quantity is valid (ie assets mode + use quantities enabled)</param> /// <returns>Prices and color</returns> public ItemPrice GetItemPrices(ItemRecord a_Item, RefiningMutators a_Mutators, UInt32 a_Quantity) { ItemPrice result = new ItemPrice(); result.RefinedCost = GetItemRefinedPrice(a_Item, a_Mutators, a_Quantity); result.MarketPrice = a_Quantity * a_Item.Price; bool isError = false; if (0 == a_Item.MarketGroupID) { result.MarketPrice = ItemPrice.NonMarket; isError = true; } else if (0 == result.MarketPrice) { result.MarketPrice = ItemPrice.Unknown; isError = true; } else if (!a_Item.IsPricesOk(m_Settings.PriceLoad.Items.ExpiryDays)) { result.MarketPrice = ItemPrice.Outdated; isError = true; } else { result.PriceDelta = result.RefinedCost - result.MarketPrice; } if (isError) { result.PriceDelta = ItemPrice.Empty; } return(result); }