Aggiunta IO metodi x gestione PODL estesa

This commit is contained in:
Samuele Locatelli
2023-11-03 12:40:04 +01:00
parent 513e2d7728
commit 66e5d20db5
2 changed files with 98 additions and 7 deletions
+66 -7
View File
@@ -110,6 +110,7 @@ namespace MP_IO.Controllers
return answ;
}
#if false
/// <summary>
/// Chiude ODL x macchina:
///
@@ -133,6 +134,39 @@ namespace MP_IO.Controllers
catch
{ }
return answ;
}
#endif
/// <summary>
/// Chiude ODL x macchina:
///
/// GET: IOB/closeODL/SIMUL_03?idxOdl=123&dtEve=20230323151100000&dtCurr=20230323221100000
/// </summary>
/// <param name="id">id macchina</param>
/// <param name="idxOdl">idx dell'ODL da chiudere</param>
/// <param name="dtEve">DataOra evento</param>
/// <param name="dtCurr">DataOra corrente x fix</param>
/// <returns>bool esecuzione</returns>
public bool closeODL(string id, int idxOdl, string dtEve = "", string dtCurr = "")
{
bool answ = false;
// init obj DataLayer
DataLayer DataLayerObj = new DataLayer();
try
{// chiamata diretta sul DB...
DateTime dtEvento = DateTime.Now;
//se ho una data-ora chiusura la calcolo...
bool rtimeProc = string.IsNullOrEmpty(dtEve);
if (!rtimeProc)
{
dtEvento = DataLayerObj.GetSrvDtEvent(dtEve, dtCurr);
}
DataLayerObj.taODL.forceClose(idxOdl, id, dtEvento);
answ = true;
}
catch
{ }
return answ;
}
/// <summary>
@@ -141,7 +175,9 @@ namespace MP_IO.Controllers
/// GET: IOB/closePODL/SIMUL_03?idxPOdl=123&dtEve=20230323151100000&dtCurr=20230323221100000
/// </summary>
/// <param name="id">id macchina</param>
/// <param name="idxOdl">idx dell'ODL da chiudere</param>
/// <param name="idxPOdl">idx del POdl da chiudere</param>
/// <param name="dtEve">DataOra evento</param>
/// <param name="dtCurr">DataOra corrente x fix</param>
/// <returns>bool esecuzione</returns>
public bool closePODL(string id, int idxPOdl, string dtEve = "", string dtCurr = "")
{
@@ -570,15 +606,19 @@ namespace MP_IO.Controllers
return DataLayerObj.AutoStartOdl(id, doConfirm, qtyFromLast, (int)roundStep, keyRichiesta);
}
/// <summary> Avvia PODL indicato
/// <summary>
/// Avvia PODL indicato
/// - se esistesse un ODL da altro PODL --> chiude
/// - se fosse già in essere ODL collegato --> lascia aperto
/// - se fosse chiuso ODL collegato --> duplica PODL e poi avvia nuovo ODL.
///
/// GET: IOB/forceStartPOdl/SIMUL_03?idxPODL=123&dtEve=20230323151100000&dtCurr=20230323221100000
/// </summary> <param name="id"></param> <param name="idxPODL">idx del PDL da
/// avviare</param> <param name="dtEve">data-ora di avvio (opzionale)</param> <param
/// name="dtCurr">data-ora attuale (opzionale)</param> <returns>Esito chiamata (OK/vuoto)</returns>
/// </summary>
/// <param name="id"></param>
/// <param name="idxPODL">idx del PDL da avviare</param>
/// <param name="dtEve">data-ora di avvio (opzionale)</param>
/// <param name="dtCurr">data-ora attuale (opzionale)</param>
/// <returns>Esito chiamata (OK/vuoto)</returns>
public string forceStartPOdl(string id, int idxPODL, string dtEve = "", string dtCurr = "")
{
// attenzione! poiché nell'URL il carattere "#" viene filtrato ci aspettiamo il
@@ -589,6 +629,26 @@ namespace MP_IO.Controllers
return answ;
}
/// <summary>
/// Creazione nuovo ODL dato CodArt + numPz
/// GET: IOB/forceCreatePOdl/SIMUL_03?CodArt=ABCD_1234&numPz=5
/// </summary>
/// <param name="id"></param>
/// <param name="CodArt"></param>
/// <param name="CodGruppo"></param>
/// <param name="numPz"></param>
/// <returns>IdxODL creato</returns>
public int forceCreatePOdl(string id, string CodArt, string CodGruppo, int numPz)
{
int answ = 0;
// attenzione! poiché nell'URL il carattere "#" viene filtrato ci aspettiamo il
// carattere "|" che poi trasformiamo ora in "#"
id = id.Replace("|", "#");
DataLayer DataLayerObj = new DataLayer();
answ = DataLayerObj.ForceCreatePOdl(id, CodArt, numPz, CodGruppo);
return answ;
}
/// <summary>
/// Recupera elenco articoli dei PODL correnti:
///
@@ -604,8 +664,7 @@ namespace MP_IO.Controllers
try
{
// recupero dati macchina...
var elencoArt = DataLayerObj.taAnagArt.getByCurrPODL();
DS_ProdTempi.AnagArticoliDataTable elencoArt = DataLayerObj.taAnagArt.getByCurrPODL();
answ = JsonConvert.SerializeObject(elencoArt);
}
catch
+32
View File
@@ -1643,6 +1643,38 @@ namespace MapoDb
return resultList;
}
/// <summary>
/// Effettua force Start PODL [CurrProdStatus = 1] se fosse già in essere ODL collegato
/// --&gt; lascia aperto [CurrProdStatus = 2] se esistesse un ODL da altro PODL x diverso
/// articolo/fase --&gt; chiude vecchio x poi far partire nuovo [CurrProdStatus = 3] se
/// fosse chiuso ODL collegato --&gt; duplica PODL e poi avvia nuovo ODL [CurrProdStatus =
/// 4] se fosse già in essere ODL non collegato --&gt; lascia aperto e collego
/// </summary>
/// <param name="idxMacchina">macchina</param>
/// <param name="CodArt">Codice articolo x PODL da creare</param>
/// <param name="NumPz">Qty assegnata</param>
/// <param name="CodGruppo">Codice Gruppo
/// opzionale, default = ND-00</param>
/// <param name="TCiclo">TCiclo assegnato
/// opzionale, default = 1</param>
/// <returns></returns>
public int ForceCreatePOdl(string idxMacchina, string CodArt, int NumPz, string CodGruppo = "ND-00", decimal TCiclo = 1)
{
int answ = 0;
DateTime adesso = DateTime.Now;
// creazione record articolo SE non ci fosse...
string keyRich = $"IOB-{adesso:yyyyMMdd-HHmmss}";
taPODL.insertQuery(keyRich, keyRich, true, CodArt, CodGruppo, idxMacchina, NumPz, TCiclo, adesso, 1, 1, "");
// cerco PODL da chiave...
var listPOdl = taPODL.getByCodArt(CodArt, true);
var thisPodl = listPOdl.Where(x => x.KeyRichiesta == keyRich).FirstOrDefault();
if (thisPodl != null)
{
answ = thisPodl.idxPromessa;
}
return answ;
}
/// <summary>
/// Effettua force Start PODL [CurrProdStatus = 1] se fosse già in essere ODL collegato
/// --&gt; lascia aperto [CurrProdStatus = 2] se esistesse un ODL da altro PODL x diverso