/// <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();
            }
        }
Exemple #4
0
 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();
            }
        }
Exemple #6
0
 public static bool EsUnicoPrestamo(DtoPrestamo prestamo)
 {
     return(DAL.Facade.PrestamoFacade.EsUnicoPrestamo(prestamo));
 }
Exemple #7
0
 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);
 }