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 RegistrarSalida(int idSalidaStock, DateTime fecha, int idUsuario, int idTipoSalida, DataTable dtDetalle) { try { SALIDA_STOCK salidaStock = new SALIDA_STOCK(); salidaStock.ID_SALIDA_STOCK = idSalidaStock; salidaStock.FECHA = fecha; salidaStock.USUARIO_ID_USUARIO = idUsuario; salidaStock.TIPO_SALIDA_ID_TIPO_SALIDA = idTipoSalida; salidaStock.ESTADO = "ACTIVO"; foreach (DataRow row in dtDetalle.Rows) { DetalleSalidaStock detalle = new DetalleSalidaStock(); DetalleIngresoStock detalleIngreso = new DetalleIngresoStock(); Random RndId = new Random(); int idDetalleSalida = RndId.Next(1, 9999999); while (detalle.Read(idDetalleSalida)) { idDetalleSalida = RndId.Next(1, 9999999); } int cantidadRebajada = Convert.ToInt32(row[2].ToString()); string descripcion = row[4].ToString(); int idSalStock = idSalidaStock; int idDetalleIngreso = Convert.ToInt32(row[0].ToString()); detalle.RegistrarDetalle(idDetalleSalida, cantidadRebajada, descripcion, idSalStock, idDetalleIngreso); detalleIngreso.ActualizarStockActual(idDetalleIngreso, cantidadRebajada); } Acceso.ModeloCesfam.SALIDA_STOCK.Add(salidaStock); Acceso.ModeloCesfam.SaveChanges(); return(true); } catch (Exception) { return(false); } }