Files
GMW/GMW/WebUserControls/mod_PostProveMecc.ascx.cs
T
2017-05-10 16:08:24 +02:00

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();
}
}
}