Пример #1
0
        public string ObterContacto(int id)
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            Contacto contacto = context.ObterContacto(id);
            string   res      = "";

            res += "<div class=\"mb-3\"><label>Nome da Empresa</label><div class=\"input-group\"><input type=\"text\" class=\"form-control\" value='" + contacto.NomeContacto + "' readonly><a class=\"btn btn-outline-warning\" onclick=MostrarCliente() type=\"button\"><i class=\"fas fa-eye float-left\" style=\"margin-top:5px\"></i></a></div></div>";
            res += "<div class=\"mb-3\"><label>Contacto</label><input type=\"text\" class=\"form-control\" value='" + contacto.PessoaContacto + "' readonly></div>";
            res += "<div class=\"mb-3\"><label>Cargo</label><input type=\"text\" class=\"form-control\" value='" + contacto.CargoPessoaContacto + "' readonly></div>";
            res += "<div class=\"mb-3\"><label>Email</label><div class=\"input-group\"><input type=\"text\" class=\"form-control\" value='" + contacto.EmailContacto + "' readonly><a class=\"btn btn-outline-secondary " + (contacto.EmailContacto.Length == 0 ? "disabled" : "") + " \" href=\"mailto:" + contacto.EmailContacto + "\" type=\"button\"><i class=\"fas fa-envelope float-left\" style=\"margin-top:5px\"></i></a></div></div>";
            res += "<div class=\"mb-3\"><label>Telemóvel</label><div class=\"input-group\"><input type=\"text\" class=\"form-control\" value='" + contacto.TelefoneContacto + "' readonly><a class=\"btn btn-outline-secondary " + (contacto.TelefoneContacto.Length < 9 ? "disabled" : "") + " \" href=\"tel:" + contacto.TelefoneContacto + "\" type=\"button\"><i class=\"fas fa-phone-alt float-left\" style=\"margin-top:5px\"></i></a></div></div>";
            res += "<div class=\"mb-3\"><label>Morada</label><div class=\"input-group\"><input type=\"text\" class=\"form-control\" value='" + contacto.MoradaContacto + "' readonly><a class=\"btn btn-outline-secondary " + (contacto.MoradaContacto.Length == 0 ? "disabled" : "") + " \" href=\"https://maps.google.com/?daddr=" + contacto.MoradaContacto + "\" type=\"button\"><i class=\"fas fa-location-arrow float-left\" style=\"margin-top:5px\"></i></a></div></div>";
            res += "<div class=\"mb-3\"><label>NIF</label><input type=\"text\" class=\"form-control\" value='" + contacto.NIFContacto + "' readonly></div>";
            res += "<div class=\"mb-3\"><label>Data de Contacto</label><input type=\"text\" class=\"form-control\" value='" + contacto.DataContacto.ToShortDateString() + "' readonly></div>";
            res += "<div class=\"mb-3\"><label>Tipo de Contacto</label><input type=\"text\" class=\"form-control\" value='" + contacto.TipoContacto + "' readonly></div>";
            res += "<div class=\"mb-3\"><label>Área de Negócio</label><input type=\"text\" class=\"form-control\" value='" + contacto.AreaNegocio + "' readonly></div>";
            res += "<div class=\"mb-3\"><label>Criado por</label><input type=\"text\" class=\"form-control\" value='" + contacto.Utilizador.NomeCompleto + "' readonly></div>";
            if (this.User.IsInRole("Admin"))
            {
                res += "<div class=\"mb-3\"><label>Comercial Associado</label><div class=\"input-group\"><input type=\"text\" class=\"form-control\" value='" + contacto.Comercial.NomeCompleto + "' readonly><a class=\"btn btn-outline-primary\" onclick=AssociarComercial() type=\"button\"><i class=\"fas fa-list float-left\" style=\"margin-top:5px\"></i></a></div></div>";
            }
            res += "<div class=\"mb-3\"><label>Observações</label><textarea type=\"text\" class=\"form-control\" rows=\"6\" readonly>" + contacto.Obs + "</textarea></div>";

            return(res);
        }
Пример #2
0
        public async Task <IActionResult> FileUpload(List <IFormFile> files)
        {
            long size = files.Sum(f => f.Length);
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            var filePaths = new List <string>();

            foreach (var formFile in files)
            {
                if (formFile.Length > 0 && formFile.FileName.Contains(".xls"))
                {
                    // full path to file in temp location
                    var filePath = Path.GetTempFileName(); //we are using Temp file name just for the example. Add your own file path.
                    filePaths.Add(filePath);

                    using var stream = new FileStream(filePath, FileMode.Create);
                    await formFile.CopyToAsync(stream);
                }
            }

            foreach (var item in filePaths)
            {
                context.CarregarFicheiroDB(item);
            }

            return(Redirect("~/Produtos"));
        }
Пример #3
0
        public ActionResult Adicionar(int IdCliente, int IdLoja, DateTime txtData, int txtComercial, string Obs)
        {
            if (IdCliente == 0 && IdLoja == 0 && txtComercial == 0)
            {
                return(View());
            }

            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;
            Visita visita = new Visita()
            {
                IdVisita   = 0,
                DataVisita = txtData,
                Cliente    = new Cliente()
                {
                    IdCliente = IdCliente,
                    IdLoja    = IdLoja
                },
                IdComercial  = txtComercial,
                ResumoVisita = Obs,
                ObsVisita    = "",
                EstadoVisita = "Agendado",
                Contacto     = new Contacto()
                {
                    IdContacto = 0
                }
            };
            List <Visita> lstVisitas = new List <Visita>();

            lstVisitas.Add(visita);

            context.CriarVisitas(lstVisitas);
            context.AdicionarLog(context.ObterUtilizador(int.Parse(this.User.Claims.First().Value)).NomeUtilizador, "Foi adicionada uma visita nova ao cliente: " + IdCliente, 5);

            return(RedirectToAction("Index", "Visitas"));
        }
Пример #4
0
        public ActionResult ValidarPedido(string idcartao, string estado)
        {
            TrelloConector       trello  = HttpContext.RequestServices.GetService(typeof(TrelloConector)) as TrelloConector;
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            TrelloCartoes cartao = trello.ObterCartao(idcartao);

            foreach (var folhaObra in context.ObterListaFolhasObraCartao(idcartao))
            {
                //if (folhaObra.RelatorioServico != String.Empty && folhaObra.RelatorioServico != null) { trello.NovoComentario(folhaObra.IdCartao, folhaObra.RelatorioServico); }
                TrelloAnexos Anexo = new TrelloAnexos
                {
                    Id   = folhaObra.IdCartao,
                    Name = "FolhaObra_" + folhaObra.IdFolhaObra + ".pdf",
                    File = context.PreencherFormularioFolhaObra(folhaObra).ToArray(),
                };
                Anexo.dict.TryGetValue(Anexo.Name.Split('.').Last(), out string mimeType);
                Anexo.MimeType = mimeType;

                trello.NovoAnexo(Anexo);
            }

            trello.NovaLabel(idcartao, estado == "1" ? "green" : estado == "2" ? "yellow" : "red");
            return(RedirectToAction("ListaPedidos", new { idQuadro = cartao.IdQuadro, idlista = cartao.IdLista }));
        }
Пример #5
0
        public ActionResult Pedido(string idMarcacao, string IdTecnico)
        {
            if (idMarcacao == null)
            {
                return(RedirectToAction("Index"));
            }

            FT_ManagementContext context    = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;
            PHCContext           phccontext = HttpContext.RequestServices.GetService(typeof(PHCContext)) as PHCContext;

            phccontext.AtualizarMarcacoes();
            phccontext.AtualizarFolhasObra();

            Marcacao marcacao = context.ObterMarcacao(int.Parse(idMarcacao));

            marcacao.IdTecnico = int.Parse(IdTecnico);

            ViewData["PessoaContacto"] = marcacao.Cliente.PessoaContatoCliente;

            Utilizador user = context.ObterUtilizador(int.Parse(this.User.Claims.First().Value));

            ViewData["SelectedTecnico"] = user.NomeCompleto;
            ViewData["Tecnicos"]        = context.ObterListaUtilizadores().Where(u => u.TipoUtilizador != 3).ToList();

            return(View(marcacao));
        }
        public virtual ActionResult PrintFolhaObra(int id)
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;
            FolhaObra            fo      = context.ObterFolhaObra(id);

            if (!this.User.IsInRole("Admin") && !this.User.IsInRole("Escritorio") && fo.IntervencaosServico.Where(i => i.IdTecnico == context.ObterUtilizador(int.Parse(this.User.Claims.First().Value.ToString())).IdPHC).Count() == 0)
            {
                return(Redirect("~/Home/AcessoNegado"));
            }

            var file   = context.PreencherFormularioFolhaObra(fo).ToArray();
            var output = new MemoryStream();

            output.Write(file, 0, file.Length);
            output.Position = 0;

            var cd = new System.Net.Mime.ContentDisposition
            {
                FileName     = "FolhaObra_" + id + ".pdf",
                Inline       = false,
                Size         = file.Length,
                CreationDate = DateTime.Now,
            };

            Response.Headers.Add("Content-Disposition", cd.ToString());
            context.AdicionarLog(context.ObterUtilizador(int.Parse(this.User.Claims.First().Value)).NomeUtilizador, "Foi impressa uma folha de obra: " + id, 3);

            return(File(output, System.Net.Mime.MediaTypeNames.Application.Pdf));
        }
Пример #7
0
        public ActionResult Adicionar()
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            ViewData["Comerciais"] = context.ObterListaUtilizadores().Where(u => u.TipoUtilizador == 2).ToList();
            return(View());
        }
Пример #8
0
        public ActionResult Apagar(int idVisita, string ReturnUrl)
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            context.ApagarVisita(idVisita);

            return(Redirect(ReturnUrl));
        }
Пример #9
0
        public ActionResult Editar(int idVisita)
        {
            ViewData["ReturnUrl"] = Request.Query["ReturnUrl"];
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            ViewData["Comerciais"] = context.ObterListaUtilizadores().Where(u => u.TipoUtilizador == 2).ToList();
            return(View(context.ObterVisita(idVisita)));
        }
Пример #10
0
        public ActionResult Apagar(int Id)
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            context.ApagarContacto(Id);

            return(RedirectToAction("Index"));
        }
Пример #11
0
        public ActionResult ApagarIndividual(string id)
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            context.ApagarFerias(int.Parse(id));

            return(RedirectToAction("Detalhes"));
        }
Пример #12
0
        public JsonResult AdicionarAnexo(List <IFormFile> files, string NomeEmpresa, string NomeCliente)
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            EnviarNextCloud(files, ConfigurationManager.AppSetting["NextCloud:URL"], "[" + NomeEmpresa + "] " + NomeCliente, "Contactos");

            return(Json("ok"));
        }
Пример #13
0
        public ActionResult Apagar(string id)
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            context.ApagarAcesso(int.Parse(id));

            return(RedirectToAction("Index"));
        }
Пример #14
0
        public IActionResult Cliente(int IdCliente, int IdLoja)
        {
            FT_ManagementContext context    = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;
            PHCContext           phccontext = HttpContext.RequestServices.GetService(typeof(PHCContext)) as PHCContext;

            phccontext.AtualizarClientes();
            return(View(context.ObterClienteCompleto(IdCliente, IdLoja)));
        }
Пример #15
0
        // GET: Viaturas
        public ActionResult Index()
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            ViewData["Tecnicos"] = context.ObterListaUtilizadores().Where(u => u.TipoUtilizador != 3).ToList();

            return(View(context.ObterViaturas()));
        }
Пример #16
0
        public ActionResult Editar(Visita visita, string ReturnUrl)
        {
            FT_ManagementContext context    = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;
            List <Visita>        lstVisitas = new List <Visita>();

            lstVisitas.Add(visita);
            context.CriarVisitas(lstVisitas);
            return(Redirect(ReturnUrl));
        }
Пример #17
0
        public ActionResult AdicionarAnexo(List <IFormFile> files, int IdVisita, string ReturnUrl)
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;
            Visita visita = context.ObterVisita(IdVisita);

            EnviarNextCloud(files, ConfigurationManager.AppSetting["NextCloud:URL"], "Anexos", visita.Cliente.NomeCliente);

            return(Redirect(Request.Query["ReturnUrl"]));
        }
Пример #18
0
        public IActionResult Index()
        {
            FT_ManagementContext context    = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;
            PHCContext           phccontext = HttpContext.RequestServices.GetService(typeof(PHCContext)) as PHCContext;

            phccontext.AtualizarMarcacoes();

            return(View(context.ObterListaMarcacoesPendentes()));
        }
Пример #19
0
        // GET: Produtos/Create
        public ActionResult Criar()
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            var LstArmazens = context.ObterListaArmazens().ToList();

            ViewData["Armazens"] = new SelectList(LstArmazens, "ArmazemId", "ArmazemNome", 3);

            return(View());
        }
Пример #20
0
        public JsonResult ObterClientes(string prefix)
        {
            if (prefix is null)
            {
                prefix = "";
            }
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            return(Json(context.ObterListaClientes(prefix, false)));
        }
Пример #21
0
        public virtual ActionResult ObterIcs()
        {
            DateTime             d          = DateTime.Now;
            FT_ManagementContext context    = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;
            PHCContext           phccontext = HttpContext.RequestServices.GetService(typeof(PHCContext)) as PHCContext;

            phccontext.AtualizarMarcacoes();

            var             calendar     = new Calendar();
            List <Marcacao> LstMarcacoes = context.ObterListaMarcacoes(context.ObterUtilizador(int.Parse(this.User.Claims.First().Value)).IdPHC, DateTime.Now.AddDays(-30), DateTime.Now.AddDays(30)).OrderBy(m => m.DataMarcacao).ToList();

            foreach (Marcacao m in LstMarcacoes)
            {
                if (d.ToShortDateString() != m.DataMarcacao.ToShortDateString())
                {
                    d = m.DataMarcacao.Add(TimeSpan.FromHours(8));
                }

                var e = new CalendarEvent
                {
                    Start        = new CalDateTime(d),
                    End          = new CalDateTime(d.AddMinutes(30)),
                    LastModified = new CalDateTime(DateTime.Now),
                    Uid          = m.IdMarcacao.ToString(),
                    Description  = "### Estado do Pedido: " + m.EstadoMarcacaoDesc + " ###" + Environment.NewLine + Environment.NewLine + m.ResumoMarcacao,
                    Summary      = (m.EstadoMarcacao == 4 ? "✔ " : m.EstadoMarcacao != 1 && m.EstadoMarcacao != 5 ? "⌛ " : m.DataMarcacao < DateTime.Now ? "❌ " : "") + m.Cliente.NomeCliente,
                    Url          = new Uri("http://" + Request.Host + "/Pedidos/Pedido?idMarcacao=" + m.IdMarcacao + "&IdTecnico=" + context.ObterUtilizador(int.Parse(this.User.Claims.First().Value)).IdPHC)
                };
                calendar.Events.Add(e);
                d = d.AddMinutes(30);
            }

            var serializer = new CalendarSerializer();

            var serializedCalendar = serializer.SerializeToString(calendar);
            var bytesCalendar      = new UTF8Encoding(false).GetBytes(serializedCalendar);

            MemoryStream ms = new MemoryStream(bytesCalendar);

            ms.Write(bytesCalendar, 0, bytesCalendar.Length);
            ms.Position = 0;

            var cd = new System.Net.Mime.ContentDisposition
            {
                FileName     = "basic.ics",
                Inline       = false,
                Size         = bytesCalendar.Length,
                CreationDate = DateTime.Now
            };

            Response.Headers.Add("Content-Disposition", cd.ToString());


            return(File(ms, "text/calendar"));
        }
Пример #22
0
        public ActionResult Index()
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            if (!User.IsInRole("Admin") && !User.IsInRole("Escritorio"))
            {
                return(RedirectToAction("Detalhes", new { IdUtilizador = int.Parse(this.User.Claims.First().Value) }));
            }

            return(View(context.ObterListaUtilizadores()));
        }
Пример #23
0
        public IActionResult Novo()
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            ViewBag.AreasNegocio = context.ObterListaAreasNegocio().ToList().Select(l => new SelectListItem()
            {
                Value = l, Text = l
            });

            return(View());
        }
Пример #24
0
        // GET: Pedidos
        public ActionResult Index(int IdTecnico)
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            if (!User.IsInRole("Admin") && !User.IsInRole("Escritorio"))
            {
                IdTecnico = context.ObterUtilizador(int.Parse(this.User.Claims.First().Value)).IdPHC;
                return(RedirectToAction("ListaPedidos", new { IdTecnico = IdTecnico, DataPedidos = DateTime.Now.ToShortDateString() }));
            }

            return(View(context.ObterListaTecnicos()));
        }
Пример #25
0
        public IActionResult Login(string nome, string password)
        {
            ViewData["ReturnUrl"] = Request.Query["ReturnURL"];
            Utilizador utilizador = new Utilizador {
                NomeUtilizador = nome, Password = password
            };

            if (nome != null && password != null)
            {
                FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

                List <Utilizador> LstUtilizadores = context.ObterListaUtilizadores().Where(u => u.NomeUtilizador == utilizador.NomeUtilizador).ToList();

                if (LstUtilizadores.Count == 0)
                {
                    ModelState.AddModelError("", "Não foram encontrados utlizadores com esse nome!");
                }

                foreach (var user in LstUtilizadores)
                {
                    var passwordHasher = new PasswordHasher <string>();
                    if (passwordHasher.VerifyHashedPassword(null, user.Password, utilizador.Password) == PasswordVerificationResult.Success)
                    {
                        var claims = new List <Claim>
                        {
                            new Claim(ClaimTypes.Name, user.Id.ToString()),
                            new Claim(ClaimTypes.GivenName, user.NomeCompleto),
                            new Claim(ClaimTypes.Role, user.Admin ? "Admin" : "User"),
                            new Claim(ClaimTypes.Role, user.TipoUtilizador == 1 ? "Tech" : user.TipoUtilizador == 2 ? "Comercial" : "Escritorio")
                        };
                        var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
                        HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity));
                        context.AdicionarLog(utilizador.NomeUtilizador, "LOGIN SUCESSO", 4);

                        if (ViewData["ReturnUrl"].ToString() != "" && ViewData["ReturnUrl"].ToString() != null)
                        {
                            Response.Redirect(ViewData["ReturnUrl"].ToString(), true);
                        }
                        else
                        {
                            return(RedirectToAction("Index", "Home"));
                        }
                    }
                    else
                    {
                        context.AdicionarLog(utilizador.NomeUtilizador, "LOGIN SEM SUCESSO", 4);

                        ModelState.AddModelError("", "Password errada!");
                    }
                }
            }
            return(View());
        }
Пример #26
0
        public JsonResult AlteracaoCalendario(DateTime data, int id)
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            List <Visita> LstVisita = new List <Visita>();

            LstVisita.Add(context.ObterVisita(id));
            LstVisita.Last().DataVisita = data;

            context.CriarVisitas(LstVisita);
            return(Json("ok"));
        }
Пример #27
0
        public string MostrarCliente(int Id)
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;
            Cliente c = context.ObterClienteContribuinte(context.ObterContacto(Id).NIFContacto);

            if (c.IdCliente == 0)
            {
                throw new Exception();
            }

            return("/Clientes/Cliente?IdCliente=" + c.IdCliente + "&IdLoja=" + c.IdLoja);
        }
Пример #28
0
        public JsonResult EditarStockFisico(string refproduto, string stockfisico, int armazemid)
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;
            Produto produtoFinal         = context.ObterProduto(refproduto, armazemid);

            context.AdicionarLog(context.ObterUtilizador(int.Parse(this.User.Claims.First().Value)).NomeUtilizador, "Foi alterado o stock fisico do produto " + refproduto + " de " + produtoFinal.Stock_Fisico + " para " + stockfisico, 1);

            Double.TryParse(stockfisico, out double stock_fisico);
            produtoFinal.Stock_Fisico = stock_fisico;

            context.EditarArtigo(produtoFinal);
            return(Json("ok"));
        }
Пример #29
0
        // GET: VisitasController
        public ActionResult Index()
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            if (!User.IsInRole("Admin") && !User.IsInRole("Escritorio"))
            {
                return(RedirectToAction("ListaVisitas"));
            }
            else
            {
                return(View(context.ObterListaComerciais()));
            }
        }
Пример #30
0
        public ActionResult Visita(Visita visita)
        {
            FT_ManagementContext context = HttpContext.RequestServices.GetService(typeof(FT_ManagementContext)) as FT_ManagementContext;

            List <Visita> LstVisitas = new List <Visita> {
                visita
            };

            context.CriarVisitas(LstVisitas);


            return(Redirect(Request.Query["ReturnUrl"]));
        }