Esempio n. 1
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)
        {
            Subproducto ret = null;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    String Str_query   = String.Join(" ", "SELECT * FROM subproducto sp WHERE id=:id");
                    String Str_usuario = "";
                    if (usuario != null)
                    {
                        Str_usuario = String.Join(" ", "AND id in (SELECT u.subproductoid FROM subproducto_usuario u where u.usuario=:usuario)");
                    }

                    Str_query = String.Join(" ", Str_query, Str_usuario);

                    ret = db.QueryFirstOrDefault <Subproducto>(Str_query, new { id = id, usuario = usuario });
                }
            }
            catch (Exception e)
            {
                CLogger.write("2", "SubproductoDAO.class", e);
            }
            return(ret);
        }
Esempio n. 2
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 IActionResult Subproducto(int id)
        {
            try
            {
                Subproducto subproducto = SubproductoDAO.getSubproductoPorId(id);
                bool        resultado   = ObjetoDAO.borrarHijos(subproducto.treepath, 4, User.Identity.Name);

                return(Ok(new { success = resultado }));
            }
            catch (Exception e)
            {
                CLogger.write("4", "SubproductoController.class", e);
                return(BadRequest(500));
            }
        }
Esempio n. 4
0
        /*public static Long getTotalSubproductos(Integer productoid, String filtro_nombre, String filtro_usuario_creo,
         *              String filtro_fecha_creacion, String usuario) {
         *      Long ret = 0L;
         *      Session session = CHibernateSession.getSessionFactory().openSession();
         *      try {
         *
         *              String query = "SELECT count(p.id) FROM Subproducto p WHERE p.estado = 1 "
         + (productoid!=null && productoid > 0 ? "AND p.producto.id = :idProducto " : "");
         +              String query_a="";
         +              if(filtro_nombre!=null && filtro_nombre.trim().length()>0)
         +                      query_a = String.join("",query_a, " p.nombre LIKE '%",filtro_nombre,"%' ");
         +              if(filtro_usuario_creo!=null && filtro_usuario_creo.trim().length()>0)
         +                      query_a = String.join("",query_a,(query_a.length()>0 ? " OR " :""), " p.usuarioCreo LIKE '%", filtro_usuario_creo,"%' ");
         +              if(filtro_fecha_creacion!=null && filtro_fecha_creacion.trim().length()>0)
         +                      query_a = String.join("",query_a,(query_a.length()>0 ? " OR " :""), " str(date_format(p.fechaCreacion,'%d/%m/%YYYY')) LIKE '%", filtro_fecha_creacion,"%' ");
         +              query = String.join(" ", query, (query_a.length()>0 ? String.join("","AND (",query_a,")") : ""));
         +              if(usuario!=null)
         +                      query = String.join("", query, " AND p.id in (SELECT u.id.subproductoid from SubproductoUsuario u where u.id.usuario=:usuario )");
         +
         +
         +              Query<Long> conteo = session.createQuery(query,Long.class);
         +              conteo.setParameter("usuario", usuario);
         +              if (productoid!=null && productoid > 0){
         +                      conteo.setParameter("idProducto", productoid);
         +              }
         +              ret = conteo.getSingleResult();
         +      } catch (Throwable e) {
         +              CLogger.write("7", SubproductoDAO.class, e);
         +      } finally {
         +              session.close();
         +      }
         +      return ret;
         + }
         +
         + public static String getJson(int pagina, int registros,Integer componenteid, String usuario
         +              ,String filtro_nombre, String filtro_usuario_creo,
         +              String filtro_fecha_creacion, String columna_ordenada, String orden_direccion) {
         +      String jsonEntidades = "";
         +
         +      List<Subproducto> pojos = getSubproductosPagina(pagina, registros,componenteid
         +                      ,filtro_nombre, filtro_usuario_creo,filtro_fecha_creacion
         +                      ,columna_ordenada,orden_direccion,usuario);
         +
         +      List<EstructuraPojo> listaEstructuraPojos = new ArrayList<EstructuraPojo>();
         +
         +      int congelado = 0;
         +      String fechaElegibilidad = null;
         +      String fechaCierre = null;
         +
         +      if(pojos!=null && pojos.size()>0){
         +              Proyecto proyecto = ProyectoDAO.getProyectobyTreePath(pojos.get(0).getTreePath());
         +              if(proyecto!=null){
         +                      congelado = proyecto.getCongelado()!=null?proyecto.getCongelado():0;
         +                      fechaElegibilidad = Utils.formatDate(proyecto.getFechaElegibilidad());
         +                      fechaCierre = Utils.formatDate(proyecto.getFechaCierre());
         +              }
         +      }
         +
         +      for (Subproducto pojo : pojos) {
         +              EstructuraPojo estructuraPojo = new EstructuraPojo();
         +              estructuraPojo.id = pojo.getId();
         +              estructuraPojo.nombre = pojo.getNombre();
         +              estructuraPojo.descripcion = pojo.getDescripcion();
         +              estructuraPojo.programa = pojo.getPrograma();
         +              estructuraPojo.subprograma = pojo.getSubprograma();
         +              estructuraPojo.proyecto_ = pojo.getProyecto();
         +              estructuraPojo.obra = pojo.getObra();
         +              estructuraPojo.actividad = pojo.getActividad();
         +              estructuraPojo.renglon = pojo.getRenglon();
         +              estructuraPojo.ubicacionGeografica = pojo.getUbicacionGeografica();
         +              estructuraPojo.duracion = pojo.getDuracion();
         +              estructuraPojo.duracionDimension = pojo.getDuracionDimension();
         +              estructuraPojo.fechaInicio = Utils.formatDate(pojo.getFechaInicio());
         +              estructuraPojo.fechaFin = Utils.formatDate(pojo.getFechaFin());
         +              estructuraPojo.snip = pojo.getSnip();
         +              estructuraPojo.estado = pojo.getEstado();
         +              estructuraPojo.usuarioCreo = pojo.getUsuarioCreo();
         +              estructuraPojo.usuarioActualizo = pojo.getUsuarioActualizo();
         +              estructuraPojo.fechaCreacion = Utils.formatDateHour(pojo.getFechaCreacion());
         +              estructuraPojo.fechaActualizacion = Utils.formatDateHour(pojo.getFechaActualizacion());
         +              estructuraPojo.latitud = pojo.getLatitud();
         +              estructuraPojo.longitud = pojo.getLongitud();
         +              estructuraPojo.costo = pojo.getCosto();
         +              estructuraPojo.acumulacionCosto = pojo.getAcumulacionCosto() != null ? pojo.getAcumulacionCosto().getId() : null;
         +              estructuraPojo.acumulacionCostoNombre = pojo.getAcumulacionCosto() != null ? pojo.getAcumulacionCosto().getNombre() : null;
         +
         +              if (pojo.getProducto() != null) {
         +                      estructuraPojo.idProducto = pojo.getProducto().getId();
         +                      estructuraPojo.producto = pojo.getProducto().getNombre();
         +              }
         +
         +              if (pojo.getSubproductoTipo() != null) {
         +                      estructuraPojo.idSubproductoTipo = pojo.getSubproductoTipo().getId();
         +                      estructuraPojo.subProductoTipo = pojo.getSubproductoTipo().getNombre();
         +              }
         +
         +              if (pojo.getUnidadEjecutora() != null){
         +                      estructuraPojo.unidadEjecutora = pojo.getUnidadEjecutora().getId().getUnidadEjecutora();
         +                      estructuraPojo.nombreUnidadEjecutora = pojo.getUnidadEjecutora().getNombre();
         +                      estructuraPojo.entidadentidad = pojo.getUnidadEjecutora().getId().getEntidadentidad();
         +                      estructuraPojo.ejercicio = pojo.getUnidadEjecutora().getId().getEjercicio();
         +                      estructuraPojo.entidadnombre = pojo.getUnidadEjecutora().getEntidad().getNombre();
         +              }
         +              else if(pojo.getProducto().getUnidadEjecutora()!=null){
         +                      estructuraPojo.unidadEjecutora = pojo.getProducto().getUnidadEjecutora().getId().getUnidadEjecutora();
         +                      estructuraPojo.nombreUnidadEjecutora = pojo.getProducto().getUnidadEjecutora().getNombre();
         +                      estructuraPojo.entidadentidad = pojo.getProducto().getUnidadEjecutora().getId().getEntidadentidad();
         +                      estructuraPojo.ejercicio = pojo.getProducto().getUnidadEjecutora().getId().getEjercicio();
         +                      estructuraPojo.entidadnombre = pojo.getProducto().getUnidadEjecutora().getEntidad().getNombre();
         +              }
         +
         +              estructuraPojo.tieneHijos = ObjetoDAO.tieneHijos(estructuraPojo.id, 4);
         +
         +              estructuraPojo.fechaInicioReal = Utils.formatDate(pojo.getFechaInicioReal());
         +              estructuraPojo.fechaFinReal = Utils.formatDate(pojo.getFechaFinReal());
         +
         +              estructuraPojo.congelado = congelado;
         +              estructuraPojo.fechaElegibilidad = fechaElegibilidad;
         +              estructuraPojo.fechaCierre = fechaCierre;
         +              estructuraPojo.inversionNueva = pojo.getInversionNueva();
         +
         +              listaEstructuraPojos.add(estructuraPojo);
         +      }
         +
         +      jsonEntidades = Utils.getJSonString("subproductos", listaEstructuraPojos);
         +
         +      return jsonEntidades;
         + }
         +
         +      public static boolean eliminar(Integer productoId, String usuario) {
         +      boolean ret = false;
         +
         +      Subproducto pojo = getSubproductoPorId(productoId,usuario);
         +
         +      if (pojo != null) {
         +              pojo.setEstado(0);
         +              pojo.setOrden(null);
         +              Session session = CHibernateSession.getSessionFactory().openSession();
         +
         +              try {
         +                      session.beginTransaction();
         +                      session.update(pojo);
         +                      session.getTransaction().commit();
         +
         +                      ret = true;
         +
         +              } catch (Throwable e) {
         +                      CLogger.write("10", SubproductoDAO.class, e);
         +              } finally {
         +                      session.close();
         +              }
         +      }
         +      return ret;
         + }*/

        public static Subproducto getSubproductoPorId(int id)
        {
            Subproducto ret = null;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    ret = db.QueryFirstOrDefault <Subproducto>("SELECT * FROM SUBPRODUCTO WHERE id=:id", new { id = id });
                }
            }
            catch (Exception e)
            {
                CLogger.write("2", "SubproductoDAO.class", e);
            }
            return(ret);
        }
        public IActionResult ObtenerSubproductoPorId(int id)
        {
            try
            {
                Subproducto subproducto = SubproductoDAO.getSubproductoPorId(id);

                return(Ok(new
                {
                    success = true,
                    subproducto.id,
                    fechaInicio = Utils.ConvierteAFormatoFecha(subproducto.fechaInicio),
                    fechaFin = Utils.ConvierteAFormatoFecha(subproducto.fechaFin),
                    subproducto.duracion,
                    subproducto.duracionDimension,
                    subproducto.nombre
                }));
            }
            catch (Exception e)
            {
                CLogger.write("6", "SubproductoController.class", e);
                return(BadRequest(500));
            }
        }
Esempio n. 6
0
        public IActionResult Subproducto([FromBody] dynamic value)
        {
            try
            {
                SubproductoValidator validator = new SubproductoValidator();
                ValidationResult     results   = validator.Validate(value);

                if (results.IsValid)
                {
                    Subproducto subproducto = new Subproducto();

                    return(Ok());
                }
                else
                {
                    return(Ok(new { success = false }));
                }
            }
            catch (Exception e)
            {
                CLogger.write("2", "SubproductoController.class", e);
                return(BadRequest(500));
            }
        }
        public static bool actualizarNivelesPagos(String pagosString, PlanAdquisicion pa, string usuario, int objetoId, int objetoTipo)
        {
            bool ret = false;

            try
            {
                decimal bpagos      = decimal.Zero;
                bool    tiene_pagos = false;
                if (pagosString != null)
                {
                    JArray pagos = JArray.Parse(pagosString);
                    for (int j = 0; j < pagos.Count; j++)
                    {
                        JObject             objeto_pago = new JObject(new JProperty("fecha", pagos[j]), new JProperty("pago", pagos[j]));
                        DateTime            fechaPago   = (DateTime)objeto_pago["fecha"];
                        decimal             dpago       = (decimal)objeto_pago["pago"];
                        PlanAdquisicionPago pago        = new PlanAdquisicionPago();
                        pago.planAdquisicions  = pa;
                        pago.planAdquisicionid = pa.id;
                        pago.fechaPago         = fechaPago;
                        pago.pago          = dpago;
                        pago.usuarioCreo   = usuario;
                        pago.fechaCreacion = DateTime.Now;
                        pago.estado        = 1;

                        PlanAdquisicionPagoDAO.guardarPago(pago);
                        bpagos     += dpago;
                        tiene_pagos = true;
                    }
                }

                List <Actividad> actividades = ActividadDAO.GetActividadesPorObjeto(objetoId, objetoTipo);
                switch (objetoTipo)
                {
                case 3:
                    Producto           producto     = ProductoDAO.getProductoPorId(objetoId);
                    List <Subproducto> subproductos = SubproductoDAO.getSubproductosByProductoid(producto.id);
                    if (!(subproductos != null && subproductos.Count > 0) &&
                        !(actividades != null && actividades.Count > 0))
                    {
                        if (tiene_pagos)
                        {
                            producto.costo = bpagos;
                        }
                        else
                        {
                            producto.costo = pa.total;
                        }
                        ProductoDAO.guardarProducto(producto, true);
                    }
                    break;

                case 4:
                    Subproducto subproducto = SubproductoDAO.getSubproductoPorId(objetoId);
                    if (!(actividades != null && actividades.Count > 0))
                    {
                        if (tiene_pagos)
                        {
                            subproducto.costo = bpagos;
                        }
                        else
                        {
                            subproducto.costo = pa.total;
                        }
                        SubproductoDAO.guardarSubproducto(subproducto, true);
                    }
                    break;

                case 5:
                    Actividad actividad = ActividadDAO.GetActividadPorId(objetoId);
                    if (!(actividades != null && actividades.Count > 0))
                    {
                        if (tiene_pagos)
                        {
                            actividad.costo = bpagos;
                        }
                        else
                        {
                            actividad.costo = pa.total;
                        }
                        ActividadDAO.guardarActividad(actividad, true);
                    }
                    break;
                }

                ret = true;
            }
            catch (Exception e)
            {
                CLogger.write("50", "PlanAdquisicionDAO.class", e);
            }

            return(ret);
        }
        public static void actualizarCostoPlanificadoObjeto(PlanAdquisicion pa)
        {
            decimal ret        = decimal.Zero;
            int     objetoId   = Convert.ToInt32(pa.objetoId);
            int     objetoTipo = Convert.ToInt32(pa.objetoTipo);
            List <PlanAdquisicionPago> pagos       = PlanAdquisicionPagoDAO.getPagosByPlan(Convert.ToInt32(pa.id));
            List <Actividad>           actividades = ActividadDAO.GetActividadesPorObjeto(objetoId, objetoTipo);

            foreach (Actividad actividad in actividades)
            {
                ret += actividad.costo ?? default(decimal);
            }

            switch (objetoTipo)
            {
            case 0:
                Proyecto          proyecto    = ProyectoDAO.getProyecto(objetoId);
                List <Componente> componentes = ComponenteDAO.getComponentesPorProyecto(proyecto.id);
                if (componentes == null || componentes.Count == 0)
                {
                    if (actividades == null || actividades.Count == 0)
                    {
                        if (pagos != null && pagos.Count > 0)
                        {
                            foreach (PlanAdquisicionPago pago in pagos)
                            {
                                ret += pago.pago ?? default(decimal);
                            }
                        }
                        else
                        {
                            ret = pa.total ?? default(decimal);
                        }
                    }
                }
                else
                {
                    foreach (Componente cmp in componentes)
                    {
                        ret += cmp.costo ?? default(decimal);
                    }
                }
                proyecto.costo = ret;
                ProyectoDAO.guardarProyecto(proyecto, false);
                break;

            case 1:
                Componente           componente     = ComponenteDAO.getComponente(objetoId);
                List <Producto>      productos      = ProductoDAO.getProductosByComponente(componente.id);
                List <Subcomponente> subcomponentes = SubComponenteDAO.getSubComponentesPorComponente(componente.id);
                if (productos == null || productos.Count == 0 || subcomponentes == null || subcomponentes.Count == 0)
                {
                    if (actividades == null || actividades.Count == 0)
                    {
                        if (pagos != null && pagos.Count > 0)
                        {
                            foreach (PlanAdquisicionPago pago in pagos)
                            {
                                ret += pago.pago ?? default(decimal);
                            }
                        }
                        else
                        {
                            ret = pa.total ?? default(decimal);
                        }
                    }
                }
                else
                {
                    if (productos != null)
                    {
                        foreach (Producto prod in productos)
                        {
                            ret += prod.costo ?? default(decimal);
                        }
                    }
                    if (subcomponentes != null)
                    {
                        foreach (Subcomponente subcomponente in subcomponentes)
                        {
                            ret += subcomponente.costo ?? default(decimal);
                        }
                    }
                }
                componente.costo = ret;
                ComponenteDAO.guardarComponente(componente, false);
                break;

            case 3:
                Producto           producto     = ProductoDAO.getProductoPorId(objetoId);
                List <Subproducto> subproductos = SubproductoDAO.getSubproductosByProductoid(producto.id);
                if (subproductos == null || subproductos.Count == 0)
                {
                    if (actividades == null || actividades.Count == 0)
                    {
                        if (pagos != null && pagos.Count > 0)
                        {
                            foreach (PlanAdquisicionPago pago in pagos)
                            {
                                ret += pago.pago ?? default(decimal);
                            }
                        }
                        else
                        {
                            ret = pa.total ?? default(decimal);
                        }
                    }
                }
                else
                {
                    foreach (Subproducto subprod in subproductos)
                    {
                        ret += subprod.costo ?? default(decimal);
                    }
                }
                producto.costo = ret;
                ProductoDAO.guardarProducto(producto, false);
                break;

            case 4:
                Subproducto subproducto = SubproductoDAO.getSubproductoPorId(objetoId);
                if (actividades != null && actividades.Count > 0)
                {
                    subproducto.costo = ret;
                    SubproductoDAO.guardarSubproducto(subproducto, false);
                }
                break;

            case 5:
                Actividad actividad = ActividadDAO.GetActividadPorId(objetoId);
                if (actividades != null && actividades.Count > 0)
                {
                    actividad.costo = ret;
                    ActividadDAO.guardarActividad(actividad, false);
                }
                break;
            }
        }
        public IActionResult ValidacionAsignado([FromBody] dynamic value)
        {
            try
            {
                DateTime cal       = new DateTime();
                int      ejercicio = cal.Year;
                int      id        = value.id;

                Subproducto objSubproducto = SubproductoDAO.getSubproductoPorId(id);
                Proyecto    objProyecto    = ProyectoDAO.getProyectobyTreePath(objSubproducto.treepath);
                int         entidad        = objProyecto.entidad ?? default(int);
                int         programa       = value.programa;
                int         subprograma    = value.subprograma;
                int         proyecto       = value.proyecto;
                int         actividad      = value.actividad;
                int         obra           = value.obra;
                int         renglon        = value.renglon;
                int         geografico     = value.geografico;
                decimal     asignado       = ObjetoDAO.getAsignadoPorLineaPresupuestaria(ejercicio, entidad, programa, subprograma, proyecto, actividad, obra, renglon, geografico);

                decimal planificado = decimal.Zero;
                switch (objSubproducto.acumulacionCostoid)
                {
                case 1:
                    //cal = objSubproducto.fechaInicio;
                    cal = objSubproducto.fechaInicio ?? default(DateTime);
                    int ejercicioInicial = cal.Year;
                    if (ejercicio.Equals(ejercicioInicial))
                    {
                        planificado = objSubproducto.costo ?? default(decimal);
                    }
                    break;

                case 2:
                    List <PagoPlanificado> lstPagos = PagoPlanificadoDAO.getPagosPlanificadosPorObjeto(objSubproducto.id, 4);
                    foreach (PagoPlanificado pago in lstPagos)
                    {
                        cal = pago.fechaPago;
                        int ejercicioPago = cal.Year;
                        if (ejercicio.Equals(ejercicioPago))
                        {
                            planificado += pago.pago;
                        }
                    }
                    break;

                case 3:
                    cal = objSubproducto.fechaFin ?? default(DateTime);
                    int ejercicioFinal = cal.Year;
                    if (ejercicio.Equals(ejercicioFinal))
                    {
                        planificado += objSubproducto.costo ?? default(decimal);
                    }
                    break;
                }

                bool sobrepaso = false;
                asignado = asignado - planificado;

                if (asignado.CompareTo(decimal.Zero) == -1)
                {
                    sobrepaso = true;
                }

                return(Ok(new { success = true, asignado, sobrepaso }));
            }
            catch (Exception e)
            {
                CLogger.write("10", "SubproductoController.class", e);
                return(BadRequest(500));
            }
        }
        public IActionResult SubproductoPorId(int id)
        {
            try
            {
                Subproducto subproducto = SubproductoDAO.getSubproductoPorId(id);

                if (subproducto != null)
                {
                    Stsubproducto temp = new Stsubproducto();
                    temp.id               = subproducto.id;
                    temp.nombre           = subproducto.nombre;
                    temp.descripcion      = subproducto.descripcion;
                    temp.usuarioCreo      = subproducto.usuarioCreo;
                    temp.usuarioActualizo = subproducto.usuarioActualizo;

                    temp.fechaCreacion      = Utils.ConvierteAFormatoFecha(subproducto.fechaCreacion);
                    temp.fechaActualizacion = Utils.ConvierteAFormatoFecha(subproducto.fechaActualizacion);

                    temp.estado              = subproducto.estado;
                    temp.snip                = subproducto.snip;
                    temp.programa            = subproducto.programa;
                    temp.subprograma         = subproducto.subprograma;
                    temp.proyecto            = subproducto.proyecto;
                    temp.actividad           = subproducto.actividad;
                    temp.obra                = subproducto.obra;
                    temp.renglon             = subproducto.renglon;
                    temp.ubicacionGeografica = subproducto.ubicacionGeografica;
                    temp.latitud             = subproducto.latitud;
                    temp.longitud            = subproducto.longitud;
                    temp.fechaInicio         = Utils.ConvierteAFormatoFecha(subproducto.fechaInicio);
                    temp.fechaFin            = Utils.ConvierteAFormatoFecha(subproducto.fechaFin);
                    temp.duracion            = subproducto.duracion;
                    temp.duracionDimension   = subproducto.duracionDimension;
                    temp.costo               = subproducto.costo ?? default(decimal);

                    subproducto.acumulacionCostos = AcumulacionCostoDAO.getAcumulacionCostoById(subproducto.acumulacionCostoid);
                    temp.acumulacionCostoid       = subproducto.acumulacionCostoid;
                    temp.acumulacionCostoNombre   = subproducto.acumulacionCostos.nombre;
                    temp.productoid = subproducto.productoid;

                    //subproducto.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(subproducto.ejercicio, subproducto.entidad ?? default(int), subproducto.ueunidadEjecutora);
                    subproducto.unidadEjecutoras = UnidadEjecutoraDAO.getUnidadEjecutora(subproducto.ejercicio ?? default(int), subproducto.entidad ?? default(int), subproducto.ueunidadEjecutora ?? default(int));
                    if (subproducto.unidadEjecutoras != null)
                    {
                        //subproducto.unidadEjecutoras.entidads = EntidadDAO.getEntidad(subproducto.entidad ?? default(int), subproducto.ejercicio);
                        subproducto.unidadEjecutoras.entidads = EntidadDAO.getEntidad(subproducto.entidad ?? default(int), subproducto.ejercicio ?? default(int));
                        temp.entidadnombre         = subproducto.unidadEjecutoras.entidads.nombre;
                        temp.nombreUnidadEjecutora = subproducto.unidadEjecutoras.nombre;
                        temp.entidadentidad        = subproducto.unidadEjecutoras.entidadentidad;
                    }

                    //temp.ejercicio = subproducto.ejercicio;
                    temp.ejercicio = subproducto.ejercicio ?? default(int);

                    subproducto.subproductoTipos = SubproductoTipoDAO.getSubproductoTipo(subproducto.subproductoTipoid);

                    if (subproducto.subproductoTipos != null)
                    {
                        temp.subproductoTipoid = subproducto.subproductoTipoid;
                        temp.subProductoTipo   = subproducto.subproductoTipos.nombre;
                    }

                    temp.tieneHijos      = ObjetoDAO.tieneHijos(temp.id, 4);
                    temp.fechaInicioReal = Utils.ConvierteAFormatoFecha(subproducto.fechaInicioReal);
                    temp.fechaFinReal    = Utils.ConvierteAFormatoFecha(subproducto.fechaFinReal);

                    subproducto.productos = ProductoDAO.getProductoPorId(subproducto.productoid);
                    Proyecto proyecto = ProyectoDAO.getProyectobyTreePath(subproducto.productos.treepath);

                    temp.congelado         = proyecto.congelado != null ? proyecto.congelado : 0;
                    temp.fechaElegibilidad = Utils.ConvierteAFormatoFecha(proyecto.fechaElegibilidad);
                    temp.fechaCierre       = Utils.ConvierteAFormatoFecha(proyecto.fechaCierre);

                    temp.inversionNueva = subproducto.inversionNueva;

                    return(Ok(new { success = true, subproducto = temp }));
                }
                else
                {
                    return(Ok(new { success = false }));
                }
            }
            catch (Exception e)
            {
                CLogger.write("7", "SubproductoController.class", e);
                return(BadRequest(500));
            }
        }
        public IActionResult Subproducto(int id, [FromBody] dynamic value)
        {
            try
            {
                bool resultado = false;
                SubproductoValidator validator = new SubproductoValidator();
                ValidationResult     results   = validator.Validate(value);

                if (results.IsValid)
                {
                    Subproducto subproducto = SubproductoDAO.getSubproductoPorId(id);

                    subproducto.nombre      = value.nombre;
                    subproducto.descripcion = value.descripcion;
                    subproducto.productoid  = (int)value.producto;
                    /// subproducto.subproductoPadreId = (int)value.subproductoPadre; // no hay nada de subproductopadreid
                    subproducto.subproductoTipoid = (int)value.tiposubproductoid;
                    subproducto.ueunidadEjecutora = value.unidadEjecutora != null ? (int)value.unidadEjecutora : default(int);

                    subproducto.entidad             = value.entidad != null ? (int)value.entidad : default(int);
                    subproducto.ejercicio           = value.ejercicio != null ? (int)value.ejercicio : default(int);
                    subproducto.snip                = value.snip;
                    subproducto.programa            = value.programa;
                    subproducto.subprograma         = value.subprograma;
                    subproducto.proyecto            = value.proyecto;
                    subproducto.obra                = value.obra;
                    subproducto.renglon             = value.renglon;
                    subproducto.ubicacionGeografica = value.ubicacionGeografica;
                    subproducto.actividad           = value.actividad;
                    subproducto.latitud             = value.latitud;
                    subproducto.longitud            = value.longitud;
                    subproducto.costo               = value.costo;
                    subproducto.acumulacionCostoid  = value.acumulacionCostoId;
                    subproducto.fechaInicio         = value.fechaInicio;
                    subproducto.fechaFin            = Convert.ToDateTime(value.fechaFin);
                    subproducto.duracion            = value.duaracion;
                    subproducto.duracionDimension   = value.duracionDimension;
                    subproducto.inversionNueva      = value.inversionNueva;

                    Producto producto = ProductoDAO.getProductoPorId(subproducto.productoid);

                    Subproducto subproductoPadre = new Subproducto();
                    /// subproductoPadre.setId(subproductoPadreId);  // todo esta data no venia

                    SubproductoTipo subproductoTipo = new SubproductoTipo();
                    subproductoTipo.id = subproducto.subproductoTipoid;

                    if ((value.ejercicio != null) && (value.entidad != null) && (value.unidadEjecutora != null))
                    {
                        UnidadEjecutoraDAO.getUnidadEjecutora(value.ejercicio, value.entidad, value.ueunidadEjecutora);
                    }

                    /*UnidadEjecutora unidadEjecutora = (subproducto.ejercicio != null && subproducto.entidad != null && subproducto.ueunidadEjecutora != null) ? UnidadEjecutoraDAO.getUnidadEjecutora(subproducto.ejercicio, subproducto.entidad, subproducto.ueunidadEjecutora) : null;
                     */
                    resultado = SubproductoDAO.guardarSubproducto(subproducto, false);

                    if (resultado)
                    {
                        String pagosPlanificados = value.pagosPlanificados;
                        if (!subproducto.acumulacionCostoid.Equals(2) || pagosPlanificados != null && pagosPlanificados.Replace("[", "").Replace("]", "").Length > 0)
                        {
                            List <PagoPlanificado> pagosActuales = PagoPlanificadoDAO.getPagosPlanificadosPorObjeto(subproducto.id, 4);
                            foreach (PagoPlanificado pagoTemp in pagosActuales)
                            {
                                PagoPlanificadoDAO.eliminarTotalPagoPlanificado(pagoTemp);
                            }
                        }

                        if (subproducto.acumulacionCostoid.Equals(2) && pagosPlanificados != null && pagosPlanificados.Replace("[", "").Replace("]", "").Length > 0)
                        {
                            JArray pagosArreglo = JArray.Parse((string)value.pagosPlanificados);

                            for (int i = 0; i < pagosArreglo.Count; i++)
                            {
                                JObject  objeto    = (JObject)pagosArreglo[i];
                                DateTime fechaPago = objeto["fechaPago"] != null?Convert.ToDateTime(objeto["fechaPago"].ToString()) : default(DateTime);

                                decimal monto = objeto["pago"] != null?Convert.ToDecimal(objeto["pago"]) : default(decimal);

                                PagoPlanificado pagoPlanificado = new PagoPlanificado();

                                pagoPlanificado.fechaPago   = fechaPago;
                                pagoPlanificado.pago        = monto;
                                pagoPlanificado.objetoId    = subproducto.id;
                                pagoPlanificado.objetoTipo  = 4;
                                pagoPlanificado.usuarioCreo = User.Identity.Name;
                                pagoPlanificado.estado      = 1;

                                resultado = resultado && PagoPlanificadoDAO.Guardar(pagoPlanificado);
                            }
                        }

                        if (resultado)
                        {
                            JArray datos = JArray.Parse((string)value.datadinamica);

                            for (int i = 0; i < datos.Count; i++)
                            {
                                JObject data = (JObject)datos[i];

                                if (data["valor"] != null && data["valor"].ToString().Length > 0 && data["valor"].ToString().CompareTo("null") != 0)
                                {
                                    SubproductoPropiedad producotPropiedad = SubproductoPropiedadDAO.getSubproductoPropiedadPorId(Convert.ToInt32(data["id"]));

                                    SubproductoPropiedadValor valor = new SubproductoPropiedadValor();
                                    valor.subproductoid         = subproducto.id;
                                    valor.subproductos          = subproducto;
                                    valor.subproductoPropiedads = producotPropiedad;
                                    valor.usuarioCreo           = User.Identity.Name;
                                    valor.fechaCreacion         = DateTime.Now;
                                    valor.estado = 1;

                                    switch (producotPropiedad.datoTipoid)
                                    {
                                    case 1:
                                        valor.valorString = data["valor"].ToString();
                                        break;

                                    case 2:
                                        valor.valorEntero = Convert.ToInt32(data["valor"].ToString());
                                        break;

                                    case 3:
                                        valor.valorDecimal = Convert.ToDecimal(data["valor"].ToString());
                                        break;

                                    case 4:
                                        break;

                                    case 5:
                                        valor.valorTiempo = Convert.ToDateTime(data["valor_f"].ToString());
                                        break;
                                    }
                                    resultado = (resultado && SubproductoPropiedadValorDAO.guardarSubproductoPropiedadValor(valor));
                                }
                            }
                        }

                        return(Ok(new
                        {
                            success = resultado,
                            subproducto.id,
                            subproducto.usuarioCreo,
                            subproducto.fechaCreacion,
                            subproducto.usuarioActualizo,
                            subproducto.fechaActualizacion
                        }));
                    }
                    else
                    {
                        return(Ok(new { success = false }));
                    }
                }
                else
                {
                    return(Ok(new { success = false }));
                }
            }
            catch (Exception e)
            {
                CLogger.write("3", "SubproductoController.class", e);
                return(BadRequest(500));
            }
        }
        public IActionResult Subproducto([FromBody] dynamic value)
        {
            try
            {
                bool resultado = false;
                SubproductoValidator validator = new SubproductoValidator();
                ValidationResult     results   = validator.Validate(value);

                if (results.IsValid)
                {
                    Subproducto subproducto = new Subproducto();
                    subproducto.nombre      = value.nombre;
                    subproducto.descripcion = value.descripcion;
                    subproducto.productoid  = (int)value.producto;
                    ///subproducto.su.subproductoPadreId = (int)value.subproductoPadre; no tiene subproductopadre
                    subproducto.subproductoTipoid = (int)value.tiposubproductoid;
                    subproducto.ueunidadEjecutora = value.unidadEjecutora != null ? (int)value.unidadEjecutora : default(int);
                    subproducto.entidad           = value.entidad != null ? (int)value.entidad : default(int);
                    subproducto.ejercicio         = value.ejercicio != null ? (int)value.ejercicio : default(int);
                    subproducto.snip                = value.snip;
                    subproducto.programa            = value.programa;
                    subproducto.subprograma         = value.subprograma;
                    subproducto.proyecto            = value.proyecto;
                    subproducto.obra                = value.obra;
                    subproducto.renglon             = value.renglon;
                    subproducto.ubicacionGeografica = value.ubicacionGeografica;
                    subproducto.actividad           = value.actividad;
                    subproducto.latitud             = value.latitud;
                    subproducto.longitud            = value.longitud;
                    subproducto.costo               = value.costo;
                    subproducto.acumulacionCostoid  = value.acumulacionCostoId;
                    subproducto.fechaInicio         = value.fechaInicio;
                    subproducto.fechaFin            = Convert.ToDateTime(value.fechaFin);
                    subproducto.duracion            = value.duaracion;
                    subproducto.duracionDimension   = value.duracionDimension;
                    subproducto.inversionNueva      = value.inversionNueva;
                    //Se agregan estas lineas
                    subproducto.fechaCreacion = DateTime.Now;
                    subproducto.usuarioCreo   = User.Identity.Name;
                    subproducto.estado        = 1;
                    // Se agregan estas lineas
                    DateTime fechaInicioReal;
                    DateTime.TryParse((string)value.fechaInicioReal, out fechaInicioReal);
                    subproducto.fechaInicioReal = fechaInicioReal;

                    DateTime fechaFinReal;
                    DateTime.TryParse((string)value.fechaFinReal, out fechaFinReal);
                    subproducto.fechaFinReal = fechaFinReal;

                    // Se comenta Producto producto = ProductoDAO.getProductoPorId(subproducto.productoid);

                    // Se comenta Subproducto subproductoPadre = new Subproducto();
                    ///subproductoPadre.setId(subproductoPadreId);  // esta data no viene
                    // Se comenta SubproductoTipo subproductoTipo = new SubproductoTipo();
                    // Se comenta subproductoTipo.id = subproducto.subproductoTipoid;

                    // Se comenta if ((value.ejercicio != null) && (value.entidad != null) && (value.unidadEjecutora != null))
                    // Se comenta {
                    // Se comenta    UnidadEjecutoraDAO.getUnidadEjecutora(value.ejercicio, value.entidad, value.ueunidadEjecutora);
                    // Se comenta }

                    /*UnidadEjecutora unidadEjecutora = (subproducto.ejercicio != null && subproducto.entidad != null && subproducto.ueunidadEjecutora != null) ? UnidadEjecutoraDAO.getUnidadEjecutora(subproducto.ejercicio, subproducto.entidad, subproducto.ueunidadEjecutora) : null;
                     */
                    //resultado = SubproductoDAO.guardarSubproducto(subproducto, false);
                    resultado = SubproductoDAO.guardarSubproducto(subproducto, true);

                    if (resultado)
                    {
                        String pagosPlanificados = value.pagosPlanificados;
                        if (!subproducto.acumulacionCostoid.Equals(4) || pagosPlanificados != null && pagosPlanificados.Replace("[", "").Replace("]", "").Length > 0)
                        {
                            List <PagoPlanificado> pagosActuales = PagoPlanificadoDAO.getPagosPlanificadosPorObjeto(subproducto.id, 4);
                            foreach (PagoPlanificado pagoTemp in pagosActuales)
                            {
                                PagoPlanificadoDAO.eliminarTotalPagoPlanificado(pagoTemp);
                            }
                        }

                        if (subproducto.acumulacionCostoid.Equals(4) && pagosPlanificados != null && pagosPlanificados.Replace("[", "").Replace("]", "").Length > 0)
                        {
                            JArray pagosArreglo = JArray.Parse((string)value.pagosPlanificados);
                            for (int i = 0; i < pagosArreglo.Count; i++)
                            {
                                JObject  objeto    = (JObject)pagosArreglo[i];
                                DateTime fechaPago = objeto["fechaPago"] != null?Convert.ToDateTime(objeto["fechaPago"].ToString()) : default(DateTime);

                                decimal monto = objeto["pago"] != null?Convert.ToDecimal(objeto["pago"]) : default(decimal);

                                PagoPlanificado pagoPlanificado = new PagoPlanificado();
                                pagoPlanificado.fechaPago   = fechaPago;
                                pagoPlanificado.pago        = monto;
                                pagoPlanificado.objetoId    = subproducto.id;
                                pagoPlanificado.objetoTipo  = 4;
                                pagoPlanificado.usuarioCreo = User.Identity.Name;
                                // se agrega linea
                                pagoPlanificado.fechaCreacion = DateTime.Now;
                                pagoPlanificado.estado        = 1;
                                resultado = resultado && PagoPlanificadoDAO.Guardar(pagoPlanificado);
                            }
                        }
                    }

                    if (resultado)
                    {
                        // Se agrega este bloque probarlo
                        List <SubproductoPropiedad> subproductoPropiedades = SubproductoPropiedadDAO.getSubproductoPropiedadesPorTipo(subproducto.subproductoTipoid);

                        foreach (SubproductoPropiedad subProductoPropiedad in subproductoPropiedades)
                        {
                            SubcomponentePropiedadValor subProdPropVal = SubcomponentePropiedadValorDAO.getValorPorSubComponenteYPropiedad(subProductoPropiedad.id, subproducto.id);
                            if (subProdPropVal != null)
                            {
                                resultado = resultado && SubcomponentePropiedadValorDAO.eliminarTotalSubComponentePropiedadValor(subProdPropVal);
                            }
                        }
                        // Hasta aqui

                        JArray datos = JArray.Parse((string)value.datadinamica);
                        for (int i = 0; i < datos.Count; i++)
                        {
                            JObject data = (JObject)datos[i];
                            if (data["valor"] != null && data["valor"].ToString().Length > 0 && data["valor"].ToString().CompareTo("null") != 0)
                            {
                                SubproductoPropiedad      subProductoPropiedad = SubproductoPropiedadDAO.getSubproductoPropiedadPorId(Convert.ToInt32(data["id"]));
                                SubproductoPropiedadValor valor = new SubproductoPropiedadValor();
                                valor.subproductoid         = subproducto.id;
                                valor.subproductos          = subproducto;
                                valor.subproductoPropiedads = subProductoPropiedad;
                                //
                                valor.subproductoPropiedadid = subProductoPropiedad.id;
                                valor.usuarioCreo            = User.Identity.Name;
                                valor.fechaCreacion          = DateTime.Now;
                                valor.estado = 1;

                                switch (subProductoPropiedad.datoTipoid)
                                {
                                case 1:
                                    valor.valorString = data["valor"].ToString();
                                    break;

                                case 2:
                                    valor.valorEntero = Convert.ToInt32(data["valor"].ToString());
                                    break;

                                case 3:
                                    valor.valorDecimal = Convert.ToDecimal(data["valor"].ToString());
                                    break;

                                case 4:
                                    valor.valorEntero = data["valor"].ToString() == "true" ? 1 : 0;
                                    break;

                                case 5:
                                    valor.valorTiempo = Convert.ToDateTime(data["valor_f"].ToString());
                                    break;
                                }
                                resultado = (resultado && SubproductoPropiedadValorDAO.guardarSubproductoPropiedadValor(valor));
                            }
                        }
                    }

                    return(Ok(new
                    {
                        /*success = resultado,
                         * subproducto.id,
                         * subproducto.usuarioCreo,
                         * subproducto.fechaCreacion,
                         * subproducto.usuarioActualizo,
                         * subproducto.fechaActualizacion*/
                        success = resultado,
                        id = subproducto.id,
                        usuarioCreo = subproducto.usuarioCreo,
                        usuarioActualizo = subproducto.usuarioActualizo,
                        fechaCreacion = subproducto.fechaCreacion.ToString("dd/MM/yyyy H:mm:ss"),
                        fechaActualizacion = subproducto.fechaActualizacion != null ? subproducto.fechaActualizacion.Value.ToString("dd/MM/yyyy H:mm:ss") : null
                    }));
                }
                else
                {
                    return(Ok(new { success = false }));
                }
                //borrar }
                // borrar else
                // borrar {
                // borrar    return Ok(new { success = false });
                // borrar}
            }
            catch (Exception e)
            {
                CLogger.write("2", "SubproductoController.class", e);
                return(BadRequest(500));
            }
        }
Esempio n. 13
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);
        }
Esempio n. 14
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. 15
0
        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. 16
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));
            }
        }