public void CheckTrackSum(uint trackId) { StockSum sum = StockSumList.Find(c => c.track_id == trackId); uint goodsid = StockList.Find(c => c.track_id == trackId && c.goods_id != 0)?.goods_id ?? 0; if (sum == null) { Track track = PubMaster.Track.GetTrack(trackId); sum = new StockSum() { track_id = trackId, goods_id = goodsid, produce_time = StockList.Find(c => trackId == c.track_id).produce_time, area = track.area, track_type = track.type }; StockSumList.Add(sum); SortSumList(); } if (goodsid > 0) { Goods goods = GoodsList.Find(c => c.id == goodsid); if (goods != null) { sum.count = (uint)StockList.Count(c => c.track_id == trackId); sum.stack = sum.count * goods.stack; sum.pieces = sum.stack * goods.pieces; SendSumMsg(sum, ActionTypeE.Update); } } }
private void RemoveTrackSum(uint trackid) { StockSum sum = StockSumList.Find(c => c.track_id == trackid); if (sum != null) { StockSumList.Remove(sum); SendSumMsg(sum, ActionTypeE.Delete); } }
private void StockSumChangeGood(uint trackid, uint goodid) { StockSum sum = StockSumList.Find(c => c.track_id == trackid); if (sum != null) { sum.goods_id = goodid; sum.produce_time = GetEarliestTime(trackid); SendSumMsg(sum, ActionTypeE.Update); } }
private void SendSumMsg(StockSum sum, ActionTypeE type) { mMsg.o1 = sum; mMsg.o2 = type; Messenger.Default.Send(mMsg, MsgToken.StockSumeUpdate); }
private void StockSumChange(Stock stock, uint totrackid) { bool isadd; bool istostore = PubMaster.Track.IsStoreTrack(totrackid); bool isfromstore = PubMaster.Track.IsStoreTrack(stock.track_id); if (istostore || isfromstore) { isadd = istostore; StockSum sum; if (istostore) { sum = StockSumList.Find(c => c.track_id == totrackid); } else { sum = StockSumList.Find(c => c.track_id == stock.track_id); } if (sum != null) { if (isadd) { sum.count += 1; sum.stack += stock.stack; sum.pieces += stock.pieces; } else { sum.count -= 1; sum.stack -= stock.stack; sum.pieces -= stock.pieces; } if (sum.count == 0) { StockSumList.Remove(sum); SendSumMsg(sum, ActionTypeE.Delete); } else { if (isfromstore) { sum.produce_time = GetEarliestTime(sum.track_id); } SendSumMsg(sum, ActionTypeE.Update); } } if (sum == null && isadd) { Track track = PubMaster.Track.GetTrack(totrackid); sum = new StockSum() { count = 1, goods_id = stock.goods_id, track_id = totrackid, pieces = stock.pieces, stack = stock.stack, produce_time = stock.produce_time, area = track.area, track_type = track.type }; StockSumList.Add(sum); SendSumMsg(sum, ActionTypeE.Add); SortSumList(); } } }