completato insert x ordini filtrabili (mass ADD)

This commit is contained in:
Samuele Locatelli
2021-04-20 12:51:36 +02:00
parent be6e5aeaf9
commit 45e6f32541
7 changed files with 397 additions and 43 deletions
+8
View File
@@ -658,6 +658,13 @@
<Compile Include="WebUserControls\cmp_LottiOut.ascx.designer.cs">
<DependentUpon>cmp_LottiOut.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_selPeriodoFuturo.ascx.cs">
<DependentUpon>cmp_selPeriodoFuturo.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_selPeriodoFuturo.ascx.designer.cs">
<DependentUpon>cmp_selPeriodoFuturo.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_SelUdc.ascx.cs">
<DependentUpon>cmp_SelUdc.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@@ -908,6 +915,7 @@
<Content Include="WebUserControls\cmp_ArtRich.ascx" />
<Content Include="WebUserControls\cmp_LottiIn.ascx" />
<Content Include="WebUserControls\cmp_LottiOut.ascx" />
<Content Include="WebUserControls\cmp_selPeriodoFuturo.ascx" />
<Content Include="WebUserControls\cmp_SelUdc.ascx" />
<Content Include="WebUserControls\cmp_UDCList.ascx" />
<Content Include="WebUserControls\cmp_UdcODL.ascx" />
+29 -9
View File
@@ -1,8 +1,24 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_OrderListAdd.ascx.cs" Inherits="MP_MAG.WebUserControls.cmp_OrderListAdd" %>
<%@ Register Src="~/WebUserControls/cmp_selPeriodoFuturo.ascx" TagPrefix="uc1" TagName="cmp_selPeriodoFuturo" %>
<div class="card">
<div class="card-header bg-dark text-light">
<b>Ordini Aperti</b>
<div class="row">
<div class="col-12">
<b>Ordini Aperti</b>
</div>
<div class="col-5 textCondens pr-0">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">Articolo</span>
</div>
<asp:TextBox runat="server" ID="txtCodArt" CssClass="form-control" AutoPostBack="true" />
</div>
</div>
<div class="col-7 textCondens pl-0">
<uc1:cmp_selPeriodoFuturo runat="server" ID="cmp_selPeriodoFuturo" />
</div>
</div>
</div>
<div class="card-body p-0 table-secondary">
<asp:GridView runat="server" ID="grView" AutoGenerateColumns="False" DataKeyNames="RigaOrd" DataSourceID="ods" CssClass="table table-sm table-striped mb-0 " OnSelectedIndexChanged="grView_SelectedIndexChanged" PageSize="5" AllowPaging="True">
@@ -16,13 +32,13 @@
<Columns>
<asp:TemplateField ShowHeader="False">
<HeaderTemplate>
<%--<asp:LinkButton ID="lbtReset" runat="server" OnClick="lbtReset_Click" CssClass="btn btn-sm btn-primary" Visible="true" ToolTip="Reset"><i class="fas fa-sync"></i></asp:LinkButton>--%>
<asp:LinkButton ID="lbtAddAll" runat="server" OnClick="lbtAddAll_Click" CssClass="btn btn-sm btn-primary" Visible="true" ToolTip="Mass Insert" OnClientClick="return confirm('Sei sicuro di voler aggiungere tutti gli ordini visualizzati?');"><i class="fas fa-plus-circle"></i></asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID="lbtSel" runat="server" CausesValidation="False" CommandName="Select" CssClass="btn btn-sm btn-success py-0 small"><i class="fa fa-plus fa-xs" aria-hidden="true"></i></asp:LinkButton>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("RigaOrd") %>' CssClass="textCondens" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="RigaOrd" HeaderText="Cod" ReadOnly="True" SortExpression="RigaOrd" />
<%--<asp:BoundField DataField="NumDoc" HeaderText="NumDoc" SortExpression="NumDoc" />
<asp:BoundField DataField="DataDoc" HeaderText="DataDoc" SortExpression="DataDoc" />
<asp:BoundField DataField="IdTestOrd" HeaderText="IdTestOrd" SortExpression="IdTestOrd" />--%>
@@ -30,9 +46,6 @@
<%--<asp:BoundField DataField="CodCliente" HeaderText="CodCliente" SortExpression="CodCliente" />--%>
<%--<asp:BoundField DataField="UM" HeaderText="UM" SortExpression="UM" />--%>
<asp:TemplateField HeaderText="Descrizione" SortExpression="DescOrdine">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("DescOrdine") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<div class="d-flex">
<div class="px-1">
@@ -49,13 +62,20 @@
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Qta" HeaderText="Qta" SortExpression="Qta" DataFormatString="{0:N0}" />
<asp:BoundField DataField="QtaEvadibile" HeaderText="Evad." SortExpression="QtaEvadibile" DataFormatString="{0:N0}" />
<asp:TemplateField HeaderText="Qta (Evad)" SortExpression="Qta">
<ItemTemplate>
<asp:Label ID="LabelQta" runat="server" Text='<%# Eval("Qta", "{0:N0}") %>' ToolTip="Qta ordinata" />
<asp:Label ID="LabelQtaEvadibile" runat="server" CssClass="textCondens text-secondary" Text='<%# Eval("QtaEvadibile", "({0:N0})") %>' ToolTip="Qta evadibile" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource runat="server" ID="ods" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="MagData.DS_PackListTableAdapters.ExtOrdersListTableAdapter">
<asp:ObjectDataSource runat="server" ID="ods" OldValuesParameterFormatString="original_{0}" SelectMethod="getByFilt" TypeName="MagData.DS_PackListTableAdapters.ExtOrdersListTableAdapter">
<SelectParameters>
<asp:ControlParameter ControlID="hfCodCli" DefaultValue="#" Name="CodCliente" PropertyName="Value" Type="String" />
<asp:SessionParameter Name="InizioCon" SessionField="_inizio" Type="DateTime" />
<asp:SessionParameter Name="FineCon" SessionField="_fine" Type="DateTime" />
<asp:ControlParameter ControlID="txtCodArt" DefaultValue="" Name="CodArticolo" PropertyName="Text" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:HiddenField runat="server" ID="hfPackListID" />
+30 -17
View File
@@ -43,21 +43,8 @@ namespace MP_MAG.WebUserControls
#region Private Methods
private void resetSelezione()
private void addOrder(string keySel)
{
grView.SelectedIndex = -1;
grView.DataBind();
raiseReset();
}
#endregion Private Methods
#region Protected Methods
protected void grView_SelectedIndexChanged(object sender, EventArgs e)
{
// recupero dati...
string keySel = grView.SelectedValue.ToString();
int numRigaOrd = 0;
int.TryParse(keySel, out numRigaOrd);
var tabOrdExt = MagData.MagDataLayer.man.taEOL.getByKey(numRigaOrd);
@@ -78,14 +65,40 @@ namespace MP_MAG.WebUserControls
}
}
private void resetSelezione()
{
grView.SelectedIndex = -1;
grView.DataBind();
raiseReset();
}
#endregion Private Methods
#region Protected Methods
protected void grView_SelectedIndexChanged(object sender, EventArgs e)
{
// invio valore selezionato...
addOrder($"{grView.SelectedValue}");
}
/// <summary>
/// comando reset
/// Aggiunge tutti i record visualizzati
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtReset_Click(object sender, EventArgs e)
protected void lbtAddAll_Click(object sender, EventArgs e)
{
resetSelezione();
for (int i = 0; i < grView.Rows.Count; i++)
{
// seleziono
grView.SelectedIndex = i;
grView.DataBind();
// recupero ed invio
addOrder($"{grView.SelectedValue}");
}
grView.SelectedIndex = -1;
grView.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
+35 -17
View File
@@ -1,10 +1,10 @@
//------------------------------------------------------------------------------
// <generato automaticamente>
// Codice generato da uno strumento.
// <auto-generated>
// This code was generated by a tool.
//
// Le modifiche a questo file possono causare un comportamento non corretto e verranno perse se
// il codice viene rigenerato.
// </generato automaticamente>
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace MP_MAG.WebUserControls
@@ -15,38 +15,56 @@ namespace MP_MAG.WebUserControls
{
/// <summary>
/// Controllo grView.
/// txtCodArt control.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtCodArt;
/// <summary>
/// cmp_selPeriodoFuturo control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::MP_MAG.WebUserControls.cmp_selPeriodoFuturo cmp_selPeriodoFuturo;
/// <summary>
/// grView 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.GridView grView;
/// <summary>
/// Controllo ods.
/// ods control.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.ObjectDataSource ods;
/// <summary>
/// Controllo hfPackListID.
/// hfPackListID control.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.HiddenField hfPackListID;
/// <summary>
/// Controllo hfCodCli.
/// hfCodCli control.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.HiddenField hfCodCli;
}
@@ -0,0 +1,6 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_selPeriodoFuturo.ascx.cs" Inherits="MP_MAG.WebUserControls.cmp_selPeriodoFuturo" %>
<div class="input-group input-group-sm">
<asp:TextBox ID="txtInizio" runat="server" MaxLength="8" AutoPostBack="True" OnTextChanged="txtInizio_TextChanged" CssClass="form-control" Font-Size="Small" TextMode="Date" />
<asp:TextBox ID="txtFine" runat="server" MaxLength="8" AutoPostBack="True" OnTextChanged="txtFine_TextChanged" CssClass="form-control" Font-Size="Small" TextMode="Date" />
</div>
@@ -0,0 +1,254 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SteamWare;
namespace MP_MAG.WebUserControls
{
public partial class cmp_selPeriodoFuturo : BaseUserControl
{
#region Protected Fields
protected intervalloDate _intervallo;
#endregion Protected Fields
#region Protected Properties
/// <summary>
/// definisce se sia da mostrare il selettore delle ore nel controllo
/// </summary>
protected bool mostraSelOra
{
get
{
bool answ = false;
if (memLayer.ML.isInSessionObject("mostraSelOra"))
{
answ = memLayer.ML.BoolSessionObj("mostraSelOra");
}
else
{
// leggo da sessione e salvo...
try
{
answ = memLayer.ML.CRB("mostraSelOra");
}
catch
{ }
memLayer.ML.setSessionVal("mostraSelOra", answ);
}
return answ;
}
}
#endregion Protected Properties
#region Public Properties
/// <summary>
/// indica se il controllo debba fare update in automatico o attendere pressione button update da utente
/// </summary>
public bool autoUpdate { get; set; }
public DateTime fine
{
get
{
return intervalloAnalisi.fine;
}
}
public DateTime inizio
{
get
{
return intervalloAnalisi.inizio;
}
}
public intervalloDate intervalloAnalisi
{
get
{
return (intervalloDate)Session["_intervallo"];
}
set
{
intervalloDate interv = value;
Session["_intervallo"] = interv;
Session["_inizio"] = interv.inizio;
Session["_fine"] = interv.fine;
_intervallo = interv;
aggiornaDateMostrate(false);
}
}
#endregion Public Properties
#region Private Methods
/// <summary>
/// effettua update delle date mostrate da intervallo analisi (ed eventualmente riporta update...)
/// </summary>
/// <param name="doReportUpdate"></param>
private void aggiornaDateMostrate(bool doReportUpdate)
{
scriviDate();
if (doReportUpdate)
{
reportUpdate();
}
}
/// <summary>
/// update periodo
/// </summary>
private void aggiornaPeriodo()
{
_intervallo = new intervalloDate();
// calcolo tempi arrotondati
_intervallo.inizio = Convert.ToDateTime(txtInizio.Text);
_intervallo.fine = Convert.ToDateTime(txtFine.Text);
verificaCoerenzaDate();
reportUpdate();
}
/// <summary>
/// verifica la modifica delle date..
/// </summary>
private void procDateMod()
{
aggiornaPeriodo();
}
/// <summary>
/// scrive nuove date in controllo
/// </summary>
private void scriviDate()
{
// se intervallo non è valorizzato leggo da sessione...
if (!_intervallo.isValid)
{
_intervallo = intervalloAnalisi;
}
txtInizio.Text = _intervallo.inizio.ToString("yyyy-MM-dd");
txtFine.Text = _intervallo.fine.ToString("yyyy-MM-dd");
}
/// <summary>
/// imposta intervallo da sessione o di default
/// </summary>
private void setIntervallo()
{
//intervalloDate _intervallo;
try
{
_intervallo = (intervalloDate)Session["_intervallo"];
}
catch
{
int numGG = memLayer.ML.CRI("defDayTo") > 1 ? memLayer.ML.CRI("defDayTo") : 30;
_intervallo = new intervalloDate();
_intervallo.inizio = DateTime.Today;
_intervallo.fine = _intervallo.inizio.AddDays(numGG);
Session["_intervallo"] = _intervallo;
Session["_inizio"] = _intervallo.inizio;
Session["_fine"] = _intervallo.fine;
}
scriviDate();
}
/// <summary>
/// verifica che le date dell'intervallo siano coerenti (inizio < fine)
/// </summary>
private void verificaCoerenzaDate()
{
// controllo date siano coerenti (fine > inizio)...
if (_intervallo.inizio >= _intervallo.fine)
{
_intervallo.inizio = DateTime.Today;
_intervallo.fine = _intervallo.inizio.AddDays(memLayer.ML.CRI("defDayTo"));
}
//intervalloAnalisi = _intervallo;
aggiornaDateMostrate(false);
}
#endregion Private Methods
#region Protected Methods
/// <summary>
/// avvio componente
/// </summary>
/// <param name="e"></param>
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
txtInizio.ToolTip = "inizio periodo di riferimento per i dati mostrati";
txtFine.ToolTip = "fine periodo di riferimento per i dati mostrati";
setIntervallo();
}
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
txtInizio.ToolTip = "inizio periodo di riferimento per i dati mostrati";
txtFine.ToolTip = "fine periodo di riferimento per i dati mostrati";
}
}
/// <summary>
/// evento cambio testo data fine
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void txtFine_TextChanged(object sender, EventArgs e)
{
procDateMod();
}
/// <summary>
/// evento cambio testo data inizio
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void txtInizio_TextChanged(object sender, EventArgs e)
{
procDateMod();
}
#endregion Protected Methods
#region Public Methods
/// <summary>
/// effettua update
/// </summary>
/// <param name="doReportUpdate"></param>
public void doUpdate(bool doReportUpdate)
{
aggiornaDateMostrate(doReportUpdate);
}
/// <summary>
/// riporta aggiornamento a controller
/// </summary>
public void reportUpdate()
{
intervalloAnalisi = _intervallo;
base.raiseEvent();
}
#endregion Public Methods
}
}
@@ -0,0 +1,35 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace MP_MAG.WebUserControls
{
public partial class cmp_selPeriodoFuturo
{
/// <summary>
/// txtInizio 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.TextBox txtInizio;
/// <summary>
/// txtFine 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.TextBox txtFine;
}
}