using Database; using Microsoft.Office.Interop.Excel; using Microsoft.Office.Interop.Word; using OnDoc.Diverses; using OnDoc.DocMgmt; using OnDoc.Klassen; using Syncfusion.WinForms.Controls; using Syncfusion.XlsIO.Implementation; using System; using System.Data; using System.Data.SqlClient; using System.Deployment.Application; using System.Drawing; using System.IO; using System.Windows.Forms; namespace OnDoc { public partial class Start : SfForm { string mitarbeiter = ""; public string tgnummer = ""; public static void InitLogging() { DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select * from nlog_parameter WHERE ID=1", false, true); Logging.Logging.IntLogLevel = db.dsdaten.Tables[0].Rows[0]["LogLevel"].ToString(); Logging.Logging.IntUserID = db.dsdaten.Tables[0].Rows[0]["LogUserID"].ToString(); Logging.Logging.connectionstring = AppParams.logconnectionstring; Logging.Logging.init_logger(); db.Get_Tabledata("Select * from nlog_parameter WHERE ID=2", false, true); Logging.DocLog.IntLogLevel = db.dsdaten.Tables[0].Rows[0]["LogLevel"].ToString(); Logging.DocLog.IntUserID = db.dsdaten.Tables[0].Rows[0]["LogUserID"].ToString(); Logging.DocLog.connectionstring = AppParams.logconnectionstring; Logging.DocLog.init_logger(); db = null; } public Start() { InitializeComponent(); this.Style.TitleBar.BackColor = Theaming.Titelbar(); this.Style.TitleBar.ForeColor = Theaming.TitelFontColor(); this.Style.ShadowOpacity = Theaming.ShadowOpacity; this.Style.InactiveShadowOpacity = Theaming.InactivShadowOpacity; this.Style.Border.Width = 0; InitLogging(); Logging.Logging.Debug("Start", "OnDoc-Client", ""); mitarbeiter = System.Security.Principal.WindowsIdentity.GetCurrent().Name; mitarbeiter = mitarbeiter.Substring(mitarbeiter.IndexOf("\\") + 1); AppParams.systemtgnummer = mitarbeiter; Logging.Logging.Info("Start", "start.cs", mitarbeiter); DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select mitarbeiternr, tgnummer from mitarbeiter where aktiv = 1 and tgnummer='" + mitarbeiter + "'", false, true); if (db.dsdaten.Tables[0].Rows.Count == 0) { mitarbeiter = mitarbeiter.Replace("i", ""); mitarbeiter = mitarbeiter.Replace("I", ""); db.Get_Tabledata("Select mitarbeiternr from mitarbeiter where aktiv=1 and tgnummer='" + mitarbeiter + "'", false, true); if (db.dsdaten.Tables[0].Rows.Count == 0) { MessageBox.Show("Berechtigung zur Verwendung von OnDoc fehlen", "Anmeldung OnDoc", MessageBoxButtons.OK); Logging.Logging.Error("Login fehlgeschlagen", "OnDoc Client", mitarbeiter); System.Environment.Exit(0); } } AppParams.CurrentMitarbeiter = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["mitarbeiternr"].ToString()); AppParams.currenttgnummer = mitarbeiter; db.Get_Tabledata("select count(*) from ondoc_admin where tgnummer='"+AppParams.currenttgnummer+"' and aktiv=1", false, true); if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]) > 0) { AppParams.isSysadmin = true; AppParams.showlogin = true; } else { AppParams.isSysadmin = false; AppParams.showlogin = false; } db.dsdaten.Tables.Clear(); db.Get_Tabledata("Select * from [applikation] where applikationsnr = 1", false, true); panel1.Visible = false; if (Convert.ToBoolean(db.dsdaten.Tables[0].Rows[0]["Showlogin"]) == true) { this.panel1.Visible = true; frmLogin frmLogin = new frmLogin(); frmLogin.ShowDialog(); if (frmLogin.DialogResult == DialogResult.OK) { AppParams.CurrentMitarbeiter = frmLogin.selectedmitarbeiternr; SqlConnection connection = new SqlConnection(AppParams.connectionstring); db.Get_Tabledata("Select * from mitarbeiter where mitarbeiternr=" + AppParams.CurrentMitarbeiter.ToString(), false, true); AppParams.currenttgnummer = db.dsdaten.Tables[0].Rows[0]["tgnummer"].ToString(); db.Get_Tabledata("select count(*) from ondoc_admin where tgnummer='" + AppParams.currenttgnummer + "'", false, true); if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]) > 0) { AppParams.isSysadmin = true; } else { AppParams.isSysadmin = false; } string database = connection.Database.ToString(); labelTest.Text = database; connection.Dispose(); } else { System.Environment.Exit(1); } } Logging.Logging.Debug("Mitarbeiter", "OnDoc", AppParams.CurrentMitarbeiter.ToString()); //partnerTree1.OnStrukturClicked += new PartnerTree.StrukturHandler(testhandler1); //partnerTree1.Refresh(-1, AppParams.CurrentMitarbeiter, Convert.ToInt32(rbcomboboxprofil.SelectedItem.Tag.ToString())); dokList1.mitarbeiternr = AppParams.CurrentMitarbeiter; dokList1.load_Profile(); dokList1.refresh_dokumente(); dokList1.set_functions(); Logging.Logging.Debug("Start - Ende", "start.cs", ""); AppParams.StartApp = false; //dokList1.refresh_dokumente(); } private void testhandler1(object a, StrukturArgs args) { dokList1.mitarbeiternr = AppParams.CurrentMitarbeiter; dokList1.partnernr = args.Partnernr; dokList1.docartnr = args.Dokumentartnr; dokList1.profilnr = Convert.ToInt32(rbcomboboxprofil.SelectedItem.Tag.ToString()); dokList1.refresh_dokumente(); } private void rbnbtnexit_Click(object sender, EventArgs e) { this.Close(); } private void rbnpartnersearch_Click(object sender, EventArgs e) { } public void External_Call() { timer1.Start(); } private void Start_Load(object sender, EventArgs e) { } private void dokList1_Load(object sender, EventArgs e) { } private void rbbtnneuesdokument_Click(object sender, EventArgs e) { //FrmDokumenterstellung frmnewdok = new FrmDokumenterstellung(1000208,125,17); //FrmDokumenterstellung frmnewdok = new FrmDokumenterstellung(1000210,1320,17); Dokumenterstellung frmnewdok = new Dokumenterstellung(1000210, 1320, 17); frmnewdok.ShowDialog(); } private void timer1_Tick(object sender, EventArgs e) { string[] files = Directory.GetFiles(AppParams.tempdir); for (int i = 0; i < files.Length; i++) { if (System.IO.Path.GetExtension(files[i]).ToLower() == ".edk") { EDK_Call(files[i]); } if (System.IO.Path.GetExtension(files[i]).ToLower() == ".uri") { URI_Call(files[i]); } } } private void EDK_Call(string filename) { this.TopMost = true; System.Windows.Forms.Application.DoEvents(); this.BringToFront(); this.TopMost = false; System.Windows.Forms.Application.DoEvents(); if (dokList1.profilnr == 0) return; DB dB = new DB(AppParams.connectionstring); EDK_Data.Load_EDK_File(filename); dB.save_edk(filename, AppParams.CurrentMitarbeiter); System.IO.File.Delete(filename); if (EDK_Data.toexecute == true) { exec_edk(filename); } } private void URI_Call(string filename) { this.BringToFront(); if (dokList1.profilnr == 0) return; if (System.IO.File.Exists(filename)) { using (StreamReader sr = new StreamReader(filename)) { ExternalCall.sourceparam = sr.ReadToEnd(); ExternalCall.sourceparam = ExternalCall.sourceparam.Replace("\r\n", ""); sr.Close(); } ExternalCall.executed = false; System.IO.File.Delete(filename); } else { ExternalCall.sourceparam = ""; } if (ExternalCall.sourceparam != "" && ExternalCall.parseparams()) { if (ExternalCall.function.ToLower() == "openclient") { if (ExternalCall.partnernr != "") { dokList1.refresh_edk_partner(Convert.ToInt32(ExternalCall.partnernr)); } } if (ExternalCall.function.ToLower()=="ucheck") { dokList1.StartPruefung(); return; } if (ExternalCall.function.ToLower() == "createdoc") { if (ExternalCall.dokumentid !="") { DB db = new DB(); db.dokument_reaktivieren(ExternalCall.dokumentid, AppParams.CurrentMitarbeiter.ToString()); db = null; dokList1.dokument_bearbeiten(ExternalCall.dokumentid, false); return; } if (ExternalCall.Interaktion == "Yes") { dokList1.createnewdoc(Convert.ToInt32(ExternalCall.partnernr), Convert.ToInt32(ExternalCall.dokumenttypnr)); } else { dokList1.createnewdoc(Convert.ToInt32(ExternalCall.partnernr), Convert.ToInt32(ExternalCall.dokumenttypnr), false, ExternalCall.Interaktion, ExternalCall.showdoc); } } if (ExternalCall.function.ToLower() == "createpac") { dokList1.createdocumentpaket(Convert.ToInt32(ExternalCall.partnernr), Convert.ToInt32(ExternalCall.dokumenttypnr)); } if (ExternalCall.function.ToLower() == "createsb") { dokList1.createsb(Convert.ToInt32(ExternalCall.dokumenttypnr)); } if (ExternalCall.unterschriftenpruefung == "Yes") { dokList1.upruefung(); } } } private bool edkb12_check(string filename) { DB dB = new DB(AppParams.connectionstring); string dokumenttypnr = EDK_Data.GetAVQ_Parameter("dokumenttypnr"); int doktyp = Convert.ToInt32(dokumenttypnr); doktyp = doktyp - 900000000; dB.Get_Tabledata("Select count(*) from edk_data_doktype where dokumenttypnr=" + doktyp.ToString(),false,true); if (Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0][0]) > 0) { dB.save_edkdata(filename,AppParams.currenttgnummer); dB = null; return true; } dB = null; return false; } private void exec_edk(string filename) { EDK_Data.toexecute = false; if (EDK_Data.action == EDK_ActionType.DokumentErstellung) { string partnernr = EDK_Data.GetAVQ_Parameter("Partnernr"); string dokumenttypnr = EDK_Data.GetAVQ_Parameter("dokumenttypnr"); string isdokumentpaket = EDK_Data.GetAVQ_Parameter("dokumentpaket"); string erstellungsart = EDK_Data.GetAVQ_Parameter("DirekteErstellung"); string interaktion = "Yes"; if (erstellungsart == "1") { interaktion = "No"; } else { interaktion = "Yes"; } if (erstellungsart == "2") { if (edkb12_check(filename)) { System.IO.File.Delete(filename); MessageBox.Show("Das gewählte Dokument wird im Hintergrund erstellt.", "Dokumenterstellung", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } System.IO.File.Delete(filename); int doktyp = Convert.ToInt32(dokumenttypnr); doktyp = doktyp - 900000000; EDK_Data.toexecute = true; if (isdokumentpaket == "1") { dokList1.createdocumentpaket(Convert.ToInt32(partnernr), doktyp); return; } dokList1.createnewdoc(Convert.ToInt32(partnernr), doktyp, false, interaktion, "Yes"); EDK_Data.toexecute = false; } if (EDK_Data.action == EDK_ActionType.AnzeigePartnerdossier) { string partnernr = EDK_Data.AnzeigePartnernr; dokList1.refresh_edk_partner(Convert.ToInt32(partnernr)); System.IO.File.Delete(filename); } } private void beendenToolStripMenuItem_Click(object sender, EventArgs e) { System.Windows.Forms.Application.Exit(); } private void profilEinstellungenToolStripMenuItem_Click(object sender, EventArgs e) { MitarbeiterProfil map = new MitarbeiterProfil(AppParams.CurrentMitarbeiter); map.ShowDialog(); } private void nativVorlagenToolStripMenuItem_Click(object sender, EventArgs e) { NativVorlagen nv = new NativVorlagen(); nv.Show(); } private void panel1_Paint(object sender, PaintEventArgs e) { } private void panel1_DoubleClick(object sender, EventArgs e) { return; frmLogin frmLogin = new frmLogin(); frmLogin.ShowDialog(); if (frmLogin.DialogResult == DialogResult.OK) { AppParams.CurrentMitarbeiter = frmLogin.selectedmitarbeiternr; dokList1.mitarbeiternr = AppParams.CurrentMitarbeiter; //Helper.Security security = new Helper.Security(); //security.set_security(dokList1); dokList1.load_Profile(); dokList1.refresh_dokumente(); dokList1.set_functions(); } } private void Start_FormClosing(object sender, FormClosingEventArgs e) { if (clsProcessWatch.check_open_files() > 0) { if (MessageBox.Show("Es sind noch Dokumente in Bearbeitung." + Environment.NewLine + "Trotzem schliessen? - Allfällige Änderungen werden nicht gespeichert.", "OnDoc schliessen", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { } else { e.Cancel = true; } } } } }