a7aae72b45
altri metodi spostati in classe base
481 lines
15 KiB
C#
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
|
|
}
|
|
}
|