예제 #1
0
        public async Task <IActionResult> Edit(int id, [Bind("HorarioATrocarEnfermeiroId,HorarioEnfermeiroId")] HorarioATrocarEnfermeiro horarioATrocarEnfermeiro)
        {
            if (id != horarioATrocarEnfermeiro.HorarioATrocarEnfermeiroId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(horarioATrocarEnfermeiro);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!HorarioATrocarEnfermeiroExists(horarioATrocarEnfermeiro.HorarioATrocarEnfermeiroId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }

            ViewData["HorarioEnfermeiroId"] = new SelectList(_context.HorariosEnfermeiro, "HorarioEnfermeiroId", "HorarioEnfermeiroId", horarioATrocarEnfermeiro.HorarioEnfermeiroId);
            return(View(horarioATrocarEnfermeiro));
        }
예제 #2
0
        public IActionResult SolicitarPedidoTrocaTurnoEnfermeiroConfirmed(int idHor1, int idHor2)
        {
            DateTime dataPedido = DateTime.Now;

            // Verifica se já existe um pedido feito com os id's dos horários
            if (PedidoTrocaTurnoJaFoiEfetudado(idHor1, idHor2) == true)
            {
                TempData["PedidoAlreadyDone"] = "Já existe um pedido feito para a troca destes horários";
                return(RedirectToAction(nameof(Index)));
            }

            //Select EnfermeiroID Where HorarioEnfermeiroId = idHorario1
            var idEnfRequerente = from h in _context.HorariosEnfermeiro
                                  where h.HorarioEnfermeiroId == idHor1
                                  select h.EnfermeiroId;

            HorarioEnfermeiro horarioATrocar   = _context.HorariosEnfermeiro.SingleOrDefault(h => h.HorarioEnfermeiroId == idHor1);
            HorarioEnfermeiro horarioParaTroca = _context.HorariosEnfermeiro.SingleOrDefault(h => h.HorarioEnfermeiroId == idHor2);

            try
            {
                //Insert into HorarioATrocarEnfermeiro
                InsertDataIntoHorarioATrocarEnfermeiro(_context, horarioATrocar);

                //Insert into HorarioParaTrocaEnfermeiro
                InsertDataIntoHorarioParaTrocaEnfermeiro(_context, horarioParaTroca);
            }
            catch (DbUpdateConcurrencyException)
            {
                TempData["ErrorRequired"] = "Erro ao inserir pedido!";
                return(RedirectToAction(nameof(Index)));
            }

            HorarioATrocarEnfermeiro   horarioATrocarId   = _context.HorarioATrocarEnfermeiros.LastOrDefault(h => h.HorarioEnfermeiroId == idHor1);
            HorarioParaTrocaEnfermeiro horarioParaTrocaId = _context.HorarioParaTrocaEnfermeiros.LastOrDefault(h => h.HorarioEnfermeiroId == idHor2);

            Enfermeiro enfermeiroRequerenteId = _context.Enfermeiros.SingleOrDefault(e => e.EnfermeiroId == idEnfRequerente.Single());

            EstadoPedidoTroca estadoPedidoTrocaId = _context.EstadoPedidoTrocas.SingleOrDefault(e => e.Nome == "Pendente");

            //Insert into PedidoTrocaTurnos Table
            try
            {
                if (!PedidoTrocaTurnoJaFoiEfetudado(idHor1, idHor2))
                {
                    InsertDataIntoPedidoTrocaTurnoEnfermeiro(_context, dataPedido, enfermeiroRequerenteId, horarioATrocarId, horarioParaTrocaId, estadoPedidoTrocaId);
                    TempData["SuccessRequired"] = "Pedido realizado com sucesso!";
                    return(RedirectToAction(nameof(Index)));
                }
            }
            catch (DbUpdateConcurrencyException)
            {
                TempData["ErrorRequired"] = "Erro ao inserir pedido!";
                return(RedirectToAction(nameof(Index)));
            }

            return(RedirectToAction(nameof(Index)));
        }
예제 #3
0
        public async Task <IActionResult> Create([Bind("HorarioATrocarEnfermeiroId,HorarioEnfermeiroId")] HorarioATrocarEnfermeiro horarioATrocarEnfermeiro)
        {
            if (ModelState.IsValid)
            {
                _context.Add(horarioATrocarEnfermeiro);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["HorarioEnfermeiroId"] = new SelectList(_context.HorariosEnfermeiro, "HorarioEnfermeiroId", "HorarioEnfermeiroId", horarioATrocarEnfermeiro.HorarioEnfermeiroId);
            return(View(horarioATrocarEnfermeiro));
        }
예제 #4
0
        public async Task <IActionResult> Aprovar(int id)
        {
            /*
             * Algoritmo:
             * Alterar o Estado para Aprovado Se O DS aprovar
             * Alterar o Estado para Não Aprovado se o DS não aprovar
             * Caso Aprove, Então:
             * Update na tabela horários, em que as linhas dos horários apenas sofrem a alteração do nome
             *
             */

            var pedidoTrocaTurnosEnfermeiro = await _context.PedidoTrocaTurnosEnfermeiros.FindAsync(id);

            if (id != pedidoTrocaTurnosEnfermeiro.PedidoTrocaTurnosEnfermeiroId)
            {
                return(RedirectToAction(nameof(Error)));
            }

            EstadoPedidoTroca idEstadoAprovado = _context.EstadoPedidoTrocas.SingleOrDefault(e => e.Nome == "Aprovado");

            pedidoTrocaTurnosEnfermeiro.EstadoPedidoTrocaId = idEstadoAprovado.EstadoPedidoTrocaId; //Estado_Aprovado

            HorarioATrocarEnfermeiro horario    = _context.HorarioATrocarEnfermeiros.SingleOrDefault(h => h.HorarioATrocarEnfermeiroId == pedidoTrocaTurnosEnfermeiro.HorarioATrocarEnfermeiroId);
            HorarioEnfermeiro        horarioEnf = _context.HorariosEnfermeiro.SingleOrDefault(h => h.HorarioEnfermeiroId == horario.HorarioEnfermeiroId);

            DateTime dataInicioTurno = horarioEnf.DataInicioTurno;

            if (DataTurnoIsUpperThanDateNow(dataInicioTurno) == true)
            {
                TempData["DateIsUpperThanDateNoe"] = "Já não é possível aprovar o pedido";
            }

            //Update Estado no Pedido de Troca
            try
            {
                //if (!DataTurnoIsUpperThanDateNow(dataInicioTurno))
                //{
                _context.Update(pedidoTrocaTurnosEnfermeiro);
                await _context.SaveChangesAsync();

                // }
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PedidoTrocaTurnosEnfermeiroExists(pedidoTrocaTurnosEnfermeiro.PedidoTrocaTurnosEnfermeiroId))
                {
                    return(RedirectToAction(nameof(Error)));
                }
                else
                {
                    throw;
                }
            }

            //Update Horario A Trocar
            int id1 = (from p in _context.PedidoTrocaTurnosEnfermeiros
                       where p.PedidoTrocaTurnosEnfermeiroId == id
                       select p.HorarioATrocarEnfermeiro.HorarioEnfermeiroId).Single();

            HorarioEnfermeiro idHor1 = _context.HorariosEnfermeiro.SingleOrDefault(h => h.HorarioEnfermeiroId == id1);

            var horarioATrocar = await _context.HorariosEnfermeiro.FindAsync(idHor1.HorarioEnfermeiroId);

            int nomeHor1 = (from p in _context.PedidoTrocaTurnosEnfermeiros
                            where p.PedidoTrocaTurnosEnfermeiroId == id
                            select p.HorarioParaTrocaEnfermeiro.HorarioEnfermeiro.Enfermeiro.EnfermeiroId).Single();

            horarioATrocar.EnfermeiroId = nomeHor1;

            //Update Horario Para Troca
            int id2 = (from p in _context.PedidoTrocaTurnosEnfermeiros
                       where p.PedidoTrocaTurnosEnfermeiroId == id
                       select p.HorarioParaTrocaEnfermeiro.HorarioEnfermeiroId).Single();

            HorarioEnfermeiro idHor2 = _context.HorariosEnfermeiro.SingleOrDefault(h => h.HorarioEnfermeiroId == id2);

            var horarioParaTroca = await _context.HorariosEnfermeiro.FindAsync(idHor2.HorarioEnfermeiroId);

            int nomeHor2 = (from p in _context.PedidoTrocaTurnosEnfermeiros
                            where p.PedidoTrocaTurnosEnfermeiroId == id
                            select p.HorarioATrocarEnfermeiro.HorarioEnfermeiro.Enfermeiro.EnfermeiroId).Single();

            horarioParaTroca.EnfermeiroId = nomeHor2;

            try
            {
                UpdateHorario(_context, horarioATrocar);
                UpdateHorario(_context, horarioParaTroca);
                TempData["UpdatedSuccess"] = "Pedido aprovado com sucesso";
            }
            catch (DbUpdateConcurrencyException)
            {
                return(RedirectToAction(nameof(Error)));
            }

            return(RedirectToAction(nameof(Index)));
        }
예제 #5
0
        /**
         * @param db
         * @param dataPedido
         * @param enfermeiroRequerente
         * @param horarioATrocarId
         * @param horarioParaTrocaId
         * @param estadoPedidoTrocaId
         * @insert in the PedidoTrocaTurnoEnfermeiro table a record with the above parameters
         */
        private void InsertDataIntoPedidoTrocaTurnoEnfermeiro(HospitalDbContext db, DateTime dataPedido, Enfermeiro enfermeiroRequerenteId, HorarioATrocarEnfermeiro horarioATrocarId, HorarioParaTrocaEnfermeiro horarioParaTrocaId, EstadoPedidoTroca estadoPedidoTrocaId)
        {
            db.PedidoTrocaTurnosEnfermeiros.Add(

                new PedidoTrocaTurnosEnfermeiro {
                DataPedido = dataPedido, EnfermeiroId = enfermeiroRequerenteId.EnfermeiroId, HorarioATrocarEnfermeiroId = horarioATrocarId.HorarioATrocarEnfermeiroId, HorarioParaTrocaEnfermeiroId = horarioParaTrocaId.HorarioParaTrocaEnfermeiroId, EstadoPedidoTrocaId = estadoPedidoTrocaId.EstadoPedidoTrocaId
            }

                );

            db.SaveChanges();
        }