示例#1
0
        public async Task <IActionResult> ArquivadoOperador(string nomePesquisar, int pagina = 1)
        {
            Paginacao paginacao = new Paginacao
            {
                TotalItems = await bd.Reclamacoes

                             .CountAsync(),
                PaginaAtual = pagina
            };

            List <Reclamacoes> reclamacoes = await bd.Reclamacoes.Where(p => p.Inactivo == true || p.Cliente.Nome.Contains(nomePesquisar) || p.Cliente.Nif.Contains(nomePesquisar))
                                             .Include(p => p.Cliente)
                                             .OrderBy(p => p.Cliente.Nome)

                                             .Skip(paginacao.ItemsPorPagina * (pagina - 1))
                                             .Take(paginacao.ItemsPorPagina)
                                             .ToListAsync();


            ReclamacoesViewModel ArquivadoOperador = new ReclamacoesViewModel
            {
                Paginacao     = paginacao,
                Reclamacoes   = reclamacoes,
                NomePesquisar = nomePesquisar
            };

            return(View(ArquivadoOperador));
        }
示例#2
0
        public async Task <IActionResult> RespostaOperador(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            ReclamacoesViewModel reclamacoesViewModel = new ReclamacoesViewModel();
            var funcionario = await bd.Utilizadores.SingleOrDefaultAsync(c => c.Email == User.Identity.Name);

            var reclamacao = await bd.Reclamacoes
                             .AsNoTracking()
                             .SingleOrDefaultAsync(p => p.ReclamacaoId == id);

            reclamacoesViewModel.ReclamacaoId = reclamacao.ReclamacaoId;
            reclamacoesViewModel.ContratoId   = reclamacao.ContratoId;
            reclamacoesViewModel.ClienteId    = reclamacao.ClienteId;
            reclamacoesViewModel.Resposta     = reclamacao.Resposta;


            reclamacoesViewModel.EstadoResposta  = reclamacao.EstadoResposta;
            reclamacoesViewModel.EstadoResolução = reclamacao.EstadoResolução;



            if (reclamacao == null)
            {
                return(NotFound());
            }
            ViewData["ContratoId"] = new SelectList(bd.Contratos, "ContratoId", "ContratoId", reclamacoesViewModel.ContratoId);
            return(View(reclamacoesViewModel));
        }
示例#3
0
        public async Task <IActionResult> Create(ReclamacoesViewModel reclamacoesViewModel, Reclamacoes reclamacao, int id)
        {
            if (ModelState.IsValid)
            {
                var cliente  = bd.Utilizadores.SingleOrDefault(c => c.Email == User.Identity.Name);
                var contrato = bd.Contratos.SingleOrDefault(c => c.UtilizadorId == cliente.UtilizadorId);

                reclamacao.Cliente = cliente;

                reclamacao.ContratoId    = contrato.ContratoId;
                reclamacao.FuncionarioId = contrato.FuncionarioId;

                reclamacao.EstadoResolução = false;
                reclamacao.EstadoResposta  = false;
                reclamacao.DataReclamacao  = DateTime.Now;

                reclamacao.Inactivo     = false;
                reclamacao.Descricao    = reclamacoesViewModel.Descricao;
                reclamacao.ReclamacaoId = reclamacoesViewModel.ReclamacaoId;


                bd.Add(reclamacao);
                await bd.SaveChangesAsync();

                ViewBag.Mensagem = "Reclamação enviada com sucesso";
                return(View("Sucesso"));
            }



            return(View(reclamacao));
        }
示例#4
0
        public async Task <IActionResult> RespostaOperador(int id, ReclamacoesViewModel reclamacoesViewModel)
        {
            if (id != reclamacoesViewModel.ReclamacaoId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var reclamacao = await bd.Reclamacoes
                                     .AsNoTracking()
                                     .SingleOrDefaultAsync(p => p.ReclamacaoId == id);

                    var funcionario = await bd.Utilizadores.SingleOrDefaultAsync(c => c.Email == User.Identity.Name);

                    reclamacao.ReclamacaoId = reclamacoesViewModel.ReclamacaoId;

                    reclamacoesViewModel.ClienteId = reclamacao.ClienteId;
                    reclamacao.FuncionarioId       = funcionario.UtilizadorId;
                    reclamacao.ContratoId          = reclamacao.ContratoId;
                    reclamacao.Resposta            = reclamacoesViewModel.Resposta;
                    reclamacao.EstadoResposta      = reclamacoesViewModel.EstadoResposta;
                    reclamacao.EstadoResolução     = reclamacoesViewModel.EstadoResolução;
                    reclamacao.DataResposta        = DateTime.Now;
                    reclamacao.DataResolucao       = DateTime.Now;

                    bd.Reclamacoes.Update(reclamacao);
                    await bd.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ReclamacoesExists(reclamacoesViewModel.ReclamacaoId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                ViewBag.Mensagem = "Resposta enviada com sucesso";
                return(View("SucessoOperador"));
            }


            ModelState.AddModelError("", "Não foi possível registar a reclamação, tente novamente");
            return(View(reclamacoesViewModel));
        }
示例#5
0
        // GET: Reclamacoes

        public async Task <IActionResult> ViewCliente()
        {
            List <Reclamacoes> ViewCliente = await bd.Reclamacoes

                                             .Include(p => p.Cliente).Where(p => p.Cliente.Email == User.Identity.Name)

                                             .ToListAsync();

            ReclamacoesViewModel viewCliente = new ReclamacoesViewModel
            {
                Reclamacoes = ViewCliente,
            };

            return(View(viewCliente));
        }
示例#6
0
        public IActionResult Create(int id)
        {
            ReclamacoesViewModel criar = new ReclamacoesViewModel();

            return(View(criar));
        }