示例#1
0
        public IActionResult ObjetoPorId(int objetoId, int objetoTipo)
        {
            try
            {
                String nombre      = "";
                String tiponombre  = "";
                String fechaInicio = "";
                switch (objetoTipo)
                {
                case 0:     //Proyecto;
                    tiponombre = "Proyecto";
                    Proyecto proyecto = ProyectoDAO.getProyectoPorId(objetoId, User.Identity.Name);
                    nombre      = (proyecto != null) ? proyecto.nombre : "";
                    fechaInicio = Utils.getFechaHoraNull(proyecto.fechaInicio);
                    break;

                case 1:     //Componente;
                    tiponombre = "Componente";
                    Componente componente = ComponenteDAO.getComponentePorId(objetoId, User.Identity.Name);
                    nombre      = (componente != null) ? componente.nombre : "";
                    fechaInicio = Utils.getFechaHoraNull(componente.fechaInicio);
                    break;

                case 2:     //Subcomponente;
                    tiponombre = "Subcomponente";
                    Subcomponente subcomponente = SubComponenteDAO.getSubComponentePorId(objetoId, User.Identity.Name);
                    nombre      = (subcomponente != null) ? subcomponente.nombre: "";
                    fechaInicio = Utils.getFechaHoraNull(subcomponente.fechaInicio);
                    break;

                case 3:     //Producto
                    tiponombre = "Producto";
                    Producto producto = ProductoDAO.getProductoPorId(objetoId, User.Identity.Name);
                    nombre      = (producto != null) ? producto.nombre : "";
                    fechaInicio = Utils.getFechaHoraNull(producto.fechaInicio);
                    break;

                case 4:     //Subproducto
                    tiponombre = "Subproducto";
                    Subproducto subproducto = SubproductoDAO.getSubproductoPorId(objetoId, User.Identity.Name);
                    nombre      = (subproducto != null) ? subproducto.nombre : "";
                    fechaInicio = Utils.getFechaHoraNull(subproducto.fechaInicio);
                    break;

                case 5:     //Actividad
                    tiponombre = "Actividad";
                    Actividad actividad = ActividadDAO.GetActividadPorId(objetoId);
                    nombre      = (actividad != null) ? actividad.nombre : "";
                    fechaInicio = Utils.getFechaHoraNull(actividad.fechaInicio);
                    break;
                }

                return(Ok(new { success = true, nombre = nombre, tiponombre = tiponombre, fechaInicio = fechaInicio }));
            }
            catch (Exception e)
            {
                CLogger.write("1", "ObjectoController.class", e);
                return(BadRequest(500));
            }
        }
        public static decimal calcularCosto(Subcomponente subcomponente)
        {
            decimal costo = decimal.Zero;

            try
            {
                List <Producto>  productos   = ProductoDAO.getProductosBySubComponente(subcomponente.id);
                List <Actividad> actividades = ActividadDAO.GetActividadesPorObjeto(subcomponente.id, 2);
                if ((productos != null && productos.Count > 0) || (actividades != null && actividades.Count > 0))
                {
                    if (productos != null)
                    {
                        foreach (Producto producto in productos)
                        {
                            costo += Decimal.Add(costo, producto.costo ?? default(decimal));
                        }
                    }

                    if (actividades != null && actividades.Count > 0)
                    {
                        foreach (Actividad actividad in actividades)
                        {
                            costo += Decimal.Add(costo, actividad.costo ?? default(decimal));
                        }
                    }
                }
                else
                {
                    PlanAdquisicion pa = PlanAdquisicionDAO.getPlanAdquisicionByObjeto(2, subcomponente.id);
                    if (pa != null)
                    {
                        List <PlanAdquisicionPago> lstpagos = PlanAdquisicionPagoDAO.getPagosByPlan(Convert.ToInt32(pa.id));
                        if (lstpagos != null && lstpagos.Count > 0)
                        {
                            decimal pagos = decimal.Zero;
                            foreach (PlanAdquisicionPago pago in lstpagos)
                            {
                                pagos += Decimal.Add(pagos, pago.pago ?? default(decimal));
                            }
                            costo = pagos;
                        }
                        else
                        {
                            costo = pa.montoContrato;
                        }
                    }
                    else
                    {
                        costo = subcomponente.costo ?? default(decimal);
                    }
                }
            }
            catch (Exception e)
            {
                CLogger.write("16", "Subcomponente.class", e);
            }

            return(costo);
        }
        public static bool eliminarSubComponente(Subcomponente subComponente)
        {
            bool ret = false;

            try{
                subComponente.estado = 0;
                subComponente.orden  = null;
                ret = guardarSubComponente(subComponente, false);
            }
            catch (Exception e) {
                CLogger.write("4", "SubComponenteDAO.class", e);
            }
            return(ret);
        }
        /*public static Subcomponente getSubComponenteInicial(Integer componenteId, String usuario, Session session){
         *  Subcomponente ret = null;
         *  List<Subcomponente> listRet = null;
         *  try{
         *      String query = "FROM Subcomponente c where c.estado=1 and c.orden=1 and c.componente.id=:componenteId and c.usuarioCreo=:usuario";
         *      Query<Subcomponente> criteria = session.createQuery(query, Subcomponente.class);
         *      criteria.setParameter("componenteId", componenteId);
         *      criteria.setParameter("usuario", usuario);
         *      listRet = criteria.getResultList();
         *
         *      ret = !listRet.isEmpty() ? listRet.get(0) : null;
         *  } catch(Throwable e){
         *      CLogger.write("10", SubComponenteDAO.class, e);
         *      session.getTransaction().rollback();
         *      session.close();
         *  }
         *  return ret;
         * }
         *
         * /*public static Subcomponente getSubComponenteFechaMaxima(Integer componenteId, String usuario, Session session){
         *  Subcomponente ret = null;
         *  List<Subcomponente> listRet = null;
         *  try{
         *      String query = "FROM Subcomponente c where c.estado=1 and c.componente.id=:componenteId and c.usuarioCreo=:usuario order by c.fechaFin desc";
         *      Query<Subcomponente> criteria = session.createQuery(query, Subcomponente.class);
         *      criteria.setMaxResults(1);
         *      criteria.setParameter("componenteId", componenteId);
         *      criteria.setParameter("usuario", usuario);
         *
         *      listRet = criteria.getResultList();
         *
         *      ret = !listRet.isEmpty() ? listRet.get(0) : null;
         *  }catch (NoResultException e){
         *
         *  } catch(Throwable e){
         *      CLogger.write("11", SubComponenteDAO.class, e);
         *      session.getTransaction().rollback();
         *      session.close();
         *  }
         *  return ret;
         * }
         *
         * public static List<Subcomponente> getSubComponentesOrden(Integer componenteId, String usuario, Session session){
         *  List<Subcomponente> ret = null;
         *  try{
         *      String query = String.join(" ", "SELECT c FROM Subcomponente c where c.estado=1 and c.componente.id=:componenteId");
         *      query = String.join(" ", query, "AND c.id in (SELECT u.id.subcomponenteid from SubcomponenteUsuario u where u.id.usuario=:usuario)");
         *      Query<Subcomponente> criteria = session.createQuery(query,Subcomponente.class);
         *      criteria.setParameter("componenteId", componenteId);
         *      criteria.setParameter("usuario", usuario);
         *      ret = criteria.getResultList();
         *  }catch(Throwable e){
         *      CLogger.write("12", SubComponenteDAO.class, e);
         *      session.getTransaction().rollback();
         *      session.close();
         *  }
         *  return ret;
         * }
         *
         * public static Subcomponente getSubComponentePorIdOrden(int id, String usuario, Session session){
         *  Subcomponente ret = null;
         *  List<Subcomponente> listRet = null;
         *  try{
         *      Query<Subcomponente> criteria = session.createQuery("FROM Subcomponente where id=:id AND id in (SELECT u.id.subcomponenteid from SubcomponenteUsuario u where u.id.usuario=:usuario )", Subcomponente.class);
         *      criteria.setParameter("id", id);
         *      criteria.setParameter("usuario", usuario);
         *      listRet = criteria.getResultList();
         *
         *       ret = !listRet.isEmpty() ? listRet.get(0) : null;
         *  } catch(Throwable e){
         *      CLogger.write("13", SubComponenteDAO.class, e);
         *      session.getTransaction().rollback();
         *      session.close();
         *  }
         *  return ret;
         * }
         *
         * public static boolean guardarSubComponenteOrden(Subcomponente SubComponente, Session session){
         *  boolean ret = false;
         *  try{
         *      session.saveOrUpdate(SubComponente);
         *      session.flush();
         *      session.clear();
         *      ret = true;
         *  }
         *  catch(Throwable e){
         *      CLogger.write("14", SubComponenteDAO.class, e);
         *      session.getTransaction().rollback();
         *      session.close();
         *  }
         *  return ret;
         * }*/

        public static Subcomponente getSubComponente(int id)
        {
            Subcomponente ret = null;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    ret = db.QueryFirstOrDefault <Subcomponente>("SELECT * FROM subcomponente WHERE id=:id AND estado=1", new { id = id });
                }
            }
            catch (Exception e)
            {
                CLogger.write("15", "SubComponenteDAO.class", e);
            }
            return(ret);
        }
        public static bool eliminarTotalSubComponente(Subcomponente subComponente)
        {
            bool ret = false;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    int eliminado = db.Execute("DELETE FROM subcomponente WHERE id=:id", new { id = subComponente.id });

                    ret = eliminado > 0 ? true : false;
                }
            }
            catch (Exception e)
            {
                CLogger.write("5", "SubComponenteDAO.class", e);
            }
            return(ret);
        }
        public static Subcomponente getSubComponentePorId(int id, String usuario)
        {
            Subcomponente ret = null;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    string query = String.Join(" ", "SELECT * FROM subcomponente WHERE id=:id",
                                               usuario != null ? "AND id IN (SELECT u.subcomponenteid FROM subcomponente_usuario u WHERE u.usuario=:usuario)" : "");

                    ret = db.QueryFirstOrDefault <Subcomponente>(query, new { id = id, usuario = usuario });
                }
            }
            catch (Exception e)
            {
                CLogger.write("2", "SubComponenteDAO.class", e);
            }
            return(ret);
        }
示例#7
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);
        }
        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);
        }
示例#9
0
        public IActionResult InformacionTarea([FromBody] dynamic value)
        {
            try
            {
                int    objetoId   = value.objetoId != null ? (int)value.objetoId : 0;
                int    objetoTipo = value.objetoTipo != null ? (int)value.objetoTipo : 0;
                String lineaBase  = value.lineaBase;
                String rol        = value.rol;

                Stinformacion informacion = new Stinformacion();
                switch (objetoTipo)
                {
                case 0:
                    Proyecto proyecto = ProyectoDAO.getProyectoPorId(objetoId, User.Identity.Name);
                    informacion.nombreTarea = proyecto.nombre;
                    break;

                case 1:
                    Componente componente = ComponenteDAO.getComponentePorId(objetoId, User.Identity.Name);
                    informacion.nombreTarea = componente.nombre;
                    break;

                case 2:
                    Subcomponente subcomponente = SubComponenteDAO.getSubComponentePorId(objetoId, User.Identity.Name);
                    informacion.nombreTarea = subcomponente.nombre;
                    break;

                case 3:
                    Producto producto = ProductoDAO.getProductoPorId(objetoId, User.Identity.Name);
                    informacion.nombreTarea = producto.nombre;
                    break;

                case 4:
                    Subproducto subproducto = SubproductoDAO.getSubproductoPorId(objetoId, User.Identity.Name);
                    informacion.nombreTarea = subproducto.nombre;
                    break;

                case 5:
                    Actividad actividad = ActividadDAO.GetActividadPorId(objetoId);
                    informacion.nombreTarea = actividad.nombre;
                    break;
                }

                AsignacionRaci asignacion = AsignacionRaciDAO.getAsignacionPorRolTarea(objetoId, objetoTipo, rol, lineaBase);
                asignacion.colaboradors          = ColaboradorDAO.getColaborador(Convert.ToInt32(asignacion.id));
                asignacion.colaboradors.usuarios = UsuarioDAO.getUsuario(User.Identity.Name);

                if (rol.ToLower().Equals("R"))
                {
                    informacion.rol = "Responsable";
                }
                else if (rol.ToLower().Equals("a"))
                {
                    informacion.rol = "Cuentadante";
                }
                else if (rol.ToLower().Equals("c"))
                {
                    informacion.rol = "Consultor";
                }
                else if (rol.ToLower().Equals("i"))
                {
                    informacion.rol = "Quien informa";
                }

                informacion.nombreColaborador = String.Join(" ", asignacion.colaboradors.pnombre,
                                                            asignacion.colaboradors.snombre != null ? asignacion.colaboradors.snombre : "",
                                                            asignacion.colaboradors.papellido,
                                                            asignacion.colaboradors.sapellido != null ? asignacion.colaboradors.sapellido : "");

                informacion.estadoColaborador = asignacion.colaboradors.estado == 1 ? "Alta" : "Baja";
                informacion.email             = asignacion.colaboradors.usuarios != null ? asignacion.colaboradors.usuarios.email : "";

                return(Ok(new { success = true, informacion = informacion }));
            }
            catch (Exception e)
            {
                CLogger.write("2", "MatrizRaciController.class", e);
                return(BadRequest(500));
            }
        }