Ok liste di prelievo

git-svn-id: https://keyhammer.ath.cx/svn/GMW/trunk@204 365432ac-a1b5-4ffd-bb28-6d3099d32164
This commit is contained in:
samuele
2010-08-26 14:07:09 +00:00
parent dc68694040
commit a68d210bd7
17 changed files with 283 additions and 94 deletions
+1 -3
View File
@@ -20,19 +20,17 @@ namespace GMW_Term
void mod_barcode1_eh_resetUser(object sender, EventArgs e)
{
memLayer.ML.setSessionVal("activeTask", "LogOff Operatore");
TermUtils.TU.forceLogOut();
Response.Redirect("Barcode.aspx");
}
void mod_barcode1_eh_scannedUser(object sender, EventArgs e)
{
memLayer.ML.setSessionVal("activeTask", "Selezionato Operatore");
Response.Redirect("Home.aspx");
}
void mod_barcode1_eh_scannedUdc(object sender, EventArgs e)
{
memLayer.ML.setSessionVal("activeTask", string.Format("UDC: {0}", memLayer.ML.StringSessionObj("scannedValue")));
Response.Redirect("UDC.aspx");
}
+1
View File
@@ -74,6 +74,7 @@
<Compile Include="Default.aspx.designer.cs">
<DependentUpon>Default.aspx</DependentUpon>
</Compile>
<Compile Include="TermUtils.cs" />
<Compile Include="UDC.aspx.cs">
<DependentUpon>UDC.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
+32
View File
@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SteamWare;
namespace GMW_Term
{
public class TermUtils
{
protected TermUtils()
{
}
/// <summary>
/// effettua logout da terminalino azzerando tutte le variabili necessarie
/// </summary>
public void forceLogOut()
{
HttpContext.Current.Session.Clear();
user_std.UtSn.logOffUtente();
// salvo esecuzione logout
memLayer.ML.setSessionVal("activeTask", "LogOff Operatore");
}
/// <summary>
/// oggetto static per fare chiamate
/// </summary>
public static TermUtils TU = new TermUtils();
}
}
@@ -103,7 +103,7 @@ namespace GMW_Term.WebUserControls
/// <param name="e"></param>
protected void btnLoginPage_Click(object sender, EventArgs e)
{
user_std.UtSn.logOffUtente();
TermUtils.TU.forceLogOut();
Response.Redirect("~/Barcode.aspx");
}
/// <summary>
@@ -91,8 +91,7 @@ namespace GMW_Term.WebUserControls
effettuaLoginOperatore(txtScansione);
break;
case tipoCodiceBarcode.ListaPrelievo:
lblData.Text = "Codice Lista Prelievo: " + txtScansione;
txtInput.Text = "";
chekListaPrelievo();
break;
case tipoCodiceBarcode.UDC:
verificaUdc();
@@ -110,6 +109,40 @@ namespace GMW_Term.WebUserControls
lblData.Font.Italic = false;
}
/// <summary>
/// verifica la lista di prelievo (se attivabile la attiva)
/// </summary>
private void chekListaPrelievo()
{
// verifico se al lista di prelievo sia valida ed attivabile
if (MagClass.magazzino.listaPrelevabile(txtScansione))
{
// verifico se l'utente ha delle lsite di prelievo attive e quindi NON PUO prenderne in carico altre
if (!MagClass.magazzino.userHasActiveLP)
{
// salvo la lista di prelievo come attiva
memLayer.ML.setSessionVal("activeTask", string.Format("Lista Prelievo {0}", txtScansione));
memLayer.ML.setSessionVal("CodListaAttiva", txtScansione);
// indico la lista come attiva
GMW_data.MagClass.magazzino.iniziaListaPrelievo(memLayer.ML.StringSessionObj("CodCS"), txtScansione, MagClass.magazzino.CodSoggCurrUser);
// salvo in sessione che voglio mostrare il dettaglio della lista appena presa in carico
memLayer.ML.setSessionVal("showDetListaPre", true, false);
// mando alla pagina liste di prelievo
Response.Redirect("~/ListePrelievo.aspx");
}
else
{
// indico l'errore: operatore già con una lista attiva
lblData.Text = "!!! Lista di prelievo ancora aperta";
}
}
else
{
// indico l'errore: lista non valida o non attivabile
lblData.Text = string.Format("!!! Codice {0} non valido", txtScansione);
}
txtInput.Text = "";
}
/// <summary>
/// verifica validità UDC
/// </summary>
private void verificaUdc()
@@ -121,6 +154,7 @@ namespace GMW_Term.WebUserControls
{
// salvo in session UDC selezionato
memLayer.ML.setSessionVal("UDC_sel", valoreScan, false);
memLayer.ML.setSessionVal("activeTask", string.Format("UDC: {0}", memLayer.ML.StringSessionObj("scannedValue")));
if (eh_scannedUdc != null)
{
eh_scannedUdc(this, new EventArgs());
@@ -139,6 +173,28 @@ namespace GMW_Term.WebUserControls
{
// salvo i dati di CodCS
memLayer.ML.setSessionVal("CodCS", memLayer.ML.confReadString("CodCS"), true);
// in caso operatore abbia liste attive le carico...
if (MagClass.magazzino.userHasActiveLP)
{
string codiceListaAttivo = "";
try
{
codiceListaAttivo = MagClass.magazzino.codListaAttivaUtente;
// salvo la lista di prelievo come attiva
memLayer.ML.setSessionVal("activeTask", string.Format("Lista Prelievo {0}", codiceListaAttivo));
memLayer.ML.setSessionVal("CodListaAttiva", codiceListaAttivo);
}
catch
{
// c'era una lsita attiva, non l'ho recuperata, segno errore!
logger.lg.scriviLog(string.Format("Errore: l'utente {0} aveva una lista di prelievo attiva ma non sono riuscito a recuperarne i dati", user_std.UtSn.utente), tipoLog.ERROR);
}
}
else
{
memLayer.ML.setSessionVal("activeTask", "Selezionato Operatore");
}
// alza evento login!
if (eh_scannedUser != null)
{
eh_scannedUser(this, new EventArgs());
@@ -158,7 +214,7 @@ namespace GMW_Term.WebUserControls
/// <param name="e"></param>
protected void btnLoginPage_Click(object sender, EventArgs e)
{
user_std.UtSn.logOffUtente();
TermUtils.TU.forceLogOut();
verificaOperatoreInSessione();
// evento reset
if (eh_resetUser != null)
@@ -288,6 +288,12 @@ namespace GMW_Term.WebUserControls
{
Response.Redirect("Home.aspx");
}
// controllo se ci sia richiesta x mostrare dettagli...
if (memLayer.ML.BoolSessionObj("showDetListaPre"))
{
memLayer.ML.emptySessionVal("showDetListaPre");
showListDetails(memLayer.ML.StringSessionObj("CodListaAttiva"));
}
}
/// <summary>
@@ -443,6 +449,8 @@ namespace GMW_Term.WebUserControls
switch (_comando)
{
case "IniziaListaPrelievo":
memLayer.ML.setSessionVal("activeTask", string.Format("Lista Prelievo {0}", codLista));
memLayer.ML.setSessionVal("CodListaAttiva", codLista);
GMW_data.MagClass.magazzino.iniziaListaPrelievo(memLayer.ML.StringSessionObj("CodCS"), codLista, CodSoggetto);
updateOds();
grView.EditIndex = -1;
@@ -452,12 +460,12 @@ namespace GMW_Term.WebUserControls
{
eh_nuovoValore(this, new EventArgs());
}
memLayer.ML.setSessionVal("activeTask", string.Format("Lista Prelievo {0}", codLista));
memLayer.ML.setSessionVal("CodListaAttiva", codLista);
// blocco update!
e.Cancel = true;
break;
case "CompletaListaPrelievo":
memLayer.ML.emptySessionVal("CodListaAttiva");
memLayer.ML.emptySessionVal("activeTask");
GMW_data.MagClass.magazzino.completaListaPrelievo(memLayer.ML.StringSessionObj("CodCS"), codLista, CodSoggetto);
updateOds();
grView.EditIndex = -1;
@@ -467,27 +475,11 @@ namespace GMW_Term.WebUserControls
{
eh_nuovoValore(this, new EventArgs());
}
memLayer.ML.emptySessionVal("CodListaAttiva");
memLayer.ML.emptySessionVal("activeTask");
// blocco update!
e.Cancel = true;
break;
case "ShowDetail":
// salvo codice lista
memLayer.ML.setSessionVal("CodLista_sel", codLista);
// mostro dettaglio lista (e relativi buttons)
pnlDetail.Visible = true;
// nascondo elenco lista prelievo
pnlMaster.Visible = false;
// button x barcode: visibile solo se c'è una lista di prelievo attiva...
if (userHasListActive)
{
btnBarcode.Visible = true;
}
else
{
btnBarcode.Visible = false;
}
showListDetails(codLista);
// blocco update!
e.Cancel = true;
break;
@@ -497,6 +489,28 @@ namespace GMW_Term.WebUserControls
}
}
/// <summary>
/// mostro la lista di prelievo indicata
/// </summary>
/// <param name="codLista"></param>
private void showListDetails(string codLista)
{
// salvo codice lista
memLayer.ML.setSessionVal("CodLista_sel", codLista);
// mostro dettaglio lista (e relativi buttons)
pnlDetail.Visible = true;
// nascondo elenco lista prelievo
pnlMaster.Visible = false;
// button x barcode: visibile solo se c'è una lista di prelievo attiva...
if (MagClass.magazzino.userHasActiveLP)
{
btnBarcode.Visible = true;
}
else
{
btnBarcode.Visible = false;
}
}
/// <summary>
/// chiamato post modifica valore check/selezione nel selettore filtro stato
/// </summary>
/// <param name="sender"></param>
@@ -543,7 +557,7 @@ namespace GMW_Term.WebUserControls
{
int stato = Convert.ToInt32(codStato);
string answ = "";
if (userHasListActive && stato == 1)
if (MagClass.magazzino.userHasActiveLP && stato == 1)
{
answ = string.Format("~/images/circleDis_s_{0}.png", codStato);
}
@@ -587,33 +601,15 @@ namespace GMW_Term.WebUserControls
switch (stato)
{
case 1:
answ = !userHasListActive;
answ = !MagClass.magazzino.userHasActiveLP;
break;
case 2:
answ = userHasListActive;
answ = MagClass.magazzino.userHasActiveLP;
break;
}
return answ;
}
/// <summary>
/// vero/falso ceh l'utent eha una lista di prelievo attiva
/// </summary>
protected bool userHasListActive
{
get
{
bool answ = false;
try
{
answ = (MagClass.magazzino.taElencoListePrelievo.getByCodSogg(MagClass.magazzino.CodSoggCurrUser).Rows.Count > 0);
}
catch
{ }
return answ;
}
}
/// <summary>
/// restituisce tooltip da mostrare x STATO lista
/// </summary>
@@ -642,8 +638,6 @@ namespace GMW_Term.WebUserControls
return traduci(codice.ToString());
}
/// <summary>
/// effettua logout...
/// </summary>
@@ -651,7 +645,7 @@ namespace GMW_Term.WebUserControls
/// <param name="e"></param>
protected void btnLoginPage_Click(object sender, EventArgs e)
{
user_std.UtSn.logOffUtente();
TermUtils.TU.forceLogOut();
Response.Redirect("~/Barcode.aspx");
}
/// <summary>
@@ -675,7 +669,6 @@ namespace GMW_Term.WebUserControls
// ricarico x evitare proliferazione "_" su prima colonna
Response.Redirect("~/ListePrelievo.aspx");
}
/// <summary>
/// passa al barcode!
/// </summary>
+24 -22
View File
@@ -1,23 +1,25 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_search.ascx.cs" Inherits="GMW_Term.WebUserControls.mod_search" %>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_search.ascx.cs"
Inherits="GMW_Term.WebUserControls.mod_search" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div id="contenuto" style="text-align: center;">
<div id="InputTitle" style="padding: 0px 0px 40px 0px;">
<asp:Label ID="lblInput" runat="server" Text="Ricerca Libera"/></div>
<asp:UpdatePanel ID="updPanel1" runat="server">
<ContentTemplate>
<div id="Data" style="padding-bottom: 10px;">
<asp:TextBox ID="txtRicerca" runat="server"
ontextchanged="txtRicerca_TextChanged" />
<cc1:AutoCompleteExtender ID="aceSearch" runat="server" TargetControlID="txtRicerca"
ServicePath="~/WS/AutoCompletamento.asmx" ServiceMethod="elencoParticolari">
</cc1:AutoCompleteExtender>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div id="Button">
<asp:Button ID="btn1" runat="server" Text="Button" />
<asp:Button ID="btn2" runat="server" Text="Button" />
</div>
</div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div id="contenuto" style="text-align: center;">
<div id="InputTitle" style="padding: 0px 0px 40px 0px;">
<asp:Label ID="lblInput" runat="server" Text="Ricerca Libera" /></div>
<div id="Div1">
<asp:Button ID="btnLoginPage" runat="server" OnClick="btnLoginPage_Click" Width="100px"
Font-Size="Smaller" />
<asp:Button ID="btnButtonsHome" runat="server" OnClick="btnButtonsHome_Click" Width="100px"
Font-Size="Smaller" />
</div>
<asp:UpdatePanel ID="updPanel1" runat="server">
<ContentTemplate>
<div id="Data" style="padding-bottom: 10px;">
<asp:TextBox ID="txtRicerca" runat="server" OnTextChanged="txtRicerca_TextChanged" />
<cc1:AutoCompleteExtender ID="aceSearch" runat="server" TargetControlID="txtRicerca"
ServicePath="~/WS/AutoCompletamento.asmx" ServiceMethod="elencoParticolari">
</cc1:AutoCompleteExtender>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
@@ -5,16 +5,53 @@ 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_search : System.Web.UI.UserControl
{
// variabile per verificare se è operatore
bool _validUserInSession = false;
/// <summary>
/// Verifica se c'è un valore in sessione di tipo operatore
/// </summary>
protected void verificaOperatoreInSessione()
{
if (string.IsNullOrEmpty(user_std.UtSn.utente))
{
_validUserInSession = false;
}
else
{
_validUserInSession = true;
}
}
/// <summary>
/// caricamento pagina!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
// scrive label e text bottoni
//lblTitle.Text = (string)(Session["loginName"]);
btnLoginPage.Text = "[7]-LogOut";
btnLoginPage.AccessKey = "7";
btnButtonsHome.Text = "[9]-Home";
btnButtonsHome.AccessKey = "9";
// se username è valorizzato...
verificaOperatoreInSessione();
if (_validUserInSession)
{
btnLoginPage.Visible = true;
btnButtonsHome.Visible = true;
}
// se non è valorizzato chiede di effettuare login...
else
{
Response.Redirect("Home.aspx");
}
}
/// <summary>
/// in caso di valore cercato...
@@ -53,5 +90,25 @@ namespace GMW_Term.WebUserControls
memLayer.ML.setSessionVal("searchValue", value, false);
}
}
/// <summary>
/// effettua logout...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnLoginPage_Click(object sender, EventArgs e)
{
TermUtils.TU.forceLogOut();
Response.Redirect("~/Barcode.aspx");
}
/// <summary>
/// va alla pagina dei buttons principale
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnButtonsHome_Click(object sender, EventArgs e)
{
Response.Redirect("~/Home.aspx");
}
}
}
+18 -18
View File
@@ -31,6 +31,24 @@ namespace GMW_Term.WebUserControls {
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblInput;
/// <summary>
/// btnLoginPage control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnLoginPage;
/// <summary>
/// btnButtonsHome control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnButtonsHome;
/// <summary>
/// updPanel1 control.
/// </summary>
@@ -57,23 +75,5 @@ namespace GMW_Term.WebUserControls {
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::AjaxControlToolkit.AutoCompleteExtender aceSearch;
/// <summary>
/// btn1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btn1;
/// <summary>
/// btn2 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btn2;
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
+50
View File
@@ -895,6 +895,56 @@ namespace GMW_data
{ }
return answ;
}
/// <summary>
/// vero/falso che l'utent eha una lista di prelievo attiva
/// </summary>
public bool userHasActiveLP
{
get
{
bool answ = false;
try
{
answ = (MagClass.magazzino.taElencoListePrelievo.getByCodSogg(CodSoggCurrUser).Rows.Count > 0);
}
catch
{ }
return answ;
}
}
/// <summary>
/// codice della lista di prelievo attiva
/// </summary>
public string codListaAttivaUtente
{
get
{
string answ = "";
try
{
answ = MagClass.magazzino.taElencoListePrelievo.getByCodSogg(CodSoggCurrUser)[0].CodLista;
}
catch
{ }
return answ;
}
}
/// <summary>
///
/// </summary>
/// <param name="CodLista"></param>
/// <returns></returns>
public bool listaPrelevabile(string CodLista)
{
bool answ = false;
try
{
answ = (MagClass.magazzino.taElencoListePrelievo.getByCodLista(CodLista).Select("CodStatoLista = 1").Length > 0); // filtro su stato = 1 (può esser presa in carico)
}
catch
{ }
return answ;
}
#endregion
Binary file not shown.
Binary file not shown.
Binary file not shown.