Files
GMW/GMW_data/UserControlBCodeMan.cs
T
Samuele E. Locatelli a7aae72b45 ulteriore refactoring
altri metodi spostati in classe base
2016-08-05 12:08:18 +02:00

481 lines
15 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SteamWare;
namespace GMW_data
{
public class UserControlBCodeMan : GMW_data.UserControl
{
/// <summary>
/// flusso associato (hard coded) a sterrati
/// </summary>
public string flusso = "";
/// <summary>
/// stato associato (hard coded) a sterrati
/// </summary>
public string statoUDC = "";
/// <summary>
/// tipo di evento associato alla creazione dell'UDC
/// </summary>
public string eventoUDC = "";
/// <summary>
/// tipo di evento associato alla modifica qta dell'UDC
/// </summary>
public string eventoUDC_qta = "";
/// <summary>
/// dati x verifica CodSoggetto / matricola
/// </summary>
public string preCodSogg = memLayer.ML.CRS("prefCodSogg");
/// <summary>
/// Codice linea non utilizzabile ("00" finale = Select...)
/// </summary>
public string codLineaKo = "";
/// <summary>
/// Parte variabile messaggio ristampa
/// </summary>
public string tipoUdcRist = "";
/// <summary>
/// Impostazione variabili specifiche
/// </summary>
public virtual void setupVariabili()
{ }
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
setupVariabili();
qta = 0;
// imposto destAL
destAL = AlByCella;
traduciObj();
idxCella = Postazione.currIdxCella;
checkNumKeyIn();
}
setVisibility();
doChecks();
}
/// <summary>
/// sistema modalità input
/// </summary>
public virtual void setVisibility()
{ }
/// <summary>
/// IDX cella associata alla linea corrente
/// </summary>
public virtual int idxCella
{
get
{
int answ = 0;
if (memLayer.ML.isInSessionObject(string.Format("IdxCella_{0}", uid)))
{
answ = memLayer.ML.IntSessionObj(string.Format("IdxCella_{0}", uid));
}
return answ;
}
set
{
memLayer.ML.setSessionVal(string.Format("IdxCella_{0}", uid), value);
}
}
/// <summary>
/// Codice AL associato alla cella corrente...
/// </summary>
public virtual string AlByCella
{
get
{
string answ = "";
try
{
// tolto 2015.06.25
//// se avesse perso codice cella rimando a pagina default...
//if (Postazione.currCodCella == "") Response.Redirect("Default.aspx");
answ = string.Format("ALF00{0}", Postazione.currCodCella);
// controllo se esista AL sennò lo creo...
if (MagClass.magazzino.taEA.getByAL(answ).Rows.Count == 0)
{
MagClass.magazzino.taEA.Insert(answ, true, DateTime.Now, MagClass.magazzino.CodSoggCurrUser, "", "");
}
}
catch
{ }
return answ;
}
}
/// richiesta (ri)stampa UDC
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void ristampa()
{
ristampaUdc(tipoUdcRist, udcReq);
}
/// <summary>
/// Richiesta (ri)stampa UDC
/// </summary>
/// <param name="tipoUdc">Tipo Udc (x messaggio log/SAO)</param>
/// <param name="udcReq">Codice UDC</param>
public virtual void ristampaUdc(string tipoUdc, string udcReq)
{
bool fatto = false;
// registro ri-stampa UDC
DateTime adesso = DateTime.Now;
// calcolo particolare...
DS_magazzino.ElencoCartelliniRow rigaUDC;
string particolare = "";
try
{
rigaUDC = MagClass.magazzino.taCartellini.getByUdc(udcReq)[0];
particolare = rigaUDC.Particolare;
fatto = MagClass.magazzino.ristampaUdc(udcReq, Postazione.printer, Request.UserHostName);
}
catch
{
logger.lg.scriviLog(string.Format("Errore recupero particolare UDC {0} {1}", tipoUdc, udcReq), tipoLog.EXCEPTION);
}
if (fatto) MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, udcReq, particolare, "stampaUDC", string.Format("Ri-Stampato UDC {0}", tipoUdc));
raiseEvent(ucEvType.ReqUpdateParent);
}
/// <summary>
/// udc da stampare
/// </summary>
public virtual string udcReq
{
get
{
return memLayer.ML.StringSessionObj("udcSelSAO");
}
}
/// <summary>
/// indica il codice articolo correntemente selezionato
/// </summary>
public virtual string currParticolare
{
get
{
return memLayer.ML.StringSessionObj(string.Format("currParticolare_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("currParticolare_{0}", uid), value, memLayer.ML.confReadBool("keepParticolareSel"));
}
}
/// <summary>
/// Codice AL target
/// </summary>
public virtual string destAL
{
get
{
return "";
}
set
{ }
}
/// <summary>
/// indica il codice articolo "originale" in caso di trascodifica GRZ/GRZ o GRZ/LVT o LVT/LVT
/// </summary>
public virtual string origParticolare
{
get
{
return memLayer.ML.StringSessionObj(string.Format("origParticolare_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("origParticolare_{0}", uid), value, memLayer.ML.confReadBool("keepParticolareSel"));
}
}
/// <summary>
/// indica UDC correntemente selezionato
/// </summary>
public virtual string currUDC
{
get
{
return memLayer.ML.StringSessionObj(string.Format("UDC_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("UDC_{0}", uid), value, memLayer.ML.confReadBool("keepParticolareSel"));
}
}
/// <summary>
/// Recupera descrizione e disegno dato un particolare
/// </summary>
/// <param name="CodParticolare"></param>
/// <param name="descr"></param>
/// <param name="disegno"></param>
public virtual void getDescrDisegnoParticolare(string CodParticolare, ref string descr, ref string disegno)
{
try
{
DS_magazzino.AnagParticolariRow riga = MagClass.magazzino.taAnagPart.likeSearch(CodParticolare, CodCs)[0];
descr = riga.DescParticolare;
disegno = string.Format("( {0} )", riga.DisegnoGrezzo);
}
catch
{ }
}
/// <summary>
/// effettua controlli visibilità
/// </summary>
public virtual void doChecks()
{
checkBarcode();
checkStampa();
checkParticolare();
}
/// <summary>
/// controlla se ci sia un barcode
/// </summary>
public virtual void checkBarcode()
{ }
/// <summary>
/// controllo l'abilitazione alla stampa UDC:
/// - particolare ok
/// - qta > 0
/// - udc da consumo totale/parziale
/// altrimenti disabilito btn stampa
/// </summary>
public virtual void checkStampa()
{ }
/// <summary>
/// controlla particolare selezionato
/// </summary>
public virtual void checkParticolare()
{ }
/// <summary>
/// valore barcode
/// </summary>
public virtual string barcodeIn
{
get
{
return "";
}
set
{ }
}
/// <summary>
/// valore barcode
/// </summary>
public virtual string lastBarcodeIn
{
get
{
return memLayer.ML.StringSessionObj(string.Format("lastBarcode_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("lastBarcode_{0}", uid), value, false);
}
}
/// <summary>
/// verifico se ci sia in sessione un input da NumKeyb e nel caso lo metto in barcodeIn e processo...
/// </summary>
public virtual void checkNumKeyIn()
{
if (memLayer.ML.isInSessionObject("numKeyIn"))
{
barcodeIn = memLayer.ML.StringSessionObj("numKeyIn");
// svuoto valore in sessione...
memLayer.ML.emptySessionVal("numKeyIn");
// controllo barcode...
checkBarcode();
}
}
/// <summary>
/// cod imballo dell'ultimo UDC del particolare generato
/// </summary>
public virtual string lastCodImb
{
get
{
string answ = "";
try
{
answ = MagClass.magazzino.taCartellini.getLastByParticolareStato(CodCs, currParticolare, statoUDC)[0].CodImballo;
}
catch
{ }
return answ;
}
}
/// <summary>
/// num pezzi dell'ultimo UDC del particolare generato
/// </summary>
public virtual int pezziUdc
{
get
{
int answ = 0;
try
{
answ = (int)MagClass.magazzino.taCartellini.getLastByParticolareStato(CodCs, currParticolare, statoUDC)[0].Qta;
}
catch
{ }
return answ;
}
}
/// <summary>
/// qta pezzi TOTALE
/// </summary>
public virtual int qta
{
get
{
return 0;
}
set
{ }
}
/// <summary>
/// update Qty x UDC selezionato...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void lbtUpdQty_Click(object sender, EventArgs e)
{
aggiornaQta();
}
/// <summary>
/// Imposta ultima quantità rilevata
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void lbtSetLastQty_Click(object sender, EventArgs e)
{
// indico ultima qta
qta = pezziUdc;
// salvo!!!
aggiornaQta();
}
/// <summary>
/// Metodo aggiornamento qta
/// </summary>
public virtual void aggiornaQta()
{
MagClass.magazzino.taCartellini.updateQty(currUDC, MagClass.magazzino.CodSoggCurrUser, "U", eventoUDC_qta, qta);
currUDC = "";
currParticolare = "";
}
/// <summary>
/// reset della selezione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void btnReset_Click(object sender, EventArgs e)
{
qta = 0;
currUDC = "";
currParticolare = "";
setVisibility();
doUpdate();
}
/// <summary>
/// effettua reset dati
/// </summary>
public virtual void doResetData()
{
// resetto i dati QtaTot e particolare...
qta = 0;
currParticolare = "";
doChecks();
}
/// <summary>
/// evento cambio qta
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void txtQta_TextChanged(object sender, EventArgs e)
{
aggiornaQta();
}
/// <summary>
/// verifica se attivo filtro company e imposta ods di conseguenza...
/// </summary>
public virtual void checkFixOds()
{
}
/// <summary>
/// determina se sia possibile cancellare un record, se qta > 0
/// </summary>
/// <param name="_qta"></param>
/// <returns></returns>
public virtual bool canDelete(object _qta)
{
bool answ = false;
try
{
answ = Convert.ToInt32(_qta) == 0;
}
catch
{ }
return answ;
}
/// <summary>
/// fornisce in output la corretta classe css x icona
/// </summary>
/// <param name="qta"></param>
/// <returns></returns>
public virtual string cssGlyphByQty(object _qta)
{
string answ = "glyphicon glyphicon-pencil";
int qtaUDC = 0;
try
{
qtaUDC = Convert.ToInt32(_qta);
}
catch { }
if (qtaUDC > 0)
{
answ = "glyphicon glyphicon-print";
}
return answ;
}
/// <summary>
/// aggiorna tabella + focus a barcode
/// </summary>
public virtual void doUpdate()
{
idxCella = Postazione.currIdxCella;
destAL = AlByCella;
setVisibility();
checkStampa();
// altri step
}
#region metodi da customizzare DAVVERO
/// <summary>
/// segnaposto gestione creazione opzionale UDC
/// </summary>
/// <param name="qty"></param>
/// <param name="particolare"></param>
public virtual string checkCreaUDC()
{
return "";
}
/// <summary>
/// segnaposto gestione button stampa
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void btnStampa_Click(object sender, EventArgs e)
{ }
#endregion
}
}