Esempio n. 1
0
        public async Task <ActionResult> CambiarTurno(int?turnoAntesId, int?turnoDespuesId, int?pacienteId)
        {
            if (turnoAntesId == null || turnoDespuesId == null || pacienteId == null)
            {
                TempData[Application.MessageViewBagName] = new GenericMessageViewModel
                {
                    Message     = "No existe la ruta.",
                    MessageType = GenericMessages.warning
                };
                return(RedirectToAction("Index"));
            }

            Turno turnoAntes = await db.Turnos.FindAsync(turnoAntesId);

            Turno turnoDespues = await db.Turnos.FindAsync(turnoDespuesId);

            Paciente paciente = await db.Pacientes.FindAsync(pacienteId);

            if (turnoAntes == null || turnoDespues == null || paciente == null)
            {
                TempData[Application.MessageViewBagName] = new GenericMessageViewModel
                {
                    Message     = "No existe la ruta.",
                    MessageType = GenericMessages.warning
                };
                return(RedirectToAction("Index"));
            }


            TurnoCambiarView turnoAntesYDespues = new TurnoCambiarView();

            turnoAntesYDespues.TurnoAntes   = turnoAntes;
            turnoAntesYDespues.TurnoDespues = turnoDespues;

            ViewBag.TieneOS = turnoAntes.TieneOS;

            return(View(turnoAntesYDespues));
        }
Esempio n. 2
0
        public async Task <ActionResult> CambiarTurno(TurnoCambiarView turno)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    Turno turnoAntes = await db.Turnos.FindAsync(turno.TurnoAntes.Id);

                    Turno turnoDespues = await db.Turnos.FindAsync(turno.TurnoDespues.Id);

                    if (turnoAntes == null || turnoDespues == null)
                    {
                        TempData[Application.MessageViewBagName] = new GenericMessageViewModel
                        {
                            Message     = "No se encontró turno.",
                            MessageType = GenericMessages.danger
                        };
                        return(RedirectToAction("Index"));
                    }


                    turnoDespues.ObraSocialId = turnoAntes.Paciente.ObraSocial.Id; // lo saco del turno anterior
                    turnoDespues.PacienteId   = turnoAntes.PacienteId;             // lo saco del turno anterior
                    turnoDespues.Estado       = Estado.Reservado;
                    turnoDespues.Costo        = turnoAntes.Paciente.ObraSocial.Tarifas.Where(t => t.EspecialidadId == turnoDespues.EspecialidadId).FirstOrDefault().Tarifa;


                    db.Entry(turnoDespues).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    turnoAntes.ObraSocialId    = null;
                    turnoAntes.PacienteId      = null;
                    turnoAntes.Estado          = Estado.Disponible;
                    turnoAntes.Costo           = null;
                    turnoAntes.Sobreturno      = null;
                    turnoAntes.TieneObraSocial = null;



                    db.Entry(turnoAntes).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    TempData[Application.MessageViewBagName] = new GenericMessageViewModel
                    {
                        Message     = "Turno cambiado exitosamante.",
                        MessageType = GenericMessages.success
                    };

                    return(RedirectToAction("TurnosReservadosInicio"));
                }
                else
                {
                    TempData[Application.MessageViewBagName] = new GenericMessageViewModel
                    {
                        Message     = "Error al validar los campos.",
                        MessageType = GenericMessages.danger
                    };
                    return(View(turno));
                }
            }
            catch (Exception ex)
            {
                var err = $"Error al cambiar turno: {ex.Message}";
                TempData[Application.MessageViewBagName] = new GenericMessageViewModel
                {
                    Message     = err,
                    MessageType = GenericMessages.danger
                };
                return(View(turno));
            }
        }