public ActionResult LancamentoAgrupado(string sAgrupadorID) { ExpIncAgrupadorModel model = new ExpIncAgrupadorModel(); if (!string.IsNullOrEmpty(sAgrupadorID) && expenseIncomeBusiness.Get.Any(e => e.sAgrupadorOcorrencia == sAgrupadorID)) { List <ExpenseIncome> lstExpInc = expenseIncomeBusiness.Get.Where(e => e.sAgrupadorOcorrencia == sAgrupadorID).OrderBy(e => e.iNumeroOcorrencia).ToList(); model.sAgrupadorID = lstExpInc[0].sAgrupadorOcorrencia; model.sDescricao = lstExpInc[0].sDescricao; model.sCategoryID = lstExpInc[0].sCategoryID; model.sNotificationID = lstExpInc[0].sNotificationID; string sTemp = lstExpInc[0].sAccountID; model.sAccountDesc = accountBusiness.Get.FirstOrDefault(a => a.sID == sTemp).sNome; model.dData = lstExpInc[0].dData; model.dDataBase = lstExpInc[0].dDataBase; model.bDataDiferente = model.dData != model.dDataBase ? true : false; model.listaItens = new List <ExpIncAgrupadorItemModel>(); foreach (ExpenseIncome expInc in lstExpInc) { ExpIncAgrupadorItemModel item = new ExpIncAgrupadorItemModel(); item.sID = expInc.sID; item.dValor = expInc.dValor; item.bPago = expInc.bPagoCartaoCredito; item.iParcela = expInc.iNumeroOcorrencia; model.listaItens.Add(item); } model.listaCategorias = getComboCategorias(new List <CategoryType>() { CategoryType.Despesa, CategoryType.Receita }); model.listaNotifications = getComboNotificacoes(); return(View(model)); } else { return(RedirectToAction("Lancamento", "ExpenseIncome")); } }
public ActionResult LancamentoAgrupado(ExpIncAgrupadorModel model) { if (ModelState.IsValid) { using (var scope = new TransactionScope()) { try { foreach (ExpIncAgrupadorItemModel expIncAgrup in model.listaItens) { if (!string.IsNullOrEmpty(expIncAgrup.sID) && expenseIncomeBusiness.Get.Any(e => e.sID == expIncAgrup.sID)) { // Alterar ExpenseIncome expInc = expenseIncomeBusiness.Get.FirstOrDefault(e => e.sID == expIncAgrup.sID); expInc.dData = model.dData; expInc.dDataBase = model.bDataDiferente ? model.dDataBase : expInc.dData; if (expIncAgrup.dValor <= 0) { throw new InvalidOperationException("Valor deve ser maior que 0 (zero)!"); } expInc.dValor = expIncAgrup.dValor; expInc.sCategoryID = model.sCategoryID; expInc.CategoryType = categoryBusiness.Get.FirstOrDefault(c => c.sID == model.sCategoryID).CategoryType; expInc.sDescricao = model.sDescricao; expInc.sNotificationID = model.sNotificationID; expenseIncomeBusiness.Update(expInc); } else { scope.Dispose(); return(Json(new { Sucesso = false, Mensagem = "Erro na identificação do lançamento!", Titulo = "Erro", Url = "/Home/PaginaInicial" })); } } scope.Complete(); return(Json(new { Sucesso = true, Mensagem = "Lançamentos Alterados com Sucesso!", Titulo = "Sucesso", Url = "/Home/PaginaInicial" })); } catch (DbEntityValidationException dbEx) { scope.Dispose(); string sErro = string.Empty; foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { sErro += string.Format(" Property: {0} Error: {1} |", validationError.PropertyName, validationError.ErrorMessage); } } return(Json(new { Sucesso = false, Mensagem = sErro, Titulo = "Erro" })); } catch (Exception ex) { scope.Dispose(); string sErro = ex.Message; if (ex.InnerException != null) { sErro += " - " + ex.InnerException.Message; } return(Json(new { Sucesso = false, Mensagem = sErro, Titulo = "Erro" })); } } } else { model.listaCategorias = getComboCategorias(new List <CategoryType>() { CategoryType.Despesa, CategoryType.Receita }); model.listaNotifications = getComboNotificacoes(); return(View(model)); } }