Checklist attached to a category to later store it in another table

0

I have the following situation, I need to bring in my view the checklist (tbl_sistema_categoria_atendimento_checklist) that the user has registered for a certain category, the checklist should only be shown on the screen if the user selects a category that has a checklist.

Intheimageabove(tryingtofindasolution),IcreatedaViewinwhichIcallwhentheuserclicksthecategorythathasachecklist,however,itwasnotinthebestshapebecauseIcannotknowwhichusertheuserselectedandunselectedwhichwouldsendalltheoptionstothebankinthetbl_checklist_categorization).Iwouldliketoknowhowtoconsistentlybringthechecklistofthebankandstorethedueinit.

Andinthecontroldevelopedtogettothegivenchecklististhus.

Get:

publicActionResultIndex(long?RescueSessionID){intidusuarioLogado=0;try{if(Session["usuarioLogado"] != null)
            {
                //id da entidade logada
                idusuarioLogado = ((tbl_usuario)Session["usuarioLogado"]).id_usuario;
            }
        }
        catch
        {
            TempData["Message"] = Alert.Show("Login expirado!", Alert.Tipo.danger);
            return RedirectToAction("login", "Home");
        }

        ViewBag.id_sistemas = new SelectList(db.tbl_sistema_empresa.Where(x => x.ativo == true).Select(x => x.tbl_sistema).OrderBy(x => x.sistema).ToList(), "id_sistema", "sistema");
        ViewBag.id_categoria = new SelectList(db.tbl_categoria_atendimento.OrderBy(x => x.categoria_atendimento).Where(x => x.ativo == true), "id_categoria_atendimento", "categoria_atendimento");
        //ViewBag.id_categoria = new SelectList(db.tbl_sistema_categoria_atendimento.Where(x => x.tbl_categoria_atendimento.id_categoria_atendimento == db.tbl_sistema_categoria_atendimento.FirstOrDefault().id_categoria_atendimento).Select(x => x.tbl_categoria_atendimento), "id_categoria_atendimento", "categoria_atendimento");
        ViewBag.id_sub_categoria_atendimento = new SelectList(db.tbl_categoria_sub_categoria_atendimento.Where(x => x.tbl_categoria_atendimento.id_categoria_atendimento == db.tbl_categoria_atendimento.OrderBy(c => c.categoria_atendimento).Where(c => c.ativo == true).FirstOrDefault().id_categoria_atendimento).Select(x => x.tbl_sub_categoria_atendimento), "id_sub_categoria_atendimento", "sub_categoria_atendimento");
        ViewBag.incidente = new SelectList(new List<SelectListItem> { new SelectListItem { Text = "Incidente", Value = "true" }, new SelectListItem { Text = "Requisição", Value = "false" } }, "Value", "Text");
        ViewBag.estado = new SelectList(new List<SelectListItem> { new SelectListItem { Text = "Aberto", Value = "1" } }, "Value", "Text");

        //aqui resgato os dados da sessão do logmein
        tbl_atendimento tbl_atendimento = db.tbl_atendimento.Where(x => x.sessionid == RescueSessionID).FirstOrDefault();
        ////aqui verifico se já foi respondido o atendimento
        //if (tbl_atendimento.tbl_categoria_sub_categoria.Where(x => x.id_usuario_cadastro == idusuarioLogado).Count() > 0)
        //{
        //    //se o atendimento já foi respondido pelo funcionario então marco com sim, assim não apresenta o botão de salvar
        //    TempData["Respondida"] = "sim";
        //    TempData["Message"] = Alert.Show("Você já categorizou esse atendimento!", Alert.Tipo.warning);
        //}


        return View(tbl_atendimento);
    }

Post:

[HttpPost]
    public ActionResult Index(int id_sistemas)
    {

        try
        {
            int idusuarioLogado = 0;
            try
            {
                //id da entidade logada
                idusuarioLogado = ((tbl_usuario)Session["usuarioLogado"]).id_usuario;
            }
            catch
            {
                TempData["Message"] = Alert.Show("Login expirado!", Alert.Tipo.danger);
                return RedirectToAction("login", "Home");
            }

            int id_categoria_atendimento = int.Parse(Request["id_categoria_atendimento"]);
            int id_sub_categoria_atendimento = 0;
            if (Request["id_sub_categoria_atendimento"] != null)
            {
                id_sub_categoria_atendimento = int.Parse(Request["id_sub_categoria_atendimento"]);
            }
            //usado para quando o funcionario informar o id da tarefa do redmine
            int id_redmine = 0;
            if (!string.IsNullOrEmpty(Request["id_redmine"]))
            {
                id_redmine = int.Parse(Request["id_redmine"]);
            }
            string descricao = Request["descricao"];
            long Session_ID = long.Parse(Request["sessionid"]);

            tbl_atendimento tbl_atendimento = db.tbl_atendimento.Where(x => x.sessionid == Session_ID).FirstOrDefault();

            tbl_categoria_sub_categoria tbl_categoria_sub_categoria = new tbl_categoria_sub_categoria();

            tbl_categoria_sub_categoria.incidente = bool.Parse(Request["incidente"]);

            tbl_categoria_sub_categoria.id_atendimento = tbl_atendimento.id_atendimento;
            tbl_categoria_sub_categoria.id_categoria_atendimento = id_categoria_atendimento;

            if (id_sub_categoria_atendimento > 0)
            {
                tbl_categoria_sub_categoria.id_sub_categoria_atendimento = id_sub_categoria_atendimento;
            }
            else
            {
                tbl_categoria_sub_categoria.id_sub_categoria_atendimento = null;
            }

            //aqui resgato a criticidade e urgencia
            tbl_categoria_sub_categoria_atendimento tbl_categoria_sub_categoria_atendimento = db.tbl_categoria_sub_categoria_atendimento.Where(x => x.id_categoria_atendimento == id_categoria_atendimento && x.id_sub_categoria_atendimento == id_sub_categoria_atendimento).FirstOrDefault();
            tbl_categoria_sub_categoria.criticidade = tbl_categoria_sub_categoria_atendimento.criticidade;
            tbl_categoria_sub_categoria.urgencia = tbl_categoria_sub_categoria_atendimento.urgencia;
            tbl_categoria_sub_categoria.tma = tbl_categoria_sub_categoria_atendimento.tma;

            tbl_categoria_sub_categoria.descricao_atendimento = descricao;

            tbl_categoria_sub_categoria.id_usuario_cadastro = idusuarioLogado;

            tbl_categoria_sub_categoria.data_cadastro = DateTime.Now;
            tbl_categoria_sub_categoria.data_alteracao = DateTime.Now;
            tbl_categoria_sub_categoria.id_usuario_alteracao = idusuarioLogado;
            tbl_categoria_sub_categoria.id_usuario_cadastro = idusuarioLogado;
            //db.Entry(tbl_categoria_sub_categoria).State = System.Data.Entity.EntityState.Added;



            //aqui seto o estado do atendimento
            tbl_estado_categoria_sub_categoria tbl_estado_categoria_sub_categoria = new tbl_estado_categoria_sub_categoria();
            tbl_estado_categoria_sub_categoria.data_estado = DateTime.Now;
            tbl_estado_categoria_sub_categoria.estado = int.Parse(Request["estado"]);
            tbl_estado_categoria_sub_categoria.id_usuario_cadastro = idusuarioLogado;
            tbl_estado_categoria_sub_categoria.tbl_categoria_sub_categoria = tbl_categoria_sub_categoria;
            //db.Entry(tbl_estado_categoria_sub_categoria).State = System.Data.Entity.EntityState.Added;

            tbl_atendimento_sistema tbl_atendimento_sistema = new tbl_atendimento_sistema();
            tbl_atendimento_sistema.tbl_categoria_sub_categoria = tbl_categoria_sub_categoria;
            tbl_atendimento_sistema.id_sistema = id_sistemas;

            //if (id_sistemas.Count() > 0)
            //{
            //    tbl_atendimento_sistema tbl_atendimento_sistema;
            //    foreach (int id_sis in id_sistemas)
            //    {
            //        tbl_atendimento_sistema = new tbl_atendimento_sistema();
            //        tbl_atendimento_sistema.tbl_categoria_sub_categoria = tbl_categoria_sub_categoria;
            //        tbl_atendimento_sistema.id_sistema = id_sis;
            //        db.tbl_atendimento_sistema.Add(tbl_atendimento_sistema);
            //    }
            //}

            //aqui seto o checklist da categoria

            var tbl_sistema_categoria_atendimento_checklist = db.tbl_sistema_categoria_atendimento_checklist.Where(x => x.id_sistema == id_sistemas && x.id_categoria_atendimento == id_categoria_atendimento) ;

            foreach (var item in tbl_sistema_categoria_atendimento_checklist)
            {
                tbl_checklist_categorizacao tbl_checklist_categorizacao = new tbl_checklist_categorizacao();

                tbl_checklist_categorizacao.id_sistema = id_sistemas;
                tbl_checklist_categorizacao.id_categoria_atendimento = id_categoria_atendimento;
                tbl_checklist_categorizacao.id_usuario_cadastro = idusuarioLogado;
                tbl_checklist_categorizacao.feito = item.ativo;
                tbl_checklist_categorizacao.descricao = item.descricao;
                tbl_checklist_categorizacao.data_cadastro = DateTime.Now;
                tbl_checklist_categorizacao.tbl_categoria_sub_categoria = tbl_categoria_sub_categoria;
                db.tbl_checklist_categorizacao.Add(tbl_checklist_categorizacao);
            }                                

            //db.SaveChanges();
            TempData["Message"] = Alert.Show("Inserido com sucesso!", Alert.Tipo.success);
            return RedirectToAction("Details", "atendimento", new { id = tbl_atendimento.id_atendimento });
        }
        catch (Exception ex)
        {
            TempData["Message"] = Alert.Show("Falha: " + ex.Message, Alert.Tipo.danger);
            long Session_ID = long.Parse(Request["sessionid"]);
            tbl_atendimento tbl_atendimento = db.tbl_atendimento.Where(x => x.sessionid == Session_ID).FirstOrDefault();
            return RedirectToAction("Details", "atendimento", new { id = tbl_atendimento.id_atendimento });
        }

    }
    
asked by anonymous 05.05.2018 / 22:04

0 answers