public static void actualizarCostoPlanificadoObjeto(PlanAdquisicion pa)
        {
            decimal ret        = decimal.Zero;
            int     objetoId   = Convert.ToInt32(pa.objetoId);
            int     objetoTipo = Convert.ToInt32(pa.objetoTipo);
            List <PlanAdquisicionPago> pagos       = PlanAdquisicionPagoDAO.getPagosByPlan(Convert.ToInt32(pa.id));
            List <Actividad>           actividades = ActividadDAO.GetActividadesPorObjeto(objetoId, objetoTipo);

            foreach (Actividad actividad in actividades)
            {
                ret += actividad.costo ?? default(decimal);
            }

            switch (objetoTipo)
            {
            case 0:
                Proyecto          proyecto    = ProyectoDAO.getProyecto(objetoId);
                List <Componente> componentes = ComponenteDAO.getComponentesPorProyecto(proyecto.id);
                if (componentes == null || componentes.Count == 0)
                {
                    if (actividades == null || actividades.Count == 0)
                    {
                        if (pagos != null && pagos.Count > 0)
                        {
                            foreach (PlanAdquisicionPago pago in pagos)
                            {
                                ret += pago.pago ?? default(decimal);
                            }
                        }
                        else
                        {
                            ret = pa.total ?? default(decimal);
                        }
                    }
                }
                else
                {
                    foreach (Componente cmp in componentes)
                    {
                        ret += cmp.costo ?? default(decimal);
                    }
                }
                proyecto.costo = ret;
                ProyectoDAO.guardarProyecto(proyecto, false);
                break;

            case 1:
                Componente           componente     = ComponenteDAO.getComponente(objetoId);
                List <Producto>      productos      = ProductoDAO.getProductosByComponente(componente.id);
                List <Subcomponente> subcomponentes = SubComponenteDAO.getSubComponentesPorComponente(componente.id);
                if (productos == null || productos.Count == 0 || subcomponentes == null || subcomponentes.Count == 0)
                {
                    if (actividades == null || actividades.Count == 0)
                    {
                        if (pagos != null && pagos.Count > 0)
                        {
                            foreach (PlanAdquisicionPago pago in pagos)
                            {
                                ret += pago.pago ?? default(decimal);
                            }
                        }
                        else
                        {
                            ret = pa.total ?? default(decimal);
                        }
                    }
                }
                else
                {
                    if (productos != null)
                    {
                        foreach (Producto prod in productos)
                        {
                            ret += prod.costo ?? default(decimal);
                        }
                    }
                    if (subcomponentes != null)
                    {
                        foreach (Subcomponente subcomponente in subcomponentes)
                        {
                            ret += subcomponente.costo ?? default(decimal);
                        }
                    }
                }
                componente.costo = ret;
                ComponenteDAO.guardarComponente(componente, false);
                break;

            case 3:
                Producto           producto     = ProductoDAO.getProductoPorId(objetoId);
                List <Subproducto> subproductos = SubproductoDAO.getSubproductosByProductoid(producto.id);
                if (subproductos == null || subproductos.Count == 0)
                {
                    if (actividades == null || actividades.Count == 0)
                    {
                        if (pagos != null && pagos.Count > 0)
                        {
                            foreach (PlanAdquisicionPago pago in pagos)
                            {
                                ret += pago.pago ?? default(decimal);
                            }
                        }
                        else
                        {
                            ret = pa.total ?? default(decimal);
                        }
                    }
                }
                else
                {
                    foreach (Subproducto subprod in subproductos)
                    {
                        ret += subprod.costo ?? default(decimal);
                    }
                }
                producto.costo = ret;
                ProductoDAO.guardarProducto(producto, false);
                break;

            case 4:
                Subproducto subproducto = SubproductoDAO.getSubproductoPorId(objetoId);
                if (actividades != null && actividades.Count > 0)
                {
                    subproducto.costo = ret;
                    SubproductoDAO.guardarSubproducto(subproducto, false);
                }
                break;

            case 5:
                Actividad actividad = ActividadDAO.GetActividadPorId(objetoId);
                if (actividades != null && actividades.Count > 0)
                {
                    actividad.costo = ret;
                    ActividadDAO.guardarActividad(actividad, false);
                }
                break;
            }
        }
示例#2
0
        public static Proyecto crearEditarProyecto(JObject unidad, Prestamo prestamo, String usuario, JArray est_unidadesEjecutoras, int existeData)
        {
            Proyecto ret               = null;
            int      esCoordinador     = 0;
            DateTime fechaElegibilidad = default(DateTime);
            DateTime fechaCierre       = default(DateTime);

            for (int j = 0; j < est_unidadesEjecutoras.Count; j++)
            {
                JObject unidad_ = (JObject)est_unidadesEjecutoras[j];
                if (unidad["ejercicio"].ToString().Equals(unidad_["ejercicio"].ToString()) &&
                    unidad["entidad"].ToString().Equals(unidad_["entidadId"].ToString()) &&
                    (unidad["id"].ToString().Equals(unidad_["id"].ToString()) || Convert.ToInt32(unidad_["id"].ToString()) == 205))
                {
                    esCoordinador     = (bool)unidad_["esCoordinador"] == true ? 1 : 0;
                    fechaElegibilidad = unidad_["fechaElegibilidad"].ToString() != "" ? (DateTime)unidad_["fechaElegibilidad"] : default(DateTime);
                    fechaCierre       = unidad_["fechaCierre"].ToString() != "" ? (DateTime)unidad_["fechaCierre"] : default(DateTime);
                    break;
                }
            }

            UnidadEjecutora unidadEjecutora = UnidadEjecutoraDAO.getUnidadEjecutora(
                Convert.ToInt32(unidad["ejercicio"].ToString()),
                Convert.ToInt32(unidad["entidad"].ToString()),
                Convert.ToInt32(unidad["id"].ToString()));

            if (unidadEjecutora != null)
            {
                Proyecto proyecto = null;
                if (existeData == 0)
                {
                    ProyectoTipo     proyectoTipo     = ProyectoTipoDAO.getProyectoTipoPorId(1);
                    AcumulacionCosto acumulacionCosto = AcumulacionCostoDAO.getAcumulacionCostoById(3);

                    proyecto = new Proyecto();
                    proyecto.acumulacionCostos  = acumulacionCosto;
                    proyecto.acumulacionCostoid = acumulacionCosto.id;
                    proyecto.proyectoClase      = 1;
                    proyecto.prestamos          = prestamo;
                    proyecto.prestamoid         = prestamo.id;
                    proyecto.proyectoTipos      = proyectoTipo;
                    proyecto.proyectoTipoid     = proyectoTipo.id;
                    proyecto.unidadEjecutoras   = unidadEjecutora;
                    proyecto.ueunidadEjecutora  = unidadEjecutora.unidadEjecutora;
                    proyecto.nombre             = prestamo.numeroPrestamo + " - " + unidadEjecutora.nombre;
                    proyecto.usuarioCreo        = usuario;
                    proyecto.fechaCreacion      = DateTime.Now;
                    proyecto.estado             = 1;
                    proyecto.fechaInicio        = prestamo.fechaSuscripcion;
                    proyecto.fechaFin           = prestamo.fechaSuscripcion;
                    proyecto.duracion           = 1;
                    proyecto.duracionDimension  = "d";
                    proyecto.nivel = 0;
                    proyecto.ejecucionFisicaReal = 0;
                    proyecto.projectCargado      = 0;
                    proyecto.coordinador         = esCoordinador;
                    proyecto.fechaElegibilidad   = fechaElegibilidad;
                    proyecto.fechaCierre         = fechaCierre;
                    proyecto.unidadEjecutoras    = unidadEjecutora;
                    proyecto.ejercicio           = unidadEjecutora.ejercicio;
                    proyecto.entidad             = unidadEjecutora.entidadentidad;
                }
                else
                {
                    proyecto                    = ProyectoDAO.getProyectoPorUnidadEjecutora(unidadEjecutora.unidadEjecutora, prestamo.id, unidadEjecutora.entidadentidad);
                    proyecto.coordinador        = esCoordinador;
                    proyecto.fechaElegibilidad  = fechaElegibilidad;
                    proyecto.fechaCierre        = fechaCierre;
                    proyecto.fechaActualizacion = DateTime.Now;
                    proyecto.usuarioActualizo   = usuario;
                    proyecto.unidadEjecutoras   = unidadEjecutora;
                }

                return(ProyectoDAO.guardarProyecto(proyecto, false) ? proyecto : null);
            }

            return(ret);
        }