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; } }
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); }