private bool CargarDetalle(string[] detalleReceta, int idRecetaNew) { try { for (int i = 0; i < detalleReceta.Length; i++) { CesfamNegocio.DetalleReceta bssDetalleReceta = new DetalleReceta(); string[] var = detalleReceta[i].Split(';'); int idProducto = Convert.ToInt32(var[0]); int idReceta = idRecetaNew; int cantidad = Convert.ToInt32(var[1]); int horas = Convert.ToInt32(var[2]); int dias = Convert.ToInt32(var[3]); string unidadMedida = var[4]; Random RndId = new Random(); int idDetalleReceta = RndId.Next(1, 9999999); while (bssDetalleReceta.Read(idDetalleReceta)) { idDetalleReceta = RndId.Next(1, 9999999); } int CantidadTotal = this.CalcularCantidad(cantidad, horas, dias, unidadMedida, idProducto); bssDetalleReceta.CrearDetalleReceta(idProducto, idReceta, CantidadTotal, idDetalleReceta, string.Format("Pendiente Entrega")); } return(true); } catch (Exception) { return(false); } }
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 EntregaReserva(int idSalidaStock, DateTime fecha, int idUsuario, int idTipoSalida, int idReceta, int idPaciente, int idReserva) { try { CesfamNegocio.Receta bssReceta = new Receta(); CesfamNegocio.DetalleReceta bssDetalleRece = new DetalleReceta(); 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"; Acceso.ModeloCesfam.SALIDA_STOCK.Add(salidaStock); Acceso.ModeloCesfam.SaveChanges(); CesfamDatos.REL_RECETA dataRelReceta = new REL_RECETA(); Random RndId = new Random(); int idRelReceta = RndId.Next(1, 9999999); while (this.ReadRelReceta(idRelReceta)) { idRelReceta = RndId.Next(1, 9999999); } dataRelReceta.ID_REL_RECETA = idRelReceta; dataRelReceta.ID_RETIRA = idPaciente; dataRelReceta.RECETA_ID_RECETA = idReceta; dataRelReceta.SALIDA_STOCK_ID_SALIDA_STOCK = idSalidaStock; Acceso.ModeloCesfam.REL_RECETA.Add(dataRelReceta); Acceso.ModeloCesfam.SaveChanges(); CesfamDatos.REL_RESERVA dataRelReserva = new REL_RESERVA(); Random RndId2 = new Random(); int idRelReserva = RndId2.Next(1, 9999999); while (this.ReadRelReServa(idRelReserva)) { idRelReserva = RndId.Next(1, 9999999); } dataRelReserva.ID_REL_RESERVA = idRelReceta; dataRelReserva.RESERVA_ID_RESERVA = idReserva; dataRelReserva.SALIDA_STOCK_ID_SALIDA_STOCK = idSalidaStock; Acceso.ModeloCesfam.REL_RESERVA.Add(dataRelReserva); Acceso.ModeloCesfam.SaveChanges(); if (bssDetalleRece.ReservasPorReceta(idReceta) < 2) { bssReceta.ActualizarReservaEntregada(idReceta); } return(true); } catch (Exception) { return(false); } }
public List <DetalleReceta> GenerarListado(List <DETALLE_RECETA> list) { List <DetalleReceta> listado = new List <DetalleReceta>(); foreach (var item in list) { DetalleReceta detalleReceta = new DetalleReceta(); detalleReceta.IdProducto = (int)item.PRODUCTO_ID_PRODUCTO; detalleReceta.IdReceta = (int)item.RECETA_ID_RECETA; detalleReceta.Cantidad = (int)item.CANTIDAD; detalleReceta.IdDetalleReceta = (int)item.ID_DETALLE_RECETA; detalleReceta.Estado = item.ESTADO; listado.Add(detalleReceta); } return(listado); }