예제 #1
0
        public async void FillSales()
        {
            var billDs = new BillDataService();
            var rnd    = new Random();
            var dt     = new DateTime(2019, 8, 6);

            var prodList = new List <int> {
                1194
            };

            while (true)
            {
                dt = dt.AddDays(rnd.Next(2, 4));
                if (dt >= new DateTime(2019, 9, 20))
                {
                    break;
                }

                var bill = new Bill
                {
                    shop_id     = 2,
                    report_date = dt,
                    sum         = 0
                };

                var list = new List <Sale>();
                foreach (var p in prodList)
                {
                    var cost  = costRepo.GetByProdId(p).FirstOrDefault();
                    var price = priceRepo.GetPriceByProdId(p);
                    var sale  = new Sale
                    {
                        prod_id = p,
                        count   = rnd.Next(1, 3),
                        unit_id = (await prodRepo.GetByIdAsync(p))?.unit_id,
                        cost    = cost?.value ?? 0,
                        price   = price?.price ?? 0
                    };
                    sale.sum = price?.price != null
                        ? (price.price.Value + rnd.Next(-100, 50)) * sale.count
                        : (cost.value.Value + rnd.Next(500, 1000)) * sale.count;

                    sale.profit = sale.sum - (sale.cost != 0 ? sale.cost * sale.count : sale.sum);
                    list.Add(sale);
                }

                bill.Sales = list;
                bill.sum   = bill.Sales.Sum(p => p.sum) + rnd.Next(-200, 50);



                var id = await billDs.Insert(bill);
            }
        }