Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 67f0f74fbe | |||
| d00b4bbb8b | |||
| dd63bb292d | |||
| 57bc790074 | |||
| 41a00ffa45 | |||
| 633b5dda6e | |||
| 5d6bef0fc8 | |||
| d24b2ada0c | |||
| 0a9ccffe28 | |||
| 207d305327 |
@@ -741,6 +741,47 @@ namespace MP.Data.Controllers
|
|||||||
return dbResult;
|
return dbResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Recupero Odl CORRENTE x macchina (SE c'è)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idxMacchina"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public ODLModel OdlGetCurrentByMacc(string idxMacchina)
|
||||||
|
{
|
||||||
|
ODLModel dbResult = new ODLModel();
|
||||||
|
|
||||||
|
using (var dbCtx = new MoonProContext(_configuration))
|
||||||
|
{
|
||||||
|
dbResult = dbCtx
|
||||||
|
.DbSetODL
|
||||||
|
.FirstOrDefault(x => x.IdxMacchina == idxMacchina && x.DataInizio != null && x.DataFine == null);
|
||||||
|
}
|
||||||
|
return dbResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Statistiche ODL calcolate (da stored stp_STAT_ODL)
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<List<StatODLModel>> OdlStart(int IdxOdl)
|
||||||
|
{
|
||||||
|
List<StatODLModel> dbResult = new List<StatODLModel>();
|
||||||
|
if (IdxOdl > 0)
|
||||||
|
{
|
||||||
|
using (var dbCtx = new MoonProContext(_configuration))
|
||||||
|
{
|
||||||
|
var IdxODL = new SqlParameter("@IdxODL", IdxOdl);
|
||||||
|
|
||||||
|
dbResult = await dbCtx
|
||||||
|
.DbSetStatOdl
|
||||||
|
.FromSqlRaw("EXEC stp_STAT_ODL @IdxODL", IdxODL)
|
||||||
|
.AsNoTracking()
|
||||||
|
.ToListAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dbResult;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Elenco parametri validi x una data macchina
|
/// Elenco parametri validi x una data macchina
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -762,6 +803,33 @@ namespace MP.Data.Controllers
|
|||||||
return dbResult;
|
return dbResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Recupero PODL da chiave
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idxPODL"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<PODLModel> PODL_getByKey(int idxPODL)
|
||||||
|
{
|
||||||
|
PODLModel dbResult = new PODLModel();
|
||||||
|
using (var dbCtx = new MoonProContext(_configuration))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
dbResult = dbCtx
|
||||||
|
.DbSetPODL
|
||||||
|
.AsNoTracking()
|
||||||
|
.Where(x => x.IdxPromessa == idxPODL)
|
||||||
|
.FirstOrDefault();
|
||||||
|
}
|
||||||
|
catch (Exception exc)
|
||||||
|
{
|
||||||
|
Log.Error($"Eccezione durante PODL_getByKey{Environment.NewLine}{exc}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await Task.Delay(1);
|
||||||
|
return dbResult;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Avvio setup ODL da PODL
|
/// Avvio setup ODL da PODL
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -771,17 +839,19 @@ namespace MP.Data.Controllers
|
|||||||
/// <param name="pzPallet"></param>
|
/// <param name="pzPallet"></param>
|
||||||
/// <param name="note"></param>
|
/// <param name="note"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<ODLModel> PODL_startSetup(PODLModel editRec, int matrOpr, double tcRich, int pzPallet, string note)
|
public async Task<bool> PODL_startSetup(PODLModel editRec, int matrOpr, double tcRich, int pzPallet, string note)
|
||||||
{
|
{
|
||||||
ODLModel dbResult = new ODLModel();
|
bool answ = false;
|
||||||
using (var dbCtx = new MoonProContext(_configuration))
|
using (var dbCtx = new MoonProContext(_configuration))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var currRec = dbCtx
|
var currRec = dbCtx
|
||||||
.DbSetPODL
|
.DbSetPODL
|
||||||
|
.AsNoTracking()
|
||||||
.Where(x => x.IdxPromessa == editRec.IdxPromessa)
|
.Where(x => x.IdxPromessa == editRec.IdxPromessa)
|
||||||
.FirstOrDefault();
|
.FirstOrDefault();
|
||||||
|
|
||||||
if (currRec != null)
|
if (currRec != null)
|
||||||
{
|
{
|
||||||
// eseguo stored attrezzaggio
|
// eseguo stored attrezzaggio
|
||||||
@@ -793,13 +863,9 @@ namespace MP.Data.Controllers
|
|||||||
var Note = new SqlParameter("@Note", note);
|
var Note = new SqlParameter("@Note", note);
|
||||||
var callResult = await dbCtx
|
var callResult = await dbCtx
|
||||||
.Database
|
.Database
|
||||||
.ExecuteSqlRawAsync("EXEC stp_ODL_inizioSetupPromessa @idxPromessa, @MatrOpr, @IdxMacchina @TCRichAttr, @PzPallet, @Note", IdxPromessa, MatrOpr, IdxMacchina, TCRichAttr, PzPallet, Note);
|
.ExecuteSqlRawAsync("EXEC stp_ODL_inizioSetupPromessa @idxPromessa, @MatrOpr, @IdxMacchina, @TCRichAttr, @PzPallet, @Note", IdxPromessa, MatrOpr, IdxMacchina, TCRichAttr, PzPallet, Note);
|
||||||
|
|
||||||
// recupero info su ODL corrente
|
answ = true;
|
||||||
dbResult = await dbCtx
|
|
||||||
.DbSetODL
|
|
||||||
.Where(x => x.IdxMacchina == editRec.IdxMacchina && x.DataInizio != null && x.DataFine == null)
|
|
||||||
.FirstOrDefaultAsync();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception exc)
|
catch (Exception exc)
|
||||||
@@ -808,7 +874,7 @@ namespace MP.Data.Controllers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
await Task.Delay(1);
|
await Task.Delay(1);
|
||||||
return dbResult;
|
return answ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -911,29 +977,6 @@ namespace MP.Data.Controllers
|
|||||||
return answ;
|
return answ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Statistiche ODL calcolate (da stored stp_STAT_ODL)
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
public async Task<List<StatODLModel>> StatOdl(int IdxOdl)
|
|
||||||
{
|
|
||||||
List<StatODLModel> dbResult = new List<StatODLModel>();
|
|
||||||
if (IdxOdl > 0)
|
|
||||||
{
|
|
||||||
using (var dbCtx = new MoonProContext(_configuration))
|
|
||||||
{
|
|
||||||
var IdxODL = new SqlParameter("@IdxODL", IdxOdl);
|
|
||||||
|
|
||||||
dbResult = await dbCtx
|
|
||||||
.DbSetStatOdl
|
|
||||||
.FromSqlRaw("EXEC stp_STAT_ODL @IdxODL", IdxODL)
|
|
||||||
.AsNoTracking()
|
|
||||||
.ToListAsync();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return dbResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Stato prod macchina
|
/// Stato prod macchina
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ else
|
|||||||
<b>@record.DurataMinuti</b>
|
<b>@record.DurataMinuti</b>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button class="btn btn-sm btn-primary py-0" type="button" @onclick="() => selectRecord(record)" data-bs-toggle="modal" data-bs-target="#myModal" title="Mostra statistiche"><i class="fa-solid fa-chart-pie"></i></button>
|
<button class="btn btn-sm btn-primary py-0" type="button" @onclick="() => selectStatRecord(record)" data-bs-toggle="modal" data-bs-target="#myModal" title="Mostra statistiche"><i class="fa-solid fa-chart-pie"></i></button>
|
||||||
</div>
|
</div>
|
||||||
<!-- Modal -->
|
<!-- Modal -->
|
||||||
</td>
|
</td>
|
||||||
@@ -122,26 +122,26 @@ else
|
|||||||
<div class="modal-dialog modal-dialog-centered modal-xl">
|
<div class="modal-dialog modal-dialog-centered modal-xl">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header bg-primary col-12">
|
<div class="modal-header bg-primary col-12">
|
||||||
@if (currRecord != null)
|
@if (statRecord != null)
|
||||||
{
|
{
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<b class="modal-title fs-1" id="staticBackdropLabel"><b>ODL @currRecord.IdxOdl</b></b>
|
<b class="modal-title fs-1" id="staticBackdropLabel"><b>ODL @statRecord.IdxOdl</b></b>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6 fs-5">
|
<div class="col-6 fs-5">
|
||||||
<b>@currRecord.CodArticolo</b>
|
<b>@statRecord.CodArticolo</b>
|
||||||
<div class="small textConsensed text-light">@currRecord.ArticoloNav.DescArticolo</div>
|
<div class="small textConsensed text-light">@statRecord.ArticoloNav.DescArticolo</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-2 fs-5">
|
<div class="col-2 fs-5">
|
||||||
<b>@currRecord.IdxMacchina</b>
|
<b>@statRecord.IdxMacchina</b>
|
||||||
<div class="small textConsensed text-light">@currRecord.MachineNav.Descrizione</div>
|
<div class="small textConsensed text-light">@statRecord.MachineNav.Descrizione</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
<div class="col-1 text-end">
|
<div class="col-1 text-end">
|
||||||
<button type="button" class="btn btn-close" data-bs-dismiss="modal" aria-label="Close" @onclick="TriggerDotNetInstanceMethod"></button>
|
<button type="button" class="btn btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body col-12">
|
<div class="modal-body col-12">
|
||||||
@if (currRecord != null && showStats)
|
@if (statRecord != null && showStats)
|
||||||
{
|
{
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
<div class="col-8">
|
<div class="col-8">
|
||||||
@@ -150,23 +150,23 @@ else
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 270px">
|
<td style="width: 270px">
|
||||||
<div class="small textConsensed"><b>N° pezzi:</b> @currRecord.NumPezzi</div>
|
<div class="small textConsensed"><b>N° pezzi:</b> @statRecord.NumPezzi</div>
|
||||||
<div class="small textConsensed"><b>T. Ciclo:</b> @currRecord.Tcassegnato.ToString("N3")</div>
|
<div class="small textConsensed"><b>T. Ciclo:</b> @statRecord.Tcassegnato.ToString("N3")</div>
|
||||||
</td>
|
</td>
|
||||||
<td style="width: 300px">
|
<td style="width: 300px">
|
||||||
<div class="small d-flex justify-content-between">
|
<div class="small d-flex justify-content-between">
|
||||||
<div>
|
<div>
|
||||||
<div><b>@($"{@currRecord.DataInizio:yyyy/MM/dd}")</b></div>
|
<div><b>@($"{@statRecord.DataInizio:yyyy/MM/dd}")</b></div>
|
||||||
<div>@($"{@currRecord.DataInizio:ddd HH:mm:ss}")</div>
|
<div>@($"{@statRecord.DataInizio:ddd HH:mm:ss}")</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-0">
|
<div class="p-0">
|
||||||
<i class="fa-solid fa-angles-right"></i>
|
<i class="fa-solid fa-angles-right"></i>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@if (@currRecord.DataFine != null)
|
@if (@statRecord.DataFine != null)
|
||||||
{
|
{
|
||||||
<div><b>@($"{@currRecord.DataFine:yyyy/MM/dd}")</b></div>
|
<div><b>@($"{@statRecord.DataFine:yyyy/MM/dd}")</b></div>
|
||||||
<div>@($"{@currRecord.DataFine:ddd HH:mm:ss}")</div>
|
<div>@($"{@statRecord.DataFine:ddd HH:mm:ss}")</div>
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -192,12 +192,12 @@ else
|
|||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div>
|
<div>
|
||||||
@tradFase(currRecord.KeyRichiesta)
|
@tradFase(statRecord.KeyRichiesta)
|
||||||
</div>
|
</div>
|
||||||
@if (currRecord.Note != "")
|
@if (statRecord.Note != "")
|
||||||
{
|
{
|
||||||
<div class="small textConsensed text-secondary badge text-bg-light border border-secondary rounded">
|
<div class="small textConsensed text-secondary badge text-bg-light border border-secondary rounded">
|
||||||
<b class="text-dark"></b> <span class="text-wrap text-start"> @currRecord.Note </span>
|
<b class="text-dark"></b> <span class="text-wrap text-start"> @statRecord.Note </span>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</td>
|
</td>
|
||||||
@@ -206,25 +206,25 @@ else
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@if (currRecord != null)
|
@if (statRecord != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
@if (ListOdlStats != null)
|
@if (ListOdlStats != null)
|
||||||
{
|
{
|
||||||
@foreach (var statRecord in ListOdlStats)
|
@foreach (var stat in ListOdlStats)
|
||||||
{
|
{
|
||||||
<div class="p-1">
|
<div class="p-1">
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
<div class="text-uppercase">
|
<div class="text-uppercase">
|
||||||
@statRecord.Descrizione
|
@stat.Descrizione
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<b>@(formDurata(statRecord.TotDurata))</b>
|
<b>@(formDurata(stat.TotDurata))</b>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="progress">
|
<div class="progress">
|
||||||
<div class="progress-bar @colorChanger(@statRecord.Css)" role="progressbar" aria-valuenow="0" aria-valuemin="0" style="width: @Math.Round(calcolaPerc(statRecord.TotDurata),0)%; background-color:@statRecord.Css;" aria-valuemax="100">@($"{calcolaPerc(statRecord.TotDurata):N1}%")</div>
|
<div class="progress-bar @colorChanger(@stat.Css)" role="progressbar" aria-valuenow="0" aria-valuemin="0" style="width: @Math.Round(calcolaPerc(stat.TotDurata),0)%; background-color:@stat.Css;" aria-valuemax="100">@($"{calcolaPerc(stat.TotDurata):N1}%")</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -234,14 +234,14 @@ else
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-4 dcContainer">
|
<div class="col-4 dcContainer">
|
||||||
@if (currRecord != null && ListOdlStats != null)
|
@if (statRecord != null && ListOdlStats != null)
|
||||||
{
|
{
|
||||||
<div class="dcBox">
|
<div class="dcBox">
|
||||||
<ODLPlot SelectedOdl="@currRecord.IdxOdl"></ODLPlot>
|
<ODLPlot SelectedOdl="@statRecord.IdxOdl"></ODLPlot>
|
||||||
</div>
|
</div>
|
||||||
<div class="dcBox dcOverlay d-flex">
|
<div class="dcBox dcOverlay d-flex">
|
||||||
<div class="align-self-center text-center w-100">
|
<div class="align-self-center text-center w-100">
|
||||||
<b class="fs-3">@currRecord.DurataMinuti</b>
|
<b class="fs-3">@statRecord.DurataMinuti</b>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,19 +48,19 @@ namespace MP.SPEC.Components
|
|||||||
//oggetto contenente le funzioni del code behind che sono jsInvokable
|
//oggetto contenente le funzioni del code behind che sono jsInvokable
|
||||||
private DotNetObjectReference<ListODL>? objRef;
|
private DotNetObjectReference<ListODL>? objRef;
|
||||||
|
|
||||||
#if true //FUNZIONA SE IL METODO TriggerDotNetInstanceMethod() E' IN ONCLOCK BOTTONE
|
#if false //FUNZIONA SE IL METODO TriggerDotNetInstanceMethod() E' IN ONCLICK BOTTONE
|
||||||
|
|
||||||
|
[JSInvokable]
|
||||||
|
public void setHelper()
|
||||||
|
{
|
||||||
|
objRef = DotNetObjectReference.Create(this);
|
||||||
|
}
|
||||||
[JSInvokable]
|
[JSInvokable]
|
||||||
public void svuotaRecord()
|
public void svuotaRecord()
|
||||||
{
|
{
|
||||||
currRecord = null;
|
currRecord = null;
|
||||||
|
|
||||||
}
|
}
|
||||||
[JSInvokable]
|
|
||||||
public void setHelper()
|
|
||||||
{
|
|
||||||
objRef = DotNetObjectReference.Create(this);
|
|
||||||
}
|
|
||||||
public async Task TriggerDotNetInstanceMethod()
|
public async Task TriggerDotNetInstanceMethod()
|
||||||
{
|
{
|
||||||
await JSRuntime.InvokeVoidAsync("recordDeselect", objRef);
|
await JSRuntime.InvokeVoidAsync("recordDeselect", objRef);
|
||||||
@@ -71,6 +71,8 @@ namespace MP.SPEC.Components
|
|||||||
|
|
||||||
#region Protected Properties
|
#region Protected Properties
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Inject]
|
[Inject]
|
||||||
protected IJSRuntime JSRuntime { get; set; } = null!;
|
protected IJSRuntime JSRuntime { get; set; } = null!;
|
||||||
|
|
||||||
@@ -90,6 +92,9 @@ namespace MP.SPEC.Components
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
protected async Task chiudiOdl()
|
protected async Task chiudiOdl()
|
||||||
{
|
{
|
||||||
|
if (!await JSRuntime.InvokeAsync<bool>("confirm", "Sei sicuro di voler chiudere l'ODL corrente?"))
|
||||||
|
return;
|
||||||
|
|
||||||
if (currRecord != null)
|
if (currRecord != null)
|
||||||
{
|
{
|
||||||
// effettua chiusura sul DB
|
// effettua chiusura sul DB
|
||||||
@@ -162,6 +167,22 @@ namespace MP.SPEC.Components
|
|||||||
ListOdlStats = null;
|
ListOdlStats = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
protected async Task selectStatRecord(ODLModel? currRec)
|
||||||
|
{
|
||||||
|
showStats = true;
|
||||||
|
await Task.Delay(1);
|
||||||
|
statRecord = currRec;
|
||||||
|
if (currRec != null)
|
||||||
|
{
|
||||||
|
showStats = true;
|
||||||
|
ListOdlStats = await MDService.StatOdl(currRec.IdxOdl);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
showStats = false;
|
||||||
|
ListOdlStats = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected async Task selRecord(ODLModel? currRec)
|
protected async Task selRecord(ODLModel? currRec)
|
||||||
{
|
{
|
||||||
@@ -184,6 +205,8 @@ namespace MP.SPEC.Components
|
|||||||
|
|
||||||
private ODLModel? currRecord = null;
|
private ODLModel? currRecord = null;
|
||||||
|
|
||||||
|
private ODLModel? statRecord = null;
|
||||||
|
|
||||||
private List<StatODLModel>? ListOdlStats;
|
private List<StatODLModel>? ListOdlStats;
|
||||||
|
|
||||||
private List<ODLModel>? ListRecords;
|
private List<ODLModel>? ListRecords;
|
||||||
|
|||||||
@@ -144,6 +144,9 @@ namespace MP.SPEC.Components
|
|||||||
|
|
||||||
protected async Task startOdl(PODLModel selRec)
|
protected async Task startOdl(PODLModel selRec)
|
||||||
{
|
{
|
||||||
|
if (!await JSRuntime.InvokeAsync<bool>("confirm", "Sei sicuro di voler avviare PODL selezionato?"))
|
||||||
|
return;
|
||||||
|
|
||||||
if (selRec != null)
|
if (selRec != null)
|
||||||
{
|
{
|
||||||
int idxEvento = 0;
|
int idxEvento = 0;
|
||||||
@@ -154,9 +157,12 @@ namespace MP.SPEC.Components
|
|||||||
await callStartSetup(selRec.IdxMacchina);
|
await callStartSetup(selRec.IdxMacchina);
|
||||||
await Task.Delay(1);
|
await Task.Delay(1);
|
||||||
// chiamo stored stp_ODL_inizioSetupPromessa e recupero ODL corrente
|
// chiamo stored stp_ODL_inizioSetupPromessa e recupero ODL corrente
|
||||||
var newOdl = await MDService.POdlDoSetup(selRec);
|
bool fatto = await MDService.POdlDoSetup(selRec);
|
||||||
if (newOdl != null)
|
if (fatto)
|
||||||
{
|
{
|
||||||
|
var currPOdl = await MDService.PODL_getByKey(selRec.IdxPromessa);
|
||||||
|
var newOdl = await MDService.OdlGetByKey(currPOdl.IdxOdl);
|
||||||
|
|
||||||
// registro evento...
|
// registro evento...
|
||||||
idxEvento = 2;
|
idxEvento = 2;
|
||||||
evMess = $"Inizio Setup | PODL {selRec.IdxPromessa}";
|
evMess = $"Inizio Setup | PODL {selRec.IdxPromessa}";
|
||||||
@@ -244,7 +250,13 @@ namespace MP.SPEC.Components
|
|||||||
{
|
{
|
||||||
// compongo URL e chiamo
|
// compongo URL e chiamo
|
||||||
string restUrl = $"IOB/addTask2Exe/{idxMacc}?taskName={taskName}&taskVal={taskVal}";
|
string restUrl = $"IOB/addTask2Exe/{idxMacc}?taskName={taskName}&taskVal={taskVal}";
|
||||||
var response = await MpIoApiCall.callMpIoUrlGet(restUrl);
|
try
|
||||||
|
{
|
||||||
|
var response = await MpIoApiCall.callMpIoUrlGet(restUrl);
|
||||||
|
}
|
||||||
|
catch(Exception exc)
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -292,8 +304,8 @@ namespace MP.SPEC.Components
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private bool canStartOdl(string idxMacchina)
|
private bool canStartOdl(string idxMacchina)
|
||||||
{
|
{
|
||||||
// fare!!!
|
var currOdl = MDService.OdlGetCurrentByMacc(idxMacchina);
|
||||||
bool answ = idxMacchina.Contains("BAG");
|
bool answ = currOdl == null;
|
||||||
return answ;
|
return answ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -326,7 +338,10 @@ namespace MP.SPEC.Components
|
|||||||
if (string.IsNullOrEmpty(codArticolo))
|
if (string.IsNullOrEmpty(codArticolo))
|
||||||
{
|
{
|
||||||
var currOdl = await MDService.OdlGetByKey(idxODL);
|
var currOdl = await MDService.OdlGetByKey(idxODL);
|
||||||
codArticolo = currOdl.CodArticolo;
|
if (currOdl != null)
|
||||||
|
{
|
||||||
|
codArticolo = currOdl.CodArticolo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// scrivo evento scriviRigaEventoBarcode
|
// scrivo evento scriviRigaEventoBarcode
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ namespace MP.SPEC.Components
|
|||||||
{
|
{
|
||||||
Data.Add(record.TotDurata);
|
Data.Add(record.TotDurata);
|
||||||
Labels.Add($"{record.Descrizione} - {record.TotDurata:N1}min");
|
Labels.Add($"{record.Descrizione} - {record.TotDurata:N1}min");
|
||||||
colors.Add(record.Css);
|
colors.Add($"{record.Css}");
|
||||||
}
|
}
|
||||||
await Task.Delay(1);
|
await Task.Delay(1);
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
|
|||||||
@@ -664,6 +664,44 @@ namespace MP.SPEC.Data
|
|||||||
return dbResult;
|
return dbResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ODL corrente x macchina
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idxMacchina"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public ODLModel OdlGetCurrentByMacc(string idxMacchina)
|
||||||
|
{
|
||||||
|
ODLModel dbResult = new ODLModel();
|
||||||
|
Stopwatch stopWatch = new Stopwatch();
|
||||||
|
stopWatch.Start();
|
||||||
|
string readType = "DB";
|
||||||
|
string currKey = $"{redisOdlCurrByMac}:{idxMacchina}";
|
||||||
|
// cerco in redis dato valore sel macchina...
|
||||||
|
RedisValue rawData = redisDb.StringGet(currKey);
|
||||||
|
if (rawData.HasValue)
|
||||||
|
{
|
||||||
|
dbResult = JsonConvert.DeserializeObject<ODLModel>($"{rawData}");
|
||||||
|
readType = "REDIS";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dbResult = dbController.OdlGetCurrentByMacc(idxMacchina);
|
||||||
|
// serializzp e salvo...
|
||||||
|
rawData = JsonConvert.SerializeObject(dbResult);
|
||||||
|
redisDb.StringSet(currKey, rawData, TimeSpan.FromSeconds(3));
|
||||||
|
}
|
||||||
|
if (dbResult == null)
|
||||||
|
{
|
||||||
|
dbResult = new ODLModel();
|
||||||
|
}
|
||||||
|
stopWatch.Stop();
|
||||||
|
TimeSpan ts = stopWatch.Elapsed;
|
||||||
|
Log.Debug($"OdlGetCurrentByMacc | Read from {readType}: {ts.TotalMilliseconds}ms");
|
||||||
|
|
||||||
|
|
||||||
|
return dbResult;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Elenco di tutti i parametri filtrati x macchina
|
/// Elenco di tutti i parametri filtrati x macchina
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -700,6 +738,16 @@ namespace MP.SPEC.Data
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Recupero PODL da chiave
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idxPODL"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<PODLModel> PODL_getByKey(int idxPODL)
|
||||||
|
{
|
||||||
|
return await dbController.PODL_getByKey(idxPODL);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Eliminazione record selezionato
|
/// Eliminazione record selezionato
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -715,7 +763,7 @@ namespace MP.SPEC.Data
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="currRec"></param>
|
/// <param name="currRec"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<ODLModel> POdlDoSetup(PODLModel currRec)
|
public async Task<bool> POdlDoSetup(PODLModel currRec)
|
||||||
{
|
{
|
||||||
return await dbController.PODL_startSetup(currRec, 0, 1, 1, "");
|
return await dbController.PODL_startSetup(currRec, 0, 1, 1, "");
|
||||||
}
|
}
|
||||||
@@ -736,7 +784,7 @@ namespace MP.SPEC.Data
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<List<StatODLModel>> StatOdl(int IdxOdl)
|
public Task<List<StatODLModel>> StatOdl(int IdxOdl)
|
||||||
{
|
{
|
||||||
return dbController.StatOdl(IdxOdl);
|
return dbController.OdlStart(IdxOdl);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<bool> updateDossierValue(Dossiers currDoss, FluxLogDTO editFL)
|
public async Task<bool> updateDossierValue(Dossiers currDoss, FluxLogDTO editFL)
|
||||||
@@ -812,6 +860,7 @@ namespace MP.SPEC.Data
|
|||||||
private const string redisDossByMac = redisBaseAddr + "SPEC:Cache:DossByMac";
|
private const string redisDossByMac = redisBaseAddr + "SPEC:Cache:DossByMac";
|
||||||
|
|
||||||
private const string redisFluxByMac = redisBaseAddr + "SPEC:Cache:FluxByMac";
|
private const string redisFluxByMac = redisBaseAddr + "SPEC:Cache:FluxByMac";
|
||||||
|
private const string redisOdlCurrByMac = redisBaseAddr + "SPEC:Cache:OdlByMac";
|
||||||
|
|
||||||
private const string redisMacByFlux = redisBaseAddr + "SPEC:Cache:MacByFlux";
|
private const string redisMacByFlux = redisBaseAddr + "SPEC:Cache:MacByFlux";
|
||||||
private const string redisMacList = redisBaseAddr + "SPEC:Cache:MacList";
|
private const string redisMacList = redisBaseAddr + "SPEC:Cache:MacList";
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<RootNamespace>MP.SPEC</RootNamespace>
|
<RootNamespace>MP.SPEC</RootNamespace>
|
||||||
<Version>6.16.2210.1808</Version>
|
<Version>6.16.2210.1810</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<body>
|
<body>
|
||||||
<i>Modulo MAPOSPEC </i>
|
<i>Modulo MAPOSPEC </i>
|
||||||
<h4>Versione: 6.16.2210.1808</h4>
|
<h4>Versione: 6.16.2210.1810</h4>
|
||||||
<br /> Note di rilascio:
|
<br /> Note di rilascio:
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
6.16.2210.1808
|
6.16.2210.1810
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<item>
|
<item>
|
||||||
<version>6.16.2210.1808</version>
|
<version>6.16.2210.1810</version>
|
||||||
<url>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/MP.SPEC.zip</url>
|
<url>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/MP.SPEC.zip</url>
|
||||||
<changelog>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/ChangeLog.html</changelog>
|
<changelog>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/ChangeLog.html</changelog>
|
||||||
<mandatory>false</mandatory>
|
<mandatory>false</mandatory>
|
||||||
|
|||||||
@@ -327,3 +327,22 @@ a,
|
|||||||
min-height: 4rem;
|
min-height: 4rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* Colori!*/
|
||||||
|
blue {
|
||||||
|
color: purple;
|
||||||
|
background-color: purple;
|
||||||
|
}
|
||||||
|
.dc_yellow {
|
||||||
|
color: yellow;
|
||||||
|
background-color: yellow;
|
||||||
|
}
|
||||||
|
.dc_gray {
|
||||||
|
color: gray;
|
||||||
|
}
|
||||||
|
.dc_red {
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
.dc_green {
|
||||||
|
color: green;
|
||||||
|
background-color: green;
|
||||||
|
}
|
||||||
@@ -376,3 +376,24 @@ a, .btn-link {
|
|||||||
min-height: @blSCut * 4;
|
min-height: @blSCut * 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Colori!*/
|
||||||
|
blue {
|
||||||
|
color: purple;
|
||||||
|
background-color: purple;
|
||||||
|
}
|
||||||
|
.dc_yellow {
|
||||||
|
color: yellow;
|
||||||
|
background-color: yellow;
|
||||||
|
}
|
||||||
|
.dc_gray {
|
||||||
|
color: gray;
|
||||||
|
}
|
||||||
|
.dc_red {
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
.dc_green {
|
||||||
|
color: green;
|
||||||
|
background-color: green;
|
||||||
|
}
|
||||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -1,15 +1,4 @@
|
|||||||
//window.recordDeselect = (dotNetHelper) => {
|
////TENTATIVO POPOLAMENTO HELPER PER POTER INVOCARE IL METODO DOPO
|
||||||
// var myModalEl = document.getElementById('myModal')
|
|
||||||
// myModalEl.addEventListener('hidden.bs.modal', function (event) {
|
|
||||||
// // do something...
|
|
||||||
// //dotNetHelper.invokeMethodAsync('TriggerDotNetInstanceMethod');
|
|
||||||
// return dotNetHelper.invokeMethodAsync('svuotaRecord');
|
|
||||||
// console.log("fatto");
|
|
||||||
// });
|
|
||||||
//};
|
|
||||||
|
|
||||||
|
|
||||||
//TENTATIVO POPOLAMENTO HELPER PER POTER INVOCARE IL METODO DOPO
|
|
||||||
//let helper;
|
//let helper;
|
||||||
|
|
||||||
//window.setHelper = (dotNetHelper) => {
|
//window.setHelper = (dotNetHelper) => {
|
||||||
@@ -18,15 +7,15 @@
|
|||||||
// return dotNetHelper.invokeMethodAsync('setHelper');
|
// return dotNetHelper.invokeMethodAsync('setHelper');
|
||||||
//}
|
//}
|
||||||
|
|
||||||
//BECCA QUANDO LA MODALE VIENE CHIUSA ED ESEGUE
|
////BECCA QUANDO LA MODALE VIENE CHIUSA ED ESEGUE
|
||||||
document.addEventListener('click', function (e) {
|
//document.addEventListener('click', function (e) {
|
||||||
if (e.target.id === 'myModal') {
|
// if (e.target.id === 'myModal') {
|
||||||
console.log('chiuso');
|
// console.log('chiuso');
|
||||||
|
|
||||||
return helper.invokeMethodAsync('svuotaRecord');
|
// //return helper.invokeMethodAsync('svuotaRecord');
|
||||||
console.log("fatto");
|
// console.log("fatto");
|
||||||
} else {
|
// } else {
|
||||||
console.log('aperto');
|
// console.log('aperto');
|
||||||
}
|
// }
|
||||||
e.stopPropagation();
|
// e.stopPropagation();
|
||||||
}, false);
|
//}, false);
|
||||||
Reference in New Issue
Block a user