diff --git a/Controllers/TimbratureController.cs b/Controllers/TimbratureController.cs index 830ea1d..20a63a9 100644 --- a/Controllers/TimbratureController.cs +++ b/Controllers/TimbratureController.cs @@ -1,6 +1,8 @@ using ClosedXML.Excel; using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Rendering; using Newtonsoft.Json; +using System.Diagnostics; using VirtualTask.Models; using X.PagedList; @@ -29,7 +31,7 @@ namespace VirtualTask.Controllers #region INDEX - public IActionResult Index(DateTime dataTimb, string commessa, string tecnico, int? page = 1) + public IActionResult Index(DateTime dataIni, DateTime dataFin, string commessa, string tecnico, int? page = 1) { SessionHelper helper = new SessionHelper(this); token = helper.GetStringValue("tok"); @@ -57,30 +59,33 @@ namespace VirtualTask.Controllers string data = response.Content.ReadAsStringAsync().Result; modelList = JsonConvert.DeserializeObject>(data); - if (dataTimb.Date != DateTime.MinValue) + ViewBag.Timbrature = GetCommesse(); + + if (dataIni.Date != DateTime.MinValue) { - modelList = modelList.Where(x => x.data_timbratura.GetValueOrDefault().Date == dataTimb).ToList(); + modelList = modelList.Where(x => x.data_timbratura.GetValueOrDefault().Date >= dataIni.Date).ToList(); + } + if (dataFin.Date != DateTime.MinValue) + { + modelList = modelList.Where(x => x.data_timbratura.GetValueOrDefault().Date <= dataFin.Date).ToList(); } if (!string.IsNullOrEmpty(commessa)) { - modelList = modelList.Where(s => s.commessa.ToLower().Contains(commessa.ToLower())).ToList(); + modelList = modelList.Where(s => s.commessa.Contains(commessa)).ToList(); + + // ViewData["CurrentFilter"] = commessa; + + //ViewBag.Timbrature = commessa; } + else + //ViewData["CurrentFilter"] = null; if (!string.IsNullOrEmpty(tecnico)) { modelList = modelList.Where(s => s.tecnico.ToLower().Contains(tecnico.ToLower())).ToList(); - } - //if (id != 0) - //{ - // modelList = modelList.Where(s => s.id == id).ToList(); - // ViewData["CurrentFilter"] = id; - //} - //else - //{ - // ViewData["CurrentFilter"] = null; - //} + if (page != null && page < 1) { page = 1; @@ -148,7 +153,53 @@ namespace VirtualTask.Controllers #region metodi interni - public IActionResult ExportExcel(DateTime dataTimb, string commessa, string tecnico) + private List GetCommesse() + { + SessionHelper helper = new SessionHelper(this); + token = helper.GetStringValue("tok"); + apiUrl = helper.GetStringValue("apiUrl"); + urlBase = apiUrl + "commesseList"; + urlBase = urlBase + "?token=" + token; + Uri baseAddress = new Uri(urlBase); + client = new HttpClient(); + client.BaseAddress = baseAddress; + List selectItems = new List(); + List modelList = new List(); + HttpResponseMessage response = client.GetAsync(baseAddress).Result; + + if (response.IsSuccessStatusCode) + { + string data = response.Content.ReadAsStringAsync().Result; + modelList = JsonConvert.DeserializeObject>(data); + + //per gestire primo elemento tendina (deve essere vuoto) + SelectListItem listItemFirt = new SelectListItem(); + + listItemFirt.Value = string.Empty; + listItemFirt.Text = " - Commessa"; + selectItems.Add(listItemFirt); + + var appoggio = string.Empty; + + foreach (var role in modelList) + { + if (!appoggio.Equals(role.lacodcom)) + { + SelectListItem listItem = new SelectListItem(); + string s = role.lacodcom; + listItem.Value = role.lacodcom; + listItem.Text = s; + selectItems.Add(listItem); + } + + appoggio = role.lacodcom; + } + } + + return selectItems; + } + + public IActionResult ExportExcel(DateTime dataIni, DateTime dataFin, string commessa, string? tecnico) { SessionHelper helper = new SessionHelper(this); token = helper.GetStringValue("tok"); @@ -176,9 +227,13 @@ namespace VirtualTask.Controllers modelList = JsonConvert.DeserializeObject>(data); - if (dataTimb.Date != DateTime.MinValue) + if (dataIni.Date != DateTime.MinValue) { - modelList = modelList.Where(x => x.data_timbratura.GetValueOrDefault().Date == dataTimb).ToList(); + modelList = modelList.Where(x => x.data_timbratura.GetValueOrDefault().Date >= dataIni.Date).ToList(); + } + if (dataFin.Date != DateTime.MinValue) + { + modelList = modelList.Where(x => x.data_timbratura.GetValueOrDefault().Date <= dataFin.Date).ToList(); } if (!string.IsNullOrEmpty(commessa)) @@ -260,6 +315,14 @@ namespace VirtualTask.Controllers } } + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + public IActionResult Error() + { + SessionHelper helper = new SessionHelper(this); + string e = helper.GetStringValue("errMsg"); + return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier, ErrMsg = e }); + } + #endregion metodi interni } } diff --git a/Views/Timbrature/Index.cshtml b/Views/Timbrature/Index.cshtml index dfdd06d..b10b9df 100644 --- a/Views/Timbrature/Index.cshtml +++ b/Views/Timbrature/Index.cshtml @@ -18,15 +18,18 @@ {
- Data timbratura: + Data da: - @Html.TextBox("dataTimb", null, new { type = "date", @class = "agy-form-field require" }) + @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" }) Commessa: - @Html.TextBox("commessa", ViewBag.Timbrature, null, new { @class = "agy-form-field require" }) + @Html.DropDownList("commessa", ViewBag.Timbrature, null, new { @class = "agy-form-field require" }) Tecnico: - @Html.TextBox("tecnico", ViewBag.Timbrature, null, new { @class = "agy-form-field require" }) + @Html.TextBox("tecnico", null, new { placeholder = "", @class = "agy-form-field require" })
@@ -44,7 +47,8 @@ @using (Html.BeginForm("ExportExcel", "Timbrature")) { - @Html.Hidden("dataTimb", ViewBag.Timbrature, null) + @Html.Hidden("dataIni", ViewBag.Timbrature, null) + @Html.Hidden("dataFin", ViewBag.Timbrature, null) @Html.Hidden("commessa", ViewBag.Timbrature, null) @Html.Hidden("tecnico", ViewBag.Timbrature, null)