public IActionResult Edit(int id, Transaction request) { var transaction = transactionDac.Get(id); transaction.IssueDate = request.IssueDate; transaction.DuplicatePaymentType = request.DuplicatePaymentType; transaction.DuplicatePaymentNumber = request.DuplicatePaymentNumber; transaction.DuplicatePaymentYear = request.DuplicatePaymentYear; transaction.Title = request.Title; transaction.Remark = request.Remark; transaction.ProductType = request.ProductType; if (transaction.Amount < 0) { if (request.PartnerId.HasValue) { var partner = partnerDac.Get(request.PartnerId.Value); transaction.VatInclude = partner.PartnerType switch { PartnerType.Shop => VatHelper.GetShopVatFromFullAmount(request.Amount), PartnerType.Person => VatHelper.GetPersonVatFromFullAmount(request.Amount), _ => 0, }; } transaction.Amount = -Math.Abs(request.Amount); if (request.BudgetId == 0) { request.DuplicatePaymentType = null; request.DuplicatePaymentNumber = null; request.DuplicatePaymentYear = null; request.PaymentType = null; request.PartnerId = null; } } transactionDac.Update(transaction); CalculateBringForword(request.IssueDate, request.BudgetId); CalculateBringForword(request.IssueDate, 0); return(RedirectToAction(nameof(Index))); }