TM.S640Communication as in 2.27 branch (EnterSerialNumbers, 40 wms), DataEntry.iPerl with Direction and Orders enum parameters.

This commit is contained in:
Milan Hanajik
2021-11-10 09:40:56 +01:00
parent 0f5c4b083d
commit 44fc7b92fd
22 changed files with 4609 additions and 1295 deletions
+104 -20
View File
@@ -1,11 +1,14 @@
///
/// Copyright (c) 2015 Sensus Metering Systems
/// Copyright (c) 2015-2021 Sensus Slovensko a.s.
///
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using log4net;
using Common;
using TBF.Rig.Sequences;
using TBF.Rig.Output.DB.SensusOracle;
using TBF.Resources;
using System.Drawing;
@@ -17,7 +20,10 @@ namespace TBF.Rig.DataEntry.iPerl
/// <summary> Number of water meters </summary>
public readonly int WaterMetersCount;
public readonly bool reversedDirection;
readonly EntryFormCfg cfg;
/// Loaded from database beforethe form is open
IList<OrderDetails> listOfOrders;
/// To be retrieved after the form is closed
public string PurchaseOrder;
@@ -44,11 +50,11 @@ namespace TBF.Rig.DataEntry.iPerl
/// Constructor
/// </summary>
/// <param name="waterMetersCount">Number of text boxes for serial numbers</param>
public CycleBeginningForm(int waterMetersCount, bool reversedDirection)
public CycleBeginningForm(int waterMetersCount, EntryFormCfg cfg)
: this()
{
this.WaterMetersCount = waterMetersCount;
this.reversedDirection = reversedDirection;
this.cfg = cfg;
SNText = null;
Disabled = null;
}
@@ -58,8 +64,87 @@ namespace TBF.Rig.DataEntry.iPerl
{
Text = Strings.Data;
orderGroupBox.Text = Strings.Purchase_order;
okButton.Text = Strings.OkBtnText;
PrepareOrderCombo(orderComboBox);
okButton.Text = Strings.OkBtnText;
listOfOrders = ((cfg.Orders == Orders.FromOracle || cfg.Orders == Orders.CombinedAndFromOracle) && ProcessData.OracleDB != null)
? ProcessData.OracleDB.ReadOrderNumbers()
: new List<OrderDetails>();
string insertFirst = null;
if (Program.LocalSettings.PurchaseOrderHistoryCount > 0)
{
foreach (var o in listOfOrders)
{
if (o.AuftragsNummer == Program.LocalSettings.PurchaseOrderHistory[0])
{
insertFirst = o.AuftragsNummer;
break;
}
}
}
switch (cfg.Orders)
{
case Orders.Arbitrary:
PrepareOrderCombo(orderComboBox);
break;
case Orders.FromOracle:
if (insertFirst != null)
{
orderComboBox.Items.Add(insertFirst);
orderComboBox.Text = insertFirst;
}
foreach (var o in listOfOrders)
if (o.AuftragsNummer != insertFirst)
orderComboBox.Items.Add(o.AuftragsNummer);
break;
case Orders.CombinedAndFromOracle:
if (insertFirst != null)
{
orderComboBox.Items.Add(insertFirst);
orderComboBox.Text = insertFirst;
}
orderComboBox.Items.Add("BBAAMMXX");
orderComboBox.Items.Add("BBAAOMXX");
orderComboBox.Items.Add("BBAAQMXX");
orderComboBox.Items.Add("BBAATMFR");
orderComboBox.Items.Add("BBAATMXX");
orderComboBox.Items.Add("CCAAMMXX");
orderComboBox.Items.Add("CCAAOMXX");
orderComboBox.Items.Add("CCAAQMXX");
orderComboBox.Items.Add("CCAATMFR");
orderComboBox.Items.Add("CCAATMXX");
orderComboBox.Items.Add("DDAAMMXX");
orderComboBox.Items.Add("DDAAOMXX");
orderComboBox.Items.Add("DDAAQMXX");
orderComboBox.Items.Add("DDAATMXX");
orderComboBox.Items.Add("DEAAMMXX");
orderComboBox.Items.Add("DEAAOMXX");
orderComboBox.Items.Add("DEAAQMXX");
orderComboBox.Items.Add("DEAATMXX");
orderComboBox.Items.Add("EEAAMMXX");
orderComboBox.Items.Add("EEAAOMXX");
orderComboBox.Items.Add("EEAAQMXX");
orderComboBox.Items.Add("EEAATMFR");
orderComboBox.Items.Add("EEAATMXX");
orderComboBox.Items.Add("FFAAMMXX");
orderComboBox.Items.Add("FFAAOMXX");
orderComboBox.Items.Add("FFAAQMXX");
orderComboBox.Items.Add("FFAATMFR");
orderComboBox.Items.Add("FFAATMXX");
orderComboBox.Items.Add("GFAAMMXX");
orderComboBox.Items.Add("GFAAOMXX");
orderComboBox.Items.Add("GFAAQMXX");
orderComboBox.Items.Add("GFAATMXX");
foreach (var o in listOfOrders)
if (o.AuftragsNummer != insertFirst)
orderComboBox.Items.Add(o.AuftragsNummer);
break;
}
///
/// Draw an appropriate test bench picture
@@ -67,12 +152,12 @@ namespace TBF.Rig.DataEntry.iPerl
Side side = (TBF.Rig.Sequences.ProcessData.BenchInfo is DataContainer.iPerlBenchInfo.Component)
? (TBF.Rig.Sequences.ProcessData.BenchInfo as DataContainer.iPerlBenchInfo.Component).Side
: Side.Left;
if (reversedDirection && (side == Side.Left))
if ((cfg.Direction == Direction.Reversed_LR) && (side == Side.Left))
{
/// direction L->R (reversed), left side
pictureBox.Image = Image.FromFile(string.Format("{0}\\Pictures\\reversed_dir_left.jpg", Program.ExecutableDir, true));
}
else if (reversedDirection && (side == Side.Right))
else if ((cfg.Direction == Direction.Reversed_LR) && (side == Side.Right))
{
/// direction L->R (reversed), right side
pictureBox.Image = Image.FromFile(string.Format("{0}\\Pictures\\reversed_dir_right.jpg", Program.ExecutableDir, true));
@@ -106,24 +191,23 @@ namespace TBF.Rig.DataEntry.iPerl
}
}
private void okButton_Click(object sender, EventArgs e)
{
if (orderComboBox.Text.Length > 8)
if (orderComboBox.Text.Length > 8 ||
(cfg.Orders != Orders.Arbitrary && !orderComboBox.Items.Contains(orderComboBox.Text)))
{
MessageBox.Show(string.Format(Strings.Purchase_order_may_have_max_N_characters, 8),
Strings.Error,
MessageBoxButtons.OK,
MessageBox.Show(Strings.Invalid_order_number, Strings.Error, MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
return;
}
else
{
PurchaseOrder = orderComboBox.Text;
Program.LocalSettings.UpdateHistory(orderComboBox.Text, ref Program.LocalSettings.PurchaseOrderHistory);
completed = true;
Close();
}
ProcessData.OrderDetails = (listOfOrders == null) ? null : listOfOrders.FirstOrDefault<OrderDetails>(x => x.AuftragsNummer == orderComboBox.Text);
PurchaseOrder = orderComboBox.Text;
Program.LocalSettings.UpdateHistory(orderComboBox.Text, ref Program.LocalSettings.PurchaseOrderHistory);
completed = true;
Close();
}