public static bool guardarSubComponente(Subcomponente SubComponente, bool calcular_valores_agregados) { bool ret = false; int guardado = 0; try { using (DbConnection db = new OracleContext().getConnection()) { if (SubComponente.id < 1) { int sequenceId = db.ExecuteScalar <int>("SELECT seq_subcomponente.nextval FROM DUAL"); SubComponente.id = sequenceId; guardado = db.Execute("INSERT INTO SUBCOMPONENTE VALUES (:id, :nombre, :descripcion, :componenteid, :subcomponenteTipoid, :usuarioCreo, " + ":usuarioActualizo, :fechaCreacion, :fechaActualizacion, :estado, :ueunidadEjecutora, :snip, :programa, :subprograma, :proyecto, :actividad, " + ":obra, :latitud, :longitud, :costo, :acumulacionCostoid, :renglon, :ubicacionGeografica, :fechaInicio, :fechaFin, :duracion, :duracionDimension, " + ":orden, :treePath, :nivel, :entidad, :ejercicio, :fechaInicioReal, :fechaFinReal, :inversionNueva)", SubComponente); if (guardado > 0) { Componente componente = ComponenteDAO.getComponente(SubComponente.componenteid); SubComponente.componentes = componente; SubComponente.treepath = SubComponente.componentes.treepath + "" + (10000000 + SubComponente.id); } } guardado = db.Execute("UPDATE SUBCOMPONENTE SET nombre=:nombre, descripcion=:descripcion, componenteid=:componenteid, subcomponente_tipoid=:subcomponenteTipoid, " + "usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, fecha_actualizacion=:fechaActualizacion, estado=:estado, " + "ueunidad_ejecutora=:ueunidadEjecutora, snip=:snip, programa=:programa, subprograma=:subprograma, proyecto=:proyecto, actividad=:actividad, obra=:obra, " + "latitud=:latitud, longitud=:longitud, costo=:costo, acumulacion_costoid=:acumulacionCostoid, renglon=:renglon, ubicacion_geografica=:ubicacionGeografica, " + "fecha_inicio=:fechaInicio, fecha_fin=:fechaFin, duracion=:duracion, duracion_dimension=:duracionDimension, orden=:orden, treePath=:treePath, nivel=:nivel, " + "entidad=:entidad, ejercicio=:ejercicio, fecha_inicio_real=:fechaInicioReal, fecha_fin_real=:fechaFinReal, inversion_nueva=:inversionNueva WHERE id=:id", SubComponente); if (guardado > 0) { SubcomponenteUsuario cu = new SubcomponenteUsuario(); cu.subcomponentes = SubComponente; cu.subcomponenteid = SubComponente.id; cu.usuario = SubComponente.usuarioCreo; cu.usuarioCreo = SubComponente.usuarioCreo; int existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM SUBCOMPONENTE_USUARIO WHERE subcomponenteid=:id AND usuario=:usuario", new { id = cu.subcomponenteid, usuario = cu.usuario }); if (existe > 0) { guardado = db.Execute("UPDATE SUBCOMPONENTE_USUARIO SET usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, " + "fecha_actualizacion=:fechaActualizacion WHERE subcomponenteid=:subcomponenteid AND usuario=:usuario", cu); } else { guardado = db.Execute("INSERT INTO SUBCOMPONENTE_USUARIO VALUES (:subcomponenteid, :usuario, :usuarioCreo, :usuarioActualizo, :fechaCreacion, " + ":fechaActualizacion)", cu); } if (guardado > 0 && SubComponente.usuarioCreo.Equals("admin")) { SubcomponenteUsuario cu_admin = new SubcomponenteUsuario(); cu_admin.subcomponentes = SubComponente; cu_admin.subcomponenteid = SubComponente.id; cu_admin.usuario = "admin"; cu_admin.usuarioCreo = SubComponente.usuarioCreo; existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM SUBCOMPONENTE_USUARIO WHERE subcomponenteid=:id AND usuario=:usuario", new { id = cu_admin.subcomponenteid, usuario = cu.usuario }); if (existe > 0) { guardado = db.Execute("UPDATE SUBCOMPONENTE_USUARIO SET usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, " + "fecha_actualizacion=:fechaActualizacion WHERE subcomponenteid=:subcomponenteid AND usuario=:usuario", cu_admin); } else { guardado = db.Execute("INSERT INTO SUBCOMPONENTE_USUARIO VALUES (:subcomponenteid, :usuario, :usuarioCreo, :usuarioActualizo, :fechaCreacion, :fechaActualizacion)", cu_admin); } } if (guardado > 0 && calcular_valores_agregados) { ProyectoDAO.calcularCostoyFechas(Convert.ToInt32(SubComponente.treepath.Substring(0, 8)) - 10000000); } ret = guardado > 0 ? true : false; } } } catch (Exception e) { CLogger.write("3", "SubComponenteDAO.class", e); } return(ret); }
/* * public static class EstructuraPojo { * public Integer id; * public String nombre; * public String descripcion; * public Integer idProducto; * public String producto; * public Integer idSubproductoTipo; * public String subProductoTipo; * public Integer unidadEjecutora; * public String nombreUnidadEjecutora; * public String entidadnombre; * public Integer entidadentidad; * public Integer ejercicio; * public Long snip; * public Integer programa; * public Integer subprograma; * public Integer proyecto_; * public Integer actividad; * public Integer obra; * public Integer renglon; * public Integer ubicacionGeografica; * public Integer duracion; * public String duracionDimension; * public String fechaInicio; * public String fechaFin; * public Integer estado; * public String fechaCreacion; * public String usuarioCreo; * public String fechaActualizacion; * public String usuarioActualizo; * public String latitud; * public String longitud; * public BigDecimal costo; * public Integer acumulacionCosto; * public String acumulacionCostoNombre; * public boolean tieneHijos; * public String fechaInicioReal; * public String fechaFinReal; * public Integer congelado; * public String fechaElegibilidad; * public String fechaCierre; * public Integer inversionNueva; * } * * public static List<Subproducto> getSubproductos(String usuario) { * List<Subproducto> ret = new ArrayList<Subproducto>(); * Session session = CHibernateSession.getSessionFactory().openSession(); * try { * Query<Subproducto> criteria = session.createQuery("FROM Subproducto p where p.id in (SELECT u.id.subproductoid from SubproductoUsuario u where u.id.usuario=:usuario )", Subproducto.class); * criteria.setParameter("usuario", usuario); * ret = (List<Subproducto>)criteria.getResultList(); * } catch (Throwable e) { * CLogger.write("1", SubproductoDAO.class, e); * } finally { * session.close(); * } * return ret; * } * * public static Subproducto getSubproductoPorId(int id, String usuario) { * Session session = CHibernateSession.getSessionFactory().openSession(); * Subproducto ret = null; * try { * List<Subproducto> listRet = null; * String Str_query = String.join(" ","Select sp FROM Subproducto sp", * "where id=:id"); * String Str_usuario = ""; * if(usuario != null){ * Str_usuario = String.join(" ", "AND id in (SELECT u.id.subproductoid from SubproductoUsuario u where u.id.usuario=:usuario )"); * } * * Str_query = String.join(" ", Str_query, Str_usuario); * Query<Subproducto> criteria = session.createQuery(Str_query, Subproducto.class); * criteria.setParameter("id", id); * if(usuario != null){ * criteria.setParameter("usuario", usuario); * } * listRet=criteria.getResultList(); * ret =!listRet.isEmpty() ? listRet.get(0) : null; * } catch (Throwable e) { * CLogger.write("2", SubproductoDAO.class, e); * } finally { * session.close(); * } * return ret; * }*/ public static bool guardarSubproducto(Subproducto subproducto, bool calcular_valores_agregados) { bool ret = false; int guardado = 0; try { using (DbConnection db = new OracleContext().getConnection()) { if (subproducto.id < 1) { int sequenceId = db.ExecuteScalar <int>("SELECT seq_subproducto.nextval FROM DUAL"); subproducto.id = sequenceId; guardado = db.Execute("INSERT INTO SUBPRODUCTO VALUES (:id, :nombre, :descripcion, :usuarioCreo, :usuarioActualizo, :fechaCreacion, :fechaActualizacion, " + ":estado, :snip, :programa, :subprograma, :proyecto, :actividad, :obra, :productoid, :subproductoTipoid, :ueunidadEjecutora, :latitud, :longitud, " + ":costo, :acumulacionCostoid, :renglon, :ubicacionGeografica, :fechaInicio, :fechaFin, :duracion, :duracionDimension, :orden, :treePath, :nivel, " + ":ejercicio, :entidad, :fechaInicioReal, :fechaFinFeal, :inversionNueva)", subproducto); if (guardado > 0) { subproducto.treepath = subproducto.productos.treepath + "" + (10000000 + subproducto.id); } } guardado = db.Execute("UPDATE subproducto SET nombre=:nombre, descripcion=:descripcion, usuario_creo=:usuarioCreo, usuario_actualizo=:usuario_actualizo, " + "fecha_creacion=:fechaCreacion, fecha_actualizacion=:fechaActualizacion, estado=:estado, snip=:snip, programa=:programa, subprograma=:subprograma, " + "proyecto=:proyecto, actividad=:actividad, obra=:obra, productoid=:productoid, subproducto_tipoid=:subproductoTipoid, ueunidad_ejecutora=:ueunidadEjecutora, " + "latitud=:latitud, longitud=:longitud, costo=:costo, acumulacion_costoid=:acumulacionCostoid, renglon=:renglon, ubicacion_geografica=:ubicacionGeografica, " + "fecha_inicio=:fechaInicio, fecha_fin=:fechaFin, duracion=:duracion, duracion_dimension=:duracionDimension, orden=:orden, treePath=:treePath, " + "nivel=:nivel, ejercicio=:ejercicio, entidad=:entidad, fecha_inicio_real=:fechaInicioReal, fecha_fin_real=:fechaFinReal, inversion_nueva=:inversionNueva WHERE id=:id", subproducto); if (guardado > 0) { Usuario usu = UsuarioDAO.getUsuario(subproducto.usuarioCreo); SubproductoUsuario su = new SubproductoUsuario(); su.subproductos = subproducto; su.subproductoid = subproducto.id; su.usuario = subproducto.usuarioCreo; su.usuarioCreo = subproducto.usuarioCreo; su.fechaCreacion = subproducto.fechaCreacion; int existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM SUBPRODUCTO_USUARIO WHERE subproductoid=:id AND usuario=:usuario", su); if (existe > 0) { guardado = db.Execute("UPDATE SUBPRODUCTO_USUARIO SET usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, " + "fecha_actualizacion=:fechaActualizacion WHERE subproductoid=:subproductoid AND usuario=:usuario", su); } else { guardado = db.Execute("INSERT INTO SUBPRODUCTO_USUARIO VALUES (:subproductoid, :usuario, :usuarioCreo, :usuarioActualizo, " + ":fechaCreacion, :fechaActualizacion)", su); } if (guardado > 0 && !subproducto.usuarioCreo.Equals("admin")) { SubproductoUsuario su_admin = new SubproductoUsuario(); su_admin.subproductos = subproducto; su_admin.subproductoid = subproducto.id; su_admin.usuario = "admin"; su_admin.usuarioCreo = subproducto.usuarioCreo; su_admin.fechaCreacion = subproducto.fechaCreacion; existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM SUBPRODUCTO_USUARIO WHERE subproductoid=:id AND usuario=:usuario", su_admin); if (existe > 0) { guardado = db.Execute("UPDATE SUBPRODUCTO_USUARIO SET usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, " + "fecha_actualizacion=:fechaActualizacion WHERE subproductoid=:subproductoid AND usuario=:usuario", su_admin); } else { guardado = db.Execute("INSERT INTO SUBPRODUCTO_USUARIO VALUES (:subproductoid, :usuario, :usuarioCreo, :usuarioActualizo, " + ":fechaCreacion, :fechaActualizacion)", su_admin); } } if (calcular_valores_agregados) { ProyectoDAO.calcularCostoyFechas(Convert.ToInt32(subproducto.treepath.Substring(0, 8)) - 10000000); } ret = true; } } } catch (Exception e) { CLogger.write("3", "SubproductoDAO.class", e); } return(ret); }
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 bool guardarActividad(Actividad Actividad, bool calcular_valores_agregados) { bool ret = false; int guardado = 0; try { using (DbConnection db = new OracleContext().getConnection()) { if (Actividad.id < 1) { int sequenceId = db.ExecuteScalar <int>("SELECT seq_actividad.nextval FROM DUAL"); Actividad.id = sequenceId; guardado = db.Execute("INSERT INTO ACTIVIDAD VALUES (:id, :nombre, :descripcion, :fechaInicio, :fechaFin, :porcentajeAvance, :usuarioCreo, " + ":usuarioActualizo, :fechaCreacion, :fechaActualizacion, :estado, :actividadTipoid, :snip, :programa, :subprograma, :proyecto, :actividad, " + ":obra, :objetoId, :objetoTipo, :duracion, :duracionDimension, :predObjetoId, :predObjetoTipo, :latitud, :longitud, :costo, :acumulacionCosto, " + ":renglon, :ubicacionGeografica, :orden, :treePath, :nivel, :proyectoBase, :componenteBase, :productoBase, :fechaInicioReal, :fechaFinReal, " + ":inversionNueva)", Actividad); if (guardado > 0) { switch (Actividad.objetoTipo) { case 0: Proyecto proyecto = ProyectoDAO.getProyecto(Convert.ToInt32(Actividad.objetoId)); Actividad.treepath = proyecto.treepath + "" + (10000000 + Actividad.id); break; case 1: Componente componente = ComponenteDAO.getComponente(Convert.ToInt32(Actividad.objetoId)); Actividad.treepath = componente.treepath + "" + (10000000 + Actividad.id); break; case 2: Subcomponente subcomponente = SubComponenteDAO.getSubComponente(Convert.ToInt32(Actividad.objetoId)); Actividad.treepath = subcomponente.treepath + "" + (10000000 + Actividad.id); break; case 3: Producto producto = ProductoDAO.getProductoPorId(Convert.ToInt32(Actividad.objetoId)); Actividad.treepath = producto.treepath + "" + (10000000 + Actividad.id); break; case 4: Subproducto subproducto = SubproductoDAO.getSubproductoPorId(Convert.ToInt32(Actividad.objetoId)); Actividad.treepath = subproducto.treepath + "" + (10000000 + Actividad.id); break; case 5: Actividad actividad = ActividadDAO.getActividadPorId(Convert.ToInt32(Actividad.objetoId)); Actividad.treepath = actividad.treepath + "" + (10000000 + Actividad.id); break; } } } guardado = db.Execute("UPDATE actividad SET nombre=:nombre, descripcion=:descripcion, fecha_inicio=:fechaInicio, fecha_fin=:fechaFin, porcentaje_avance=:porcentajeAvance, " + "usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, fecha_actualizacion=:fechaActualizacion, " + "estado=:estado, actividad_tipoid=:actividadTipoid, snip=:snip, programa=:programa, subprograma=:subprograma, proyecto=:proyecto, actividad=:actividad, " + "obra=:obra, objeto_id=:objetoId, objeto_tipo=:objetoTipo, duracion=:duracion, duracion_dimension=:duracionDimension, pred_objeto_id=:predObjetoId, " + "pred_objeto_tipo=:predObjetoTipo, latitud=:latitud, longitud=:longitud, costo=:costo, acumulacion_costo=:acumulacionCosto, renglon=:renglon, " + "ubicacion_geografica=:ubicacionGeografica, orden=:orden, treePath=:treePath, nivel=:nivel, proyecto_base=:proyectoBase, componente_base=:componenteBase, " + "producto_base=:productoBase, fecha_inicio_real=:fechaInicioReal, fecha_fin_real=:fechaFinReal, inversion_nueva=:inversionNueva WHERE id=:id", Actividad); if (guardado > 0) { ActividadUsuario au = new ActividadUsuario(); au.actividads = Actividad; au.actividadid = Actividad.id; au.usuario = Actividad.usuarioCreo; au.fechaCreacion = DateTime.Now; au.usuarioCreo = Actividad.usuarioCreo; int existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM ACTIVIDAD_USUARIO WHERE actividadid=:id AND usuario=:usuario", new { id = au.actividadid, usuario = au.usuario }); if (existe > 0) { guardado = db.Execute("UPDATE ACTIVIDAD_USUARIO SET usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, " + "fecha_actualizacion=:fechaActualizacion WHERE actividadid=:actividadid AND usuario=:usuario", au); } else { guardado = db.Execute("INSERT INTO actividad_usuario(:actividadid, :usuario, :usuarioCreo, :usuarioActualizo, :fechaCreacion, :fechaActualizacion)", au); } if (guardado > 0 && !Actividad.usuarioCreo.Equals("admin")) { ActividadUsuario au_admin = new ActividadUsuario(); au_admin.actividads = Actividad; au_admin.actividadid = Actividad.id; au_admin.usuario = "admin"; au_admin.fechaCreacion = DateTime.Now; au.usuarioCreo = Actividad.usuarioCreo; existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM ACTIVIDAD_USUARIO WHERE actividadid=:id AND usuario=:usuario", new { id = au_admin.actividadid, usuario = au_admin.usuario }); if (existe > 0) { guardado = db.Execute("UPDATE ACTIVIDAD_USUARIO SET usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, " + "fecha_actualizacion=:fechaActualizacion WHERE actividadid=:actividadid AND usuario=:usuario", au_admin); } else { guardado = db.Execute("INSERT INTO actividad_usuario(:actividadid, :usuario, :usuarioCreo, :usuarioActualizo, :fechaCreacion, :fechaActualizacion)", au_admin); } } if (calcular_valores_agregados) { ProyectoDAO.calcularCostoyFechas(Convert.ToInt32(Actividad.treepath.Substring(0, 8)) - 10000000); } ret = true; } } } catch (Exception e) { CLogger.write("3", "ActividadDAO.class", e); } return(ret); }
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); }
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); }
public static List <TipoAdquisicion> getTipoAdquisicionPorObjeto(int objetoId, int objetoTipo) { List <TipoAdquisicion> ret = new List <TipoAdquisicion>(); int cooperanteCodigo = 0; switch (objetoTipo) { case 1: Componente componente = ComponenteDAO.getComponente(objetoId); Proyecto proyecto = ProyectoDAO.getProyecto(componente.proyectoid); Prestamo prestamo = PrestamoDAO.getPrestamoById(proyecto.prestamoid ?? default(int)); cooperanteCodigo = prestamo.cooperantecodigo ?? default(int); break; case 2: Subcomponente subcomponente = SubComponenteDAO.getSubComponente(objetoId); proyecto = ProyectoDAO.getProyectobyTreePath(subcomponente.treepath); prestamo = PrestamoDAO.getPrestamoById(proyecto.prestamoid ?? default(int)); cooperanteCodigo = subcomponente.componentes.proyectos.prestamos.cooperantes.codigo; break; case 3: Producto producto = ProductoDAO.getProductoPorId(objetoId); if (producto.componentes != null) { cooperanteCodigo = producto.componentes.proyectos.prestamos.cooperantes.codigo; } else if (producto.subcomponentes != null) { cooperanteCodigo = producto.subcomponentes.componentes.proyectos.prestamos.cooperantes.codigo; } break; case 4: Subproducto subproducto = SubproductoDAO.getSubproductoPorId(objetoId); if (subproducto.productos.componentes != null) { cooperanteCodigo = subproducto.productos.componentes.proyectos.prestamos.cooperantes.codigo; } else if (subproducto.productos.subcomponentes != null) { cooperanteCodigo = subproducto.productos.subcomponentes.componentes.proyectos.prestamos.cooperantes.codigo; } break; case 5: Actividad actividad = ActividadDAO.GetActividadPorId(objetoId); if (actividad.treepath != null) { int proyectoId = Convert.ToInt32(actividad.treepath.Substring(0, 8)) - 10000000; if (proyectoId != 0) { cooperanteCodigo = ProyectoDAO.getProyecto(proyectoId).prestamos.cooperantes.codigo; } } break; } try { using (DbConnection db = new OracleContext().getConnection()) { String str_query = "SELECT * FROM TIPO_ADQUISICION ta WHERE ta.cooperantecodigo=:codigo AND ta.estado=1"; ret = db.Query <TipoAdquisicion>(str_query, new { codigo = cooperanteCodigo }).AsList <TipoAdquisicion>(); } } catch (Exception e) { CLogger.write("4", "TipoAdquisicionDAO.class", e); } return(ret); }
public static bool guardarProducto(Producto producto, bool calcular_valores_agregados) { bool ret = false; int guardado = 0; try { using (DbConnection db = new OracleContext().getConnection()) { if (producto.id < 1) { int sequenceId = db.ExecuteScalar <int>("SELECT seq_producto.nextval FROM DUAL"); producto.id = sequenceId; guardado = db.Execute("INSERT INTO PRODUCTO VALUES (:id, :nombre, :descripcion, :componenteid, :subcomponenteid, :usuarioCreo, :usuarioActualizo, " + ":fechaCreacion, :fechaActualizacion, :productoTipoid, :estado, :ueunidadEjecutora, :snip, :programa, :subprograma, :proyecto, :actividad, :obra, " + ":latitud, :longitud, :peso, :costo, :acumulacionCostoid, :renglon, :ubicacionGeografica, :fechaInicio, :fechaFin, :duracion, :duracionDimension, :orden, " + ":treePath, :nivel, :ejercicio, :entidad, :fechaInicioReal, :fechaFinReal, :inversionNueva)", producto); if (guardado > 0 && producto.componenteid != null) { producto.componentes = ComponenteDAO.getComponente(producto.componenteid ?? default(int)); producto.treepath = producto.componentes.treepath + "" + (10000000 + producto.id); } else if (producto.subcomponenteid != null) { producto.subcomponentes = SubComponenteDAO.getSubComponente(producto.subcomponenteid ?? default(int)); producto.treepath = producto.subcomponentes.treepath + "" + (10000000 + producto.id); } } guardado = db.Execute("UPDATE producto SET nombre=:nombre, descripcion=:descripcion, componenteid=:componenteid, subcomponenteid=:subcomponenteid, " + "usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, fecha_actualizacion=:fechaActualizacion, " + "producto_tipoid=:productoTipoid, estado=:estado, ueunidad_ejecutora=:ueunidadEjecutora, snip=:snip, programa=:programa, subprograma=:subprograma, " + "proyecto=:proyecto, actividad=:actividad, obra=:obra, latitud=:latitud, longitud=:longitud, peso=:peso, costo=:costo, acumulacion_costoid=:acumulacionCostoid, " + "renglon=:renglon, ubicacion_geografica=:ubicacionGeografica, fecha_inicio=:fechaInicio, fecha_fin=:fechaFin, duracion=:duracion, duracion_dimension=:duracionDimension, " + "orden=:orden, treePath=:treePath, nivel=:nivel, ejercicio=:ejercicio, entidad=:entidad, fecha_inicio_real=:fechaInicioReal, fecha_fin_real=:fechaFinReal, inversion_nueva=:inversionNueva WHERE id=:id", producto); if (guardado > 0) { Usuario usu = UsuarioDAO.getUsuario(producto.usuarioCreo); ProductoUsuario pu = new ProductoUsuario(); pu.productos = producto; pu.productoid = producto.id; pu.usuario = usu.usuario; pu.usuarioCreo = usu.usuario; pu.fechaCreacion = DateTime.Now; int existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM PRODUCTO_USUARIO WHERE productoid=:id AND usuario=:usuario", new { id = pu.productoid, usuario = pu.usuario }); if (existe > 0) { guardado = db.Execute("UPDATE PRODUCTO_USUARIO SET usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, " + "fecha_actualizacion=:fechaActualizacion WHERE productoid=:productoid AND usuario=:usuario", pu); ret = guardado > 0 ? true : false; } else { guardado = db.Execute("INSERT INTO PRODUCTO_USUARIO VALUES (:productoid, :usuario, :usuarioCreo, :usuarioActualizo, :fechaCreacion, :fechaActualizacion)", pu); ret = guardado > 0 ? true : false; } if (guardado > 0 && !producto.usuarioCreo.Equals("admin")) { ProductoUsuario pu_admin = new ProductoUsuario(); pu_admin.productos = producto; pu_admin.productoid = producto.id; pu_admin.usuario = "admin"; pu_admin.usuarioCreo = producto.usuarioCreo; pu_admin.fechaCreacion = DateTime.Now; existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM PRODUCTO_USUARIO WHERE productoid=:id AND usuario=:usuario", new { id = pu_admin.productoid, usuario = pu_admin.usuario }); if (existe > 0) { guardado = db.Execute("UPDATE PRODUCTO_USUARIO SET usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, " + "fecha_actualizacion=:fechaActualizacion WHERE productoid=:productoid AND usuario=:usuario", pu_admin); } else { guardado = db.Execute("INSERT INTO PRODUCTO_USUARIO VALUES (:productoid, :usuario, :usuarioCreo, :usuarioActualizo, :fechaCreacion, :fechaActualizacion)", pu_admin); } } if (calcular_valores_agregados) { ret = ProyectoDAO.calcularCostoyFechas(Convert.ToInt32(producto.treepath.Substring(0, 8)) - 10000000); } } else { ret = false; } } } catch (Exception e) { CLogger.write("3", "ProductoDAO.class", e); } return(ret); }