Abbozzata gestioen controlli

This commit is contained in:
Samuele E. Locatelli
2018-03-12 14:28:23 +01:00
parent cc4670075a
commit 40470decaf
11 changed files with 521 additions and 50 deletions
+5 -2
View File
@@ -1,8 +1,11 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_confProd.ascx.cs" Inherits="MoonProTablet.WebUserControls.mod_confProd" %>
<div class="row">
<div class="col-12">
<asp:Label runat="server" ID="lblConfProd" CssClass="btn btn-primary btn-lg btn-block disabled">
<i class="fa fa-check"></i> MOSTRA Conferma
</asp:Label>
<asp:Label runat="server" ID="lblMancaODL" Visible="false" ForeColor="Red">MANCA ODL: conferma NON permessa</asp:Label>
<asp:LinkButton runat="server" ID="lbtShowConfProd" OnClick="lbtShowConfProd_Click" CssClass="btn btn-primary btn-lg btn-block">
<i class="fa fa-check"></i>
<asp:Label runat="server" ID="lblShowConfProd" />
@@ -38,6 +41,6 @@
</div>
<div class="row mb-2">
<div class="col-12">
<asp:Label runat="server" ID="lblMancaODL" Visible="false" ForeColor="Red">MANCA ODL: conferma produzione NON permessa</asp:Label><asp:Label runat="server" ID="lblOut" ForeColor="Red" />
<asp:Label runat="server" ID="lblOut" ForeColor="Red" />
</div>
</div>
+13 -2
View File
@@ -39,6 +39,7 @@ namespace MoonProTablet.WebUserControls
lblOut.Text = "";
switchBtnConferma(false);
lbtShowConfProd.Visible = odlOk;
lblConfProd.Visible = !odlOk;
}
/// <summary>
/// Verifica se abbia un ODL ATTIVO
@@ -46,6 +47,7 @@ namespace MoonProTablet.WebUserControls
private void checkOdl()
{
lbtShowConfProd.Visible = odlOk;
lblConfProd.Visible = !odlOk;
lblMancaODL.Visible = !odlOk;
}
@@ -67,11 +69,20 @@ namespace MoonProTablet.WebUserControls
{
divSelMacc.Visible = isMulti;
}
/// <summary>
/// restituisce css disabled SE odl NON OK...
/// </summary>
public string cssBtnConf
{
get
{
return odlOk ? "" : "disabled";
}
}
/// <summary>
/// Verifica ODL OK (ovvero caricato x macchina...)
/// </summary>
protected bool odlOk
public bool odlOk
{
get
{
+18 -9
View File
@@ -12,6 +12,24 @@ namespace MoonProTablet.WebUserControls {
public partial class mod_confProd {
/// <summary>
/// Controllo lblConfProd.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblConfProd;
/// <summary>
/// Controllo lblMancaODL.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblMancaODL;
/// <summary>
/// Controllo lbtShowConfProd.
/// </summary>
@@ -120,15 +138,6 @@ namespace MoonProTablet.WebUserControls {
/// </remarks>
protected global::System.Web.UI.WebControls.LinkButton lbtSalva;
/// <summary>
/// Controllo lblMancaODL.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblMancaODL;
/// <summary>
/// Controllo lblOut.
/// </summary>
@@ -0,0 +1,42 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_controlliProd.ascx.cs" Inherits="MoonProTablet.WebUserControls.mod_controlliProd" %>
<div class="row">
<div class="col-12">
<asp:Label runat="server" ID="lblConfProd" CssClass="btn btn-primary btn-lg btn-block disabled">
<i class="fa fa-wrench"></i> REGISTRA Controllo
</asp:Label>
<asp:Label runat="server" ID="lblMancaODL" Visible="false" ForeColor="Red">MANCA ODL: registrazione controlli produzione NON permessa</asp:Label>
<asp:LinkButton runat="server" ID="lbtShowContr" OnClick="lbtShowContr_Click" CssClass="btn btn-primary btn-lg btn-block">
<i class="fa fa-wrench"></i>
<asp:Label runat="server" ID="lblShowContr" />
</asp:LinkButton>
</div>
<div class="col-12" runat="server" id="divSelMacc">
<asp:DropDownList runat="server" ID="ddlSubMacc" DataSourceID="ods" CssClass="form-control" DataTextField="CodMaccArticolo" DataValueField="IdxMacchina" AutoPostBack="True" OnSelectedIndexChanged="ddlSubMacc_SelectedIndexChanged" OnDataBound="ddlSubMacc_DataBound"></asp:DropDownList>
<asp:ObjectDataSource runat="server" ID="ods" OldValuesParameterFormatString="original_{0}" SelectMethod="getMulti" TypeName="MapoDb.DS_applicazioneTableAdapters.MSFDTableAdapter" FilterExpression="idxMacchina LIKE '%#%'">
<SelectParameters>
<asp:SessionParameter DefaultValue="0" Name="IdxMacchina" SessionField="IdxMacchina" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
</div>
</div>
<div class="row my-2" runat="server">
<div class="col-6">
<asp:LinkButton runat="server" ID="lbtOK" CssClass="btn btn-block btn-success" OnClick="lbtOK_Click">OK</asp:LinkButton>
</div>
<div class="col-6">
<asp:LinkButton runat="server" ID="lbtKO" CssClass="btn btn-block btn-danger" OnClick="lbtKO_Click">KO</asp:LinkButton>
</div>
<div class="col-12" runat="server" id="divNote" visible="false">
<asp:Label runat="server" ID="Label1" CssClass="small disabled" AssociatedControlID="txtNoteContr">
Note controllo NON superato (opzionali)
</asp:Label>
<asp:TextBox runat="server" ID="txtNoteContr" TextMode="MultiLine" CssClass="form-control"></asp:TextBox>
<asp:LinkButton runat="server" ID="lbtSalva" CssClass="btn btn-danger text-light btn-lg btn-block" OnClick="lbtSalva_Click"><i class="fa fa-floppy-o"></i> CONFERMA controllo KO</asp:LinkButton>
</div>
</div>
<div class="row mb-2">
<div class="col-12">
<asp:Label runat="server" ID="lblOut" ForeColor="Red" />
</div>
</div>
@@ -0,0 +1,240 @@
using MapoDb;
using SteamWare;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace MoonProTablet.WebUserControls
{
public partial class mod_controlliProd : System.Web.UI.UserControl
{
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_inserting;
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_newVal;
/// <summary>
/// registrato nuovo valore
/// </summary>
public event EventHandler eh_reset;
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
checkAll();
}
}
private void checkAll()
{
fixSelMacc();
checkOdl();
lblOut.Text = "";
switchBtnConferma(false);
lbtShowContr.Visible = odlOk;
lblConfProd.Visible = !odlOk;
}
/// <summary>
/// Verifica se abbia un ODL ATTIVO
/// </summary>
private void checkOdl()
{
lbtShowContr.Visible = odlOk;
lblConfProd.Visible = !odlOk;
lblMancaODL.Visible = !odlOk;
}
/// <summary>
/// Verifica se la macchina MAIN sia MULTI (da DatiMacchina / redis...)
/// </summary>
protected bool isMulti
{
get
{
return DataLayer.isMulti(idxMacchinaSession);
}
}
/// <summary>
/// Se la machcina è MULTI --> mostro selettore
/// </summary>
private void fixSelMacc()
{
divSelMacc.Visible = isMulti;
}
/// <summary>
/// restituisce css disabled SE odl NON OK...
/// </summary>
public string cssBtnConf
{
get
{
return odlOk ? "" : "disabled";
}
}
/// <summary>
/// Verifica ODL OK (ovvero caricato x macchina...)
/// </summary>
public bool odlOk
{
get
{
bool answ = true;
// carico i dati preliminari: ODL
int idxOdl = 0; // userò ODL del turno
try
{
idxOdl = DataLayer.obj.taODL.getByMacchinaAperto(idxMacchina)[0].IdxODL;
}
catch
{
logger.lg.scriviLog(string.Format("Errore a recuperare ODL per la macchina {0}", idxMacchina), tipoLog.ERROR);
}
// se ODL > 0 è ok!!!
answ = (idxOdl > 0);
return answ;
}
}
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchina
{
get
{
string answ = memLayer.ML.StringSessionObj("IdxMacchina");
// verifoc: se multi uso selettore tendina...
if (isMulti)
{
if (ddlSubMacc.SelectedValue == "")
{
ddlSubMacc.DataBind();
}
if (ddlSubMacc.SelectedValue != "")
{
answ = ddlSubMacc.SelectedValue;
}
}
return answ;
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
/// <summary>
/// idx macchina selezionata
/// </summary>
public string idxMacchinaSession
{
get
{
return memLayer.ML.StringSessionObj("IdxMacchina");
}
set
{
memLayer.ML.setSessionVal("IdxMacchina", value);
}
}
/// <summary>
/// cambio stato visibilità pannello e testo button
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtShowContr_Click(object sender, EventArgs e)
{
switchBtnConferma(!lbtOK.Visible);
}
/// <summary>
/// determina comportamento btn conferma
/// </summary>
private void switchBtnConferma(bool showConf)
{
lbtOK.Visible = showConf;
lbtKO.Visible = showConf;
lbtSalva.Visible = showConf;
if (showConf)
{
lblShowContr.Text = "Nascondi Controllo";
}
else
{
lblShowContr.Text = "Registra Controllo";
// sollevo evento!
if (eh_reset != null)
{
eh_reset(this, new EventArgs());
}
}
}
/// <summary>
/// salvo produzione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtSalva_Click(object sender, EventArgs e)
{
// salvo controllo OK !!!FARE!!!
// sollevo evento!
if (eh_newVal != null)
{
eh_newVal(this, new EventArgs());
}
}
protected void ddlSubMacc_SelectedIndexChanged(object sender, EventArgs e)
{
subMaccSel = ddlSubMacc.SelectedValue;
checkAll();
}
protected void ddlSubMacc_DataBound(object sender, EventArgs e)
{
// se ho in memoria un valore LO REIMPOSTO...
if (subMaccSel != "")
{
// provo a preselezionare...
try
{
ddlSubMacc.SelectedValue = subMaccSel;
}
catch
{ }
}
}
/// <summary>
/// Sotto sistema (macchina) selezionato
/// </summary>
public string subMaccSel
{
get
{
return memLayer.ML.StringSessionObj("subMaccSel");
}
set
{
memLayer.ML.setSessionVal("subMaccSel", value);
}
}
protected void lbtOK_Click(object sender, EventArgs e)
{
// Salvo controllo !!!FARE!!!
}
protected void lbtKO_Click(object sender, EventArgs e)
{
divNote.Visible = true;
}
}
}
@@ -0,0 +1,141 @@
//------------------------------------------------------------------------------
// <generato automaticamente>
// Codice generato da uno strumento.
//
// Le modifiche a questo file possono causare un comportamento non corretto e verranno perse se
// il codice viene rigenerato.
// </generato automaticamente>
//------------------------------------------------------------------------------
namespace MoonProTablet.WebUserControls {
public partial class mod_controlliProd {
/// <summary>
/// Controllo lblConfProd.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblConfProd;
/// <summary>
/// Controllo lblMancaODL.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblMancaODL;
/// <summary>
/// Controllo lbtShowContr.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.LinkButton lbtShowContr;
/// <summary>
/// Controllo lblShowContr.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblShowContr;
/// <summary>
/// Controllo divSelMacc.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divSelMacc;
/// <summary>
/// Controllo ddlSubMacc.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlSubMacc;
/// <summary>
/// Controllo ods.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.ObjectDataSource ods;
/// <summary>
/// Controllo lbtOK.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.LinkButton lbtOK;
/// <summary>
/// Controllo lbtKO.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.LinkButton lbtKO;
/// <summary>
/// Controllo divNote.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divNote;
/// <summary>
/// Controllo Label1.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label1;
/// <summary>
/// Controllo txtNoteContr.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtNoteContr;
/// <summary>
/// Controllo lbtSalva.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.LinkButton lbtSalva;
/// <summary>
/// Controllo lblOut.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblOut;
}
}
+36 -30
View File
@@ -6,47 +6,53 @@
<ItemTemplate>
<div class="col-6 col-sm-6 col-md-4 col-lg-3 col-xl-2 mb-3 px-1 bloccoMacc">
<asp:LinkButton ID="hlMacchina" runat="server" OnClick="hlMacchina_Click" CommandArgument='<%# Eval("IdxMacchina") %>'>
<div class="card text-white mapBlock rCAll">
<div class='card text-white mapBlock rCAll <%# Eval("Semaforo") %> p-0 m-0'>
<img class="card-img bg-dark rCTop" src='<%# ImgUrl(Eval("url")) %>' alt='<%# Eval("CodMacchina") %>'>
<div class="card-img-overlay p-0 d-flex flex-row-reverse align-items-start rCTop">
<div class="labelTopDx text-right px-2">
<asp:Label runat="server" ID="lblBadge" Text='<%# Eval("CodArticolo","art: {0}") %>' />
<asp:Label runat="server" ID="lblODC" Text='<%# Eval("idxODL","(ODL {0})") %>' />
</div>
</div>
<div class="card bg-black p-0 rCBot">
<div class='row justify-content-center mx-0'>
<div class="col-12 px-1">
<h4 class="text-left">
<asp:Label runat="server" ID="lblTitle" Text='<%# Eval("Nome") %>' /></h4>
<div class="m-1 bg-black rCAll">
<div class="card-img-overlay p-0 d-flex flex-row-reverse align-items-start rCTop">
<div class="labelTopDx text-right px-2">
<asp:Label runat="server" ID="lblBadge" Text='<%# Eval("CodArticolo","art: {0}") %>' />
<asp:Label runat="server" ID="lblODC" Text='<%# Eval("idxODL","(ODL {0})") %>' />
</div>
<div class='col-12 px-1 <%# Eval("Semaforo") %>'>
<div class="d-flex">
<div class="p-1 mr-auto">
<b>
<asp:Label runat="server" ID="lblStato" Text='<%# Eval("DescrizioneStato") %>' /></b>
</div>
<div class="p-1">
<asp:Label runat="server" ID="lblDurata" Text='<%# formatDurata(Eval("Durata")) %>' />
</div>
<div class="card bg-black p-0 rCBot">
<div class='row justify-content-center mx-0'>
<div class="col-12 px-1">
<h4 class="text-left">
<asp:Label runat="server" ID="lblTitle" Text='<%# Eval("Nome") %>' /></h4>
</div>
<div class='col-12 p-1 <%# Eval("Semaforo") %>'>
<div class="d-flex">
<div class="p-0 mr-auto">
<b>
<asp:Label runat="server" ID="lblStato" Text='<%# Eval("DescrizioneStato") %>' /></b>
</div>
<div class="p-0">
<asp:Label runat="server" ID="lblDurata" Text='<%# formatDurata(Eval("Durata")) %>' />
</div>
</div>
</div>
</div>
<div class="col-12 px-1 pb-1">
<div class="d-flex">
<div class="p-1 mr-auto">
<asp:Label runat="server" ID="Label2" Text='<%# Eval("PezziProd","prod: {0}") %>' ToolTip="pz prodotti" />
/
<div class="col-12 px-1 pb-1">
<div class="d-flex">
<div class="p-1 mr-auto">
<asp:Label runat="server" ID="Label2" Text='<%# Eval("PezziProd","prod: {0}") %>' ToolTip="pz prodotti" />
/
<asp:Label runat="server" ID="lblPzLanciati" Text='<%# Eval("NumPezzi","tot: {0}") %>' ToolTip="pz lanciati" />
</div>
<div class="p-1">
<asp:Label runat="server" ID="Label1" Text='<%# Eval("PezziConf","conf: {0}") %>' ToolTip="pz confermati" />
</div>
<div class="p-1">
<asp:Label runat="server" ID="Label1" Text='<%# Eval("PezziConf","conf: {0}") %>' ToolTip="pz confermati" />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</asp:LinkButton></div></ItemTemplate></asp:Repeater><asp:ObjectDataSource ID="ods" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByRefreshData"
</asp:LinkButton>
</div>
</ItemTemplate>
</asp:Repeater>
<asp:ObjectDataSource ID="ods" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByRefreshData"
TypeName="MapoDb.DS_ProdTempiTableAdapters.MappaStatoExplTableAdapter">
<SelectParameters>
<asp:Parameter DefaultValue="3001" Name="maxAgeSec" Type="Int32" />