public ActionResult GridViewMesesFertilizantesPartial(string _oId) { long oID = -1; long.TryParse("0" + _oId, out oID); var model = db.PreFertilizanteMensual.Where(m => m.BaseTotalId == oID); DescripcionProducto _producto = _unitOfWork.GetRepositoryInstance <PreFertilizanteBaseTotal>().GetAllRecordsIQueryable() .Where(a => a.Oid == oID).Select(p => new DescripcionProducto { Familia = p.Desc_Familia, Producto = p.Desc_Grupo }).FirstOrDefault(); //var modelBaseTotal = db.PreFertilizanteBaseTotals.FirstOrDefault(a => a.Oid == oID); ViewData["Articulo"] = string.Format("{0}<br>{1}", _producto.Producto, _producto.Familia); return(PartialView("_GridViewMesesFertilizantesPartial", model.ToList())); }
public ActionResult GridViewGastosMesesPartial(string _oId) { long oID = -1; long.TryParse("0" + _oId, out oID); var model = db.PreGastoMensual.Where(m => m.BaseTotalId == oID); DescripcionProducto _gasto = _unitOfWork.GetRepositoryInstance <Pre_GastosBase>().GetAllRecordsIQueryable() .Where(a => a.Oid == oID) .Select(g => new DescripcionProducto { Familia = g.Desc_Area, Producto = g.NSubcuenta }) .FirstOrDefault(); //var modelBaseTotal = db.Pre_GastosBase.FirstOrDefault(a => a.Oid == oID); if (_gasto == null) { _gasto = new DescripcionProducto(); _gasto.Familia = ""; _gasto.Producto = ""; } ViewData["Articulo"] = string.Format("{0}<br>{1}", _gasto.Familia, _gasto.Producto); return(PartialView("_GridViewGastosMesesPartial", model.ToList())); }
public ActionResult BatchEditingUpdateGastosDetalleMesesModel(MVCxGridViewBatchUpdateValues <PreGastoDetalleMensual, object> updateValues) { IRepositoryWrapper _REPO = new RepositoryWrapper(); long gtoDeptoID = -1; int gtoUnidadID = -1; long gtoBaseID = -1; int gtoDetalleID = -1; foreach (var gastoBTF in updateValues.Update) { gtoDeptoID = gastoBTF.Oid; var modelOid = _REPO.GastoDetalle.Find(gtoDeptoID); if (modelOid != null) { gtoBaseID = modelOid.BaseTotalId; gtoDeptoID = modelOid.BaseDepartamentoId; gtoUnidadID = modelOid.UnidadId; gtoDetalleID = modelOid.DetalleId; break; } } // SE CARGAN DE LA DB LOS MESES DEL DETALLE DEL DEPARTAMENTO var modelGastoDepto = _REPO.GastoDepartamento.GetGastoAndRelatedById(gtoDeptoID); if (modelGastoDepto == null) { modelGastoDepto = new PreGastoDepartamento(); PreGastoUnidad GastoUnidad = new PreGastoUnidad(); GastoUnidad.PreGastoDetalleMensual.Add(new PreGastoDetalleMensual()); modelGastoDepto.PreGastoUnidad.Add(GastoUnidad); } var modelGastoUnidad = modelGastoDepto.PreGastoUnidad.Where(u => u.UnidadId == gtoUnidadID).SingleOrDefault(); var model = modelGastoUnidad.PreGastoDetalleMensual.Where(d => d.DetalleId == gtoDetalleID).ToList(); // SE CARGAN DE LA BD EL RESTO DE LOS DETALLES DEL DEPARTAMENTO var restoUnidad = modelGastoDepto.PreGastoUnidad.Where(u => u.UnidadId != gtoUnidadID).ToList(); var restoDetalle = modelGastoUnidad.PreGastoDetalleMensual.Where(d => d.DetalleId != gtoDetalleID).ToList(); DescripcionProducto _gasto = _unitOfWork.GetRepositoryInstance <Pre_GastosBase>().GetAllRecordsIQueryable() .Where(a => a.Oid == gtoBaseID) .Select(g => new DescripcionProducto { Familia = g.Desc_Area, Producto = g.NSubcuenta }) .FirstOrDefault(); //var modelBaseTotal = db.Pre_GastosBase.FirstOrDefault(a => a.Oid == oID); if (_gasto == null) { _gasto = new DescripcionProducto(); _gasto.Familia = ""; _gasto.Producto = ""; } ViewData["Articulo"] = string.Format("{0}<br>{1}", _gasto.Familia, _gasto.Producto); #region Insert // Insert all added values. foreach (var gastoBT in updateValues.Insert) { if (updateValues.IsValid(gastoBT)) { try { model.Add(gastoBT); db.SaveChanges(); } catch (Exception e) { updateValues.SetErrorText(gastoBT, e.Message); } } } #endregion #region Update // Update all edited values. if (updateValues.Update.Count > 0) { foreach (var gastoBT in updateValues.Update) { if (updateValues.IsValid(gastoBT)) { try { var modelItem = model.FirstOrDefault(it => it.Oid == gastoBT.Oid); if (modelItem != null) { modelItem.MontoManual = false; if (modelItem.Monto != gastoBT.Monto && gastoBT.Monto != gastoBT.MontoBase) { modelItem.MontoManual = true; } modelItem.Monto = gastoBT.Monto; //db.PreGastoDepartamento.FirstOrDefault(a => a.Oid == gtoDeptoID); if (modelGastoDepto != null) { // SE INICIALIZA CON EL MONTO DEL MES decimal importeMes = modelItem.Monto; decimal importeMesUnidad = modelItem.Monto; // SE SUMAN LOS MONTOS DEL MISMO MES DEL RESTO DE DETALLES DEL DEPARTAMENTO foreach (var OtraUnidad in restoUnidad) { foreach (var montoResto in OtraUnidad.PreGastoDetalleMensual.Where(r => r.Mes == modelItem.Mes).Select(x => x.Monto)) { importeMes += montoResto; } } foreach (var montoResto in restoDetalle.Where(r => r.Mes == modelItem.Mes).Select(x => x.Monto)) { importeMes += montoResto; importeMesUnidad += montoResto; } switch (modelItem.Mes) { case 1: //modelGastoDepto.EneImporte = modelItem.Monto; modelGastoDepto.EneImporte = importeMes; modelGastoUnidad.EneImporte = importeMesUnidad; break; case 2: modelGastoDepto.FebImporte = importeMes; modelGastoUnidad.FebImporte = importeMesUnidad; break; case 3: modelGastoDepto.MarImporte = importeMes; modelGastoUnidad.MarImporte = importeMesUnidad; break; case 4: modelGastoDepto.AbrImporte = importeMes; modelGastoUnidad.AbrImporte = importeMesUnidad; break; case 5: modelGastoDepto.MayImporte = importeMes; modelGastoUnidad.MayImporte = importeMesUnidad; break; case 6: modelGastoDepto.JunImporte = importeMes; modelGastoUnidad.JunImporte = importeMesUnidad; break; case 7: modelGastoDepto.JulImporte = importeMes; modelGastoUnidad.JulImporte = importeMesUnidad; break; case 8: modelGastoDepto.AgoImporte = importeMes; modelGastoUnidad.AgoImporte = importeMesUnidad; break; case 9: modelGastoDepto.SepImporte = importeMes; modelGastoUnidad.SepImporte = importeMesUnidad; break; case 10: modelGastoDepto.OctImporte = importeMes; modelGastoUnidad.OctImporte = importeMesUnidad; break; case 11: modelGastoDepto.NovImporte = importeMes; modelGastoUnidad.NovImporte = importeMesUnidad; break; case 12: modelGastoDepto.DicImporte = importeMes; modelGastoUnidad.DicImporte = importeMesUnidad; break; default: break; } } decimal?importe = 0m; decimal?importeUnidad = 0m; // SE SUMAN LOS MONTOS DEL DETALLE QUE SE ACTUALIZO foreach (var itemMes in model) { importe += itemMes.Monto; importeUnidad += itemMes.Monto; } // SE SUMAN LOS MONTOS DEL RESTO DE DETALLE DEL DEPARTAMENTO foreach (var itemMesRestoDetalle in restoDetalle) { importe += itemMesRestoDetalle.Monto; importeUnidad += itemMesRestoDetalle.Monto; } foreach (var itemMesResto in restoUnidad) { importe += itemMesResto.Monto; } // SE APLICA EL IMPORTE TOTAL EN LOS GASTOS DEPARTAMENTO modelGastoDepto.Monto = importe ?? 0m; modelGastoUnidad.Monto = importeUnidad ?? 0m; } } catch (Exception e) { updateValues.SetErrorText(gastoBT, e.Message); } } } var resultado = _REPO.GastoDepartamento.AddUpdate(modelGastoDepto); if (!resultado.Item1) { throw new Exception(string.Join(Environment.NewLine, resultado.Item2)); } } #endregion #region Delete // Delete all values that were deleted on the client side from the data source. foreach (var oID in updateValues.DeleteKeys) { try { long gastoID = Convert.ToInt64(oID); var item = model.FirstOrDefault(it => it.Oid == gastoID); if (item != null) { model.Remove(item); } db.SaveChanges(); } catch (Exception e) { updateValues.SetErrorText(oID, e.Message); } } #endregion IRepositoryWrapper _repository = new RepositoryWrapper(); //var deptoAndUnidad = _REPO.GastoDepartamento // .GetGastoByDepartamentoAndUnidadAndDetalle(model[0].BaseTotalId, model[0].DepartamentoId); var deptoAndUnidad = _repository.GastoDepartamento .GetGastoByDepartamentoAnUnidad(model[0].BaseTotalId, model[0].DepartamentoId); if (deptoAndUnidad == null) { deptoAndUnidad = new PreGastoDepartamento(); PreGastoUnidad unidad = new PreGastoUnidad(); unidad.PreGastoDetalleMensual.Add(new PreGastoDetalleMensual()); deptoAndUnidad.PreGastoUnidad.Add(unidad); } var unidadAndDetalle = deptoAndUnidad.PreGastoUnidad .Where(u => u.UnidadId == model[0].UnidadId).SingleOrDefault(); var modelActualizado = unidadAndDetalle.PreGastoDetalleMensual.Where(d => d.DetalleId == model[0].DetalleId); //deptoAndUnidad.PreGastoUnidadMensual.Where(x => x.UnidadId == model[0].UnidadId); return(PartialView("_GridViewGastosDetalleMesesPartial", modelActualizado.ToList())); }
public ActionResult GridViewGastosDetalleMesesPartial() { long baseID = -1; if (Request.Params["_oId"] != null) { long.TryParse(Request.Params["_oId"], out baseID); } int departamentoId = -1; if (Request.Params["Clave_Departamento"] != null) { int.TryParse(Request.Params["Clave_Departamento"], out departamentoId); } int detalleId = -1; if (Request.Params["Clave_Detalle"] != null) { int.TryParse(Request.Params["Clave_Detalle"], out detalleId); } int conceptoId = -1; if (Request.Params["Clave_Concepto"] != null) { int.TryParse(Request.Params["Clave_Concepto"], out conceptoId); } string desc_Concepto = Request.Params["Desc_Concepto"] ?? ""; DescripcionProducto _gasto = _unitOfWork.GetRepositoryInstance <Pre_GastosBase>().GetAllRecordsIQueryable() .Where(a => a.Oid == baseID) .Select(g => new DescripcionProducto { Familia = g.Desc_Area, Producto = g.NSubcuenta }) .FirstOrDefault(); if (_gasto == null) { _gasto = new DescripcionProducto(); _gasto.Familia = ""; _gasto.Producto = ""; } IRepositoryWrapper _repository = new RepositoryWrapper(); // SE VALIDA SI DEBE BUSCAR Y EN CASO DE QUE SI, VALIDA SI DEBE CREAR EL DETALLE CON O SIN DEPARTAMENTO if (baseID > 0 && departamentoId > 0 && detalleId > -1 && conceptoId > -1) { if (!_repository.GastoDetalle.existe(baseID, departamentoId, detalleId, conceptoId)) { var resulta = _repository.GastoDetalle.Create(departamentoId, baseID, detalleId, conceptoId, desc_Concepto); if (!resulta.Item1) { throw new Exception(string.Join(Environment.NewLine, resulta.Item2)); } } } var deptoAndUnidad = _repository.GastoDepartamento.GetGastoByDepartamentoAndUnidadAndDetalle(baseID, departamentoId); if (deptoAndUnidad == null) { deptoAndUnidad = new PreGastoDepartamento(); deptoAndUnidad.PreGastoUnidad.Add(new PreGastoUnidad()); } var unidadAndDetalle = deptoAndUnidad.PreGastoUnidad.Where(d => d.UnidadId == detalleId).SingleOrDefault(); if (unidadAndDetalle == null) { unidadAndDetalle = new PreGastoUnidad(); unidadAndDetalle.PreGastoDetalleMensual.Add(new PreGastoDetalleMensual()); } var model = unidadAndDetalle.PreGastoDetalleMensual.Where(d => d.DetalleId == conceptoId).ToList(); ViewData["Articulo"] = string.Format("{0}<br>{1}", _gasto.Familia, _gasto.Producto); return(PartialView("_GridViewGastosDetalleMesesPartial", model)); }