/// <summary> /// Actualizo el Estado del Prestamo de Solicitado a Prestado /// </summary> /// <param name="prestamo"></param> public static void ActualizarPrestamoAPrestado(DtoPrestamo prestamo) { CadenaConexion nuevaCadena = new CadenaConexion(CadenaConexion.TipoMotorBaseDatos.ClienteSqlServer, ".\\SQLEXPRESS", "Biblioteca"); Conexion unaConexion = new Conexion(nuevaCadena); unaConexion.ConexionIniciar(); try { // De todos los prestamos busco aquellos que esten prestados o reintegrados y los almaceno en una lista var parametros = new List <ParametroEjecucion>(); parametros.Add(new ParametroEjecucion("@Id", prestamo.Id)); parametros.Add(new ParametroEjecucion("@Estado", prestamo.PrestamoEstado.Estado)); parametros.Add(new ParametroEjecucion("@ChangedBy", prestamo.PrestamoEstado.ChangedBy)); parametros.Add(new ParametroEjecucion("@ChangedOn", prestamo.PrestamoEstado.ChangedOn)); // Actualizo el Estado unaConexion.EjecutarConsultaSinResultado("Update PrestamoEstado SET Estado = @Estado,ChangedOn = @ChangedOn, ChangedBy = @ChangedBy Where PrestamoId = @Id", parametros); } catch (Framework.Excepciones.FuncionalidadException ex) { unaConexion.TransaccionCancelar(); Framework.Diagnostico.LogueadorTxt.Instancia().LogCritico("El Siguiente Error es Mostrado Al Actualizar los Prestamos:" + ex.ToString(), "DAL", "UAI BOOK"); throw new Exception("Error al Intentar Actualizar Los Prestamos"); } finally { unaConexion.ConexionFinalizar(); } }
/// <summary> /// Metodo para crear un prestamo /// </summary> /// <param name="unPrestamo"></param> public static void Insert(DtoPrestamo unPrestamo) { CadenaConexion nuevaCadena = new CadenaConexion(CadenaConexion.TipoMotorBaseDatos.ClienteSqlServer, ".\\SQLEXPRESS", "Biblioteca"); Conexion unaConexion = new Conexion(nuevaCadena); try { unaConexion.ConexionIniciar(); unaConexion.TransaccionIniciar(); var parametros = new List <ParametroEjecucion>(); parametros.Add(new ParametroEjecucion("@LibroId", unPrestamo.LibroId)); parametros.Add(new ParametroEjecucion("@UserId", unPrestamo.UserId)); //Creo la Cabezera unaConexion.EjecutarConsultaSinResultado("Insert Into Prestamo values (@LibroId,@UserId)", parametros); //Creo el Detalle var parametrosDetalle = new List <ParametroEjecucion>(); unPrestamo.PrestamoEstado.PrestamoId = DAL.TDG.PrestamoGateway.ObtenerIdUltimoPrestamo(unaConexion); parametrosDetalle.Add(new ParametroEjecucion("@PrestamoId", unPrestamo.PrestamoEstado.PrestamoId)); parametrosDetalle.Add(new ParametroEjecucion("@Estado", unPrestamo.PrestamoEstado.Estado)); parametrosDetalle.Add(new ParametroEjecucion("@Fecha", unPrestamo.PrestamoEstado.Fecha)); parametrosDetalle.Add(new ParametroEjecucion("@CreatedOn", DateTime.Now)); parametrosDetalle.Add(new ParametroEjecucion("@CreatedBy", unPrestamo.UserId)); parametrosDetalle.Add(new ParametroEjecucion("@ChangedOn", DBNull.Value)); parametrosDetalle.Add(new ParametroEjecucion("@ChangedBy", DBNull.Value)); unaConexion.EjecutarConsultaSinResultado("Insert into PrestamoEstado VALUES (@PrestamoId,@Estado,@Fecha,@CreatedOn,@CreatedBy,@ChangedOn,@ChangedBy)", parametrosDetalle); //Actualizo el Stock var cantidadActual = unPrestamo.Libro.Cantidad; var cantidadActualizada = cantidadActual - 1; var parametrosStock = new List <ParametroEjecucion>(); parametrosStock.Add(new ParametroEjecucion("@LibroId", unPrestamo.LibroId)); parametrosStock.Add(new ParametroEjecucion("@Cantidad", cantidadActualizada)); unaConexion.EjecutarConsultaSinResultado("UPDATE Libro SET Cantidad = @Cantidad Where Id = @LibroId", parametrosStock); unaConexion.TransaccionAceptar(); } catch (Framework.Excepciones.FuncionalidadException ex) { unaConexion.TransaccionCancelar(); Framework.Diagnostico.LogueadorTxt.Instancia().LogCritico("El Siguiente Error es Mostrado Al Crear el Prestamo:" + ex.ToString(), "DAL", "UAI BOOK"); throw new Exception("Error al Intentar Crear la Solicitud del Prestamo"); } finally { unaConexion.ConexionFinalizar(); } }
public static List <DtoPrestamo> ObtenerPrestamosAdeudados() { CadenaConexion nuevaCadena = new CadenaConexion(CadenaConexion.TipoMotorBaseDatos.ClienteSqlServer, ".\\SQLEXPRESS", "Biblioteca"); Conexion unaConexion = new Conexion(nuevaCadena); try { unaConexion.ConexionIniciar(); unaConexion.TransaccionIniciar(); // De todos los prestamos busco aquellos que esten prestados o reintegrados y los almaceno en una lista var prestamos = new List <DtoPrestamoEstado>(); //Busco todos los prestamos que se encuentren Prestados o Solicitados var parametrosPrestamoEstado = new List <ParametroEjecucion>(); var buscarPrestamo = unaConexion.EjecutarConsultaResultadoTupla <DTO.DtoPrestamoEstado>("Select * From PrestamoEstado Where Estado = 'Prestado'", parametrosPrestamoEstado); prestamos = buscarPrestamo; //Filtro todos los resultados que tengo y actualizo se se pasaron de la fecha var fechaHoy = DateTime.Now; var fechaPrestado = new DateTime(); var fechaDevolucion = new DateTime(); var prestamosNoDevueltos = new List <DtoPrestamoEstado>(); var prestamosAtrasados = new List <DtoPrestamo>(); // Mapeo el Prestamo con su Estado foreach (var item in prestamos) { var unPrestamoEstado = new DtoPrestamoEstado(); fechaPrestado = item.ChangedOn; fechaDevolucion = Framework.Funciones.Fechas.ObtenerDiasHabiles(fechaPrestado, 7); if (fechaDevolucion > fechaHoy) { prestamosNoDevueltos.Add(item); } } //Mapeo los Prestamos foreach (var item in prestamosNoDevueltos) { var unPrestamo = new DtoPrestamo(); var parametrosPrestamoAdeudados = new List <ParametroEjecucion>(); parametrosPrestamoAdeudados.Add(new ParametroEjecucion("@PrestamoId", item.PrestamoId)); var resultado = unaConexion.EjecutarConsultaResultadoTupla <DTO.DtoPrestamo>("SELECT * FROM Prestamo Where Id = @PrestamoId", parametrosPrestamoAdeudados); unPrestamo = resultado.FirstOrDefault(); unPrestamo.PrestamoEstado = item; unPrestamo.Libro = TDG.LibroGateway.TraerLibroPorId(unPrestamo.LibroId); prestamosAtrasados.Add(unPrestamo); } return(prestamosAtrasados); } catch (Framework.Excepciones.FuncionalidadException ex) { Framework.Diagnostico.LogueadorTxt.Instancia().LogCritico("El Siguiente Error es Mostrado Al Actualizar los Prestamos:" + ex.ToString(), "DAL", "UAI BOOK"); throw new Exception("Error al Intentar Actualizar Los Prestamos"); } finally { unaConexion.ConexionFinalizar(); } }
public static void ActualizarPrestamoAPrestado(DtoPrestamo prestamo) { DAL.Facade.PrestamoFacade.ActualizarPrestamoAPrestado(prestamo); }
//Devuelve TRUE si el usuario no posee prestamos en proceso para el libro solicitado public static bool EsUnicoPrestamo(DtoPrestamo prestamo) { CadenaConexion nuevaCadena = new CadenaConexion(CadenaConexion.TipoMotorBaseDatos.ClienteSqlServer, ".\\SQLEXPRESS", "Biblioteca"); Conexion unaConexion = new Conexion(nuevaCadena); try { unaConexion.ConexionIniciar(); var parametros = new List <ParametroEjecucion>(); parametros.Add(new ParametroEjecucion("@UserId", prestamo.UserId)); parametros.Add(new ParametroEjecucion("@LibroId", prestamo.LibroId)); //Traigo los Prestamos que correspondan al usuario y al libro pedido que existan actualmente var pretamosUsuario = unaConexion.EjecutarConsultaResultadoTupla <DTO.DtoPrestamo>("Select * From Prestamo Where UserId = @UserId AND LibroId = @LibroId", parametros); if (pretamosUsuario.Count() > 0) { //Busco el Prestamo que se corresponda al ID del Libro que solicito el Usuario buscando // el estado de Solicitado o Reintegrado var prestamos = new List <DtoPrestamoEstado>(); foreach (var item in pretamosUsuario) { var parametrosPrestamo = new List <ParametroEjecucion>(); parametrosPrestamo.Add(new ParametroEjecucion("@Id", item.Id)); parametrosPrestamo.Add(new ParametroEjecucion("@EstadoSolicitado", "Solicitado")); parametrosPrestamo.Add(new ParametroEjecucion("@EstadoPrestado", "Prestado")); var buscarPrestamo = unaConexion.EjecutarConsultaResultadoTupla <DTO.DtoPrestamoEstado>("SELECT * FROM PrestamoEstado Where PrestamoId = @Id AND Estado = @EstadoSolicitado OR Estado = @EstadoPrestado", parametrosPrestamo); prestamos.Add(buscarPrestamo.FirstOrDefault()); } //Si no existen prestamos que se encuentren actualmente solicitados o // prestados para el libro pedido por el usuario el usuario puede hacer el prestamo if (prestamos.Count() == 0) { return(true); } else { return(false); } } else { return(true); } } catch (Framework.Excepciones.FuncionalidadException ex) { Framework.Diagnostico.LogueadorTxt.Instancia().LogCritico("El Siguiente Error es Mostrado Al Verificar que solo exista un prestamo:" + ex.ToString(), "DAL", "UAI BOOK"); throw new Exception("Error al Intentar Traer Los Prestamos"); } finally { unaConexion.ConexionFinalizar(); } }
public static bool EsUnicoPrestamo(DtoPrestamo prestamo) { return(DAL.Facade.PrestamoFacade.EsUnicoPrestamo(prestamo)); }
public static void AgregarUnPrestamo(DtoPrestamo prestamo) { DAL.Facade.PrestamoFacade.AgregarUnPrestamo(prestamo); }
public static void ActualizarPrestamoAPrestado(DtoPrestamo prestamo) { TDG.PrestamoGateway.ActualizarPrestamoAPrestado(prestamo); }
public static bool EsUnicoPrestamo(DtoPrestamo prestamo) { return(TDG.PrestamoGateway.EsUnicoPrestamo(prestamo)); }
public static void AgregarUnPrestamo(DtoPrestamo unPrestamo) { TDG.PrestamoGateway.Insert(unPrestamo); }