using System; using System.Collections.Generic; using System.Text; using De.Lambertz.Portal; using System.Data.SqlClient; using System.Windows.Forms; using De.Lambertz.Tools; using System.Data; namespace De.Lambertz.ODAL { public class ODALBestellungsRumpf { protected int nummer = 0; protected string besteller = null; protected int bereich = 0; protected DateTime freiAm1; protected DateTime freiAm2; protected DateTime freiAm3; protected DateTime freiAmTE; protected int freiVon1 = 0; protected int freiVon2 = 0; protected int freiVon3 = 0; protected int freiVonTE = 0; protected int tE = 0; protected string sonderGrund = ""; protected DateTime finaleFreigabeAm; protected int finaleFreigabeVon = 0; //KENNZAHL!!!! protected double bestellWert = 0; protected int druckVon = 0; private String wkz = null; private String wdz = "€"; private Konstanten.Priorität priorität = Konstanten.Priorität.ohneAussage; // private bool istAnfrage = false; private bool gelöscht = false; public ODALBestellungsRumpf() { } public ODALBestellungsRumpf(int bestellNr) { this.nummer = bestellNr; } public bool Gelöscht { get { return gelöscht; } set { gelöscht = value; } } public String Wkz { get { return wkz; } set { wkz = value; wdz = WährungsSingelton.GetInstance().DruckZeichenFür(wkz); } } public bool IstAnfrage { get { return istAnfrage; } set { istAnfrage = value; } } public int DruckVon { get { return druckVon; } set { druckVon = value; } } public double BestellWert { get { return bestellWert; } set { bestellWert = value; } } public int Nummer { get { return nummer; } set { nummer = value; } } public string Besteller { get { return besteller; } set { besteller = value; } } public int Bereich { get { return bereich; } set { bereich = value; } } public DateTime FreiAm1 { get { return freiAm1; } set { freiAm1 = value; } } public DateTime FreiAm2 { get { return freiAm2; } set { freiAm2 = value; } } public DateTime FreiAm3 { get { return freiAm3; } set { freiAm3 = value; } } public int FreiVon3 { get { return freiVon3; } set { freiVon3 = value; } } public int FreiVon2 { get { return freiVon2; } set { freiVon2 = value; } } public int FreiVon1 { get { return freiVon1; } set { freiVon1 = value; } } public DateTime FreiAmTE { get { return freiAmTE; } set { freiAmTE = value; } } public int FreiVonTE { get { return freiVonTE; } set { freiVonTE = value; } } public string SonderGrund { get { return sonderGrund; } set { sonderGrund = value; } } public DateTime FinaleFreigabeAm { get { return finaleFreigabeAm; } set { finaleFreigabeAm = value; } } public int FinaleFreigabeVon { get { return finaleFreigabeVon; } set { finaleFreigabeVon = value; } } public int FreigabeKennzeichen { get { return finaleFreigabeVon; } set { finaleFreigabeVon = value; } } public bool IstInBearbeitung() { bool result = false; SqlConnection con = getConnection(); StringBuilder sql = new StringBuilder(); sql.Append("select BESTELLUNGSNR "); sql.Append("from ODAL.BESTELLUNGSLOCK "); sql.Append("where BESTELLUNGSNR = "); sql.Append(this.nummer); SqlCommand command = new SqlCommand(sql.ToString(), con); SqlDataReader reader = command.ExecuteReader(); if (reader.Read()) { result = true; } reader.Close(); returnConnection(con); return result; } public void InBearbeitungMarkierungEntfernen() { SqlConnection con = getConnection(); StringBuilder sql = new StringBuilder(); sql.Append("delete from ODAL.BESTELLUNGSLOCK where BESTELLUNGSNR = "); sql.Append(this.nummer); SqlCommand command = new SqlCommand(sql.ToString(), con); try { command.ExecuteNonQuery(); } catch (Exception) { //Nothing } returnConnection(con); } public bool IstFreigegeben() { bool result = false; if ((this.finaleFreigabeVon != 0 && bereich <10000) || (bereich>10000 && this.FinaleFreigabeVon == 11)) { result = true; } return result; } public bool InBearbeitungMarkierungSetzten() { bool result = true; result = !IstInBearbeitung(); if (result) { SqlConnection con = getConnection(); StringBuilder sql = new StringBuilder(); sql.Append("insert into ODAL.BESTELLUNGSLOCK (BESTELLUNGSNR) values ("); sql.Append(this.nummer); sql.Append(")"); SqlCommand command = new SqlCommand(sql.ToString(), con); try { command.ExecuteNonQuery(); } catch (Exception) { result = false; } returnConnection(con); } return result; } public bool Markieren(List userListe) { bool result = false; if (this.nummer != 0) { //Liste Bereinigen //Es wird nur bei Usern (Vertretungen) markiert, die den Bereich dieser Bestellung zugewiesen haben List bereinigteUserListe = new List(); foreach (int u in userListe) { if (UserSingelton.GetInstance().AlleUser.ContainsKey(u)) { if (UserSingelton.GetInstance().AlleUser[u].userHatBereich(this.bereich)) { bereinigteUserListe.Add(u); } } } //Auswahl der User bei denen markiert werden soll FALLS es mehr als einen User gibt bei dem markiert werden könnte List ergebnisUserListe = null; ; if (bereinigteUserListe.Count > 1) { FrmSELECTMarkierenBeiVertretungen f = new FrmSELECTMarkierenBeiVertretungen(bereinigteUserListe); f.ShowDialog(); ergebnisUserListe = f.AusgewählteUser; f.Dispose(); } else { ergebnisUserListe = new List(); foreach (int u in bereinigteUserListe) { ergebnisUserListe.Add(u); } } if (ergebnisUserListe != null) { SqlConnection con = getConnection(); SqlConnection con2 = getConnection(); foreach (int userNr in ergebnisUserListe) { StringBuilder sql = new StringBuilder(); // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 sql.Append("select BESTELLNR "); sql.Append("from ODAL.ODALMARKBEST "); sql.Append("where BESTELLNR = "); sql.Append(this.nummer); sql.Append(" and USERNR = "); sql.Append(userNr); SqlCommand command = new SqlCommand(sql.ToString(), con); SqlDataReader reader = command.ExecuteReader(); if (!reader.Read()) { try { sql = new StringBuilder(); sql.Append("insert into ODAL.ODALMARKBEST "); sql.Append("(BESTELLNR, USERNR) "); sql.Append("VALUES ("); sql.Append(this.nummer); sql.Append(", "); sql.Append(userNr); sql.Append(")"); command = new SqlCommand(sql.ToString(), con2); command.ExecuteNonQuery(); result = true; } catch (Exception ) { result = false; } } reader.Close(); } returnConnection(con); returnConnection(con2); } } return result; } public bool MarkierungEntfernen(List userListe) { bool result = false; if (this.nummer != 0) { SqlConnection con = getConnection(); SqlConnection con2 = getConnection(); //Markierung wird bei allen Usern (Vertretung) die diese Bestellung markiert haben entfernt. foreach (int userNr in userListe) { StringBuilder sql = new StringBuilder(); // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 sql.Append("select BESTELLNR "); sql.Append("from ODAL.ODALMARKBEST "); sql.Append("where BESTELLNR = "); sql.Append(this.nummer); sql.Append(" and USERNR = "); sql.Append(userNr); SqlCommand command = new SqlCommand(sql.ToString(), con); SqlDataReader reader = command.ExecuteReader(); if (reader.Read()) { try { sql = new StringBuilder(); sql.Append("delete from ODAL.ODALMARKBEST "); sql.Append("where BESTELLNR = "); sql.Append(this.nummer); sql.Append(" and USERNR = "); sql.Append(userNr); command = new SqlCommand(sql.ToString(), con2); command.ExecuteNonQuery(); result = true; } catch (Exception) { result = false; } } reader.Close(); } returnConnection(con); returnConnection(con2); } return result; } public bool FreigebenTE() { bool result = true; SqlConnection con = getConnection(); int userId = UserSingelton.GetInstance().UserID; DateTime jetzt = DateTime.Now; try { StringBuilder sql = new StringBuilder(); sql.Append("update ODAL.BESTELLUNGEN set"); sql.Append(" TEVON = "); sql.Append(userId); sql.Append(", TEAM = "); sql.Append(DBTools.Dat(jetzt)); sql.Append(", TE = 0"); sql.Append(" where BESTELLUNGSNR = "); sql.Append(nummer); SqlCommand command = new SqlCommand(sql.ToString(), con); command.ExecuteNonQuery(); freiVonTE = userId; freiAmTE = jetzt; TE = 0; int user = 0; if (this.FreiVon1 == 0) { user = UserSingelton.GetInstance().Bereiche[this.bereich].Freigeber1; } else if(this.FreiVon2 == 0) { user = UserSingelton.GetInstance().Bereiche[this.bereich].Freigeber2; } else if (this.FreiVon3 == 0) { user = UserSingelton.GetInstance().Bereiche[this.bereich].Freigeber3; } String par = UserSingelton.GetInstance().Parameter.GetValue("FREIGEBER", "Mail", false); if (par != "1" && par != "2") { Tools.InfoBox(ML.GetInstance().Txt(ML.MSG_NAECHSTER_FREIGEBER_P1, UserSingelton.GetInstance().AlleUser[user].Name)); } this.MailAnNächstenFreigeber(); } catch (Exception) { result = false; } returnConnection(con); return result; } public bool Freigeben(bool finaleFreigabe) { bool result = true; SqlConnection con = getConnection(); int userId = UserSingelton.GetInstance().UserID; int teVorFreigabe = UserSingelton.GetInstance().Bereiche[bereich].TeFreigabeVorFreigabe; DateTime jetzt = DateTime.Now; string token = " "; int nextFreigeber = 0; try { StringBuilder sql = new StringBuilder(); sql.Append("update ODAL.BESTELLUNGEN set"); if (freiVon1 == 0) { freiVon1 = userId; freiAm1 = jetzt; sql.Append(token); sql.Append("FRVON1 = "); sql.Append(userId); sql.Append(", FRAM1 = "); sql.Append(DBTools.Dat(jetzt)); if (teVorFreigabe == 2 && !finaleFreigabe) { sql.Append(", TE = 1"); tE = 1; } token = ", "; nextFreigeber = UserSingelton.GetInstance().Bereiche[bereich].Freigeber2; } else if (freiVon2 == 0) { freiVon2 = userId; freiAm2 = jetzt; sql.Append(token); sql.Append("FRVON2 = "); sql.Append(userId); sql.Append(", FRAM2 = "); sql.Append(DBTools.Dat(jetzt)); if (teVorFreigabe == 3 && !finaleFreigabe) { sql.Append(", TE = 1"); tE = 1; } token = ", "; nextFreigeber = UserSingelton.GetInstance().Bereiche[bereich].Freigeber3; } else if (freiVon3 == 0) { freiVon3 = userId; freiAm3 = jetzt; sql.Append(token); sql.Append("FRVON3 = "); sql.Append(userId); sql.Append(", FRAM3 = "); sql.Append(DBTools.Dat(jetzt)); token = ", "; } if (finaleFreigabe) { finaleFreigabeVon = userId; finaleFreigabeAm = jetzt; sql.Append(token); sql.Append("FREIGABEVON = "); sql.Append(userId); sql.Append(", FREIGABEAM = "); sql.Append(DBTools.Dat(jetzt)); } sql.Append(" where BESTELLUNGSNR = "); sql.Append(nummer); SqlCommand command = new SqlCommand(sql.ToString(), con); command.ExecuteNonQuery(); //InfoBox anzeigen, wer nächster Freigeber ist, nur wenn keine Mail versendet werden soll String par = UserSingelton.GetInstance().Parameter.GetValue("FREIGEBER", "Mail", false); if (par != "1" && par != "2" && !finaleFreigabe) { Tools.InfoBox(ML.GetInstance().Txt(ML.MSG_NAECHSTER_FREIGEBER_P1, UserSingelton.GetInstance().AlleUser[nextFreigeber].Name)); } this.MailAnNächstenFreigeber(); } catch (Exception) { result = false; } returnConnection(con); return result; } /// /// Sendet eine Mail an den nächsten Freigeber in der Reihe aber nicht an den TE /// MACHT NIX MEHR!!! /// public void MailAnNächstenFreigeber() { //UserSingelton us = UserSingelton.GetInstance(); //Bestimmen ob Mail versendet werden soll und ob mit Anhang erstellt werden soll. //String par = us.Parameter.GetValue("FREIGEBER", "Mail", false); //if (par == "1" || par == "2") //{ // if (us.Bereiche.ContainsKey(this.bereich)) // { // ODALUser ou = null; // ODALBereich bereich = us.Bereiche[this.bereich]; // if (bereich.Freigeber1 != 0 && this.freiVon1 == 0 && this.bestellWert >= bereich.Freigabe1) // { // if (bereich.TeFreigabeVorFreigabe != 1 || this.freiVonTE != 0) // { // if (us.AlleUser.ContainsKey(bereich.Freigeber1)) // { // ou = us.AlleUser[bereich.Freigeber1]; // } // } // } // else if (bereich.Freigeber2 != 0 && this.freiVon2 == 0 && this.bestellWert >= bereich.Freigabe2) // { // if (bereich.TeFreigabeVorFreigabe != 2 || this.freiVonTE != 0) // { // if (us.AlleUser.ContainsKey(bereich.Freigeber2)) // { // ou = us.AlleUser[bereich.Freigeber2]; // } // } // } // else if (bereich.Freigeber3 != 0 && this.freiVon3 == 0 && this.bestellWert >= bereich.Freigabe3) // { // if (bereich.TeFreigabeVorFreigabe != 3 || this.freiVonTE != 0) // { // if (us.AlleUser.ContainsKey(bereich.Freigeber3)) // { // ou = us.AlleUser[bereich.Freigeber3]; // } // } // } // if (ou != null && !String.IsNullOrEmpty(ou.EMail)) // { // if (par == "1") // { // DialogResult dr = Tools.QuestionBox(ML.GetInstance().Txt(ML.MSG_FRAGE_MAIL_AN_FOLGENDEN_FREIGEBER_P1, ou.Name)); // if (dr == DialogResult.Yes) // { // par = "2"; // } // } // if (par == "2") // { // bool mitAttachment = false; // if (us.Parameter.GetValue("FREIGEBER", "Anhang", false) == "1") // { // mitAttachment = true; // } // ODALMailer om = new ODALMailer(this.nummer); // om.SendEmail(ou.EMail, ML.GetInstance().Txt(ML.XXX_BITTE_UM_FREIGABE_P1, this.nummer.ToString()), ODALMailer.SUBJECT_FREIGABE, mitAttachment); // Tools.InfoBox(ML.GetInstance().Txt(ML.MSG_MAIL_GESENDET_P1, ou.Name)); // } // } // } //} } public bool FreigabeKennzeichenSpeichern(int kennzahl) { bool result = true; using (SqlConnection con = new SqlConnection(DBTools.ConnectionStringODAL())) { con.Open(); DateTime jetzt = DateTime.Now; try { String sql = "update ODAL.BESTELLUNGEN set FREIGABEVON = @p1, FREIGABEAM = null where BESTELLUNGSNR = @p2"; SqlCommand cmd = new SqlCommand(sql, con); cmd.Parameters.AddWithValue("@p1", kennzahl); cmd.Parameters.AddWithValue("@p2", this.nummer); cmd.ExecuteNonQuery(); } catch (Exception) { result = false; } } return result; } public void FreigabenEntfernen() { SqlConnection con = getConnection(); try { ODALBereich ber = UserSingelton.GetInstance().Bereiche[this.bereich]; StringBuilder sql = new StringBuilder(); sql.Append("update ODAL.BESTELLUNGEN set "); sql.Append("FRVON1 = null, "); sql.Append("FRAM1 = null, "); sql.Append("FRVON2 = null, "); sql.Append("FRAM2 = null, "); sql.Append("FRVON3 = null, "); sql.Append("FRAM3 = null, "); sql.Append("FREIGABEVON = null, "); sql.Append("FREIGABEAM = null, "); sql.Append("TEAM = null, "); sql.Append("TEVON = null, "); sql.Append("DRUCKVON = null, "); sql.Append("DRUCKAM = null, "); sql.Append("SONDERGRUND = null, "); sql.Append("TE = "); sql.Append(ber.TeFreigabeVorFreigabe); sql.Append(" where BESTELLUNGSNR = "); sql.Append(nummer); SqlCommand command = new SqlCommand(sql.ToString(), con); command.ExecuteNonQuery(); druckVon = 0; freiVon1 = 0; freiVon2 = 0; freiVon3 = 0; freiVonTE = 0; tE = ber.TeFreigabeVorFreigabe; sonderGrund = null; finaleFreigabeVon = 0; } catch (Exception) { //Nothing } returnConnection(con); } public bool NotfallFreigeben(string text, int userId) { bool result = true; //int userId = UserSingelton.GetInstance().UserID; DateTime jetzt = DateTime.Now; string token = " "; finaleFreigabeVon = userId; finaleFreigabeAm = jetzt; sonderGrund = text; if (this.bereich < 10000) { using (SqlConnection con = new SqlConnection(DBTools.ConnectionStringODAL())) { con.Open(); try { StringBuilder sql = new StringBuilder(); sql.Append("update ODAL.BESTELLUNGEN set"); sql.Append(token); sql.Append("FREIGABEVON = "); sql.Append(userId); sql.Append(", FREIGABEAM = "); sql.Append(DBTools.Dat(jetzt)); sql.Append(", SONDERGRUND = "); sql.Append(DBTools.Txt(text)); sql.Append(" where BESTELLUNGSNR = "); sql.Append(nummer); SqlCommand command = new SqlCommand(sql.ToString(), con); command.ExecuteNonQuery(); this.mailAnAlleFreigeber(text); } catch (Exception) { result = false; } } } else { FreigabenHandler fh = new FreigabenHandler(); result = fh.NotfallFreigabeErteilen(this, text); } return result; } /// /// Sendet eine Mail an alle Freigeber /// private void mailAnAlleFreigeber(string text) { UserSingelton us = UserSingelton.GetInstance(); if (us.Bereiche.ContainsKey(this.bereich)) { StringBuilder email = new StringBuilder(); ; String token = ""; ODALBereich bereich = us.Bereiche[this.bereich]; if (bereich.Freigeber1 != 0 && this.bestellWert >= bereich.Freigabe1) { if(us.AlleUser.ContainsKey(bereich.Freigeber1)) { ODALUser ou = us.AlleUser[bereich.Freigeber1]; email.Append(token); email.Append(ou.EMail); token = "; "; } } if (bereich.Freigeber2 != 0 && this.bestellWert >= bereich.Freigabe2) { if (us.AlleUser.ContainsKey(bereich.Freigeber2)) { ODALUser ou = us.AlleUser[bereich.Freigeber2]; email.Append(token); email.Append(ou.EMail); token = "; "; } } if (bereich.Freigeber3 != 0 && this.bestellWert >= bereich.Freigabe3) { if (us.AlleUser.ContainsKey(bereich.Freigeber3)) { ODALUser ou = us.AlleUser[bereich.Freigeber3]; email.Append(token); email.Append(ou.EMail); token = "; "; } } if (!String.IsNullOrEmpty(email.ToString())) { ODALMailer om = new ODALMailer(this.nummer); om.SendEmail(email.ToString(), ML.GetInstance().Txt(ML.MSG_BESTELLUNG_NOTFALLFREIGABE_FREIGEGEBEN_P3, this.nummer.ToString(), us.Name, text), ODALMailer.SUBJECT_NOTFALLFREIGABE, true); } } } public int TE { get { return tE; } set { tE = value; } } public void BestellungAlsGedrucktMarkieren() { SqlConnection con = getConnection(); int userId = UserSingelton.GetInstance().UserID; DateTime jetzt = DateTime.Now; try { //Aktualiseiren der DRUCK von/am Kennzeichn StringBuilder sql = new StringBuilder(); sql.Append("update ODAL.BESTELLUNGEN set"); sql.Append(" DRUCKVON = "); sql.Append(userId); sql.Append(", DRUCKAM = "); sql.Append(DBTools.Dat(jetzt)); sql.Append(" where BESTELLUNGSNR = "); sql.Append(nummer); SqlCommand command = new SqlCommand(sql.ToString(), con); command.ExecuteNonQuery(); //Aktualisieren des Lieferstatus, NUR wenn er noch nicht geändert wurde! sql = new StringBuilder(); sql.Append("update ODAL.BESTELLUNGEN set "); sql.Append("STATUS = '0'"); //Ware bestellt, Lieferung offen! sql.Append(" where BESTELLUNGSNR = "); sql.Append(nummer); sql.Append(" and STATUS is null"); command = new SqlCommand(sql.ToString(), con); command.ExecuteNonQuery(); druckVon = userId; } catch (Exception ex) { //Mööp aber nix! Console.WriteLine(ex.Message); } returnConnection(con); } public void BestellungsStatusSetzen(string status) { SqlConnection con = getConnection(); int userId = UserSingelton.GetInstance().UserID; DateTime jetzt = DateTime.Now; try { StringBuilder sql = new StringBuilder(); sql.Append("update ODAL.BESTELLUNGEN set"); sql.Append(" STATUS = '"); sql.Append(status); sql.Append("' where BESTELLUNGSNR = "); sql.Append(nummer); SqlCommand command = new SqlCommand(sql.ToString(), con); command.ExecuteNonQuery(); } catch (Exception) { //Mööp aber nix! } returnConnection(con); } public List GetScans() { List result = new List(); SqlConnection con = getConnection(); StringBuilder sql = new StringBuilder(); sql.Append("select scan from ODAL.SCANS where BESTELLUNGSNR = "); sql.Append(this.nummer); SqlCommand command = new SqlCommand(sql.ToString(), con); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { result.Add(DBTools.DBGetString(reader, 0)); } reader.Close(); returnConnection(con); return result; } public List GetInvestScans() { return InvestAntragsAnhangHandler.GetInvestAntragScans(this.nummer); } public void SichernBeiAenderung() { SqlConnection con = getConnection(); //Löschen der Positionen im SAVE StringBuilder sql = new StringBuilder(); sql.Append("delete from ODAL.ODALBPS where BESTELLUNGSNR = "); sql.Append(this.nummer); SqlCommand command = new SqlCommand(sql.ToString(), con); command.ExecuteNonQuery(); //Kopieren der Positionen sql = new StringBuilder(); sql.Append("insert into ODAL.ODALBPS select * from ODAL.BESTELLUNGSPOS where ODAL.BESTELLUNGSPOS.BESTELLUNGSNR = "); sql.Append(this.nummer); command = new SqlCommand(sql.ToString(), con); command.ExecuteNonQuery(); //Löschen der Kopfdaten im SAVE sql = new StringBuilder(); sql.Append("delete from ODAL.ODALBES where BESTELLUNGSNR = "); sql.Append(this.nummer); command = new SqlCommand(sql.ToString(), con); command.ExecuteNonQuery(); //Kopieren der Kopfdaten sql = new StringBuilder(); sql.Append("insert into ODAL.ODALBES select * from ODAL.BESTELLUNGEN where ODAL.BESTELLUNGEN.BESTELLUNGSNR = "); sql.Append(this.nummer); command = new SqlCommand(sql.ToString(), con); command.ExecuteNonQuery(); //Löschen der Positionen im Original sql = new StringBuilder(); sql.Append("delete from ODAL.BESTELLUNGSPOS where BESTELLUNGSNR = "); sql.Append(this.nummer); command = new SqlCommand(sql.ToString(), con); command.ExecuteNonQuery(); //Löschen der Kopfdaten2 im SAVE sql = new StringBuilder(); sql.Append("delete from ODAL.ODALBES2 where BESTELLUNGSNR = "); sql.Append(this.nummer); command = new SqlCommand(sql.ToString(), con); command.ExecuteNonQuery(); //Kopieren der Kopfdaten2 sql = new StringBuilder(); sql.Append("insert into ODAL.ODALBES2 select * from ODAL.BESTELLUNGEN2 where ODAL.BESTELLUNGEN2.BESTELLUNGSNR = "); sql.Append(this.nummer); command = new SqlCommand(sql.ToString(), con); command.ExecuteNonQuery(); this.gelöscht = true; returnConnection(con); } /// /// Holt die Verbindung zum MSSQL Server /// /// private SqlConnection getConnection() { SqlConnection result = null; try { result = new SqlConnection(); result.ConnectionString = DBTools.ConnectionStringODAL(); result.Open(); } catch (Exception) { Tools.ErrorBox(ML.GetInstance().Txt(ML.MSG_FEHLER_ANMELDUNG_SQL)); result = null; } return result; } /// /// Schliesst die Verbindung zum MSSQL Server /// /// private void returnConnection(SqlConnection con) { if (con != null && con.State == ConnectionState.Open) { con.Close(); } } public void SetVorgangWirdVonMirBearbeitet(int ich) { vorgangWirdVonMirBearbeitet(ich, true); } private void vorgangWirdVonMirBearbeitet(int ich, bool anlegen) { using (SqlConnection con = new SqlConnection(DBTools.ConnectionStringODAL())) { con.Open(); String sql = "select ANWENDER FROM INBEARBEITUNG where BESTELLUNGSNR = @p1"; SqlCommand cmd = new SqlCommand(sql, con); cmd.Parameters.AddWithValue("@p1", this.nummer); bool gefunden = false; using (SqlDataReader reader = cmd.ExecuteReader()) { if (reader.Read()) { gefunden = true; } } if (gefunden) { sql = "update INBEARBEITUNG set ANWENDER = @p2, INBEARBEITUNGSEIT = @p3 where BESTELLUNGSNR = @p1"; } else { sql = "insert into INBEARBEITUNG (BESTELLUNGSNR, ANWENDER, INBEARBEITUNGSEIT) values (@p1, @p2, @p3)"; } cmd = new SqlCommand(sql, con); cmd.Parameters.AddWithValue("@p1", this.nummer); cmd.Parameters.AddWithValue("@p2", ich); cmd.Parameters.AddWithValue("@p3", DateTime.Now); cmd.ExecuteNonQuery(); } } public String Wdz { get { return wdz; } } public Konstanten.Priorität Priorität { get => priorität; set => priorität = value; } public void RemoveVorgangWirdVonMirBearbeitet() { using (SqlConnection con = new SqlConnection(DBTools.ConnectionStringODAL())) { con.Open(); String sql = "select ANWENDER FROM INBEARBEITUNG where BESTELLUNGSNR = @p1"; SqlCommand cmd = new SqlCommand(sql, con); cmd.Parameters.AddWithValue("@p1", this.nummer); bool gefunden = false; using (SqlDataReader reader = cmd.ExecuteReader()) { if (reader.Read()) { gefunden = true; } } if (gefunden) { sql = "update INBEARBEITUNG set INBEARBEITUNGSEIT = @p3 where BESTELLUNGSNR = @p1"; cmd = new SqlCommand(sql, con); cmd.Parameters.AddWithValue("@p1", this.nummer); cmd.Parameters.AddWithValue("@p3", DBNull.Value); cmd.ExecuteNonQuery(); } } } } }