public bool VerificarReservasPendientes(int idProducto, int idDetalleIngreso, int idUsuario)
        {
            try
            {
                var list = (from Res in Acceso.ModeloCesfam.RESERVA.ToList()
                            where Res.PRODUCTO_ID_PRODUCTO == idProducto && Res.ESTADO_RESERVA.Equals("Pendiente")
                            orderby Res.FECHA_RESERVA ascending
                            select new
                {
                    IdReserva = Res.ID_RESERVA,
                    IdProducto = Res.PRODUCTO_ID_PRODUCTO,
                    nombreProducto = Res.PRODUCTO.NOMBRE_PRODUCTO,
                    Cantidad = Res.CANTIDAD_RESERVA,
                    IdReceta = Res.RECETA_ID_RECETA,
                    idPaciente = Res.RECETA.PACIENTE_ID_PACIENTE,
                    nombrePaciente = Res.RECETA.PACIENTE.NOMBRE + " " + Res.RECETA.PACIENTE.APELLIDO_PATERNO,
                    codigoPaciente = Res.RECETA.PACIENTE.CODIGO_LIBRETA,
                    correoPaciente = Res.RECETA.PACIENTE.CORREO,
                    NombreMedico = Res.RECETA.USUARIO.NOMBRE + " " + Res.RECETA.USUARIO.APELLIDO_PATERNO,
                });
                CesfamDatos.DETALLE_INGRESO_STOCK dataDetalle = Acceso.ModeloCesfam.DETALLE_INGRESO_STOCK.First(det => det.ID_DETALLE_INGRESO == idDetalleIngreso);
                foreach (var item in list.ToList())
                {
                    if (item.Cantidad < dataDetalle.STOCK_ACTUAL)
                    {
                        CesfamNegocio.DetalleIngresoStock bssDetalleIngreso = new DetalleIngresoStock();
                        CesfamNegocio.SalidaStock         bssSalida         = new SalidaStock();
                        CesfamNegocio.DetalleSalidaStock  bssDetalleSalida  = new DetalleSalidaStock();
                        CesfamNegocio.DetalleReceta       bssDetReceta      = new DetalleReceta();
                        CesfamNegocio.CorreosAvisos       bssCcorreo        = new CorreosAvisos();
                        Random RndId2        = new Random();
                        int    idSalidaStock = RndId2.Next(1, 9999999);
                        while (bssSalida.Read(idSalidaStock))
                        {
                            idSalidaStock = RndId2.Next(1, 9999999);
                        }
                        bssSalida.EntregaReserva(idSalidaStock, DateTime.Now, idUsuario, 4, (int)item.IdReceta, (int)item.idPaciente, (int)item.IdReserva);
                        this.ActualizarReserva((int)item.IdReserva, "Entregar", DateTime.Now);
                        Random RndId            = new Random();
                        int    idDetSalidaStock = RndId.Next(1, 9999999);
                        while (bssDetalleSalida.Read(idDetSalidaStock))
                        {
                            idDetSalidaStock = RndId.Next(1, 9999999);
                        }
                        bssDetalleSalida.RegistrarDetalle(idDetSalidaStock, (int)item.Cantidad, "Reserva", idSalidaStock, idDetalleIngreso);
                        bssDetalleIngreso.ActualizarStockActual(idDetalleIngreso, (int)item.Cantidad);
                        bssDetReceta.ActualizarEstado(bssDetReceta.idDetalleEntregado((int)item.IdReceta, (int)item.IdProducto), "Entregado");

                        string asunto  = string.Format("Producto reservado disponible");
                        string mensaje = string.Format("Estimada " + item.nombrePaciente + ": \nJunto con saludar, le informo que el producto " + item.nombreProducto + " que fue reservado ya se encuentra disponible para retiro. \n\nProducto: " + item.nombreProducto + "\nCantidad: " + item.Cantidad + " \n\nSaludos Cordiales. \n\nSe despide Cesfam Farmacia.");
                        bssCcorreo.CorreoElectronico(item.correoPaciente, asunto, mensaje);
                    }
                }
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Example #2
0
 public bool Read(int idDetalleIngreso)
 {
     try
     {
         CesfamDatos.DETALLE_INGRESO_STOCK detalleIngreso = Acceso.ModeloCesfam.DETALLE_INGRESO_STOCK.First(tp => tp.ID_DETALLE_INGRESO == idDetalleIngreso);
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
Example #3
0
 public bool DevolverStock(int idDetalleIngreso, int cantidad)
 {
     try
     {
         CesfamDatos.DETALLE_INGRESO_STOCK detalleIngreso = Acceso.ModeloCesfam.DETALLE_INGRESO_STOCK.First(tp => tp.ID_DETALLE_INGRESO == idDetalleIngreso);
         detalleIngreso.STOCK_ACTUAL = detalleIngreso.STOCK_ACTUAL + cantidad;
         Acceso.ModeloCesfam.SaveChanges();
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
Example #4
0
 public bool ActualizarStockActual(int idDetalle, int CantARebajar)
 {
     try
     {
         CesfamDatos.DETALLE_INGRESO_STOCK detalleIngreso = Acceso.ModeloCesfam.DETALLE_INGRESO_STOCK.First(tp => tp.ID_DETALLE_INGRESO == idDetalle);
         decimal newStokActual = detalleIngreso.STOCK_ACTUAL - CantARebajar;
         detalleIngreso.STOCK_ACTUAL = newStokActual;
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }