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); } }
public List <SalidaStock> GenerarListado(List <SALIDA_STOCK> list) { List <SalidaStock> listado = new List <SalidaStock>(); foreach (var item in list) { SalidaStock salidaStock = new SalidaStock(); salidaStock.IdSalidaStock = (int)item.ID_SALIDA_STOCK; salidaStock.Fecha = item.FECHA; salidaStock.IdUsuario = (int)item.USUARIO_ID_USUARIO; salidaStock.IdTipoSalida = (int)item.TIPO_SALIDA_ID_TIPO_SALIDA; listado.Add(salidaStock); } return(listado); }