Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        private void RemoveTrackSum(uint trackid)
        {
            StockSum sum = StockSumList.Find(c => c.track_id == trackid);

            if (sum != null)
            {
                StockSumList.Remove(sum);
                SendSumMsg(sum, ActionTypeE.Delete);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
 private void SendSumMsg(StockSum sum, ActionTypeE type)
 {
     mMsg.o1 = sum;
     mMsg.o2 = type;
     Messenger.Default.Send(mMsg, MsgToken.StockSumeUpdate);
 }
Ejemplo n.º 5
0
        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();
                }
            }
        }