public static bool SameSkuCode(this SkuInfo obj1, SkuInfo obj2) { if (null == obj1 || null == obj2) return false; if (obj1.SkuCode.Equals(obj2.SkuCode)) { return true; } return false; }
public static bool EqualSku(this SkuInfo obj1, SkuInfo obj2) { if (null == obj1 || null == obj2) return false; if (obj1.SkuCode.Equals(obj2.SkuCode) && obj1.BatchNo.Equals(obj2.BatchNo)) { return true; } return false; }
protected override List<SkuInfo> GetSkuInfo(List<SkuInfo> skus, SkuInfo sku, List<SkuInfo> rlt) { var temp = skus.First(); temp.Price = (temp.Price * temp.Amount + sku.Amount * sku.Price) / (temp.Amount + sku.Amount); rlt.Add(temp); if (skus.Count == 1) { return rlt; } return GetSkuInfo(skus.Skip(1).ToList(), temp, rlt); }
public void GetInvCos(SkuInfo sku) { invCosFactory.GetInvCos(TotalInv, sku); }
public void AddInv(SkuInfo sku) { TotalInv.Add(sku); }
protected abstract void Out(List<SkuInfo> invs, SkuInfo sku);
public virtual decimal GetSkuPrice(List<SkuInfo> invs, SkuInfo sku) { var inv = invs.FirstOrDefault(s => s.SkuCode.Equals(sku.SkuCode) && s.Amount > 0); return inv == null ? 0 : inv.Price; }
public int GetSkuAmount(List<SkuInfo> invs, SkuInfo sku) { return invs.Where(s => s.SkuCode.Equals(sku.SkuCode) && s.Amount > 0).Sum(s => s.Amount); }
public void GetInvCos(List<SkuInfo> invs, SkuInfo sku) { var list = invs.Where(o => o.SkuCode.Equals(sku.SkuCode)); Console.WriteLine("物料:{0},库存为:{1},库存成本为:{2} 。\n", sku.SkuCode, invs.Where(o => o.SkuCode.Equals(sku.SkuCode)).Sum(o => o.Amount), GetInvCos(list.ToList())); }
protected override void Out(List<SkuInfo> invs, SkuInfo sku) { throw new NotImplementedException(); }