TAB3:
- correzioni calcolo periodo - impedito insert se pezzi /articoli 0/vuoti x work o senza durata x fermata
This commit is contained in:
@@ -62,7 +62,14 @@
|
||||
@foreach (var item in SeqStatus)
|
||||
{
|
||||
<div class="progress-bar @item.CssBlock" style="width: @PercWidth(item.ValuePerc);">
|
||||
<div>@item.Title</div>
|
||||
@if (item.HasError)
|
||||
{
|
||||
<div class="bg-danger text-warning" title="Error!!!">@item.Title</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div>@item.Title</div>
|
||||
}
|
||||
<small>@($"{item.Value:N0}min")</small>
|
||||
</div>
|
||||
}
|
||||
@@ -78,7 +85,14 @@
|
||||
<button class="btn btn-warning w-100" @onclick="() => DoCancel()"><i class="fa-solid fa-ban"></i> Cancel</button>
|
||||
</div>
|
||||
<div class="col-6 mt-2">
|
||||
<button class="btn btn-success w-100" @onclick="() => DoSave()"><i class="fa-solid fa-floppy-disk"></i> Save</button>
|
||||
@if (EditRecord.IsWork && (!string.IsNullOrEmpty(EditRecord.CodArticolo) && EditRecord.PzBuoni > 0) || (!EditRecord.IsWork && EditRecord.MinProd > 0))
|
||||
{
|
||||
<button class="btn btn-success w-100" @onclick="() => DoSave()"><i class="fa-solid fa-floppy-disk"></i> Save</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
<button class="btn btn-secondary disabled w-100"><i class="fa-solid fa-floppy-disk"></i> Save</button>
|
||||
}
|
||||
</div>
|
||||
<div class="col-12 my-2">
|
||||
@if (EditRecord.IsWork)
|
||||
|
||||
@@ -359,6 +359,7 @@ namespace MP_TAB3.Components
|
||||
{
|
||||
EditRecord = null;
|
||||
ReloadData();
|
||||
RecalcDayData(dtCurr);
|
||||
}
|
||||
}
|
||||
return;
|
||||
@@ -428,7 +429,7 @@ namespace MP_TAB3.Components
|
||||
.ToList();
|
||||
|
||||
// ora calcolo il sequencer x mostrare dettaglio orario...
|
||||
SeqStatus = TabDServ.InsManSeqDayStatus(ListDay);
|
||||
SeqStatus = TabDServ.InsManSeqDayStatus(dtCurr, ListDay);
|
||||
|
||||
// calcolo min lavorati odierni
|
||||
DayMinLav = 0;
|
||||
@@ -496,7 +497,7 @@ namespace MP_TAB3.Components
|
||||
string currCss = "";
|
||||
foreach (var item in ListDTO)
|
||||
{
|
||||
currCss = "";// item.MinProdTot == 0 ? "" : cssHasData;
|
||||
currCss = "";
|
||||
// controllo minuti dichiarati...
|
||||
if (item.RatioImport == 1)
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>6.16.2504.813</Version>
|
||||
<Version>6.16.2504.815</Version>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<RootNamespace>MP_TAB3</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>Modulo MAPOSPEC </i>
|
||||
<h4>Versione: 6.16.2504.813</h4>
|
||||
<h4>Versione: 6.16.2504.815</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
6.16.2504.813
|
||||
6.16.2504.815
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>6.16.2504.813</version>
|
||||
<version>6.16.2504.815</version>
|
||||
<url>https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/MP-TAB3.zip</url>
|
||||
<changelog>https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
@@ -18,5 +18,6 @@ namespace MP.Core.DTO
|
||||
}
|
||||
public string Title { get; set; } = "";
|
||||
public string CssBlock { get; set; } = "";
|
||||
public bool HasError { get; set; } = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1013,29 +1013,28 @@ namespace MP.Data.Services
|
||||
periodStart = currRec.InizioStato;
|
||||
periodEnd = currRec.FineStato.Value;
|
||||
// se andassi a domani lo "accorcio"...
|
||||
if (periodEnd > dtRif.Date.AddDays(1))
|
||||
if (periodEnd < dtRif.Date.AddDays(1).AddSeconds(-1))
|
||||
{
|
||||
periodEnd = dtRif.Date.AddDays(1);
|
||||
}
|
||||
// se non arrivo a mezzanotte aggiungo "pad finale"
|
||||
var lastPeriod = TimeSpan.FromHours(24).Subtract(periodEnd.TimeOfDay).TotalMinutes;
|
||||
if (lastPeriod > 1)
|
||||
{
|
||||
// creo record x la durata necessaria
|
||||
newRec = new InsManualiModel()
|
||||
// se non arrivo a mezzanotte aggiungo "pad finale"
|
||||
var lastPeriod = TimeSpan.FromHours(24).Subtract(periodEnd.TimeOfDay).TotalMinutes;
|
||||
if (lastPeriod > 1)
|
||||
{
|
||||
CodArticolo = "ND",
|
||||
KeyRichiesta = "",
|
||||
IdxMacchina = idxMacc,
|
||||
InizioStato = periodEnd,
|
||||
FineStato = periodEnd.Date.AddDays(1).AddSeconds(-1),
|
||||
IdxTipoEv = idxTipoEv,
|
||||
MatrOpr = matrOpr,
|
||||
PzBuoni = 0,
|
||||
TCiclo = 0,
|
||||
MinProd = (decimal)lastPeriod
|
||||
};
|
||||
rec2add.Add(newRec);
|
||||
// creo record x la durata necessaria
|
||||
newRec = new InsManualiModel()
|
||||
{
|
||||
CodArticolo = "ND",
|
||||
KeyRichiesta = "",
|
||||
IdxMacchina = idxMacc,
|
||||
InizioStato = periodEnd,
|
||||
FineStato = periodEnd.Date.AddDays(1).AddSeconds(-1),
|
||||
IdxTipoEv = idxTipoEv,
|
||||
MatrOpr = matrOpr,
|
||||
PzBuoni = 0,
|
||||
TCiclo = 0,
|
||||
MinProd = (decimal)lastPeriod
|
||||
};
|
||||
rec2add.Add(newRec);
|
||||
}
|
||||
}
|
||||
// eseguo upsert massivo
|
||||
await InsManUpsert(rec2add);
|
||||
@@ -1083,13 +1082,15 @@ namespace MP.Data.Services
|
||||
/// <summary>
|
||||
/// Elenco DTO x plotting seq stati giornaliero
|
||||
/// </summary>
|
||||
/// <param name="dtRif">Data per cui effettuare ricalcolo giornata</param>
|
||||
/// <param name="listDetail">Record dettaglio giornata</param>
|
||||
/// <returns></returns>
|
||||
public List<ManualStatusDTO> InsManSeqDayStatus(List<InsManualiModel> listDetail)
|
||||
public List<ManualStatusDTO> InsManSeqDayStatus(DateTime dtRif, List<InsManualiModel> listDetail)
|
||||
{
|
||||
List<ManualStatusDTO>? result = new List<ManualStatusDTO>();
|
||||
// per sicurezza RIORDINO!
|
||||
listDetail = listDetail
|
||||
.Where(x => x.InizioStato.Date == dtRif.Date)
|
||||
.OrderBy(x => x.InizioStato)
|
||||
.ToList();
|
||||
if (listDetail.Count > 0)
|
||||
@@ -1125,6 +1126,8 @@ namespace MP.Data.Services
|
||||
lastIdxTipo = item.IdxTipoEv;
|
||||
periodStart = item.InizioStato;
|
||||
periodEnd = item.FineStato.Value;
|
||||
//calcolo errore se supero giorno...
|
||||
bool hasError = periodEnd > dtRif.Date.AddDays(1);
|
||||
duration = (double)item.MinProd;
|
||||
currRec = new ManualStatusDTO
|
||||
{
|
||||
@@ -1133,13 +1136,16 @@ namespace MP.Data.Services
|
||||
CssBlock = item.IdxTipoEv == 1 ? "bg-success text-light" : "bg-secondary text-light",
|
||||
Title = $"{periodStart:HH:mm}-{periodEnd:HH:mm}",
|
||||
Value = duration,
|
||||
ValueMax = 1440
|
||||
ValueMax = 1440,
|
||||
HasError = hasError
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
duration += (double)item.MinProd;
|
||||
periodEnd = item.FineStato.Value;
|
||||
//calcolo errore se supero giorno...
|
||||
bool hasError = periodEnd > dtRif.Date.AddDays(1);
|
||||
currRec = new ManualStatusDTO
|
||||
{
|
||||
IdxTipo = lastIdxTipo,
|
||||
@@ -1147,7 +1153,8 @@ namespace MP.Data.Services
|
||||
CssBlock = item.IdxTipoEv == 1 ? "bg-success text-light" : "bg-secondary text-light",
|
||||
Title = $"{periodStart:HH:mm}-{periodEnd:HH:mm}",
|
||||
Value = duration,
|
||||
ValueMax = 1440
|
||||
ValueMax = 1440,
|
||||
HasError = hasError
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1157,19 +1164,23 @@ namespace MP.Data.Services
|
||||
result.Add(currRec);
|
||||
}
|
||||
// se non arrivo a mezzanotte aggiungo "pad finale"
|
||||
var deltaFin = TimeSpan.FromHours(24).Subtract(periodEnd.TimeOfDay);
|
||||
if (deltaFin.TotalMinutes > 0.01)
|
||||
if (periodEnd <= dtRif.Date.AddDays(1).AddSeconds(-1))
|
||||
{
|
||||
lastIdxTipo = 0;
|
||||
currRec = new ManualStatusDTO
|
||||
var deltaFin = TimeSpan.FromHours(24).Subtract(periodEnd.TimeOfDay);
|
||||
if (deltaFin.TotalMinutes > 0.01)
|
||||
{
|
||||
IdxTipo = lastIdxTipo,
|
||||
CssBlock = "bg-light text-dark",
|
||||
Title = "missing",
|
||||
Value = deltaFin.TotalMinutes,
|
||||
ValueMax = 1440
|
||||
};
|
||||
result.Add(currRec);
|
||||
lastIdxTipo = 0;
|
||||
currRec = new ManualStatusDTO
|
||||
{
|
||||
IdxTipo = lastIdxTipo,
|
||||
CssBlock = "bg-light text-dark",
|
||||
Title = "missing",
|
||||
Value = deltaFin.TotalMinutes,
|
||||
ValueMax = 1440
|
||||
};
|
||||
result.Add(currRec);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user