public async Task <IActionResult> Add() { var form = new CreateSaleForm(); await InitLotsList(form); return(View(form)); }
public async Task <IActionResult> Add(CreateSaleForm form) { if (!ModelState.IsValid) { await InitLotsList(form); return(View(form)); } var res = await _sales.Create(form); if (res.IsCorrect) { return(RedirectToAction(nameof(List))); } ViewData[ViewDataKeys.ErrorMessage] = res.ErrorMessage; await InitLotsList(form); return(View(form)); }
public async Task <HbResult <HbSale> > Create(CreateSaleForm form) { var lotExist = await _dc.Lots.Where(u => !u.IsDeleted && u.Id == form.LotId).AnyAsync(); if (!lotExist) { return(new HbResult <HbSale>(ErrorCodes.LotNotFound)); } if (form.Type != SalesTypes.Egg) { var soldChickens = await _dc.Sales.Where(u => u.LotId == form.LotId && u.Type != SalesTypes.Egg && !u.IsDeleted).SumAsync(u => u.Count); var broodCount = await _dc.Broods.Where(u => u.LotId == form.LotId && !u.IsDeleted).SumAsync(u => u.Count); if (form.Count > broodCount - soldChickens) { return(new HbResult <HbSale>(ErrorCodes.SalesCountMoreThanBroodCount)); } } var sale = _dc.Sales.Add(new HbSales { Amount = form.Amount, Buyer = form.Buyer, Comment = form.Comment, Count = form.Count, LotId = form.LotId, SaleDate = form.SaleDate, Type = form.Type }); await _dc.SaveChangesAsync(); await _lotsUnit.RecalculateLot(form.LotId); return(new HbResult <HbSale>(_mapper.Map <HbSale>(sale.Entity))); }
private async Task InitLotsList(CreateSaleForm form) { form.Lots = await _lots.GetList(new PagedLotsForm()); }