Merge branch 'feature/NewOrderPage' into develop

This commit is contained in:
Samuele Locatelli
2021-06-15 13:36:10 +02:00
23 changed files with 521 additions and 418 deletions
Vendored
+1 -1
View File
@@ -11,7 +11,7 @@ pipeline {
steps {
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
script {
withEnv(['NEXT_BUILD_NUMBER=400']) {
withEnv(['NEXT_BUILD_NUMBER=401']) {
// env.versionNumber = VersionNumber(versionNumberString : '2.0.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true)
env.versionNumber = VersionNumber(versionNumberString : '2.0.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.versionNumberBeta = VersionNumber(versionNumberString : '1.3.${BUILD_DATE_FORMATTED, "yyMM"}-beta.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

+9 -6
View File
@@ -305,12 +305,7 @@
<Content Include="export\BunkDetail.aspx" />
<Content Include="Home.aspx" />
<Content Include="Images\999999999.svg" />
<Content Include="Images\LogoEgaltech.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Images\LogoSteamware.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Images\LogoEgalware.png" />
<Content Include="Images\test.svg" />
<Content Include="Resources\ChangeLog.html">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
@@ -478,6 +473,7 @@
<Content Include="WebUserControls\cmp_barcode.ascx" />
<Content Include="WebUserControls\cmp_batchDetail.ascx" />
<Content Include="WebUserControls\cmp_batchDetailData.ascx" />
<Content Include="WebUserControls\cmp_batchDetailMongo.ascx" />
<Content Include="WebUserControls\cmp_batchDetailSplit.ascx" />
<Content Include="WebUserControls\cmp_batchDetailSplitInfo.ascx" />
<Content Include="WebUserControls\cmp_batchList.ascx" />
@@ -1108,6 +1104,13 @@
<Compile Include="WebUserControls\cmp_batchDetailData.ascx.designer.cs">
<DependentUpon>cmp_batchDetailData.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_batchDetailMongo.ascx.cs">
<DependentUpon>cmp_batchDetailMongo.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_batchDetailMongo.ascx.designer.cs">
<DependentUpon>cmp_batchDetailMongo.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_batchDetailSplit.ascx.cs">
<DependentUpon>cmp_batchDetailSplit.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
+3 -78
View File
@@ -1,7 +1,6 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_batchDetail.ascx.cs" Inherits="NKC_WF.WebUserControls.cmp_batchDetail" %>
<%@ Register Src="~/WebUserControls/cmp_batchDetailSplit.ascx" TagPrefix="uc1" TagName="cmp_batchDetailSplit" %>
<%--<%@ Register Src="~/WebUserControls/cmp_orderExtList.ascx" TagPrefix="uc1" TagName="cmp_orderExtList" %>--%>
<%@ Register Src="~/WebUserControls/cmp_batchDetailMongo.ascx" TagPrefix="uc1" TagName="cmp_batchDetailMongo" %>
<asp:FormView ID="frmView" runat="server" DataKeyNames="BatchID" DataSourceID="ods" Width="100%">
<ItemTemplate>
@@ -82,81 +81,7 @@
<asp:ControlParameter ControlID="hfBatchId" DefaultValue="0" Name="BatchID" PropertyName="Value" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
<div class="row small text-dark">
<div class="col-6">
<div class="form-group row py-0 mt-0 mb-1">
<label for="TotalTimeLabel" class="col-sm-4 col-form-label py-0">Mat OEE</label>
<div class="col-sm-8 font-weight-bold">
<asp:Label runat="server" ID="lblMatDet" />
</div>
</div>
</div>
<div class="col-6">
<div class="form-group row py-0 mt-0 mb-1">
<label for="TotalTimeLabel" class="col-sm-4 col-form-label py-0">Prod</label>
<div class="col-sm-8 font-weight-bold">
<asp:Label runat="server" ID="lblProdDet" />
</div>
</div>
</div>
<div class="col-12 ">
<asp:Label runat="server" ID="lblTestJson" />
</div>
</div>
<uc1:cmp_batchDetailMongo runat="server" ID="cmp_batchDetailMongo" showInline="true" />
<div runat="server" id="divSplit">
<uc1:cmp_batchDetailSplit runat="server" ID="cmp_batchDetailSplit" />
</div>
<%--<div class="card" runat="server" id="divSplit">
<div class="card-header text-center">
<h5><%: traduci("BatchSplit") %></h5>
<asp:HiddenField runat="server" ID="hfNeedSave" />
<asp:HiddenField runat="server" ID="hfLastRatio" />
<asp:HiddenField runat="server" ID="hfFullTime" />
<asp:TextBox runat="server" ID="txtRatio" TextMode="Range" CssClass="form-control-range" AutoPostBack="true" OnTextChanged="txtRatio_TextChanged" />
</div>
<div class="card-body p-1">
<div class="row small text-center">
<div class="col-6">
<div class="card">
<div class="card-header bg-primary text-light py-1">
<div class="row">
<div class="col-4">
<asp:Label runat="server" ID="lblTime01" />
</div>
<div class="col-4">
<b>NE01</b>
</div>
<div class="col-4">
<asp:Label runat="server" ID="lblRatio01" />
</div>
</div>
</div>
<div class="card-body p-1">
<uc1:cmp_orderextlist runat="server" id="cmp_orderExtListNE01" />
</div>
</div>
</div>
<div class="col-6">
<div class="card">
<div class="card-header bg-secondary text-light py-1">
<div class="row">
<div class="col-4">
<asp:Label runat="server" ID="lblTime02" />
</div>
<div class="col-4">
<b>NE02</b>
</div>
<div class="col-4">
<asp:Label runat="server" ID="lblRatio02" />
</div>
</div>
</div>
<div class="card-body p-1">
<uc1:cmp_orderextlist runat="server" id="cmp_orderExtListNE02" />
</div>
</div>
</div>
</div>
</div>
</div>--%>
</div>
+14 -191
View File
@@ -30,189 +30,8 @@ namespace NKC_WF.WebUserControls
{
hfBatchId.Value = value.ToString();
frmView.DataBind();
lblMatDet.Text = "";
lblProdDet.Text = "";
if (memLayer.ML.CRB("enableMongo"))
{
// cerco da lista salvataggi Estim/Nest...
var estimAnsw = ComLib.man.getEstAnsw(value);
var nestAnsw = ComLib.man.getNestAnsw(value);
StringBuilder sbDebug = new StringBuilder();
sbDebug.AppendLine("Debug Info:");
// elenchi x ricerca duplicati
List<int> partListEstim = new List<int>();
List<int> partListEstimDupl = new List<int>();
List<int> partListNest = new List<int>();
List<int> partListNestDupl = new List<int>();
if (estimAnsw != null)
{
try
{
foreach (var part in estimAnsw.PartList)
{
if (partListEstim.Contains(part.PartId))
{
partListEstimDupl.Add(part.PartId);
}
else
{
partListEstim.Add(part.PartId);
}
}
}
catch
{ }
try
{
sbDebug.AppendLine($"ESTIM: EnvNum: {estimAnsw.EnvNum} | Worktime: {estimAnsw.EstimatedWorktime / 60:N2} min | Processing Runtime {estimAnsw.ProcessingRuntime / 60:N2} min | Parts #: {estimAnsw.PartList.Count} | Distinct Part # {partListEstim.Count}");
// se ho duplicati indico:
if (partListEstimDupl.Count > 0)
{
sbDebug.AppendLine("---------------------");
sbDebug.AppendLine($"ESTIM: FOUND {partListEstimDupl.Count} duplicate:");
foreach (var partId in partListEstimDupl)
{
sbDebug.AppendLine($"{partId}");
}
sbDebug.AppendLine("---------------------");
}
}
catch
{ }
}
if (nestAnsw != null)
{
try
{
if (nestAnsw.BunkList != null)
{
foreach (var bunk in nestAnsw.BunkList)
{
foreach (var sheet in bunk.SheetList)
{
foreach (var part in sheet.PartList)
{
if (partListNest.Contains(part.PartId))
{
partListNestDupl.Add(part.PartId);
}
else
{
partListNest.Add(part.PartId);
}
}
}
}
}
}
catch
{ }
int totKit = 0;
try
{
if (nestAnsw.CartList != null)
{
foreach (var cart in nestAnsw.CartList)
{
totKit += cart.KitList.Count;
}
}
}
catch
{ }
//il tot delle part è in bunk > Sheet > part
int totPartNum = 0;
int totSheet = 0;
List<int> materialsList = new List<int>();
double num = 0;
double den = 1;
double currRatio = 0;
List<double> workRatio = new List<double>();
try
{
if (nestAnsw.BunkList != null)
{
foreach (var bunk in nestAnsw.BunkList)
{
totSheet += bunk.SheetList.Count;
foreach (var sheet in bunk.SheetList)
{
totPartNum += sheet.PartList.Count;
num = sheet.SurfaceWork > 0 ? sheet.SurfaceWork : 0;
den = sheet.SurfaceTotal > 0 ? sheet.SurfaceTotal : 1;
currRatio = ratioProt(num, den);
workRatio.Add(currRatio);
if (!materialsList.Contains(sheet.MatId))
{
materialsList.Add(sheet.MatId);
}
}
}
}
}
catch
{ }
try
{
// ordino le medie
workRatio.Sort();
// elimino le + basse quanti materiali ci sono...
workRatio.RemoveRange(0, materialsList.Count);
double avgRatio = workRatio.Average();
double minRatio = workRatio.Min();
double maxRatio = workRatio.Max();
sbDebug.AppendLine($"NEST: EnvNum: {nestAnsw.EnvNum} | Worktime: {nestAnsw.EstimatedWorktime / 60:N2} min | Processing Runtime {nestAnsw.ProcessingRuntime / 60:N2} min");
lblMatDet.Text = $"avg: <b>{avgRatio:P1}</b> (<b>{minRatio:P1}</b> &rarr; <b>{maxRatio:P1}</b>) | {materialsList.Count} materials";
lblProdDet.Text = $"Bunks: <b>{nestAnsw.BunkList.Count}</b> | Sheets: <b>{totSheet}</b> | Carts: <b>{nestAnsw.CartList.Count}</b> | Bins: <b>{nestAnsw.BinList.Count}</b>";
// se ho duplicati indico:
if (partListNestDupl.Count > 0)
{
sbDebug.AppendLine("---------------------");
sbDebug.AppendLine($"NEST: FOUND {partListNestDupl.Count} duplicate:");
foreach (var partId in partListNestDupl)
{
sbDebug.AppendLine($"{partId}");
}
sbDebug.AppendLine("---------------------");
}
// s enon corrispondono
if (partListEstim.Count != partListNest.Count)
{
sbDebug.AppendLine("---------------------");
if (partListEstim.Count > partListNest.Count)
{
sbDebug.AppendLine($"EST OK | NEST missing:");
foreach (var partId in partListEstim)
{
if (!partListNest.Contains(partId))
{
sbDebug.AppendLine($"{partId}");
}
}
}
else
{
sbDebug.AppendLine($"EST missing | NEST OK:");
foreach (var partId in partListNest)
{
if (!partListEstim.Contains(partId))
{
sbDebug.AppendLine($"{partId}");
}
}
}
sbDebug.AppendLine("---------------------");
}
}
catch
{ }
}
if (memLayer.ML.CRS("environment") == "DEV")
{
lblTestJson.Text = "<hr/>" + sbDebug.Replace("\r\n", "<br/>").ToString();
}
}
cmp_batchDetailSplit.BatchId = value;
cmp_batchDetailMongo.BatchId = value;
if (BatchId > 0)
{
fixDisplayDesc();
@@ -245,6 +64,7 @@ namespace NKC_WF.WebUserControls
private void fixDisplayDesc()
{
divSplit.Visible = BatchIsAncestor;
cmp_batchDetailMongo.Visible = !BatchIsAncestor;
}
#endregion Private Methods
@@ -270,6 +90,8 @@ namespace NKC_WF.WebUserControls
/// <param name="e"></param>
protected void lbtResetNest_Click(object sender, EventArgs e)
{
// ri-assegnazione ordini/kit a batch ancestor
DLMan.taOLT.setBatchSplit(BatchId, false);
// registro accettazione Nesting
DLMan.taBL.refuseNesting(BatchId, DLMan.CodSoggCurrUser);
raiseEvent();
@@ -353,15 +175,6 @@ namespace NKC_WF.WebUserControls
#endregion Protected Methods
#region Internal Methods
internal void doUpdate()
{
frmView.DataBind();
}
#endregion Internal Methods
#region Public Methods
/// <summary>
@@ -405,6 +218,16 @@ namespace NKC_WF.WebUserControls
return answ;
}
public void doUpdate()
{
frmView.DataBind();
fixDisplayDesc();
if (divSplit.Visible)
{
cmp_batchDetailSplit.doUpdate();
}
}
#endregion Public Methods
}
}
+2 -20
View File
@@ -42,31 +42,13 @@ namespace NKC_WF.WebUserControls
protected global::System.Web.UI.WebControls.ObjectDataSource ods;
/// <summary>
/// lblMatDet control.
/// cmp_batchDetailMongo 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.Label lblMatDet;
/// <summary>
/// lblProdDet 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.Label lblProdDet;
/// <summary>
/// lblTestJson 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.Label lblTestJson;
protected global::NKC_WF.WebUserControls.cmp_batchDetailMongo cmp_batchDetailMongo;
/// <summary>
/// divSplit control.
@@ -0,0 +1,26 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_batchDetailMongo.ascx.cs" Inherits="NKC_WF.WebUserControls.cmp_batchDetailMongo" %>
<div class="row small text-dark text-left">
<div class='<%: cssSized %>'>
<div class="form-group my-0 row">
<label for="TotalTimeLabel" class="col-4">Mat OEE</label>
<div class="col-8 font-weight-bold">
<asp:Label runat="server" ID="lblMatDet" />
</div>
</div>
</div>
<div class='<%: cssSized %>'>
<div class="form-group my-0 row">
<label for="TotalTimeLabel" class="col-4">Prod</label>
<div class="col-8 font-weight-bold">
<asp:Label runat="server" ID="lblProdDet" />
</div>
</div>
</div>
<div class="col-12">
<asp:Label runat="server" ID="lblTestJson" />
</div>
</div>
<asp:HiddenField ID="hfBatchId" runat="server" />
<asp:HiddenField ID="hfShowInline" runat="server" />
@@ -0,0 +1,271 @@
using AppData;
using SteamWare;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace NKC_WF.WebUserControls
{
public partial class cmp_batchDetailMongo : BaseUserControl
{
#region Public Properties
public int BatchId
{
set
{
hfBatchId.Value = value.ToString();
if (value > 0)
{
updateMongoData(value);
}
}
get
{
int answ = 0;
int.TryParse(hfBatchId.Value, out answ);
return answ;
}
}
public string cssSized
{
get
{
string answ = showInline ? "col-6" : "col-12";
return answ;
}
}
public bool showInline
{
set
{
hfShowInline.Value = value.ToString();
}
get
{
bool answ = false;
bool.TryParse(hfShowInline.Value, out answ);
return answ;
}
}
#endregion Public Properties
#region Private Methods
private void updateMongoData(int value)
{
lblMatDet.Text = "";
lblProdDet.Text = "";
if (memLayer.ML.CRB("enableMongo"))
{
// cerco da lista salvataggi Estim/Nest...
var estimAnsw = ComLib.man.getEstAnsw(value);
var nestAnsw = ComLib.man.getNestAnsw(value);
StringBuilder sbDebug = new StringBuilder();
sbDebug.AppendLine("Debug Info:");
// elenchi x ricerca duplicati
List<int> partListEstim = new List<int>();
List<int> partListEstimDupl = new List<int>();
List<int> partListNest = new List<int>();
List<int> partListNestDupl = new List<int>();
if (estimAnsw != null)
{
try
{
foreach (var part in estimAnsw.PartList)
{
if (partListEstim.Contains(part.PartId))
{
partListEstimDupl.Add(part.PartId);
}
else
{
partListEstim.Add(part.PartId);
}
}
}
catch
{ }
try
{
sbDebug.AppendLine($"ESTIM: EnvNum: {estimAnsw.EnvNum} | Worktime: {estimAnsw.EstimatedWorktime / 60:N2} min | Processing Runtime {estimAnsw.ProcessingRuntime / 60:N2} min | Parts #: {estimAnsw.PartList.Count} | Distinct Part # {partListEstim.Count}");
// se ho duplicati indico:
if (partListEstimDupl.Count > 0)
{
sbDebug.AppendLine("---------------------");
sbDebug.AppendLine($"ESTIM: FOUND {partListEstimDupl.Count} duplicate:");
foreach (var partId in partListEstimDupl)
{
sbDebug.AppendLine($"{partId}");
}
sbDebug.AppendLine("---------------------");
}
}
catch
{ }
}
if (nestAnsw != null)
{
try
{
if (nestAnsw.BunkList != null)
{
foreach (var bunk in nestAnsw.BunkList)
{
foreach (var sheet in bunk.SheetList)
{
foreach (var part in sheet.PartList)
{
if (partListNest.Contains(part.PartId))
{
partListNestDupl.Add(part.PartId);
}
else
{
partListNest.Add(part.PartId);
}
}
}
}
}
}
catch
{ }
int totKit = 0;
try
{
if (nestAnsw.CartList != null)
{
foreach (var cart in nestAnsw.CartList)
{
totKit += cart.KitList.Count;
}
}
}
catch
{ }
//il tot delle part è in bunk > Sheet > part
int totPartNum = 0;
int totSheet = 0;
List<int> materialsList = new List<int>();
double num = 0;
double den = 1;
double currRatio = 0;
List<double> workRatio = new List<double>();
try
{
if (nestAnsw.BunkList != null)
{
foreach (var bunk in nestAnsw.BunkList)
{
totSheet += bunk.SheetList.Count;
foreach (var sheet in bunk.SheetList)
{
totPartNum += sheet.PartList.Count;
num = sheet.SurfaceWork > 0 ? sheet.SurfaceWork : 0;
den = sheet.SurfaceTotal > 0 ? sheet.SurfaceTotal : 1;
currRatio = ratioProt(num, den);
workRatio.Add(currRatio);
if (!materialsList.Contains(sheet.MatId))
{
materialsList.Add(sheet.MatId);
}
}
}
}
}
catch
{ }
try
{
// ordino le medie
workRatio.Sort();
// elimino le + basse quanti materiali ci sono...
workRatio.RemoveRange(0, materialsList.Count);
double avgRatio = workRatio.Average();
double minRatio = workRatio.Min();
double maxRatio = workRatio.Max();
sbDebug.AppendLine($"NEST: EnvNum: {nestAnsw.EnvNum} | Worktime: {nestAnsw.EstimatedWorktime / 60:N2} min | Processing Runtime {nestAnsw.ProcessingRuntime / 60:N2} min");
lblMatDet.Text = $"avg: <b>{avgRatio:P1}</b> (<b>{minRatio:P1}</b> &rarr; <b>{maxRatio:P1}</b>) | {materialsList.Count} materials";
lblProdDet.Text = $"Bunks: <b>{nestAnsw.BunkList.Count}</b> | Sheets: <b>{totSheet}</b> | Carts: <b>{nestAnsw.CartList.Count}</b> | Bins: <b>{nestAnsw.BinList.Count}</b>";
// se ho duplicati indico:
if (partListNestDupl.Count > 0)
{
sbDebug.AppendLine("---------------------");
sbDebug.AppendLine($"NEST: FOUND {partListNestDupl.Count} duplicate:");
foreach (var partId in partListNestDupl)
{
sbDebug.AppendLine($"{partId}");
}
sbDebug.AppendLine("---------------------");
}
// s enon corrispondono
if (partListEstim.Count != partListNest.Count)
{
sbDebug.AppendLine("---------------------");
if (partListEstim.Count > partListNest.Count)
{
sbDebug.AppendLine($"EST OK | NEST missing:");
foreach (var partId in partListEstim)
{
if (!partListNest.Contains(partId))
{
sbDebug.AppendLine($"{partId}");
}
}
}
else
{
sbDebug.AppendLine($"EST missing | NEST OK:");
foreach (var partId in partListNest)
{
if (!partListEstim.Contains(partId))
{
sbDebug.AppendLine($"{partId}");
}
}
}
sbDebug.AppendLine("---------------------");
}
}
catch
{ }
}
if (memLayer.ML.CRS("environment") == "DEV")
{
lblTestJson.Text = "<hr/>" + sbDebug.Replace("\r\n", "<br/>").ToString();
}
}
}
#endregion Private Methods
#region Protected Methods
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// Effettua divisione evitando zeri a den...
/// </summary>
/// <param name="num"></param>
/// <param name="den"></param>
/// <returns></returns>
protected double ratioProt(double num, double den)
{
den = den == 0 ? 1 : den;
return num / den;
}
#endregion Protected Methods
}
}
@@ -0,0 +1,62 @@
//------------------------------------------------------------------------------
// <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 NKC_WF.WebUserControls
{
public partial class cmp_batchDetailMongo
{
/// <summary>
/// lblMatDet 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.Label lblMatDet;
/// <summary>
/// lblProdDet 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.Label lblProdDet;
/// <summary>
/// lblTestJson 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.Label lblTestJson;
/// <summary>
/// hfBatchId 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.HiddenField hfBatchId;
/// <summary>
/// hfShowInline 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.HiddenField hfShowInline;
}
}
@@ -143,9 +143,7 @@ namespace NKC_WF.WebUserControls
if (BatchId > 0)
{
checkCreateDescendant();
showBatchDescendant();
fixChildBatch();
checkDisplayMode();
doUpdate();
}
fixRatio();
}
@@ -390,5 +388,16 @@ namespace NKC_WF.WebUserControls
}
#endregion Protected Methods
#region Public Methods
public void doUpdate()
{
showBatchDescendant();
fixChildBatch();
checkDisplayMode();
}
#endregion Public Methods
}
}
@@ -1,4 +1,5 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_batchDetailSplitInfo.ascx.cs" Inherits="NKC_WF.WebUserControls.cmp_batchDetailSplitInfo" %>
<%@ Register Src="~/WebUserControls/cmp_batchDetailMongo.ascx" TagPrefix="uc1" TagName="cmp_batchDetailMongo" %>
<asp:HiddenField runat="server" ID="hfBatchId" />
@@ -13,6 +14,10 @@
</div>
</div>
<div class="row textCondens">
<div class="col-4 text-right">
<asp:HyperLink runat="server" ID="hlShowErr" NavigateUrl='<%# $"../site/ErrorsLog?PUID=B.{Eval("BatchID")}" %>' CssClass="text-warning" Visible='<%# Eval("NumErrPre").ToString()!="0" %>' Target="_blank" ToolTip="Show errors"><i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <%# $"{Eval("Errors")} (tot: {Eval("NumErrPre")} err)" %></asp:HyperLink>
<asp:HyperLink runat="server" ID="HyperLink1" NavigateUrl='<%# $"../site/ErrorsLog?PUID={Eval("EnvNum")}" %>' CssClass="text-danger" Visible='<%# Eval("NumErr").ToString()!="0" %>' Target="_blank" ToolTip="Show errors"><i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <%# $"{Eval("Errors")} (tot: {Eval("NumErr")} err)" %></asp:HyperLink>
</div>
<div class="col-8 text-left">
<div class="d-flex">
<div class="px-2 flex-grow-1">
@@ -25,13 +30,15 @@
</div>
</div>
</div>
<div class="col-4 text-right">
<asp:HyperLink runat="server" ID="hlShowErr" NavigateUrl='<%# $"../site/ErrorsLog?PUID=B.{Eval("BatchID")}" %>' CssClass="text-warning" Visible='<%# Eval("NumErrPre").ToString()!="0" %>' Target="_blank" ToolTip="Show errors"><i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <%# $"{Eval("Errors")} (tot: {Eval("NumErrPre")} err)" %></asp:HyperLink>
<asp:HyperLink runat="server" ID="HyperLink1" NavigateUrl='<%# $"../site/ErrorsLog?PUID={Eval("EnvNum")}" %>' CssClass="text-danger" Visible='<%# Eval("NumErr").ToString()!="0" %>' Target="_blank" ToolTip="Show errors"><i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <%# $"{Eval("Errors")} (tot: {Eval("NumErr")} err)" %></asp:HyperLink>
</div>
</div>
</ItemTemplate>
</asp:FormView>
<div class="row table-info">
<div class="col-12">
<uc1:cmp_batchDetailMongo runat="server" ID="cmp_batchDetailMongo" showInline="false" />
</div>
</div>
<asp:HiddenField ID="hfDeleteEnabled" runat="server" />
<asp:ObjectDataSource ID="ods" runat="server" SelectMethod="getByKey" TypeName="AppData.DS_AppTableAdapters.BatchListTableAdapter" FilterExpression="Status <> 5">
<SelectParameters>
@@ -17,6 +17,8 @@ namespace NKC_WF.WebUserControls
set
{
hfBatchId.Value = value.ToString();
frmView.DataBind();
cmp_batchDetailMongo.BatchId = value;
}
get
{
@@ -32,6 +32,15 @@ namespace NKC_WF.WebUserControls
/// </remarks>
protected global::System.Web.UI.WebControls.FormView frmView;
/// <summary>
/// cmp_batchDetailMongo control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::NKC_WF.WebUserControls.cmp_batchDetailMongo cmp_batchDetailMongo;
/// <summary>
/// hfDeleteEnabled control.
/// </summary>
+2 -2
View File
@@ -9,7 +9,7 @@
<uc1:cmp_batchDetail runat="server" ID="cmp_batchDetail" />
<asp:HiddenField runat="server" ID="hfLastSelRow" />
</div>
<div class="col-12">
<div class="col-12 px-0">
<div class="row">
<div class="col-4">
<b class="text-uppercase"><%: traduci("CallList") %></b>
@@ -45,7 +45,7 @@
<asp:UpdatePanel ID="updPanelGrView" runat="server">
<ContentTemplate>
<div class="row">
<div class="col-12 textCondens">
<div class="col-12 textCondens px-0">
<asp:GridView ID="grView" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="BatchID" DataSourceID="ods" CssClass="table table-sm table-striped" AllowSorting="True" OnSelectedIndexChanged="grView_SelectedIndexChanged" OnPageIndexChanged="grView_PageIndexChanged">
<HeaderStyle CssClass="default" />
<PagerStyle CssClass="active GridPager" />
@@ -169,7 +169,9 @@ namespace NKC_WF.WebUserControls
divDetail.Visible = currSelRow >= 0;
lastSelRow = currSelRow;
// recupero BatchId selezionato
cmp_batchDetail.BatchId = 0;
cmp_batchDetail.BatchId = BatchIdSel;
cmp_batchDetail.doUpdate();
updPanelDetail.Update();
}
+41 -45
View File
@@ -1,52 +1,48 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_menuTop.ascx.cs" Inherits="NKC_WF.WebUserControls.cmp_menuTop" %>
<asp:HiddenField runat="server" ID="hfAnonym" />
<nav class="navbar navbar-expand-lg navbar-dark bg-dark text-light py-1 mb-1">
<%--<asp:LinkButton runat="server" ID="lbnUpdate" Text="---" OnClick="lbnUpdate_Click" CssClass="navbar-brand" ToolTip="HOME">Sauder NKC <i class="fa fa-object-group" aria-hidden="true"></i></asp:LinkButton>--%>
<a class="navbar-brand" href="../">Sauder NKC <i class="fa fa-object-group" aria-hidden="true"></i></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<nav class="navbar navbar-expand-lg navbar-dark bg-primary text-light py-1 mb-1">
<a class="navbar-brand" href="../">Sauder NKC <i class="fa fa-object-group" aria-hidden="true"></i></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<asp:Repeater ID="menu" runat="server" DataSourceID="XmlMenu">
<ItemTemplate>
<li class="nav-item dropdown">
<a href='<%# XPath("@url").ToString().Replace("~/","") %>' class="nav-link dropdown-toggle text-light bg-dark" data-toggle="dropdown">
<i class='<%# XPath("@description")%>'></i>
<%# XPath("@title")%>
<b class="caret"></b>
</a>
<div class="dropdown-menu">
<asp:Repeater ID="voci" runat="server" DataSource='<%# XPathSelect("voce") %>'>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<asp:Repeater ID="menu" runat="server" DataSourceID="XmlMenu">
<ItemTemplate>
<a href='<%# XPath("@url").ToString().Replace("~/","")%>' class="dropdown-item py-0">
<i class='<%# XPath("@description")%>'></i>
<%# XPath("@title")%>
</a>
<li class="nav-item dropdown">
<a href='<%# XPath("@url").ToString().Replace("~/","") %>' class="nav-link dropdown-toggle text-light" data-toggle="dropdown">
<i class='<%# XPath("@description")%>'></i>
<%# XPath("@title")%>
<b class="caret"></b>
</a>
<div class="dropdown-menu">
<asp:Repeater ID="voci" runat="server" DataSource='<%# XPathSelect("voce") %>'>
<ItemTemplate>
<a href='<%# XPath("@url").ToString().Replace("~/","")%>' class="dropdown-item py-0">
<i class='<%# XPath("@description")%>'></i>
<%# XPath("@title")%>
</a>
</ItemTemplate>
</asp:Repeater>
</div>
</li>
</ItemTemplate>
</asp:Repeater>
</div>
</li>
</ItemTemplate>
<SeparatorTemplate>
</SeparatorTemplate>
</asp:Repeater>
<asp:XmlDataSource ID="XmlMenu" runat="server" enablecaching="True" cacheduration="5"></asp:XmlDataSource>
<%--<li class="nav-item">
<a class="nav-link text-light" href="ForceReload"><i class="fa fa-retweet shortcut-icon"></i> <%: traduci("ForceReload") %></a>
</li>--%>
<li class="nav-item">
<a class="nav-link text-light" href="About"><i class="fa fa-dot-circle-o" aria-hidden="true"></i> <%: traduci ("About") %></a>
</li>
<li class="nav-item">
<a class="nav-link text-light" href="Contact"><i class="fa fa-handshake-o" aria-hidden="true"></i> <%: traduci ("Contacts") %></a>
</li>
</ul>
<div runat="server" id="divSearch" class="form-inline my-2 my-lg-0">
<asp:TextBox runat="server" ID="txtSearch" class="form-control mr-sm-2" type="search" placeholder="[S]earch" aria-label="Search" AutoPostBack="true" OnTextChanged="txtSearch_TextChanged" AccessKey="S" />
<asp:LinkButton runat="server" ID="lbtSearch" class="btn btn-secondary my-2 my-sm-0" type="submit" OnClick="lbtSearch_Click"># <%: traduci ("Search") %> <i class="fa fa-search" aria-hidden="true"></i></asp:LinkButton>
<SeparatorTemplate>
</SeparatorTemplate>
</asp:Repeater>
<asp:XmlDataSource ID="XmlMenu" runat="server" EnableCaching="True" CacheDuration="5"></asp:XmlDataSource>
<li class="nav-item">
<a class="nav-link text-light" href="About"><i class="fa fa-dot-circle-o" aria-hidden="true"></i>&nbsp;<%: traduci ("About") %></a>
</li>
<li class="nav-item">
<a class="nav-link text-light" href="Contact"><i class="fa fa-handshake-o" aria-hidden="true"></i>&nbsp;<%: traduci ("Contacts") %></a>
</li>
</ul>
<div runat="server" id="divSearch" class="form-inline my-2 my-lg-0">
<asp:TextBox runat="server" ID="txtSearch" class="form-control mr-sm-2" type="search" placeholder="[S]earch" aria-label="Search" AutoPostBack="true" OnTextChanged="txtSearch_TextChanged" AccessKey="S" />
<asp:LinkButton runat="server" ID="lbtSearch" class="btn btn-secondary my-2 my-sm-0" type="submit" OnClick="lbtSearch_Click"># <%: traduci ("Search") %> <i class="fa fa-search" aria-hidden="true"></i></asp:LinkButton>
</div>
</div>
</div>
</nav>
</nav>
+23 -23
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 NKC_WF.WebUserControls
@@ -15,56 +15,56 @@ namespace NKC_WF.WebUserControls
{
/// <summary>
/// Controllo hfAnonym.
/// hfAnonym 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 hfAnonym;
/// <summary>
/// Controllo menu.
/// menu 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.Repeater menu;
/// <summary>
/// Controllo XmlMenu.
/// XmlMenu 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.XmlDataSource XmlMenu;
/// <summary>
/// Controllo divSearch.
/// divSearch 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.HtmlControls.HtmlGenericControl divSearch;
/// <summary>
/// Controllo txtSearch.
/// txtSearch 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 txtSearch;
/// <summary>
/// Controllo lbtSearch.
/// lbtSearch 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.LinkButton lbtSearch;
}
+2 -2
View File
@@ -4,7 +4,7 @@
<div class="container mt-2">
<div class="card">
<div class="card-header">
<h2><%: Title %> NKC</h2>
<h2><%: Title %> NKC.2</h2>
</div>
<div class="card-body">
<p class="lead"><%: traduci("NkcPresentationText") %></p>
@@ -14,4 +14,4 @@
</div>
</div>
</div>
</asp:Content>
</asp:Content>
+11 -9
View File
@@ -1,15 +1,17 @@
//------------------------------------------------------------------------------
// <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 NKC_WF {
public partial class About {
namespace NKC_WF
{
public partial class About
{
}
}
+13 -29
View File
@@ -8,40 +8,24 @@
</div>
<div class="card-body">
<div class="row">
<div class="col-12 col-md-4">
<asp:Image runat="server" CssClass="img-fluid" Height="64" ImageUrl="~/Images/LogoEgaltech.png" />
<address>
<b>Egaltech srl</b><br />
<hr />
Via Cremasca 24<br />
24052 Azzano San Paolo<br />
Bergamo Italy<br />
<abbr title="Phone"><i class="fa fa-phone" aria-hidden="true"></i></abbr>
+39 035-0444806
</address>
<address>
<i class="fa fa-envelope-o" aria-hidden="true"></i> <a href="mailto:info@egaltech.com">info@egaltech.com</a>
</address>
<div class="col-12 col-md-6">
<asp:Image runat="server" CssClass="img-fluid" Height="128" ImageUrl="~/Images/LogoEgalware.png" />
</div>
<div class="col-md-4"></div>
<div class="col-12 col-md-4 text-right">
<asp:Image runat="server" CssClass="img-fluid" Height="64" ImageUrl="~/Images/LogoSteamware.png" />
<div class="col-12 col-md-6 text-right">
<address>
<b>Steamware srl</b><br />
<hr />
via Nazionale 93<br />
24068 Seriate<br />
Bergamo Italy<br />
<abbr title="Phone"><i class="fa fa-phone" aria-hidden="true"></i></abbr>
+39 035-460560
</address>
<address>
<i class="fa fa-envelope-o" aria-hidden="true"></i> <a href="mailto:info@steamware.net">info@steamware.net</a>
<h3>Egalware srl</h3>
<div class="small">
via Nazionale 93<br />
24068 Seriate<br />
Bergamo Italy<br />
<abbr title="Phone"><i class="fa fa-phone" aria-hidden="true"></i></abbr>
+39 035-460560<br />
<i class="fa fa-envelope-o" aria-hidden="true"></i><a href="mailto:info@egalware.com">info@egalware.com</a>
</div>
</address>
</div>
</div>
</div>
</div>
</div>
</asp:Content>
</asp:Content>
+5 -5
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 NKC_WF