From a5ad8321e3fc3d35763d7e377b1b8a164896a15a Mon Sep 17 00:00:00 2001 From: michele Date: Mon, 23 Sep 2024 15:58:07 +0200 Subject: [PATCH] Michele: filtri nuovi Chiamate --- Controllers/ChiamateController.cs | 68 ++++++++++++++++++++++++++++--- Views/Chiamate/Index.cshtml | 34 +++++++++++++--- 2 files changed, 91 insertions(+), 11 deletions(-) diff --git a/Controllers/ChiamateController.cs b/Controllers/ChiamateController.cs index e034a9f..306c8ba 100644 --- a/Controllers/ChiamateController.cs +++ b/Controllers/ChiamateController.cs @@ -35,7 +35,7 @@ namespace VirtualTask.Controllers #region INDEX - public IActionResult Index(string searchString, int? page = 1) + public IActionResult Index(string impianto, string tecnico, DateTime dataIni, DateTime dataFin, string stato, string indirizzo, int? page = 1) { SessionHelper helper = new SessionHelper(this); token = helper.GetStringValue("tok"); @@ -48,6 +48,7 @@ namespace VirtualTask.Controllers ViewBag.Admin = admin; time_sheet = helper.GetStringValue("time_sheet"); ViewBag.TimeSheet = time_sheet; + urlBase = apiUrl + "chiamateListMngr"; urlBase = urlBase + "?token=" + token; Uri baseAddress = new Uri(urlBase); @@ -61,12 +62,67 @@ namespace VirtualTask.Controllers { string data = response.Content.ReadAsStringAsync().Result; modelList = JsonConvert.DeserializeObject>(data); - - if (!string.IsNullOrEmpty(searchString)) - { - modelList = modelList.Where(s => s.chcodimp.ToUpper().Contains(searchString.ToUpper())).ToList(); - ViewData["CurrentFilter"] = searchString; + ViewBag.Impianti = getImpianti(); + ViewBag.Tecnici = getTecnici(); + ViewBag.StatiChiamata = getStatiChiamata(); + + //if (!string.IsNullOrEmpty(searchString)) + //{ + // modelList = modelList.Where(s => s.chcodimp.ToUpper().Contains(searchString.ToUpper())).ToList(); + + // ViewData["CurrentFilter"] = searchString; + //} + //else + // ViewData["CurrentFilter"] = null; + + if (!string.IsNullOrEmpty(impianto)) + { + modelList = modelList.Where(s => s.chcodimp.Contains(impianto)).ToList(); + + ViewData["CurrentFilter"] = impianto; + + ViewBag.Impianto = impianto; + } + else + ViewData["CurrentFilter"] = null; + + if (!string.IsNullOrEmpty(tecnico)) + { + modelList = modelList.Where(s => s.chtchiam.Contains(tecnico)).ToList(); + + ViewData["CurrentFilter"] = tecnico; + + ViewBag.Impianto = tecnico; + } + else + ViewData["CurrentFilter"] = null; + + if (dataIni.Date != DateTime.MinValue) + { + modelList = modelList.Where(x => x.chdata.GetValueOrDefault().Date >= dataIni.Date).ToList(); + } + if (dataFin.Date != DateTime.MinValue) + { + modelList = modelList.Where(x => x.chdata.GetValueOrDefault().Date <= dataFin.Date).ToList(); + } + + if (!string.IsNullOrEmpty(stato)) + { + modelList = modelList.Where(x => x.chstato.Contains(stato)).ToList(); + + ViewData["CurrentFilter"] = stato; + + ViewBag.Impianto = stato; + } + else + ViewData["CurrentFilter"] = null; + + if (!string.IsNullOrEmpty(indirizzo)) + { + modelList = modelList.Where(s => s.indirizzoBreve.ToUpper().Contains(indirizzo.ToUpper())).ToList(); + + ViewData["CurrentFilter"] = indirizzo; } else ViewData["CurrentFilter"] = null; diff --git a/Views/Chiamate/Index.cshtml b/Views/Chiamate/Index.cshtml index 45c63bc..9f00231 100644 --- a/Views/Chiamate/Index.cshtml +++ b/Views/Chiamate/Index.cshtml @@ -12,17 +12,41 @@
-

Crea un nuovo elemento

- @using (Html.BeginForm()) + + @using (Html.BeginForm("Index","Chiamate")) {
-
@Html.TextBox("SearchString", null, new { placeholder = "Cerca per impianto", @class = "agy-form-field require" })
-
 
-
+
+ Tecnico: + @Html.DropDownList("tecnico", ViewBag.Tecnici, null, new { @class = "agy-form-field require" }) + + Impianto: + @Html.DropDownList("impianto", ViewBag.Impianti, null, new { @class = "agy-form-field require" }) + + Data da: + @Html.TextBox("dataIni", null, new { type = "date", @class = "agy-form-field require" }) + + Data a: + @Html.TextBox("dataFin", null, new { type = "date", @class = "agy-form-field require" }) + + Stato chiamata: + @Html.DropDownList("stato", ViewBag.StatiChiamata, null, new { @class = "agy-form-field require" }) + + Indirizzo: +
+ @Html.TextBox("indirizzo", null, new { placeholder = "Cerca per indirizzo", @class = "agy-form-field require" }) +
+ +
+
+ +
 
+
 
+
 
}