public static bool guardarComponente(Componente Componente, bool calcular_valores_agregados) { bool ret = false; int guardado = 0; try { using (DbConnection db = new OracleContext().getConnection()) { if (Componente.id < 1) { int sequenceId = db.ExecuteScalar <int>("SELECT seq_componente.nextval FROM DUAL"); Componente.id = sequenceId; guardado = db.Execute("INSERT INTO COMPONENTE VALUES (:id, :nombre, :descripcion, :proyectoid, :componenteTipoid, :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, :ejercicio, :entidad, :esDeSigade, :fuentePrestamo, :fuenteDonacion, :fuenteNacional, :componenteSigadeid, :fechaInicioReal, " + ":fechaFinReal, :inversionNueva)", Componente); if (guardado > 0) { Componente.treepath = Componente.proyectos.treepath + "" + (10000000 + Componente.id); } } guardado = db.Execute("UPDATE COMPONENTE SET nombre=:nombre, descripcion=:descripcion, proyectoid=:proyectoid, componente_tipoid=:componenteTipoid, " + "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, " + "ejercicio=:ejercicio, entidad=:entidad, es_de_sigade=:esDeSigade, fuente_prestamo=:fuentePrestamo, fuente_donacion=:fuenteDonacion, fuente_nacional=:fuenteNacional, " + "componente_sigadeid=:componenteSigadeid, fecha_inicio_real=:fechaInicioReal, fecha_fin_real=:fechaFinReal, inversion_nueva=:inversionNueva WHERE id=:id", Componente); if (guardado > 0) { Usuario usuario = UsuarioDAO.getUsuario(Componente.usuarioCreo); ComponenteUsuario cu = new ComponenteUsuario(); cu.componenteid = Componente.id; cu.usuario = Componente.usuarioCreo; cu.componentes = Componente; cu.usuarioCreo = usuario.usuario; int existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM COMPONENTE_USUARIO WHERE componenteid=:id AND usuario=:usuario", new { id = cu.componenteid, usuario = cu.usuario }); if (existe > 0) { guardado = db.Execute("UPDATE COMPONENTE_USUARIO SET usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, " + "fecha_actualizacion=:fechaActualizacion WHERE componenteid=:componenteid AND usuario=:usuario", cu); ret = guardado > 0 ? true : false; } else { guardado = db.Execute("INSERT INTO COMPONENTE_USUARIO VALUES (:componenteid, :usuario, :usuarioCreo, :usuarioActualizo, :fechaCreacion, :fechaActualizacion)", cu); ret = guardado > 0 ? true : false; } if (guardado > 0 && !Componente.usuarioCreo.Equals("admin")) { ComponenteUsuario cu_admin = new ComponenteUsuario(); cu_admin.componenteid = Componente.id; cu_admin.usuario = "admin"; cu_admin.componentes = Componente; cu_admin.usuarioCreo = UsuarioDAO.getUsuario("admin").usuario; existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM COMPONENTE_USUARIO WHERE componenteid=:id AND usuario=:usuario", new { id = cu_admin.componenteid, usuario = cu_admin.usuario }); if (existe > 0) { guardado = db.Execute("UPDATE COMPONENTE_USUARIO SET usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, " + "fecha_actualizacion=:fechaActualizacion WHERE componenteid=:componenteid AND usuario=:usuario", cu_admin); ret = guardado > 0 ? true : false; } else { guardado = db.Execute("INSERT INTO COMPONENTE_USUARIO VALUES (:componenteid, :usuario, :usuarioCreo, :usuarioActualizo, :fechaCreacion, :fechaActualizacion)", cu_admin); ret = guardado > 0 ? true : false; } if (guardado > 0 && calcular_valores_agregados) { ret = ProyectoDAO.calcularCostoyFechas(Convert.ToInt32(Componente.treepath.Substring(0, 8)) - 10000000); } ret = true; } } } } catch (Exception e) { CLogger.write("3", "ComponenteDAO.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); }