public ActionResult CadastrarAusencia()
        {
            try {
                ViewBag.MensagemBodyController = "";
                ViewBag.MensagemBodyAction     = "";
                ViewBag.MensagemBody           = "";
                CarregarDadosUsuarioParaTela();
                if ((ViewData["idUsuario"] != null) && ((int)ViewData["idUsuario"] != 0))
                {
                    if ((int)ViewData["flConsultaI"] != 0)
                    {
                        var viewModel = new CadastrarAusenciaModel();

                        viewModel.DataInicio = DateTime.Now;
                        viewModel.HoraInicio = 0;
                        viewModel.DataFinal  = DateTime.Now;
                        viewModel.HoraFinal  = 0;

                        return(View(viewModel));
                    }
                    else
                    {
                        HttpContext.Session.SetString("MensagemTitle", "Erro");
                        HttpContext.Session.SetString("MensagemBody", "O usuário " + ViewData["nome"] + " não tem acesso a página: 'Consulta/MarcarDataAusencia', pois não tem permissão para inserir consulta");
                        return(RedirectToAction("Index", "Home"));
                    }
                }
                else
                {
                    ViewData.Add("ReturnUrl", ((object[])this.ControllerContext.RouteData.Values.Values)[0] + "/" + ((object[])this.ControllerContext.RouteData.Values.Values)[1]);
                    return(RedirectToAction("Signin", "Login", new { ReturnUrl = ViewData["ReturnUrl"] }));
                }
            } catch (Exception ex) {
                ViewBag.MensagemTitle          = "Erro";
                ViewBag.MensagemBodyController = "Controller: ConsultaController";
                ViewBag.MensagemBodyAction     = "Action: CadastrarConsulta";
                ViewBag.MensagemBody           = "Exceção: " + ex.Message;
                return(View());
            }
        }
Exemple #2
0
        public int CadastrarAusencia(CadastrarAusenciaModel model)
        {
            try {
                DateTime dataInicio = new DateTime(model.DataInicio.Year, model.DataInicio.Month, model.DataInicio.Day, UtilMetodo.DescobrirHora(model.HoraInicio)[0], UtilMetodo.DescobrirHora(model.HoraInicio)[1], 0);
                DateTime dataFinal  = new DateTime(model.DataFinal.Year, model.DataFinal.Month, model.DataFinal.Day, UtilMetodo.DescobrirHora(model.HoraFinal)[0], UtilMetodo.DescobrirHora(model.HoraFinal)[1], 0);
                DateTime dataAgora  = DateTime.Now;

                if ((dataAgora - dataInicio).Ticks > 0)
                {
                    return(1);
                }

                TimeSpan qtdDias = model.DataFinal - model.DataInicio;

                List <DateTime> listData = new List <DateTime>();
                List <CadastrarAusenciaBancoModel> listAusenciaBancoModels = new List <CadastrarAusenciaBancoModel>();

                if (qtdDias.Days < 0)
                {
                    return(2);
                }
                else if (qtdDias.Days == 0)
                {
                    if ((model.HoraFinal - model.HoraInicio) < 0)
                    {
                        return(3);
                    }
                    else
                    {
                        int[] horaInicial = UtilMetodo.DescobrirHora(model.HoraInicio);
                        int[] horaFinal   = UtilMetodo.DescobrirHora(model.HoraFinal);

                        int[] listAusencia = new int[26];
                        int   o            = model.HoraInicio;
                        int   p            = model.HoraFinal;

                        for (int i = 1; i <= 26; i++)
                        {
                            if ((i == o) && (o <= p))
                            {
                                listAusencia[i - 1] = 1;
                                o++;
                            }
                            else
                            {
                                listAusencia[i - 1] = 0;
                            }
                        }

                        CadastrarAusenciaBancoModel ausenciaBancoModel = new CadastrarAusenciaBancoModel();
                        ausenciaBancoModel.DataInicio        = new DateTime(model.DataInicio.Year, model.DataInicio.Month, model.DataInicio.Day);
                        ausenciaBancoModel.DataFinal         = new DateTime(model.DataFinal.Year, model.DataFinal.Month, model.DataFinal.Day);
                        ausenciaBancoModel.horaInicio        = model.HoraInicio;
                        ausenciaBancoModel.horaFinal         = model.HoraFinal;
                        ausenciaBancoModel.idUsuarioAusencia = model.idUsuarioAusencia;

                        ausenciaBancoModel = UtilMetodo.MarcarAusenciaCadastrarNoBancoModel(ausenciaBancoModel, listAusencia);
                        listAusenciaBancoModels.Add(ausenciaBancoModel);
                    }
                }
                else
                {
                    listData.Add(model.DataInicio);
                    for (int i = 1; i < (qtdDias.Days); i++)
                    {
                        listData.Add(model.DataInicio.AddDays(i));
                    }
                    listData.Add(model.DataFinal);

                    int ordemDatas = 1;

                    foreach (DateTime data in listData)
                    {
                        int[] listAusencia = new int[26];
                        int   o            = model.HoraInicio;
                        int   p            = model.HoraFinal;

                        if (ordemDatas == 1)
                        {
                            o = model.HoraInicio;
                            p = 26;
                            int[] horaInicial = UtilMetodo.DescobrirHora(model.HoraInicio);
                            int[] horaFinal   = UtilMetodo.DescobrirHora(26);
                        }
                        else if (ordemDatas == listData.Count)
                        {
                            o = 1;
                            p = 26;
                            int[] horaInicial = UtilMetodo.DescobrirHora(1);
                            int[] horaFinal   = UtilMetodo.DescobrirHora(model.HoraFinal);
                        }
                        else
                        {
                            o = 1;
                            p = 26;
                            int[] horaInicial = UtilMetodo.DescobrirHora(1);
                            int[] horaFinal   = UtilMetodo.DescobrirHora(26);
                        }

                        ordemDatas++;

                        for (int i = 1; i <= 26; i++)
                        {
                            if ((i == o) && (o <= p))
                            {
                                listAusencia[i - 1] = 1;
                                o++;
                            }
                            else
                            {
                                listAusencia[i - 1] = 0;
                            }
                        }

                        CadastrarAusenciaBancoModel ausenciaBancoModel = new CadastrarAusenciaBancoModel();
                        ausenciaBancoModel.DataInicio = new DateTime(data.Year, data.Month, data.Day);
                        ausenciaBancoModel.DataFinal  = new DateTime(data.Year, data.Month, data.Day);

                        ausenciaBancoModel.idUsuarioAusencia = model.idUsuarioAusencia;

                        ausenciaBancoModel = UtilMetodo.MarcarAusenciaCadastrarNoBancoModel(ausenciaBancoModel, listAusencia);
                        listAusenciaBancoModels.Add(ausenciaBancoModel);
                    }
                }

                AusenciaDAL objAusenciaDAL = new AusenciaDAL();
                return(objAusenciaDAL.CadastrarAusencia(listAusenciaBancoModels));
            } catch (Exception ex) {
                throw ex;
            }
        }
        public ActionResult CadastrarAusencia(CadastrarAusenciaModel model)
        {
            try {
                if (!ModelState.IsValid)
                {
                    //do whatever you want here
                }
                ViewBag.MensagemBodyController = "";
                ViewBag.MensagemBodyAction     = "";
                ViewBag.MensagemBody           = "";
                CarregarDadosUsuarioParaTela();
                if ((ViewData["idUsuario"] != null) && ((int)ViewData["idUsuario"] != 0))
                {
                    if ((int)ViewData["flConsultaI"] != 0)
                    {
                        var objAusenciaBLL = new AusenciaBLL();

                        model.idUsuarioAusencia = Convert.ToInt32(ViewData["idUsuario"]);

                        var retornoMarcarAusencia = objAusenciaBLL.CadastrarAusencia(model);

                        if (retornoMarcarAusencia == 1)
                        {
                            ViewBag.MensagemTitle = "Error";
                            ViewBag.MensagemBody  = "A hora inicial informada é mais cedo que a hora atual! Não pode marcar ausência retroativa!";
                            return(View());
                        }
                        else if (retornoMarcarAusencia == 2)
                        {
                            ViewBag.MensagemTitle = "Error";
                            ViewBag.MensagemBody  = "A data final tem que ser e maior que a data inicial!";
                            return(View());
                        }
                        else if (retornoMarcarAusencia == 3)
                        {
                            ViewBag.MensagemTitle = "Error";
                            ViewBag.MensagemBody  = "Quando a data inicial for igual a data final, a hora inicial tem que ser mais cedo que a hora final!";
                            return(View());
                        }
                        else
                        {
                            ViewBag.MensagemTitle = "Sucesso";
                            ViewBag.MensagemBody  = "A ausência para o seguinte período: " +
                                                    new DateTime(model.DataInicio.Year, model.DataInicio.Month, model.DataInicio.Day, UtilMetodo.DescobrirHora(model.HoraInicio)[0], UtilMetodo.DescobrirHora(model.HoraInicio)[1], 0) + " até " +
                                                    new DateTime(model.DataFinal.Year, model.DataFinal.Month, model.DataFinal.Day, UtilMetodo.DescobrirHora(model.HoraFinal)[0], UtilMetodo.DescobrirHora(model.HoraFinal)[1], 0) + " foi realizada com sucesso!";
                            ModelState.Clear();
                            return(View());
                        }
                    }
                    else
                    {
                        HttpContext.Session.SetString("MensagemTitle", "Erro");
                        HttpContext.Session.SetString("MensagemBody", "O usuário " + ViewData["nome"] + " não tem permissão para consultar Pacientes!");
                        return(RedirectToAction("Index", "Home"));
                    }
                }
                else
                {
                    ViewData.Add("ReturnUrl", ((object[])this.ControllerContext.RouteData.Values.Values)[0] + "/" + ((object[])this.ControllerContext.RouteData.Values.Values)[1]);
                    return(RedirectToAction("Signin", "Login", new { ReturnUrl = ViewData["ReturnUrl"] }));
                }
            } catch (Exception ex) {
                ViewBag.MensagemTitle          = "Erro";
                ViewBag.MensagemBodyController = "Controller: ConsultaController";
                ViewBag.MensagemBodyAction     = "Action: MarcarDataAusencia";
                ViewBag.MensagemBody           = "Exceção: " + ex.Message;
                return(View());
            }
        }