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.

2014 lines
79 KiB

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;
using System.Data.SqlClient;
using Windows.ApplicationModel.VoiceCommands;
using Syncfusion.Windows.Forms;
using System.Runtime.Remoting.Messaging;
using Syncfusion.WinForms.DataGrid.Enums;
using System.Security.Cryptography;
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_partnernr { get; set; }
public string selected_cellvalue { get; set; }
private string vorschauposition = "";
private bool Separate_Vorschau_offen = false;
public string datafilter { get; set; } = "";
public bool interop { get; set; } = false;
public bool runmacros { get; set; } = false;
//private string currentview { get; set; } = "";
private System.Data.DataRow currentview { get; set; }
//private string paketview { get; set; } = "";
private System.Data.DataRow paketview { get; set; }
public string Search_Docid { get; set; } = "";
private System.Data.DataTable Ansichten { get; set; }
public DokList()
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("de-DE");
InitializeComponent();
Broadcaster().AddListener(this);
//t_functions();
pos_elements();
}
public void OnListen(string message, SenderInfo sender)
{
if (sender.SenderName is "PreviewWindow")
{
if (sender.Function == "WindowClosed")
{
this.Separate_Vorschau_offen = false;
}
}
if (sender.SenderName is "AdminDokErstellung")
{
createnewdoc(0, Convert.ToInt32(sender.Details));
}
}
private void DokList_Load(object sender, EventArgs e)
{
tsrbvorschau.SelectedIndex = 0;
//sfDataGrid1.AllowDraggingColumns = true;
// Helper.Security security = new Helper.Security();
// security.set_security(this);
//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;
}
}
db = null;
refresh_ansichten();
}
private void refresh_ansichten(string Bezeichnung = "")
{
ribbonCBAnsicht.DropDownItems.Clear();
DB db = new DB(AppParams.connectionstring);
db.clear_parameter();
db.add_parameter("@maid", AppParams.CurrentMitarbieter.ToString());
db.Get_Tabledata("sp_ondoc_get_magridveiw", true, false);
Ansichten = db.dsdaten.Tables[0].Copy();
//string standardview = "";
System.Data.DataRow standardview = null;
foreach (System.Data.DataRow dr in Ansichten.Rows)
{
RibbonLabel rl = new RibbonLabel();
rl.Text = dr["bezeichnung"].ToString();
rl.Tag = Convert.ToInt32(dr["id"]);
if (Convert.ToInt32(rl.Tag) == -102 && AppParams.isSysadmin)
{
ribbonCBAnsicht.DropDownItems.Add(rl);
}
if (Convert.ToInt32(rl.Tag) == -102)
{
//paketview = dr["gridsettings"].ToString();
paketview = dr;
}
if (Convert.ToInt32(rl.Tag) == -101)
{
standardview = dr;
}
if (Convert.ToInt32(rl.Tag) != -102)
{
ribbonCBAnsicht.DropDownItems.Add(rl);
}
if (Convert.ToBoolean(dr["standard"]) == true && Bezeichnung == "")
{
ribbonCBAnsicht.SelectedItem = rl;
standardview = dr;
//standardview = dr["gridsettings"].ToString();
}
if (rl.Text == Bezeichnung)
{
ribbonCBAnsicht.SelectedItem = rl;
//standardview = dr["gridsettings"].ToString();
standardview = dr;
}
}
db = null;
// if (standardview != "") { refresh_view(standardview); }
if (standardview != null) { refresh_view(standardview); }
}
public bool grid_empty()
{
if (this.sfDataGrid1.RowCount > 0) { return false; } else return true;
}
public bool row_selected()
{
if (grid_empty() == true) { return false; }
var records = sfDataGrid1.View.GetSelectedRecords();
if (records.Count < 1) { return false; }
return true;
}
public void delete_doks_in_list()
{
try
{
var records = this.sfDataGrid1.View.Records;
foreach (var record in records)
{
var a = record.Data;
var b = a as DataRowView;
string dokumentid = b["dokumentid"].ToString();
dokument_loeschen(dokumentid);
}
}
catch { }
}
public void refresh_dokumente(string layout = "")
{
update_currentview();
if (datafilter != "")
{
refresh_dokumente_filtered(layout);
if (layout == "view_dokumentpaket")
{
refresh_view(paketview);
}
else
{
refresh_view(currentview);
}
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, Search_Docid, false);
// TableHelper.SetColumnsOrder(dokumente, "trefferliste");
if (layout == "") { layout = "trefferliste_relaunch"; }
TableHelper.FormatTable(ref dokumente, layout, ref this.sfDataGrid1);
//this.sfDataGrid1.DataSource = dokumente;
sfDataGrid1.View.AutoExpandGroups = true;
this.timer1.Enabled = true;
refresh_view(currentview);
//foreach (GridColumn gd in sfDataGrid1.Columns)
//{
// sfDataGrid1.GroupColumnDescriptions.Add(new GroupColumnDescription() { ColumnName = gd.MappingName });
//}
//sfDataGrid1.RowHeight = 60;
}
public void refresh_dokumente_filtered(string layout = "")
{
DB db = new DB(AppParams.connectionstring);
int selectedIndex = RibbonCBProfil.SelectedIndex;
try
{
profilnr = Convert.ToInt32(RibbonCBProfil.SelectedItem.Tag.ToString());
}
catch
{
load_Profile();
profilnr = Convert.ToInt32(RibbonCBProfil.SelectedItem.Tag.ToString());
}
System.Data.DataTable dokumente = new System.Data.DataTable();
dokumente = db.Get_Dokumente(partnernr, docartnr, profilnr, forMaNr, Search_Docid, false);
dokumente.DefaultView.RowFilter = datafilter;
if (layout == "") { layout = "trefferliste_relaunch"; }
// TableHelper.SetColumnsOrder(dokumente, "trefferliste");
TableHelper.FormatTable(ref dokumente, layout, ref this.sfDataGrid1);
//this.sfDataGrid1.DataSource = dokumente;
}
private void update_ansicht(string bearbeitung_zwingend, string toApprove, string approved)
{
if (dokwerte1.Width > 0)
{
dokwerte1.Update_Werte(selected_dokumentid);
}
if (bearbeitung_zwingend == "True")
{
RibbonButtonArchivToOnBase.Enabled = false;
archivierenToolStripMenuItem.Enabled = false;
}
else
{
if (toApprove == "True" && approved == "False")
{
RibbonButtonArchivToOnBase.Enabled = false;
archivierenToolStripMenuItem.Enabled = false;
}
else
{
RibbonButtonArchivToOnBase.Enabled = true;
archivierenToolStripMenuItem.Enabled = true;
}
}
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 sfDataGrid1_CellClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e)
{
string documentid = "";
try
{
var rowIndex = e.DataRow.RowIndex;
//Get the column index value
var columnIndex = e.DataColumn.ColumnIndex;
var selectedItem = e.DataRow;
var dataRow = (e.DataRow.RowData as DataRowView).Row;
documentid = dataRow["dokumentid"].ToString();
selected_dokumentid = documentid;
selected_partnernr = dataRow["Partner-Nr"].ToString();
selected_cellvalue = dataRow[columnIndex].ToString();
selected_cellvalue = this.sfDataGrid1.View.GetPropertyAccessProvider().GetValue(e.DataRow.RowData, e.DataColumn.GridColumn.MappingName).ToString();
update_ansicht(dataRow["Bearbeitung_Zwingend"].ToString(), dataRow["toapprove"].ToString(), dataRow["approved"].ToString());
return;
if (dokwerte1.Width > 0)
{
dokwerte1.Update_Werte(selected_dokumentid);
}
if (dataRow["Bearbeitung_Zwingend"].ToString() == "1")
{
RibbonButtonArchivToOnBase.Enabled = false;
archivierenToolStripMenuItem.Enabled = false;
}
else
{
if (dataRow["toapprove"].ToString() == "True" && dataRow["approved"].ToString() == "False")
{
RibbonButtonArchivToOnBase.Enabled = false;
archivierenToolStripMenuItem.Enabled = false;
}
else
{
RibbonButtonArchivToOnBase.Enabled = true;
archivierenToolStripMenuItem.Enabled = true;
}
}
}
catch
{
selected_dokumentid = "";
selected_partnernr = "";
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)
{
if (!row_selected()) return;
var records = sfDataGrid1.View.GetSelectedRecords();
if (records.Count > 1)
{
if (MessageBox.Show("Mehrere Dokumente zum Bearbeiten öffnen?", "Dokument bearbeiten", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; }
}
foreach (var record in records)
{
var datarow = record as DataRowView;
string documentid = datarow["dokumentid"].ToString();
dokument_bearbeiten(documentid);
}
}
public void dokument_bearbeiten(string dokid)
{
if (dokid != "") { selected_dokumentid = dokid; }
clsdok dok = GetDoc(false);
if (dok.dokument == "") return;
DB db = new DB(AppParams.connectionstring);
try
{
if (db.Dok_in_Bearbeitung(3, selected_dokumentid, AppParams.CurrentMitarbieter) == false)
{
MessageBox.Show("Das Dokument wird aktuell bearbeitet.", "Dokumentbearbeitung", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
db.Get_Tabledata("Select * from dokument_trefferliste where dokumentid='" + dokid + "'", false, true);
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["Status_Bezeichnungnr"]) == -2)
{
MessageBox.Show("Das Dokument " + dokid + " wurde zwischenzeitlich archiviert und kann nicht mehr bearbeitet werden.", "Dokument bearbeiten", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
db.Get_Tabledata("Select * from dokument where dokumentid='" + selected_dokumentid + "'", false, true);
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["verantwortlich"]) != AppParams.CurrentMitarbieter)
{
if (MessageBox.Show("Durch die Bearbeitung wird die Dokument-Verantwortung übernommen.", "Dokumentbearbieutng", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
{
db.Exec_SQL("Update dokument set verantwortlich=" + AppParams.CurrentMitarbieter.ToString() + " where dokumentid='" + selected_dokumentid + "'");
Logging.DocLog.Info("Verantwortung für Bearbeitung übernommen", "Doklist", selected_dokumentid, selected_partnernr, "Verantwortung übernommen");
}
}
db.Dok_in_Bearbeitung(1, selected_dokumentid, AppParams.CurrentMitarbieter);
}
catch { }
finally
{
db = null;
}
Logging.DocLog.Info("Dokument bearbeiten", "Doklist", selected_dokumentid, selected_partnernr, "Dokument bearbeiten: InterOP: " + interop.ToString());
OpenDoc(dok, true, interop, runmacros);
}
private clsdok GetDoc(bool AsPDF)
{
clsdok dok = new clsdok("", "", "");
if (selected_dokumentid == "")
{
return dok; ;
}
if (AppParams.UseAPI == "YES")
{
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.Headers["Authorization"] = "Bearer " + AppParams.apikey;
//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<clsdok>(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, bool interop = false, bool runmacros = false)
{
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);
if (interop == true)
{
OnDocOffice.clsWordEdit WordInterOP = new OnDocOffice.clsWordEdit(AppParams.connectionstring, tempfilename, selected_dokumentid);
WordInterOP.Edit_Document(runmacros);
WordInterOP = null;
}
else
{
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);
if (interop == true)
{
OnDocOffice.clsExcelEdit ExcelInterOP = new OnDocOffice.clsExcelEdit(AppParams.connectionstring, tempfilename, selected_dokumentid);
ExcelInterOP.Edit_Document();
ExcelInterOP = null;
}
else
{
System.Diagnostics.Process.Start("excel.exe", " " + 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 / 3;
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;
update_currentview();
}
private void update_currentview()
{
currentview["Preview"] = tsrbvorschau.SelectedIndex;
if (RibbonButtonAttributeEinAusblenden.Checked) { currentview["Attributes"] = 1; } else { currentview["Attributes"] = 0; }
currentview["Splitterdistance"] = splitContainer1.SplitterDistance;
MemoryStream ms = new MemoryStream();
this.sfDataGrid1.Serialize(ms);
currentview["Gridsettings"]= Convert.ToBase64String(ms.ToArray());
}
private void RibbonBtnVorschauUnten_Click(object sender, EventArgs e)
{
if (tsrbvorschau.SelectedIndex == 1) { tsrbvorschau.SelectedIndex = 0; } else { tsrbvorschau.SelectedIndex = 1; }
update_currentview();
}
private void RibbonButtonVorschauRechts_Click(object sender, EventArgs e)
{
if (tsrbvorschau.SelectedIndex == 2) { tsrbvorschau.SelectedIndex = 0; } else { tsrbvorschau.SelectedIndex = 2; }
update_currentview();
}
private void RibbonBtnVorschauSepparat_Click(object sender, EventArgs e)
{
update_currentview();
if (Separate_Vorschau_offen == true)
{
try
{
Broadcaster().Broadcast(selected_dokumentid, new SenderInfo("Doklist", "Close", ""));
return;
}
catch
{
return;
}
}
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 set_vorschau_aus_dp()
{
tsrbvorschau.SelectedIndex = 2;
}
public void StartPruefung()
{
ribbonButtonApproval_Click(null, null);
}
public void createdocumentpaket(int partnernr, int dokumentpaketnr)
{
Dokumentpaket dp = new Dokumentpaket(dokumentpaketnr, partnernr);
dp.Show();
}
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; }
}
profilnr = Convert.ToInt32(RibbonCBProfil.SelectedItem.Tag.ToString());
Dokumenterstellung frmnewdok = new Dokumenterstellung(partnernr, dokumenttypnr, profilnr);
if (interaktion == "No")
{
frmnewdok.Show();
frmnewdok.Visible = false;
frmnewdok.Dokument_Erstellen();
frmnewdok.Dispose();
}
else
{
frmnewdok.ShowDialog();
refresh_dokumente();
}
switch (frmnewdok.DocFunction)
{
case 1:
if (frmnewdok.dokumentid != "")
{
selected_dokumentid = frmnewdok.dokumentid;
selected_partnernr = frmnewdok.partnernr.ToString(); ;
interop = frmnewdok.interop;
runmacros = frmnewdok.runmacros;
dokument_bearbeiten(selected_dokumentid);
}
break;
case 2:
if (frmnewdok.dokumentid != "")
{
dokument_loeschen(frmnewdok.dokumentid);
}
break;
case 3:
break;
case 4:
archivedoc(frmnewdok.dokumentid);
break;
case 5:
break;
case 6:
selected_dokumentid = frmnewdok.dokumentid;
selected_partnernr = frmnewdok.partnernr.ToString(); ;
interop = frmnewdok.interop;
runmacros = frmnewdok.runmacros;
string filename = frmnewdok.filename;
DB db = new DB(AppParams.connectionstring);
db.clear_parameter();
db.add_parameter("@dokumentid", selected_dokumentid);
db.Get_Tabledata("ondoc_check_delete_einzeldokument", true, false);
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]) > 0) {
db = null;
return;
}
db.Dok_in_Bearbeitung(1, selected_dokumentid, AppParams.CurrentMitarbieter);
db = null;
clsProcessWatch.AddToList(selected_dokumentid, filename, "Word");
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();
}
public void dokument_loeschen(string dokumentid)
{
DB db = new DB(AppParams.connectionstring);
db.Exec_SQL("Update dokument set aktiv=0, mutiertam=getdate(), mutierer=" + AppParams.CurrentMitarbieter.ToString() + " where dokumentid='" + dokumentid + "'");
//db.Exec_SQL("Delete from dokument where dokumentid='" + dokumentid + "'");
//db.Exec_SQL("Delete from dokument_trefferliste where dokumentid='" + dokumentid + "'");
db = null;
Logging.DocLog.Info("Dokument gelöscht", "Doklist.Dokument_loeschen", dokumentid, "", "Dokument gelöscht");
}
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)
{
if (!row_selected()) return;
InputDialog ma = new InputDialog(true, "Verantwortlichkeit wechseln zu");
ma.ShowDialog();
if (ma.DialogResult == DialogResult.OK)
{
DB dB = new DB(AppParams.connectionstring);
dB.Exec_SQL("Update dokument set verantwortlich=" + ma.result + " where dokumentid = '" + selected_dokumentid + "'");
dB = null;
Logging.DocLog.Info("Verantwortung zugewiesen auf " + ma.result.ToString(), "Doklist", selected_dokumentid, selected_partnernr, "Verantwortung zugewiesen");
refresh_dokumente();
}
}
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()
{
refresh_ansichten("");
this.RibbonButtonFavoriten.Visible = false;
this.RibbonPanelSuche.Visible = false;
this.RibbonPannelAproval.Visible = false;
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;
this.ribbonTabDokpaket_Serienbrief.Visible = false;
this.ribbonButtonVersandstrasse.Visible = false;
this.ribbonTabDokpaket_Serienbrief.Visible = false;
this.ribbonTabProfil.Visible = false;
this.RibbonTabNativVorlagen.Visible = false;
this.RibbonTabAdmin.Visible = false;
this.sfDataGrid1.ShowGroupDropArea = false;
this.RibbonPannelAnsicht.Visible = false;
}
private void sfDataGrid1_DrawCell(object sender, DrawCellEventArgs e)
{
try
{
if (e.Column.MappingName == "zu_retournieren")
{
e.Handled = true;
e.Column.CellStyle.HorizontalAlignment = HorizontalAlignment.Center;
e.Handled = true;
var selectedItem = e.DataRow;
var dataRow = (e.DataRow.RowData as DataRowView).Row;
if (Convert.ToBoolean(dataRow["zu_retournieren"]) == true)
{
e.Graphics.DrawImage(OnDoc.Properties.Resources.Barcode_16x16_32, e.Bounds.X + 20, e.Bounds.Y + 3);
}
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);
return;
}
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")
{
//word
if (Convert.ToBoolean(dataRow["Bearbeitung_Zwingend"]) == false)
{
if (Convert.ToBoolean(dataRow["ToApprove"]) == true)
{
if (Convert.ToBoolean(dataRow["approved"]) == true)
{
e.Graphics.DrawImage(OnDoc.Properties.Resources.Word_approved_24x24_32, e.Bounds.X + 20, e.Bounds.Y);
}
else
{
e.Graphics.DrawImage(OnDoc.Properties.Resources.Word_ToApprove_24x24_32, e.Bounds.X + 20, e.Bounds.Y);
}
}
else
{
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);
}
// return;
}
if (dataRow[0].ToString().Substring(0, 1).ToUpper() == "X")
{
if (Convert.ToBoolean(dataRow["Bearbeitung_Zwingend"]) == false == false)
if (Convert.ToBoolean(dataRow["toapprove"]) == true)
{
if (Convert.ToBoolean(dataRow["approved"]) == true)
{
e.Graphics.DrawImage(OnDoc.Properties.Resources.Excel_approved_24x24_32, e.Bounds.X + 20, e.Bounds.Y);
}
else
{
e.Graphics.DrawImage(OnDoc.Properties.Resources.Excel_ToApprove_24x24_32, e.Bounds.X + 20, e.Bounds.Y);
}
}
else
{
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);
return;
}
catch { }
}
}
catch { }
e.Handled = false;
}
private void zellenwertInZwischenablageKopierenToolStripMenuItem_Click(object sender, EventArgs e)
{
System.Windows.Forms.Clipboard.SetText(selected_cellvalue);
}
private void sfDataGrid1_KeyDown(object sender, KeyEventArgs e)
{
}
private void druckenToolStripMenuItem_Click(object sender, EventArgs e)
{
var records = sfDataGrid1.View.GetSelectedRecords();
if (records.Count < 1) { return; }
if (MessageBox.Show("Gewählte Dokument(e) drucken", "Dokument drucken", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; }
Cursor = Cursors.WaitCursor;
foreach (var record in records)
{
var datarow = record as DataRowView;
string documentid = datarow["dokumentid"].ToString();
print_doc(documentid);
}
Cursor = Cursors.Default;
}
private void print_doc(string dokumentid)
{
DocGet gd = new DocGet(AppParams.connectionstring);
clsdok dok = new clsdok("", "", "");
dok = gd.GetDoc(dokumentid);
Helper.FileHelper fh = new Helper.FileHelper();
string Filename = "";
switch (dok.doktype)
{
case "D":
OfficePrinter.OnDocOffice op = new OfficePrinter.OnDocOffice();
Filename = AppParams.tempdir + dokumentid + "." + dok.extension;
fh.SaveBase64ToFile(dok.dokument, Filename);
op.PrintInWord(Filename, AppParams.wordprintmacro);
System.IO.File.Delete(Filename);
op = null;
break;
case "X":
System.Diagnostics.Process.Start("winword.exe", "/w " + Filename);
break;
case "P":
DocPreview docPreview = new DocPreview();
docPreview.Show_Doc(dokumentid);
docPreview.printpdf();
docPreview.Dispose();
break;
default:
break;
}
fh = null;
gd = null;
}
private void RibbonButtonTest1_Click(object sender, EventArgs e)
{
DOCGEN.print print = new DOCGEN.print();
print.printWord();
}
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();
Dokumenttyp doktype = new Dokumenttyp();
doktype.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 archivedoc(string documentid)
{
string URL = AppParams.RESTURI + "api/ArchiveDocFromDatabase?dokumentid=" + documentid;
HttpWebRequest webRequest = HttpWebRequest.Create(URL) as HttpWebRequest;
webRequest.Method = WebRequestMethods.Http.Get;
webRequest.Headers["Authorization"] = "Bearer " + AppParams.apikey;
try
{
using (HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse)
{
if (response.StatusCode == HttpStatusCode.OK)
{
StreamReader reader = new StreamReader(response.GetResponseStream());
string responseContent = reader.ReadToEnd();
Logging.DocLog.Info("Dokument archiviert", "OnDoc", documentid, "", "Dokument archiviert und abgeschlossen");
}
else
{
MessageBox.Show("Die Archivierung des Dokumentes " + documentid + " wurde abgebrochen." + Environment.NewLine + "Fehler: " + response.StatusDescription);
Logging.Logging.Error(URL + ": " + response.StatusCode.ToString() + " / " + response.StatusDescription, "Clinet - DokList GetDocument", "");
}
}
}
catch (Exception ex)
{
MessageBox.Show("Die Archivierung des Dokumentes " + documentid + " konnte nicht durchgeführt werden." + Environment.NewLine + "Fehler: " + ex.Message);
}
}
private void RibbonButtonArchivToOnBase_Click(object sender, EventArgs e)
{
var records = sfDataGrid1.View.GetSelectedRecords();
if (records.Count < 1) { return; }
if (MessageBox.Show("Gewählte Dokument(e) archiviern und abschliessen", "Dokument archivieren und abschliessen", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; }
DB db = new DB(AppParams.connectionstring);
Cursor = Cursors.WaitCursor;
foreach (var record in records)
{
var datarow = record as DataRowView;
string documentid = datarow["dokumentid"].ToString();
db.Get_Tabledata("Select * from dokument_trefferliste where dokumentid='" + documentid + "'", false, true);
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["Status_Bezeichnungnr"]) == -2)
{
MessageBox.Show("Das Dokument " + documentid + " wurde zwischenzeitlich archiviert und kann nicht erneut archiviert werden.", "Dokument archivieren", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
archivedoc(documentid);
}
}
db = null;
Cursor = Cursors.Default;
refresh_dokumente();
// return;
// string URL = AppParams.RESTURI + "api/ArchiveDocFromDatabase?dokumentid=" + documentid;
// HttpWebRequest webRequest = HttpWebRequest.Create(URL) as HttpWebRequest;
// webRequest.Method = WebRequestMethods.Http.Get;
// webRequest.Headers["Authorization"] = "Bearer " + AppParams.apikey;
// try
// {
// using (HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse)
// {
// if (response.StatusCode == HttpStatusCode.OK)
// {
// StreamReader reader = new StreamReader(response.GetResponseStream());
// string responseContent = reader.ReadToEnd();
// }
// else
// {
// MessageBox.Show("Die Archivierung des Dokumentes " + documentid + " wurde abgebrochen." + Environment.NewLine + "Fehler: " + response.StatusDescription);
// Logging.Logging.Error(URL + ": " + response.StatusCode.ToString() + " / " + response.StatusDescription, "Clinet - DokList GetDocument", "");
// }
// }
// } catch (Exception ex) {
// MessageBox.Show("Die Archivierung des Dokumentes " + documentid + " konnte nicht durchgeführt werden." + Environment.NewLine + "Fehler: " + ex.Message);
// }
//}
//refresh_dokumente();
}
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<Versanddokument>();
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<Versandpaket>();
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)
{
Refresh_Bewilligungen();
if (this.ribbonLabelToApprove.Text == "") { MessageBox.Show("Es stehen keine Dokumente zur Unterschriftenprüfung an.", "Unterschriftenprüfung", MessageBoxButtons.OK, MessageBoxIcon.Information); return; }
frmBewilligung bw = new frmBewilligung();
bw.Show();
}
private void ribbonButtonToApproval_Click(object sender, EventArgs e)
{
if (!row_selected()) return;
frmToApproval fa = new frmToApproval();
fa.dokumentid = selected_dokumentid;
fa.ShowDialog();
}
public void upruefung()
{
Refresh_Bewilligungen();
if (this.ribbonLabelToApprove.Text == "") { MessageBox.Show("Es stehen keine Dokumente zur Unterschriftenprüfung an.", "Unterschriftenprüfung", MessageBoxButtons.OK, MessageBoxIcon.Information); return; }
frmBewilligung bw = new frmBewilligung();
bw.Show();
}
private void Refresh_Bewilligungen()
{
try
{
DB db1 = new DB(AppParams.connectionstring);
db1.Get_Tabledata("Select count(*) from view_relaunch_approval where bewilligt=0 and abgelehnt = 0 and mitarbeiter_bewilligung=" + AppParams.CurrentMitarbieter.ToString(), false, true);
if (Convert.ToInt32(db1.dsdaten.Tables[0].Rows[0][0]) == 0)
{
ribbonLabelToApprove.Text = "";
ribbonLabelToApprove.Visible = false;
}
else
{
ribbonLabelToApprove.Text = db1.dsdaten.Tables[0].Rows[0][0].ToString();
ribbonLabelToApprove.Visible = true;
}
db1 = null;
}
catch { }
}
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)
{
//pos_elements();
//if (ribbon2.ActiveTab.Text != "Funktionen")
//{
// lblToApprove.Visible = false;
//}
//else
//{
// lblToApprove.Visible = true;
//}
}
private void pos_elements()
{
//System.Windows.Forms.Application.DoEvents();
//int posx = ribbonButtonApproval.Bounds.X;
//int width = RibbonPannelAproval.Bounds.Width;
//if (RibbonPannelAproval.Visible == true && ribbonButtonApproval.Visible == true)
//{
// //lblToApprove.Visible = true;
// lblToApprove.Left = posx + (width / 2);
//}
//else { lblToApprove.Visible = false; }
}
private void ribbonButton3_Click(object sender, EventArgs e)
{
BarcodeLib.Barcode bck = new BarcodeLib.Barcode();
bck.Gen_BCK(AppParams.connectionstring);
}
public void set_functions()
{
Security security = new Security();
security.set_security(this);
security = null;
ribbonVorlagen.Visible = AppParams.isSysadmin;
ribbonBerechtigung.Visible = AppParams.isSysadmin;
ribbonpanelanalyse.Visible = AppParams.isSysadmin;
RibbonTabAdmin.Visible = false;
RibbonTabAdmin.Visible = true;
ribbonSaveGridView.Enabled = AppParams.isSysadmin;
ribbonSaveGridView.Visible = AppParams.isSysadmin;
//pos_elements();
}
private void ribbon2_DockChanged(object sender, EventArgs e)
{
}
private void DokList_DockChanged(object sender, EventArgs e)
{
}
private void wordInterOPEditToolStripMenuItem_Click(object sender, EventArgs e)
{
clsdok dok = GetDoc(false);
if (dok.dokument == "") return;
OpenDoc(dok, true, true);
}
private void ribbonGroupMitarbeiter_Click(object sender, EventArgs e)
{
InputDialog ma = new InputDialog(true, "Verantwortlicher Mitarbeiter wählen");
ma.ShowDialog();
if (ma.DialogResult == DialogResult.OK)
{
Filter_Loeschen();
this.RibbonFilterLabel.Text = ma.resulttext;
this.forMaNr = Convert.ToInt32(ma.result);
RibbonFilterLabel.Visible = true;
RibbonFilterDelete.Visible = true;
refresh_dokumente();
}
}
private void ribbonButton3_Click_1(object sender, EventArgs e)
{
Partnersuche ps = new Partnersuche();
ps.ShowDialog();
if (ps.DialogResult == DialogResult.OK)
{
Filter_Loeschen();
this.partnernr = ps.partnernr;
RibbonFilterLabel.Text = ps.partnernr + " " + ps.partnerkurzname;
RibbonFilterLabel.Visible = true;
RibbonFilterDelete.Visible = true;
if (ps.partnersaldiert) { RibbonPartnerSaldiert.Visible = true; } else { RibbonPartnerSaldiert.Visible = false; }
refresh_dokumente();
}
}
private void ribbonDokumntID_Click(object sender, EventArgs e)
{
InputDialog dokid = new InputDialog("Dokument-ID", "Gesuchte Dokument-ID", "");
dokid.ShowDialog();
if (dokid.DialogResult == DialogResult.OK)
{
Filter_Loeschen();
Search_Docid = dokid.result;
RibbonFilterLabel.Text = dokid.result;
RibbonFilterLabel.Visible = true;
RibbonFilterDelete.Visible = true;
refresh_dokumente();
}
}
private void RibbonFilterDelete_Click(object sender, EventArgs e)
{
Filter_Loeschen();
refresh_dokumente();
}
private void Filter_Loeschen()
{
this.partnernr = 0;
this.forMaNr = 0;
this.Search_Docid = "";
this.RibbonFilterLabel.Visible = false;
this.RibbonFilterLabel.Text = "";
this.RibbonPartnerSaldiert.Visible = false;
RibbonFilterDelete.Visible = false;
}
private void ribbonbuttonlogin_Click(object sender, EventArgs e)
{
frmLogin frmLogin = new frmLogin();
frmLogin.ShowDialog();
if (frmLogin.DialogResult == DialogResult.OK)
{
AppParams.CurrentMitarbieter = frmLogin.selectedmitarbeiternr;
DB db = new DB(AppParams.connectionstring);
this.mitarbeiternr = AppParams.CurrentMitarbieter;
db.Get_Tabledata("Select * from mitarbeiter where mitarbeiternr=" + AppParams.CurrentMitarbieter.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; }
//Helper.Security security = new Helper.Security();
//security.set_security(dokList1);
db = null;
load_Profile();
refresh_dokumente();
set_functions();
}
}
//private void refresh_view(string base64string)
private void refresh_view(System.Data.DataRow dataRow)
{
string base64string = dataRow["gridsettings"].ToString();
byte[] bytes = Convert.FromBase64String(base64string);
string plaintext = Strings.Base64Decode(base64string);
string tagesdatum = DateTime.Now.ToString("yyyy-MM-ddT00:00:00");
//tagesdatum = "2024-11-29T00:00:00";
plaintext = plaintext.Replace("@today@", tagesdatum);
plaintext = Strings.Base64Encode(plaintext);
bytes = Convert.FromBase64String(plaintext);
if (plaintext == "")
{
if (AppParams.isSysadmin) { ribbonCBAnsicht.SelectedIndex = 1; } else { ribbonCBAnsicht.SelectedIndex = 0; }
return;
}
//currentview = plaintext;
currentview = dataRow;
using (MemoryStream ms = new MemoryStream(bytes))
{
this.sfDataGrid1.Deserialize(ms);
}
sfDataGrid1.ShowToolTip = true;
//sfDataGrid1.FilterRowPosition = RowPosition.Top;
tsrbvorschau.SelectedIndex = Convert.ToInt32(dataRow["Preview"]);
RibbonButtonAttributeEinAusblenden.Checked = Convert.ToInt32(dataRow["Attributes"])==1;
if (tsrbvorschau.SelectedIndex!=0 && Convert.ToInt32(dataRow["SplitterDistance"]) !=0 )
{
this.splitContainer1.SplitterDistance = Convert.ToInt32(dataRow["SplitterDistance"]);
this.docPreview1.set_zoom();
}
else
{
// docPreview1.clear_viewer();
}
show_hide_attribute();
try
{
this.sfDataGrid1.SelectedItem = this.sfDataGrid1.View.Records[0];
sfDataGrid1.SelectedIndex = 0;
}
catch
{
this.selected_dokumentid = "";
}
System.Windows.Forms.Application.DoEvents();
}
public static string Decode(string text)
{
text = text.Replace('_', '/').Replace('-', '+');
switch (text.Length % 4)
{
case 2:
text += "==";
break;
case 3:
text += "=";
break;
}
return Encoding.UTF8.GetString(Convert.FromBase64String(text));
}
private void ribbonButton4_Click(object sender, EventArgs e)
{
if (System.IO.File.Exists(@"x:\gridsettings.xml"))
{
using (var file = File.Open(@"x:\gridsettings.xml", FileMode.Open))
{
this.sfDataGrid1.Deserialize(file);
}
}
}
private void ribbonCBAnsicht_DropDownItemClicked(object sender, System.Windows.Forms.RibbonItemEventArgs e)
{
try
{
int selecteditem = Convert.ToInt32(e.Item.Tag);
if (selecteditem == -999)
{
RibbonButtonViewStandard_Click(sender, e);
return;
}
foreach (System.Data.DataRow dr in Ansichten.Rows)
{
if (Convert.ToInt32(dr["id"]) == selecteditem)
{
sfDataGrid1.ClearFilters();
sfDataGrid1.ClearGrouping();
sfDataGrid1.ClearSelection();
sfDataGrid1.ClearSorting();
//refresh_view(dr["gridsettings"].ToString());
refresh_view(dr);
}
}
}
catch { }
}
private void RibbonButtonViewStandard_Click(object sender, EventArgs e)
{
sfDataGrid1.ClearFilters();
sfDataGrid1.ClearGrouping();
sfDataGrid1.ClearSelection();
sfDataGrid1.ClearSorting();
ribbonCBAnsicht.SelectedIndex = 1;
}
private void RibbonButtonViewSave_Click(object sender, EventArgs e)
{
SaveAnsicht sa = new SaveAnsicht();
sa.ShowDialog();
if (sa.DialogResult == DialogResult.OK)
{
MemoryStream ms = new MemoryStream();
this.sfDataGrid1.Serialize(ms);
string inputAsString = Convert.ToBase64String(ms.ToArray());
DB db = new DB(AppParams.connectionstring);
if (sa.alsStandard == 1)
{
db.Exec_SQL("Update mitarbeiter_gridsettings set standard=0 where mitarbeiterid=" + AppParams.CurrentMitarbieter.ToString());
}
int distance = 0;
if (tsrbvorschau.SelectedIndex != 0) { distance = this.splitContainer1.SplitterDistance; }
int Attribute = 0;
if (RibbonButtonAttributeEinAusblenden.Checked) { Attribute = 1; }
string sql = "insert Mitarbeiter_GridSettings (mitarbeiterid, erstellt_am, aktiv, bezeichnung, gridsettings,standard, Preview, Attributes,splitterdistance) values(";
sql = sql + AppParams.CurrentMitarbieter.ToString() + ",getdate(),1,'" + sa.selectedtext + "','" + inputAsString + "'," + sa.alsStandard.ToString();
sql = sql + ", "+ tsrbvorschau.SelectedIndex.ToString()+", "+Attribute.ToString()+ ", "+distance.ToString()+")";
db.Exec_SQL(sql);
db = null;
if (sa.alsStandard != 1) { refresh_ansichten(sa.selectedtext); } else { refresh_ansichten(); }
//using (var file = File.Create(@"x:\gridsettings4.xml"))
//{
// this.sfDataGrid1.Serialize(file);
//}
}
}
private void RibbonButtonViewDelete_Click(object sender, EventArgs e)
{
string bez = ribbonCBAnsicht.SelectedItem.Text.Trim();
int ID = Convert.ToInt32(ribbonCBAnsicht.SelectedItem.Tag);
if (ID < 0)
{
MessageBox.Show("Die gewählte Standard-Ansicht kann nicht gelöscht werden", "Ansicht löschen", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (MessageBox.Show("Aktuelle Ansicht löschen?", "Ansicht löschen", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
DB db = new DB(AppParams.connectionstring);
foreach (System.Data.DataRow dr in Ansichten.Rows)
{
if (dr["bezeichnung"].ToString() == ribbonCBAnsicht.SelectedItem.Text)
{
db.Exec_SQL("Update mitarbeiter_gridsettings set aktiv=0 where id=" + dr["id"].ToString());
}
}
db = null;
refresh_ansichten();
}
}
private void ribbonButton4_Click_1(object sender, EventArgs e)
{
string bez = ribbonCBAnsicht.SelectedItem.Text.Trim();
string id = ribbonCBAnsicht.SelectedItem.Tag.ToString();
if (id == "-100" || id == "-101")
{
if (MessageBox.Show("Standard-Ansicht " + bez + " überschreiben?", "Ansichten", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
MemoryStream ms = new MemoryStream();
this.sfDataGrid1.Serialize(ms);
string inputAsString = Convert.ToBase64String(ms.ToArray());
DB db = new DB(AppParams.connectionstring);
db.Exec_SQL("Update mitarbeiter_gridsettings set gridsettings='" + inputAsString + "' where id=" + id.ToString());
db = null;
}
}
}
private void archivierenToolStripMenuItem_Click(object sender, EventArgs e)
{
RibbonButtonArchivToOnBase_Click(sender, e);
}
private void ribbonButtonNativVorlagen_Click(object sender, EventArgs e)
{
NativVorlagen nv = new NativVorlagen();
nv.Show();
}
private void show_hide_attribute()
{
if (RibbonButtonAttributeEinAusblenden.Checked)
{
dokwerte1.Width = 300;
dokwerte1.set_panelheight(sfDataGrid1.GroupPanel.Height, sfDataGrid1.GroupPanel.BackColor);
}
else
{
dokwerte1.Width = 0;
RibbonButtonAttributeEinAusblenden.Checked = false;
}
}
private void attributeAnzeigenVersteckenToolStripMenuItem_Click(object sender, EventArgs e)
{
if (RibbonButtonAttributeEinAusblenden.Checked)
{
RibbonButtonAttributeEinAusblenden.Checked = false;
} else
{
RibbonButtonAttributeEinAusblenden.Checked = true;
}
show_hide_attribute();
update_currentview();
}
//if (dokwerte1.Width == 0)
//{
// dokwerte1.Width = 300;
// dokwerte1.set_panelheight(sfDataGrid1.GroupPanel.Height, sfDataGrid1.GroupPanel.BackColor);
// dokwerte1.Update_Werte(selected_dokumentid);
// RibbonButtonAttributeEinAusblenden.Checked = true;
//}
//else
//{
// dokwerte1.Width = 0;
// RibbonButtonAttributeEinAusblenden.Checked = false;
//}
private void RibbonButtonAttributeEinAusblenden_Click(object sender, EventArgs e)
{
attributeAnzeigenVersteckenToolStripMenuItem_Click(sender, e);
}
private void sfDataGrid1_CurrentCellActivated(object sender, CurrentCellActivatedEventArgs e)
{
}
private void sfDataGrid1_ToolTipOpening(object sender, ToolTipOpeningEventArgs e)
{
return;
e.ToolTipInfo.Items.Clear();
Syncfusion.WinForms.Controls.ToolTipItem tt = new Syncfusion.WinForms.Controls.ToolTipItem();
tt.Text = "Ich bin der Tooltip";
e.ToolTipInfo.Items.Add(tt);
}
private void sfDataGrid1_CopyContent(object sender, CutCopyPasteEventArgs e)
{
e.Cancel = true;
zellenwertInZwischenablageKopierenToolStripMenuItem_Click(sender, e);
}
private void sfDataGrid1_ToolTipOpening_1(object sender, ToolTipOpeningEventArgs e)
{
//e.ToolTipInfo.Items.Clear();
//Syncfusion.WinForms.Controls.ToolTipItem tt = new Syncfusion.WinForms.Controls.ToolTipItem();
//tt.Text = "Hallo Du";
//e.ToolTipInfo.Items.Add(tt);
}
private void ribbonButtonVorlagenfeldregel_Click(object sender, EventArgs e)
{
TableEditor tb = new TableEditor("Vorlagenfeldregel");
tb.Show();
}
public int get_selected_records()
{
try
{
return sfDataGrid1.View.Records.Count;
}
catch
{
return 0;
}
}
private void sfDataGrid1_DataSourceChanged(object sender, Syncfusion.WinForms.DataGrid.Events.DataSourceChangedEventArgs e)
{
dokwerte1.clear_details();
docPreview1.clear_viewer();
if (get_selected_records() == 0)
{
RibbonButtonEditEditDoc.Enabled = false;
RibbonButtonEditDelete.Enabled = false;
RibbonButtonZuweisen.Enabled = false;
ribbonButtonToApproval.Enabled = false;
RibbonButtonArchivToOnBase.Enabled = false;
dokumentBearbeitenToolStripMenuItem.Enabled = false;
dokumentLöschenToolStripMenuItem.Enabled = false;
druckenToolStripMenuItem.Enabled = false;
dokumentKopierenToolStripMenuItem.Enabled = false;
attributeAnzeigenVersteckenToolStripMenuItem.Enabled = false;
historyToolStripMenuItem.Enabled = false;
archivierenToolStripMenuItem.Enabled = false;
zellenwertInZwischenablageKopierenToolStripMenuItem.Enabled = false;
selected_dokumentid = "";
selected_partnernr = "";
selected_cellvalue = "";
}
else
{
RibbonButtonEditEditDoc.Enabled = true;
RibbonButtonEditDelete.Enabled = true;
RibbonButtonZuweisen.Enabled = true;
ribbonButtonToApproval.Enabled = true;
RibbonButtonArchivToOnBase.Enabled = true;
dokumentBearbeitenToolStripMenuItem.Enabled = true;
dokumentLöschenToolStripMenuItem.Enabled = true;
archivierenToolStripMenuItem.Enabled = true;
zellenwertInZwischenablageKopierenToolStripMenuItem.Enabled = true;
druckenToolStripMenuItem.Enabled = true;
dokumentKopierenToolStripMenuItem.Enabled = true;
attributeAnzeigenVersteckenToolStripMenuItem.Enabled = true;
historyToolStripMenuItem.Enabled = true;
this.sfDataGrid1.SelectedItem = this.sfDataGrid1.View.Records[0];
sfDataGrid1.SelectedIndex = 0;
var record = sfDataGrid1.View.Records.GetItemAt(sfDataGrid1.SelectedIndex);
// var changed = DrugGrid.View.GetPropertyAccessProvider().SetValue(record, "GPackSize", "Hello"); // returns true, suggesting
selected_dokumentid = sfDataGrid1.View.GetPropertyAccessProvider().GetValue(record, "dokumentid").ToString();
selected_partnernr = sfDataGrid1.View.GetPropertyAccessProvider().GetValue(record, "partner-nr").ToString();
selected_cellvalue = selected_dokumentid;
string bearbeitung_zwingend = sfDataGrid1.View.GetPropertyAccessProvider().GetValue(record, "Bearbeitung_Zwingend").ToString();
string toapprove = sfDataGrid1.View.GetPropertyAccessProvider().GetValue(record, "toapprove").ToString();
string approved = sfDataGrid1.View.GetPropertyAccessProvider().GetValue(record, "approved").ToString();
update_ansicht(bearbeitung_zwingend, toapprove, approved);
}
}
private void sfDataGrid1_FilterChanged(object sender, FilterChangedEventArgs e)
{
update_currentview();
refresh_dokumente();
}
public void dokpaket_update_grid()
{
if (get_selected_records() == 0)
{
RibbonButtonEditEditDoc.Enabled = false;
RibbonButtonEditDelete.Enabled = false;
RibbonButtonZuweisen.Enabled = false;
ribbonButtonToApproval.Enabled = false;
RibbonButtonArchivToOnBase.Enabled = false;
dokumentBearbeitenToolStripMenuItem.Enabled = false;
dokumentLöschenToolStripMenuItem.Enabled = false;
archivierenToolStripMenuItem.Enabled = false;
zellenwertInZwischenablageKopierenToolStripMenuItem.Enabled = false;
selected_dokumentid = "";
selected_partnernr = "";
selected_cellvalue = "";
}
else
{
RibbonButtonEditEditDoc.Enabled = true;
RibbonButtonEditDelete.Enabled = true;
RibbonButtonZuweisen.Enabled = true;
ribbonButtonToApproval.Enabled = true;
RibbonButtonArchivToOnBase.Enabled = true;
dokumentBearbeitenToolStripMenuItem.Enabled = true;
dokumentLöschenToolStripMenuItem.Enabled = true;
archivierenToolStripMenuItem.Enabled = true;
zellenwertInZwischenablageKopierenToolStripMenuItem.Enabled = true;
this.sfDataGrid1.SelectedItem = this.sfDataGrid1.View.Records[0];
sfDataGrid1.SelectedIndex = 0;
var record = sfDataGrid1.View.Records.GetItemAt(sfDataGrid1.SelectedIndex);
// var changed = DrugGrid.View.GetPropertyAccessProvider().SetValue(record, "GPackSize", "Hello"); // returns true, suggesting
selected_dokumentid = sfDataGrid1.View.GetPropertyAccessProvider().GetValue(record, "dokumentid").ToString();
selected_partnernr = sfDataGrid1.View.GetPropertyAccessProvider().GetValue(record, "partner-nr").ToString();
selected_cellvalue = selected_dokumentid;
string bearbeitung_zwingend = sfDataGrid1.View.GetPropertyAccessProvider().GetValue(record, "Bearbeitung_Zwingend").ToString();
string toapprove = sfDataGrid1.View.GetPropertyAccessProvider().GetValue(record, "toapprove").ToString();
string approved = sfDataGrid1.View.GetPropertyAccessProvider().GetValue(record, "approved").ToString();
update_ansicht(bearbeitung_zwingend, toapprove, approved);
}
}
private void ribbonButtonSysadmins_Click(object sender, EventArgs e)
{
TableEditor tb = new TableEditor("ondoc_admin");
tb.Show();
}
private void ribbonbuttonedklog_Click(object sender, EventArgs e)
{
edk_viewer ev = new edk_viewer();
ev.Show();
}
private void ribbonbuttonedkverarbeitung_Click(object sender, EventArgs e)
{
TableEditor tb = new TableEditor("OnDoc_EDK_Routing");
tb.Show();
}
private void sfDataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var records = sfDataGrid1.View.GetSelectedRecords();
if (records.Count > 1)
{
foreach (var record in records)
{
var datarow = record as DataRowView;
string documentid = datarow["Bearbeitung_Zwingend"].ToString();
if (datarow["Bearbeitung_Zwingend"].ToString() == "True")
{
RibbonButtonArchivToOnBase.Enabled = false;
archivierenToolStripMenuItem.Enabled = false;
break;
}
if (datarow["ToApprove"].ToString() == "True" && datarow["approved"].ToString() == "False")
{
RibbonButtonArchivToOnBase.Enabled = false;
archivierenToolStripMenuItem.Enabled = false;
break;
}
}
}
}
private void ribbonButton6_Click(object sender, EventArgs e)
{
refresh_dokumente();
}
private void historyToolStripMenuItem_Click(object sender, EventArgs e)
{
var records = sfDataGrid1.View.GetSelectedRecords();
if (records.Count < 1) { return; }
DokHistory dh = new DokHistory(selected_dokumentid);
dh.ShowDialog();
}
private void dokumentKopierenToolStripMenuItem_Click(object sender, EventArgs e)
{
var records = sfDataGrid1.View.GetSelectedRecords();
if (records.Count < 1) { return; }
if (MessageBox.Show("Gewähltes Dokument kopieren?", "Dokument kopieren", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
DB db = new DB(AppParams.connectionstring);
string newdocid = db.copydoc(selected_dokumentid, AppParams.CurrentMitarbieter);
db = null;
if (newdocid == "")
{
MessageBox.Show("Das Dokument ID:'" + selected_dokumentid + "' konnte nicht kopiert werden.", "Dokument kopieren", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
MessageBox.Show("Das Dokument wurde erfolgreich kopiert. Neue Dokument.ID:'" + newdocid + "'.", "Dokument kopieren", MessageBoxButtons.OK, MessageBoxIcon.Information);
Logging.DocLog.Info("Dokumentkopie von '" + selected_dokumentid + "' erstellt", "OnDoc.DocList'", newdocid, "", "Dokumentkopie erstellt");
refresh_dokumente();
}
}
}
private void sfDataGrid1_CellDoubleClick(object sender, CellClickEventArgs e)
{
sfDataGrid1_CellClick(sender, e);
dokumentBearbeitenToolStripMenuItem_Click(sender, e);
}
private void ribbonButtonApproval_Click_1(object sender, EventArgs e)
{
Refresh_Bewilligungen();
if (this.ribbonLabelToApprove.Text == "") { MessageBox.Show("Es stehen keine Dokumente zur Unterschriftenprüfung an.", "Unterschriftenprüfung", MessageBoxButtons.OK, MessageBoxIcon.Information); return; }
frmBewilligung bw = new frmBewilligung();
bw.Show();
}
private void lblToApprove_TextChanged(object sender, EventArgs e)
{
}
private void sfDataGrid1_ColumnResizing(object sender, ColumnResizingEventArgs e)
{
update_currentview();
}
private void ribbonPanel3_Click(object sender, EventArgs e)
{
AdminDokTypGenerierung ag = new AdminDokTypGenerierung();
ag.Show();
}
}
}