Files
GMW/GMW_Term/WebUserControls/mod_smartList.ascx.cs
2017-03-13 17:31:01 +01:00

200 lines
8.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SteamWare;
using GMW_data;
namespace GMW_Term.WebUserControls
{
public partial class mod_smartList : System.Web.UI.UserControl
{
/// <summary>
/// wrapper traduzione termini
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(string lemma)
{
return user_std.UtSn.Traduci(lemma);
}
/// <summary>
/// chiamata principale
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
updatePackListStatus();
// resetto!
resetAndUpdate();
}
/// <summary>
/// aggiorna lo stato della packing list corrente
/// </summary>
private void updatePackListStatus()
{
// recupero barcode e controllo sia valido
string barcode = memLayer.ML.StringSessionObj("UDC_sel");
string particolare = "";
bool barcodeOk = MagClass.magazzino.checkUDC(barcode);
bool checkUDC_mov = MagClass.magazzino.checkUDC_mov(barcode); //2013.07.24 aggiunto controllo x movimentabile poiché NON in LDP scaricata
bool udcIsConsumabile = MagClass.magazzino.IdxPosizioneUdc(barcode) >= 0; //2013.07.24 aggiunto controllo x sapere se sia consumabile (idxPosizione > 0)
bool udcPrelevabile = (MagClass.magazzino.taRigheListePrelievo.getPrelevateByUdc(barcode).Rows.Count == 0);
if (barcodeOk && checkUDC_mov && udcIsConsumabile && udcPrelevabile)
{
try
{
// calcolo particolare
particolare = MagClass.magazzino.getParticolareByUDC(barcode);
}
catch
{ }
if (particolare != "")
{
/* ***************************************************
* Ricalcola e salva:
* - elenco UDC
* - elenco particolari
* - crea LDP e relative righe x ogni UDC
* ***************************************************/
// lista di prelievo
string currLDP = "";
// cerco la LDP dato utente, tipo e particolare...
try
{
currLDP = MagClass.magazzino.taElencoListePrelievo.getOpenByUserTipoPart(MagClass.magazzino.CodSoggCurrUser, "00-Smart", particolare)[0].CodLista;
}
catch
{ }
// controllo se vada aggiunto particolare
if (currLDP == "")
{
// creo nuova LDP smart
currLDP = MagClass.magazzino.creaListaPrelievoSmart(memLayer.ML.confReadString("CodCS"), "00-Smart", particolare, "*", "*", 1, "*", "", "");
// imposto ad iniziata
MagClass.magazzino.attivaListaPrelievo(memLayer.ML.confReadString("CodCS"), currLDP, MagClass.magazzino.CodSoggCurrUser);
MagClass.magazzino.iniziaListaPrelievo(memLayer.ML.confReadString("CodCS"), currLDP, MagClass.magazzino.CodSoggCurrUser);
}
// controllo se vada aggiunto UDC: lo cerco nelle RLP prelevate
if (MagClass.magazzino.taRigheListePrelievo.getPrelevateByUdc(barcode).Rows.Count < 1)
{
if (currLDP != "")
{
// aggiungo particolare a LDP Smart esistente
MagClass.magazzino.confermaUdcPrelevatoPerLista(currLDP, barcode);
}
lblErrore.Visible = false;
}
else
{
// indico barcode già caricato
lblErrore.Visible = true;
lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcGiaPrelevato"));
}
}
}
else
{
if (barcode != "")
{
lblErrore.Visible = true;
if (!udcIsConsumabile)
{
lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcConsumato"));
}
else if (!checkUDC_mov)
{
lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcInLdpScaricata"));
}
else
{
// indico barcode già caricato
lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcGiaPrelevato"));
}
}
}
/* ***************************************************
* update visualizzazione, aggiorna:
* - tot UDC
* - tot particolari
* ***************************************************/
lblGeneraListe.Text = traduci("lblGeneraListe");
lblResetListe.Text = traduci("lblResetListe");
lblTotColli.Text = traduci("lblTotColli");
lblNumColli.Text = string.Format("{0} UDC", MagClass.magazzino.taRigheListePrelievo.getOpenByUserTipo(MagClass.magazzino.CodSoggCurrUser, "00-Smart").Rows.Count);
lblParticolari.Text = traduci("lblParticolari");
lblNumPart.Text = string.Format("{0} {1}", MagClass.magazzino.taElencoListePrelievo.getOpenByUserTipo(MagClass.magazzino.CodSoggCurrUser, "00-Smart").Rows.Count, traduci("Particolari"));
}
/// <summary>
/// Generazione delle liste di prelievo
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnGeneraListe_Click(object sender, EventArgs e)
{
// prendo le liste smart e le completo
foreach (DS_magazzino.ElencoListePrelievoRow riga in MagClass.magazzino.taElencoListePrelievo.getOpenByUserTipo(MagClass.magazzino.CodSoggCurrUser, "00-Smart"))
{
try
{
// indico completata
MagClass.magazzino.completaListaPrelievo(memLayer.ML.confReadString("CodCS"), riga.CodLista, MagClass.magazzino.CodSoggCurrUser, Request.UserHostName);
}
catch
{ }
}
resetAndUpdate();
}
/// <summary>
/// aggiorna visualizzazioni e resetta
/// </summary>
private void resetAndUpdate()
{
//memLayer.ML.emptySessionVal("UDC_sel");
GMW_data.TermClass.Ter.resetScanBarcode(true, false, false);
// aggiorno visualizzazione
updatePackListStatus();
//lblErrore.Visible = false;
}
/// <summary>
/// reset UDC x le liste di prelievo
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnResetListe_Click(object sender, EventArgs e)
{
// prendo le liste smart e le completo
foreach (DS_magazzino.ElencoListePrelievoRow riga in MagClass.magazzino.taElencoListePrelievo.getOpenByUserTipo(MagClass.magazzino.CodSoggCurrUser, "00-Smart"))
{
try
{
// elimino righe
MagClass.magazzino.taRigheListePrelievo.stp_RLP_deleteFromCodLista(riga.CodLista);
// elimino lista
MagClass.magazzino.taElencoListePrelievo.DeleteQuery(riga.CodLista);
// elimino task attivo e cod lista attuale
memLayer.ML.emptySessionVal("CodListaAttiva");
memLayer.ML.emptySessionVal("activeTask");
lblErrore.Visible = false;
}
catch
{ }
}
resetAndUpdate();
}
/// <summary>
/// fornisce verifica se l'udc sia già stato prelevato altrove...
/// </summary>
/// <param name="udc"></param>
/// <returns></returns>
public bool udcPrelevato(object udc)
{
return GMW_data.MagClass.magazzino.taRigheListePrelievo.getPrelevateByUdc(udc.ToString()).Rows.Count > 0;
}
}
}