Riscrittura componente processing UDC

spostato tutto in classe parent differenziando da config
This commit is contained in:
Samuele E. Locatelli
2016-08-05 15:27:09 +02:00
parent bdd45fba91
commit 665f21d7dd
9 changed files with 315 additions and 497 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+9 -247
View File
@@ -22,7 +22,8 @@ namespace GMW.WebUserControls
eventoUDC_qta = "UDC_QTY";
codLineaKo = "W2100";
tipoUdcRist = "Finito";
}
IdxPosizioneIn = memLayer.ML.CRI("IdxPosizioneTrattati");
}
/// <summary>
/// Codice AL target
/// </summary>
@@ -119,258 +120,19 @@ namespace GMW.WebUserControls
}
}
/// <summary>
/// controlla se ci sia un barcode
/// IMposta e legge imballo selezionato
/// </summary>
public override void checkBarcode()
public override string imballoSel
{
if (barcodeIn != "")
get
{
Postazione.messaggiText = string.Format("Barcode digitato: {0}", barcodeIn);
switch (MagClass.tipoBCode_L3(barcodeIn))
{
case tipoCodiceBarcode.Comando:
if (barcodeIn == memLayer.ML.CRS("cmdReset"))
{
currParticolare = "";
Response.Redirect(PagCorrente);
}
break;
case tipoCodiceBarcode.Imballo:
// cerco di selezionare!
try
{
ddlImballi.SelectedValue = barcodeIn;
}
catch
{
Postazione.warningText = traduci("ERR-IMB-001");
Postazione.CssClass = "stileComandoKo";
}
break;
case tipoCodiceBarcode.Particolare:
// imposto il particolare corrente
currParticolare = barcodeIn;
origParticolare = barcodeIn;
impostaParticolare();
break;
case tipoCodiceBarcode.UDC:
// se linea non selezionata ERRORE!!!
if (Postazione.currCodLinea == codLineaKo)
{
Postazione.messaggiText += " - Attenzione, IMPOSTARE LINEA!";
Postazione.CssClass = "stileComandoKo";
}
else
{
// procedo solo se UDC esistente
if (MagClass.magazzino.checkUDC(barcodeIn))
{
// controllo se NON ci siano NC "pending"
if (MagClass.magazzino.checkUDC_NC(barcodeIn) != checkUdcNc.HasNc)
{
/********************************************************************
* procedo per UDC in ingresso:
* - deve essere di tipo IN
* - se NON c'è UDC in AL dest a pari particolare LO CREO
* - se c'era già UDC per lo stesso particolare --> consumo (il vecchio)
* - associo UDC letto ad UDC in AL dest a pari particolare
*
********************************************************************/
// controllo IdxPosizione dell'UDC e confronto con posizione in webconfig x trattati (pre lavorazioni meccaniche)
int IdxPosizione = DataProxy.obj.taCartellini.stp_getByUdc(barcodeIn)[0].IdxPosizione;
if (IdxPosizione == memLayer.ML.CRI("IdxPosizioneTrattati"))
{
// calcolo nuovo particolare
origParticolare = DataProxy.obj.taCartellini.stp_getByUdc(barcodeIn)[0].Particolare;
string udcDest = "";
string tipoLinea = "";
if (Postazione.currNomeLinea.IndexOf("GRZ") >= 0)
{
tipoLinea = "GRZ";
}
else
{
tipoLinea = "LVT";
}
// chiamo sempre stored x recuperare GRZ da GRZ (solo alcuni) o LVT da GRZ
// calcolo particolare LVT da Distinta Base
string partLvt = "";
MagClass.magazzino.taPartIO.particolareLVTFromGRZ(tipoLinea, origParticolare, CodCs, ref partLvt);
currParticolare = partLvt;
// continuo controlli
if (currParticolare != "")
{
int idxCellaCurr = 0;
try
{
idxCellaCurr = MagClass.magazzino.taPosUdcCorr.getByUDC(barcodeIn)[0].IdxCella;
}
catch
{ }
string codBloccoCurr = "";
int idxBlocco = 0;
try
{
idxBlocco = MagClass.magazzino.taCelle.getByIdxCella(idxCellaCurr)[0].IdxBlocco;
codBloccoCurr = MagClass.magazzino.taBlocchi.getByIdx(idxBlocco)[0].CodBlocco;
}
catch
{ }
// 2015.01.12 controllo UDC non già su altre postazioni...
if (codBloccoCurr == Postazione.currCodBlocco && idxCellaCurr != Postazione.currIdxCella)
{
Postazione.messaggiText += " - Attenzione, UDC già caricato su ALTRA LINEA!";
Postazione.CssClass = "stileComandoKo";
}
else
{
// controllo SE esista già UDC in AL dest... altrimenti CREO!!!
udcDest = checkCreaUDC();
// verifico che NON SIA GIA' associato...
bool udcGiaAssociato = false;
try
{
udcGiaAssociato = MagClass.magazzino.checkAssociazioneUdcParent(udcDest, barcodeIn);
}
catch
{ }
if (!udcGiaAssociato)
{
// associo UDC con quello di destinazione SE NECESSARIO
MagClass.magazzino.associaUdcParent(udcDest, barcodeIn, true);
}
// controllo se UDC non sia già stato spostato in posizione... dsMagazzino, posizUdcCorrente, getByUdc
if (idxCellaCurr == Postazione.currIdxCella)
{
Postazione.messaggiText += " - Attenzione, UDC già caricato!";
Postazione.CssClass = "stileComandoKo";
// controllo SE esista già UDC in AL dest... altrimenti CREO!!!
checkCreaUDC();
}
else
{
// verifico per eventuale consumo vecchio UDC... cerco nella posizione
DS_magazzino.v_UdcDetailDataTable tabUdcDet = null;
try
{
// cerco nella posizione
tabUdcDet = MagClass.magazzino.taDettUDC.getUdcDetailByIdxCella(idxCella);
}
catch
{ }
// carico UDC letto in cella...
DateTime adesso = DateTime.Now;
string noteTrim = Postazione.currNomeLinea;
// cerco se NON ci sia l'UDC letto...
if (tabUdcDet.Select(string.Format("UDC = '{0}'", barcodeIn)).Length == 0)
{
string oldUdc = "";
try
{
oldUdc = ((DS_magazzino.v_UdcDetailRow)tabUdcDet.Select(string.Format("Particolare = '{0}'", origParticolare))[0]).UDC;
}
catch
{ }
// se trovo un altro UDC dello stesso particolare...
if (oldUdc != "")
{
// consumo UDC
consumaUdc(oldUdc);
}
// se ho cod cella sposto UDC in nuova posizione!
MagClass.magazzino.spostaUDC(CodCs, barcodeIn, Postazione.currIdxCella, memLayer.ML.confReadBool("spostaUdcResettaLdp"), Request.UserHostName);
// registro spostamento UDC
MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, barcodeIn, currParticolare, "spostaUDC", string.Format("Caricato UDC FINITI su linea {2}, qta: {0} {1} ", qta, noteTrim, Postazione.currCodLinea));
}
Postazione.CssClass = "stileComandoOk";
}
}
}
else // non trovo part LVT
{
Postazione.messaggiText += traduci("ERR-NC-002");
Postazione.CssClass = "stileComandoKo";
}
}
// controllo SE PER CASO ci fosse NC e ci sia stata deroga, cambio MSG...
if (MagClass.magazzino.checkUDC_NC(barcodeIn) == checkUdcNc.ChkDis_HasNc)
{
Postazione.CssClass = "stileComandoKo";
Postazione.messaggiText += traduci("ERR-NC-001");
}
}
else
{
Postazione.messaggiText += traduci("ERR-NC-001");
Postazione.CssClass = "stileComandoKo";
}
}
}
// update
doUpdate();
break;
case tipoCodiceBarcode.Operatore:
// calcolo matricola utente
int MatrUtente = -1;
string preCodSogg = memLayer.ML.CRS("prefCodSogg");
if (barcodeIn.StartsWith(preCodSogg))
{
MatrUtente = DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0)[0].CodMatricola;
}
else
{
MatrUtente = Convert.ToInt32(barcodeIn);
}
if (MatrUtente >= 0)
{
// salvo in sessione operatore con AUTH
OpAuth.startOpAuth(MatrUtente);
// mostro che ho autorizzato...
Postazione.messaggiText += traduci("userAuthRec");
Postazione.CssClass = "stileComandoOk";
Response.Redirect(user_std.pagCorrente);
}
else
{
Postazione.messaggiText += " - codice <b>non riconosciuto</b>!";
Postazione.CssClass = "stileComandoND";
}
break;
default:
// cerco se sia "0" = reset utente...
if (barcodeIn == memLayer.ML.CRS("resetCodSogg"))
{
// salvo in sessione operatore con AUTH
OpAuth.stopAuth();
// mostro che ho autorizzato...
Postazione.messaggiText += traduci("userAuthRem");
Postazione.CssClass = "stileComandoOk";
Response.Redirect(user_std.pagCorrente);
}
Postazione.messaggiText += " - codice <b>non riconosciuto</b>!";
Postazione.CssClass = "stileComandoND";
break;
}
barcodeIn = "";
lastBarcodeIn = "-";
return ddlImballi.SelectedValue;
}
else
set
{
if (lastBarcodeIn == "")
{
Postazione.messaggiText = traduci("AttesaBCode");
Postazione.CssClass = "stileAttesa";
}
lastBarcodeIn = "";
ddlImballi.SelectedValue = value;
}
doUpdate();
}
/// <summary>
/// crea eventualmente UDC per particolare in AL di destinazione e restituisce codice UDC
+9 -247
View File
@@ -22,6 +22,7 @@ namespace GMW.WebUserControls
eventoUDC_qta = "UDC_QTY";
codLineaKo = "W2300";
tipoUdcRist = "Finito Lavorato";
IdxPosizioneIn = memLayer.ML.CRI("IdxPosizioneFiniti");
}
/// <summary>
/// Codice AL target
@@ -119,258 +120,19 @@ namespace GMW.WebUserControls
}
}
/// <summary>
/// controlla se ci sia un barcode
/// IMposta e legge imballo selezionato
/// </summary>
public override void checkBarcode()
public override string imballoSel
{
if (barcodeIn != "")
get
{
Postazione.messaggiText = string.Format("Barcode digitato: {0}", barcodeIn);
switch (MagClass.tipoBCode_L3(barcodeIn))
{
case tipoCodiceBarcode.Comando:
if (barcodeIn == memLayer.ML.CRS("cmdReset"))
{
currParticolare = "";
Response.Redirect(PagCorrente);
}
break;
case tipoCodiceBarcode.Imballo:
// cerco di selezionare!
try
{
ddlImballi.SelectedValue = barcodeIn;
}
catch
{
Postazione.warningText = traduci("ERR-IMB-001");
Postazione.CssClass = "stileComandoKo";
}
break;
case tipoCodiceBarcode.Particolare:
// imposto il particolare corrente
currParticolare = barcodeIn;
origParticolare = barcodeIn;
impostaParticolare();
break;
case tipoCodiceBarcode.UDC:
// se linea non selezionata ERRORE!!!
if (Postazione.currCodLinea == codLineaKo)
{
Postazione.messaggiText += " - Attenzione, IMPOSTARE LINEA!";
Postazione.CssClass = "stileComandoKo";
}
else
{
// procedo solo se UDC esistente
if (MagClass.magazzino.checkUDC(barcodeIn))
{
// controllo se NON ci siano NC "pending"
if (MagClass.magazzino.checkUDC_NC(barcodeIn) != checkUdcNc.HasNc)
{
/********************************************************************
* procedo per UDC in ingresso:
* - deve essere di tipo IN
* - se NON c'è UDC in AL dest a pari particolare LO CREO
* - se c'era già UDC per lo stesso particolare --> consumo (il vecchio)
* - associo UDC letto ad UDC in AL dest a pari particolare
*
********************************************************************/
// controllo IdxPosizione dell'UDC e confronto con posizione in webconfig x trattati (pre lavorazioni meccaniche)
int IdxPosizione = DataProxy.obj.taCartellini.stp_getByUdc(barcodeIn)[0].IdxPosizione;
if (IdxPosizione == memLayer.ML.CRI("IdxPosizioneTrattati"))
{
// calcolo nuovo particolare
origParticolare = DataProxy.obj.taCartellini.stp_getByUdc(barcodeIn)[0].Particolare;
string udcDest = "";
string tipoLinea = "";
if (Postazione.currNomeLinea.IndexOf("GRZ") >= 0)
{
tipoLinea = "GRZ";
}
else
{
tipoLinea = "LVT";
}
// chiamo sempre stored x recuperare GRZ da GRZ (solo alcuni) o LVT da GRZ
// calcolo particolare LVT da Distinta Base
string partLvt = "";
MagClass.magazzino.taPartIO.particolareLVTFromGRZ(tipoLinea, origParticolare, CodCs, ref partLvt);
currParticolare = partLvt;
// continuo controlli
if (currParticolare != "")
{
int idxCellaCurr = 0;
try
{
idxCellaCurr = MagClass.magazzino.taPosUdcCorr.getByUDC(barcodeIn)[0].IdxCella;
}
catch
{ }
string codBloccoCurr = "";
int idxBlocco = 0;
try
{
idxBlocco = MagClass.magazzino.taCelle.getByIdxCella(idxCellaCurr)[0].IdxBlocco;
codBloccoCurr = MagClass.magazzino.taBlocchi.getByIdx(idxBlocco)[0].CodBlocco;
}
catch
{ }
// 2015.01.12 controllo UDC non già su altre postazioni...
if (codBloccoCurr == Postazione.currCodBlocco && idxCellaCurr != Postazione.currIdxCella)
{
Postazione.messaggiText += " - Attenzione, UDC già caricato su ALTRA LINEA!";
Postazione.CssClass = "stileComandoKo";
}
else
{
// controllo SE esista già UDC in AL dest... altrimenti CREO!!!
udcDest = checkCreaUDC();
// verifico che NON SIA GIA' associato...
bool udcGiaAssociato = false;
try
{
udcGiaAssociato = MagClass.magazzino.checkAssociazioneUdcParent(udcDest, barcodeIn);
}
catch
{ }
if (!udcGiaAssociato)
{
// associo UDC con quello di destinazione SE NECESSARIO
MagClass.magazzino.associaUdcParent(udcDest, barcodeIn, true);
}
// controllo se UDC non sia già stato spostato in posizione... dsMagazzino, posizUdcCorrente, getByUdc
if (idxCellaCurr == Postazione.currIdxCella)
{
Postazione.messaggiText += " - Attenzione, UDC già caricato!";
Postazione.CssClass = "stileComandoKo";
// controllo SE esista già UDC in AL dest... altrimenti CREO!!!
checkCreaUDC();
}
else
{
// verifico per eventuale consumo vecchio UDC... cerco nella posizione
DS_magazzino.v_UdcDetailDataTable tabUdcDet = null;
try
{
// cerco nella posizione
tabUdcDet = MagClass.magazzino.taDettUDC.getUdcDetailByIdxCella(idxCella);
}
catch
{ }
// carico UDC letto in cella...
DateTime adesso = DateTime.Now;
string noteTrim = Postazione.currNomeLinea;
// cerco se NON ci sia l'UDC letto...
if (tabUdcDet.Select(string.Format("UDC = '{0}'", barcodeIn)).Length == 0)
{
string oldUdc = "";
try
{
oldUdc = ((DS_magazzino.v_UdcDetailRow)tabUdcDet.Select(string.Format("Particolare = '{0}'", origParticolare))[0]).UDC;
}
catch
{ }
// se trovo un altro UDC dello stesso particolare...
if (oldUdc != "")
{
// consumo UDC
consumaUdc(oldUdc);
}
// se ho cod cella sposto UDC in nuova posizione!
MagClass.magazzino.spostaUDC(CodCs, barcodeIn, Postazione.currIdxCella, memLayer.ML.confReadBool("spostaUdcResettaLdp"), Request.UserHostName);
// registro spostamento UDC
MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, barcodeIn, currParticolare, "spostaUDC", string.Format("Caricato UDC FINITI su linea {2}, qta: {0} {1} ", qta, noteTrim, Postazione.currCodLinea));
}
Postazione.CssClass = "stileComandoOk";
}
}
}
else // non trovo part LVT
{
Postazione.messaggiText += traduci("ERR-NC-002");
Postazione.CssClass = "stileComandoKo";
}
}
// controllo SE PER CASO ci fosse NC e ci sia stata deroga, cambio MSG...
if (MagClass.magazzino.checkUDC_NC(barcodeIn) == checkUdcNc.ChkDis_HasNc)
{
Postazione.CssClass = "stileComandoKo";
Postazione.messaggiText += traduci("ERR-NC-001");
}
}
else
{
Postazione.messaggiText += traduci("ERR-NC-001");
Postazione.CssClass = "stileComandoKo";
}
}
}
// update
doUpdate();
break;
case tipoCodiceBarcode.Operatore:
// calcolo matricola utente
int MatrUtente = -1;
string preCodSogg = memLayer.ML.CRS("prefCodSogg");
if (barcodeIn.StartsWith(preCodSogg))
{
MatrUtente = DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0)[0].CodMatricola;
}
else
{
MatrUtente = Convert.ToInt32(barcodeIn);
}
if (MatrUtente >= 0)
{
// salvo in sessione operatore con AUTH
OpAuth.startOpAuth(MatrUtente);
// mostro che ho autorizzato...
Postazione.messaggiText += traduci("userAuthRec");
Postazione.CssClass = "stileComandoOk";
Response.Redirect(user_std.pagCorrente);
}
else
{
Postazione.messaggiText += " - codice <b>non riconosciuto</b>!";
Postazione.CssClass = "stileComandoND";
}
break;
default:
// cerco se sia "0" = reset utente...
if (barcodeIn == memLayer.ML.CRS("resetCodSogg"))
{
// salvo in sessione operatore con AUTH
OpAuth.stopAuth();
// mostro che ho autorizzato...
Postazione.messaggiText += traduci("userAuthRem");
Postazione.CssClass = "stileComandoOk";
Response.Redirect(user_std.pagCorrente);
}
Postazione.messaggiText += " - codice <b>non riconosciuto</b>!";
Postazione.CssClass = "stileComandoND";
break;
}
barcodeIn = "";
lastBarcodeIn = "-";
return ddlImballi.SelectedValue;
}
else
set
{
if (lastBarcodeIn == "")
{
Postazione.messaggiText = traduci("AttesaBCode");
Postazione.CssClass = "stileAttesa";
}
lastBarcodeIn = "";
ddlImballi.SelectedValue = value;
}
doUpdate();
}
/// <summary>
/// crea eventualmente UDC per particolare in AL di destinazione e restituisce codice UDC
@@ -426,7 +188,7 @@ namespace GMW.WebUserControls
/// <summary>
/// aggiorna tabella + focus a barcode
/// </summary>
public override void doUpdate()
public override void doUpdate()
{
base.doUpdate();
grView.DataBind();
BIN
View File
Binary file not shown.
Binary file not shown.
+297 -3
View File
@@ -39,6 +39,10 @@ namespace GMW_data
/// </summary>
public string tipoUdcRist = "";
/// <summary>
/// IdxPosizione x UDC in ingresso
/// </summary>
public int IdxPosizioneIn = 0;
/// <summary>
/// Impostazione variabili specifiche
/// </summary>
public virtual void setupVariabili()
@@ -338,6 +342,18 @@ namespace GMW_data
{ }
}
/// <summary>
/// Imballo selezionato
/// </summary>
public virtual string imballoSel
{
get
{
return "";
}
set
{ }
}
/// <summary>
/// Metodo aggiornamento qta
/// </summary>
public virtual void aggiornaQta()
@@ -492,6 +508,7 @@ namespace GMW_data
MagClass.magazzino.taAL.updatePost(codLinea, Postazione.name);
}
}
#endregion
#region area metodi interazione controlli
@@ -539,7 +556,7 @@ namespace GMW_data
{
aggiornaQta();
}
public virtual void grView_PageIndexChanged(object sender, EventArgs e)
{
// fix dell'ODS
@@ -594,11 +611,288 @@ namespace GMW_data
#region metodi da customizzare in ogni pagina
/// <summary>
/// tenta di impostare l'imballo al valore indicato altrimenti mostra errore
/// </summary>
/// <param name="valore"></param>
public virtual void trySetImballo(string valore)
{
// cerco di selezionare!
try
{
imballoSel = valore;
}
catch
{
Postazione.warningText = traduci("ERR-IMB-001");
Postazione.CssClass = "stileComandoKo";
}
}
/// <summary>
/// controlla se ci sia un barcode
/// </summary>
public virtual void checkBarcode()
{ }
{
if (barcodeIn != "")
{
Postazione.messaggiText = string.Format("Barcode digitato: {0}", barcodeIn);
switch (MagClass.tipoBCode_L3(barcodeIn))
{
case tipoCodiceBarcode.Comando:
if (barcodeIn == memLayer.ML.CRS("cmdReset"))
{
currParticolare = "";
Response.Redirect(PagCorrente);
}
break;
case tipoCodiceBarcode.Imballo:
trySetImballo(barcodeIn);
break;
case tipoCodiceBarcode.Particolare:
// imposto il particolare corrente
currParticolare = barcodeIn;
origParticolare = barcodeIn;
impostaParticolare();
break;
case tipoCodiceBarcode.UDC:
preProcessBCodeUdc();
// update
doUpdate();
break;
case tipoCodiceBarcode.Operatore:
// calcolo matricola utente
int MatrUtente = -1;
string preCodSogg = memLayer.ML.CRS("prefCodSogg");
if (barcodeIn.StartsWith(preCodSogg))
{
MatrUtente = DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0)[0].CodMatricola;
}
else
{
MatrUtente = Convert.ToInt32(barcodeIn);
}
if (MatrUtente >= 0)
{
// salvo in sessione operatore con AUTH
OpAuth.startOpAuth(MatrUtente);
// mostro che ho autorizzato...
Postazione.messaggiText += traduci("userAuthRec");
Postazione.CssClass = "stileComandoOk";
Response.Redirect(user_std.pagCorrente);
}
else
{
Postazione.messaggiText += " - codice <b>non riconosciuto</b>!";
Postazione.CssClass = "stileComandoND";
}
break;
default:
// cerco se sia "0" = reset utente...
if (barcodeIn == memLayer.ML.CRS("resetCodSogg"))
{
// salvo in sessione operatore con AUTH
OpAuth.stopAuth();
// mostro che ho autorizzato...
Postazione.messaggiText += traduci("userAuthRem");
Postazione.CssClass = "stileComandoOk";
Response.Redirect(user_std.pagCorrente);
}
Postazione.messaggiText += " - codice <b>non riconosciuto</b>!";
Postazione.CssClass = "stileComandoND";
break;
}
barcodeIn = "";
lastBarcodeIn = "-";
}
else
{
if (lastBarcodeIn == "")
{
Postazione.messaggiText = traduci("AttesaBCode");
Postazione.CssClass = "stileAttesa";
}
lastBarcodeIn = "";
}
doUpdate();
}
/// <summary>
/// Pre-processing di un barcode tipo UDC
/// </summary>
public virtual void preProcessBCodeUdc()
{
// se linea non selezionata ERRORE!!!
if (Postazione.currCodLinea == codLineaKo)
{
Postazione.messaggiText += " - Attenzione, IMPOSTARE LINEA!";
Postazione.CssClass = "stileComandoKo";
}
else
{
// procedo solo se UDC esistente
if (MagClass.magazzino.checkUDC(barcodeIn))
{
// controllo se NON ci siano NC "pending"
if (MagClass.magazzino.checkUDC_NC(barcodeIn) != checkUdcNc.HasNc)
{
string tipoLinea = "";
if (Postazione.currNomeLinea.IndexOf("GRZ") >= 0)
{
tipoLinea = "GRZ";
}
else if (Postazione.currNomeLinea.IndexOf("LVT") >= 0)
{
tipoLinea = "LVT";
}
else
{
tipoLinea = "ND";
}
processBCodeUdc(tipoLinea);
// controllo SE PER CASO ci fosse NC e ci sia stata deroga, cambio MSG...
if (MagClass.magazzino.checkUDC_NC(barcodeIn) == checkUdcNc.ChkDis_HasNc)
{
Postazione.CssClass = "stileComandoKo";
Postazione.messaggiText += traduci("ERR-NC-001");
}
}
else
{
Postazione.messaggiText += traduci("ERR-NC-001");
Postazione.CssClass = "stileComandoKo";
}
}
}
}
/// <summary>
/// Gestione specifica barcode x tipo linea
/// </summary>
/// <param name="tipoLinea"></param>
public virtual void processBCodeUdc(string tipoLinea)
{
/********************************************************************
* procedo per UDC in ingresso:
* - deve essere di tipo IN
* - se NON c'è UDC in AL dest a pari particolare LO CREO
* - se c'era già UDC per lo stesso particolare --> consumo (il vecchio)
* - associo UDC letto ad UDC in AL dest a pari particolare
*
********************************************************************/
// controllo IdxPosizione dell'UDC e confronto con posizione in webconfig x trattati (pre lavorazioni meccaniche)
int IdxPosizione = DataProxy.obj.taCartellini.stp_getByUdc(barcodeIn)[0].IdxPosizione;
if (IdxPosizione == IdxPosizioneIn)
{
// calcolo nuovo particolare
origParticolare = DataProxy.obj.taCartellini.stp_getByUdc(barcodeIn)[0].Particolare;
string udcDest = "";
// chiamo sempre stored x recuperare GRZ da GRZ (solo alcuni) o LVT da GRZ o LVT da LVT (supercubati)
// calcolo particolare OUT da Distinta Base
string partOut = "";
MagClass.magazzino.taPartIO.particolareLVTFromGRZ(tipoLinea, origParticolare, CodCs, ref partOut);
currParticolare = partOut;
// continuo controlli
if (currParticolare != "")
{
int idxCellaCurr = 0;
try
{
idxCellaCurr = MagClass.magazzino.taPosUdcCorr.getByUDC(barcodeIn)[0].IdxCella;
}
catch
{ }
string codBloccoCurr = "";
int idxBlocco = 0;
try
{
idxBlocco = MagClass.magazzino.taCelle.getByIdxCella(idxCellaCurr)[0].IdxBlocco;
codBloccoCurr = MagClass.magazzino.taBlocchi.getByIdx(idxBlocco)[0].CodBlocco;
}
catch
{ }
// 2015.01.12 controllo UDC non già su altre postazioni...
if (codBloccoCurr == Postazione.currCodBlocco && idxCellaCurr != Postazione.currIdxCella)
{
Postazione.messaggiText += " - Attenzione, UDC già caricato su ALTRA LINEA!";
Postazione.CssClass = "stileComandoKo";
}
else
{
// controllo SE esista già UDC in AL dest... altrimenti CREO!!!
udcDest = checkCreaUDC();
// verifico che NON SIA GIA' associato...
bool udcGiaAssociato = false;
try
{
udcGiaAssociato = MagClass.magazzino.checkAssociazioneUdcParent(udcDest, barcodeIn);
}
catch
{ }
if (!udcGiaAssociato)
{
// associo UDC con quello di destinazione SE NECESSARIO
MagClass.magazzino.associaUdcParent(udcDest, barcodeIn, true);
}
// controllo se UDC non sia già stato spostato in posizione... dsMagazzino, posizUdcCorrente, getByUdc
if (idxCellaCurr == Postazione.currIdxCella)
{
Postazione.messaggiText += " - Attenzione, UDC già caricato!";
Postazione.CssClass = "stileComandoKo";
// controllo SE esista già UDC in AL dest... altrimenti CREO!!!
checkCreaUDC();
}
else
{
// verifico per eventuale consumo vecchio UDC... cerco nella posizione
DS_magazzino.v_UdcDetailDataTable tabUdcDet = null;
try
{
// cerco nella posizione
tabUdcDet = MagClass.magazzino.taDettUDC.getUdcDetailByIdxCella(idxCella);
}
catch
{ }
// carico UDC letto in cella...
DateTime adesso = DateTime.Now;
string noteTrim = Postazione.currNomeLinea;
// cerco se NON ci sia l'UDC letto...
if (tabUdcDet.Select(string.Format("UDC = '{0}'", barcodeIn)).Length == 0)
{
string oldUdc = "";
try
{
oldUdc = ((DS_magazzino.v_UdcDetailRow)tabUdcDet.Select(string.Format("Particolare = '{0}'", origParticolare))[0]).UDC;
}
catch
{ }
// se trovo un altro UDC dello stesso particolare...
if (oldUdc != "")
{
// consumo UDC
consumaUdc(oldUdc);
}
// se ho cod cella sposto UDC in nuova posizione!
MagClass.magazzino.spostaUDC(CodCs, barcodeIn, Postazione.currIdxCella, memLayer.ML.CRB("spostaUdcResettaLdp"), Request.UserHostName);
// registro spostamento UDC
MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, barcodeIn, currParticolare, "spostaUDC", string.Format("Caricato UDC {3} su linea {2}, qta: {0} {1} ", qta, noteTrim, Postazione.currCodLinea, tipoUdcRist));
}
Postazione.CssClass = "stileComandoOk";
}
}
}
else // non trovo part LVT
{
Postazione.messaggiText += traduci("ERR-NC-002");
Postazione.CssClass = "stileComandoKo";
}
}
}
/// <summary>
/// segnaposto gestione creazione opzionale UDC
/// </summary>
@@ -614,7 +908,7 @@ namespace GMW_data
/// <param name="e"></param>
public virtual void btnStampa_Click(object sender, EventArgs e)
{ }
#endregion
}
}