Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /*
         * 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;
            }
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
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);
        }
        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);
        }
Esempio n. 8
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);
        }