public ActionResult CancelarServico(int?idServico) { FuncionarioController funcC = new FuncionarioController(); if (idServico.HasValue) { var servico = (from m in db.Servico where m.Id == idServico.Value select m).First(); int idFatura = servico.Id_Fatura; var fatura = (from m in db.Fatura where m.Id == idFatura select m).First(); var servicoFunc = servico.Funcionario; servico.SetEstadoCancalado(); db.SaveChanges(); } return(RedirectToAction("HistoricoServicos", "Cliente")); }
public ActionResult RequisitarServico(string cp, string rua, int?nrPorta, string apartamento) { FuncionarioController funcC = new FuncionarioController(); var id_Pack = Helpers.CacheController.id_Pack; var data = Helpers.CacheController.Data; var servs = from m in db.Servico select m; int lengthS = servs.ToList <Servico>().Count; lengthS += 1; var fatur = from m in db.Fatura select m; int lengthF = fatur.ToList <Fatura>().Count; lengthF += 1; string estado = "Agendado"; int idCliente = Int32.Parse(User.Identity.Name); var pack = (from m in db.Pack where m.Id == id_Pack select m).First(); decimal precoAux = pack.Preco; var localidade = (from m in db.CP_Localidade where m.Id == cp select m).ToList().FirstOrDefault(); var cliente = (from c in db.Cliente where c.Id == idCliente select c).ToList().FirstOrDefault(); Fatura fact = new Fatura() { Id = lengthF, Apartamento = apartamento, CP = cp, CP_Localidade = localidade, Data = data, Id_Pack = id_Pack, Localidade = localidade.Localidade, NIF = cliente.Id, Nome_Cliente = cliente.Nome, Nome_Pack = pack.Nome, Nr = nrPorta.Value, Preco = pack.Preco, Rua = rua, Servico = servs.Where(x => x.Id_Pack == id_Pack && (DbFunctions.TruncateTime(x.DataHora) == DbFunctions.TruncateTime(data))).ToList() }; string comentario = ""; Servico serv = new Servico(lengthS, data, precoAux, estado, apartamento, cp, rua, nrPorta.Value, idCliente, id_Pack, lengthF, comentario); if (ModelState.IsValid) { db.Fatura.Add(fact); db.SaveChanges(); db.Servico.Add(serv); db.SaveChanges(); funcC.AlocarFuncionarios(lengthS); } ViewBag.Message = "Serviço Registado Com Sucesso"; ///////////////////////////////////////////Geração de Email com confirmação do serviço////////////////////////////////////////////////////////// string emailC = cliente.Email; string nomeP = pack.Nome; string loc = localidade.Localidade; Helpers.GeradorFaturas.ConfirmarServicoEmail(emailC, precoAux, data, nomeP, rua, loc, cp); ///////////////////////////////////////////////////////////////////////////////////////////////////// return(RedirectToAction("Index", "Cliente")); }