abbozzata aggiunta pagine statistiche

This commit is contained in:
Samuele Locatelli
2021-05-17 14:44:00 +02:00
parent b040c6d5fa
commit 21303b50a5
5 changed files with 405 additions and 8 deletions
+1 -1
View File
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31229.75
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MP-STATS", "MP.Stats\MP.Stats.csproj", "{D9901B50-E61C-400C-B62C-FA060CF72C29}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MP.Stats", "MP.Stats\MP.Stats.csproj", "{D9901B50-E61C-400C-B62C-FA060CF72C29}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MP.Data", "MP.Data\MP.Data.csproj", "{10BA8450-301D-49C7-8E1E-21B7469C225C}"
EndProject
+51 -7
View File
@@ -4,12 +4,56 @@
@using MP.Stats.Data
<div class="card">
<div class="card-header table-primary h1">Controlli</div>
<div class="card-header table-primary h1">Scarti</div>
<div class="card-body">
elenco controlli
@if (currRecord != null)
{
@*<BasketEditor Basket="@currBasket" DataReset="ResetData" DataUpdated="UpdateData"></BasketEditor>*@
}
@if (ListRecords == null)
{
<p><em>Loading...</em></p>
}
else
{
<table class="table table-sm table-striped">
<thead>
<tr>
@*<th></th>*@
<th>Macchina</th>
<th>Data</th>
<th>ODL/Commessa</th>
<th>Articolo</th>
<th>Descrizione</th>
<th>Qta</th>
<th>Operatore</th>
</tr>
</thead>
<tbody>
@foreach (var record in ListRecords)
{
<tr class="@checkSelect(@record.DataOra, @record.IdxMacchina, @record.Causale)">
@*<td><button class="btn btn-sm btn-info" @onclick="() => Edit(record)"><span class="oi oi-pencil"></span></button>&nbsp;<button class="btn btn-sm btn-success" @onclick="() => ShowDocs(record)" title="Vai ai documenti"><span class="oi oi-document"></span></button></td>*@
<td>@record.IdxMacchina</td>
<td>@record.DataOra</td>
<td>@record.IdxOdl | @record.KeyRichiesta</td>
<td>@record.CodArticolo</td>
<td>@record.Descrizione</td>
<td>@record.CodArticolo</td>
<td>@record.MatrOpr</td>
</tr>
}
</tbody>
</table>
}
</div>
</div>
@code {
}
<div class="card-footer py-1">
<div class="row">
<div class="col-8 col-lg-10">
</div>
<div class="col-4 col-lg-2">
<DataPager numRecord="@numRecord" numRecordChanged="ForceReload" />
</div>
</div>
</div>
</div>
+147
View File
@@ -0,0 +1,147 @@
using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
using MP.Stats.Data;
using System;
using System.Threading.Tasks;
namespace MP.Stats.Pages
{
public partial class Controlli : ComponentBase, IDisposable
{
#region Private Fields
private MP.Data.DatabaseModels.ResScarti currRecord = null;
private MP.Data.DatabaseModels.ResScarti[] ListRecords;
#endregion Private Fields
#region Private Properties
private int numRecord { get; set; } = 10;
#endregion Private Properties
#region Protected Properties
[Inject]
protected IJSRuntime JSRuntime { get; set; }
[Inject]
protected MessageService MessageService { get; set; }
[Inject]
protected NavigationManager NavManager { get; set; }
[Inject]
protected MpStatsService StatService { get; set; }
#endregion Protected Properties
#region Protected Methods
protected async Task ForceReload(int newNum)
{
numRecord = newNum;
ListRecords = await StatService.ScartiGetAll(numRecord, MessageService.SearchVal);
}
protected override async Task OnInitializedAsync()
{
numRecord = 10;
MessageService.ShowSearch = true;
MessageService.EA_SearchUpdated += OnSeachUpdated;
ListRecords = await StatService.ScartiGetAll(numRecord, MessageService.SearchVal);
}
protected void ResetData()
{
StatService.rollBackEdit(currRecord);
currRecord = null;
}
protected async Task UpdateData()
{
currRecord = null;
ListRecords = await StatService.ScartiGetAll(numRecord, MessageService.SearchVal);
}
#endregion Protected Methods
#region Public Methods
public string checkSelect(DateTime DataOra, string IdxMacchina, string Causale)
{
string answ = "";
if (currRecord != null)
{
try
{
answ = (currRecord.DataOra == DataOra && currRecord.IdxMacchina == IdxMacchina && currRecord.Causale == Causale) ? "table-info" : "";
}
catch
{ }
}
return answ;
}
public void Dispose()
{
MessageService.EA_SearchUpdated -= OnSeachUpdated;
}
public void OnSeachUpdated()
{
InvokeAsync(() =>
{
UpdateData();
StateHasChanged();
});
}
#endregion Public Methods
#if false
[Inject]
protected BBM_SelectData SelectData { get; set; }
protected void CreateNew()
{
// recupero counter
string newCode = BBMService.CounterGetNext("EGW.B", 6);
DatabaseModels.BasketsModel newRecord = new DatabaseModels.BasketsModel()
{
CodBasket = newCode,
DataIns = DateTime.Now,
CustomerId = 1,
Descript = "New Basket"
};
currBasket = newRecord;
}
protected async Task Delete(SHERPA.BBM.DatabaseModels.BasketsModel currRecord)
{
if (!await JSRuntime.InvokeAsync<bool>("confirm", $"Sicuro di voler eliminare il Basket '{currRecord.CodBasket}'?"))
return;
BBMService.BasketsDelete(currRecord);
await UpdateData();
}
protected void Edit(SHERPA.BBM.DatabaseModels.BasketsModel currRecord)
{
currBasket = currRecord;
}
protected void ShowDocs(SHERPA.BBM.DatabaseModels.BasketsModel currRecord)
{
// salvo
SelectData.BasketId = currRecord.BasketId;
SelectData.NegotiationId = 0;
// rimando...
NavManager.NavigateTo("docs");
}
#endif
}
}
+59
View File
@@ -0,0 +1,59 @@
@page "/userlog"
@using MP.Stats.Components
@using MP.Stats.Data
<div class="card">
<div class="card-header table-primary h1">Scarti</div>
<div class="card-body">
@if (currRecord != null)
{
@*<BasketEditor Basket="@currBasket" DataReset="ResetData" DataUpdated="UpdateData"></BasketEditor>*@
}
@if (ListRecords == null)
{
<p><em>Loading...</em></p>
}
else
{
<table class="table table-sm table-striped">
<thead>
<tr>
@*<th></th>*@
<th>Macchina</th>
<th>Data</th>
<th>ODL/Commessa</th>
<th>Articolo</th>
<th>Descrizione</th>
<th>Qta</th>
<th>Operatore</th>
</tr>
</thead>
<tbody>
@foreach (var record in ListRecords)
{
<tr class="@checkSelect(@record.DataOra, @record.IdxMacchina, @record.Causale)">
@*<td><button class="btn btn-sm btn-info" @onclick="() => Edit(record)"><span class="oi oi-pencil"></span></button>&nbsp;<button class="btn btn-sm btn-success" @onclick="() => ShowDocs(record)" title="Vai ai documenti"><span class="oi oi-document"></span></button></td>*@
<td>@record.IdxMacchina</td>
<td>@record.DataOra</td>
<td>@record.IdxOdl | @record.KeyRichiesta</td>
<td>@record.CodArticolo</td>
<td>@record.Descrizione</td>
<td>@record.CodArticolo</td>
<td>@record.MatrOpr</td>
</tr>
}
</tbody>
</table>
}
</div>
<div class="card-footer py-1">
<div class="row">
<div class="col-8 col-lg-10">
</div>
<div class="col-4 col-lg-2">
<DataPager numRecord="@numRecord" numRecordChanged="ForceReload" />
</div>
</div>
</div>
</div>
+147
View File
@@ -0,0 +1,147 @@
using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
using MP.Stats.Data;
using System;
using System.Threading.Tasks;
namespace MP.Stats.Pages
{
public partial class UserLog : ComponentBase, IDisposable
{
#region Private Fields
private MP.Data.DatabaseModels.ResScarti currRecord = null;
private MP.Data.DatabaseModels.ResScarti[] ListRecords;
#endregion Private Fields
#region Private Properties
private int numRecord { get; set; } = 10;
#endregion Private Properties
#region Protected Properties
[Inject]
protected IJSRuntime JSRuntime { get; set; }
[Inject]
protected MessageService MessageService { get; set; }
[Inject]
protected NavigationManager NavManager { get; set; }
[Inject]
protected MpStatsService StatService { get; set; }
#endregion Protected Properties
#region Protected Methods
protected async Task ForceReload(int newNum)
{
numRecord = newNum;
ListRecords = await StatService.ScartiGetAll(numRecord, MessageService.SearchVal);
}
protected override async Task OnInitializedAsync()
{
numRecord = 10;
MessageService.ShowSearch = true;
MessageService.EA_SearchUpdated += OnSeachUpdated;
ListRecords = await StatService.ScartiGetAll(numRecord, MessageService.SearchVal);
}
protected void ResetData()
{
StatService.rollBackEdit(currRecord);
currRecord = null;
}
protected async Task UpdateData()
{
currRecord = null;
ListRecords = await StatService.ScartiGetAll(numRecord, MessageService.SearchVal);
}
#endregion Protected Methods
#region Public Methods
public string checkSelect(DateTime DataOra, string IdxMacchina, string Causale)
{
string answ = "";
if (currRecord != null)
{
try
{
answ = (currRecord.DataOra == DataOra && currRecord.IdxMacchina == IdxMacchina && currRecord.Causale == Causale) ? "table-info" : "";
}
catch
{ }
}
return answ;
}
public void Dispose()
{
MessageService.EA_SearchUpdated -= OnSeachUpdated;
}
public void OnSeachUpdated()
{
InvokeAsync(() =>
{
UpdateData();
StateHasChanged();
});
}
#endregion Public Methods
#if false
[Inject]
protected BBM_SelectData SelectData { get; set; }
protected void CreateNew()
{
// recupero counter
string newCode = BBMService.CounterGetNext("EGW.B", 6);
DatabaseModels.BasketsModel newRecord = new DatabaseModels.BasketsModel()
{
CodBasket = newCode,
DataIns = DateTime.Now,
CustomerId = 1,
Descript = "New Basket"
};
currBasket = newRecord;
}
protected async Task Delete(SHERPA.BBM.DatabaseModels.BasketsModel currRecord)
{
if (!await JSRuntime.InvokeAsync<bool>("confirm", $"Sicuro di voler eliminare il Basket '{currRecord.CodBasket}'?"))
return;
BBMService.BasketsDelete(currRecord);
await UpdateData();
}
protected void Edit(SHERPA.BBM.DatabaseModels.BasketsModel currRecord)
{
currBasket = currRecord;
}
protected void ShowDocs(SHERPA.BBM.DatabaseModels.BasketsModel currRecord)
{
// salvo
SelectData.BasketId = currRecord.BasketId;
SelectData.NegotiationId = 0;
// rimando...
NavManager.NavigateTo("docs");
}
#endif
}
}