354 lines
11 KiB
C#
354 lines
11 KiB
C#
using GMW_data;
|
|
using SteamWare;
|
|
using System;
|
|
using System.Web.UI;
|
|
|
|
namespace GMW.WebUserControls
|
|
{
|
|
public partial class mod_PostProveMecc : System.Web.UI.UserControl
|
|
{
|
|
/// <summary>
|
|
/// evento richiesta update
|
|
/// </summary>
|
|
public event EventHandler eh_reqUpdate;
|
|
/// <summary>
|
|
/// Codice attributo da salvare x Prove Meccaniche
|
|
/// </summary>
|
|
protected string CodAttr = "PM";
|
|
/// <summary>
|
|
/// Numero Trattamento (già deliberato)
|
|
/// </summary>
|
|
protected string NumTT_Delib
|
|
{
|
|
get
|
|
{
|
|
return lblNtDelib.Text.Trim();
|
|
}
|
|
set
|
|
{
|
|
lblNtDelib.Text = value;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// Numero Trattamento (NON ANCORA deliberato)
|
|
/// </summary>
|
|
protected string NumTT_NoDelib
|
|
{
|
|
get
|
|
{
|
|
return lblNtNoDelib.Text.Trim();
|
|
}
|
|
set
|
|
{
|
|
lblNtNoDelib.Text = value;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// EsitoPM
|
|
/// </summary>
|
|
public bool EsitoPM
|
|
{
|
|
get
|
|
{
|
|
return chkPrMecc.Checked;
|
|
}
|
|
set
|
|
{
|
|
chkPrMecc.Checked = value;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// caricamento pagina
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!Page.IsPostBack)
|
|
{
|
|
resetIN();
|
|
Postazione.messaggiText = "";
|
|
Postazione.warningText = "";
|
|
}
|
|
checkBarcode();
|
|
}
|
|
/// <summary>
|
|
/// resetta input
|
|
/// </summary>
|
|
private void resetIN()
|
|
{
|
|
grViewDPM.SelectedIndex = -1;
|
|
grViewTT.SelectedIndex = -1;
|
|
barcodeIn = "";
|
|
NumTT_Delib = "";
|
|
NumTT_NoDelib = "";
|
|
EsitoPM = false;
|
|
}
|
|
/// <summary>
|
|
/// wrapper traduzione
|
|
/// </summary>
|
|
/// <param name="lemma"></param>
|
|
/// <returns></returns>
|
|
public string traduci(object lemma)
|
|
{
|
|
return user_std.UtSn.Traduci(lemma.ToString());
|
|
}
|
|
/// <summary>
|
|
/// valore barcode
|
|
/// </summary>
|
|
public string barcodeIn
|
|
{
|
|
get
|
|
{
|
|
return txtBarcode.Text.Trim();
|
|
}
|
|
set
|
|
{
|
|
txtBarcode.Text = value;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// Verifica l'AL se sia ok x procedere:
|
|
/// - Tipo "T"
|
|
/// - Attivo
|
|
/// </summary>
|
|
/// <param name="AL"></param>
|
|
/// <returns></returns>
|
|
protected bool checkAL(string AL)
|
|
{
|
|
bool answ = false;
|
|
try
|
|
{
|
|
answ = MagClass.magazzino.taEA.getByAL_TipoAttivo(AL, "T").Rows.Count > 0;
|
|
}
|
|
catch
|
|
{ }
|
|
if (!answ)
|
|
{
|
|
Postazione.warningText = traduci("ErroreAlNonTtAttivo");
|
|
Postazione.CssClass = "stileComandoKo";
|
|
}
|
|
else
|
|
{
|
|
Postazione.warningText = "";
|
|
Postazione.CssClass = "stileComandoOk";
|
|
}
|
|
return answ;
|
|
}
|
|
/// <summary>
|
|
/// controlla se ci sia un barcode
|
|
/// </summary>
|
|
private void checkBarcode()
|
|
{
|
|
/**********************************
|
|
* check barcode deve funzionare così:
|
|
* - accetta reset
|
|
* - cerca in TUTTI i trattamenti se sia valido codice BCode / manuale (fare che select laterale seleziona stesso valore)
|
|
* - se è in DPM (già deliberato) filtro li (e nascondo tutto su TT da deliberare)
|
|
* - se è TT non deliberati al contrario mostro li e non in DPM (sempre con filtro su ods)
|
|
* - mostro txt x inserire valore della PM
|
|
* - mostro button deliberare
|
|
* - post delibera aggiorno (togliendo filtri e selezioni valori)
|
|
*
|
|
* nb:
|
|
* - delibere in ordine cronologico DESC
|
|
* - trattamenti FIFO (ASC)
|
|
*
|
|
* */
|
|
|
|
if (barcodeIn != "")
|
|
{
|
|
Postazione.messaggiText = string.Format("{0}: {1}", traduci("BCodeIns"), barcodeIn);
|
|
switch (MagClass.tipoBCode_L5(barcodeIn))
|
|
{
|
|
case tipoCodiceBarcode.AL:
|
|
// verifico AL
|
|
if (checkAL(barcodeIn))
|
|
{
|
|
// calcolo TT
|
|
NumTT_NoDelib = MagClass.magazzino.taET.getByAL(barcodeIn)[0].Trattamento;
|
|
// lo imposto come source o dest...
|
|
NumTT_Delib = NumTT_NoDelib;
|
|
}
|
|
doUpdate();
|
|
break;
|
|
case tipoCodiceBarcode.TT:
|
|
// imposto il trattamento termico nei 2 filtri...
|
|
NumTT_NoDelib = barcodeIn;
|
|
NumTT_Delib = barcodeIn;
|
|
break;
|
|
case tipoCodiceBarcode.Comando:
|
|
// se è reset cancello tutto!
|
|
if (barcodeIn == memLayer.ML.cdv("cmdReset"))
|
|
{
|
|
resetIN();
|
|
Postazione.messaggiText = "";
|
|
Postazione.warningText = "";
|
|
doUpdate();
|
|
}
|
|
Postazione.CssClass = "stileAttesa";
|
|
break;
|
|
default:
|
|
Postazione.messaggiText = "";
|
|
Postazione.warningText = traduci("ERR-UNK-001");
|
|
Postazione.CssClass = "stileComandoND";
|
|
break;
|
|
}
|
|
barcodeIn = "";
|
|
}
|
|
else
|
|
{
|
|
Postazione.messaggiText = traduci("AttesaBCode");
|
|
Postazione.CssClass = "stileAttesa";
|
|
}
|
|
doUpdate();
|
|
}
|
|
/// <summary>
|
|
/// aggiorna componenti + focus a barcode
|
|
/// </summary>
|
|
public void doUpdate()
|
|
{
|
|
grViewDPM.DataBind();
|
|
grViewTT.DataBind();
|
|
updateBtns();
|
|
// raise dell'evento
|
|
if (eh_reqUpdate != null)
|
|
{
|
|
eh_reqUpdate(this, new EventArgs());
|
|
}
|
|
// determino focus a seconda di cosa ho già in selezione..
|
|
if (EsitoPM)
|
|
{
|
|
lbtDeliberaPM.Focus();
|
|
}
|
|
else
|
|
{
|
|
if (NumTT_Delib != "" || NumTT_NoDelib != "")
|
|
{
|
|
chkPrMecc.Focus();
|
|
}
|
|
else
|
|
{
|
|
txtBarcode.Focus();
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// fix visibilità btnStampa
|
|
/// </summary>
|
|
private void updateBtns()
|
|
{
|
|
if (EsitoPM)
|
|
{
|
|
chkPrMecc.Text = "OK";
|
|
lblChec.Attributes.Remove("class");
|
|
lblChec.Attributes.Add("class", "btn btn-success");
|
|
}
|
|
else
|
|
{
|
|
chkPrMecc.Text = "KO";
|
|
lblChec.Attributes.Remove("class");
|
|
lblChec.Attributes.Add("class", "btn btn-danger");
|
|
}
|
|
// posso vedere esito PM se ho un numero tratt
|
|
bool btnVis = (NumTT_Delib != "" || NumTT_NoDelib != "");
|
|
divEsitoPM.Visible = btnVis;
|
|
lbtnResetNoPM.Visible = btnVis;
|
|
lbtnResetPM.Visible = btnVis;
|
|
divDelibera.Visible = btnVis;
|
|
}
|
|
/// <summary>
|
|
/// salva/aggiorna delibera di un TT
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void lbtDeliberaPM_Click(object sender, EventArgs e)
|
|
{
|
|
// salva delibera PM con update
|
|
string numTratt = "";
|
|
if (NumTT_Delib != "")
|
|
{
|
|
numTratt = NumTT_Delib;
|
|
}
|
|
else if (NumTT_NoDelib != "")
|
|
{
|
|
numTratt = NumTT_NoDelib;
|
|
}
|
|
MagClass.magazzino.taET.updatePM(numTratt, Convert.ToInt32(EsitoPM), DateTime.Now, MagClass.magazzino.CodSoggCurrUser);
|
|
// svuota selezioni delibere
|
|
resetIN();
|
|
Postazione.CssClass = "stileAttesa";
|
|
Postazione.warningText = "";
|
|
Postazione.messaggiText = traduci("ValorePmAggiornato");
|
|
doUpdate();
|
|
}
|
|
/// <summary>
|
|
/// inserito num trattamento
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void txtNumTratt_TextChanged(object sender, EventArgs e)
|
|
{
|
|
doUpdate();
|
|
}
|
|
/// <summary>
|
|
/// modificata durezza
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void chkPrMecc_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
doUpdate();
|
|
}
|
|
/// <summary>
|
|
/// recupero dati del trattamento già salvato e msotro x editing
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void grViewDPM_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
NumTT_Delib = grViewDPM.SelectedDataKey["Trattamento"].ToString();
|
|
NumTT_NoDelib = NumTT_Delib;
|
|
barcodeIn = NumTT_Delib;
|
|
//grViewDPM.SelectedIndex = -1;
|
|
checkBarcode();
|
|
}
|
|
/// <summary>
|
|
/// recupero dati del trattamento x salvare nuovo
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void grViewTT_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
NumTT_NoDelib = grViewTT.SelectedDataKey["Trattamento"].ToString();
|
|
NumTT_Delib = NumTT_NoDelib;
|
|
barcodeIn = NumTT_NoDelib;
|
|
//grViewTT.SelecktedIndex = -1;
|
|
checkBarcode();
|
|
}
|
|
/// <summary>
|
|
/// reset selezione AL non deliberato
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void lbtnResetNoPM_Click(object sender, EventArgs e)
|
|
{
|
|
NumTT_Delib = "";
|
|
NumTT_NoDelib = "";
|
|
doUpdate();
|
|
}
|
|
/// <summary>
|
|
/// reset selezione AL già deliberato
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void lbtnResetPM_Click(object sender, EventArgs e)
|
|
{
|
|
NumTT_Delib = "";
|
|
NumTT_NoDelib = "";
|
|
doUpdate();
|
|
}
|
|
|
|
|
|
}
|
|
} |