Aggiunta IO metodi x gestione PODL estesa
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -1643,6 +1643,38 @@ namespace MapoDb
|
||||
return resultList;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua force Start PODL [CurrProdStatus = 1] se fosse già in essere ODL collegato
|
||||
/// --> lascia aperto [CurrProdStatus = 2] se esistesse un ODL da altro PODL x diverso
|
||||
/// articolo/fase --> chiude vecchio x poi far partire nuovo [CurrProdStatus = 3] se
|
||||
/// fosse chiuso ODL collegato --> duplica PODL e poi avvia nuovo ODL [CurrProdStatus =
|
||||
/// 4] se fosse già in essere ODL non collegato --> 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
|
||||
/// --> lascia aperto [CurrProdStatus = 2] se esistesse un ODL da altro PODL x diverso
|
||||
|
||||
Reference in New Issue
Block a user