Fix calcolo totali (pezzi e tempo) da selezione

This commit is contained in:
Samuele E. Locatelli
2019-05-17 19:44:11 +02:00
parent 716d8cde60
commit 24a01fd963
4 changed files with 93 additions and 10 deletions
+1
View File
@@ -37,6 +37,7 @@ namespace MP_ADM
mod_planCreate.CodGruppo = mod_planStats.CodGruppo;
mod_planCreate.IdxMacchina = mod_planStats.IdxMacchina;
mod_planCreate.CodArticolo = mod_planStats.CodArticolo;
mod_planCreate.doUpdate();
}
private void checkEnabled()
+30 -10
View File
@@ -31,10 +31,10 @@
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="btnSelAll" runat="server" Checked="false" ToolTip='<%# traduci("btnSelAll") %>'
OnCheckedChanged="btnSelAll_Click" CssClass="ctrHeaderPager" AutoPostBack="true"></asp:CheckBox>
OnCheckedChanged="btnSelAll_Click" CssClass="btn btn-default btn-sm" AutoPostBack="true"></asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkSelect" runat="server" />
<asp:CheckBox ID="chkSelect" CssClass="btn btn-default btn-sm" runat="server" OnCheckedChanged="chkSelect_CheckedChanged" AutoPostBack="true" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="KeyRichiesta" SortExpression="KeyRichiesta">
@@ -70,15 +70,25 @@
<asp:CheckBoxField DataField="Attivabile" HeaderText="Attivabile" SortExpression="Attivabile" />
<asp:BoundField DataField="IdxODL" HeaderText="IdxODL" SortExpression="IdxODL" />
<asp:BoundField DataField="NumPezzi" HeaderText="NumPezzi" SortExpression="NumPezzi" DataFormatString="{0:N0}" HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField DataField="TCAssegnato" HeaderText="TCAssegnato" SortExpression="TCAssegnato" />
<asp:TemplateField HeaderText="NumPezzi" SortExpression="NumPezzi">
<ItemTemplate>
<asp:Label ID="lblNumPezzi" runat="server" Text='<%# Eval("NumPezzi", "{0:N0}") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Right" />
<ItemStyle HorizontalAlign="Right" />
</asp:TemplateField>
<asp:BoundField DataField="TCAssegnato" HeaderText="TCAssegnato" SortExpression="TCAssegnato" DataFormatString="{0:N3}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField DataField="DueDate" HeaderText="DueDate" SortExpression="DueDate" />
<asp:BoundField DataField="Priorita" HeaderText="Priorita" SortExpression="Priorita" />
<asp:BoundField DataField="PzPallet" HeaderText="PzPallet" SortExpression="PzPallet" />
<asp:BoundField DataField="Note" HeaderText="Note" SortExpression="Note" />
<asp:BoundField DataField="TC50p" HeaderText="TC50p" ReadOnly="True" SortExpression="TC50p" />
<asp:BoundField DataField="TC50p" HeaderText="TC50p" ReadOnly="True" SortExpression="TC50p" DataFormatString="{0:N3}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField DataField="TC_type" HeaderText="TC_type" ReadOnly="True" SortExpression="TC_type" />
<asp:BoundField DataField="TotMinuti" HeaderText="TotMinuti" ReadOnly="True" SortExpression="TotMinuti" />
<asp:TemplateField HeaderText="TotMinuti" SortExpression="TotMinuti" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="lblTotMinuti" runat="server" Text='<%# Eval("TotMinuti","{0:N2}") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource runat="server" ID="odsPromIN" OldValuesParameterFormatString="original_{0}" SelectMethod="getFilt" TypeName="MapoDb.DS_PlanTableAdapters.RichiesteTableAdapter">
@@ -90,10 +100,20 @@
</asp:ObjectDataSource>
</div>
<div class="col-3">
Tot pezzi
<br />
Tot ore
<br />
<div style="font-size: 1.5em;">
<div class="d-flex justify-content-between">
<div class="py-0 px-2">Tot PEZZI (num)</div>
<div class="py-0 px-2 font-weight-bold">
<asp:Label runat="server" ID="lblNumPzTot" />
</div>
</div>
<div class="d-flex justify-content-between">
<div class="py-0 px-2">Tot Tempo (ore)</div>
<div class="py-0 px-2 font-weight-bold">
<asp:Label runat="server" ID="lblOreTot" />
</div>
</div>
</div>
<asp:LinkButton runat="server" ID="lbtCreaGrp" CssClass="btn btn-success btn-block">CREA PODL Gruppo <i class="fa fa-object-group" aria-hidden="true"></i></asp:LinkButton>
Selezionare LA MACCHINA ESATTA su cui creare...
@@ -47,6 +47,11 @@ namespace MP_ADM.WebUserControls
hfIdxMacchina.Value = value;
}
}
public void doUpdate()
{
grView.DataBind();
calcTotali();
}
/// <summary>
/// seleziona/deseleziona le righe indicate...
/// </summary>
@@ -69,6 +74,7 @@ namespace MP_ADM.WebUserControls
{
((CheckBox)riga.FindControl("chkSelect")).Checked = isChecked;
}
calcTotali();
}
@@ -93,5 +99,43 @@ namespace MP_ADM.WebUserControls
divDetail.Visible = !divDetail.Visible;
tgIcon.Attributes["class"] = divDetail.Visible ? "fa fa-chevron-up" : "fa fa-chevron-down";
}
protected void chkSelect_CheckedChanged(object sender, EventArgs e)
{
calcTotali();
}
private void calcTotali()
{
// update valori calcolati in base a selezione...
int numPzOrd = 0;
decimal tempoMinOrd = 0;
int numPzTot = 0;
decimal tempoMinTot = 0;
int idxPromessa = 0;
foreach (GridViewRow riga in grView.Rows)
{
numPzOrd = 0;
tempoMinOrd = 0;
DateTime DataRif = DateTime.Now.Date;
if (((CheckBox)riga.FindControl("chkSelect")).Checked && ((CheckBox)riga.FindControl("chkSelect")).Visible)
{
try
{
// idxPromessa = Convert.ToInt32(((Label)riga.FindControl("lblIdxODL")).Text);
int.TryParse(((Label)riga.FindControl("lblNumPezzi")).Text.Replace(".", ""), out numPzOrd);
decimal.TryParse(((Label)riga.FindControl("lblTotMinuti")).Text, out tempoMinOrd);
}
catch
{ }
numPzTot += numPzOrd;
tempoMinTot += tempoMinOrd;
//MapoDb.DataLayer.obj.taAs400.insProdAs400(IdxODL, DataRif);
}
}
//grView.DataBind();
lblNumPzTot.Text = $"{numPzTot:N0}";
lblOreTot.Text = $"{tempoMinTot / 60:N2}";
}
}
}
+18
View File
@@ -93,6 +93,24 @@ namespace MP_ADM.WebUserControls {
/// </remarks>
protected global::System.Web.UI.WebControls.ObjectDataSource odsPromIN;
/// <summary>
/// Controllo lblNumPzTot.
/// </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 lblNumPzTot;
/// <summary>
/// Controllo lblOreTot.
/// </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 lblOreTot;
/// <summary>
/// Controllo lbtCreaGrp.
/// </summary>