public ActionResult ObtenerActivosLista()
        {
            List <CentroCostoDTO> listado = Mapper.Map <IEnumerable <CentrosCostos>, List <CentroCostoDTO> >(CentrosCostosNegocios.ObtenerActivos());

            return(Json(new { results = listado.Select(cc => new { id = cc.Id, text = cc.DescripcionCompleta }) }));
        }
        public JsonResult ImportarArchivo()
        {
            //List<CalendarioClavePresupuestal> claves = new List<CalendarioClavePresupuestal>();

            List <ClavesPresupuestales> claves = new List <ClavesPresupuestales>();

            var archivo = Request.Files[0];

            using (ExcelPackage package = new ExcelPackage(archivo.InputStream))
            {
                //validar que solo tenga una hoja
                if (package.Workbook.Worksheets.Count != 1)
                {
                    return(Json(new { exitoso = false, mensaje = "El archivo tiene más de una hoja" }));
                }

                var hoja = package.Workbook.Worksheets[1];

                int filas = hoja.Dimension.End.Row;

                for (int i = 2; i <= filas; i++)
                {
                    string cadenaClave = hoja.Cells[i, 1].Value.ToString();

                    var pro  = ProgramasNegocios.ObtenerActivosDelAnioPorClave(2019, cadenaClave.Substring(22, 3));
                    var proj = ProyectosNegocios.ObtenerActivosDelAnioPorClave(2019, cadenaClave.Substring(25, 4));
                    var act  = ActividadesNegocios.ObtenerActivosDelAnioPorClave(2019, cadenaClave.Substring(29, 4));
                    var par  = PartidasNegocios.ObtenerActivaPorClave(cadenaClave.Substring(39, 4));
                    var cc   = CentrosCostosNegocios.ObtenerPorClave(ObtenerClaveCentroDeCostoPorClaveActividad(cadenaClave.Substring(29, 4)));

                    claves.Add(new ClavesPresupuestales
                    {
                        Clave                 = cadenaClave,
                        PresupuestoEnero      = hoja.Cells[i, 2].Value == null ? 0 : Convert.ToDecimal(hoja.Cells[i, 2].Value.ToString()),
                        PresupuestoFebrero    = hoja.Cells[i, 3].Value == null ? 0 : Convert.ToDecimal(hoja.Cells[i, 3].Value.ToString()),
                        PresupuestoMarzo      = hoja.Cells[i, 4].Value == null ? 0 : Convert.ToDecimal(hoja.Cells[i, 4].Value.ToString()),
                        PresupuestoAbril      = hoja.Cells[i, 5].Value == null ? 0 : Convert.ToDecimal(hoja.Cells[i, 5].Value.ToString()),
                        PresupuestoMayo       = hoja.Cells[i, 6].Value == null ? 0 : Convert.ToDecimal(hoja.Cells[i, 6].Value.ToString()),
                        PresupuestoJunio      = hoja.Cells[i, 7].Value == null ? 0 : Convert.ToDecimal(hoja.Cells[i, 7].Value.ToString()),
                        PresupuestoJulio      = hoja.Cells[i, 8].Value == null ? 0 : Convert.ToDecimal(hoja.Cells[i, 8].Value.ToString()),
                        PresupuestoAgosto     = hoja.Cells[i, 9].Value == null ? 0 : Convert.ToDecimal(hoja.Cells[i, 9].Value.ToString()),
                        PresupuestoSeptiembre = hoja.Cells[i, 10].Value == null ? 0 : Convert.ToDecimal(hoja.Cells[i, 10].Value.ToString()),
                        PresupuestoOctubre    = hoja.Cells[i, 11].Value == null ? 0 : Convert.ToDecimal(hoja.Cells[i, 11].Value.ToString()),
                        PresupuestoNoviembre  = hoja.Cells[i, 12].Value == null ? 0 : Convert.ToDecimal(hoja.Cells[i, 12].Value.ToString()),
                        PresupuestoDiciembre  = hoja.Cells[i, 13].Value == null ? 0 : Convert.ToDecimal(hoja.Cells[i, 13].Value.ToString()),
                        Anio          = 2019,
                        Activo        = true,
                        IdPrograma    = pro.Id,
                        Programas     = pro,
                        IdProyecto    = proj.Id,
                        Proyectos     = proj,
                        IdActividad   = act.Id,
                        Actividades   = act,
                        IdPartida     = par.Id,
                        Partidas      = par,
                        IdCentroCosto = cc.Id,
                        CentrosCostos = cc
                    });
                }

                var clavesDTO = AutoMapper.Mapper.Map <IEnumerable <ClavesPresupuestales>, IEnumerable <ClavePresupuestalDTO> >(claves);
                Session["ClavesPresupuestales"] = clavesDTO;

                return(Json(new
                {
                    exitoso = true,
                    mensaje = "Se importó correctamente",
                    claves = clavesDTO.Select(c => new
                    {
                        clave = c.Clave + "| |" + c.PresupuestoEnero + "|" + c.PresupuestoFebrero + "|" + c.PresupuestoMarzo +
                                "|" + c.PresupuestoAbril + "|" + c.PresupuestoMayo + "|" + c.PresupuestoJunio + "|" + c.PresupuestoJulio + "|" + c.PresupuestoAgosto + "|" + c.PresupuestoSeptiembre +
                                "|" + c.PresupuestoOctubre + "|" + c.PresupuestoNoviembre + "|" + c.PresupuestoDiciembre
                    }),
                    clavesPresupuestales = clavesDTO
                }));
            }
        }
        public ActionResult ObtenerActivos()
        {
            List <CentroCostoDTO> listado = Mapper.Map <IEnumerable <CentrosCostos>, List <CentroCostoDTO> >(CentrosCostosNegocios.ObtenerActivos());

            return(Json(new { data = listado }));
        }
        private int ObtenerCentroDeCostoPorActividad(string claveActividad)
        {
            switch (claveActividad)
            {
            case "1078":
                return(CentrosCostosNegocios.ObtenerPorClave("11").Id);

            case "1079":
                return(CentrosCostosNegocios.ObtenerPorClave("01").Id);

            case "1080":
                return(CentrosCostosNegocios.ObtenerPorClave("02").Id);

            case "1081":
                return(CentrosCostosNegocios.ObtenerPorClave("02").Id);

            case "1082":
                return(CentrosCostosNegocios.ObtenerPorClave("02").Id);

            case "1083":
                return(CentrosCostosNegocios.ObtenerPorClave("02").Id);

            case "1084":
                return(CentrosCostosNegocios.ObtenerPorClave("03").Id);

            case "1085":
                return(CentrosCostosNegocios.ObtenerPorClave("04").Id);

            case "1086":
                return(CentrosCostosNegocios.ObtenerPorClave("04").Id);

            case "1087":
                return(CentrosCostosNegocios.ObtenerPorClave("05").Id);

            case "1088":
                return(CentrosCostosNegocios.ObtenerPorClave("06").Id);

            case "1089":
                return(CentrosCostosNegocios.ObtenerPorClave("06").Id);

            case "1090":
                return(CentrosCostosNegocios.ObtenerPorClave("06").Id);

            case "1091":
                return(CentrosCostosNegocios.ObtenerPorClave("06").Id);

            case "1092":
                return(CentrosCostosNegocios.ObtenerPorClave("06").Id);

            case "1093":
                return(CentrosCostosNegocios.ObtenerPorClave("06").Id);

            case "1094":
                return(CentrosCostosNegocios.ObtenerPorClave("06").Id);

            case "1095":
                return(CentrosCostosNegocios.ObtenerPorClave("06").Id);

            case "1096":
                return(CentrosCostosNegocios.ObtenerPorClave("08").Id);

            case "1097":
                return(CentrosCostosNegocios.ObtenerPorClave("08").Id);

            case "1098":
                return(CentrosCostosNegocios.ObtenerPorClave("08").Id);

            case "1099":
                return(CentrosCostosNegocios.ObtenerPorClave("07").Id);

            case "1100":
                return(CentrosCostosNegocios.ObtenerPorClave("09").Id);

            case "1101":
                return(CentrosCostosNegocios.ObtenerPorClave("10").Id);

            default:
                return(0);
            }
        }