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 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); } }
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); } }
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); } }