Exemplo n.º 1
0
        public async Task <IActionResult> Add()
        {
            var form = new CreateSaleForm();

            await InitLotsList(form);

            return(View(form));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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)));
        }
Exemplo n.º 4
0
 private async Task InitLotsList(CreateSaleForm form)
 {
     form.Lots = await _lots.GetList(new PagedLotsForm());
 }