diff --git a/MP-TAB-SERV/Components/FixOdl.razor.cs b/MP-TAB-SERV/Components/FixOdl.razor.cs
index 1604446c..44cfe8eb 100644
--- a/MP-TAB-SERV/Components/FixOdl.razor.cs
+++ b/MP-TAB-SERV/Components/FixOdl.razor.cs
@@ -150,7 +150,7 @@ namespace MP_TAB_SERV.Components
ListSelODL = await TabDServ.VSOdlGetUnused(IdxMaccCurr, ShowAll, numDayOdl);
DateTime dateTo = DateTime.Today.AddDays(1);
DateTime dateFrom = dateTo.AddMonths(-1);
- ListComplete = await TabDServ.OdlListByMacc(IdxMaccCurr, dateFrom, dateTo);
+ ListComplete = await TabDServ.OdlListByMaccPeriodo(IdxMaccCurr, dateFrom, dateTo);
TotalCount = ListComplete.Count;
// esegue paginazione
UpdateTable();
diff --git a/MP-TAB-SERV/Components/OdlMan.razor b/MP-TAB-SERV/Components/OdlMan.razor
index 47e4844f..d5f94ca5 100644
--- a/MP-TAB-SERV/Components/OdlMan.razor
+++ b/MP-TAB-SERV/Components/OdlMan.razor
@@ -132,7 +132,7 @@
- @if (idxOdlSel > 0)
+ @if (idxPOdlSel > 0)
{
-
+
}
else
{
}
- @if (idxOdlSel > 0)
+ @if (idxPOdlSel > 0)
{
-
+
+
}
diff --git a/MP-TAB-SERV/Components/OdlMan.razor.cs b/MP-TAB-SERV/Components/OdlMan.razor.cs
index 819f4827..3c2f4aad 100644
--- a/MP-TAB-SERV/Components/OdlMan.razor.cs
+++ b/MP-TAB-SERV/Components/OdlMan.razor.cs
@@ -2,6 +2,9 @@ using global::Microsoft.AspNetCore.Components;
using MP.Data.DatabaseModels;
using MP.Data.Services;
using NLog;
+using static MP.Data.Objects.Enums;
+using static StackExchange.Redis.Role;
+using System.Text;
namespace MP_TAB_SERV.Components
{
@@ -30,14 +33,14 @@ namespace MP_TAB_SERV.Components
#region Protected Properties
- protected int IdxOdlSel
+ protected int IdxPOdlSel
{
- get => idxOdlSel;
+ get => idxPOdlSel;
set
{
- if (idxOdlSel != value)
+ if (idxPOdlSel != value)
{
- idxOdlSel = value;
+ idxPOdlSel = value;
showOdlDetail = value > 0;
var pUpd = Task.Run(async () =>
{
@@ -54,6 +57,9 @@ namespace MP_TAB_SERV.Components
protected SharedMemService SMServ { get; set; } = null!;
[Inject]
protected MessageService MServ { get; set; } = null!;
+ protected SharedMemService SMServ { get; set; } = null!;
+ [Inject]
+ protected MessageService MServ { get; set; } = null!;
///
/// Verifica ODL OK (ovvero caricato x macchina...)
@@ -105,7 +111,7 @@ namespace MP_TAB_SERV.Components
protected string getIdxMaccParent()
{
string answ = IdxMaccSel;
- // se è multi controllo
+ // se � multi controllo
if (isMulti)
{
// verifico se SIA una tavola (ha char "#")
@@ -123,6 +129,9 @@ namespace MP_TAB_SERV.Components
{
//baseLang = SMServ.GetConf("baseLang");
numDayOdl = SMServ.GetConfInt("numDaySelOdl");
+ confRett = SMServ.GetConfBool("confRett");
+ enableSplitODL = SMServ.GetConfBool("enableSplitODL");
+ modoConfProd = SMServ.GetConfInt("modoConfProd");
if (RecMSE != null)
{
IdxMaccSel = RecMSE.IdxMacchina;
@@ -131,6 +140,9 @@ namespace MP_TAB_SERV.Components
}
checkAll();
}
+ private bool enableSplitODL = false;
+ private int modoConfProd = 0;
+ private bool confRett = true;
protected override async Task OnParametersSetAsync()
{
@@ -138,6 +150,11 @@ namespace MP_TAB_SERV.Components
await ReloadData(false);
}
+ protected void SaveTCRich(double newTCRich)
+ {
+ tcRichAttr = newTCRich;
+ }
+
protected async Task SetMacc(string selIdxMacc)
{
isProcessing = true;
@@ -148,6 +165,246 @@ namespace MP_TAB_SERV.Components
await Task.Delay(10);
}
+ private int MatrOpr
+ {
+ get => MServ.MatrOpr;
+ }
+ ///
+ /// verifica se sia necessario confermare la prod dell'ODL precedente prima di chiudere e lo fa in automatico...
+ ///
+ /// boolean, true = deve confermare 0 pezzi (es. in setup)
+ private async Task confermaProdOdl(bool confZero)
+ {
+ // 2016.11.17 NOTA: introdotti scarti, li confermiamo SEMPRE a zero se in setup, per� da valutare SE a FINE ATTREZZAGGIO chiedere num pezzi e num scarti (saldo zero buoni) da inserire...
+ bool fatto = false;
+ DateTime adesso = DateTime.Now;
+ if (confZero)
+ {
+ // confermo produzione ZERO pezzi (in setup)
+ if (confRett)
+ {
+ // confermo al netto dei pezzi lasciati...
+ fatto = TabDServ.ConfermaProdMacchinaFull(IdxMaccSel, modoConfProd, 0, 0, 0, adesso, MatrOpr);
+ }
+ else
+ {
+ fatto = TabDServ.ConfermaProdMacchina(IdxMaccSel, modoConfProd, 0, 0, adesso, MatrOpr);
+ }
+ }
+ else // se NON sono in setup verifico se ho pz da confermare
+ {
+ // recupero pz da confermare
+ var rawData = await TabDServ.PezziProdMacchina(IdxMaccSel);
+ prodMacchina = rawData.FirstOrDefault() ?? new PzProdModel();
+ if (prodMacchina.pezziNonConfermati > 0)
+ {
+ // confermo produzione ZERO pezzi (in setup)
+ if (confRett)
+ {
+ // confermo al netto dei pezzi lasciati...
+ fatto = TabDServ.ConfermaProdMacchinaFull(IdxMaccSel, modoConfProd, prodMacchina.pezziNonConfermati, 0, 0, adesso, MatrOpr);
+ }
+ else
+ {
+ fatto = TabDServ.ConfermaProdMacchina(IdxMaccSel, modoConfProd, prodMacchina.pezziNonConfermati, 0, adesso, MatrOpr);
+ }
+ }
+ }
+ }
+
+ protected int PzPallet = 1;
+
+ ///
+ /// Dichiarazione inizio attrezzaggio PODL indicato
+ ///
+ ///
+ protected async Task StartSetup()
+ {
+ /***************************************************
+ * comprende gestione machineSlave x fix ODL master --> slave
+ *
+ ***************************************************/
+
+ bool inAttr = false;
+ // se � multi mi chiedo se sia DAVVERO in attrezzaggio...
+ if (isMulti)
+ {
+ try
+ {
+ // controllo se NON SONO gi� in attrezzaggio...
+ var rigaStato = TabDServ.StatoMacchina(IdxMaccParent);
+ inAttr = (rigaStato.IdxStato == 2);
+ }
+ catch
+ { }
+ }
+ // proseguo
+ int idxODL_curr = 0;
+ await confermaProdOdl(false);
+ if (IdxPOdlSel > 0)
+ {
+ // se vedesse TCRich a zero lo reimposta a quello assegnato...
+ if (tcRichAttr == 0)
+ {
+ tcRichAttr = (double)currPodl.Tcassegnato;
+ }
+ if (enableSplitODL)
+ {
+ // splitto VECCHIO ODL (se � rimasto qualcosa da produrre e se ce ne � rimasto uno.......)
+ try
+ {
+ var currOdl = await TabDServ.OdlCurrByMacc(IdxMaccSel);
+ if (currOdl != null && currOdl.Count > 0)
+ {
+ int idxODLTemp = currOdl[0].IdxOdl;
+ decimal tcAss = currOdl[0].Tcassegnato;
+ await TabDServ.OdlSplit(idxODLTemp, MatrOpr, IdxMaccSel, tcAss, PzPallet, $"inizio attrezzaggio, Sospensione ODL {idxODLTemp}, generato residuo con pari TCiclo: {tcAss}", false, 0);
+ }
+ // se � multi processo ANCHE x altra tavola...
+ if (isMulti)
+ {
+#if false
+ int _idxOdl = DataLayerObj.taODL.getByMacchina(idxMaccAltraTav)[0].IdxODL;
+ DataLayerObj.taODL.splitODL(_idxOdl, DataLayerObj.MatrOpr, idxMaccAltraTav, TCAssegnato(_idxOdl), PzPallet, string.Format("inizio attrezzaggio, Sospensione ODL {0}, generato residuo con pari TCiclo: {1}", _idxOdl, TCAssegnato(_idxOdl)), false, 0);
+#endif
+ }
+ }
+ catch
+ { }
+ }
+#if false
+ // 2018.07.24 verifico se devo lavorare come ODL classico o come RPO (Richiesta / Promessa / ODL)
+ if (enableRPO)
+ {
+ // creo nuovo ODL da promessa ed associo
+ DateTime adesso = DateTime.Now;
+ DataLayerObj.taODL.inizioSetupPromessa(idxODLSel, DataLayerObj.MatrOpr, idxMacchinaFix, TCRichAttr, PzPallet, txtNote.Text, adesso);
+ // salvo ODL attrezzato
+ idxODL_curr = DataLayerObj.taODL.getByMacchina(idxMacchinaFix)[0].IdxODL;
+ }
+ // ODL classico
+ else
+ {
+ // avvio NUOVO ODL
+ DataLayerObj.taODL.inizioSetup(idxODLSel, DataLayerObj.MatrOpr, idxMacchinaFix, TCRichAttr, PzPallet, txtNote.Text);
+ // salvo ODL Current
+ idxODL_curr = idxODLSel;
+ }
+ // process evento
+ int idxEvento = 2; // !!!HARD CODED
+ string evText = "Registrato inizio attrezzaggio per ODL {0}";
+ StringBuilder sb = new StringBuilder();
+ sb.AppendLine(String.Format(evText, idxODL_curr));
+ processaEvento(idxMacchinaFix, idxEvento, sb.ToString(), idxODL_curr);
+ // indico INIZIO SETUP su REDIS come EXE della macchina...
+ string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now);
+ string outData = $"TS:{ts}|MATR:{DataLayerObj.MatrOpr}|ODL:{idxODL_curr}";
+ // aggiungo articolo, commessa, richiesta pezzi...
+ try
+ {
+ var datiODL = DataLayerObj.taODL.getByMacchina(idxMacchinaFix)[0];
+ string setArtVal = $"{datiODL.CodArticolo}";
+ string setPzCommVal = $"{datiODL.NumPezzi}";
+ string setCommVal = $"ODL{datiODL.IdxODL:00000000}";
+ // FIXME TODO: scrivere come sotto? testare valvital x linea LASCO
+ DataLayerObj.addTask4Machine(idxMacchinaFix, taskType.startSetup, outData);
+ DataLayerObj.addTask4Machine(idxMacchinaFix, taskType.setArt, setArtVal);
+ DataLayerObj.addTask4Machine(idxMacchinaFix, taskType.setComm, setCommVal);
+ DataLayerObj.addTask4Machine(idxMacchinaFix, taskType.setPzComm, setPzCommVal);
+ DataLayerObj.updateMachineParameter(idxMacchinaFix, "setArt", setArtVal);
+ DataLayerObj.updateMachineParameter(idxMacchinaFix, "setComm", setCommVal);
+ DataLayerObj.updateMachineParameter(idxMacchinaFix, "setPzComm", setPzCommVal);
+ DataLayerObj.addTask4Machine(idxMacchinaFix, taskType.setParameter, "ForceUpdate");
+ // li aggiungo ANCHE sui PLC slave se ci sono...
+ if (isMaster)
+ {
+ // calcolo gli slave...
+ var slaveList = DataLayerObj.taM2S.getByMaster(idxMacchina);
+ foreach (var machine in slaveList)
+ {
+ outData = $"TS:{ts}|MATR:{DataLayerObj.MatrOpr}|Master Machine: {idxMacchinaFix}";
+ // invio chiusura attrezzaggio
+ DataLayerObj.addTask4Machine(machine.IdxMacchinaSlave, taskType.startSetup, outData);
+ DataLayerObj.addTask4Machine(machine.IdxMacchinaSlave, taskType.setArt, setArtVal);
+ DataLayerObj.addTask4Machine(machine.IdxMacchinaSlave, taskType.setComm, setCommVal);
+ DataLayerObj.addTask4Machine(machine.IdxMacchinaSlave, taskType.setPzComm, setPzCommVal);
+ DataLayerObj.updateMachineParameter(machine.IdxMacchinaSlave, "setArt", setArtVal);
+ DataLayerObj.updateMachineParameter(machine.IdxMacchinaSlave, "setComm", setCommVal);
+ DataLayerObj.updateMachineParameter(machine.IdxMacchinaSlave, "setPzComm", setPzCommVal);
+ DataLayerObj.addTask4Machine(machine.IdxMacchinaSlave, taskType.setParameter, "ForceUpdate");
+ }
+ }
+ }
+ catch
+ { }
+
+ // se � multi CHIUDO ODL x altra tavola...
+ if (isMulti)
+ {
+ // se NON sono in attrezzaggio...
+ if (!inAttr)
+ {
+ int idxOdlAltra = 0;
+ try
+ {
+ var tabOdl = DataLayerObj.taODL.getByMacchina(idxMaccAltraTav);
+ if (tabOdl.Rows.Count > 0)
+ {
+ idxOdlAltra = DataLayerObj.taODL.getByMacchina(idxMaccAltraTav)[0].IdxODL;
+ }
+ }
+ catch (Exception exc)
+ {
+ logger.lg.scriviLog("Durante recupero idxOdlAltra " + exc.ToString(), tipoLog.EXCEPTION);
+ }
+ // procedo se ho ODL
+ if (idxOdlAltra > 0)
+ {
+ sb.AppendLine("---");
+ DataLayerObj.taODL.fineProd(idxOdlAltra, idxMaccAltraTav);
+ evText = "Registrato inizio attrezzaggio per ODL {0} (setup seconda tavola)";
+ sb.AppendLine(String.Format(evText, idxOdlAltra));
+ processaEvento(idxMaccAltraTav, idxEvento, String.Format(evText, idxOdlAltra), idxOdlAltra);
+ }
+ lblOut.Text = sb.ToString().Replace("---", "
");
+ }
+ // update buttons...
+ checkAll();
+ }
+ // se � master --> chiamo update child!
+ if (isMaster)
+ {
+ DataLayerObj.taODL.fixMachineSlave(idxMacchina, 30, 1);
+ }
+ // resetto contapezzi redis...
+ DataLayerObj.saveCounter(idxMacchinaFix, "0");
+ // imposto ODL su redis...
+ DataLayerObj.saveCurrODL(idxMacchinaFix, idxODL_curr.ToString());
+ // salvo odl selezionato
+ idxOdl = idxODL_curr;
+#endif
+ }
+ else
+ {
+#if false
+ lblOut.Text = "Selezionare un ORDINE valido!";
+#endif
+ }
+
+#if false
+ // refresh finale
+ checkBtnStatus();
+ fixSplitBtn(false);
+ // sollevo evento!
+ if (eh_reqUpdate != null)
+ {
+ eh_reqUpdate(this, new EventArgs());
+ }
+#endif
+
+ await Task.Delay(1);
+ }
+
protected void togOdlDetail()
{
showOdlDetail = !showOdlDetail;
@@ -178,6 +435,7 @@ namespace MP_TAB_SERV.Components
private string IdxMaccSel = "";
+ private int idxPOdlSel = 0;
private bool isInAttr = false;
private bool isInProd = false;
@@ -188,13 +446,13 @@ namespace MP_TAB_SERV.Components
private bool isSlave = false;
+ private int lastIdxPOdl = 0;
+ private string noteAttr = "";
private int numDayOdl = 5;
private bool showAll = false;
private bool showOdlDetail = false;
-
- private string noteAttr = "";
private double tcRichAttr = 1;
#endregion Private Fields
@@ -213,8 +471,6 @@ namespace MP_TAB_SERV.Components
get => RecMSE != null ? RecMSE.IdxOdl ?? 0 : 0;
}
- private int idxOdlSel { get; set; } = 0;
-
private string lblWarnBody
{
get => odlOk ? Traduci("ConfProdBeforeContinueBody") : Traduci("setOdlBeforeContinueBody");
@@ -330,10 +586,15 @@ namespace MP_TAB_SERV.Components
private async Task ReloadPOdlDetailData()
{
- if (IdxOdlSel > 0)
+ if (IdxPOdlSel > 0)
{
- currPodl = await TabDServ.PODLExp_getByKey(IdxOdlSel);
- tcRichAttr = (double)currPodl.Tcassegnato;
+ currPodl = await TabDServ.PODLExp_getByKey(IdxPOdlSel);
+ // controllo se � cambiato PODL
+ if (IdxPOdlSel != lastIdxPOdl)
+ {
+ lastIdxPOdl = IdxPOdlSel;
+ tcRichAttr = (double)currPodl.Tcassegnato;
+ }
}
}
diff --git a/MP.Data/Controllers/MpTabController.cs b/MP.Data/Controllers/MpTabController.cs
index 77965204..70fb9208 100644
--- a/MP.Data/Controllers/MpTabController.cs
+++ b/MP.Data/Controllers/MpTabController.cs
@@ -737,6 +737,33 @@ namespace MP.Data.Controllers
return fatto;
}
+ ///
+ /// ODL corrente macchina
+ ///
+ ///
+ ///
+ public List OdlCurrByMacc(string idxMacchina)
+ {
+ List dbResult = new List();
+ using (var dbCtx = new MoonProContext(_configuration))
+ {
+ try
+ {
+ var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
+ dbResult = dbCtx
+ .DbSetODLExp
+ .FromSqlRaw("EXEC stp_ODL_getByMacchina @IdxMacchina", IdxMacchina)
+ .AsNoTracking()
+ .ToList();
+ }
+ catch (Exception exc)
+ {
+ Log.Error($"Eccezione durante OdlCurrByMacc{Environment.NewLine}{exc}");
+ }
+ }
+ return dbResult;
+ }
+
///
/// Elenco ODL data macchina e periodo
///
@@ -744,7 +771,7 @@ namespace MP.Data.Controllers
///
///
///
- public List OdlListByMacc(string idxMacchina, DateTime dtStart, DateTime dtEnd)
+ public List OdlListByMaccPeriodo(string idxMacchina, DateTime dtStart, DateTime dtEnd)
{
List dbResult = new List();
using (var dbCtx = new MoonProContext(_configuration))
@@ -762,7 +789,7 @@ namespace MP.Data.Controllers
}
catch (Exception exc)
{
- Log.Error($"Eccezione durante ListOdlAll{Environment.NewLine}{exc}");
+ Log.Error($"Eccezione durante OdlListByMaccPeriodo{Environment.NewLine}{exc}");
}
}
return dbResult;
@@ -825,6 +852,67 @@ namespace MP.Data.Controllers
}
return fatto;
}
+
+ ///
+ /// Split ODL
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public bool OdlSplit(int idxODL, int matrOpr, string idxMacchina, decimal TCRich, int pzPallet, string note, bool startNewOdl, int qtyRich)
+ {
+ bool fatto = false;
+ using (var dbCtx = new MoonProContext(_configuration))
+ {
+ try
+ {
+ var IdxODL = new SqlParameter("@idxODL", idxODL);
+ var MatrOpr = new SqlParameter("@MatrOpr", matrOpr);
+ var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina);
+ var TCRichAttr = new SqlParameter("@TCRichAttr", TCRich);
+ var PzPallet = new SqlParameter("@PzPallet", pzPallet);
+ var Note = new SqlParameter("@Note", note);
+ var StartNewOdl = new SqlParameter("@StartNewOdl", startNewOdl);
+ var QtyRich = new SqlParameter("@QtyRich", qtyRich);
+ var result = dbCtx
+ .Database
+ .ExecuteSqlRaw("EXEC stp_ODL_split @idxODL, @MatrOpr, @IdxMacchina, @TCRichAttr, @PzPallet, @Note, @StartNewOdl, @QtyRich", IdxODL, MatrOpr, IdxMacc, TCRichAttr, PzPallet, Note, StartNewOdl, QtyRich);
+ fatto = result != 0;
+ }
+ catch (Exception exc)
+ {
+ Log.Error($"Eccezione durante OdlSplit{Environment.NewLine}{exc}");
+ }
+ }
+ return fatto;
+ }
+
+ ///
+ /// Stato prod macchina
+ ///
+ ///
+ ///
+ public List PezziProdMacchina(string idxMacchina)
+ {
+ List dbResult = new List();
+ using (var dbCtx = new MoonProContext(_configuration))
+ {
+ var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
+ dbResult = dbCtx
+ .DbSetPzProd
+ .FromSqlRaw("EXEC stp_PzProd_getByMacchina @IdxMacchina", IdxMacchina)
+ .AsNoTracking()
+ .ToList();
+ }
+ return dbResult;
+ }
+
///
/// Recupero PODL da chiave
///
@@ -856,26 +944,6 @@ namespace MP.Data.Controllers
return dbResult;
}
- ///
- /// Stato prod macchina
- ///
- ///
- ///
- public List PezziProdMacchina(string idxMacchina)
- {
- List dbResult = new List();
- using (var dbCtx = new MoonProContext(_configuration))
- {
- var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
- dbResult = dbCtx
- .DbSetPzProd
- .FromSqlRaw("EXEC stp_PzProd_getByMacchina @IdxMacchina", IdxMacchina)
- .AsNoTracking()
- .ToList();
- }
- return dbResult;
- }
-
///
/// Restituisce elenco RC filtrato
///
diff --git a/MP.Data/Services/TabDataService.cs b/MP.Data/Services/TabDataService.cs
index 21232936..e67478e2 100644
--- a/MP.Data/Services/TabDataService.cs
+++ b/MP.Data/Services/TabDataService.cs
@@ -1033,6 +1033,43 @@ namespace MP.Data.Services
return answ;
}
+ ///
+ /// ODL corrente macchina
+ ///
+ ///
+ ///
+ public async Task> OdlCurrByMacc(string idxMacchina)
+ {
+ string source = "DB";
+ Stopwatch sw = new Stopwatch();
+ sw.Start();
+ List? result = new List();
+ // cerco in redis...
+ string currKey = $"{redisBaseKey}:ODL:{idxMacchina}:CURR";
+ RedisValue rawData = await redisDb.StringGetAsync(currKey);
+ if (rawData.HasValue)
+ {
+ result = JsonConvert.DeserializeObject>($"{rawData}");
+ source = "REDIS";
+ }
+ else
+ {
+ result = await Task.FromResult(dbTabController.OdlCurrByMacc(idxMacchina));
+ // riordino
+ result = result.OrderByDescending(x => x.DataInizio).ToList();
+ // serializzp e salvo...
+ rawData = JsonConvert.SerializeObject(result);
+ await redisDb.StringSetAsync(currKey, rawData, FastCache);
+ }
+ if (result == null)
+ {
+ result = new List();
+ }
+ sw.Stop();
+ Log.Debug($"OdlCurrByMacc | {source} | {sw.Elapsed.TotalMilliseconds}ms");
+ return result;
+ }
+
///
/// Elenco ODL data macchina e periodo
///
@@ -1040,7 +1077,7 @@ namespace MP.Data.Services
///
///
///
- public async Task> OdlListByMacc(string idxMacchina, DateTime dtStart, DateTime dtEnd)
+ public async Task> OdlListByMaccPeriodo(string idxMacchina, DateTime dtStart, DateTime dtEnd)
{
string source = "DB";
Stopwatch sw = new Stopwatch();
@@ -1056,7 +1093,7 @@ namespace MP.Data.Services
}
else
{
- result = await Task.FromResult(dbTabController.OdlListByMacc(idxMacchina, dtStart, dtEnd));
+ result = await Task.FromResult(dbTabController.OdlListByMaccPeriodo(idxMacchina, dtStart, dtEnd));
// riordino
result = result.OrderByDescending(x => x.DataInizio).ToList();
// serializzp e salvo...
@@ -1068,7 +1105,7 @@ namespace MP.Data.Services
result = new List();
}
sw.Stop();
- Log.Debug($"OdlListByMacc | {source} | {sw.Elapsed.TotalMilliseconds}ms");
+ Log.Debug($"OdlListByMaccPeriodo | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
@@ -1119,6 +1156,35 @@ namespace MP.Data.Services
return answ;
}
+ ///
+ /// Split ODL
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task OdlSplit(int idxODL, int matrOpr, string idxMacchina, decimal TCRich, int pzPallet, string note, bool startNewOdl, int qtyRich)
+ {
+ bool answ = false;
+ try
+ {
+ // inserisco evento
+ answ = dbTabController.OdlSplit(idxODL, matrOpr, idxMacchina, TCRich, pzPallet, note, startNewOdl, qtyRich);
+ await FlushCache("ODL");
+ }
+ catch (Exception exc)
+ {
+ string logMsg = $"Eccezione in OdlSplit | macchina: {idxMacchina} | idxODL: {idxODL}{Environment.NewLine}{exc}";
+ Log.Error(logMsg);
+ }
+ return answ;
+ }
+
///
/// Stato prod macchina
///