示例#1
0
        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()));
        }
示例#2
0
        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));
        }