示例#1
0
        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);
        }