public async Task <IActionResult> AddSale([FromBody] SaleHeader Sale) { try { var sale_detail = Sale.SaleDetails.ToList(); // var totalLine = sale_detail.Sum(x=>x.TotalAmount);//from s in sale_detail.Select(x=>x.TotalAmount).Sum(); // Sale.TotalLine = totalLine == 0 ? 0: totalLine; foreach (var sd in sale_detail) { var p = _ProductService.Find(sd.ProductId); p.Inventory -= sd.Quantity; sd.WarrantyStart = DateTime.Now; sd.WarrantyEnd = DateTime.Now.AddMonths(p.Warranty); } _SaleHeaderService.Add(Sale); int res = await _unitOfWork.SaveChangesAsync(); if (res > 0) { operationResult.Success = true; operationResult.Message = "Added new record"; operationResult.Caption = "Add complete"; } } catch (System.Exception ex) { operationResult.Success = false; operationResult.Message = ex.ToString(); operationResult.Caption = "Add failed!"; } return(Ok(operationResult)); }
public async Task <ActionResult <SaleHeaderDto> > PostSale(PostSaleHeaderDto postSaleHeaderDto) { Wholesaler wholesaler = await _wholesalerService.GetAsync(postSaleHeaderDto.WholeSalerId); if (wholesaler == null) { return(NotFound()); } SaleHeader result = _mapper.Map <SaleHeader>(postSaleHeaderDto); await _saleHeaderService.Validate(result); await _saleHeaderService.Compute(result); _saleHeaderService.Add(result); await _saleHeaderService.SaveAsync(); return(CreatedAtAction(nameof(GetSale), new { id = result.Id }, _mapper.Map <SaleHeaderDto>(result))); }