/* * 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); }
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)); } }
/*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)); } }
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)); } }
/* * public static class EstructuraPojo { * public Integer id; * public String nombre; * public String descripcion; * public Integer idProducto; * public String producto; * public Integer idSubproductoTipo; * public String subProductoTipo; * public Integer unidadEjecutora; * public String nombreUnidadEjecutora; * public String entidadnombre; * public Integer entidadentidad; * public Integer ejercicio; * public Long snip; * public Integer programa; * public Integer subprograma; * public Integer proyecto_; * public Integer actividad; * public Integer obra; * public Integer renglon; * public Integer ubicacionGeografica; * public Integer duracion; * public String duracionDimension; * public String fechaInicio; * public String fechaFin; * public Integer estado; * public String fechaCreacion; * public String usuarioCreo; * public String fechaActualizacion; * public String usuarioActualizo; * public String latitud; * public String longitud; * public BigDecimal costo; * public Integer acumulacionCosto; * public String acumulacionCostoNombre; * public boolean tieneHijos; * public String fechaInicioReal; * public String fechaFinReal; * public Integer congelado; * public String fechaElegibilidad; * public String fechaCierre; * public Integer inversionNueva; * } * * public static List<Subproducto> getSubproductos(String usuario) { * List<Subproducto> ret = new ArrayList<Subproducto>(); * Session session = CHibernateSession.getSessionFactory().openSession(); * try { * Query<Subproducto> criteria = session.createQuery("FROM Subproducto p where p.id in (SELECT u.id.subproductoid from SubproductoUsuario u where u.id.usuario=:usuario )", Subproducto.class); * criteria.setParameter("usuario", usuario); * ret = (List<Subproducto>)criteria.getResultList(); * } catch (Throwable e) { * CLogger.write("1", SubproductoDAO.class, e); * } finally { * session.close(); * } * return ret; * } * * public static Subproducto getSubproductoPorId(int id, String usuario) { * Session session = CHibernateSession.getSessionFactory().openSession(); * Subproducto ret = null; * try { * List<Subproducto> listRet = null; * String Str_query = String.join(" ","Select sp FROM Subproducto sp", * "where id=:id"); * String Str_usuario = ""; * if(usuario != null){ * Str_usuario = String.join(" ", "AND id in (SELECT u.id.subproductoid from SubproductoUsuario u where u.id.usuario=:usuario )"); * } * * Str_query = String.join(" ", Str_query, Str_usuario); * Query<Subproducto> criteria = session.createQuery(Str_query, Subproducto.class); * criteria.setParameter("id", id); * if(usuario != null){ * criteria.setParameter("usuario", usuario); * } * listRet=criteria.getResultList(); * ret =!listRet.isEmpty() ? listRet.get(0) : null; * } catch (Throwable e) { * CLogger.write("2", SubproductoDAO.class, e); * } finally { * session.close(); * } * return ret; * }*/ public static bool guardarSubproducto(Subproducto subproducto, bool calcular_valores_agregados) { bool ret = false; int guardado = 0; try { using (DbConnection db = new OracleContext().getConnection()) { if (subproducto.id < 1) { int sequenceId = db.ExecuteScalar <int>("SELECT seq_subproducto.nextval FROM DUAL"); subproducto.id = sequenceId; guardado = db.Execute("INSERT INTO SUBPRODUCTO VALUES (:id, :nombre, :descripcion, :usuarioCreo, :usuarioActualizo, :fechaCreacion, :fechaActualizacion, " + ":estado, :snip, :programa, :subprograma, :proyecto, :actividad, :obra, :productoid, :subproductoTipoid, :ueunidadEjecutora, :latitud, :longitud, " + ":costo, :acumulacionCostoid, :renglon, :ubicacionGeografica, :fechaInicio, :fechaFin, :duracion, :duracionDimension, :orden, :treePath, :nivel, " + ":ejercicio, :entidad, :fechaInicioReal, :fechaFinFeal, :inversionNueva)", subproducto); if (guardado > 0) { subproducto.treepath = subproducto.productos.treepath + "" + (10000000 + subproducto.id); } } guardado = db.Execute("UPDATE subproducto SET nombre=:nombre, descripcion=:descripcion, usuario_creo=:usuarioCreo, usuario_actualizo=:usuario_actualizo, " + "fecha_creacion=:fechaCreacion, fecha_actualizacion=:fechaActualizacion, estado=:estado, snip=:snip, programa=:programa, subprograma=:subprograma, " + "proyecto=:proyecto, actividad=:actividad, obra=:obra, productoid=:productoid, subproducto_tipoid=:subproductoTipoid, ueunidad_ejecutora=:ueunidadEjecutora, " + "latitud=:latitud, longitud=:longitud, costo=:costo, acumulacion_costoid=:acumulacionCostoid, renglon=:renglon, ubicacion_geografica=:ubicacionGeografica, " + "fecha_inicio=:fechaInicio, fecha_fin=:fechaFin, duracion=:duracion, duracion_dimension=:duracionDimension, orden=:orden, treePath=:treePath, " + "nivel=:nivel, ejercicio=:ejercicio, entidad=:entidad, fecha_inicio_real=:fechaInicioReal, fecha_fin_real=:fechaFinReal, inversion_nueva=:inversionNueva WHERE id=:id", subproducto); if (guardado > 0) { Usuario usu = UsuarioDAO.getUsuario(subproducto.usuarioCreo); SubproductoUsuario su = new SubproductoUsuario(); su.subproductos = subproducto; su.subproductoid = subproducto.id; su.usuario = subproducto.usuarioCreo; su.usuarioCreo = subproducto.usuarioCreo; su.fechaCreacion = subproducto.fechaCreacion; int existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM SUBPRODUCTO_USUARIO WHERE subproductoid=:id AND usuario=:usuario", su); if (existe > 0) { guardado = db.Execute("UPDATE SUBPRODUCTO_USUARIO SET usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, " + "fecha_actualizacion=:fechaActualizacion WHERE subproductoid=:subproductoid AND usuario=:usuario", su); } else { guardado = db.Execute("INSERT INTO SUBPRODUCTO_USUARIO VALUES (:subproductoid, :usuario, :usuarioCreo, :usuarioActualizo, " + ":fechaCreacion, :fechaActualizacion)", su); } if (guardado > 0 && !subproducto.usuarioCreo.Equals("admin")) { SubproductoUsuario su_admin = new SubproductoUsuario(); su_admin.subproductos = subproducto; su_admin.subproductoid = subproducto.id; su_admin.usuario = "admin"; su_admin.usuarioCreo = subproducto.usuarioCreo; su_admin.fechaCreacion = subproducto.fechaCreacion; existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM SUBPRODUCTO_USUARIO WHERE subproductoid=:id AND usuario=:usuario", su_admin); if (existe > 0) { guardado = db.Execute("UPDATE SUBPRODUCTO_USUARIO SET usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, " + "fecha_actualizacion=:fechaActualizacion WHERE subproductoid=:subproductoid AND usuario=:usuario", su_admin); } else { guardado = db.Execute("INSERT INTO SUBPRODUCTO_USUARIO VALUES (:subproductoid, :usuario, :usuarioCreo, :usuarioActualizo, " + ":fechaCreacion, :fechaActualizacion)", su_admin); } } if (calcular_valores_agregados) { ProyectoDAO.calcularCostoyFechas(Convert.ToInt32(subproducto.treepath.Substring(0, 8)) - 10000000); } ret = true; } } } catch (Exception e) { CLogger.write("3", "SubproductoDAO.class", e); } return(ret); }
public static 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); }
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)); } }