예제 #1
0
        public ActionResult Create(ConsultaViewModel consulta)
        {
            try
            {
                if (consulta.TipoSessao != "80000509" && String.IsNullOrEmpty(consulta.Autorizacao))
                {
                    //ModelState.AddModelError(string.Empty, @"Autorização deve ser preenchida");
                    TempData["warning"] = "Preencha a autorização.";
                    return(View(consulta));
                }

                // if(consulta.Liberacao.PacienteId == 1)
                //{
                ///  ModelState.AddModelError(string.Empty, @"Paciente Selecionado Invalido");

                //return View(consulta);
                //}

                if (consulta.ProfissionalId == 2)
                {
                    //ModelState.AddModelError(string.Empty, @"Profissional não selecionado");
                    TempData["warning"] = "Profissional inválido.";
                    return(View(consulta));
                }

                if (consulta.DataHoraConsulta.Year == 1)
                {
                    //ModelState.AddModelError(string.Empty, @"Data selecionada inválida");
                    TempData["warning"] = "Data inválida.";
                    return(View(consulta));
                }

                if (new DateTime(consulta.DataHoraConsulta.Year, consulta.DataHoraConsulta.Month, 1) != (new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1)))
                //if (consulta.DataHoraConsulta != (new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1)))
                {
                    //ModelState.AddModelError(string.Empty, @"Data da consulta inferior a início do mês");
                    TempData["warning"] = "Mês da consulta diferente do mês atual.";
                    return(View(consulta));
                }


                if (ModelState.IsValid)
                {
                    var consultaDomain = Mapper.Map <ConsultaViewModel, Consulta>(consulta);
                    consultaDomain.DataCadastro = DateTime.Now;
                    _consultaApp.Add(consultaDomain);

                    TempData["success"] = "Consulta incluída com sucesso.";
                    return(RedirectToAction("Index"));
                }

                ViewBag.LiberacaoId    = listaLiberacao(consulta);
                ViewBag.ProfissionalId = listaProfissional(consulta);



                return(View(consulta));
            }
            catch (Exception)
            {
                TempData["error"] = "Não foi possível incluir a consulta.";
                return(View());
            }
        }
        public ActionResult Create(LiberacaoViewModel liberacao)
        {
            //if (liberacao.PacienteId == 1)
            //{
            //  ModelState.AddModelError(string.Empty, @"Paciente Selecionado Invalido");

            //return View(liberacao);
            //}

            if (ModelState.IsValid)
            {
                try
                {
                    var liberacaoDomain = Mapper.Map <LiberacaoViewModel, Liberacao>(liberacao);

                    if (!String.IsNullOrEmpty(liberacaoDomain.MedicoEncaminhante))
                    {
                        liberacaoDomain.MedicoEncaminhante = liberacaoDomain.MedicoEncaminhante.ToUpper();
                    }

                    liberacaoDomain.QuantidadeRealizadaExterno = liberacaoDomain.QuantidadeRealizada;
                    if (liberacao.PacienteId == 1136) // nao deixa salvar paciente selecione
                    {
                        //ModelState.AddModelError(string.Empty, @"Paciente Selecionado Invalido");
                        TempData["error"] = "O paciente Selecionado é inválido";
                        popularviewBag();
                        return(View(liberacao));
                    }

                    if (liberacao.ProfissionalId == 2) // nao deixa salvar profissional selecione
                    {
                        //ModelState.AddModelError(string.Empty, @"Profissional Selecionado Invalido");
                        TempData["error"] = "O profissional Selecionado é inválido";
                        popularviewBag();
                        return(View(liberacao));
                    }

                    _liberacaoApp.Add(liberacaoDomain);

                    for (int i = 0; i < liberacaoDomain.QuantidadeTotal - liberacaoDomain.QuantidadeRealizada; i++)
                    {
                        var consultaDomain = new Consulta();
                        consultaDomain.DataCadastro  = DateTime.Now;
                        consultaDomain.LiberacaoId   = liberacaoDomain.LiberacaoId;
                        consultaDomain.Convenio      = "Unimed";
                        consultaDomain.Status        = "Pré-agendado";
                        consultaDomain.ValorConsulta = 0;
                        consultaDomain.ValorConvenio = 0;
                        consultaDomain.ValorCopart   = 0;

                        consultaDomain.ProfissionalId = liberacaoDomain.ProfissionalId;

                        _consultaApp.Add(consultaDomain);
                    }

                    TempData["success"] = "Liberação incluída com sucesso.";
                    return(RedirectToAction("Details", "Liberacoes", new { id = liberacaoDomain.LiberacaoId }));
                }
                catch (Exception)
                {
                    TempData["error"] = "Não foi possível incluir a liberação.";
                    return(View(liberacao));
                }

                //liberacaoDomain.Paciente = _pacienteApp.GetById(liberacaoDomain.PacienteId);

                //var liberacaoViewModel = Mapper.Map<Liberacao, LiberacaoViewModel>(liberacaoDomain);

                //var consultasViewModel = Mapper.Map<IEnumerable<Consulta>, IEnumerable<ConsultaViewModel>>(_consultaApp.GetAll());

                //consultasViewModel = consultasViewModel.Where(s => s.LiberacaoId == liberacaoDomain.LiberacaoId);

                //var tuple = new Tuple<LiberacaoViewModel, IEnumerable<ConsultaViewModel>>(liberacaoViewModel, consultasViewModel);

                //return View("Details",tuple);
            }
            ViewBag.PacienteId = listaPaciente(1);

            try
            {
                var nivelAcesso    = (int)Session["nivelAcesso"];
                int IdProfissional = 2;

                if (nivelAcesso == 2)
                {
                    IdProfissional = (int)Session["idProfissional"];
                }

                ViewBag.ProfissionalId = listaProfissional(IdProfissional);
                return(View(liberacao));
            }
            catch (Exception)
            {
                TempData["error"] = "Não foi possível incluir a liberação.";
                return(View(liberacao));
            }
        }