public IActionResult ObjetoPorId(int objetoId, int objetoTipo) { try { String nombre = ""; String tiponombre = ""; String fechaInicio = ""; switch (objetoTipo) { case 0: //Proyecto; tiponombre = "Proyecto"; Proyecto proyecto = ProyectoDAO.getProyectoPorId(objetoId, User.Identity.Name); nombre = (proyecto != null) ? proyecto.nombre : ""; fechaInicio = Utils.getFechaHoraNull(proyecto.fechaInicio); break; case 1: //Componente; tiponombre = "Componente"; Componente componente = ComponenteDAO.getComponentePorId(objetoId, User.Identity.Name); nombre = (componente != null) ? componente.nombre : ""; fechaInicio = Utils.getFechaHoraNull(componente.fechaInicio); break; case 2: //Subcomponente; tiponombre = "Subcomponente"; Subcomponente subcomponente = SubComponenteDAO.getSubComponentePorId(objetoId, User.Identity.Name); nombre = (subcomponente != null) ? subcomponente.nombre: ""; fechaInicio = Utils.getFechaHoraNull(subcomponente.fechaInicio); break; case 3: //Producto tiponombre = "Producto"; Producto producto = ProductoDAO.getProductoPorId(objetoId, User.Identity.Name); nombre = (producto != null) ? producto.nombre : ""; fechaInicio = Utils.getFechaHoraNull(producto.fechaInicio); break; case 4: //Subproducto tiponombre = "Subproducto"; Subproducto subproducto = SubproductoDAO.getSubproductoPorId(objetoId, User.Identity.Name); nombre = (subproducto != null) ? subproducto.nombre : ""; fechaInicio = Utils.getFechaHoraNull(subproducto.fechaInicio); break; case 5: //Actividad tiponombre = "Actividad"; Actividad actividad = ActividadDAO.GetActividadPorId(objetoId); nombre = (actividad != null) ? actividad.nombre : ""; fechaInicio = Utils.getFechaHoraNull(actividad.fechaInicio); break; } return(Ok(new { success = true, nombre = nombre, tiponombre = tiponombre, fechaInicio = fechaInicio })); } catch (Exception e) { CLogger.write("1", "ObjectoController.class", e); return(BadRequest(500)); } }
public static decimal calcularCosto(Subcomponente subcomponente) { decimal costo = decimal.Zero; try { List <Producto> productos = ProductoDAO.getProductosBySubComponente(subcomponente.id); List <Actividad> actividades = ActividadDAO.GetActividadesPorObjeto(subcomponente.id, 2); if ((productos != null && productos.Count > 0) || (actividades != null && actividades.Count > 0)) { if (productos != null) { foreach (Producto producto in productos) { costo += Decimal.Add(costo, producto.costo ?? default(decimal)); } } if (actividades != null && actividades.Count > 0) { foreach (Actividad actividad in actividades) { costo += Decimal.Add(costo, actividad.costo ?? default(decimal)); } } } else { PlanAdquisicion pa = PlanAdquisicionDAO.getPlanAdquisicionByObjeto(2, subcomponente.id); if (pa != null) { List <PlanAdquisicionPago> lstpagos = PlanAdquisicionPagoDAO.getPagosByPlan(Convert.ToInt32(pa.id)); if (lstpagos != null && lstpagos.Count > 0) { decimal pagos = decimal.Zero; foreach (PlanAdquisicionPago pago in lstpagos) { pagos += Decimal.Add(pagos, pago.pago ?? default(decimal)); } costo = pagos; } else { costo = pa.montoContrato; } } else { costo = subcomponente.costo ?? default(decimal); } } } catch (Exception e) { CLogger.write("16", "Subcomponente.class", e); } return(costo); }
public static bool eliminarSubComponente(Subcomponente subComponente) { bool ret = false; try{ subComponente.estado = 0; subComponente.orden = null; ret = guardarSubComponente(subComponente, false); } catch (Exception e) { CLogger.write("4", "SubComponenteDAO.class", e); } return(ret); }
/*public static Subcomponente getSubComponenteInicial(Integer componenteId, String usuario, Session session){ * Subcomponente ret = null; * List<Subcomponente> listRet = null; * try{ * String query = "FROM Subcomponente c where c.estado=1 and c.orden=1 and c.componente.id=:componenteId and c.usuarioCreo=:usuario"; * Query<Subcomponente> criteria = session.createQuery(query, Subcomponente.class); * criteria.setParameter("componenteId", componenteId); * criteria.setParameter("usuario", usuario); * listRet = criteria.getResultList(); * * ret = !listRet.isEmpty() ? listRet.get(0) : null; * } catch(Throwable e){ * CLogger.write("10", SubComponenteDAO.class, e); * session.getTransaction().rollback(); * session.close(); * } * return ret; * } * * /*public static Subcomponente getSubComponenteFechaMaxima(Integer componenteId, String usuario, Session session){ * Subcomponente ret = null; * List<Subcomponente> listRet = null; * try{ * String query = "FROM Subcomponente c where c.estado=1 and c.componente.id=:componenteId and c.usuarioCreo=:usuario order by c.fechaFin desc"; * Query<Subcomponente> criteria = session.createQuery(query, Subcomponente.class); * criteria.setMaxResults(1); * criteria.setParameter("componenteId", componenteId); * criteria.setParameter("usuario", usuario); * * listRet = criteria.getResultList(); * * ret = !listRet.isEmpty() ? listRet.get(0) : null; * }catch (NoResultException e){ * * } catch(Throwable e){ * CLogger.write("11", SubComponenteDAO.class, e); * session.getTransaction().rollback(); * session.close(); * } * return ret; * } * * public static List<Subcomponente> getSubComponentesOrden(Integer componenteId, String usuario, Session session){ * List<Subcomponente> ret = null; * try{ * String query = String.join(" ", "SELECT c FROM Subcomponente c where c.estado=1 and c.componente.id=:componenteId"); * query = String.join(" ", query, "AND c.id in (SELECT u.id.subcomponenteid from SubcomponenteUsuario u where u.id.usuario=:usuario)"); * Query<Subcomponente> criteria = session.createQuery(query,Subcomponente.class); * criteria.setParameter("componenteId", componenteId); * criteria.setParameter("usuario", usuario); * ret = criteria.getResultList(); * }catch(Throwable e){ * CLogger.write("12", SubComponenteDAO.class, e); * session.getTransaction().rollback(); * session.close(); * } * return ret; * } * * public static Subcomponente getSubComponentePorIdOrden(int id, String usuario, Session session){ * Subcomponente ret = null; * List<Subcomponente> listRet = null; * try{ * Query<Subcomponente> criteria = session.createQuery("FROM Subcomponente where id=:id AND id in (SELECT u.id.subcomponenteid from SubcomponenteUsuario u where u.id.usuario=:usuario )", Subcomponente.class); * criteria.setParameter("id", id); * criteria.setParameter("usuario", usuario); * listRet = criteria.getResultList(); * * ret = !listRet.isEmpty() ? listRet.get(0) : null; * } catch(Throwable e){ * CLogger.write("13", SubComponenteDAO.class, e); * session.getTransaction().rollback(); * session.close(); * } * return ret; * } * * public static boolean guardarSubComponenteOrden(Subcomponente SubComponente, Session session){ * boolean ret = false; * try{ * session.saveOrUpdate(SubComponente); * session.flush(); * session.clear(); * ret = true; * } * catch(Throwable e){ * CLogger.write("14", SubComponenteDAO.class, e); * session.getTransaction().rollback(); * session.close(); * } * return ret; * }*/ public static Subcomponente getSubComponente(int id) { Subcomponente ret = null; try { using (DbConnection db = new OracleContext().getConnection()) { ret = db.QueryFirstOrDefault <Subcomponente>("SELECT * FROM subcomponente WHERE id=:id AND estado=1", new { id = id }); } } catch (Exception e) { CLogger.write("15", "SubComponenteDAO.class", e); } return(ret); }
public static bool eliminarTotalSubComponente(Subcomponente subComponente) { bool ret = false; try { using (DbConnection db = new OracleContext().getConnection()) { int eliminado = db.Execute("DELETE FROM subcomponente WHERE id=:id", new { id = subComponente.id }); ret = eliminado > 0 ? true : false; } } catch (Exception e) { CLogger.write("5", "SubComponenteDAO.class", e); } return(ret); }
public static Subcomponente getSubComponentePorId(int id, String usuario) { Subcomponente ret = null; try { using (DbConnection db = new OracleContext().getConnection()) { string query = String.Join(" ", "SELECT * FROM subcomponente WHERE id=:id", usuario != null ? "AND id IN (SELECT u.subcomponenteid FROM subcomponente_usuario u WHERE u.usuario=:usuario)" : ""); ret = db.QueryFirstOrDefault <Subcomponente>(query, new { id = id, usuario = usuario }); } } catch (Exception e) { CLogger.write("2", "SubComponenteDAO.class", e); } return(ret); }
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)); } }