diff --git a/Results/Entities/WaterMeter.cs b/Results/Entities/WaterMeter.cs
index 8c8a47a36..bfa8ca96d 100644
--- a/Results/Entities/WaterMeter.cs
+++ b/Results/Entities/WaterMeter.cs
@@ -44,8 +44,9 @@ namespace Results.Entities
{
public virtual int Id { get; protected set; }
public virtual string SerialNr { get; set; } /// S/N _or_ S/N of the main meter of a compound meter _or_ PCB Number of an iPerl water meter
- public virtual string SerialNrAux { get; set; } /// S/N of the aux. meter of a compound meter _or_ a complete assigned S/N of an iPerl water meter
- public virtual string PurchaseOrder { get; set; }
+ public virtual string SerialNrAux { get; set; } /// S/N of the aux. meter of a compound meter _or_ eRegister PCB Number of a 640 water meter
+ public virtual string RadioAddress { get; set; }
+ public virtual string PurchaseOrder { get; set; }
public virtual int YearOfProduction { get; set; }
public virtual int WMPosition { get; set; } /// 1-based water meter position
public virtual string EndState { get; set; } /// End state (of the main water meter)
@@ -77,7 +78,6 @@ namespace Results.Entities
///
/// Data from a production test bench (in case of tests on iPerl special)
///
- public virtual string RadioAddress { get; set; }
public virtual int PaletteNr { get; set; }
public virtual int UmkartonNr { get; set; }
public virtual string ProdTestBench { get; set; }
@@ -97,6 +97,7 @@ namespace Results.Entities
public virtual string Prefix { get; set; }
public virtual string Suffix { get; set; }
public virtual string CompleteSerialNr { get; set; }
+ public virtual string OriRadioAddress { get; set; } /// Not mapped to DB !!! Original radio address of a 640 water meter (albatrosID)
public virtual int WMTypeRevision { get; set; }
public virtual int Pruefindex { get; set; } /// >= 1 ... pruefindex
public virtual int HydrPruefung { get; set; }
diff --git a/Results/ItemID.cs b/Results/ItemID.cs
index ec3cde273..e91e5e8ea 100644
--- a/Results/ItemID.cs
+++ b/Results/ItemID.cs
@@ -332,6 +332,18 @@ namespace Results
Diverter, /// 281
RegValve, /// 282
+ X1, /// 283
+ X2, /// 284
+ X3, /// 285
+ X4, /// 286
+ X5, /// 287
+ X6, /// 288
+ X7, /// 289
+ X8, /// 290
+ X9, /// 291
+
+ RadioAddress, /// 292
+
Count,
}
}
diff --git a/Results/Mappings/WaterMeterMap.cs b/Results/Mappings/WaterMeterMap.cs
index f6af4fa25..e2994a0ff 100644
--- a/Results/Mappings/WaterMeterMap.cs
+++ b/Results/Mappings/WaterMeterMap.cs
@@ -13,7 +13,8 @@ namespace Results.Mappings
Id(x => x.Id);
Map(x => x.SerialNr);
Map(x => x.SerialNrAux);
- Map(x => x.PurchaseOrder);
+ Map(x => x.RadioAddress);
+ Map(x => x.PurchaseOrder);
Map(x => x.YearOfProduction);
Map(x => x.WMPosition);
Map(x => x.EndState);
@@ -43,7 +44,6 @@ namespace Results.Mappings
Map(x => x.FWVersion);
#endif
#if TURA_SPECIAL
- Map(x => x.RadioAddress);
Map(x => x.PaletteNr);
Map(x => x.UmkartonNr);
Map(x => x.ProdTestBench);
@@ -60,6 +60,7 @@ namespace Results.Mappings
Map(x => x.Prefix);
Map(x => x.Suffix);
Map(x => x.CompleteSerialNr);
+ Map(x => x.OriRadioAddress);
Map(x => x.Pruefindex);
Map(x => x.HydrPruefung);
Map(x => x.WMTypeRevision);
diff --git a/Results/Properties/AssemblyInfo.cs b/Results/Properties/AssemblyInfo.cs
index f264ea963..32eb71bb9 100644
--- a/Results/Properties/AssemblyInfo.cs
+++ b/Results/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("3.1.1464.0")]
-[assembly: AssemblyFileVersion("3.1.1464.0")]
+[assembly: AssemblyVersion("3.1.1800.0")]
+[assembly: AssemblyFileVersion("3.1.1800.0")]
diff --git a/Results/Resources/Strings.Designer.cs b/Results/Resources/Strings.Designer.cs
index e90261970..8ba3c5c88 100644
--- a/Results/Resources/Strings.Designer.cs
+++ b/Results/Resources/Strings.Designer.cs
@@ -906,6 +906,15 @@ namespace Results.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Radio address.
+ ///
+ internal static string Radio_address {
+ get {
+ return ResourceManager.GetString("Radio_address", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Ref.pulses.
///
@@ -1581,6 +1590,15 @@ namespace Results.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Radio address of the meter.
+ ///
+ internal static string Tooltip_RA {
+ get {
+ return ResourceManager.GetString("Tooltip_RA", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Calculated density of water from table or formula at water density calibration temperature (r).
///
diff --git a/Results/Resources/Strings.resx b/Results/Resources/Strings.resx
index 47e9adeeb..b4cf4921d 100644
--- a/Results/Resources/Strings.resx
+++ b/Results/Resources/Strings.resx
@@ -831,4 +831,10 @@
Info flags
+
+ Radio address
+
+
+ Radio address of the meter
+
\ No newline at end of file
diff --git a/Results/WMeterRsltItemSpec.cs b/Results/WMeterRsltItemSpec.cs
index dd6019b1c..e76ea9124 100644
--- a/Results/WMeterRsltItemSpec.cs
+++ b/Results/WMeterRsltItemSpec.cs
@@ -366,11 +366,12 @@ namespace Results
AllItems.Add(new WMeterRsltItemSpec(ItemID.Text5, "Text5", Quantity.String, ItemCategory.MeterData, (w, t, u, f, p) => FormatStr(f, w.WaterMeterData.Text5)));
/// Water meters results
- AllItems.Add(new WMeterRsltItemSpec(ItemID.Serial_Nr, Strings.sn, Strings.Tooltip_sn, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.SerialNr)));
- AllItems.Add(new WMeterRsltItemSpec(ItemID.Purchase_order, Strings.PO, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, w.PurchaseOrder)));
- AllItems.Add(new WMeterRsltItemSpec(ItemID.Year_of_production, Strings.Year, Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => FormatInt(f, w.YearOfProduction)));
- AllItems.Add(new WMeterRsltItemSpec(ItemID.WM_Position, Strings.Pos, Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => FormatInt(f, w.WMPosition)));
- AllItems.Add(new WMeterRsltItemSpec(ItemID.Formatted_WM_ID, "Formatted WM ID", Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => string.IsNullOrEmpty(f) ? string.Format("{0}-{1}", w.BatchNr(), w.WMPosition) : string.Format(f, w.StartTime(), w.EndTime(), w.BatchNr(), w.WMPosition, w.SerialNr)));
+ AllItems.Add(new WMeterRsltItemSpec(ItemID.Serial_Nr, Strings.sn, Strings.Tooltip_sn, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.SerialNr)));
+ AllItems.Add(new WMeterRsltItemSpec(ItemID.RadioAddress, Strings.Radio_address, Strings.Tooltip_RA, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.RadioAddress)));
+ AllItems.Add(new WMeterRsltItemSpec(ItemID.Purchase_order, Strings.PO, Quantity.String, ItemCategory.Other, (w, t, u, f, p) => FormatStr(f, w.PurchaseOrder)));
+ AllItems.Add(new WMeterRsltItemSpec(ItemID.Year_of_production, Strings.Year, Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => FormatInt(f, w.YearOfProduction)));
+ AllItems.Add(new WMeterRsltItemSpec(ItemID.WM_Position, Strings.Pos, Quantity.Number, ItemCategory.Other, (w, t, u, f, p) => FormatInt(f, w.WMPosition)));
+ AllItems.Add(new WMeterRsltItemSpec(ItemID.Formatted_WM_ID, "Formatted WM ID", Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => string.IsNullOrEmpty(f) ? string.Format("{0}-{1}", w.BatchNr(), w.WMPosition) : string.Format(f, w.StartTime(), w.EndTime(), w.BatchNr(), w.WMPosition, w.SerialNr)));
/// Water meters results (single)
AllItems.Add(new WMeterRsltItemSpec(ItemID.End_state, Strings.End_state, Quantity.String, ItemCategory.MeterResult, (w, t, u, f, p) => FormatStr(f, w.EndState)));
diff --git a/ResultsBrowser/Properties/AssemblyInfo.cs b/ResultsBrowser/Properties/AssemblyInfo.cs
index dd20080cc..6673ee1ea 100644
--- a/ResultsBrowser/Properties/AssemblyInfo.cs
+++ b/ResultsBrowser/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("3.1.1464.0")]
-[assembly: AssemblyFileVersion("3.1.1464.0")]
+[assembly: AssemblyVersion("3.1.1800.0")]
+[assembly: AssemblyFileVersion("3.1.1800.0")]
diff --git a/TBF/Properties/AssemblyInfo.cs b/TBF/Properties/AssemblyInfo.cs
index bafeee88e..bc5d14f47 100644
--- a/TBF/Properties/AssemblyInfo.cs
+++ b/TBF/Properties/AssemblyInfo.cs
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
-[assembly: AssemblyVersion("3.1.1795.0")]
-[assembly: AssemblyFileVersion("3.1.1795.0")]
+[assembly: AssemblyVersion("3.1.1800.0")]
+[assembly: AssemblyFileVersion("3.1.1800.0")]
diff --git a/TBF/Rig/Output/DB/SensusOracle/Database.cs b/TBF/Rig/Output/DB/SensusOracle/Database.cs
index 5c576e4b0..fcbd3f0de 100644
--- a/TBF/Rig/Output/DB/SensusOracle/Database.cs
+++ b/TBF/Rig/Output/DB/SensusOracle/Database.cs
@@ -235,9 +235,10 @@ namespace TBF.Rig.Output.DB.SensusOracle
cmd = new OracleCommand("SELECT pruefungsnr, q_soll, pruefzeit, posfehlerkalt, negfehlerkalt, pruefbereichmin, pruefbereichmax, qbezeichnung " +
"FROM vt_pruefpunkt_soll_sd " +
- "WHERE anbid=4 AND id_wztyp=:1 AND rev_wztyp=:2", conn);
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeId }); ///:1
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeRevision }); ///:2
+ "WHERE anbid=:1 AND id_wztyp=:2 AND rev_wztyp=:3", conn);
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer }); ///:1
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeId }); ///:2
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeRevision }); ///:3
///
dr = cmd.ExecuteReader();
while (dr.Read())
@@ -373,7 +374,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
{
log.WarnFormat("{0} : Run() : currentOp = {1}", Name, currentOpState);
#if ORACLE_DB
- if (WriteResultsToDB(SelectedDB, batch, false) == Retv.Error) anyError = true;
+ if (WriteResultsToDB(SelectedDB, batch, WMKind, false) == Retv.Error) anyError = true;
#endif
}
opCompleted = true;
@@ -700,7 +701,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
}
- public Retv WriteResultsToDB(OracleConnection conn, Results.Entities.Batch batch, bool safeMode)
+ public Retv WriteResultsToDB(OracleConnection conn, Results.Entities.Batch batch, WMKind wmKind, bool safeMode)
{
OracleTransaction transaction;
@@ -722,7 +723,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
SaveBatchData(conn, batch);
foreach (var wMtr in batch.WaterMeters)
{
- if (WMKind == WMKind.iPERL)
+ if (wmKind == WMKind.iPERL)
{
if ((wMtr.ErrorFlags & ((int)ErrorFlagMask.E26 | (int)ErrorFlagMask.E27 | (int)ErrorFlagMask.E28)) == 0)
{
@@ -730,7 +731,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
SaveIperlToDB(conn, wMtr, safeMode);
}
}
- else if (WMKind == WMKind.Mechanical)
+ else if (wmKind == WMKind.Mechanical)
{
SaveMechanicalMeterToDB(conn, wMtr, safeMode);
}
@@ -862,7 +863,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
"VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17)", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 18000 + b.TestBenchId });
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.TestBenchGroupId + b.TestBenchId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = b.BatchNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = b.WaterMeters[0].WaterMeterData.WMTypeId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeRevision });
@@ -907,7 +908,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
"VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19, :20, :21, :22, :23)", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 18000 + b.TestBenchId });
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.TestBenchGroupId + b.TestBenchId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = b.BatchNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = testInfo.PruefungsNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Units.ConvertTo(Unit.l, tr.VolumeCTV) });
@@ -939,7 +940,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
"VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19, :20, :21, :22, :23)", conn);
OracleParameter parm;
parm = new OracleParameter("ANBID", OracleDbType.Int32); parm.Value = Anbid_Producer; cmd2.Parameters.Add(parm); ///:1
- parm = new OracleParameter("ID_Pruefstand", OracleDbType.Int32); parm.Value = 18000 + b.TestBenchId; cmd2.Parameters.Add(parm); ///:2
+ parm = new OracleParameter("ID_Pruefstand", OracleDbType.Int32); parm.Value = dbCfg.TestBenchGroupId + b.TestBenchId; cmd2.Parameters.Add(parm); ///:2
parm = new OracleParameter("ID_WzPruefreihe", OracleDbType.Int32); parm.Value = b.BatchNr; cmd2.Parameters.Add(parm); ///:3
parm = new OracleParameter("PruefungsNr", OracleDbType.Int32); parm.Value = testInfo.PruefungsNrDB; cmd2.Parameters.Add(parm); ///:4
///
@@ -967,12 +968,12 @@ namespace TBF.Rig.Output.DB.SensusOracle
parm = new OracleParameter("EndGewicht", OracleDbType.Double); parm.Value = Units.ConvertTo(Unit.kg, tr.MassEnd); cmd2.Parameters.Add(parm); ///:23
///
cmd2.ExecuteNonQuery(); /// Returns nr. of updated rows
- log.InfoFormat("VT_PRUEFDURCHFLUSS_PD inserted ({0}, {1}, {2}, {3}, {4} ...)", Anbid_Producer, 18000 + b.TestBenchId, b.BatchNr, testInfo.PruefungsNrDB, Q_ist);
+ log.InfoFormat("VT_PRUEFDURCHFLUSS_PD inserted ({0}, {1}, {2}, {3}, {4} ...)", Anbid_Producer, dbCfg.TestBenchGroupId + b.TestBenchId, b.BatchNr, testInfo.PruefungsNrDB, Q_ist);
#endif
}
else
{
- log.WarnFormat("SIM: VT_PRUEFDURCHFLUSS_PD inserted ({0}, {1}, {2}, {3}, {4} ...)", Anbid_Producer, 18000 + b.TestBenchId, b.BatchNr, testInfo.PruefungsNrDB, Q_ist);
+ log.WarnFormat("SIM: VT_PRUEFDURCHFLUSS_PD inserted ({0}, {1}, {2}, {3}, {4} ...)", Anbid_Producer, dbCfg.TestBenchGroupId + b.TestBenchId, b.BatchNr, testInfo.PruefungsNrDB, Q_ist);
}
}
}
@@ -1021,7 +1022,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
void SaveOrUpdateIperl(OracleConnection conn, Results.Entities.WaterMeter wm, int max_Pruefindex, int hydr_Pruefung)
{
int sekundaere_Adr = wm.Passed ? 1 : 0;
- int idBenutzer = 6; // = wm.Batch.UserNumber;
+ int idBenutzer = (Anbid_Producer == 4) ? 6 : 365; /// TODO: wm.Batch.UserNumber;
if (dbCfg.DebugLevel == DebugMode.Normal)
{
@@ -1091,7 +1092,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 18000 + wm.Batch.TestBenchId });
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.TestBenchGroupId + wm.Batch.TestBenchId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.Batch.BatchNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung });
#if IPERL
@@ -1228,65 +1229,80 @@ namespace TBF.Rig.Output.DB.SensusOracle
void SaveOrUpdateMechanicalMeter(OracleConnection conn, Results.Entities.WaterMeter wm, int max_Pruefindex, int hydr_Pruefung)
{
- int idBenutzer = 6; // = wm.Batch.UserNumber;
+ int idBenutzer = (Anbid_Producer == 4) ? 6 : 365; /// TODO: wm.Batch.UserNumber;
+ string vt_identnummer = wm.SerialNr.Length > 8 ? wm.SerialNr.Substring(0, 8) : wm.SerialNr;
if (dbCfg.DebugLevel == DebugMode.Normal)
{
+ //OracleCommand cmd = new OracleCommand("UPDATE vt_zaehler_pd " +
+ // "SET max_pruefindex=:3, vt_identnummer=:4, auftragsnummer=:5, vt_baugruppen_nr=:6, mbus_adr=:7, liegenschafts_nr=:8," +
+ // " sekundaere_adr=:9, hydr_pruefung=:10, mark_date=:11, baujahr=:12, eich_jahr=:13, umkarton_nr=:14," +
+ // " palette_nr=:15, zaehlernummer=:16, prefix=:17, suffix=:18, z_nr_komplett=:19, id_benutzer=:20," +
+ // " albatrosid=:21, vt_modul_snr=:22 " +
+ // "WHERE vt_fernum = :1 AND anbid = :2", conn);
OracleCommand cmd = new OracleCommand("UPDATE vt_zaehler_pd " +
- "SET auftragsnummer=:1, vt_identnummer=:2, max_pruefindex=:3, mbus_adr=:4, liegenschafts_nr=:5," +
- " sekundaere_adr=:6, hydr_pruefung=:7, mark_date=:8, baujahr=:9, eich_jahr=:10, umkarton_nr=:11," +
- " palette_nr=:12, zaehlernummer=:13, prefix=:14, suffix=:15, z_nr_komplett=:16, id_benutzer=:17 " +
- "WHERE vt_fernum = :18 AND anbid = :19", conn);
-
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.PurchaseOrder }); /// :1
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = "88888888" }); /// :2
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); /// :3
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :4 MBUS_ADR
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :5 LIEGENSCHAFTS_NR
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :6 Sekundaere_Adr
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung }); /// :7
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = wm.Batch.EndTime }); /// :8
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// :9
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// :10
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :11 UMKARTON_NR
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :12 PALETTE_NR
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.AssignedSerialNr }); /// :13
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Prefix }); /// :14
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Suffix }); /// :15
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.CompleteSerialNr }); /// :16
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer }); /// :17
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); /// :18
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer }); /// :19
+ "SET max_pruefindex=:3, vt_identnummer=:4, auftragsnummer=:5, vt_baugruppen_nr=:6, mbus_adr=:7, liegenschafts_nr=:8," +
+ " sekundaere_adr=:9, hydr_pruefung=:10, baujahr=:11, eich_jahr=:12, umkarton_nr=:13," +
+ " palette_nr=:14, zaehlernummer=:15, prefix=:16, suffix=:17, z_nr_komplett=:18, id_benutzer=:19," +
+ " albatrosid=:20, vt_modul_snr=:21 " +
+ "WHERE vt_fernum = :1 AND anbid = :2", conn);
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); /// 1
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer }); /// 2
+ ///
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); /// 3 max_pruefindex
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = vt_identnummer }); /// 4 vt_identnummer
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.PurchaseOrder }); /// 5 auftragsnummer
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNrAux }); /// 6 vt_baugruppen_nr = PCB number of 640 meter
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 7 mbus_adr
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 8 liegenschafts_nr
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.AssignedSerialNr }); /// 9 sekundaere_adr
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung }); /// 10
+ //cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = wm.Batch.EndTime });
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// 11
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// 12
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 13 umkarton_nr
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 14 palette_nr
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.AssignedSerialNr }); /// 15
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Prefix }); /// 16
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Suffix }); /// 17
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.CompleteSerialNr }); /// 18
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer }); /// 19
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.OriRadioAddress }); /// 20 albatrosid = original radio address
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.RadioAddress }); /// 21 vt_modul_snr = new radio address
+
int updatedRows = cmd.ExecuteNonQuery();
int insertedRows = 0;
if (updatedRows == 0)
{
- cmd = new OracleCommand("INSERT INTO vt_zaehler_pd(auftragsnummer, vt_identnummer, vt_fernum, max_pruefindex," +
- " mbus_adr, liegenschafts_nr, sekundaere_adr, hydr_pruefung, mark_date, baujahr, eich_jahr," +
- " umkarton_nr, palette_nr, zaehlernummer, prefix, suffix, z_nr_komplett, anbid, id_benutzer) " +
- "VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19)", conn);
+ cmd = new OracleCommand("INSERT INTO vt_zaehler_pd(vt_fernum, max_pruefindex, vt_identnummer, auftragsnummer, vt_baugruppen_nr," +
+ " mbus_adr, liegenschafts_nr, sekundaere_adr, hydr_pruefung, mark_date, baujahr, eich_jahr, umkarton_nr," +
+ " palette_nr, zaehlernummer, prefix, suffix, z_nr_komplett, anbid, id_benutzer, albatrosid, vt_modul_snr) " +
+ "VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19, :20, :21, :22)", conn);
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.PurchaseOrder }); /// :1
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = "88888888" }); /// :2
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); /// :3
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); /// :4
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :5 MBUS_ADR
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :6 LIEGENSCHAFTS_NR
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :7 Sekundaere_Adr
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung }); /// :8
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = wm.Batch.EndTime }); /// :9
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// :10
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// :11
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :12 UMKARTON_NR
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :13 PALETTE_NR
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.AssignedSerialNr }); /// :14
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Prefix }); /// :15
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Suffix }); /// :16
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.CompleteSerialNr }); /// :17
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer }); /// :18
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer }); /// :19
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); /// 1 vt_fernum
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); /// 2 max_pruefindex
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = vt_identnummer }); /// 3 vt_identnummer
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.PurchaseOrder }); /// 4 auftragsnummer
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNrAux }); /// 5 vt_baugruppen_nr = PCB number of 640 meter
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 6 mbus_adr
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 7 liegenschafts_nr
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.AssignedSerialNr }); /// 8 sekundaere_adr
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung }); /// 9
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = wm.Batch.EndTime }); /// 10
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// 11
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// 12
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 13 umkarton_nr
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 14 palette_nr
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.AssignedSerialNr }); /// 15
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Prefix }); /// 16
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Suffix }); /// 17
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.CompleteSerialNr }); /// 18
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer }); /// 19
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer }); /// 20
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.OriRadioAddress }); /// 21 albatrosid = original radio address
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.RadioAddress }); /// 22 vt_modul_snr = new radio address
insertedRows = cmd.ExecuteNonQuery();
@@ -1320,7 +1336,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 18000 + wm.Batch.TestBenchId });
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.TestBenchGroupId + wm.Batch.TestBenchId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.Batch.BatchNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung });
#if IPERL
@@ -1404,7 +1420,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = mtr.WaterMeter.SerialNr }); /// :1 vt_fernum
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); /// :2 pruefindex
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = pruefungsNr }); /// :3 pruefungsnr
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer }); /// :4 anbid
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer }); /// :4 anbid
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = mtr.WaterMeter.WaterMeterData.WMTypeId }); /// :5 id_wztyp
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeRevision }); /// :6 rev_wztyp
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 1 }); /// :7 rev_wzpruefpunkt
@@ -1437,12 +1453,12 @@ namespace TBF.Rig.Output.DB.SensusOracle
///
/// Oracle DB connection
/// List of active purchase orders
- public IList ReadOrderNumbersFromOracle()
+ public IList ReadOrderNumbers()
{
OracleConnection connection = ProductionDB;
/// Read a list of valid order numbers from Oracle
- IList orders = new List();
+ IList orders = new List();
if (dbCfg.DebugLevel == DebugMode.Normal)
{
@@ -1450,97 +1466,50 @@ namespace TBF.Rig.Output.DB.SensusOracle
{
connection.Open();
- /// STATUS='NEU'
- OracleCommand cmd = new OracleCommand("SELECT auftragsnummer, sollstueck, variantencode, erste_zaehlernr, " +
- "prefix, suffix, zaehlwerk, erfasst_am, sollende, zusatztext " +
- "FROM vt_auftrag_pd " +
- "WHERE produktion_anbid=:1 AND status='NEU' AND produktion_usestate=0", connection);
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
- OracleDataReader dr = cmd.ExecuteReader();
-
- while (dr.Read())
+ foreach (string status in new string[] { "NEU", "AKTIV" })
{
- string order = dr.GetString(0);
+ /// STATUS='NEU'
+ OracleCommand cmd = new OracleCommand("SELECT auftragsnummer, variantencode, erste_zaehlernr, prefix, suffix, " +
+ "zaehlwerk, erfasst_am, sollende, sollstueck, zusatztext, znrlaenge, modul_param " +
+ "FROM vt_auftrag_pd " +
+ "WHERE produktion_anbid=:1 AND status=:2 AND produktion_usestate=0", connection);
- int sollStueck; try { sollStueck = dr.GetInt32(1); }
- catch { sollStueck = 0; }
- string variantenCode; try { variantenCode = dr.GetString(2); }
- catch { variantenCode = string.Empty; }
- int esrsteZaehlerNr; try { esrsteZaehlerNr = dr.GetInt32(3); }
- catch { esrsteZaehlerNr = 1; }
- //string prefix; try { prefix = dr.GetString (4); } catch { prefix = string.Empty; }
- //string suffix; try { suffix = dr.GetString (5); } catch { suffix = string.Empty; }
- int zaehlwerk; try { zaehlwerk = dr.GetInt32(6); }
- catch { zaehlwerk = 0; }
- DateTime created; try { created = dr.GetDateTime(7); }
- catch { created = DateTime.Now; }
- DateTime dueDate; try { dueDate = dr.GetDateTime(8); }
- catch { dueDate = DateTime.Now; }
- //string remark; try { remark = dr.GetString (9); } catch { remark = string.Empty; }
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = status });
- var ai = new Auftrag
+ OracleDataReader dr = cmd.ExecuteReader();
+
+ while (dr.Read())
{
- AuftragsNummer = order,
- SollStueck = sollStueck,
- VariantenCode = variantenCode,
- EsrsteZaehlerNr = esrsteZaehlerNr,
- //Prefix = prefix,
- //Suffix = suffix,
- Zaehlwerk = zaehlwerk,
- Created = created,
- DueDate = dueDate,
- //Remark = remark,
- };
+ int i = 0;
+ string auftragsnummer = dr.GetString(i++);
+ string variantencode; try { variantencode = dr.GetString(i++); } catch { variantencode = string.Empty; }
+ int erste_zaehlernr; try { erste_zaehlernr = dr.GetInt32(i++); } catch { erste_zaehlernr = 1; }
+ string prefix; try { prefix = dr.GetString(i++); } catch { prefix = string.Empty; }
+ string suffix; try { suffix = dr.GetString(i++); } catch { suffix = string.Empty; }
+ int zaehlwerk; try { zaehlwerk = dr.GetInt32(i++); } catch { zaehlwerk = 0; }
+ DateTime erfasst_am; try { erfasst_am = dr.GetDateTime(i++); } catch { erfasst_am = DateTime.Now; }
+ DateTime sollende; try { sollende = dr.GetDateTime(i++); } catch { sollende = DateTime.Now; }
+ int sollstueck = dr.GetInt32(i++);
+ string zusatztext; try { zusatztext = dr.GetString (i++); } catch { zusatztext = string.Empty; }
+ int znrlaenge = dr.GetInt32(i++);
+ string modul_param; try { modul_param = dr.GetString(i++); } catch { modul_param = string.Empty; }
- orders.Add(ai);
+ orders.Add(new OrderDetails { AuftragsNummer = auftragsnummer,
+ VariantenCode = variantencode,
+ EsrsteZaehlerNr = erste_zaehlernr,
+ Prefix = prefix,
+ Suffix = suffix,
+ Zaehlwerk = zaehlwerk,
+ Created = erfasst_am,
+ DueDate = sollende,
+ TargetPcsCount = sollstueck,
+ Remark = zusatztext,
+ SNLength = znrlaenge,
+ ModuleParameter = modul_param });
+ }
+ dr.Close();
}
- dr.Close();
-
- /// STATUS='AKTIV'
- cmd = new OracleCommand("SELECT auftragsnummer, sollstueck, variantencode, erste_zaehlernr, " +
- "prefix, suffix, zaehlwerk, erfasst_am, sollende, zusatztext " +
- "FROM vt_auftrag_pd " +
- "WHERE produktion_anbid=:1 AND status='AKTIV' AND produktion_usestate=0", connection);
- cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
- dr = cmd.ExecuteReader();
-
- while (dr.Read())
- {
- string order = dr.GetString(0);
-
- int sollStueck; try { sollStueck = dr.GetInt32(1); }
- catch { sollStueck = 0; }
- string variantenCode; try { variantenCode = dr.GetString(2); }
- catch { variantenCode = string.Empty; }
- int esrsteZaehlerNr; try { esrsteZaehlerNr = dr.GetInt32(3); }
- catch { esrsteZaehlerNr = 1; }
- //string prefix; try { prefix = dr.GetString (4); } catch { prefix = string.Empty; }
- //string suffix; try { suffix = dr.GetString (5); } catch { suffix = string.Empty; }
- int zaehlwerk; try { zaehlwerk = dr.GetInt32(6); }
- catch { zaehlwerk = 0; }
- DateTime created; try { created = dr.GetDateTime(7); }
- catch { created = DateTime.Now; }
- DateTime dueDate; try { dueDate = dr.GetDateTime(8); }
- catch { dueDate = DateTime.Now; }
- //string remark; try { remark = dr.GetString (9); } catch { remark = string.Empty; }
-
- var ai = new Auftrag
- {
- AuftragsNummer = order,
- SollStueck = sollStueck,
- VariantenCode = variantenCode,
- EsrsteZaehlerNr = esrsteZaehlerNr,
- //Prefix = prefix,
- //Suffix = suffix,
- Zaehlwerk = zaehlwerk,
- Created = created,
- DueDate = dueDate,
- //Remark = remark,
- };
-
- orders.Add(ai);
- }
- dr.Close();
log.InfoFormat("Oracle DB query SELECT auftragsnummer, sollstueck FROM vt_auftrag_pd WHERE ... successful. {0} order numbers read", orders.Count);
}
@@ -1553,14 +1522,131 @@ namespace TBF.Rig.Output.DB.SensusOracle
}
else
{
- orders = new List ()
+ orders = new List ()
{
- new Auftrag { AuftragsNummer = "1234567", EsrsteZaehlerNr = 1, SollStueck = 100, Prefix = "Pre", Suffix = "Suf", VariantenCode = "abeceda" },
- new Auftrag { AuftragsNummer = "2345678", EsrsteZaehlerNr = 1, SollStueck = 200, Prefix = "Pfx", Suffix = "Sfx", VariantenCode = "zjedla_deda" },
+ new OrderDetails { AuftragsNummer = "1234567", EsrsteZaehlerNr = 1, TargetPcsCount = 100, Prefix = "Pre", Suffix = "Suf", VariantenCode = "abeceda" },
+ new OrderDetails { AuftragsNummer = "2345678", EsrsteZaehlerNr = 1, TargetPcsCount = 200, Prefix = "Pfx", Suffix = "Sfx", VariantenCode = "zjedla_deda" },
};
}
return orders;
}
+
+
+ ///
+ /// Read a list of valid purchase orders.
+ ///
+ /// Oracle DB connection
+ /// List of active purchase orders
+ public bool ReadOrderDetails(ref OrderDetails auftrag)
+ {
+ if (dbCfg.DebugLevel == DebugMode.Normal)
+ {
+ OracleConnection connection = ProductionDB;
+
+ try
+ {
+ connection.Open();
+
+
+ OracleCommand cmd = new OracleCommand("SELECT iststueck FROM vt_auftrag_pd WHERE auftragsnummer=:1 AND anbid=:2", connection);
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = auftrag.AuftragsNummer });
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
+ OracleDataReader dr = cmd.ExecuteReader();
+ if (dr.Read())
+ {
+ try { auftrag.CurrentPcsCount = dr.GetInt32(0); } catch { auftrag.CurrentPcsCount = 0; }
+ }
+ dr.Close();
+
+
+ cmd = new OracleCommand("SELECT erste_nummer, ltz_nummer, akt_nummer, erste_adresse, ltz_adresse," +
+ " prefix_adresse, suffix_adresse, akt_adresse " +
+ "FROM vt_auft_zaehlernr_pd " +
+ "WHERE auftragsnummer=:1 AND anbid=:2", connection);
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = auftrag.AuftragsNummer });
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
+ dr = cmd.ExecuteReader();
+ if (dr.Read())
+ {
+ int i = 0;
+ auftrag.FirstSerialNr = dr.GetInt32(i++);
+ auftrag.LastSerialNr = dr.GetInt32(i++);
+ auftrag.CurrentSerialNr = dr.GetInt32(i++);
+ auftrag.FirstRadioAddress = dr.GetInt32(i++);
+ auftrag.LastRadioAddress = dr.GetInt32(i++);
+ try { auftrag.RadioAddressPrefix = dr.GetString(i++); } catch { auftrag.RadioAddressPrefix = string.Empty; }
+ try { auftrag.RadioAddressSuffix = dr.GetString(i++); } catch { auftrag.RadioAddressSuffix = string.Empty; }
+ auftrag.CurrentRadioAddress = dr.GetInt32(i++);
+ }
+ dr.Close();
+
+
+ connection.Close();
+ return true;
+ }
+ catch (Exception exc)
+ {
+ log.ErrorFormat("ERROR: Oracle DB query SELECT ... FROM vt_auft_zaehlernr_pd WHERE auftragsnummer={0} failed: {1}",
+ auftrag.AuftragsNummer, exc.Message);
+ if (connection != null) connection.Close();
+ return false;
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+
+ ///
+ /// Read a list of valid purchase orders.
+ ///
+ /// Oracle DB connection
+ /// List of active purchase orders
+ public int UpdateOrderDetails(OrderDetails auftrag)
+ {
+ if (dbCfg.DebugLevel == DebugMode.Normal)
+ {
+ OracleConnection connection = ProductionDB;
+
+ try
+ {
+ connection.Open();
+
+
+ OracleCommand cmd = new OracleCommand("UPDATE vt_auftrag_pd SET iststueck=:1 WHERE auftragsnummer=:2 AND anbid=:3", connection);
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = auftrag.CurrentPcsCount });
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = auftrag.AuftragsNummer });
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
+ int updatedRows = cmd.ExecuteNonQuery();
+
+
+ cmd = new OracleCommand("UPDATE vt_auft_zaehlernr_pd SET akt_nummer=:1, akt_adresse=:2 " +
+ "WHERE auftragsnummer=:3 AND anbid=:4", connection);
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = auftrag.CurrentSerialNr });
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = auftrag.CurrentRadioAddress });
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = auftrag.AuftragsNummer });
+ cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
+ updatedRows = Math.Min(cmd.ExecuteNonQuery(), updatedRows);
+
+
+ connection.Close();
+ return updatedRows;
+ }
+ catch (Exception exc)
+ {
+ log.ErrorFormat("ERROR: Oracle DB query SELECT ... FROM vt_auft_zaehlernr_pd WHERE auftragsnummer={0} failed: {1}",
+ auftrag.AuftragsNummer, exc.Message);
+ if (connection != null) connection.Close();
+ return 0;
+ }
+ }
+ else
+ {
+ return 0;
+ }
+ }
}
}
diff --git a/TBF/Rig/Output/DB/SensusOracle/DatabaseCfg.cs b/TBF/Rig/Output/DB/SensusOracle/DatabaseCfg.cs
index 7051f3fee..bf39e58a7 100644
--- a/TBF/Rig/Output/DB/SensusOracle/DatabaseCfg.cs
+++ b/TBF/Rig/Output/DB/SensusOracle/DatabaseCfg.cs
@@ -34,6 +34,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
public string TestUserId;
public string TestPassword;
public int ProducerId;
+ public int TestBenchGroupId;
/// Procedure parameters
[XmlIgnore]
@@ -70,6 +71,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
TestUserId = "deltachef";
TestPassword = "deltachef";
ProducerId = 4;
+ TestBenchGroupId = 18000;
}
string[] paramNames = new string[]
@@ -84,6 +86,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
"Test DB User ID",
"Test DB Password",
"Producer ID",
+ "Test bench group ID",
};
public string ParamName(int i) { return paramNames[i]; }
public int ParamsCount() { return paramNames.Length; }
@@ -107,12 +110,15 @@ namespace TBF.Rig.Output.DB.SensusOracle
case 7: return TestUserId;
case 8: return AkaPwd;
case 9: return ProducerId.ToString();
+ case 10: return TestBenchGroupId.ToString();
default:
- return string.Format("{0}: Production={1} Quality={2} Test={3}",
+ return string.Format("{0}: Production={1} Quality={2} Test={3} anbid={4} group={5}",
Name,
string.IsNullOrEmpty(ProductionDataSource) ? string.Empty : ProductionDataSource,
string.IsNullOrEmpty(QualityDataSource) ? string.Empty : QualityDataSource,
- string.IsNullOrEmpty(TestDataSource) ? string.Empty : TestDataSource);
+ string.IsNullOrEmpty(TestDataSource) ? string.Empty : TestDataSource,
+ ProducerId,
+ TestBenchGroupId);
}
}
@@ -157,6 +163,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
return CfgUpdateFlags.None;
}
case 9: ProducerId = int.Parse(str); return CfgUpdateFlags.RestartRqrd;
+ case 10: TestBenchGroupId = int.Parse(str); return CfgUpdateFlags.RestartRqrd;
default:
return CfgUpdateFlags.None;
}
@@ -182,6 +189,9 @@ namespace TBF.Rig.Output.DB.SensusOracle
case 9:
if (int.TryParse(str, out idummy) && idummy > 0 && idummy <= 9) return true;
break;
+ case 10:
+ if (int.TryParse(str, out idummy) && idummy > 0 && (idummy % 100) == 0) return true;
+ break;
default:
message = "Invalid index";
return false;
@@ -202,6 +212,8 @@ namespace TBF.Rig.Output.DB.SensusOracle
prms.TestDataSource = this.TestDataSource;
prms.TestUserId = this.TestUserId;
prms.TestPassword = this.TestPassword;
+ prms.ProducerId = this.ProducerId;
+ prms.TestBenchGroupId = this.TestBenchGroupId;
}
public IParamsProvider Clone()
diff --git a/TBF/Rig/Output/DB/SensusOracle/Auftrag.cs b/TBF/Rig/Output/DB/SensusOracle/OrderDetails.cs
similarity index 51%
rename from TBF/Rig/Output/DB/SensusOracle/Auftrag.cs
rename to TBF/Rig/Output/DB/SensusOracle/OrderDetails.cs
index ee739cc4b..8d7c125e2 100644
--- a/TBF/Rig/Output/DB/SensusOracle/Auftrag.cs
+++ b/TBF/Rig/Output/DB/SensusOracle/OrderDetails.cs
@@ -5,10 +5,12 @@ using System;
namespace TBF.Rig.Output.DB.SensusOracle
{
- public class Auftrag
+ public class OrderDetails
{
+ ///
+ /// Fixed
+ ///
public string AuftragsNummer; /// Production order
- public int SollStueck; /// Targer pieces count
public string VariantenCode; /// Spec
public int EsrsteZaehlerNr; /// First S/N
public string Prefix; /// S/N prefix
@@ -16,18 +18,36 @@ namespace TBF.Rig.Output.DB.SensusOracle
public int Zaehlwerk; /// SAP number of the counter
public DateTime Created;
public DateTime DueDate;
+ public int TargetPcsCount; /// Target pieces count
public string Remark;
+ public int SNLength;
+ public string ModuleParameter;
+ public int FirstSerialNr;
+ public int LastSerialNr;
+ public int FirstRadioAddress;
+ public int LastRadioAddress;
+ public string RadioAddressPrefix;
+ public string RadioAddressSuffix;
+ ///
+ /// Incremented
+ ///
+ public int CurrentPcsCount;
+ public int CurrentSerialNr;
+ public int CurrentRadioAddress;
- public Auftrag()
+ public OrderDetails()
{
Prefix = string.Empty;
Suffix = string.Empty;
Remark = string.Empty;
+ ModuleParameter = string.Empty;
+ RadioAddressPrefix = string.Empty;
+ RadioAddressSuffix = string.Empty;
}
public override string ToString()
{
- return string.Format("{0} [{1}] {2}", AuftragsNummer, SollStueck, VariantenCode);
+ return string.Format("{0} [{1}] {2}", AuftragsNummer, TargetPcsCount, VariantenCode);
}
}
}
diff --git a/TBF/Rig/Output/DB/SensusOracle/ProcedureParams.cs b/TBF/Rig/Output/DB/SensusOracle/ProcedureParams.cs
index ac94cc23a..4eeff3830 100644
--- a/TBF/Rig/Output/DB/SensusOracle/ProcedureParams.cs
+++ b/TBF/Rig/Output/DB/SensusOracle/ProcedureParams.cs
@@ -18,6 +18,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
public class ProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
{
private static readonly ILog log = LogManager.GetLogger(typeof(ProcedureParams));
+
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0];
public override XmlSerializer GetSerializer() { return Serializer; }
diff --git a/TBF/TBF.csproj b/TBF/TBF.csproj
index 06c568c9e..40c384aff 100644
--- a/TBF/TBF.csproj
+++ b/TBF/TBF.csproj
@@ -886,7 +886,7 @@
SaveFlowmeterCorrCfgCtrl.cs
-
+
diff --git a/TBF/UI/MainWnd.cs b/TBF/UI/MainWnd.cs
index 57357fc6e..77c6f752c 100644
--- a/TBF/UI/MainWnd.cs
+++ b/TBF/UI/MainWnd.cs
@@ -728,7 +728,7 @@ namespace TBF.UI
IList procInfos = new List();
IList nativeProcedures = new List();
IList nativeSources = new List();
- IList oracleOrders = new List();
+ IList oracleOrders = new List();
foreach (var src in sources)
{
@@ -752,7 +752,7 @@ namespace TBF.UI
}
else if (src == ProcedureSelection.OrderNrFromOracleDB)
{
- oracleOrders = Rig.Sequences.ProcessData.OracleDB.ReadOrderNumbersFromOracle();
+ oracleOrders = Rig.Sequences.ProcessData.OracleDB.ReadOrderNumbers();
foreach (var order in oracleOrders)
{
diff --git a/TBF/UI/ResultsMI/PreviousResultsDlg.cs b/TBF/UI/ResultsMI/PreviousResultsDlg.cs
index 7eae180d8..e4dfae90b 100644
--- a/TBF/UI/ResultsMI/PreviousResultsDlg.cs
+++ b/TBF/UI/ResultsMI/PreviousResultsDlg.cs
@@ -256,7 +256,7 @@ namespace TBF.UI.ResultsMI
if ((TBF.Rig.Sequences.ProcessData.OracleDB != null) &&
- (TBF.Rig.Sequences.ProcessData.OracleDB.WriteResultsToDB(conn, b, true) == Retv.OK))
+ (TBF.Rig.Sequences.ProcessData.OracleDB.WriteResultsToDB(conn, b, WMKind.Mechanical, true) == Retv.OK))
{
b.RsltsSent = true; /// Result was successfully sent
session.SaveOrUpdate(b); /// Update MySQL DB