Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }