Esempio n. 1
0
        public void 販売処理(商品 item, int 販売数, DateTime 販売日)
        {
            if (item == null || 販売数 <= 0)
                return;

            if (販売数 > m_仕入List.Where(q => q.商品 == item).Sum(p => p.個数))
                return;

            int 残り販売数 = 販売数;
            var query = m_仕入List.Where(q => q.商品 == item && q.個数 > 0).OrderBy(q => q.仕入日);
            foreach (var 仕入Item in query)
            {
                int 在庫数 = 仕入Item.個数;

                if (残り販売数 > 仕入Item.個数)
                {
                    残り販売数 -= 在庫数;
                    仕入Item.個数 = 0;
                }
                else
                {
                    仕入Item.個数 -= 残り販売数;
                    残り販売数 = 0;
                }

                if (残り販売数 <= 0)
                    break;

                //残り販売数 -= 仕入Item.個数;
            }

            if (ChangedData != null)
                ChangedData();
        }
Esempio n. 2
0
 public 仕入(商品 item, int 仕入価格, int 販売価格, int 個数, DateTime 仕入日)
 {
     this.商品 = item;
     this.仕入価格 = 仕入価格;
     this.販売価格 = 販売価格;
     this.個数 = 個数;
     this.仕入日 = 仕入日;
 }
Esempio n. 3
0
        public void 仕入処理(商品 item, int 仕入, int 販売, int 個数, DateTime 仕入日)
        {
            if (item == null || 仕入 < 0 || 販売 < 0 || 個数 <= 0)
                return;

            var targetItem = m_仕入List.FirstOrDefault(q => q.商品 == item && q.仕入日 == 仕入日);
            if (targetItem == null)
            {
                m_仕入List.Add(new 仕入(item, 仕入, 販売, 個数, 仕入日));
            }
            else
            {
                targetItem.個数 += 個数;
            }
            
            if (ChangedData != null)
                ChangedData();
        }