You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

427 lines
16 KiB

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)
{
//if (ExternalCall.sourceparam.Trim().ToString() !="" && ExternalCall.executed == false)
//{
// External_Call();
//}
//if (EDK_Data.toexecute == true)
//{
// exec_edk();
//}
//partnerTree1.mitarbeiternr = AppParams.CurrentMitarbeiter;
//DataSet ds = new DataSet();
//System.Data.DataTable dataTable = new System.Data.DataTable();
//dataTable.Columns.Add("ID");
//dataTable.Columns.Add("ImageName");
//System.Data.DataRow dr = dataTable.NewRow();
//dr[0] = "1";
//dr[1] = "Bildname";
//dataTable.Rows.Add(dr);
//ds.Tables.Add(dataTable);
//ds.WriteXml(@"E:\Software-Projekte\OnDoc\Images\imageids.xml");
}
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;
}
}
}
}
}