diff --git a/TBF/BenchControl/Output/DB/SensusOracle/Database.cs b/TBF/BenchControl/Output/DB/SensusOracle/Database.cs index 1c9722fba..7f42feff1 100644 --- a/TBF/BenchControl/Output/DB/SensusOracle/Database.cs +++ b/TBF/BenchControl/Output/DB/SensusOracle/Database.cs @@ -31,8 +31,19 @@ namespace TBF.BenchControl.Output.DB.SensusOracle public enum WMKind { - Iperl, - S620, + iPERL, + Mechanical, + Count + } + + /// + /// Test/Q designation mode for IperlLogger and IperlHead opto data files + /// + public enum DesigMode + { + Auto, + Based_on_procedure, + As_specified, Count } @@ -42,18 +53,19 @@ namespace TBF.BenchControl.Output.DB.SensusOracle private static readonly ILog log = LogManager.GetLogger(typeof(Database)); public override string ToString() { return string.Format("{0}({1})", GetType().Namespace.Substring(17), Cfg.ToString(1)); } - const int Anbid_StaraTura = 4; + public const int Anbid_StaraTura = 4; DatabaseCfg dbCfg; public DBUsed DBUsed { get { return (dbCfg == null || dbCfg.ProcParams == null) ? DBUsed.None : dbCfg.ProcParams.DBUsed; } } - public WMKind WMKind { get { return (dbCfg == null || dbCfg.ProcParams == null) ? WMKind.Iperl : dbCfg.ProcParams.WMKind; } } + public WMKind WMKind { get { return (dbCfg == null || dbCfg.ProcParams == null) ? WMKind.iPERL : dbCfg.ProcParams.WMKind; } } public int WMTypeId { get { return (dbCfg == null || dbCfg.ProcParams == null) ? 0 : dbCfg.ProcParams.WMTypeId; } } public int YearOfManufacture { get { return (dbCfg == null || dbCfg.ProcParams == null) ? DateTime.Now.Year : dbCfg.ProcParams.YearOfManufacture; } } public bool SaveResults { get { return (dbCfg == null || dbCfg.ProcParams == null) ? false : dbCfg.ProcParams.SaveResults; } } public bool ReadStartInfo { get { return (dbCfg == null || dbCfg.ProcParams == null) ? true : dbCfg.ProcParams.ReadStartInfo; } } public bool StartInfoIsRequired { get { return (dbCfg == null || dbCfg.ProcParams == null) ? false : dbCfg.ProcParams.StartInfoIsRequired; } } - + public DesigMode DesigMode { get { return (dbCfg == null || dbCfg.ProcParams == null) ? DesigMode.Auto : dbCfg.ProcParams.DesigMode; } } + public LogType DesigType { get { return (dbCfg == null || dbCfg.ProcParams == null) ? LogType.Just_Q3Q2Q1 : dbCfg.ProcParams.DesigType; } } enum OpState { @@ -83,17 +95,15 @@ namespace TBF.BenchControl.Output.DB.SensusOracle OracleConnection qualityDB; /// Quality Oracle DB connection OracleConnection testDB; /// Test Oracle DB connection - OracleConnection selectedDB + public OracleConnection SelectedDB { get { - if (dbCfg == null || dbCfg.ProcParams == null) return null; - - switch (dbCfg.ProcParams.DBUsed) + switch (DBUsed) { case DBUsed.Production: return productionDB; - case DBUsed.Quality: return qualityDB; - case DBUsed.Test: return testDB; + case DBUsed.Quality: return qualityDB; + case DBUsed.Test: return testDB; default: case DBUsed.None: @@ -120,7 +130,7 @@ namespace TBF.BenchControl.Output.DB.SensusOracle { dbCfg = cfg as DatabaseCfg; currentOpState = OpState.None; - log.Debug(this.ToString()); + log.Warn(this.ToString()); } /// @@ -128,26 +138,26 @@ namespace TBF.BenchControl.Output.DB.SensusOracle /// public void Initialize() { + if (dbCfg.DebugLevel == DebugMode.Simulate) return; + productionDB = new OracleConnection("Data Source=STARA01.WORLD;User Id=deltachef;Password=deltachef;"); qualityDB = new OracleConnection("Data Source=STARA01.WORLD;User Id=deltaqual;Password=test;"); testDB = new OracleConnection("Data Source=STARA_TEST.WORLD;User Id=deltachef;Password=deltachef;"); - if (dbCfg.DebugLevel == DebugMode.Simulate) return; - /// /// Do something with the database to see if the connection works well /// - if (productionDB != null) + if (DBUsed == DBUsed.Production) { - productionDB.Open(); + SelectedDB.Open(); string rslt = "none"; - OracleCommand cmd = new OracleCommand("select Standort from ANBIETER_SD where ANBID = 4", productionDB); + OracleCommand cmd = new OracleCommand("SELECT standort FROM anbieter_sd WHERE anbid = 4", SelectedDB); OracleDataReader dr = cmd.ExecuteReader(); if (dr.Read()) rslt = dr.GetString(0); dr.Close(); - productionDB.Close(); + SelectedDB.Close(); } } /// @@ -188,8 +198,10 @@ namespace TBF.BenchControl.Output.DB.SensusOracle q3 = 0; timeStamp = DateTime.MinValue; remark = string.Empty; - - OracleCommand cmd = new OracleCommand("select REV_WZTYP, WZTYP, METROLKLASSE, ZULASSZEICHEN, MATERIALNR, QMAX, AENDERUNGSDATUM, BEMERKUNG from VT_WZTYP_SD where ANBID=4 and ID_WZTyp=:1 and AKTIV=:2", conn); + + OracleCommand cmd = new OracleCommand("SELECT rev_wztyp, wztyp, metrolklasse, zulasszeichen, materialnr, qmax, aenderungsdatum, bemerkung " + + "FROM vt_wztyp_sd " + + "WHERE anbid=4 AND id_wztyp=:1 AND aktiv=:2", conn); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeId }); ///:1 cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 1 }); ///:2 /// @@ -209,7 +221,9 @@ namespace TBF.BenchControl.Output.DB.SensusOracle if (wmTypeRevision == -1) return null; /// No 'wmTypeRevision' found - 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 = 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 /// @@ -253,11 +267,7 @@ namespace TBF.BenchControl.Output.DB.SensusOracle /// Reference to the operation public IOperation ReadStartInfoOp(IList waterMeters) { - if (!ReadStartInfo) - { - return null; - } - else if ((currentOpState == OpState.ReadStartInfoRunning) || (currentOpState == OpState.WriteResultsRunning)) + if ((currentOpState == OpState.ReadStartInfoRunning) || (currentOpState == OpState.WriteResultsRunning)) { throw new Exception("Sequence error"); } @@ -317,15 +327,25 @@ namespace TBF.BenchControl.Output.DB.SensusOracle { if (!opCompleted) { - if (waterMeters.Count == 0) return Event.ResultsWritten; + log.WarnFormat("{0} : Run() : currentOp = {1}", Name, currentOpState); - if ((dbCfg.DebugLevel == DebugMode.Normal) && (selectedDB != null)) + if (dbCfg.DebugLevel == DebugMode.Normal && SelectedDB != null && ReadStartInfo && waterMeters.Count != 0) { - log.WarnFormat("{0} : Run() : currentOp = {1}", Name, currentOpState); #if ORACLE_DB - if (ReadStartInfoFromDB(selectedDB) == Retv.Error) anyError = true; + log.WarnFormat("{0} : Run() : reading from database", Name); + if (ReadStartInfoFromDB(SelectedDB) == Retv.Error) anyError = true; #endif } + + if (DesigMode == DesigMode.Based_on_procedure && StateMachine.Procedure != null) + { + Sequences.ProcessData.CompleteTestInfos = Results.Output.SensusTestInfo.CreateFromProcedure(StateMachine.Procedure); + } + else if (DesigMode == DesigMode.As_specified && DesigType >= 0 && DesigType < LogType.Count) + { + Sequences.ProcessData.CompleteTestInfos = SensusTestInfo.GetTestInfos(DesigType); + } + opCompleted = true; } @@ -337,11 +357,11 @@ namespace TBF.BenchControl.Output.DB.SensusOracle { if (batch.WaterMeters.Count == 0) return Event.ResultsWritten; - if ((dbCfg.DebugLevel == DebugMode.Normal) && (selectedDB != null)) + if ((dbCfg.DebugLevel == DebugMode.Normal) && (SelectedDB != null)) { log.WarnFormat("{0} : Run() : currentOp = {1}", Name, currentOpState); #if ORACLE_DB - if (WriteResultsToDB(selectedDB, batch, false) == Retv.Error) anyError = true; + if (WriteResultsToDB(SelectedDB, batch, false) == Retv.Error) anyError = true; #endif } opCompleted = true; @@ -478,7 +498,6 @@ namespace TBF.BenchControl.Output.DB.SensusOracle OracleCommand cmd; OracleDataReader dr; - // SELECT * FROM VT_ZAEHLER_PD WHERE VT_Fernum = :1 AND ANBID = 4 int maxPruefindex = 0; string purchaseOrder = string.Empty; int assignedSerialNr = 0; @@ -499,8 +518,10 @@ namespace TBF.BenchControl.Output.DB.SensusOracle /// /// Read data from VT_ZAEHLER_PD /// - cmd = new OracleCommand("select MAX_PRUEFINDEX, AUFTRAGSNUMMER, ZAEHLERNUMMER, PALETTE_NR, UMKARTON_NR, Z_NR_KOMPLETT, VT_MODUL_SNR from VT_ZAEHLER_PD where VT_FERNUM = :1 AND ANBID = 4", conn); - /// 100*benchId+MPix, purchase_order, assigned_s/n, palette_nr, box_nr., complete_s/n, radio_address + /// 100*benchId+MPix, purchase_order, assigned_s/n, palette_nr, box_nr., complete_s/n, radio_address + cmd = new OracleCommand("SELECT max_pruefindex, auftragsnummer, zaehlernummer, palette_nr, umkarton_nr, z_nr_komplett, vt_modul_snr " + + "FROM vt_zaehler_pd " + + "WHERE vt_fernum = :1 AND anbid = 4", conn); cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); dr = cmd.ExecuteReader(); if (dr.Read()) @@ -530,8 +551,10 @@ namespace TBF.BenchControl.Output.DB.SensusOracle /// /// Read data from VT_ZAEHLER_PINDEX_PD /// - cmd = new OracleCommand("select PRUEFINDEX, ID_WZPRUEFREIHE, WT_PLATZ_NR, WZGUT, ID_BENUTZER from VT_ZAEHLER_PINDEX_PD where VT_FERNUM = :1 AND ANBID = 4", conn); - /// test_bench_ID, line_ID, WM_position, result, user_ID + /// test_bench_ID, line_ID, WM_position, result, user_ID + cmd = new OracleCommand("SELECT pruefindex, id_wzpruefreihe, wt_platz_nr, wzgut, id_benutzer " + + "FROM vt_zaehler_pindex_pd " + + "WHERE vt_fernum = :1 AND anbid = 4", conn); cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); dr = cmd.ExecuteReader(); while (dr.Read()) @@ -551,8 +574,10 @@ namespace TBF.BenchControl.Output.DB.SensusOracle /// /// Read data from VT_IP_ZAEHLER_PINDEX_PD /// - cmd = new OracleCommand("select PRUEFINDEX, Q2CORRECTIONLEFT, Q2CORRECTIONRIGHT, ERRQ2 from VT_IP_ZAEHLER_PINDEX_PD where VT_FERNUM = :1 AND ANBID = 4", conn); /// pruefindex, Q2_correction_RL, Q2_correction_LR, Q2_error_before_correction + cmd = new OracleCommand("SELECT pruefindex, q2correctionleft, q2correctionright, errq2 " + + "FROM vt_ip_zaehler_pindex_pd " + + "WHERE vt_fernum = :1 AND anbid = 4", conn); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); dr = cmd.ExecuteReader(); while (dr.Read()) @@ -572,7 +597,9 @@ namespace TBF.BenchControl.Output.DB.SensusOracle /// Read data from VT_PRUEFREIHE_IST_PD /// /// testID, flow, rel.err., passed - cmd = new OracleCommand("select PRUEFUNGSNR, Q_WZ, Q_FEHLER, Q_BEST from VT_PRUEFREIHE_IST_PD where VT_FERNUM = :1 AND PRUEFINDEX = :2 AND ANBID = 4", conn); + cmd = new OracleCommand("SELECT pruefungsnr, q_wz, q_fehler, q_best " + + "FROM vt_pruefreihe_ist_pd " + + "WHERE vt_fernum = :1 AND pruefindex = :2 AND anbid = 4", conn); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 100 * testBenchID + maxPruefindex }); @@ -679,17 +706,17 @@ namespace TBF.BenchControl.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) { /// No production error => write the result of testing to Oracle DB - SaveOneIperlToDB(conn, wMtr, safeMode); + SaveIperlToDB(conn, wMtr, safeMode); } } - else if (WMKind == WMKind.S620) + else if (WMKind == WMKind.Mechanical) { - SaveOneS620ToDB(conn, wMtr, safeMode); + SaveMechanicalMeterToDB(conn, wMtr, safeMode); } } @@ -719,7 +746,7 @@ namespace TBF.BenchControl.Output.DB.SensusOracle IList pruefindexes = new List(); { - OracleCommand cmd = new OracleCommand("SELECT Pruefindex FROM VT_ZAEHLER_PINDEX_PD WHERE VT_Fernum = :1 AND ANBID = 4", conn); + OracleCommand cmd = new OracleCommand("SELECT pruefindex FROM vt_zaehler_pindex_pd WHERE vt_fernum = :1 AND anbid = 4", conn); OracleParameter parm = new OracleParameter(); parm.OracleDbType = OracleDbType.Varchar2; @@ -733,8 +760,11 @@ namespace TBF.BenchControl.Output.DB.SensusOracle } } { - OracleCommand cmd = new OracleCommand("SELECT Max_Pruefindex, Auftragsnummer, Z_Nr_Komplett, VT_Modul_Snr FROM VT_ZAEHLER_PD WHERE VT_Fernum = :1 AND ANBID = 4", conn); - /// purchase order assigned s/n radio address PCB number Producer ID + /// purchase order assigned s/n radio address + OracleCommand cmd = new OracleCommand("SELECT max_pruefindex, auftragsnummer, z_nr_komplett, vt_modul_snr " + + "FROM vt_zaehler_pd " + + "WHERE vt_fernum = :1 AND anbid = 4", conn); + /// PCB number Producer ID OracleParameter parm = new OracleParameter(); parm.OracleDbType = OracleDbType.Varchar2; parm.Value = wm.SerialNr; @@ -814,11 +844,11 @@ namespace TBF.BenchControl.Output.DB.SensusOracle if (!dbCfg.TestMode) { - OracleCommand cmd = new OracleCommand("INSERT INTO VT_PRUEFREIHE_PD(ANBID, ID_Pruefstand, ID_WzPruefreihe, ID_WZTyp, " + - "Rev_WZTyp, Rev_Pruefstand_WZTyp, StartDatumZeit, EndDatumZeit, Betriebsart, " + - "QVzKontakt, FuellenBegDruck, DruckEvakVorne, DruckEvakHinten, DruckBeiAbpressen, " + - "Druckentwaessern, SpuelDurchflussIst, ProgrammVersion)" + - " VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17)", conn); + OracleCommand cmd = new OracleCommand("INSERT INTO vt_pruefreihe_pd(anbid, id_pruefstand, id_wzpruefreihe, id_wztyp," + + " rev_wztyp, rev_pruefstand_wztyp, startdatumzeit, enddatumzeit, betriebsart," + + " qvzkontakt, fuellenbegdruck, druckevakvorne, druckevakhinten, druckbeiabpressen," + + " druckentwaessern, spueldurchflussist, programmversion) " + + "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_StaraTura }); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 18000 + b.TestBenchId }); @@ -860,9 +890,9 @@ namespace TBF.BenchControl.Output.DB.SensusOracle if (!dbCfg.TestMode) { #if false - OracleCommand cmd2 = new OracleCommand("INSERT INTO VT_PRUEFDURCHFLUSS_PD(ANBID, ID_Pruefstand, ID_WzPruefreihe, PruefungsNr, PVOL, PMasse, " + - "MinDurchfluss, MaxDurchfluss, Q_ist, KFaktor, Q_VZ, F_VZ, RegelEinstellZeit, Drehzahl, BeginnDruck_Vorne, " + - "BeginnDruck_Hinten, EndDruck_Vorne, EndDruck_Hinten, TVWZ, IVWZ, Verwendeter_VZ, BeginnGewicht, EndGewicht) " + + OracleCommand cmd2 = new OracleCommand("INSERT INTO vt_pruefdurchfluss_pd(anbid, id_pruefstand, id_wzpruefreihe, pruefungsnr, pvol, pmasse," + + " mindurchfluss, maxdurchfluss, q_ist, kfaktor, q_vz, f_vz, regeleinstellzeit, drehzahl, beginndruck_vorne," + + " beginndruck_hinten, enddruck_vorne, enddruck_hinten, tvwz, ivwz, verwendeter_vz, beginngewicht, endgewicht) " + "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_StaraTura }); @@ -891,14 +921,11 @@ namespace TBF.BenchControl.Output.DB.SensusOracle cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Units.ConvertTo(Unit.kg, tr.MassEnd) }); cmd2.ExecuteNonQuery(); /// Returns nr. of updated rows #else - OracleCommand cmd2 = new OracleCommand("INSERT INTO VT_PRUEFDURCHFLUSS_PD(" + - "ANBID, ID_Pruefstand, ID_WzPruefreihe, PruefungsNr, " + - "PVOL, PMasse, MinDurchfluss, MaxDurchfluss, " + - "Q_ist, KFaktor, Q_VZ, F_VZ, RegelEinstellZeit, Drehzahl, " + - "BeginnDruck_Vorne, BeginnDruck_Hinten, EndDruck_Vorne, EndDruck_Hinten, " + - "TVWZ, IVWZ, Verwendeter_VZ, BeginnGewicht, EndGewicht)" + - " 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); + var cmd2 = new OracleCommand("INSERT INTO vt_pruefdurchfluss_pd(anbid, id_pruefstand, id_wzpruefreihe, pruefungsnr," + + " pvol, pmasse, mindurchfluss, maxdurchfluss, q_ist, kfaktor, q_vz, f_vz, regeleinstellzeit," + + " drehzahl, beginndruck_vorne, beginndruck_hinten, enddruck_vorne, enddruck_hinten," + + " tvwz, ivwz, verwendeter_vz, beginngewicht, endgewicht) " + + "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_StaraTura; cmd2.Parameters.Add(parm); ///:1 parm = new OracleParameter("ID_Pruefstand", OracleDbType.Int32); parm.Value = 18000 + b.TestBenchId; cmd2.Parameters.Add(parm); ///:2 @@ -948,7 +975,7 @@ namespace TBF.BenchControl.Output.DB.SensusOracle /// /// 0-based water meter number /// Sorted list of results to save - void SaveOneIperlToDB(OracleConnection conn, Results.Entities.WaterMeter wm, bool safeMode) + void SaveIperlToDB(OracleConnection conn, Results.Entities.WaterMeter wm, bool safeMode) { if (safeMode && !wm.Passed) return; @@ -989,9 +1016,9 @@ namespace TBF.BenchControl.Output.DB.SensusOracle { if (!dbCfg.TestMode) { - OracleCommand cmd = new OracleCommand("INSERT INTO VT_ZAEHLER_PD(Auftragsnummer, VT_Identnummer, VT_Fernum, Max_Pruefindex," + - " Zaehlernummer, Sekundaere_Adr, Hydr_Pruefung, ID_Benutzer, ANBID, Baujahr)" + - " VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10)", conn); + OracleCommand cmd = new OracleCommand("INSERT INTO vt_zaehler_pd(auftragsnummer, vt_identnummer, vt_fernum, max_pruefindex," + + " zaehlernummer, sekundaere_adr, hydr_pruefung, id_benutzer, anbid, baujahr) " + + "VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10)", conn); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.PurchaseOrder }); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = "IPBATMXX" }); @@ -1016,7 +1043,9 @@ namespace TBF.BenchControl.Output.DB.SensusOracle { if (!dbCfg.TestMode) { - OracleCommand cmd = new OracleCommand("UPDATE VT_ZAEHLER_PD SET Auftragsnummer = :1, VT_Identnummer = :2, Max_Pruefindex = :3, Hydr_Pruefung= :4, ID_Benutzer= :5, Baujahr= :6 WHERE VT_Fernum = :7 and ANBID = :8", conn); + OracleCommand cmd = new OracleCommand("UPDATE vt_zaehler_pd " + + "SET auftragsnummer=:1, vt_identnummer=:2, max_pruefindex=:3, hydr_pruefung=:4, id_benutzer=:5, baujahr=:6 " + + "WHERE vt_fernum = :7 AND anbid = :8", conn); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.PurchaseOrder }); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = "IPBATMXX" }); @@ -1038,11 +1067,11 @@ namespace TBF.BenchControl.Output.DB.SensusOracle if (!dbCfg.TestMode) { - OracleCommand cmd = new OracleCommand("INSERT INTO VT_ZAEHLER_PINDEX_PD(" + - "VT_Fernum, Pruefindex, ANBID, ID_Pruefstand, ID_WzPruefreihe, Hydr_Pruefung, " + - "ReedKontakt, ReedKontaktOK, ReedKontaktZeit, KorrImprate, FestWertWZ, PtestOK, " + - "Zaehlerstand, WT_Platz_NR, WZgut, ID_Benutzer, AnzahlPruefungen)" + - " VALUES (:1, :2, :3, :4, :5, :6, 0, 0, 0, :7, 0, :8, 0, :9, :10, :11, :12)", conn); /// ReedKontakt = ReedKontaktOK = ReedKontaktZeit = FestWertWZ = Zaehlerstand = 0 + OracleCommand cmd = new OracleCommand("INSERT INTO vt_zaehler_pindex_pd(vt_fernum, pruefindex, anbid," + + " id_pruefstand, id_wzpruefreihe, hydr_pruefung, reedkontakt," + + " reedkontaktok, reedkontaktzeit, korrimprate, festwertwz, ptestok," + + " zaehlerstand, wt_platz_nr, wzgut, id_benutzer, anzahlpruefungen) " + + "VALUES (:1, :2, :3, :4, :5, :6, 0, 0, 0, :7, 0, :8, 0, :9, :10, :11, :12)", conn); /// ReedKontakt = ReedKontaktOK = ReedKontaktZeit = FestWertWZ = Zaehlerstand = 0 cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); @@ -1113,10 +1142,10 @@ namespace TBF.BenchControl.Output.DB.SensusOracle { double q2ErrWOCorrection = Math.Min(100.0, Math.Max(-100.0, wm.Q2ErrWOCorrection)); - OracleCommand cmd = new OracleCommand("INSERT INTO VT_IP_ZAEHLER_PINDEX_PD(" + - "VT_Fernum, Pruefindex, ANBID, WITHCORRECTION2HZ, CORRECTION2HZ, DIFF2HZ8HZ, " + - "WITHQ2CORRECTION, Q2CORRECTIONRIGHT, ERRQ2, Q2CORRECTIONFLOWRIGHT, Q2CORRECTIONLEFT)" + - " VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11)", conn); + OracleCommand cmd = new OracleCommand("INSERT INTO vt_ip_zaehler_pindex_pd(vt_fernum, pruefindex, anbid," + + " withcorrection2hz, correction2hz, diff2hz8hz, withq2correction," + + " q2correctionright, errq2, q2correctionflowright, q2correctionleft) " + + "VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11)", conn); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); @@ -1141,11 +1170,11 @@ namespace TBF.BenchControl.Output.DB.SensusOracle /// - /// Write one meter results into the database + /// Write results of one mechanical meter into the database /// /// 0-based water meter number /// Sorted list of results to save - void SaveOneS620ToDB(OracleConnection conn, Results.Entities.WaterMeter wm, bool safeMode) + void SaveMechanicalMeterToDB(OracleConnection conn, Results.Entities.WaterMeter wm, bool safeMode) { if (safeMode && !wm.Passed) return; @@ -1174,32 +1203,41 @@ namespace TBF.BenchControl.Output.DB.SensusOracle wm.Pruefindex = MAX_Pruefindex; wm.HydrPruefung = Hydr_Pruefung; - SaveOrUpdateS620(conn, wm, MAX_Pruefindex, Hydr_Pruefung); + SaveOrUpdateMechanicalMeter(conn, wm, MAX_Pruefindex, Hydr_Pruefung); } - void SaveOrUpdateS620(OracleConnection conn, Results.Entities.WaterMeter wm, int max_Pruefindex, int hydr_Pruefung) + void SaveOrUpdateMechanicalMeter(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; if (max_Pruefindex % 100 == 1) { if (!dbCfg.TestMode) { - OracleCommand cmd = new OracleCommand("INSERT INTO VT_ZAEHLER_PD(Auftragsnummer, VT_Identnummer, VT_Fernum, Max_Pruefindex," + - " Zaehlernummer, Sekundaere_Adr, Hydr_Pruefung, ID_Benutzer, ANBID, Baujahr)" + - " VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10)", conn); + OracleCommand 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.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.PurchaseOrder }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = "IPBATMXX" }); - 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 = -1 }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = sekundaere_Adr }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_StaraTura }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); + 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_StaraTura }); /// :18 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer }); /// :19 cmd.ExecuteNonQuery(); log.InfoFormat("VT_ZAEHLER_PD inserted, PcbNr={0}, pos={1}, maxPruefix={2}", wm.SerialNr, wm.WMPosition, max_Pruefindex); @@ -1213,16 +1251,31 @@ namespace TBF.BenchControl.Output.DB.SensusOracle { if (!dbCfg.TestMode) { - OracleCommand cmd = new OracleCommand("UPDATE VT_ZAEHLER_PD SET Auftragsnummer = :1, VT_Identnummer = :2, Max_Pruefindex = :3, Hydr_Pruefung= :4, ID_Benutzer= :5, Baujahr= :6 WHERE VT_Fernum = :7 and ANBID = :8", 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 }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = "IPBATMXX" }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_StaraTura }); + 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_StaraTura }); /// :19 cmd.ExecuteNonQuery(); log.InfoFormat("VT_ZAEHLER_PD updated, PcbNr={0}, pos={1}, maxPruefix={2}", wm.SerialNr, wm.WMPosition, max_Pruefindex); @@ -1235,11 +1288,10 @@ namespace TBF.BenchControl.Output.DB.SensusOracle if (!dbCfg.TestMode) { - OracleCommand cmd = new OracleCommand("INSERT INTO VT_ZAEHLER_PINDEX_PD(" + - "VT_Fernum, Pruefindex, ANBID, ID_Pruefstand, ID_WzPruefreihe, Hydr_Pruefung, " + - "ReedKontakt, ReedKontaktOK, ReedKontaktZeit, KorrImprate, FestWertWZ, PtestOK, " + - "Zaehlerstand, WT_Platz_NR, WZgut, ID_Benutzer, AnzahlPruefungen)" + - " VALUES (:1, :2, :3, :4, :5, :6, 0, 0, 0, :7, 0, :8, 0, :9, :10, :11, :12)", conn); /// ReedKontakt = ReedKontaktOK = ReedKontaktZeit = FestWertWZ = Zaehlerstand = 0 + OracleCommand cmd = new OracleCommand("INSERT INTO vt_zaehler_pindex_pd(vt_fernum, pruefindex, anbid, id_pruefstand, id_wzpruefreihe," + + " hydr_pruefung, reedkontakt, reedkontaktok, reedkontaktzeit, korrimprate, festwertwz, ptestok," + + " zaehlerstand, wt_platz_nr, wzgut, id_benutzer, anzahlpruefungen) " + + "VALUES (:1, :2, :3, :4, :5, :6, 0, 0, 0, :7, 0, :8, 0, :9, :10, :11, :12)", conn); /// ReedKontakt = ReedKontaktOK = ReedKontaktZeit = FestWertWZ = Zaehlerstand = 0 cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); @@ -1320,27 +1372,26 @@ namespace TBF.BenchControl.Output.DB.SensusOracle if (!dbCfg.TestMode) { - OracleCommand cmd = new OracleCommand("INSERT INTO VT_PRUEFREIHE_IST_PD(" + - "VT_Fernum, Pruefindex, PruefungsNr, ANBID, ID_WZTyp, Rev_WZTyp, Rev_WZPruefpunkt, " + - "Q_WZ, Q_Fehler, Q_Best, NIZ, AnfangZStand, EndZStand, " + - "KorrErrQok, KorrErrQ, KorrQWz, TIZ, Vol_WZ_US, TempMittel_US)" + - " VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, 0, :14, 0, :15, 0, 0)", conn); + OracleCommand cmd = new OracleCommand("INSERT INTO vt_pruefreihe_ist_pd( vt_fernum, pruefindex, pruefungsnr, anbid," + + " id_wztyp, rev_wztyp, rev_wzpruefpunkt, q_wz, q_fehler, q_best, niz," + + " anfangzstand, endzstand, korrerrqok, korrerrq, korrqwz, tiz, vol_wz_us, tempmittel_us) " + + "VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, 0, :14, 0, :15, 0, 0)", conn); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = mtr.WaterMeter.SerialNr }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = pruefungsNr }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_StaraTura }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = mtr.WaterMeter.WaterMeterData.WMTypeId }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeRevision }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 1 }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Q_wm_with_upper_bound }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Min(100.0, Math.Max(-100.0, mtr.Error)) }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = mtr.Passed ? 1 : 0 }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Max(-99999.999, Math.Min(mtr.VolumeStart, 99999.999)) }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Max(-99999.999, Math.Min(mtr.VolumeEnd, 99999.999)) }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Min(100.0, Math.Max(-100.0, mtr.KorrErrQ)) }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Min(100000, mtr.TestTime) }); + 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_StaraTura }); /// :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 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Q_wm_with_upper_bound }); /// :8 q_wz + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Min(100.0, Math.Max(-100.0, mtr.Error)) }); /// :9 q_fehler + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = mtr.Passed ? 1 : 0 }); /// :10 q_best + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :11 niz + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Max(-99999.999, Math.Min(mtr.VolumeStart, 99999.999)) }); /// :12 anfangzstand + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Max(-99999.999, Math.Min(mtr.VolumeEnd, 99999.999)) }); /// :13 endzstand + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Min(100.0, Math.Max(-100.0, mtr.KorrErrQ)) }); /// :14 korrerrq + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Min(100000, mtr.TestTime) }); /// :15 tiz retv = cmd.ExecuteNonQuery(); log.DebugFormat("VT_PRUEFREIHE_IST_PD inserted, PcbNr={0}, pruefungsNr={1}, error={2}", mtr.WaterMeter.SerialNr, pruefungsNr, mtr.Error); diff --git a/TBF/BenchControl/Output/DB/SensusOracle/ProcedureParams.cs b/TBF/BenchControl/Output/DB/SensusOracle/ProcedureParams.cs index b30d71ecf..b1224b029 100644 --- a/TBF/BenchControl/Output/DB/SensusOracle/ProcedureParams.cs +++ b/TBF/BenchControl/Output/DB/SensusOracle/ProcedureParams.cs @@ -2,13 +2,14 @@ /// Copyright (c) 2020 Sensus Slovensko a.s. /// using System; +using System.Collections.Generic; using System.IO; using System.Text; using System.Xml.Serialization; using Config.Entities; +using Results.Output; using TBF.BenchControl.Generic; using TBF.Resources; -using System.Collections.Generic; namespace TBF.BenchControl.Output.DB.SensusOracle { @@ -17,76 +18,87 @@ namespace TBF.BenchControl.Output.DB.SensusOracle public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0]; public override XmlSerializer GetSerializer() { return Serializer; } - public DBUsed DBUsed; /// 0 - public WMKind WMKind; /// 1 - public int WMTypeId; /// 2 - public int YearOfManufacture; /// 3 - public bool SaveResults; /// 4 - public bool ReadStartInfo; /// 5 - public bool StartInfoIsRequired; /// 6 - - public override void InitializeAll() - { - DBUsed = DBUsed.Production; /// 0 - WMKind = WMKind.Iperl; /// 1 - WMTypeId = 2; /// 2 - YearOfManufacture = DateTime.Now.Year; /// 3 -#if TURA_SPECIAL - SaveResults = false; /// 4 -#else - SaveResults = true; /// 4 -#endif - ReadStartInfo = true; /// 5 - StartInfoIsRequired = false; /// 6 - } + public DBUsed DBUsed; /// 0 + public WMKind WMKind; /// 1 + public int WMTypeId; /// 2 + public int YearOfManufacture; /// 3 + public bool SaveResults; /// 4 + public bool ReadStartInfo; /// 5 + public bool StartInfoIsRequired; /// 6 + public DesigMode DesigMode; /// 7 + public Results.Output.LogType DesigType; /// 8 + + public override void InitializeAll() + { + DBUsed = DBUsed.Production; /// 0 + WMKind = WMKind.iPERL; /// 1 + WMTypeId = 2; /// 2 + YearOfManufacture = DateTime.Now.Year; /// 3 +#if TURA_SPECIAL + SaveResults = false; /// 4 +#else + SaveResults = true; /// 4 +#endif + ReadStartInfo = true; /// 5 + StartInfoIsRequired = false; /// 6 + DesigMode = DesigMode.Auto; /// 7 + DesigType = Results.Output.LogType.Just_Q3Q2Q1; /// 8 + } string[] paramNames = new string[] { - "Database", /// 0 - "Kind of WMs", /// 1 - "WM type ID", /// 2 - "Year of manufacture", /// 3 - "Save results", /// 4 - "Read start info", /// 5 - "Start info is required", /// 6 + "Database", /// 0 + "Kind of WMs", /// 1 + "WM type ID", /// 2 + "Year of manufacture", /// 3 + "Save results", /// 4 + "Read start info", /// 5 + "Start info is required", /// 6 + "Designation Mode", /// 7 + "Designation when mode is 'As_specified'", /// 8 }; public override string ParamName(int i) { return paramNames[i]; } public override int ParamsCount() { return paramNames.Length; } public override IList ParamValues(int i) { - if (i == 0) - { - IList retVal = new List(); - for (DBUsed db = 0; db < DBUsed.Count; db++) retVal.Add(db.ToString()); - return retVal; - } + IList retVal = new List(); - if (i == 1) + switch (i) { - IList retVal = new List(); - for (WMKind wm = 0; wm < WMKind.Count; wm++) retVal.Add(wm.ToString()); - return retVal; - } + case 0: + for (DBUsed db = 0; db < DBUsed.Count; db++) retVal.Add(db.ToString()); + return retVal; - if (i == 3) - { - IList retVal = new List(); - int year = DateTime.Now.Year; - retVal.Add(year.ToString()); - retVal.Add((year + 1).ToString()); - return retVal; - } + case 1: + for (WMKind wm = 0; wm < WMKind.Count; wm++) retVal.Add(wm.ToString()); + return retVal; - if (i == 4 || i == 5 || i == 6) - { - IList retVal = new List(); - retVal.Add(Strings.yes); - retVal.Add(Strings.no); - return retVal; - } + case 2: + default: + return null; - return null; + case 3: + int year = DateTime.Now.Year; + retVal.Add(year.ToString()); + retVal.Add((year + 1).ToString()); + return retVal; + + case 4: + case 5: + case 6: + retVal.Add(Strings.yes); + retVal.Add(Strings.no); + return retVal; + + case 7: + for (DesigMode md = 0; md < DesigMode.Count; md++) retVal.Add(md.ToString()); + return retVal; + + case 8: + for (Results.Output.LogType wm = 0; wm < Results.Output.LogType.Count; wm++) retVal.Add(wm.ToString()); + return retVal; + } } public override string ToString(int i) @@ -100,6 +112,8 @@ namespace TBF.BenchControl.Output.DB.SensusOracle case 4: return SaveResults ? Strings.yes : Strings.no; case 5: return ReadStartInfo ? Strings.yes : Strings.no; case 6: return StartInfoIsRequired ? Strings.yes : Strings.no; + case 7: return DesigMode.ToString(); + case 8: return DesigType.ToString(); default: return string.Empty; } } @@ -136,7 +150,29 @@ namespace TBF.BenchControl.Output.DB.SensusOracle case 4: SaveResults = (strValue == Strings.yes); break; case 5: ReadStartInfo = (strValue == Strings.yes); break; case 6: StartInfoIsRequired = (strValue == Strings.yes); break; - } + + case 7: + for (DesigMode db = 0; db < DesigMode.Count; db++) + { + if (db.ToString() == strValue) + { + DesigMode = db; + return CfgUpdateFlags.None; + } + } + break; + + case 8: + for (Results.Output.LogType wm = 0; wm < Results.Output.LogType.Count; wm++) + { + if (wm.ToString() == strValue) + { + DesigType = wm; + return CfgUpdateFlags.None; + } + } + break; + } return CfgUpdateFlags.None; } @@ -180,6 +216,20 @@ namespace TBF.BenchControl.Output.DB.SensusOracle return true; break; + case 7: + for (DesigMode db = 0; db < DesigMode.Count; db++) + { + if (db.ToString() == strValue) return true; + } + break; + + case 8: + for (Results.Output.LogType wm = 0; wm < Results.Output.LogType.Count; wm++) + { + if (wm.ToString() == strValue) return true; + } + break; + default: message = "Invalid index"; return false; @@ -198,7 +248,9 @@ namespace TBF.BenchControl.Output.DB.SensusOracle prms.SaveResults = this.SaveResults; prms.ReadStartInfo = this.ReadStartInfo; prms.StartInfoIsRequired = this.StartInfoIsRequired; - } + prms.DesigMode = this.DesigMode; + prms.DesigType = this.DesigType; + } public IParamsProvider Clone() {