254 lines
16 KiB
C#
254 lines
16 KiB
C#
///
|
|
/// Copyright (c) 2021 Sensus Slovensko a.s.
|
|
///
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using log4net;
|
|
#if MANAGED
|
|
using Oracle.ManagedDataAccess.Client;
|
|
#else
|
|
using Oracle.DataAccess.Client;
|
|
#endif
|
|
using Common;
|
|
|
|
namespace TBF.Rig.Output.DB.SensusOracle
|
|
{
|
|
public class VtAuftragPd
|
|
{
|
|
private static readonly ILog log = LogManager.GetLogger(typeof(VtAuftragPd));
|
|
|
|
public string Auftragsnummer;
|
|
public int Produktion_anbid;
|
|
public int Produktion_id_anlage;
|
|
public int Produktion_usestate;
|
|
public string Kd_auftr_nr;
|
|
public string Kd_auftr_pos;
|
|
public int Geraetetyp;
|
|
public string Variantencode;
|
|
public string Status;
|
|
public int Anbid;
|
|
public int Id_benutzer;
|
|
public DateTime Erfasst_am;
|
|
public DateTime Sollende;
|
|
public int Sollstueck;
|
|
public int Iststueck;
|
|
public int Stopbeiiststueck;
|
|
public int Sollstueckueberproduktion;
|
|
public int Kunden_z_nr;
|
|
public int Zaehlerinkrement;
|
|
public int Erste_zaehlernr;
|
|
public string Prefix;
|
|
public bool Prefix_flag;
|
|
public string Suffix;
|
|
public bool Suffix_flag;
|
|
public bool Zaehlernummer_bc_flag;
|
|
public bool Mbus_adr_flag;
|
|
public int Mbus_adr;
|
|
public int Mbus_adr_schritte;
|
|
public bool Liegenschafts_nr_flag;
|
|
public long Liegenschafts_nr;
|
|
public int Liegenschafts_nr_schritte;
|
|
public bool Sekundaere_adr_flag;
|
|
public int Sekundaere_adr;
|
|
public int Sekundaere_adr_schritte;
|
|
public bool Kdartnr_flag;
|
|
public string Kdartnr;
|
|
public string Kdlogoname;
|
|
public byte Eich_jahr_simple;
|
|
public string Zusatztext;
|
|
public int Zaehlwerk;
|
|
public int Modul;
|
|
public bool Archiv;
|
|
public int Prioritaet;
|
|
public int Umkarton;
|
|
public int Paletteumkarton;
|
|
public int Usestate;
|
|
public int Znrlaenge;
|
|
public DateTime Changedate;
|
|
public string Modul_param;
|
|
|
|
/// <summary>
|
|
/// Default constructor
|
|
/// </summary>
|
|
public VtAuftragPd()
|
|
{
|
|
}
|
|
|
|
static public VtAuftragPd FromOrderInfo(IOrderInfo orderInfo, Config.Entities.Procedure procedure, int idBenutzer)
|
|
{
|
|
VtAuftragPd rslt = new VtAuftragPd
|
|
{
|
|
Auftragsnummer = orderInfo.POName,
|
|
Produktion_anbid = Database.ProducerAnbid,
|
|
Produktion_id_anlage = 4,
|
|
Produktion_usestate = 0,
|
|
Kd_auftr_nr = null,
|
|
Kd_auftr_pos = null,
|
|
Geraetetyp = 0,
|
|
Variantencode = orderInfo.VariantCode,
|
|
Status = "NEU",
|
|
Anbid = Database.ProducerAnbid,
|
|
Id_benutzer = idBenutzer,
|
|
Erfasst_am = DateTime.Now,
|
|
Sollende = DateTime.Now + new TimeSpan(7,0,0,0),
|
|
Sollstueck = orderInfo.PiecesCount,
|
|
Iststueck = 0,
|
|
Stopbeiiststueck = orderInfo.PiecesCount,
|
|
Sollstueckueberproduktion = 0,
|
|
Kunden_z_nr = 0,
|
|
Zaehlerinkrement = 1,
|
|
Erste_zaehlernr = orderInfo.SNFirst,
|
|
Prefix = string.IsNullOrEmpty(orderInfo.SNPrefix) ? null : orderInfo.SNPrefix,
|
|
Prefix_flag = !string.IsNullOrEmpty(orderInfo.SNPrefix),
|
|
Suffix = string.IsNullOrEmpty(orderInfo.SNSuffix) ? null : orderInfo.SNSuffix,
|
|
Suffix_flag = !string.IsNullOrEmpty(orderInfo.SNSuffix),
|
|
Zaehlernummer_bc_flag = false,
|
|
Mbus_adr_flag = false,
|
|
Mbus_adr = 0,
|
|
Mbus_adr_schritte = 0,
|
|
Liegenschafts_nr_flag = false,
|
|
Liegenschafts_nr = 0,
|
|
Liegenschafts_nr_schritte = 0,
|
|
Sekundaere_adr_flag = false,
|
|
Sekundaere_adr = 0,
|
|
Sekundaere_adr_schritte = 0,
|
|
Kdartnr_flag = false,
|
|
Kdartnr = "S640CFV1", /// TODO
|
|
Kdlogoname = null,
|
|
Eich_jahr_simple = 21, /// TODO
|
|
Zusatztext = orderInfo.Remark,
|
|
Zaehlwerk = 68118031, /// TODO
|
|
Modul = 0,
|
|
Archiv = false,
|
|
Prioritaet = 0,
|
|
Umkarton = 10, /// TODO
|
|
Paletteumkarton = 20, /// TODO
|
|
Usestate = 0,
|
|
Znrlaenge = orderInfo.SNDigitsCount,
|
|
Changedate = DateTime.Now,
|
|
Modul_param = orderInfo.ModuleParam,
|
|
};
|
|
|
|
return rslt;
|
|
}
|
|
|
|
|
|
public int Write(OracleConnection conn, bool aktiv = true)
|
|
{
|
|
var cmd = new OracleCommand("INSERT INTO vt_auftrag_pd(auftragsnummer, produktion_anbid, produktion_id_anlage," +
|
|
" produktion_usestate, kd_auftr_nr, kd_auftr_pos, geraetetyp, variantencode, status," +
|
|
" anbid, id_benutzer, erfasst_am, sollende, sollstueck, iststueck, stopbeiiststueck," +
|
|
" sollstueckueberproduktion, kunden_z_nr, zaehlerinkrement, erste_zaehlernr, prefix," +
|
|
" prefix_flag, suffix, suffix_flag, zaehlernummer_bc_flag, mbus_adr_flag, mbus_adr," +
|
|
" mbus_adr_schritte, liegenschafts_nr_flag, liegenschafts_nr, liegenschafts_nr_schritte," +
|
|
" sekundaere_adr_flag, sekundaere_adr, sekundaere_adr_schritte, kdartnr_flag, kdartnr," +
|
|
" kdlogoname, eich_jahr_simple, zusatztext, zaehlwerk, modul, archiv, prioritaet," +
|
|
" umkarton, paletteumkarton, usestate, znrlaenge, changedate, modul_param) " +
|
|
"VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16," +
|
|
" :17, :18, :19, :20, :21, :22, :23, :24, :25, :26, :27, :28, :29, :30, :31, :32, :33," +
|
|
" :34, :35, :36, :37, :38, :39, :40, :41, :42, :43, :44, :45, :46, :47, :48, :49)", conn);
|
|
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Auftragsnummer }); /// :1
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Produktion_anbid }); /// :2
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Produktion_id_anlage }); /// :3
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Produktion_usestate }); /// :4
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Kd_auftr_nr }); /// :5
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Kd_auftr_pos }); /// :6
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Geraetetyp }); /// :7
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Variantencode }); /// :8
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Status }); /// :9
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid }); /// :10
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Id_benutzer }); /// :11
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = Erfasst_am }); /// :12
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = Sollende }); /// :13
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Sollstueck }); /// :14
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Iststueck }); /// :15
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Stopbeiiststueck }); /// :16
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Sollstueckueberproduktion }); /// :17
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Kunden_z_nr }); /// :18
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Zaehlerinkrement }); /// :19
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Erste_zaehlernr }); /// :20
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Prefix }); /// :21
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Prefix_flag ? -1 : 0 }); /// :22
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Suffix }); /// :23
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Suffix_flag ? -1 : 0 }); /// :24
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Zaehlernummer_bc_flag ? -1 : 0 }); /// :25
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Mbus_adr_flag ? -1 : 0 }); /// :26
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Mbus_adr }); /// :27
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Mbus_adr_schritte }); /// :28
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Liegenschafts_nr_flag ? -1 : 0 }); /// :29
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int64, Value = Liegenschafts_nr }); /// :30
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Liegenschafts_nr_schritte }); /// :31
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Sekundaere_adr_flag ? -1 : 0 }); /// :32
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Sekundaere_adr }); /// :33
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Sekundaere_adr_schritte }); /// :34
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Kdartnr_flag ? -1 : 0 }); /// :35
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Kdartnr }); /// :36
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Kdlogoname }); /// :37
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Eich_jahr_simple }); /// :38
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Zusatztext }); /// :39
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Zaehlwerk }); /// :40
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Modul }); /// :41
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Archiv }); /// :42
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Prioritaet }); /// :43
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Umkarton }); /// :44
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Paletteumkarton }); /// :45
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Usestate }); /// :46
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Znrlaenge }); /// :47
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = Changedate }); /// :48
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Modul_param }); /// :49
|
|
///
|
|
return cmd.ExecuteNonQuery();
|
|
}
|
|
|
|
|
|
public static IList<OrderDetails> Read(OracleConnection conn, string poName)
|
|
{
|
|
var cmd = new OracleCommand("SELECT status, variantencode, erste_zaehlernr, prefix, suffix," +
|
|
" zaehlwerk, erfasst_am, sollende, sollstueck, zusatztext, znrlaenge, modul_param " +
|
|
"FROM vt_auftrag_pd " +
|
|
"WHERE auftragsnummer=:1 AND produktion_anbid=:2", conn);
|
|
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = poName }); /// :1
|
|
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Database.ProducerAnbid }); /// :2
|
|
|
|
var rslt = new List<OrderDetails>();
|
|
OracleDataReader dr = cmd.ExecuteReader();
|
|
|
|
while (dr.Read())
|
|
{
|
|
int i = 0;
|
|
string status = 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; }
|
|
|
|
rslt.Add(new OrderDetails { POName = poName,
|
|
VariantCode = variantencode,
|
|
SNFirst = erste_zaehlernr,
|
|
SNPrefix = prefix,
|
|
SNSuffix = suffix,
|
|
Zaehlwerk = zaehlwerk,
|
|
Created = erfasst_am,
|
|
DueDate = sollende,
|
|
PiecesCount = sollstueck,
|
|
Remark = zusatztext,
|
|
SNDigitsCount = znrlaenge,
|
|
ModuleParam = modul_param });
|
|
}
|
|
dr.Close();
|
|
|
|
return rslt;
|
|
}
|
|
}
|
|
}
|