Entwicklung_BLAZOR/InterneDLLs/LambertzPortalODAL/ODALBestellungsRumpf.cs
2025-08-23 19:30:21 +02:00

1047 lines
38 KiB
C#

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<int> 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<int> bereinigteUserListe = new List<int>();
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<int> ergebnisUserListe = null; ;
if (bereinigteUserListe.Count > 1)
{
FrmSELECTMarkierenBeiVertretungen f = new FrmSELECTMarkierenBeiVertretungen(bereinigteUserListe);
f.ShowDialog();
ergebnisUserListe = f.AusgewählteUser;
f.Dispose();
}
else
{
ergebnisUserListe = new List<int>();
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<int> 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;
}
/// <summary>
/// Sendet eine Mail an den nächsten Freigeber in der Reihe aber nicht an den TE
/// MACHT NIX MEHR!!!
/// </summary>
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;
}
/// <summary>
/// Sendet eine Mail an alle Freigeber
/// </summary>
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<string> GetScans()
{
List<string> result = new List<string>();
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<InvestAntragAnhang> 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);
}
/// <summary>
/// Holt die Verbindung zum MSSQL Server
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// Schliesst die Verbindung zum MSSQL Server
/// </summary>
/// <returns></returns>
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();
}
}
}
}
}