diff --git a/TBF/BenchControl/Output/DB/SensusOracle/Auftrag.cs b/TBF/BenchControl/Output/DB/SensusOracle/Auftrag.cs
index 328a2511f..10a479f01 100644
--- a/TBF/BenchControl/Output/DB/SensusOracle/Auftrag.cs
+++ b/TBF/BenchControl/Output/DB/SensusOracle/Auftrag.cs
@@ -17,12 +17,22 @@ namespace TBF.BenchControl.Output.DB.SensusOracle
public DateTime Created;
public DateTime DueDate;
public string Remark;
+ public int FirstSerialNr;
+ public int LastSerialNr;
+ public int CurrentSerialNr;
+ public int FirstRadioAddress;
+ public int LastRadioAddress;
+ public string RadioAddressPrefix;
+ public string RadioAddressSuffix;
+ public int CurrentRadioAddress;
public Auftrag()
{
Prefix = string.Empty;
Suffix = string.Empty;
Remark = string.Empty;
+ RadioAddressPrefix = string.Empty;
+ RadioAddressSuffix = string.Empty;
}
public override string ToString()
diff --git a/TBF/BenchControl/Output/DB/SensusOracle/Database.cs b/TBF/BenchControl/Output/DB/SensusOracle/Database.cs
index 9bb10aedb..dc5eb9d17 100644
--- a/TBF/BenchControl/Output/DB/SensusOracle/Database.cs
+++ b/TBF/BenchControl/Output/DB/SensusOracle/Database.cs
@@ -1429,7 +1429,7 @@ namespace TBF.BenchControl.Output.DB.SensusOracle
///
/// Oracle DB connection
/// List of active purchase orders
- public IList ReadOrderNumbersFromOracle()
+ public IList ReadOrderNumbers()
{
OracleConnection connection = ProductionDB;
@@ -1554,5 +1554,62 @@ namespace TBF.BenchControl.Output.DB.SensusOracle
return orders;
}
+
+
+ ///
+ /// Read a list of valid purchase orders.
+ ///
+ /// Oracle DB connection
+ /// List of active purchase orders
+ public bool ReadOrderDetails(ref Auftrag auftrag)
+ {
+ if (dbCfg.DebugLevel == DebugMode.Normal)
+ {
+ OracleConnection connection = ProductionDB;
+
+ try
+ {
+ connection.Open();
+
+ OracleCommand 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 });
+
+ OracleDataReader 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;
+ }
+ }
}
}