nuova procedura abbinamento

This commit is contained in:
Marco Audiffredi 2024-10-23 15:39:23 +02:00
parent a03518eb02
commit 461d23d67d
6 changed files with 504 additions and 6 deletions

View File

@ -91,7 +91,7 @@ namespace SoftwayWeb.Controllers
ViewBag.dataGiro = dataG;
}
urlBase = apiUrl + "Giri/listaDestinazioniByAutistaDataMezzo";
urlBase = apiUrl + "Giri/listaDestinazioniByAutistaDataMezzoNonValidate";
urlBase = urlBase + "?autista=" + codAutista + "&dataGiro=" + dataGi + "&mezzo=" + codMezzo;
Uri baseAddress = new Uri(urlBase);
client = new HttpClient();
@ -124,6 +124,103 @@ namespace SoftwayWeb.Controllers
return RedirectToAction("Error");
}
}
public IActionResult IndexValidate(string id, string? codAutista, string? nomeAutista, DateTime dataGiro, string? codMezzo, string? desMezzo, int? page = 1)
{
helper = new SessionHelper(this);
token = helper.GetStringValue("tok");
if (string.IsNullOrEmpty(token))
{
return RedirectToAction("Login", "Login");
}
string autista = string.Empty;
string dataGi = string.Empty;
string mezzo = string.Empty;
string dataGiro2 = string.Empty;
ViewBag.CodAutista = codAutista;
ViewBag.Autista = nomeAutista;
ViewBag.CodMezzo = codMezzo;
ViewBag.Automezzo = desMezzo;
ViewBag.dataGiro = dataGiro.ToString("dd/MM/yyyy");
if (!string.IsNullOrEmpty(codAutista))
{
helper.SetStringValue("codAutista", codAutista.TrimEnd());
helper.SetStringValue("nomeAutista", nomeAutista.TrimEnd());
}
else
{
string codAut = helper.GetStringValue("codAutista");
codAutista = codAut.TrimEnd();
ViewBag.CodAutista = codAutista;
string nomeAut = helper.GetStringValue("nomeAutista");
ViewBag.Autista = nomeAut;
}
if (!string.IsNullOrEmpty(codMezzo))
{
helper.SetStringValue("codMezzo", codMezzo.TrimEnd());
helper.SetStringValue("desMezzo", desMezzo.TrimEnd());
}
else
{
string mez = helper.GetStringValue("codMezzo").TrimEnd();
codMezzo = mez;
ViewBag.CodMezzo = codMezzo;
string nomeMezzo = helper.GetStringValue("desMezzo");
ViewBag.Automezzo = nomeMezzo;
}
if (dataGiro.Date != DateTime.MinValue)
{
helper.SetStringValue("dataGiro", dataGiro.ToString("yyyy-MM-dd'T'HH:mm:ss.fff'Z'"));
dataGi = dataGiro.ToString("yyyy-MM-dd'T'HH:mm:ss.fff'Z'");
helper.SetStringValue("dataGiro2", dataGiro.ToString("dd/MM/yyyy"));
}
else
{
dataGi = helper.GetStringValue("dataGiro");
string dataG = helper.GetStringValue("dataGiro2");
ViewBag.dataGiro = dataG;
}
urlBase = apiUrl + "Giri/listaDestinazioniByAutistaDataMezzo";
urlBase = urlBase + "?autista=" + codAutista + "&dataGiro=" + dataGi + "&mezzo=" + codMezzo;
Uri baseAddress = new Uri(urlBase);
client = new HttpClient();
client.BaseAddress = baseAddress;
List<Destinazioni_Out> modelList = new List<Destinazioni_Out>();
HttpResponseMessage response = client.GetAsync(baseAddress).Result;
if (response.IsSuccessStatusCode)
{
string dato = response.Content.ReadAsStringAsync().Result;
modelList = JsonConvert.DeserializeObject<List<Destinazioni_Out>>(dato);
modelList = modelList.Where(x => x.serialeGiro == id).OrderBy(x => x.Seq).ThenBy(x => x.Committente).ToList();
if (page != null && page < 1)
{
page = 1;
}
var pageSize = 10;
var shortList = modelList.ToPagedList(page ?? 1, pageSize);
return View(shortList);
}
else
{
errMes = response.Content.ReadAsStringAsync().Result;
helper.SetStringValue("errMsg", errMes);
return RedirectToAction("Error");
}
}
public IActionResult EliminaDestinazione(string serial)

View File

@ -57,19 +57,19 @@ namespace SoftwayWeb.Controllers
string _filtro= helper.GetStringValue("filterData");
if (data == DateTime.MinValue && string.IsNullOrEmpty(_filtro))
if (data == DateTime.MinValue && string.IsNullOrEmpty(_filtro) && modelList.Count()>0)
{
var last = modelList.OrderByDescending(t => t.DataGiro).Take(1).First();
modelList = modelList.Where(x => x.DataGiro == last.DataGiro).ToList();
}
if (data == DateTime.MinValue && !string.IsNullOrEmpty(_filtro))
if (data == DateTime.MinValue && !string.IsNullOrEmpty(_filtro) && modelList.Count() > 0)
{
DateTime dataFiltro=Convert.ToDateTime(_filtro);
ViewBag.Filtro = Convert.ToString(_filtro);
modelList = modelList.Where(x => x.DataGiro == dataFiltro).ToList();
}
if (data != DateTime.MinValue )
if (data != DateTime.MinValue && modelList.Count() > 0)
{
helper.SetStringValue("filterData", Convert.ToString( data));
ViewBag.Filtro = data.ToString("dd/MM/yyyy");

View File

@ -19,7 +19,7 @@
<br />
<b>Automezzo: @ViewBag.CodMezzo - @ViewBag.Automezzo</b>
</p>
<a asp-action="Index" asp-controller="Giri" value="Torna alla lista" class="btn btn-primary">Torna alla lista</a>
<a asp-action="Index" asp-controller="GiriDaValidare" value="Torna alla lista" class="btn btn-primary">Torna alla lista</a>
<br />
<br />

View File

@ -0,0 +1,400 @@
@* @model IEnumerable<SoftwayWeb.Models.Destinazioni_Out> *@
@* @model SoftwayWeb.Models.Destinazioni_Out *@
@model IPagedList<SoftwayWeb.Models.Destinazioni_Out>
@using X.PagedList;
@using X.PagedList.Mvc.Core;
@using X.PagedList;
@{
ViewData["Title"] = "Lista Destinazioni";
Layout = "~/Views/Shared/_LayoutAreaRis.cshtml";
}
<h1>Lista destinazioni</h1>
<p>
<b>Data giro: @ViewBag.dataGiro</b>
<br />
<b>Autista: @ViewBag.CodAutista - @ViewBag.Autista</b>
<br />
<b>Automezzo: @ViewBag.CodMezzo - @ViewBag.Automezzo</b>
</p>
<a asp-action="Index" asp-controller="Giri" value="Torna alla lista" class="btn btn-primary">Torna alla lista</a>
<br />
<br />
<!-- Striped Rows -->
<div class="card" >
<h5 class="card-header">Lista destinazioni</h5>
<div class="table-responsive text-nowrap">
<table class="table table-striped">
<thead>
<tr>
@*<th>&nbsp;</th>*@
<th>S.</th>
<th>Committente</th>
<th>Sede</th>
<th>Indirizzo sede</th>
<th>Ca.</th>
<th>Tr.</th>
<th>Co.</th>
<th>Nr.Co.</th>
<th>Uo</th>
<th>Ci.</th>
<th>Note</th>
<th>Bc - Bs</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody class="table-border-bottom-0">
@foreach (var item in Model) {
int diffBancali = 0;
string cl = string.Empty;
@if (item.ConsFatta != null)
{
@Html.HiddenFor(modelItem => item.ConsFatta.consFattaFlagCons)
@if (item.ConsFatta.consFattaFlagCons != null && item.ConsFatta.consFattaFlagCons.Contains("S"))
{
@*<img alt="cons" src="@Url.Content("~/images/Green.png")" style="width:16px;height:16px">*@
cl = "table-success";
}
else
{
cl = "table-danger";
@*<img alt="nocons" src="@Url.Content("~/images/Red.png")" style="width:16px;height:16px;">*@
}
}
else
{
@* <td>
<img alt="notyet" src="@Url.Content("~/images/yellow.png")" style="width:16px;height:16px;">
</td>*@
}
<tr class="@cl">
@* @if (item.ConsFatta != null)
{
<td >
@Html.HiddenFor(modelItem => item.ConsFatta.consFattaFlagCons)
@if (item.ConsFatta.consFattaFlagCons!=null && item.ConsFatta.consFattaFlagCons.Contains("S"))
{
<img alt="cons" src="@Url.Content("~/images/Green.png")" style="width:16px;height:16px">
}
else
{
<img alt="nocons" src="@Url.Content("~/images/Red.png")" style="width:16px;height:16px;">
}
</td>
}
else
{
<td>
<img alt="notyet" src="@Url.Content("~/images/yellow.png")" style="width:16px;height:16px;">
</td>
}*@
<td style="font-size:12px;border-right-width:2px"><i class="bx bxl-angular bx-sm text-danger me-3"></i>@Html.DisplayFor(modelItem => item.Seq)</td>
<td style="border-right-width:2px">@Html.DisplayFor(modelItem => item.Committente)</td>
<td style="border-right-width:2px">@*@Html.DisplayFor(modelItem => item.CodSede) - *@@Html.DisplayFor(modelItem => item.Sede)</td>
<td style="border-right-width:2px">@Html.DisplayFor(modelItem => item.IndirizzoSede)</td>
@if (item.Casse != null && item.Casse > 0)
{
int icasse = 0;
icasse = Convert.ToInt32(item.Casse);
<td style="font-size:12px; border-right-width:2px;text-align:center;">
@icasse
</td>
}
else
{
<td style="border-right-width:2px;text-align:center;">&nbsp;</td>
}
@if (item.Trasf != null && item.Trasf > 0)
{
<td style="font-size:12px; border-right-width:2px;text-align:center;">
@Html.DisplayFor(modelItem => item.Trasf)
</td>
}
else
{
<td style="border-right-width:2px">&nbsp;</td>
}
@if (item.Colli != null && item.Colli > 0)
{
int icolli = 0;
icolli = Convert.ToInt32(item.Colli);
<td style="font-size:12px;border-right-width:2px;text-align:center;">
@icolli
</td>
}
else
{
<td style="border-right-width:2px">&nbsp;</td>
}
@if (item.num_cons != null && item.num_cons > 0)
{
<td style="font-size:12px;border-right-width:2px;text-align:center;">
@Html.DisplayFor(modelItem => item.num_cons)
</td>
}
else
{
<td style="border-right-width:2px">&nbsp;</td>
}
@if (item.Uova != null && item.Uova > 0)
{
<td style="font-size:12px;border-right-width:2px;text-align:center;">
@Html.DisplayFor(modelItem => item.Uova)
</td>
}
else
{
<td style="border-right-width:2px">&nbsp;</td>
}
@if (item.Cist != null && item.Cist > 0)
{
<td style="font-size:12px;border-right-width:2px;text-align:center;">
@Html.DisplayFor(modelItem => item.Cist)
</td>
}
else
{
<td style="border-right-width:2px">&nbsp;</td>
}
<td style="font-size:12px;border-right-width:2px">
@Html.DisplayFor(modelItem => item.Note)
</td>
@if (item.ConsFatta != null && item.ConsFatta.consFattaBanCar != null && item.ConsFatta.consFattaBanSca!=null)
{
diffBancali = item.ConsFatta.consFattaBanCar.Value - item.ConsFatta.consFattaBanSca.Value;
<td style="text-align:center;border-right-width:2px;text-align:center;">
<a href="@Url.ActionLink("Dettaglio","Consegne", new{id = item.Brserial,
codAutista = item.CodAutista,
dataGiro = item.DataCarico,
codMezzo = item.CodAutomezzo})" class="links"><span class="badge bg-label-primary me-2" style="font-size:16pt;color:black;"> @diffBancali</span></a>
</td>
}
else
{
<td style="border-right-width:2px">&nbsp;</td>
}
@if (item.ConsFatta == null)
{
<td>
@if (!string.IsNullOrEmpty(item.Prog))
{
<img alt="nocons" src="@Url.Content("~/images/warning.png")" style="width:16px;height:16px;">
}
<a href="@Url.ActionLink("EliminaDestinazione", "Destinazioni", new { serial=item.Brserial })" title="Elimina Destinazione" class="links"><img alt="nocons" src="@Url.Content("~/images/icons8-rimuovere-24.png")" style="width:16px;height:16px;"></a>
</td>
<td>
<a href="@Url.ActionLink("ModificaDestinazione", "Destinazioni", new { serial=item.Brserial })" title="Modifica Destinazione" class="links"><img alt="nocons" src="@Url.Content("~/images/system.png")" style="width:16px;height:16px;"></a>
</td>
}
else
{
<td>&nbsp;</td>
<td>&nbsp;</td>
}
</tr>
}
</tbody>
</table>
</div>
</div>
<br />
<span style=" height: 16px;
width: 16px;
background-color: #dfc2c4;
border-radius: 50%;
display: inline-block;"></span>
<span>&nbsp;Consegna non effettuata</span>
<span style=" height: 16px;
width: 16px;
background-color: #c7dbd2;
border-radius: 50%;
display: inline-block;"></span>
<span>&nbsp;Consegna completata</span>
<span style=" height: 16px;
width: 16px;
background-color: #dee2e6;
border-radius: 50%;
display: inline-block;"></span>
<span>&nbsp;Consegna da effettuare</span>
<span>
<img alt="nocons" src="@Url.Content("~/images/warning.png")" style="width:16px;height:16px;">
</span>
<span>&nbsp;Destinazione modificata</span>
<!--/ Striped Rows -->
@*<table class="table" style="width:100%">
<thead>
<tr>
<th>&nbsp;</th>
<th>Seq</th>
<th>Committente</th>
<th>Sede</th>
<th>Indirizzo sede</th>
<th>Casse</th>
<th>Trasf.</th>
<th>Colli</th>
<th>Nr.Cons.</th>
<th>Uova</th>
<th>Cist</th>
<th>Note</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model) {
<tr>
@if (item.ConsFatta != null)
{
<td>
@Html.HiddenFor(modelItem => item.ConsFatta.consFattaFlagCons)
@if (item.ConsFatta.consFattaFlagCons.Contains("S"))
{
<img alt="cons" src="@Url.Content("~/images/Green.png")" style="width:24px;height:24px">
}
else
{
<img alt="nocons" src="@Url.Content("~/images/Red.png")" style="width:24px;height:24px;">
}
</td>
}
else
{
<td>
<img alt="notyet" src="@Url.Content("~/images/yellow.png")" style="width:24px;height:24px;">
</td>
}
<td>
@Html.DisplayFor(modelItem => item.Seq)
</td>
<td>
@Html.DisplayFor(modelItem => item.CodCommittente) - @Html.DisplayFor(modelItem => item.Committente)
</td>
<td>
@Html.DisplayFor(modelItem => item.CodSede) - @Html.DisplayFor(modelItem => item.Sede)
</td>
<td>
@Html.DisplayFor(modelItem => item.IndirizzoSede)
</td>
@if (item.Casse != null && item.Casse>0)
{
<td>
@Html.DisplayFor(modelItem => item.Casse)
</td>
}
else
{
<td>&nbsp;</td>
}
@if (item.Trasf != null && item.Trasf > 0)
{
<td>
@Html.DisplayFor(modelItem => item.Trasf)
</td>
}
else
{
<td>&nbsp;</td>
}
@if (item.Colli != null && item.Colli > 0)
{
<td>
@Html.DisplayFor(modelItem => item.Colli)
</td>
}
else
{
<td>&nbsp;</td>
}
@if (item.num_cons != null && item.num_cons > 0)
{
<td>
@Html.DisplayFor(modelItem => item.num_cons)
</td>
}
else
{
<td>&nbsp;</td>
}
@if (item.Uova != null && item.Uova > 0)
{
<td>
@Html.DisplayFor(modelItem => item.Uova)
</td>
}
else
{
<td>&nbsp;</td>
}
@if (item.Cist != null && item.Cist > 0)
{
<td>
@Html.DisplayFor(modelItem => item.Cist)
</td>
}
else
{
<td>&nbsp;</td>
}
<td>
@Html.DisplayFor(modelItem => item.Note)
</td>
@if (item.ConsFatta == null)
{
<td>
@if (!string.IsNullOrEmpty(item.Prog))
{
<img alt="nocons" src="@Url.Content("~/images/warning.png")" style="width:24px;height:24px;">
}
<a href="@Url.ActionLink("EliminaDestinazione", "Destinazioni", new { serial=item.Brserial })" title="Elimina Destinazione" class="links"><img alt="nocons" src="@Url.Content("~/images/icons8-rimuovere-24.png")" style="width:24px;height:24px;"></a>
</td>
<td>
<a href="@Url.ActionLink("ModificaDestinazione", "Destinazioni", new { serial=item.Brserial })" title="Modifica Destinazione" class="links"><img alt="nocons" src="@Url.Content("~/images/system.png")" style="width:24px;height:24px;"></a>
</td>
}
else
{
<td>&nbsp;</td>
<td>&nbsp;</td>
}
</tr>
}
</tbody>
</table>*@
<br />
<nav>
@Html.PagedListPager(Model, page => Url.Action("indexValidate", new { page = page, Model/* searchString = @ViewData["CurrentFilter"] */ }), new PagedListRenderOptions()
{
ActiveLiElementClass = "active",
PageClasses = new[] { "page-link" },
LiElementClasses = new[] { "page-item" },
UlElementClasses = new[] { "pagination", "justify-content-center", "mt-3" },
LinkToNextPageFormat = "Successiva",
LinkToPreviousPageFormat = "Precedente",
MaximumPageNumbersToDisplay = 5,
DisplayLinkToPreviousPage = PagedListDisplayMode.Always,
DisplayLinkToNextPage = PagedListDisplayMode.Always
})
</nav>

View File

@ -111,7 +111,7 @@
}
<td>
<a href="@Url.ActionLink("Index", "Destinazioni", new { id=item.SerialeGiro,
<a href="@Url.ActionLink("IndexValidate", "Destinazioni", new { id=item.SerialeGiro,
codAutista=item.CodAutista,
nomeAutista=item.Autista,
dataGiro=item.DataGiro,

View File

@ -7,6 +7,7 @@
},
"ApplicationInsights": {
"rootUrlApi": "https://api.poloinformatico.it:8000/api/"
//"rootUrlApi": "https://localhost:7126/api/"
},