예제 #1
0
        public async Task <IActionResult> ApplyStock(StockApplicationViewModel stockApplicationViewModel)
        {
            var result           = new Result <StockApplication>();
            var stockApplication = new StockApplication
            {
                OrgId              = stockApplicationViewModel.OrgId,
                ApplyStaffId       = stockApplicationViewModel.ApplyStaffId,
                ApplyAt            = DateTime.UtcNow.ToNZTimezone(),
                ProcessStatus      = 1,
                ApplyReason        = stockApplicationViewModel.ApplyReason,
                ReplyContent       = null,
                IsDisputed         = 0,
                ReplyAt            = null,
                RecieveAt          = null,
                DeliverAt          = null,
                ApplicationDetails = new List <ApplicationDetails>()
            };

            foreach (var pmq in stockApplicationViewModel.ProductIdQty)
            {
                var applicationDetails = new ApplicationDetails
                {
                    ProductId    = pmq.ProductId,
                    AppliedQty   = pmq.AppliedQty,
                    DeliveredQty = null,
                    ReceivedQty  = null
                };
                stockApplication.ApplicationDetails.Add(applicationDetails);
            }

            try
            {
                await _ablemusicContext.StockApplication.AddAsync(stockApplication);

                await _ablemusicContext.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                result.IsSuccess    = false;
                result.ErrorMessage = ex.Message;
                return(BadRequest(result));
            }
            result.Data = stockApplication;
            return(Ok(result));
        }
예제 #2
0
        public async Task <IActionResult> UpdateStock(int applicationId, StockApplicationViewModel stockApplicationViewModel)
        {
            var result = new Result <StockApplication>();
            StockApplication stockApplication;

            try
            {
                stockApplication = await _ablemusicContext.StockApplication.Where(s => s.ApplicationId == applicationId)
                                   .Include(s => s.ApplicationDetails).FirstOrDefaultAsync();
            }
            catch (Exception ex)
            {
                result.IsSuccess    = false;
                result.ErrorMessage = ex.Message;
                return(BadRequest(result));
            }
            if (stockApplication == null)
            {
                result.IsSuccess    = false;
                result.ErrorMessage = "Stock Application not found";
                return(BadRequest(result));
            }
            if (stockApplication.ProcessStatus != 1)
            {
                result.IsSuccess    = false;
                result.ErrorMessage = "This Stock Application is not allowed to change";
                return(BadRequest(result));
            }

            foreach (var detail in stockApplication.ApplicationDetails)
            {
                _ablemusicContext.ApplicationDetails.Remove(detail);
            }

            stockApplication.ApplicationDetails = new List <ApplicationDetails>();
            foreach (var pmq in stockApplicationViewModel.ProductIdQty)
            {
                var applicationDetails = new ApplicationDetails
                {
                    ApplicationId = applicationId,
                    ProductId     = pmq.ProductId,
                    AppliedQty    = pmq.AppliedQty,
                    DeliveredQty  = null,
                    ReceivedQty   = null
                };
                stockApplication.ApplicationDetails.Add(applicationDetails);
            }
            stockApplication.OrgId        = stockApplicationViewModel.OrgId;
            stockApplication.ApplyStaffId = stockApplicationViewModel.ApplyStaffId;
            stockApplication.ApplyAt      = DateTime.UtcNow.ToNZTimezone();
            stockApplication.ApplyReason  = stockApplicationViewModel.ApplyReason;
            try
            {
                await _ablemusicContext.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                result.IsSuccess    = false;
                result.ErrorMessage = ex.Message;
                return(BadRequest(result));
            }
            result.Data = stockApplication;
            return(Ok(result));
        }