using OnDoc.Helper; using OnDoc.Klassen; using Syncfusion.Windows.Forms.Tools; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Database; using DOCGEN; using System.IO; using Model; using Helper; using System.Web; using static Syncfusion.Windows.Forms.Tools.NavigationView; using System.Net; using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel; using System.Security.Policy; using edoka_dms; using Microsoft.Office.Interop.Word; using System.Diagnostics; using Syncfusion.WinForms.DataGrid.Events; using Syncfusion.WinForms.DataGrid; using DOCGEN.Generator; using OnDoc.DocMgmt; using OnDoc.UIControls.Administrator; using Syncfusion.WinForms.ListView; using OnDoc.Diverses; using OnDoc.UIControls; using BroadcastListener.Interfaces; using static BroadcastListener.Classes.Factory; using BroadcastListener.Classes; using System.Resources; using NLog.Config; using OnDoc.Versandstrasse; namespace OnDoc.UICintrols { public partial class DokList : UserControl, IMessageListener1 { public int partnernr { get; set; } = 0; public int forMaNr { get; set; } = 0; public int docartnr { get; set; } public int profilnr { get; set; } public int mitarbeiternr { get; set; } public string selected_dokumentid { get; set; } public string selected_cellvalue { get; set; } private string vorschauposition = ""; private bool Separate_Vorschau_offen = false; public string datafilter { get; set; } = ""; public DokList() { System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("de-DE"); InitializeComponent(); Broadcaster().AddListener(this); //Theaming.FormTheaming(ref this); } public void OnListen(string message, SenderInfo sender) { if (sender.SenderName is "PreviewWindow") { if (sender.Function == "WindowClosed") { this.Separate_Vorschau_offen = false; } } } private void DokList_Load(object sender, EventArgs e) { tsrbvorschau.SelectedIndex = 0; sfDataGrid1.AllowDraggingColumns = true; //Refresh_Bewilligungen(); } public void load_Profile() { RibbonCBProfil.DropDownItems.Clear(); DB db = new DB(AppParams.connectionstring); db.dsdaten.Tables.Clear(); db.Get_Tabledata("Select profilnr, bezeichnung, standard from profil where aktiv=1 and mitarbeiternr=" + AppParams.CurrentMitarbieter.ToString(), false, true); foreach (System.Data.DataRow r in db.dsdaten.Tables[0].Rows) { RibbonLabel rl = new RibbonLabel(); rl.Text = r["bezeichnung"].ToString(); rl.Tag = Convert.ToInt32(r["profilnr"]); RibbonCBProfil.DropDownItems.Add(rl); if (Convert.ToBoolean(r["standard"]) == true) { RibbonCBProfil.SelectedItem = rl; } } } public void load_Mitarbeiter() { DB db = new DB(AppParams.connectionstring); db.clear_parameter(); db.Get_Tabledata("SP_Dokumentbearbeitung_Mitarbeiter", true, false); cbboxMitarbeiter.DataSource = db.dsdaten.Tables[0]; cbboxMitarbeiter.DisplayMember = "name"; cbboxMitarbeiter.ValueMember = "mitarbeiternr"; //cbboxMitarbeiter.Left=ribbonTextPartner. //ribbonComboBoxMitarbeiter.DropDownItems.Clear(); //foreach (System.Data.DataRow r in db.dsdaten.Tables[0].Rows) //{ // RibbonLabel rl = new RibbonLabel(); // rl.Text = r["name"].ToString(); // rl.Tag = Convert.ToInt32(r["mitarbeiternr"]); // ribbonComboBoxMitarbeiter.DropDownItems.Add(rl); //} } public void refresh_dokumente() { if (datafilter!="") { refresh_dokumente_filtered(); return; } DB db = new DB(AppParams.connectionstring); int selectedIndex = RibbonCBProfil.SelectedIndex; profilnr = Convert.ToInt32(RibbonCBProfil.SelectedItem.Tag.ToString()); // profilnr = Convert.ToInt32(RibbonCBProfil.SelectedItem.Tag.ToString()); System.Data.DataTable dokumente = new System.Data.DataTable(); dokumente = db.Get_Dokumente(partnernr, docartnr, profilnr,forMaNr, false); // TableHelper.SetColumnsOrder(dokumente, "trefferliste"); TableHelper.FormatTable(ref dokumente, "trefferliste_relaunch", ref this.sfDataGrid1); //this.sfDataGrid1.DataSource = dokumente; sfDataGrid1.View.AutoExpandGroups = true; this.timer1.Enabled = true; } public void refresh_dokumente_filtered() { DB db = new DB(AppParams.connectionstring); int selectedIndex = RibbonCBProfil.SelectedIndex; try { profilnr = Convert.ToInt32(RibbonCBProfil.SelectedItem.Tag.ToString()); } catch { } System.Data.DataTable dokumente = new System.Data.DataTable(); dokumente = db.Get_Dokumente(partnernr, docartnr, profilnr, forMaNr, false); dokumente.DefaultView.RowFilter = datafilter; // TableHelper.SetColumnsOrder(dokumente, "trefferliste"); TableHelper.FormatTable(ref dokumente, "trefferliste_relaunch", ref this.sfDataGrid1); //this.sfDataGrid1.DataSource = dokumente; } private void sfDataGrid1_CellClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e) { string documentid = ""; try { var selectedItem = e.DataRow; var dataRow = (e.DataRow.RowData as DataRowView).Row; documentid = dataRow["dokumentid"].ToString(); selected_dokumentid = documentid; selected_cellvalue = dataRow[e.DataColumn.ColumnIndex].ToString(); if (dataRow["Bearbeitung_Zwingend"].ToString() == "1") { RibbonButtonArchivToOnBase.Enabled=false; archivierenToolStripMenuItem.Enabled=false; } else { RibbonButtonArchivToOnBase.Enabled=true; archivierenToolStripMenuItem.Enabled= true; } } catch { selected_dokumentid = ""; return; } if (vorschauposition == "Keine Vorschau") { return; } if (Separate_Vorschau_offen) { Broadcaster().Broadcast(selected_dokumentid, new SenderInfo("Doklist", "UpdateView", "")); return; } docPreview1.Show_Doc(selected_dokumentid); docPreview1.Hide_Editbuttons(); } private void dokumentAnzeigenToolStripMenuItem_Click(object sender, EventArgs e) { clsdok dok = GetDoc(false); OpenDoc(dok, false); } private void dokumentBearbeitenToolStripMenuItem_Click(object sender, EventArgs e) { dokument_bearbeiten(); } public void dokument_bearbeiten() { clsdok dok = GetDoc(false); if (dok.dokument == "") return; OpenDoc(dok, true); } private clsdok GetDoc(bool AsPDF) { clsdok dok = new clsdok("", "", ""); if (selected_dokumentid == "") { return dok; ; } if (AppParams.RESTURI != "") { string URL = AppParams.RESTURI + "api/GetDocument?dokid=" + selected_dokumentid; if (AsPDF == true) { URL = AppParams.RESTURI + "api/GetDocumentPDF?dokid=" + selected_dokumentid; } HttpWebRequest webRequest = HttpWebRequest.Create(URL) as HttpWebRequest; webRequest.Method = WebRequestMethods.Http.Get; //webRequest.Credentials = new NetworkCredential(Username, Password); //webRequest.ContentType = "application/x-www-form-urlencoded"; using (HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse) { if (response.StatusCode == HttpStatusCode.OK) { StreamReader reader = new StreamReader(response.GetResponseStream()); string responseContent = reader.ReadToEnd(); dok = Newtonsoft.Json.JsonConvert.DeserializeObject(responseContent); } else { Logging.Logging.Error(URL + ": " + response.StatusCode.ToString() + " / " + response.StatusDescription, "Clinet - DokList GetDocument", ""); } } } else { DocGet gd = new DocGet(AppParams.connectionstring); if (AsPDF == true) { dok = gd.GetDocAsPDF(selected_dokumentid); } else { dok = gd.GetDoc(selected_dokumentid); } } if (dok.extension.ToString() == "") { MessageBox.Show("Das Dokument mit der ID " + selected_dokumentid + " wurde nicht gefunden.", ""); return dok; } return dok; } private void OpenDoc(clsdok dok, bool editdoc) { switch (dok.extension.ToUpper().Substring(0, 1)) { case "D": clsFileHelper fh = new clsFileHelper(); string tempfilename = ""; tempfilename = fh.save_temp_file(dok.dokument, selected_dokumentid, AppParams.tempdir, dok.extension); //System.Diagnostics.Process.Start(tempfilename); System.Diagnostics.Process.Start("winword.exe", "/w "+tempfilename); if (editdoc == true) { clsProcessWatch.AddToList(selected_dokumentid, tempfilename, "Word"); } fh = null; break; case "X": clsFileHelper fh2 = new clsFileHelper(); tempfilename = fh2.save_temp_file(dok.dokument, selected_dokumentid, AppParams.tempdir, dok.extension); //System.Diagnostics.Process.Start(tempfilename); System.Diagnostics.Process.Start("excel.exe", "/x "+tempfilename); if (editdoc == true) { clsProcessWatch.AddToList(selected_dokumentid, tempfilename, "Excel"); } fh2 = null; break; case "P": clsFileHelper fh3 = new clsFileHelper(); tempfilename = fh3.save_temp_file(dok.dokument, selected_dokumentid, AppParams.tempdir, dok.extension); System.Diagnostics.Process.Start(tempfilename); if (editdoc == true) { clsProcessWatch.AddToList(selected_dokumentid, tempfilename, "PDF"); } fh3 = null; break; default: break; } } private void barcodeDemoToolStripMenuItem_Click(object sender, EventArgs e) { DOCGEN.DocGen dg = new DOCGEN.DocGen(); Helper.FileHelper fh = new FileHelper(); fh.SaveBase64ToFile(dg.Barcodetest(selected_dokumentid), @"x:\test.png"); } private void tsrbvorschau_TextChanged(object sender, EventArgs e) { vorschauposition = tsrbvorschau.Text; } private void tsrbvorschau_SelectedIndexChanged(object sender, EventArgs e) { vorschauposition = tsrbvorschau.Text; switch (vorschauposition) { case "Keine Vorschau": this.splitContainer1.SplitterDistance = this.Height; this.splitContainer1.Orientation = Orientation.Horizontal; docPreview1.Visible = false; break; case "Vorschau unten": this.splitContainer1.SplitterDistance = this.Height / 2; this.splitContainer1.Orientation = Orientation.Horizontal; docPreview1.Visible = true; docPreview1.Show_Doc(selected_dokumentid); docPreview1.Hide_Editbuttons(); break; case "Vorschau rechts": this.splitContainer1.SplitterDistance = this.Width / 2; this.splitContainer1.Orientation = Orientation.Vertical; docPreview1.Visible = true; docPreview1.Show_Doc(selected_dokumentid); docPreview1.Hide_Editbuttons(); break; case "Eigenes Fenster": this.splitContainer1.SplitterDistance = this.Height; this.splitContainer1.Orientation = Orientation.Horizontal; docPreview1.Visible = false; if (Separate_Vorschau_offen) { Broadcaster().Broadcast(selected_dokumentid, new SenderInfo("Doklist", "UpdateView", "")); } else { frmDocPreview dp = new frmDocPreview(); dp.Show(); Separate_Vorschau_offen = true; Broadcaster().Broadcast(selected_dokumentid, new SenderInfo("Doklist", "UpdateView", "")); } break; } } private void vertragPDFDEMOToolStripMenuItem_Click(object sender, EventArgs e) { clsdok dok = new clsdok("", "", ""); dok = GetDoc(false); DocGenerator_from_EDOKA docgen = new DocGenerator_from_EDOKA(AppParams.connectionstring); //docgen.DocToPDF(ref dok); return; } private void RibbonButtonExit_Click(object sender, EventArgs e) { System.Windows.Forms.Application.Exit(); } private void RibbonBtnVorschauNo_Click(object sender, EventArgs e) { tsrbvorschau.SelectedIndex = 0; } private void RibbonBtnVorschauUnten_Click(object sender, EventArgs e) { tsrbvorschau.SelectedIndex = 1; } private void RibbonButtonVorschauRechts_Click(object sender, EventArgs e) { tsrbvorschau.SelectedIndex = 2; } private void RibbonBtnVorschauSepparat_Click(object sender, EventArgs e) { if (tsrbvorschau.SelectedIndex==3 && Separate_Vorschau_offen==false) { tsrbvorschau_SelectedIndexChanged(sender, e); return; } tsrbvorschau.SelectedIndex = 3; } private void RibbonButtonCreateNewDoc_Click(object sender, EventArgs e) { createnewdoc(0, 0); } public void createnewdoc(int partnernr, int dokumenttypnr, bool Favoriten=false, string interaktion="Yes",string showdoc="Yes") { if (dokumenttypnr == 0) { DokTypSelect DokTypSelect = new DokTypSelect(Favoriten); DokTypSelect.vorlagentype = 1; DokTypSelect.ShowDialog(this); if (DokTypSelect.DialogResult == DialogResult.OK) { dokumenttypnr = DokTypSelect.dokumenttypnr; } else { return; } } int selectedIndex = RibbonCBProfil.SelectedIndex; profilnr = Convert.ToInt32(RibbonCBProfil.SelectedItem.Tag.ToString()); Dokumenterstellung frmnewdok = new Dokumenterstellung(partnernr, dokumenttypnr, profilnr); if (interaktion == "No") { frmnewdok.Visible = false; frmnewdok.Show(); frmnewdok.Dokument_Erstellen(); frmnewdok.Dispose(); } else { frmnewdok.ShowDialog(); } switch (frmnewdok.DocFunction) { case 1: if (frmnewdok.dokumentid != "") { selected_dokumentid = frmnewdok.dokumentid; dokument_bearbeiten(); } break; case 2: if (frmnewdok.dokumentid != "") { dokument_loeschen(frmnewdok.dokumentid); } break; case 3: break; case 4: break; case 5: break; default: break; } } private void RibbonButtonRefresh_Click(object sender, EventArgs e) { refresh_dokumente(); } private void RibbonButtonEditDelete_Click(object sender, EventArgs e) { var records = sfDataGrid1.View.GetSelectedRecords(); if (records.Count < 1) { return; } if (MessageBox.Show("Gewählte Dokument(e) löschen", "Dokument löschen", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } foreach (var record in records) { var datarow = record as DataRowView; string documentid = datarow["dokumentid"].ToString(); dokument_loeschen(documentid); } refresh_dokumente(); } private void dokument_loeschen(string dokumentid) { DB db = new DB(AppParams.connectionstring); db.Exec_SQL("Delete from dokument where dokumentid='" + dokumentid + "'"); db.Exec_SQL("Delete from dokument_trefferliste where dokumentid='" + dokumentid + "'"); db = null; } private void ribbonButton1_Click(object sender, EventArgs e) { MitarbeiterProfil map = new MitarbeiterProfil(AppParams.CurrentMitarbieter); map.ShowDialog(); load_Profile(); } private void dokumentLöschenToolStripMenuItem_Click(object sender, EventArgs e) { RibbonButtonEditDelete_Click(sender, e); } private void RibbonButtonZuweisen_Click(object sender, EventArgs e) { frmDocPreview dpv = new frmDocPreview(); dpv.Show(); } private void RibbonButtonCreateNewPaket_Click(object sender, EventArgs e) { int selectedIndex = RibbonCBProfil.SelectedIndex; profilnr = Convert.ToInt32(RibbonCBProfil.SelectedItem.Tag.ToString()); Dokumentpaket dp = new Dokumentpaket(profilnr); dp.Show(); } private void RibbonButtonCreateNewSerienbrief_Click(object sender, EventArgs e) { Serienbrief sb = new Serienbrief(this.profilnr); sb.Show(); } private void RibbonButtonNewDoc_Click(object sender, EventArgs e) { createnewdoc(0, 0); } public void hide_panels() { this.RibbonPanelExit.Visible = false; this.RibbonPanelProfil.Visible=false; this.RibbonPanelCreate.Visible=false; this.RibbonTabAdmin.Visible = false; this.sfDataGrid1.AllowGrouping=false; this.sfDataGrid1.ShowGroupDropArea=false; this.lblTitel.Text = ""; this.RibbonButtonNewDoc.Visible=false; this.RibbonPanelDoklist.Visible=false; this.RibbonBtnVorschauNo.Visible = false; this.RibbonButtonVorschauRechts.Visible=false; this.RibbonBtnVorschauUnten.Visible=false ; } private void sfDataGrid1_DrawCell(object sender, DrawCellEventArgs e) { if (e.Column.MappingName == "fileext") { try { e.Column.CellStyle.HorizontalAlignment= HorizontalAlignment.Center; e.Handled = true; var selectedItem = e.DataRow; var dataRow = (e.DataRow.RowData as DataRowView).Row; if (dataRow[0].ToString().Substring(0, 1).ToUpper() == "D") { if (dataRow[11].ToString() != "1") { e.Graphics.DrawImage(OnDoc.Properties.Resources.Word_24x24_32, e.Bounds.X + 20, e.Bounds.Y); }else { e.Graphics.DrawImage(OnDoc.Properties.Resources.Word_Edit_24x24_32, e.Bounds.X + 20, e.Bounds.Y); } } if (dataRow[0].ToString().Substring(0, 1).ToUpper() == "X") { if (dataRow[11].ToString() != "1") { e.Graphics.DrawImage(OnDoc.Properties.Resources.Excel_24x24_32, e.Bounds.X + 20, e.Bounds.Y); } else { e.Graphics.DrawImage(OnDoc.Properties.Resources.Excel_Edit_24x24_32, e.Bounds.X + 20, e.Bounds.Y); } } if (dataRow[0].ToString().Substring(0, 1).ToUpper() == "P") { e.Graphics.DrawImage(OnDoc.Properties.Resources.PDF_24x24_32, e.Bounds.X + 20, e.Bounds.Y); } //e.Graphics.DrawImage(Image.FromFile(@"../../US.jpg"), e.Bounds.X + 20, e.Bounds.Y); Pen borderPen = new Pen(Color.LightGray); e.Graphics.DrawLine(borderPen, e.Bounds.Right, e.Bounds.Top, e.Bounds.Right, e.Bounds.Bottom); e.Graphics.DrawLine(borderPen, e.Bounds.Left, e.Bounds.Bottom, e.Bounds.Right, e.Bounds.Bottom); } catch { } } } private void zellenwertInZwischenablageKopierenToolStripMenuItem_Click(object sender, EventArgs e) { System.Windows.Forms.Clipboard.SetText(selected_cellvalue); } private void sfDataGrid1_CurrentCellKeyDown(object sender, CurrentCellKeyEventArgs e) { } private void sfDataGrid1_KeyDown(object sender, KeyEventArgs e) { if (e.Control && e.KeyCode == Keys.C) { System.Windows.Forms.Clipboard.SetText(selected_cellvalue); e.SuppressKeyPress = true; } } private void druckenToolStripMenuItem_Click(object sender, EventArgs e) { DocGet gd = new DocGet(AppParams.connectionstring); clsdok dok = new clsdok("", "", ""); dok = gd.GetDoc(selected_dokumentid); gd.Print_Doc(dok.dokument); } private void RibbonButtonTest1_Click(object sender, EventArgs e) { DOCGEN.print print = new DOCGEN.print(); print.printWord(); } private void ribbonPartnerSuche_Click(object sender, EventArgs e) { Partnersuche ps = new Partnersuche(); ps.ShowDialog(); if (ps.DialogResult == DialogResult.OK) { this.partnernr = ps.partnernr; this.ribbonTextPartner.Text = this.partnernr.ToString(); refresh_dokumente(); } } private void ribbonTextPartnernr_TextBoxKeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { this.partnernr= Convert.ToInt32(ribbonTextPartner.TextBoxText.Trim()); refresh_dokumente(); } } private void RibbonButtonBerechtigungsgruppe_Click(object sender, EventArgs e) { TableEditor tb = new TableEditor("Relaunch_Berechtigungsgruppe"); tb.Show(); } private void ribbonButton2_Click(object sender, EventArgs e) { Verbindungseditor ve = new Verbindungseditor("Relaunch_Berechtigungsgruppe","Mitarbeiter", "Relaunch_Berechtigungsgruppe_Mitarbeiter"); ve.Show(); } private void RibbonButtonDokumenttyp_Click(object sender, EventArgs e) { DokumenttypListe dtliste = new DokumenttypListe(); dtliste.Show(); } private void RibbonButtonVorlagen_Click(object sender, EventArgs e) { OfficeVorlage ov = new OfficeVorlage(); ov.Show(); } private void pDFGenerierenToolStripMenuItem_Click(object sender, EventArgs e) { DOCGEN.DocGet dg = new DocGet(AppParams.connectionstring); //dg.GetDocAsPDF(selected_dokumentid); clsdok dok = new clsdok("", "", ""); dok = dg.GetDocAsFinalPDF(selected_dokumentid); clsFileHelper fh = new clsFileHelper(); string tempfilename = ""; tempfilename = fh.save_temp_file(dok.dokument, selected_dokumentid, AppParams.tempdir, dok.extension); } private void ribbonButtonNativ_Click(object sender, EventArgs e) { NativVorlagen nv = new NativVorlagen(); nv.Show(); } private void RibbonButtonArchivToOnBase_Click(object sender, EventArgs e) { } private void ribbonButtonVersandstrasse_Click(object sender, EventArgs e) { Versandpakete versandpakete = new Versandpakete(); Versandpaket paket = new Versandpaket(); paket.Versandoption = "1"; paket.Mitteilung = ""; paket.GAS = ""; paket.GASAdresse = ""; paket.PaketNr = "1"; var records = sfDataGrid1.View.GetSelectedRecords(); if (records.Count < 1) { return; } // string[] selectedDokument = new string[records.Count]; int i = 0; paket.Dokument = new List(); foreach (var record in records) { var datarow = record as DataRowView; paket.Dokument.Add(new Versanddokument(datarow["dokumentid"].ToString(), datarow["doktyp"].ToString(), datarow["partner-nr"].ToString())); i++; } versandpakete.paket = new List(); versandpakete.paket.Add(paket); OnDoc.Versandstrasse.Versandstrasse vs = new OnDoc.Versandstrasse.Versandstrasse(versandpakete); vs.Show(); dokumentAnVersandstrasseToolStripMenuItem.Visible = true; } private void RibbonButtonFavoriten_Click(object sender, EventArgs e) { createnewdoc(0, 0, true); } private void ribbonButtonApproval_Click(object sender, EventArgs e) { if (this.lblToApprove.Text=="") { MessageBox.Show("Es sind keine Bewilligungen ausstehend.", "Bewilligung", MessageBoxButtons.OK, MessageBoxIcon.Information);return; } frmBewilligung bw = new frmBewilligung(); bw.Show(); } private void ribbonButtonToApproval_Click(object sender, EventArgs e) { frmToApproval fa = new frmToApproval(); fa.dokumentid=selected_dokumentid; fa.ShowDialog(); } private void Refresh_Bewilligungen() { DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select count(*) from view_relaunch_offene_Bewilligungen where mitarbeiter_bewilligung=" + AppParams.CurrentMitarbieter.ToString(), false, true); if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]) == 0) { this.lblToApprove.Text = ""; } else { this.lblToApprove.Text = db.dsdaten.Tables[0].Rows[0][0].ToString(); } db = null; } private void timer1_Tick(object sender, EventArgs e) { Refresh_Bewilligungen(); } private void ribbonButtonRefresh_Bewilligungen_Click(object sender, EventArgs e) { Refresh_Bewilligungen(); } private void ribbon2_Click(object sender, EventArgs e) { if (ribbon2.ActiveTab.Text != "Funktionen") { lblToApprove.Visible= false; cbboxMitarbeiter.Visible= false; } else { lblToApprove.Visible= true; cbboxMitarbeiter.Visible = true; } } private void cbboxMitarbeiter_SelectedValueChanged(object sender, EventArgs e) { this.forMaNr = Convert.ToInt32(cbboxMitarbeiter.SelectedValue); refresh_dokumente(); } } }