コード例 #1
0
 public async Task <IActionResult> AppStockLog(AddProductStockLogDto stockLogDto)
 {
     return(Ok(await _productStockService.AddStockLog(stockLogDto)));
 }
コード例 #2
0
        public async Task <ServiceResponse <List <GetProductStockLogDto> > > AddStockLog(AddProductStockLogDto newstockLogDto)
        {
            ServiceResponse <List <GetProductStockLogDto> > res = new ServiceResponse <List <GetProductStockLogDto> >();

            var Product = await _db.Products.FirstOrDefaultAsync(x => x.ProductId == newstockLogDto.ProductId);

            var stock = Product.Stock;

            if (Product == null)
            {
                res.IsSuccess = false;
                res.Message   = "date not found";
            }
            if (newstockLogDto.TypeAdd == 2)    // 2 = ลบ
            {
                if (newstockLogDto.NewEdit > stock)
                {
                    res.IsSuccess = false;
                    res.Message   = " calculate fail";
                }
                else
                {
                    Product.Stock = (stock - newstockLogDto.NewEdit);
                }
            }
            else
            {
                Product.Stock = (newstockLogDto.NewEdit + stock);
            }

            if (res.IsSuccess == true)
            {
                _db.Products.Update(Product);
                await _db.SaveChangesAsync();

                ProductStockLog productStockLog = _mapper.Map <ProductStockLog>(newstockLogDto);
                _db.ProductStockLogs.Add(productStockLog);

                await _db.SaveChangesAsync();

                res.Data = (_db.ProductStockLogs.Select(c => _mapper.Map <GetProductStockLogDto>(c))).ToList();
            }

            return(res);
        }