Example #1
0
        /// <summary>
        /// Busca Lista de Objetos
        /// </summary>
        /// <param name="doc_id">Id do Documento Selecionado</param>
        /// <param name="filtro_obj_codigo">Código ou Parte a se localizar</param>
        /// <param name="filtro_obj_descricao">Descrição ou Parte a se localizar</param>
        /// <param name="filtro_clo_id">Id da Classe a se filtrar</param>
        /// <param name="filtro_tip_nome">Tipo a se filtrar</param>
        /// <returns>List(SelectListItem)</returns>
        public List <SelectListItem> PreencheCmbObjetosLocalizados(int doc_id, string filtro_obj_codigo, string filtro_obj_descricao = "", int?filtro_clo_id = -1, string filtro_tip_nome = "")
        {
            Usuario paramUsuario = (Usuario)System.Web.HttpContext.Current.Session["Usuario"];

            List <Objeto> lstObjetos;

            if (doc_id >= 0)
            {
                lstObjetos = new DocumentoBLL().Documento_ObjetosNaoAssociados_ListAll(doc_id, filtro_obj_codigo);
            }
            else
            {
                lstObjetos = new ObjetoDAO().Objeto_ListAll(0, filtro_obj_codigo, filtro_obj_descricao, filtro_clo_id, filtro_tip_nome, paramUsuario.usu_id);
            }

            List <SelectListItem> lstListaCmbObjetosLocalizados = new List <SelectListItem>(); // lista de combo

            foreach (var temp in lstObjetos)
            {
                string txt = temp.obj_codigo + " (" + temp.obj_descricao + ")";
                lstListaCmbObjetosLocalizados.Add(new SelectListItem()
                {
                    Text = txt, Value = temp.obj_id.ToString()
                });
            }

            return(lstListaCmbObjetosLocalizados);
        }
Example #2
0
        public static bool calcularCostoyFechas(int proyectoId)
        {
            bool ret = false;

            try
            {
                List <List <Nodo> > listas = EstructuraProyectoDAO.getEstructuraProyectoArbolCalculos(proyectoId, null);
                for (int i = listas.Count - 1; i >= 0; i--)
                {
                    for (int j = 0; j < listas[i].Count; j++)
                    {
                        Nodo     nodo              = listas[i][j];
                        decimal  costo             = decimal.Zero;
                        DateTime fecha_maxima      = new DateTime(0);
                        DateTime fecha_minima      = new DateTime(new DateTime(2999, 12, 31, 0, 0, 0).Ticks);
                        DateTime fecha_maxima_real = default(DateTime);
                        DateTime fecha_minima_real = default(DateTime);
                        foreach (Nodo nodo_hijo in nodo.children)
                        {
                            costo            += nodo_hijo.costo;
                            fecha_minima      = (nodo_hijo.fecha_inicio < fecha_minima) ? nodo_hijo.fecha_inicio : fecha_minima;
                            fecha_maxima      = (nodo_hijo.fecha_fin > fecha_maxima) ? nodo_hijo.fecha_fin : fecha_maxima;
                            fecha_minima_real = nodo_hijo.fecha_inicio_real != null ? fecha_minima_real != null ? ((nodo_hijo.fecha_inicio_real.TimeOfDay < fecha_minima_real.TimeOfDay) ? nodo_hijo.fecha_inicio_real : fecha_minima_real) : nodo_hijo.fecha_inicio_real : fecha_minima_real != null ? fecha_minima_real : fecha_minima_real;
                            fecha_maxima_real = nodo_hijo.fecha_fin_real != null ? fecha_maxima_real != null ? ((nodo_hijo.fecha_fin_real.TimeOfDay > fecha_maxima_real.TimeOfDay) ? nodo_hijo.fecha_fin_real : fecha_maxima_real) : nodo_hijo.fecha_fin_real : fecha_maxima_real != default(DateTime) ? fecha_maxima_real : default(DateTime);
                        }
                        nodo.objeto = ObjetoDAO.getObjetoPorIdyTipo(nodo.id, nodo.objeto_tipo);
                        if (nodo.children != null && nodo.children.Count > 0)
                        {
                            nodo.fecha_inicio      = fecha_minima;
                            nodo.fecha_fin         = fecha_maxima;
                            nodo.fecha_inicio_real = fecha_minima_real;
                            nodo.fecha_fin_real    = fecha_maxima_real;
                            nodo.costo             = costo;
                        }
                        else
                        {
                            decimal costo_temp = ObjetoDAO.calcularCostoPlan(nodo.objeto, nodo.objeto_tipo);
                            nodo.costo = (decimal)costo_temp;
                        }
                        nodo.duracion = Utils.getWorkingDays(nodo.fecha_inicio, nodo.fecha_fin);
                        setDatosCalculados(nodo.objeto, nodo.fecha_inicio, nodo.fecha_fin, nodo.costo, nodo.duracion, nodo.fecha_inicio_real, nodo.fecha_fin_real);
                    }
                    ret = true;
                }
                ret = ret && guardarProyectoBatch(listas);
            }
            catch (Exception e)
            {
                CLogger.write("19", "ProyectoDAO.class", e);
            }
            return(ret);
        }
Example #3
0
 public IActionResult Componente(int id)
 {
     try
     {
         Componente componente = ComponenteDAO.getComponente(id);
         bool       eliminado  = ObjetoDAO.borrarHijos(componente.treepath, 1, User.Identity.Name);
         return(Ok(new { success = eliminado }));
     }
     catch (Exception e)
     {
         CLogger.write("6", "ComponenteController.class", e);
         return(BadRequest(500));
     }
 }
 public IActionResult Producto(int id)
 {
     try
     {
         Producto producto  = ProductoDAO.getProductoPorId(id, User.Identity.Name);
         bool     eliminado = ObjetoDAO.borrarHijos(producto.treepath, 3, User.Identity.Name);
         return(Ok(new { success = eliminado }));
     }
     catch (Exception e)
     {
         CLogger.write("4", "ProductoController.class", e);
         return(BadRequest(500));
     }
 }
        public IActionResult Subproducto(int id)
        {
            try
            {
                Subproducto subproducto = SubproductoDAO.getSubproductoPorId(id);
                bool        resultado   = ObjetoDAO.borrarHijos(subproducto.treepath, 4, User.Identity.Name);

                return(Ok(new { success = resultado }));
            }
            catch (Exception e)
            {
                CLogger.write("4", "SubproductoController.class", e);
                return(BadRequest(500));
            }
        }
        public static bool calcularCostoyFechas(int subcomponenteId)
        {
            bool ret = false;

            try
            {
                List <List <Nodo> > listas = EstructuraProyectoDAO.getEstructuraObjetoArbolCalculos(subcomponenteId, 2);
                for (int i = listas.Count - 2; i >= 0; i--)
                {
                    for (int j = 0; j < listas[i].Count; j++)
                    {
                        Nodo     nodo         = listas[i][j];
                        decimal  costo        = decimal.Zero;
                        DateTime fecha_maxima = new DateTime(0);
                        DateTime fecha_minima = new DateTime(new DateTime(2999, 12, 31, 0, 0, 0).Ticks);
                        foreach (Nodo nodo_hijo in nodo.children)
                        {
                            costo       += nodo_hijo.costo;
                            fecha_minima = (nodo_hijo.fecha_inicio.TimeOfDay < fecha_minima.TimeOfDay) ? nodo_hijo.fecha_inicio : fecha_minima;
                            fecha_maxima = (nodo_hijo.fecha_fin.TimeOfDay > fecha_maxima.TimeOfDay) ? nodo_hijo.fecha_fin : fecha_maxima;
                        }
                        nodo.objeto = ObjetoDAO.getObjetoPorIdyTipo(nodo.id, nodo.objeto_tipo);
                        if (nodo.children != null && nodo.children.Count > 0)
                        {
                            nodo.fecha_inicio = fecha_minima;
                            nodo.fecha_fin    = fecha_maxima;
                            nodo.costo        = costo;
                        }
                        else
                        {
                            nodo.costo = calcularCosto((Subcomponente)nodo.objeto);
                        }
                        nodo.duracion = Utils.getWorkingDays(nodo.fecha_inicio, nodo.fecha_fin);
                        setDatosCalculados(nodo.objeto, nodo.fecha_inicio, nodo.fecha_fin, nodo.costo, nodo.duracion);
                    }
                    ret = true;
                }

                ret = ret && guardarSubComponenteBatch(listas);
            }
            catch (Exception e)
            {
                CLogger.write("20", "SubComponenteDAO.class", e);
            }

            return(ret);
        }
Example #7
0
        /// <summary>
        ///     Lista de todos os Grupos para preenchimento de combo
        /// </summary>
        /// <returns>Lista de SelectListItem</returns>
        public List <SelectListItem> PreenchecmbGrupo()
        {
            List <ObjTipo>        lst      = new ObjetoDAO().ObjTipo_ListAll(9, null, null, 0, 0);
            List <SelectListItem> lstSaida = new List <SelectListItem>(); // lista de combo

            foreach (var temp in lst)
            {
                if (temp.tip_nome.Trim() != "")
                {
                    lstSaida.Add(new SelectListItem()
                    {
                        Text = temp.tip_nome, Value = temp.tip_nome
                    });
                }
            }

            //  lstSaida.Insert(0, new SelectListItem() { Text = "-- Selecione --", Value = "", Disabled = true });
            return(lstSaida.GroupBy(x => x.Text).Select(x => x.First()).ToList());
        }
Example #8
0
        public IActionResult ComponentesPaginaPorProyecto([FromBody] dynamic value)
        {
            try
            {
                int    pagina            = value.pagina != null ? (int)value.pagina : 1;
                int    numeroComponentes = value.numeroCooperantes != null ? (int)value.numeroCooperantes : 20;
                string filtro_busqueda   = value.filtro_busqueda != null ? (string)value.filtro_busqueda : null;
                int    proyectoId        = value.proyectoId != null ? (int)value.proyectoId : default(int);
                string columna_ordenada  = value.columna_ordenada != null ? (string)value.columna_ordenada : null;
                string orden_direccion   = value.orden_direccion != null ? (string)value.orden_direccion : null;
                bool   esDeSigade        = false;

                List <Componente> componentes = ComponenteDAO.getComponentesPaginaPorProyecto(pagina, numeroComponentes, proyectoId
                                                                                              , filtro_busqueda, columna_ordenada, orden_direccion, User.Identity.Name);

                List <Stcomponente> stcomponentes = new List <Stcomponente>();
                foreach (Componente componente in componentes)
                {
                    Stcomponente temp = new Stcomponente();
                    temp.descripcion        = componente.descripcion;
                    temp.estado             = componente.estado;
                    temp.fechaActualizacion = componente.fechaActualizacion != null?componente.fechaActualizacion.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.fechaCreacion         = componente.fechaCreacion.ToString("dd/MM/yyyy H:mm:ss");
                    temp.id                    = componente.id;
                    temp.nombre                = componente.nombre;
                    temp.usuarioActualizo      = componente.usuarioActualizo;
                    temp.usuarioCreo           = componente.usuarioCreo;
                    temp.componenteTipoid      = componente.componenteTipoid;
                    componente.componenteTipos = ComponenteTipoDAO.getComponenteTipoPorId(componente.componenteTipoid);

                    temp.componentetiponombre = componente.componenteTipos.nombre;
                    temp.snip                = componente.snip ?? null;
                    temp.programa            = componente.programa ?? null;
                    temp.subprograma         = componente.subprograma ?? null;
                    temp.proyecto            = componente.proyecto ?? null;
                    temp.obra                = componente.obra ?? null;
                    temp.renglon             = componente.renglon ?? null;
                    temp.ubicacionGeografica = componente.ubicacionGeografica ?? null;
                    temp.actividad           = componente.actividad ?? null;

                    componente.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(componente.ejercicio, componente.entidad ?? default(int), componente.ueunidadEjecutora);

                    if (componente.unidadEjecutoras != null)
                    {
                        temp.ueunidadEjecutora = componente.ueunidadEjecutora;
                        temp.ejercicio         = componente.ejercicio;
                        temp.entidad           = componente.entidad ?? default(int);
                        componente.unidadEjecutoras.entidads = EntidadDAO.getEntidad(componente.entidad ?? default(int), componente.ejercicio);
                        temp.unidadejecutoranombre           = componente.unidadEjecutoras.nombre;
                        temp.entidadnombre = componente.unidadEjecutoras.entidads.nombre;
                    }
                    else
                    {
                        Proyecto proyecto = ProyectoDAO.getProyecto(componente.proyectoid);
                        proyecto.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(proyecto.ejercicio, proyecto.entidad ?? default(int), proyecto.ueunidadEjecutora);

                        temp.ueunidadEjecutora = proyecto.ueunidadEjecutora;
                        temp.ejercicio         = proyecto.ejercicio;
                        temp.entidad           = proyecto.entidad ?? default(int);

                        proyecto.unidadEjecutoras.entidads = EntidadDAO.getEntidad(proyecto.entidad ?? default(int), proyecto.ejercicio);
                        temp.unidadejecutoranombre         = proyecto.unidadEjecutoras.nombre;
                        temp.entidadnombre = proyecto.unidadEjecutoras.entidads.nombre;
                    }

                    temp.latitud            = componente.latitud;
                    temp.longitud           = componente.longitud;
                    temp.costo              = componente.costo ?? default(decimal);
                    temp.acumulacionCostoid = (int)componente.acumulacionCostoid;

                    componente.acumulacionCostos = AcumulacionCostoDAO.getAcumulacionCostoById((int)componente.acumulacionCostoid);

                    temp.acumulacionCostoNombre = componente.acumulacionCostos.nombre;
                    temp.fechaInicio            = componente.fechaInicio != null?componente.fechaInicio.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.fechaFin = componente.fechaFin != null?componente.fechaFin.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.duracion          = componente.duracion;
                    temp.duracionDimension = componente.duracionDimension;

                    temp.tieneHijos     = ObjetoDAO.tieneHijos(temp.id, 1);
                    temp.esDeSigade     = componente.esDeSigade ?? default(int);
                    temp.fuentePrestamo = componente.fuentePrestamo ?? default(decimal);
                    temp.fuenteDonacion = componente.fuenteDonacion ?? default(decimal);
                    temp.fuenteNacional = componente.fuenteNacional ?? default(decimal);

                    esDeSigade = temp.esDeSigade == 1 ? true : false;

                    temp.fechaInicioReal = componente.fechaInicioReal != null?componente.fechaInicioReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.fechaFinReal = componente.fechaFinReal != null?componente.fechaFinReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.inversionNueva = componente.inversionNueva;
                    temp.proyectoid     = componente.proyectoid;

                    stcomponentes.Add(temp);
                }

                return(Ok(new { success = true, componentes = stcomponentes, esDeSigade = esDeSigade }));
            }
            catch (Exception e)
            {
                CLogger.write("2", "ComponenteController.class", e);
                return(BadRequest(500));
            }
        }
Example #9
0
        public IActionResult ValidacionAsignado([FromBody] dynamic value)
        {
            try
            {
                DateTime   cal           = new DateTime();
                int        ejercicio     = cal.Year;
                Componente objComponente = ComponenteDAO.getComponente((int)value.id);
                Proyecto   objProyecto   = ProyectoDAO.getProyectobyTreePath(objComponente.treepath);
                int        entidad       = objProyecto.entidad ?? default(int);

                int     programa    = value.programa != null ? (int)value.programa : default(int);
                int     subprograma = value.subprograma != null ? (int)value.subprograma : default(int);
                int     proyecto    = value.proyecto != null ? (int)value.proyecto : default(int);
                int     actividad   = value.actividad != null ? (int)value.actividad : default(int);
                int     obra        = value.obra != null ? (int)value.obra : default(int);
                int     renglon     = value.renglon != null ? (int)value.renglon : default(int);
                int     geografico  = value.geografico != null ? (int)value.geografico : default(int);
                decimal asignado    = ObjetoDAO.getAsignadoPorLineaPresupuestaria(ejercicio, entidad, programa, subprograma, proyecto, actividad, obra, renglon, geografico);

                decimal planificado = decimal.Zero;
                switch (objComponente.acumulacionCostoid)
                {
                case 1:
                    cal = objComponente.fechaInicio ?? default(DateTime);
                    int ejercicioInicial = cal.Year;
                    if (ejercicio.Equals(ejercicioInicial))
                    {
                        planificado = objComponente.costo ?? default(decimal);
                    }
                    break;

                case 2:
                    List <PagoPlanificado> lstPagos = PagoPlanificadoDAO.getPagosPlanificadosPorObjeto(objComponente.id, 1);
                    foreach (PagoPlanificado pago in lstPagos)
                    {
                        cal = pago.fechaPago;
                        int ejercicioPago = cal.Year;
                        if (ejercicio.Equals(ejercicioPago))
                        {
                            planificado += pago.pago;
                        }
                    }
                    break;

                case 3:
                    cal = objComponente.fechaFin ?? default(DateTime);
                    int ejercicioFinal = cal.Year;
                    if (ejercicio.Equals(ejercicioFinal))
                    {
                        planificado += objComponente.costo ?? default(decimal);
                    }
                    break;
                }

                bool sobrepaso = false;
                if ((asignado = (asignado - planificado)).CompareTo(decimal.Zero) == -1)
                {
                    sobrepaso = true;
                }

                return(Ok(new { success = true, asignado = asignado, sobrepaso = sobrepaso }));
            }
            catch (Exception e)
            {
                CLogger.write("9", "ComponenteController.class", e);
                return(BadRequest(500));
            }
        }
Example #10
0
        public IActionResult ComponentePorIdCorto(int id)
        {
            try
            {
                bool         esDeSigade = false;
                Componente   componente = ComponenteDAO.getComponentePorId(id, User.Identity.Name);
                Stcomponente temp       = new Stcomponente();
                temp.descripcion        = componente.descripcion;
                temp.estado             = componente.estado;
                temp.fechaActualizacion = componente.fechaActualizacion != null?componente.fechaActualizacion.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                temp.fechaCreacion         = componente.fechaCreacion.ToString("dd/MM/yyyy H:mm:ss");
                temp.id                    = componente.id;
                temp.nombre                = componente.nombre;
                temp.usuarioActualizo      = componente.usuarioActualizo;
                temp.usuarioCreo           = componente.usuarioCreo;
                temp.componenteTipoid      = componente.componenteTipoid;
                componente.componenteTipos = ComponenteTipoDAO.getComponenteTipoPorId(componente.componenteTipoid);

                temp.componentetiponombre = componente.componenteTipos.nombre;
                temp.snip                = componente.snip != null ? (long)componente.snip : default(long);
                temp.programa            = componente.programa ?? default(int);
                temp.subprograma         = componente.subprograma ?? default(int);
                temp.proyecto            = componente.proyecto ?? default(int);
                temp.obra                = componente.obra ?? default(int);
                temp.renglon             = componente.renglon ?? default(int);
                temp.ubicacionGeografica = componente.ubicacionGeografica ?? default(int);
                temp.actividad           = componente.actividad ?? default(int);

                componente.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(componente.ejercicio, componente.entidad ?? default(int), componente.ueunidadEjecutora);

                if (componente.unidadEjecutoras != null)
                {
                    temp.ueunidadEjecutora = componente.ueunidadEjecutora;
                    temp.ejercicio         = componente.ejercicio;
                    temp.entidad           = componente.entidad ?? default(int);
                    componente.unidadEjecutoras.entidads = EntidadDAO.getEntidad(componente.entidad ?? default(int), componente.ejercicio);
                    temp.unidadejecutoranombre           = componente.unidadEjecutoras.nombre;
                    temp.entidadnombre = componente.unidadEjecutoras.entidads.nombre;
                }
                else
                {
                    Proyecto proyecto = ProyectoDAO.getProyecto(componente.proyectoid);
                    proyecto.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(proyecto.ejercicio, proyecto.entidad ?? default(int), proyecto.ueunidadEjecutora);

                    temp.ueunidadEjecutora = proyecto.ueunidadEjecutora;
                    temp.ejercicio         = proyecto.ejercicio;
                    temp.entidad           = proyecto.entidad ?? default(int);

                    proyecto.unidadEjecutoras.entidads = EntidadDAO.getEntidad(proyecto.entidad ?? default(int), proyecto.ejercicio);
                    temp.unidadejecutoranombre         = proyecto.unidadEjecutoras.nombre;
                    temp.entidadnombre = proyecto.unidadEjecutoras.entidads.nombre;
                }

                temp.latitud            = componente.latitud;
                temp.longitud           = componente.longitud;
                temp.costo              = componente.costo ?? default(decimal);
                temp.acumulacionCostoid = (int)componente.acumulacionCostoid;

                componente.acumulacionCostos = AcumulacionCostoDAO.getAcumulacionCostoById((int)componente.acumulacionCostoid);

                temp.acumulacionCostoNombre = componente.acumulacionCostos.nombre;
                temp.fechaInicio            = componente.fechaInicio != null?componente.fechaInicio.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                temp.fechaFin = componente.fechaFin != null?componente.fechaFin.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                temp.duracion          = componente.duracion;
                temp.duracionDimension = componente.duracionDimension;

                temp.tieneHijos     = ObjetoDAO.tieneHijos(temp.id, 1);
                temp.esDeSigade     = componente.esDeSigade ?? default(int);
                temp.fuentePrestamo = componente.fuentePrestamo ?? default(decimal);
                temp.fuenteDonacion = componente.fuenteDonacion ?? default(decimal);
                temp.fuenteNacional = componente.fuenteNacional ?? default(decimal);

                esDeSigade = temp.esDeSigade == 1 ? true : false;

                temp.fechaInicioReal = componente.fechaInicioReal != null?componente.fechaInicioReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                temp.fechaFinReal = componente.fechaFinReal != null?componente.fechaFinReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                temp.inversionNueva = componente.inversionNueva;
                temp.proyectoid     = componente.proyectoid;

                return(Ok(new { success = true, componente = temp }));
            }
            catch (Exception e)
            {
                CLogger.write("5", "ComponenteController.class", e);
                return(BadRequest(500));
            }
        }
        public IActionResult ProductoPagina([FromBody] dynamic value)
        {
            try
            {
                int    componenteid     = value.componenteid != null ? (int)value.componenteid : 0;
                int    subcomponenteid  = value.subcomponenteid != null ? (int)value.subcomponenteid : 0;
                int    pagina           = value.pagina != null ? (int)value.pagina : 1;
                int    registros        = value.registros != null ? value.registros : 20;
                String filtro_busqueda  = (string)value.filtro_busqueda;
                String columna_ordenada = (string)value.columna_ordenada;
                String orden_direccion  = (string)value.orden_direccion;

                List <Producto> productos = ProductoDAO.getProductosPagina(pagina, registros, componenteid, subcomponenteid, filtro_busqueda, columna_ordenada,
                                                                           orden_direccion, User.Identity.Name);
                List <Stproducto> listaProducto = new List <Stproducto>();

                String fechaElegibilidad = null;
                String fechaCierre       = null;

                if (productos != null && productos.Count > 0)
                {
                    Proyecto proyecto = ProyectoDAO.getProyectobyTreePath(productos[0].treepath);
                    if (proyecto != null)
                    {
                        fechaElegibilidad = proyecto.fechaElegibilidad != null?proyecto.fechaElegibilidad.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                        fechaCierre = proyecto.fechaCierre != null?proyecto.fechaCierre.Value.ToString("dd/MM/yyyy H:mm:ss") : null;
                    }
                }

                foreach (Producto producto in productos)
                {
                    Stproducto temp = new Stproducto();
                    temp.id                  = producto.id;
                    temp.nombre              = producto.nombre;
                    temp.descripcion         = producto.descripcion;
                    temp.programa            = producto.programa;
                    temp.subprograma         = producto.subprograma;
                    temp.proyecto            = producto.proyecto;
                    temp.obra                = producto.obra;
                    temp.actividad           = producto.actividad;
                    temp.renglon             = producto.renglon;
                    temp.ubicacionGeografica = producto.ubicacionGeografica;
                    temp.duracion            = producto.duracion;
                    temp.duracionDimension   = producto.duracionDimension;
                    temp.fechaInicio         = producto.fechaInicio != null?producto.fechaInicio.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.fechaFin = producto.fechaFin != null?producto.fechaFin.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.snip               = producto.snip;
                    temp.estado             = producto.estado ?? default(int);
                    temp.usuarioCreo        = producto.usuarioCreo;
                    temp.usuarioActualizo   = producto.usuarioActualizo;
                    temp.fechaCreacion      = producto.fechaCreacion.ToString("dd/MM/yyyy H:mm:ss");
                    temp.fechaActualizacion = producto.fechaActualizacion != null?producto.fechaActualizacion.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.latitud  = producto.latitud;
                    temp.longitud = producto.longitud;
                    temp.peso     = producto.peso ?? default(int);
                    temp.costo    = producto.costo ?? default(decimal);

                    producto.acumulacionCostos = AcumulacionCostoDAO.getAcumulacionCostoById(Convert.ToInt32(producto.acumulacionCostoid));

                    temp.acumulacionCostoid     = Convert.ToInt32(producto.acumulacionCostoid);
                    temp.acumulacionCostoNombre = producto.acumulacionCostos != null ? producto.acumulacionCostos.nombre : null;

                    producto.productoTipos  = ProductoTipoDAO.getProductoTipo(producto.productoTipoid);
                    temp.productoTipoid     = producto.productoTipoid;
                    temp.productoTipoNombre = producto.productoTipos.nombre;

                    if (producto.componenteid != null)
                    {
                        producto.componentes  = ComponenteDAO.getComponentePorId(producto.componenteid ?? default(int), null);
                        temp.componenteid     = producto.componenteid ?? default(int);
                        temp.componenteNombre = producto.componentes.nombre;

                        producto.componentes.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(producto.componentes.ejercicio, producto.componentes.entidad ?? default(int), producto.componentes.ueunidadEjecutora);
                        if (producto.componentes.unidadEjecutoras != null)
                        {
                            temp.ueunidadEjecutora     = producto.componentes.ueunidadEjecutora;
                            temp.entidad               = producto.componentes.entidad ?? default(int);
                            temp.ejercicio             = producto.componentes.ejercicio;
                            temp.nombreUnidadEjecutora = producto.componentes.unidadEjecutoras.nombre;

                            producto.componentes.unidadEjecutoras.entidads = EntidadDAO.getEntidad(producto.componentes.entidad ?? default(int), producto.componentes.ejercicio);
                            temp.entidadnombre = producto.componentes.unidadEjecutoras.entidads != null ? producto.componentes.unidadEjecutoras.entidads.nombre : "SIN ENTIDAD";
                        }
                    }

                    if (producto.subcomponenteid != null)
                    {
                        producto.subcomponentes  = SubComponenteDAO.getSubComponentePorId(producto.subcomponenteid ?? default(int), null);
                        temp.subcomponenteid     = producto.subcomponenteid ?? default(int);
                        temp.subcomponenteNombre = producto.subcomponentes != null ? producto.subcomponentes.nombre : null;

                        producto.subcomponentes.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(producto.subcomponentes.ejercicio ?? default(int), producto.subcomponentes.entidad ?? default(int), producto.subcomponentes.ueunidadEjecutora ?? default(int));
                        if (producto.subcomponentes.unidadEjecutoras != null)
                        {
                            temp.ueunidadEjecutora     = producto.subcomponentes.ueunidadEjecutora ?? default(int);
                            temp.entidad               = producto.subcomponentes.entidad ?? default(int);
                            temp.ejercicio             = producto.subcomponentes.ejercicio ?? default(int);
                            temp.nombreUnidadEjecutora = producto.subcomponentes.unidadEjecutoras.nombre;

                            producto.subcomponentes.unidadEjecutoras.entidads = EntidadDAO.getEntidad(producto.subcomponentes.entidad ?? default(int), producto.subcomponentes.ejercicio ?? default(int));
                            temp.entidadnombre = producto.subcomponentes.unidadEjecutoras.entidads != null ? producto.subcomponentes.unidadEjecutoras.entidads.nombre : "SIN ENTIDAD";
                        }
                    }

                    producto.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(producto.ejercicio, producto.entidad ?? default(int), producto.ueunidadEjecutora);
                    if (producto.unidadEjecutoras != null)
                    {
                        temp.ueunidadEjecutora     = producto.ueunidadEjecutora;
                        temp.entidad               = producto.entidad ?? default(int);
                        temp.ejercicio             = producto.ejercicio;
                        temp.nombreUnidadEjecutora = producto.unidadEjecutoras.nombre;

                        producto.unidadEjecutoras.entidads = EntidadDAO.getEntidad(producto.entidad ?? default(int), producto.ejercicio);
                        temp.entidadnombre = producto.unidadEjecutoras.entidads != null ? producto.unidadEjecutoras.entidads.nombre : "SIN ENTIDAD";
                    }

                    temp.tieneHijos      = ObjetoDAO.tieneHijos(temp.id, 3);
                    temp.fechaInicioReal = producto.fechaInicioReal != null?producto.fechaInicioReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.fechaFinReal = producto.fechaFinReal != null?producto.fechaFinReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.fechaElegibilidad = fechaElegibilidad;
                    temp.fechaCierre       = fechaCierre;
                    temp.inversionNueva    = producto.inversionNueva ?? default(int);

                    listaProducto.Add(temp);
                }

                return(Ok(new { success = true, productos = listaProducto }));
            }
            catch (Exception e)
            {
                CLogger.write("1", "ProductoController.class", e);
                return(BadRequest(500));
            }
        }
        public IActionResult ProductoPorId(int id)
        {
            try
            {
                Producto   producto = ProductoDAO.getProductoPorId(id, User.Identity.Name);
                Stproducto temp     = new Stproducto();
                temp.id                  = producto.id;
                temp.nombre              = producto.nombre;
                temp.descripcion         = producto.descripcion;
                temp.programa            = producto.programa;
                temp.subprograma         = producto.subprograma;
                temp.proyecto            = producto.proyecto;
                temp.obra                = producto.obra;
                temp.actividad           = producto.actividad;
                temp.renglon             = producto.renglon;
                temp.ubicacionGeografica = producto.ubicacionGeografica;
                temp.duracion            = producto.duracion;
                temp.duracionDimension   = producto.duracionDimension;
                temp.fechaInicio         = producto.fechaInicio != null?producto.fechaInicio.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                temp.fechaFin = producto.fechaFin != null?producto.fechaFin.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                temp.snip               = producto.snip;
                temp.estado             = producto.estado ?? default(int);
                temp.usuarioCreo        = producto.usuarioCreo;
                temp.usuarioActualizo   = producto.usuarioActualizo;
                temp.fechaCreacion      = producto.fechaCreacion.ToString("dd/MM/yyyy H:mm:ss");
                temp.fechaActualizacion = producto.fechaActualizacion != null?producto.fechaActualizacion.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                temp.latitud  = producto.latitud;
                temp.longitud = producto.longitud;
                temp.peso     = producto.peso ?? default(int);
                temp.costo    = producto.costo ?? default(decimal);

                producto.acumulacionCostos = AcumulacionCostoDAO.getAcumulacionCostoById(Convert.ToInt32(producto.acumulacionCostoid));

                temp.acumulacionCostoid     = Convert.ToInt32(producto.acumulacionCostoid);
                temp.acumulacionCostoNombre = producto.acumulacionCostos != null ? producto.acumulacionCostos.nombre : null;

                producto.productoTipos  = ProductoTipoDAO.getProductoTipo(producto.productoTipoid);
                temp.productoTipoid     = producto.productoTipoid;
                temp.productoTipoNombre = producto.productoTipos.nombre;

                if (producto.componenteid != null)
                {
                    producto.componentes  = ComponenteDAO.getComponentePorId(producto.componenteid ?? default(int), null);
                    temp.componenteid     = producto.componenteid ?? default(int);
                    temp.componenteNombre = producto.componentes.nombre;

                    producto.componentes.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(producto.componentes.ejercicio, producto.componentes.entidad ?? default(int), producto.componentes.ueunidadEjecutora);
                    if (producto.componentes.unidadEjecutoras != null)
                    {
                        temp.ueunidadEjecutora     = producto.componentes.ueunidadEjecutora;
                        temp.entidad               = producto.componentes.entidad ?? default(int);
                        temp.ejercicio             = producto.componentes.ejercicio;
                        temp.nombreUnidadEjecutora = producto.componentes.unidadEjecutoras.nombre;

                        producto.componentes.unidadEjecutoras.entidads = EntidadDAO.getEntidad(producto.componentes.entidad ?? default(int), producto.componentes.ejercicio);
                        temp.entidadnombre = producto.componentes.unidadEjecutoras.entidads.nombre;
                    }
                }

                if (producto.subcomponenteid != null)
                {
                    producto.subcomponentes  = SubComponenteDAO.getSubComponentePorId(producto.subcomponenteid ?? default(int), null);
                    temp.subcomponenteid     = producto.subcomponenteid ?? default(int);
                    temp.subcomponenteNombre = producto.subcomponentes != null ? producto.subcomponentes.nombre : null;

                    producto.subcomponentes.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(producto.subcomponentes.ejercicio ?? default(int), producto.subcomponentes.entidad ?? default(int), producto.subcomponentes.ueunidadEjecutora ?? default(int));
                    if (producto.subcomponentes.unidadEjecutoras != null)
                    {
                        temp.ueunidadEjecutora     = producto.subcomponentes.ueunidadEjecutora ?? default(int);
                        temp.entidad               = producto.subcomponentes.entidad ?? default(int);
                        temp.ejercicio             = producto.subcomponentes.ejercicio ?? default(int);
                        temp.nombreUnidadEjecutora = producto.subcomponentes.unidadEjecutoras.nombre;

                        producto.subcomponentes.unidadEjecutoras.entidads = EntidadDAO.getEntidad(producto.subcomponentes.entidad ?? default(int), producto.subcomponentes.ejercicio ?? default(int));
                        temp.entidadnombre = producto.subcomponentes.unidadEjecutoras.entidads.nombre;
                    }
                }

                producto.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(producto.ejercicio, producto.entidad ?? default(int), producto.ueunidadEjecutora);
                if (producto.unidadEjecutoras != null)
                {
                    temp.ueunidadEjecutora     = producto.ueunidadEjecutora;
                    temp.entidad               = producto.entidad ?? default(int);
                    temp.ejercicio             = producto.ejercicio;
                    temp.nombreUnidadEjecutora = producto.unidadEjecutoras.nombre;

                    producto.unidadEjecutoras.entidads = EntidadDAO.getEntidad(producto.entidad ?? default(int), producto.ejercicio);
                    temp.entidadnombre = producto.unidadEjecutoras.entidads.nombre;
                }

                temp.tieneHijos      = ObjetoDAO.tieneHijos(temp.id, 3);
                temp.fechaInicioReal = producto.fechaInicioReal != null?producto.fechaInicioReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                temp.fechaFinReal = producto.fechaFinReal != null?producto.fechaFinReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                Proyecto proyecto = ProyectoDAO.getProyectobyTreePath(producto.treepath);
                temp.fechaElegibilidad = proyecto.fechaElegibilidad != null?proyecto.fechaElegibilidad.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                temp.fechaCierre = proyecto.fechaCierre != null?proyecto.fechaCierre.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                temp.inversionNueva = producto.inversionNueva ?? default(int);

                return(Ok(new { success = true, producto = temp }));
            }
            catch (Exception e)
            {
                CLogger.write("7", "ProductoController.class", e);
                return(BadRequest(500));
            }
        }
        public IActionResult SubProductosPaginaPorProducto([FromBody] dynamic value)
        {
            try
            {
                int    pagina             = value.pagina != null ? (int)value.pagina : 1;
                int    productoId         = value.productoid != null ? (int)value.productoid : default(int);
                int    numeroSubProductos = value.numerosubproductos != null ? (int)value.numerosubproductos : 20;
                String filtro_busqueda    = value.filtro_busqueda;
                String columna_ordenada   = value.columna_ordenada;
                String orden_direccion    = value.orden_direccion;

                List <Subproducto> subproductos = SubproductoDAO.getSubProductosPaginaPorProducto(pagina, numeroSubProductos,
                                                                                                  productoId, filtro_busqueda, columna_ordenada, orden_direccion, User.Identity.Name);
                List <Stsubproducto> stsubproductos = new List <Stsubproducto>();
                foreach (Subproducto subproducto in subproductos)
                {
                    Stsubproducto temp = new Stsubproducto();
                    temp.descripcion        = subproducto.descripcion;
                    temp.estado             = subproducto.estado;
                    temp.fechaActualizacion = subproducto.fechaActualizacion != null?subproducto.fechaActualizacion.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.fechaCreacion    = subproducto.fechaCreacion.ToString("dd/MM/yyyy H:mm:ss");
                    temp.id               = subproducto.id;
                    temp.nombre           = subproducto.nombre;
                    temp.usuarioActualizo = subproducto.usuarioActualizo;
                    temp.usuarioCreo      = subproducto.usuarioCreo;

                    subproducto.subproductoTipos = SubproductoTipoDAO.getSubProductoTipoPorId(subproducto.subproductoTipoid);
                    temp.subproductoTipoid       = subproducto.subproductoTipoid;
                    temp.subProductoTipo         = subproducto.subproductoTipos.nombre;

                    temp.snip                = subproducto.snip;
                    temp.programa            = subproducto.programa;
                    temp.subprograma         = subproducto.subprograma;
                    temp.proyecto            = subproducto.proyecto;
                    temp.actividad           = subproducto.actividad;
                    temp.renglon             = subproducto.renglon;
                    temp.ubicacionGeografica = subproducto.ubicacionGeografica;
                    temp.duracion            = subproducto.duracion;
                    temp.duracionDimension   = subproducto.duracionDimension;
                    temp.fechaInicio         = subproducto.fechaInicio != null?subproducto.fechaInicio.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.fechaFin = subproducto.fechaFin != null?subproducto.fechaFin.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.obra = subproducto.obra;

                    subproducto.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(subproducto.ejercicio ?? default(int), subproducto.entidad ?? default(int), subproducto.ueunidadEjecutora ?? default(int));
                    if (subproducto.unidadEjecutoras != null)
                    {
                        temp.ueunidadEjecutora = subproducto.ueunidadEjecutora ?? default(int);
                        temp.ejercicio         = subproducto.ejercicio ?? default(int);

                        subproducto.unidadEjecutoras.entidads = EntidadDAO.getEntidad(subproducto.entidad ?? default(int), subproducto.ejercicio ?? default(int));
                        temp.entidadentidad = subproducto.entidad ?? default(int);
                        subproducto.unidadEjecutoras.entidads = EntidadDAO.getEntidad(subproducto.entidad ?? default(int), subproducto.ejercicio ?? default(int));
                        temp.nombreUnidadEjecutora            = subproducto.unidadEjecutoras.nombre;
                        temp.entidadnombre = subproducto.unidadEjecutoras.entidads != null ? subproducto.unidadEjecutoras.entidads.nombre : "SIN ENTIDAD";
                    }
                    else
                    {
                        Producto producto = ProductoDAO.getProducto(subproducto.productoid);
                        producto.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(producto.ejercicio, producto.entidad ?? default(int), producto.ueunidadEjecutora);
                        if (producto.unidadEjecutoras != null)
                        {
                            temp.ueunidadEjecutora = producto.ueunidadEjecutora;
                            temp.ejercicio         = producto.ejercicio;

                            producto.unidadEjecutoras.entidads = EntidadDAO.getEntidad(producto.entidad ?? default(int), producto.ejercicio);
                            temp.entidadentidad = producto.entidad ?? default(int);
                            subproducto.unidadEjecutoras.entidads = EntidadDAO.getEntidad(producto.entidad ?? default(int), producto.ejercicio);
                            temp.nombreUnidadEjecutora            = producto.unidadEjecutoras.nombre;
                            temp.entidadnombre = subproducto.unidadEjecutoras.entidads != null ? subproducto.unidadEjecutoras.entidads.nombre : "SIN ENTIDAD";
                        }
                    }

                    temp.latitud  = subproducto.latitud;
                    temp.longitud = subproducto.longitud;
                    temp.costo    = subproducto.costo ?? default(decimal);

                    subproducto.acumulacionCostos = AcumulacionCostoDAO.getAcumulacionCostoById(Convert.ToInt32(subproducto.acumulacionCostoid));
                    temp.acumulacionCostoid       = Convert.ToInt32(subproducto.acumulacionCostoid);
                    temp.acumulacionCostoNombre   = subproducto.acumulacionCostos.nombre;

                    temp.tieneHijos      = ObjetoDAO.tieneHijos(temp.id, 2);
                    temp.fechaInicioReal = subproducto.fechaInicioReal != null?subproducto.fechaInicioReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.fechaFinReal = subproducto.fechaFinReal != null?subproducto.fechaFinReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.inversionNueva = subproducto.inversionNueva;

                    stsubproductos.Add(temp);
                }

                return(Ok(new { success = true, subproductos = stsubproductos }));
            }
            catch (Exception e)
            {
                CLogger.write("7", "SubproductoController.class", e);
                return(BadRequest(500));
            }
        } /* */
        public IActionResult SubproductoPorId(int id)
        {
            try
            {
                Subproducto subproducto = SubproductoDAO.getSubproductoPorId(id);

                if (subproducto != null)
                {
                    Stsubproducto temp = new Stsubproducto();
                    temp.id               = subproducto.id;
                    temp.nombre           = subproducto.nombre;
                    temp.descripcion      = subproducto.descripcion;
                    temp.usuarioCreo      = subproducto.usuarioCreo;
                    temp.usuarioActualizo = subproducto.usuarioActualizo;

                    temp.fechaCreacion      = Utils.ConvierteAFormatoFecha(subproducto.fechaCreacion);
                    temp.fechaActualizacion = Utils.ConvierteAFormatoFecha(subproducto.fechaActualizacion);

                    temp.estado              = subproducto.estado;
                    temp.snip                = subproducto.snip;
                    temp.programa            = subproducto.programa;
                    temp.subprograma         = subproducto.subprograma;
                    temp.proyecto            = subproducto.proyecto;
                    temp.actividad           = subproducto.actividad;
                    temp.obra                = subproducto.obra;
                    temp.renglon             = subproducto.renglon;
                    temp.ubicacionGeografica = subproducto.ubicacionGeografica;
                    temp.latitud             = subproducto.latitud;
                    temp.longitud            = subproducto.longitud;
                    temp.fechaInicio         = Utils.ConvierteAFormatoFecha(subproducto.fechaInicio);
                    temp.fechaFin            = Utils.ConvierteAFormatoFecha(subproducto.fechaFin);
                    temp.duracion            = subproducto.duracion;
                    temp.duracionDimension   = subproducto.duracionDimension;
                    temp.costo               = subproducto.costo ?? default(decimal);

                    subproducto.acumulacionCostos = AcumulacionCostoDAO.getAcumulacionCostoById(subproducto.acumulacionCostoid);
                    temp.acumulacionCostoid       = subproducto.acumulacionCostoid;
                    temp.acumulacionCostoNombre   = subproducto.acumulacionCostos.nombre;
                    temp.productoid = subproducto.productoid;

                    //subproducto.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(subproducto.ejercicio, subproducto.entidad ?? default(int), subproducto.ueunidadEjecutora);
                    subproducto.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(subproducto.ejercicio ?? default(int), subproducto.entidad ?? default(int), subproducto.ueunidadEjecutora ?? default(int));
                    if (subproducto.unidadEjecutoras != null)
                    {
                        //subproducto.unidadEjecutoras.entidads = EntidadDAO.getEntidad(subproducto.entidad ?? default(int), subproducto.ejercicio);
                        subproducto.unidadEjecutoras.entidads = EntidadDAO.getEntidad(subproducto.entidad ?? default(int), subproducto.ejercicio ?? default(int));
                        temp.entidadnombre         = subproducto.unidadEjecutoras.entidads.nombre;
                        temp.nombreUnidadEjecutora = subproducto.unidadEjecutoras.nombre;
                        temp.entidadentidad        = subproducto.unidadEjecutoras.entidadentidad;
                    }

                    //temp.ejercicio = subproducto.ejercicio;
                    temp.ejercicio = subproducto.ejercicio ?? default(int);

                    subproducto.subproductoTipos = SubproductoTipoDAO.getSubproductoTipo(subproducto.subproductoTipoid);

                    if (subproducto.subproductoTipos != null)
                    {
                        temp.subproductoTipoid = subproducto.subproductoTipoid;
                        temp.subProductoTipo   = subproducto.subproductoTipos.nombre;
                    }

                    temp.tieneHijos      = ObjetoDAO.tieneHijos(temp.id, 4);
                    temp.fechaInicioReal = Utils.ConvierteAFormatoFecha(subproducto.fechaInicioReal);
                    temp.fechaFinReal    = Utils.ConvierteAFormatoFecha(subproducto.fechaFinReal);

                    subproducto.productos = ProductoDAO.getProductoPorId(subproducto.productoid);
                    Proyecto proyecto = ProyectoDAO.getProyectobyTreePath(subproducto.productos.treepath);

                    temp.congelado         = proyecto.congelado != null ? proyecto.congelado : 0;
                    temp.fechaElegibilidad = Utils.ConvierteAFormatoFecha(proyecto.fechaElegibilidad);
                    temp.fechaCierre       = Utils.ConvierteAFormatoFecha(proyecto.fechaCierre);

                    temp.inversionNueva = subproducto.inversionNueva;

                    return(Ok(new { success = true, subproducto = temp }));
                }
                else
                {
                    return(Ok(new { success = false }));
                }
            }
            catch (Exception e)
            {
                CLogger.write("7", "SubproductoController.class", e);
                return(BadRequest(500));
            }
        }
Example #15
0
        public static bool guardarComponentes(String codigoPresupuestario, int proyectoId, String usuario, DateTime fechaSuscripcion)
        {
            bool     ret      = true;
            Proyecto proyecto = ProyectoDAO.getProyecto(proyectoId);

            if (proyecto.projectCargado == null || !proyecto.projectCargado.Equals(1))
            {
                List <DtmAvanceFisfinanCmp> componentesSigade = DataSigadeDAO.getComponentes(codigoPresupuestario);
                List <Componente>           componentesSipro  = ComponenteDAO.getComponentesPorProyecto(proyectoId);

                if (componentesSigade != null && componentesSigade.Count > 0)
                {
                    for (int i = 0; i < componentesSigade.Count; i++)
                    {
                        if (i < componentesSipro.Count)
                        {
                            Componente componente = componentesSipro[i];
                            componente.nombre             = componentesSigade[i].nombreComponente;
                            componente.esDeSigade         = 1;
                            componente.usuarioActualizo   = usuario;;
                            componente.fechaActualizacion = DateTime.Now;;
                            ret = ret && ComponenteDAO.guardarComponente(componente, false);
                        }
                        else
                        {
                            ComponenteTipo componenteTipo = ComponenteTipoDAO.getComponenteTipoPorId(1);

                            int              year             = DateTime.Now.Year;
                            UnidadEjecutora  unidadEjecutora  = UnidadEjecutoraDAO.getUnidadEjecutora(year, 0, 0);
                            AcumulacionCosto acumulacionCosto = AcumulacionCostoDAO.getAcumulacionCostoById(3);

                            Componente componente = new Componente();
                            componente.acumulacionCostos  = acumulacionCosto;
                            componente.acumulacionCostoid = acumulacionCosto.id;
                            componente.componenteTipos    = componenteTipo;
                            componente.componenteTipoid   = componenteTipo.id;
                            componente.unidadEjecutoras   = unidadEjecutora;
                            componente.ueunidadEjecutora  = unidadEjecutora.unidadEjecutora;
                            componente.nombre             = componentesSigade[i].nombreComponente;
                            componente.usuarioCreo        = usuario;
                            componente.fechaCreacion      = DateTime.Now;
                            componente.estado             = 1;
                            componente.fechaInicio        = fechaSuscripcion;
                            componente.fechaFin           = fechaSuscripcion;
                            componente.duracion           = 1;
                            componente.duracionDimension  = "d";
                            componente.nivel          = 1;
                            componente.esDeSigade     = 1;
                            componente.inversionNueva = 0;

                            ret = ret && ComponenteDAO.guardarComponente(componente, true);
                        }
                    }

                    if (componentesSipro.Count > componentesSigade.Count)
                    {
                        for (int i = componentesSigade.Count; i < componentesSipro.Count; i++)
                        {
                            Componente componente = componentesSipro[i];
                            ret = ret && ObjetoDAO.borrarHijos(componente.treepath, 2, usuario);
                        }
                    }
                }
            }
            return(ret);
        }