Modifiche grafiche x pagina approvazione TC

This commit is contained in:
Samuele E. Locatelli
2019-09-06 12:21:05 +02:00
parent b7458cc403
commit cbdfdf29ce
2 changed files with 238 additions and 209 deletions
+81 -76
View File
@@ -1,82 +1,87 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_approvazioneODL.ascx.cs" Inherits="MP_ADM.WebUserControls.mod_approvazioneODL" %>
<div style="text-align: center; margin: auto; vertical-align: middle; min-width: 800px; width: 100%; background: #DCDCDC;">
<asp:GridView ID="grView" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="false" BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" CellPadding="2" DataKeyNames="IdxODL" DataSourceID="odsTempi" ForeColor="Black" GridLines="None" Width="100%" OnSelectedIndexChanged="grView_SelectedIndexChanged">
<AlternatingRowStyle BackColor="PaleGoldenrod" />
<FooterStyle BackColor="Tan" />
<HeaderStyle BackColor="Tan" Font-Bold="True" />
<PagerStyle CssClass="active GridPager" />
<PagerSettings Mode="NumericFirstLast" />
<SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
<SortedAscendingCellStyle BackColor="#FAFAE7" />
<SortedAscendingHeaderStyle BackColor="#DAC09E" />
<SortedDescendingCellStyle BackColor="#E1DB9C" />
<SortedDescendingHeaderStyle BackColor="#C2A47B" />
<EmptyDataRowStyle BackColor="Tan" Font-Bold="True" />
<EmptyDataTemplate>
Nessun record trovato
</EmptyDataTemplate>
<Columns>
<asp:TemplateField ShowHeader="False">
<HeaderTemplate>
<asp:LinkButton ID="btnReset" runat="server" OnClick="btnReset_Click"><i class="fa fa-refresh fa-2x"></i></asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID="lnkAppr" runat="server" CausesValidation="False" CommandArgument="Approva" CommandName="Select" ToolTip="Approva" ForeColor="Green" OnCommand="lbt_Command"><i class="fa fa-thumbs-o-up fa-2x"></i></asp:LinkButton>
<asp:LinkButton ID="lnkReject" runat="server" CausesValidation="False" CommandArgument="Rifiuta" CommandName="Select" ToolTip="Rifiuta" ForeColor="Red" OnCommand="lbt_Command"><i class="fa fa-thumbs-o-down fa-2x"></i></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="IdxODL" HeaderText="ODL" InsertVisible="False" ReadOnly="True" SortExpression="IdxODL" />
<asp:BoundField DataField="Nome" HeaderText="Nome" SortExpression="Nome" />
<asp:TemplateField HeaderText="Articolo" SortExpression="CodArticolo">
<ItemTemplate>
<asp:Label ID="lblCod" runat="server" Text='<%# Bind("CodArticolo") %>'></asp:Label>
<div style="color: #696969; font-size: 0.7em;"">
<asp:Label ID="lblDesc" runat="server" Text='<%# Bind("DescArticolo") %>' />
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="NumPezzi" HeaderText="NumPezzi" SortExpression="NumPezzi" />
<asp:TemplateField HeaderText="TC Attrezzato" SortExpression="TCRichAttr">
<ItemTemplate>
<div style="color: #DD3333; font-size: 1.1em;">
<asp:Label ID="lblTCRichMS" runat="server" Text='<%# minSec(Eval("TCRichAttr", "{0:N3}")) %>' />
<br />
<asp:Label ID="lblTCRichMC" runat="server" Text='<%# Bind("TCRichAttr", "{0:N2} min.cent") %>' Font-Size="0.6em" ForeColor="#696969" />
</div>
<div style="color: #696969; font-size: 0.9em;">
<asp:Label ID="lblNote" runat="server" Text='<%# Bind("Note") %>' />
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="OperSetup" HeaderText="Oper." SortExpression="OperSetup" />
<asp:TemplateField HeaderText="TC Assegnato" SortExpression="TCAssegnato">
<ItemTemplate>
<asp:Label ID="lblTCAssMS" runat="server" Text='<%# minSec(Eval("TCAssegnato", "{0:N3}")) %>' />
<br />
<asp:Label ID="lblTCAssMC" runat="server" Text='<%# Bind("TCAssegnato", "{0:N2} min.cent") %>' Font-Size="0.6em" ForeColor="#696969" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="DataInizio" SortExpression="DataInizio" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="lblInizio" runat="server" Text='<%# Bind("DataInizio","{0:dd/MM/yyyy}</br>{0:HH:mm}") %>' />
</ItemTemplate>
<ItemStyle HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<div class="text-center fontNormale">
<asp:GridView ID="grView" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" CssClass="table table-striped table-sm m-0" DataKeyNames="IdxODL" DataSourceID="odsTempi" OnSelectedIndexChanged="grView_SelectedIndexChanged">
<HeaderStyle CssClass="default" />
<PagerStyle CssClass="active GridPager" />
<PagerSettings Mode="NumericFirstLast" />
<SelectedRowStyle CssClass="table-success" />
<EmptyDataTemplate>
Nessun record trovato
</EmptyDataTemplate>
<Columns>
<asp:TemplateField ShowHeader="False">
<HeaderTemplate>
<asp:LinkButton ID="btnReset" runat="server" OnClick="btnReset_Click"><i class="fa fa-refresh fa-2x"></i></asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID="lnkAppr" runat="server" CausesValidation="False" CommandArgument="Approva" CommandName="Select" ToolTip="Approva" ForeColor="Green" OnCommand="lbt_Command"><i class="fa fa-thumbs-o-up fa-2x"></i></asp:LinkButton>
<asp:LinkButton ID="lnkReject" runat="server" CausesValidation="False" CommandArgument="Rifiuta" CommandName="Select" ToolTip="Rifiuta" ForeColor="Red" OnCommand="lbt_Command"><i class="fa fa-thumbs-o-down fa-2x"></i></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="IdxODL" HeaderText="ODL" InsertVisible="False" ReadOnly="True" SortExpression="IdxODL" />
<asp:BoundField DataField="Nome" HeaderText="Nome" SortExpression="Nome" />
<asp:TemplateField HeaderText="Articolo" SortExpression="CodArticolo">
<ItemTemplate>
<asp:Label ID="lblCod" runat="server" CssClass="font-weight-bold fontMedio" Text='<%# Eval("CodArticolo") %>' />
<div class="text-secondary">
<asp:Label ID="lblDesc" runat="server" Text='<%# Eval("DescArticolo") %>' />
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="NumPezzi" SortExpression="NumPezzi">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("NumPezzi","{0:N0}") %>' CssClass="fontMedio" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="TC Attrezzato" SortExpression="TCRichAttr">
<ItemTemplate>
<div class='<%# "font-weight-bold fontMedio " + cssFromTempi(Eval("TCAssegnato"), Eval("TCRichAttr")) %>'>
<asp:Label ID="lblTCRichMS" runat="server" Text='<%# minSec(Eval("TCRichAttr", "{0:N3}")) %>' />
<br />
<asp:Label ID="lblTCRichMC" runat="server" Text='<%# Eval("TCRichAttr", "{0:N2} min.cent") %>' CssClass="small text-secondary" />
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Oper." SortExpression="OperSetup">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" CssClass="fontMedio" Text='<%# Eval("OperSetup") %>' />
<div class="text-secondary fontMedio">
<asp:Label ID="lblNote" runat="server" Text='<%# Eval("Note") %>' CssClass="small" />
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="TC Assegnato" SortExpression="TCAssegnato">
<ItemTemplate>
<div class="fontMedio">
<asp:Label ID="lblTCAssMS" runat="server" Text='<%# minSec(Eval("TCAssegnato", "{0:N3}")) %>' />
<br />
<asp:Label ID="lblTCAssMC" runat="server" Text='<%# Eval("TCAssegnato", "{0:N2} min.cent") %>' CssClass="small text-secondary" />
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="DataInizio" SortExpression="DataInizio" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="lblInizioData" runat="server" Text='<%# Eval("DataInizio","{0:dd/MM/yyyy}") %>' CssClass="fontMedio" /><br />
<asp:Label ID="lblInizioOra" runat="server" Text='<%# Eval("DataInizio","{0:HH:mm:ss}") %>' />
</ItemTemplate>
<ItemStyle HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="DataFine" SortExpression="DataFine" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="lblFine" runat="server" Text='<%# Bind("DataFine","{0:dd/MM/yyyy}</br>{0:HH:mm}") %>' />
</ItemTemplate>
<ItemStyle HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="odsTempi" runat="server" OldValuesParameterFormatString="Original_{0}" SelectMethod="getNeedAppr" TypeName="MapoDb.DS_ProdTempiTableAdapters.ODLTableAdapter"></asp:ObjectDataSource>
<div style="text-align: center; margin: auto; vertical-align: middle; padding: 4px 2px; height: 1.5em;">
<div style="float: right;">
mostra:
<asp:TemplateField HeaderText="DataFine" SortExpression="DataFine" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="lblFineData" runat="server" Text='<%# Eval("DataFine","{0:dd/MM/yyyy}") %>' CssClass="fontMedio" /><br />
<asp:Label ID="lblFineOra" runat="server" Text='<%# Eval("DataFine","{0:HH:mm:ss}") %>' />
</ItemTemplate>
<ItemStyle HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="odsTempi" runat="server" OldValuesParameterFormatString="Original_{0}" SelectMethod="getNeedAppr" TypeName="MapoDb.DS_ProdTempiTableAdapters.ODLTableAdapter"></asp:ObjectDataSource>
<div style="text-align: center; margin: auto; vertical-align: middle; padding: 4px 2px; height: 1.5em;">
<div style="float: right;">
mostra:
<asp:TextBox runat="server" ID="txtPageSize" Text="10" Width="2em" OnTextChanged="txtPageSize_TextChanged" />
</div>
</div>
</div>
</div>
+157 -133
View File
@@ -5,139 +5,163 @@ using System.Web.UI.WebControls;
namespace MP_ADM.WebUserControls
{
public partial class mod_approvazioneODL : System.Web.UI.UserControl
public partial class mod_approvazioneODL : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
grView.PageSize = pageSize;
}
}
/// <summary>
/// dimensione pagina
/// </summary>
public int pageSize
{
get
{
int answ = 10;
try
{
answ = Convert.ToInt32(txtPageSize.Text);
}
catch
{ }
return answ;
}
set
{
txtPageSize.Text = value.ToString();
}
}
/// <summary>
/// reset della selezione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnReset_Click(object sender, EventArgs e)
{
resetSelezione();
}
/// <summary>
/// resetta la selezione dei valori in caso di modifiche su altri controlli
/// </summary>
public void resetSelezione()
{
grView.SelectedIndex = -1;
grView.DataBind();
}
/// <summary>
/// salvo comando
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbt_Command(object sender, CommandEventArgs e)
{
SteamWare.memLayer.ML.setSessionVal("nextObjCommand", ((LinkButton)sender).CommandArgument);
}
/// <summary>
/// evento selezione riga: salvo tempo e qta nei campi input...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_SelectedIndexChanged(object sender, EventArgs e)
{
// ricavo i dati selezionati
int idxOdl = 0;
try
{
idxOdl = Convert.ToInt32(grView.SelectedValue);
}
catch
{ }
MapoDb.DS_ProdTempi.ODLRow rigaOdl = MapoDb.DataLayer.obj.taODL.getByIdx(idxOdl, false)[0];
// gestione buttons approvazione
string _comando = "";
if (SteamWare.memLayer.ML.isInSessionObject("nextObjCommand"))
{
_comando = SteamWare.memLayer.ML.StringSessionObj("nextObjCommand");
SteamWare.memLayer.ML.emptySessionVal("nextObjCommand");
}
switch (_comando)
{
case "Approva":
MapoDb.DataLayer.obj.taODL.approvaTC(idxOdl, string.Format("{0}{1}Approvato da: {2}", rigaOdl.Note, Environment.NewLine, user_std.UtSn.CognomeNome), user_std.UtSn.CognomeNome, true);
break;
case "Rifiuta":
MapoDb.DataLayer.obj.taODL.approvaTC(idxOdl, string.Format("{0}{1}Rifiutato da: {2}", rigaOdl.Note, Environment.NewLine, user_std.UtSn.CognomeNome), user_std.UtSn.CognomeNome, false);
break;
default:
break;
}
grView.SelectedIndex = -1;
grView.DataBind();
}
/// <summary>
/// cambio dim pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void txtPageSize_TextChanged(object sender, EventArgs e)
{
grView.PageSize = pageSize;
}
/// <summary>
/// formatta in minuti/sec partendo da min.cent
/// </summary>
/// <param name="minCent"></param>
/// <returns></returns>
public string minSec(object minCent)
{
string answ = "";
try
{
answ = string.Format("{0:mm}:{0:ss}", minCent2Sec(Convert.ToDecimal(minCent.ToString().Replace(".", ","))));
}
catch
{ }
return answ;
}
/// <summary>
/// conversione da tempo minuti centesimali a minuti/secondi
/// </summary>
/// <param name="valore"></param>
/// <returns></returns>
protected TimeSpan minCent2Sec(decimal valore)
{
TimeSpan answ = new TimeSpan(0, 0, 1);
try
{
answ = new TimeSpan(0, Convert.ToInt32(valore), Convert.ToInt32((valore - Convert.ToInt32(valore)) * 60));
}
catch
{ }
return answ;
}
if (!Page.IsPostBack)
{
grView.PageSize = pageSize;
}
}
/// <summary>
/// dimensione pagina
/// </summary>
public int pageSize
{
get
{
int answ = 10;
try
{
answ = Convert.ToInt32(txtPageSize.Text);
}
catch
{ }
return answ;
}
set
{
txtPageSize.Text = value.ToString();
}
}
/// <summary>
/// reset della selezione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnReset_Click(object sender, EventArgs e)
{
resetSelezione();
}
/// <summary>
/// resetta la selezione dei valori in caso di modifiche su altri controlli
/// </summary>
public void resetSelezione()
{
grView.SelectedIndex = -1;
grView.DataBind();
}
/// <summary>
/// salvo comando
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbt_Command(object sender, CommandEventArgs e)
{
SteamWare.memLayer.ML.setSessionVal("nextObjCommand", ((LinkButton)sender).CommandArgument);
}
/// <summary>
/// evento selezione riga: salvo tempo e qta nei campi input...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_SelectedIndexChanged(object sender, EventArgs e)
{
// ricavo i dati selezionati
int idxOdl = 0;
try
{
idxOdl = Convert.ToInt32(grView.SelectedValue);
}
catch
{ }
MapoDb.DS_ProdTempi.ODLRow rigaOdl = MapoDb.DataLayer.obj.taODL.getByIdx(idxOdl, false)[0];
// gestione buttons approvazione
string _comando = "";
if (SteamWare.memLayer.ML.isInSessionObject("nextObjCommand"))
{
_comando = SteamWare.memLayer.ML.StringSessionObj("nextObjCommand");
SteamWare.memLayer.ML.emptySessionVal("nextObjCommand");
}
switch (_comando)
{
case "Approva":
MapoDb.DataLayer.obj.taODL.approvaTC(idxOdl, string.Format("{0}{1}Approvato da: {2}", rigaOdl.Note, Environment.NewLine, user_std.UtSn.CognomeNome), user_std.UtSn.CognomeNome, true);
break;
case "Rifiuta":
MapoDb.DataLayer.obj.taODL.approvaTC(idxOdl, string.Format("{0}{1}Rifiutato da: {2}", rigaOdl.Note, Environment.NewLine, user_std.UtSn.CognomeNome), user_std.UtSn.CognomeNome, false);
break;
default:
break;
}
grView.SelectedIndex = -1;
grView.DataBind();
}
/// <summary>
/// cambio dim pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void txtPageSize_TextChanged(object sender, EventArgs e)
{
grView.PageSize = pageSize;
}
/// <summary>
/// formatta in minuti/sec partendo da min.cent
/// </summary>
/// <param name="minCent"></param>
/// <returns></returns>
public string minSec(object minCent)
{
string answ = "";
try
{
answ = string.Format("{0:mm}:{0:ss}", minCent2Sec(Convert.ToDecimal(minCent.ToString().Replace(".", ","))));
}
catch
{ }
return answ;
}
/// <summary>
/// conversione da tempo minuti centesimali a minuti/secondi
/// </summary>
/// <param name="valore"></param>
/// <returns></returns>
protected TimeSpan minCent2Sec(decimal valore)
{
TimeSpan answ = new TimeSpan(0, 0, 1);
try
{
answ = new TimeSpan(0, Convert.ToInt32(valore), Convert.ToInt32((valore - Convert.ToInt32(valore)) * 60));
}
catch
{ }
return answ;
}
/// <summary>
/// Classe css colore testo calcolato in abse ai TC
/// </summary>
/// <param name="_tcAssegnato"></param>
/// <param name="_tcAttrezzato"></param>
/// <returns></returns>
public string cssFromTempi(object _tcAssegnato, object _tcAttrezzato)
{
string answ = "text-dark";
double tcAssegnato = 0;
double tcAttrezzato = 0;
double.TryParse(_tcAssegnato.ToString(), out tcAssegnato);
double.TryParse(_tcAttrezzato.ToString(), out tcAttrezzato);
if (tcAttrezzato > tcAssegnato)
{
answ = "text-danger";
}
else
if (tcAttrezzato < tcAssegnato)
{
answ = "text-success";
}
return answ;
}
}
}