using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Net; using System.Net.NetworkInformation; using System.Runtime.CompilerServices; using System.Runtime.Remoting.Messaging; using System.Text; using System.Threading.Tasks; using System.Web.Caching; using System.Windows.Forms; using System.Xml.Linq; using BroadcastListener.Classes; using BroadcastListener.Interfaces; using Database; using DOCGEN.Klassen; using Helper; using Microsoft.Office.Interop.Word; using Model; using NLog; using OnDoc.DocMgmt; using OnDoc.Helper; using OnDoc.Klassen; using OnDoc.UIControls.Administrator; using Syncfusion.Pdf; using Syncfusion.Windows.Forms.Tools; using Syncfusion.Windows.Forms.Tools.Navigation; using Syncfusion.Windows.Forms.Tools.Renderers; using Syncfusion.WinForms.Controls; using Syncfusion.WinForms.DataGrid; using Syncfusion.WinForms.DataGrid.Interactivity; using Windows.ApplicationModel.Activation; using Windows.ApplicationModel.VoiceCommands; using Windows.Media.Ocr; using Windows.Perception.Spatial; using static Model.OnBaseDocUpload; using static BroadcastListener.Classes.Factory; using Microsoft.Office.Interop.Excel; using Microsoft.SqlServer.Server; using OnDoc.Diverses; using Syncfusion.Windows.Shared; using System.Web.UI.WebControls; using Syncfusion.Windows.Forms.CellGrid.ScrollAxis; using Newtonsoft.Json; using Syncfusion.XlsIO; namespace OnDoc.UIControls { public partial class Serienbrief : UserControl, IMessageListener1 { //private int dokumenttypnr = 0; private int officevorlagenr = 0; private int profilnr = 0; private string partnernr = ""; private string partnernr_inserted = ""; private serienbrief sb = new serienbrief(); private int serienbriefnr = 0; private DOCGEN.DocGen dg = null; private DOCGEN.DocGet dget = null; SerienbriefBearbeitung sbedit; //private DataSet dsempfaenger = new DataSet(); private int selectedsbnr = 0; public bool approval = false; public System.Data.DataRow approvaldata = null; public Serienbrief() { InitializeComponent(); } public Serienbrief(int profilnr) { InitializeComponent(); //this.Style.TitleBar.BackColor = Theaming.Titelbar(); //this.Style.TitleBar.ForeColor = Theaming.TitelFontColor(); //this.Style.ShadowOpacity = Theaming.ShadowOpacity; //this.Style.InactiveShadowOpacity = Theaming.InactivShadowOpacity; this.profilnr = profilnr; //Broadcaster().AddListener(this); //Closing += Form_Closing; } private void Serienbrief_Load(object sender, EventArgs e) { //Refresh_Lists(); //Refresh_Team(); //Broadcaster().AddListener(this); //Closing += Form_Closing; } public void Init(int profilnr) { this.profilnr=profilnr; if (approval) { this.ribbonTabFunktionen.Visible = false; this.ribbonTabPruefung.Visible = true; ctxmenuEmpfaenger.Visible = false; ctxmenutree.Visible = false; } else { ribbonTabPruefung.Visible =false; ribbonTabFunktionen.Visible = true; ctxmenuEmpfaenger.Visible = true; ctxmenutree.Visible = true; } Refresh_Lists(); Refresh_Team(); Broadcaster().AddListener(this); Security security = new Security(); security.set_security_general(this); security = null; //Closing += Form_Closing; } public void setfuncitons(bool enable) { this.ribbonbuttonGeprueft.Enabled = enable; this.ribbonbuttonAbgelehnt.Enabled = enable; this.ctxmenuEmpfaenger.Enabled = enable; this.ctxmenutree.Enabled= enable; } public void dispose() { Broadcaster().RemoveListener(this); } private void Form_Closing(object sender, CancelEventArgs e) { Broadcaster().RemoveListener(this); } private bool IsPreview = false; private string PreviewFiename = ""; private int broadcasterdone = 0; public void OnListen(string message, SenderInfo sender) { if (message == "BtnSBVorschau") { if (sender.SenderName == "Serienbriefbearbeitung") { if (broadcasterdone == 1) { broadcasterdone = 0; return; } broadcasterdone = 1; string[] details = sender.Function.Split(' '); foreach (System.Data.DataRow dr in sb.dsempfaenger.Tables[0].Rows) { if (dr[0].ToString() == details[0].ToString()) { IsPreview = true; PreviewFiename = sender.Details.ToString() + ".tmp"; ribbonbuttonsave_Click(sender, null); Generate(Convert.ToInt32(dr["intEintragnr"])); System.IO.File.Delete(PreviewFiename); PreviewFiename = ""; IsPreview = false; } } } } if (message == "BtnSBVorschauSave") { ribbonbuttonsave_Click(sender, null); } if (message== "SBPartnersuche") { this.partnernr=sender.Details.ToString(); if (partnernr_inserted == partnernr) { return; } partnernr_inserted = partnernr; add_partner(this.partnernr); } } private void enable_disable_functions(int type, bool enabled) { if (type == 1) { sb.dsempfaenger.Tables[0].Rows.Clear(); sb.dsempfaenger.AcceptChanges(); sfDataGridEmpfaenger.DataSource = null; update_zahlen(); treeViewAdv1.Enabled = false; ribbonbuttonsave.Enabled = false; ribbonButtonDelete.Enabled = false; RibbonButtonExcelImport.Enabled = false; ribbonbuttonaddpartner.Enabled = false; ribbonButtonPartnerPruefen.Enabled = false; ribbonButtonVorlageBearbeiten.Enabled = false; ribbonbuttonloadtemplate.Enabled = false; ribbonbuttonsavetemplate.Enabled = false; ribbonbuttonaddpartner.Enabled = false; ribbonButtonPartnerPruefen.Enabled = false; RibbonButtonGenerateSB.Enabled = false; ribbonButtonDruckstapel.Enabled = false; RibbonButtonArchivierenUndAbschlessen.Enabled = false; ribbonButtonVersandstrasse.Enabled = false; } if (type == 2) { RibbonButtonGenerateSB.Enabled = false; RibbonButtonArchivierenUndAbschlessen.Enabled = false; ribbonButtonVersandstrasse.Enabled = false; ribbonButtonDruckstapel.Enabled = false; } if (type == 3) { groupBox5.Enabled = enabled; groupBox6.Enabled = enabled; groupBox7.Enabled = enabled; groupBox8.Enabled = enabled; grpFaktura.Enabled = enabled; ribbonButtonVorlageBearbeiten.Enabled = enabled; ribbonbuttonloadtemplate.Enabled = enabled; ribbonbuttonsavetemplate.Enabled = enabled; } if (type == 4) { sfDataGridEmpfaenger.AllowEditing = true; ctxmenuEmpfaenger.Enabled = true; partnerHinzufügenToolStripMenuItem.Visible = true; partnerLöschenToolStripMenuItem.Visible = true; erneutGenerierenToolStripMenuItem.Visible = false; docPreview1.Visible = false; } if (type == 5) { partnerHinzufügenToolStripMenuItem.Visible = false; partnerLöschenToolStripMenuItem.Visible = false; sfDataGridEmpfaenger.AllowEditing = false; erneutGenerierenToolStripMenuItem.Visible = true; docPreview1.clear_viewer(); docPreview1.Visible = true; } if (type == 6) { GrpEmpfaenger.Visible = true; GrpDokumentInhalt.Visible = true; ribbonbuttonsave.Enabled = true; ribbonButtonDelete.Enabled = true; RibbonButtonExcelImport.Enabled = true; ribbonbuttonaddpartner.Enabled = true; ribbonButtonPartnerPruefen.Enabled = true; RibbonButtonEditWord.Enabled = true; grpDruckstapel.Visible = false; docPreview1.Visible = false; treeViewAdv1.Enabled = true; } if (type == 7) { this.ribbonPanel3.Enabled = enabled; this.ribbonPanel5.Enabled = enabled; this.ribbonPanel6.Enabled = enabled; this.ribbonPanel7.Enabled = enabled; this.ribbonPanel8.Enabled = enabled; this.ribbonPanel9.Enabled = enabled; this.ribbonButtonDelete.Enabled = enabled; erneutGenerierenToolStripMenuItem.Enabled = enabled; } } private void Refresh_Lists() { DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select nreintrag, bezeichnung from Postzustellung where aktiv=1 order by bezeichnung", false, true); cbboxpostzustellung.DataSource = db.dsdaten.Tables[0]; cbboxpostzustellung.ValueMember = "nreintrag"; cbboxpostzustellung.DisplayMember = "bezeichnung"; db.clear_parameter(); db.Get_Tabledata("SP_Dokumentbearbeitung_Mitarbeiter", true, false); cbboxzustaendigmitarbeiter.DataSource = db.dsdaten.Tables[0]; cbboxzustaendigmitarbeiter.DisplayMember = "name"; cbboxzustaendigmitarbeiter.ValueMember = "mitarbeiternr"; cbboxzustaendigmitarbeiter.SelectedValue = AppParams.CurrentMitarbeiter; cbboxunterschriftlinks.DataSource = db.dsdaten.Tables[0]; cbboxunterschriftlinks.DisplayMember = "name"; cbboxunterschriftlinks.ValueMember = "mitarbeiternr"; cbboxunterschriftrechts.DataSource = db.dsdaten.Tables[0]; cbboxunterschriftrechts.DisplayMember = "name"; cbboxunterschriftrechts.ValueMember = "mitarbeiternr"; cbboxverantwortlich.DataSource = db.dsdaten.Tables[0]; cbboxverantwortlich.DisplayMember = "name"; cbboxverantwortlich.ValueMember = "mitarbeiternr"; cbboxverantwortlich.SelectedValue = AppParams.CurrentMitarbeiter; } private void Refresh_Team(int id = 0) { DB dbteam = new DB(AppParams.connectionstring); dbteam.clear_parameter(); dbteam.add_parameter("@profilnr", profilnr.ToString()); if (id == 0) { dbteam.add_parameter("@mitarbeiternr", cbboxzustaendigmitarbeiter.SelectedValue.ToString()); } else { dbteam.add_parameter("@mitarbeiternr", id.ToString()); } //dbteam.add_parameter("@mitarbeiternr", cbboxzustaendigmitarbeiter.SelectedValue.ToString()); dbteam.Get_Tabledata("sp_dokumentbearbeitung_team", true, false); cbboxteam.DataSource = null; cbboxteam.DataSource = dbteam.dsdaten.Tables[0]; cbboxteam.ValueMember = "teamnr"; cbboxteam.DisplayMember = "bezeichnung"; this.cbboxteam.SelectedIndex = 0; } private void RibbonButtonExit_Click(object sender, EventArgs e) { //this.Close(); } private void Import_sf_Excel(string filename, string sheetname, ref System.Data.DataTable importdata) { ExcelEngine excelEngine = new ExcelEngine(); IApplication application = excelEngine.Excel; IWorkbook workbook = application.Workbooks.Open(filename); IWorksheet sheet = workbook.Worksheets[0]; importdata = sheet.ExportDataTable(sheet.UsedRange, ExcelExportDataTableOptions.ColumnNames); sheet = null; workbook.Close(); workbook = null; excelEngine = null; } private void RibbonButtonExcelImport_Click(object sender, EventArgs e) { System.Data.DataTable importdata = new System.Data.DataTable(); openFileDialog1.Filter = "Excel-Dateien files (*.xlsx)|*.xlsx|CSV-Dateien (*.csv)|*.csv|Alle Dateien (*.*)|*.*"; openFileDialog1.FilterIndex = 0; if (openFileDialog1.ShowDialog() == DialogResult.OK) { ExcelNet.ExcelReader reader = new ExcelNet.ExcelReader(); string selected_sheetname = ""; var sheets = new List(); try { sheets = reader.Get_ExcelSheets(openFileDialog1.FileName); } catch { MessageBox.Show("Auf die gewählte Excel-Datei kann aktuell nicht zugegriffen werden. Evtl. ist diese noch geöffnet.", "Excel-Import", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (sheets.Count > 1) { DocMgmt.Serienbrief_Sheetselect sheetselect = new DocMgmt.Serienbrief_Sheetselect(sheets); sheetselect.ShowDialog(); if (sheetselect.DialogResult == DialogResult.OK) { selected_sheetname = sheetselect.get_selected_sheet(); } else { return; } } else { selected_sheetname = sheets[0]; } Import_sf_Excel(openFileDialog1.FileName, selected_sheetname, ref importdata); //reader.Excel_To_Datatabable(openFileDialog1.FileName, selected_sheetname, true, ref importdata); init_progressbar("Daten importieren", importdata.Rows.Count); if (importdata.Rows.Count > 2500) { MessageBox.Show("Die gewählten Daten enthalten mehr als 2'500 Datensätze. Bitte aufteilen.", "Import", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (importdata.Rows.Count < 1) { MessageBox.Show("Die ausgewählten Daten können nicht verwendet werden.", "Import", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (importdata.Columns[0].Caption != "Partnernr") { MessageBox.Show("Die importierten Daten enthalten keine Spalte 'Partnernr'. Der Vorgang wird abgebrochen.", "Import", MessageBoxButtons.OK, MessageBoxIcon.Error); importdata.Rows.Clear(); importdata.Columns.Clear(); return; } DB dB = new DB(AppParams.connectionstring); if (sb.dsempfaenger.Tables[0].Rows.Count == 1) { if (sb.dsempfaenger.Tables[0].Rows[0]["Partnernr"].ToString().Trim() == "") { sb.dsempfaenger.Tables[0].Rows[0].Delete(); sb.dsempfaenger.AcceptChanges(); } } //sb.dsempfaenger.Tables[0].Rows.Clear(); bool found = false; foreach (System.Data.DataColumn dc in importdata.Columns) { found = false; foreach (System.Data.DataColumn edc in sb.dsempfaenger.Tables[0].Columns) { if (edc.ColumnName == dc.ColumnName) { found = true; break; } } if (!found) { try { sb.dsempfaenger.Tables[0].Columns.Add("$$" + dc.ColumnName + "$$"); dc.ColumnName = "$$" + dc.ColumnName + "$$"; } catch { } } } importdata.AcceptChanges(); found = false; foreach (System.Data.DataColumn dc in sb.dsempfaenger.Tables[0].Columns) { if (dc.ColumnName.ToUpper() == "INTEINTRAGNR") { found = true; } } if (!found) { sb.dsempfaenger.Tables[0].Columns.Add("IntEintragnr"); } int lastid = sb.dsempfaenger.Tables[0].Rows.Count; int saldmessage = 0; sfDataGridEmpfaenger.DataSource = null; foreach (System.Data.DataRow dr in importdata.Rows) { add_progress(); System.Data.DataRow r1 = sb.dsempfaenger.Tables[0].NewRow(); foreach (DataColumn col in importdata.Columns) { try { r1[col.ColumnName] = dr[col.ColumnName]; } catch { try { r1["$$" + col.ColumnName + "$$"] = dr[col.ColumnName]; } catch { r1[col.ColumnName] = ""; } } } r1["STATUS"] = 0; r1["FEHLERCODE"] = 0; r1["IntEintragnr"] = lastid; lastid = lastid + 1; //try //{ // r1["inteingragnr"] = string.Empty; //} //catch { } dB.Get_Tabledata("Select bkpar00, saldiert from partner where nrpar00=" + r1[0].ToString(), false, true); try { if (dB.dsdaten.Tables[0].Rows.Count > 0) { //if (dB.dsdaten.Tables[0].Rows.Count < 1) r1["Fehlercode"] = 1; else r1["fehlercode"] = 0; string kurzbez = dB.dsdaten.Tables[0].Rows[0][0].ToString(); if (Convert.ToBoolean(dB.dsdaten.Tables[0].Rows[0][1]) == true) { saldmessage = 1; kurzbez = "SALDIERT: " + kurzbez; } //r1[1] = dB.dsdaten.Tables[0].Rows[0][0].ToString(); r1[1] = kurzbez; sb.dsempfaenger.Tables[0].Rows.Add(r1); } else { r1["Fehlercode"] = 1; r1[1] = "Parnter nicht vorhanden"; sb.dsempfaenger.Tables[0].Rows.Add(r1); } } catch { } } dB = null; if (saldmessage > 0) { MessageBox.Show("Die Partnerliste enthält saldierte Kunden-Einträge", "Partnerprüfung", MessageBoxButtons.OK, MessageBoxIcon.Warning); } Partnerliste_Pruefen(); refresh_empfaenger(sb.dsempfaenger.Tables[0]); finish_progress(); //sfDataGridEmpfaenger.DataSource = importdata; } } private void refresh_empfaenger(System.Data.DataTable dt) { sfDataGridEmpfaenger.DataSource = null; sfDataGridEmpfaenger.DataSource = dt; update_zahlen(); } private void refresh_spalten() { int hasbl = 0; foreach(System.Data.DataRow dr in sb.dsempfaenger.Tables[0].Rows) { if (dr["blkunde"].ToString() == "1") { hasbl = 1; } } try { // sfDataGridEmpfaenger.Columns["IntEintragnr"].Visible = false; } catch { sb.dsempfaenger.Tables[0].Columns.Add("IntEintragnr"); } try { sfDataGridEmpfaenger.Columns["IntEintragnr"].Visible = true; //sfDataGridEmpfaenger.Columns["STATUS"].Visible = false; sfDataGridEmpfaenger.Columns["FEHLERCODE"].Visible = false; sfDataGridEmpfaenger.Columns["BLKUNDE"].Visible = false; if (hasbl > 0) { sfDataGridEmpfaenger.Columns["BLKUNDE"].Visible = true; sfDataGridEmpfaenger.Columns["BLKUNDE"].Width = 50; } sfDataGridEmpfaenger.Columns[0].HeaderText = "Kunden-Nr"; //sfDataGridEmpfaenger.Columns["DOKUMENT_GEDRUCKT"].Visible = false; sfDataGridEmpfaenger.Columns["DOKUMENTID"].Visible = true; //sfDataGridEmpfaenger.Columns["DOKUMENTIDBDR"].Visible = false; sfDataGridEmpfaenger.Columns["ERSTELLER"].Visible = false; sfDataGridEmpfaenger.Columns["DRUCKJOBID"].Visible = false; sfDataGridEmpfaenger.Columns["AKTIV"].Visible = false; sfDataGridEmpfaenger.Columns["Zustelladresse"].Visible = false; sfDataGridEmpfaenger.Columns["Briefanrede1"].Visible = false; sfDataGridEmpfaenger.Columns["Briefanrede2"].Visible = false; sfDataGridEmpfaenger.Columns["Anrede"].Width = 0; sfDataGridEmpfaenger.Columns["Name"].Visible = false; sfDataGridEmpfaenger.Columns["Vorname"].Visible = false; sfDataGridEmpfaenger.Columns["Strasse"].Visible = false; sfDataGridEmpfaenger.Columns["PLZ"].Visible = false; sfDataGridEmpfaenger.Columns["Ort"].Visible = false; sfDataGridEmpfaenger.AutoSizeColumnsMode = Syncfusion.WinForms.DataGrid.Enums.AutoSizeColumnsMode.AllCells; } catch { } } private void init_empfaenger(int serienbriefnr) { Database.DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select dbo.BinaryToBase64(xmldata) as Data from edex_sb_empfaenger where serienbriefnr=" + sb.serienbriefnr.ToString(), false, true); Base64Helper bh = new Base64Helper(); bh.Base64 = db.dsdaten.Tables[0].Rows[0][0].ToString(); string xml = bh.DecodeBase64(); string filename = AppParams.tempdir + @"\" + sb.serienbriefnr.ToString() + ".xml"; System.IO.File.WriteAllText(filename, xml); //dsempfaenger.Tables.Clear(); //dsempfaenger.ReadXml(filename); //dsempfaenger.Tables[0].Columns.Add("Status"); //dsempfaenger.Tables[0].Columns.Add("Error"); sb.dsempfaenger = new DataSet(); sb.dsempfaenger.Tables.Clear(); sb.dsempfaenger.ReadXml(filename); sb.dsempfaenger.Tables.Remove("Layout"); sb.dsempfaenger.AcceptChanges(); refresh_empfaenger(sb.dsempfaenger.Tables[0]); //System.IO.File.Delete(filename); } public void create_new_sb(int dokumenttypnr) { try { panelLoad.Visible = true; System.Windows.Forms.Application.DoEvents(); this.sb = null; this.sb = new serienbrief(); sb.dokumenttypnr = dokumenttypnr; update_serienbrief_details(true, sb.dokumenttypnr, 0); init_empfaenger(-1); //this.cbboxzustaendigmitarbeiter.SelectedValue = AppParams.CurrentMitarbeiter; sb.verantwortlich = AppParams.CurrentMitarbeiter; vorlagenfelder(sb.dokumenttypnr); refresh_empfaenger(sb.dsempfaenger.Tables[0]); update_screen(); update_serienbriefdaten(true); vorlage_auslesen_und_speichern(); SerienbriefBearbeitung sbe = new SerienbriefBearbeitung(sb); sb.dsempfaenger.Tables.Add(sbe.init_used_felder(false).Copy()); sb.dsempfaenger.Tables[sb.dsempfaenger.Tables.Count - 1].TableName = "UsedFelder"; Logging.Logging.Debug("Update Serienbriefdaten", "OnDoc", ""); update_serienbriefdaten(false); open_sb(sb.serienbriefnr); treeViewAdv1.Enabled = true; panelLoad.Visible = false; refresh_empfaenger(sb.dsempfaenger.Tables[0]); } catch (Exception ex) { panelLoad.Visible = false; Logging.Logging.Debug(ex.Message, "OnDoc", "SB Error"); } } private void RibbonButtonNew_Click(object sender, EventArgs e) { OnDoc.DocMgmt.DokTypSelect DokTypSelect = new OnDoc.DocMgmt.DokTypSelect(false); DokTypSelect.vorlagentype = 1; DokTypSelect.ShowDialog(this); if (DokTypSelect.DialogResult == DialogResult.OK) { create_new_sb(DokTypSelect.dokumenttypnr); return; try { panelLoad.Visible = true; System.Windows.Forms.Application.DoEvents(); this.sb = null; this.sb = new serienbrief(); sb.dokumenttypnr = DokTypSelect.dokumenttypnr; update_serienbrief_details(true, sb.dokumenttypnr, 0); init_empfaenger(-1); //this.cbboxzustaendigmitarbeiter.SelectedValue = AppParams.CurrentMitarbeiter; sb.verantwortlich = AppParams.CurrentMitarbeiter; vorlagenfelder(sb.dokumenttypnr); refresh_empfaenger(sb.dsempfaenger.Tables[0]); update_screen(); update_serienbriefdaten(true); vorlage_auslesen_und_speichern(); SerienbriefBearbeitung sbe = new SerienbriefBearbeitung(sb); sb.dsempfaenger.Tables.Add(sbe.init_used_felder(false).Copy()); sb.dsempfaenger.Tables[sb.dsempfaenger.Tables.Count - 1].TableName = "UsedFelder"; Logging.Logging.Debug("Update Serienbriefdaten", "OnDoc", ""); update_serienbriefdaten(false); open_sb(sb.serienbriefnr); treeViewAdv1.Enabled = true; panelLoad.Visible = false; refresh_empfaenger(sb.dsempfaenger.Tables[0]); } catch (Exception ex) { panelLoad.Visible = false; Logging.Logging.Debug(ex.Message, "OnDoc", "SB Error"); } } else { this.GrpDokumentInhalt.Enabled = false; this.grpFaktura.Enabled = false; return; } } private void vorlage_auslesen_und_speichern() { DOCGEN.DocGet dg = new DOCGEN.DocGet(AppParams.connectionstring); string filedata = dg.get_word_vorlage(sb.officevorlagenr, sb.dokumenttypnr); clsFileHelper fh = new clsFileHelper(); string tempfilename = ""; DB dB = new DB(AppParams.connectionstring); dB.Get_ApplicationType_from_Vorlage(sb.officevorlagenr); string Apptype = ""; Apptype = dB.dsdaten.Tables[0].Rows[0][1].ToString(); string filename = AppParams.tempdir + sb.serienbriefnr.ToString() + "." + Apptype; fh.SaveBase64ToFile(filedata, filename); sb.filename = filename; } //DB dB = new DB(AppParams.connectionstring); //dB.Get_ApplicationType_from_Vorlage(sb.officevorlagenr); //string Apptype = ""; //Apptype = dB.dsdaten.Tables[0].Rows[0][1].ToString(); //sb.filename = dB.save_sb_vorlage_to_db(filename, Apptype, sb.serienbriefnr); //DB dB = new DB(AppParams.connectionstring); //dB.Get_ApplicationType_from_Vorlage(sb.officevorlagenr); //string Apptype = ""; //Apptype = dB.dsdaten.Tables[0].Rows[0][1].ToString(); //string filedata = dB.get_vorlage_for_file(sb.officevorlagenr.ToString(), AppParams.tempdir, sb.serienbriefnr.ToString() + "." + Apptype); //string filename = AppParams.tempdir + sb.serienbriefnr.ToString() + "." + Apptype; //sb.filename= filename; //dB.Save_To_DB("", "", filedata, sb.serienbriefnr); //sb.filename = dB.get_sb_vorlage(sb.serienbriefnr, AppParams.tempdir); //// sb.filename = dB.save_sb_vorlage_to_db(filename, Apptype, sb.serienbriefnr); private void vorlagenfelder(int dokumenttypnr) { DB db = new DB(AppParams.connectionstring); db.clear_parameter(); db.add_parameter("@dokumenttypnr", sb.dokumenttypnr.ToString()); db.Get_Tabledata("sp_edex_sb_get_vorlagenfelder", true, false); string s = ""; for (int i = 0, loopTo = db.dsdaten.Tables[0].Rows.Count - 1; i <= loopTo; i++) { try { string X; X = sb.dsempfaenger.Tables[0].Rows[0][db.dsdaten.Tables[0].Rows[i][0].ToString()].ToString(); } catch { string feldname = "$$"+ db.dsdaten.Tables[0].Rows[i][0].ToString() + "$$"; sb.dsempfaenger.Tables[0].Columns.Add(feldname); sb.dsempfaenger.Tables[0].Rows[0][feldname] = ""; sb.dsempfaenger.Tables[1].Columns.Add(feldname); try { if (Convert.ToBoolean(db.dsdaten.Tables[0].Rows[i][1]) == true) { sb.dsempfaenger.Tables[1].Rows[0][feldname] = 1; } else { sb.dsempfaenger.Tables[1].Rows[0][feldname] = 0; } } catch { sb.dsempfaenger.Tables[1].Rows[0][feldname] = 0; } s = s + "- " + feldname + System.Environment.NewLine; } } sb.dsempfaenger.AcceptChanges(); if (s != "") { MessageBox.Show("Folgende Spalten wurden aufgrund der gewählten Vorlage zur Liste hinzugefügt" + System.Environment.NewLine + s, "Serienbrief", MessageBoxButtons.OK, MessageBoxIcon.Information); } //foreach (System.Data.DataRow dr in db.dsdaten.Tables[0].Rows) //{ // try // { // string x; // x = dsempfaenger.Tables[0].Rows[0][dr[0].ToString()].ToString(); // } // catch // { // } // dsempfaenger.Tables[0].Columns.Add(dr[0].ToString()); //} } private void update_serienbrief_details(bool newsb = false, int dokumenttypnr = 0, int sbnummer = 0) { DB db = new DB(AppParams.connectionstring); if (newsb) { db.Get_Tabledata("Select bezeichnung,office_vorlagenr, isnull(vertrag,0) as vertrag, isnull(physisches_archiv,0) as archiv from dokumenttyp where dokumenttypnr=" + sb.dokumenttypnr.ToString(), false, true); sb.bezeichnung = db.dsdaten.Tables[0].Rows[0][0].ToString(); sb.officevorlagenr = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][1]); sb.vertrag = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][2]); db.Get_Tabledata("Select beschreibung from physischesarchiv where physischesarchivnr = " + db.dsdaten.Tables[0].Rows[0][3].ToString(), false, true); sb.barcode_zusatz = db.dsdaten.Tables[0].Rows[0][0].ToString(); if (sb.barcode_zusatz != "") { sb.barcode_zusatz = " " + sb.barcode_zusatz; } } } private void update_serienbriefdaten(bool newsb) { sb.bezeichnung = this.txtbezeichnung.Text; sb.verantwortlich = Convert.ToInt32(this.cbboxverantwortlich.SelectedValue.ToString()); try { if (cbboxunterschriftlinks.Text == "") { sb.approval1 = 1; } else { if (sb.verantwortlich == Convert.ToInt32(this.cbboxunterschriftlinks.SelectedValue.ToString())) { sb.approval1 = 1; } } } catch { } try { if (cbboxunterschriftrechts.Text == "") { sb.approval2 = 1; } else { if (sb.verantwortlich == Convert.ToInt32(this.cbboxunterschriftrechts.SelectedValue.ToString())) { sb.approval2 = 1; } } } catch { } if (sb.approval1==1 && sb.approval2==1 && sb.faksimile==1) { sb.approved = 1; } if (newsb) { sb.erstellt_am = DateTime.Now; } sb.aktiv = true; sb.mutiert_am = DateTime.Now; sb.mutierer = AppParams.CurrentMitarbeiter; if (newsb) { sb.toapproval = 0; sb.approved = 0; sb.approval1 = 0; sb.approval2 = 0; sb.faksimile = 0; sb.ohneunterschrift = 0; } //sb.verantwortlich = AppParams.CurrentMitarbeiter; if (rbzustaendigkube.Checked) { sb.zustaendig = -1; } else { sb.zustaendig = Convert.ToInt32(cbboxzustaendigmitarbeiter.SelectedValue); } //sb.zustaendig = Convert.ToInt32(cbboxzustaendigmitarbeiter.SelectedValue); try { sb.postzustellung = Convert.ToInt32(cbboxpostzustellung.SelectedValue.ToString()); } catch { sb.postzustellung = 0; } try { sb.unterschriftlinks = Convert.ToInt32(cbboxunterschriftlinks.SelectedValue.ToString()); } catch { sb.unterschriftlinks = 0; } try { sb.unterschriftrechts = Convert.ToInt32(cbboxunterschriftrechts.SelectedValue.ToString()); } catch { sb.unterschriftrechts = 0; } if (cbboxunterschriftlinks.Text.Trim() == "") { sb.unterschriftlinks = 0; } if (cbboxunterschriftrechts.Text.Trim() == "") { sb.unterschriftrechts = 0; } try { if (cbdigitaleunterschrfiten.Checked) { sb.faksimile_unterschrfit = "True"; sb.faksimile = 1; } else { sb.faksimile_unterschrfit = "False"; sb.faksimile = 0; } } catch { sb.faksimile_unterschrfit = "False"; sb.faksimile = 0; } try { if (cbformularohneunterschrfit.Checked) { sb.ohne_unterschrift = "True"; sb.ohneunterschrift = 1; } else { sb.ohne_unterschrift = "false"; sb.ohneunterschrift = 0; } } catch { sb.ohne_unterschrift = "false"; sb.ohneunterschrift = 0; } try { sb.team = Convert.ToInt32(cbboxteam.SelectedValue.ToString()); } catch { sb.team = 0; } sb.archivdatum = Convert.ToDateTime(DateDokumentDatum.Value); sb.dokumentdatum = Convert.ToDateTime(DateDokumentDatum.Value); if (rbppa.Checked) { sb.ppfaktura = 1; } if (rbbpb.Checked) { sb.ppfaktura = 2; } if (rbppohne.Checked) { sb.ppfaktura = 0; } DB db = new DB(AppParams.connectionstring); sb.serienbriefnr = db.Save_Serienbrief(sb, AppParams.tempdir); //sb.dsempfaenger.WriteXml(@"x:\test.xml"); if (!IsPreview) { db.save_sb_vorlage_to_db(sb.filename, "", sb.serienbriefnr); } else { db.save_sb_vorlage_to_db(PreviewFiename, "", sb.serienbriefnr); } } private void update_zahlen() { try { int inbearbeitung = 0; int fehlerhaft = 0; int generiert = 0; int abgeschlossen = 0; treeViewAdv1.Nodes[0].Text = "In Bearbeitung (" + inbearbeitung.ToString() + ")"; treeViewAdv1.Nodes[1].Text = "Fehlerhaft (" + fehlerhaft.ToString() + ")"; treeViewAdv1.Nodes[2].Text = "Generiert (" + generiert.ToString() + ")"; treeViewAdv1.Nodes[3].Text = "Abgeschlossen (" + abgeschlossen.ToString() + ")"; sb.dsempfaenger.AcceptChanges(); DataView dv = new DataView(sb.dsempfaenger.Tables[0]); dv.RowFilter = "Status = 0"; treeViewAdv1.Nodes[0].Text = "In Bearbeitung (" + dv.Count.ToString() + ")"; inbearbeitung = dv.Count; dv.RowFilter = "Status =-1"; treeViewAdv1.Nodes[1].Text = "Fehlerhaft (" + dv.Count.ToString() + ")"; fehlerhaft = dv.Count; if (dv.Count > 0) treeViewAdv1.Nodes[1].TextColor = Color.Red; else treeViewAdv1.Nodes[1].TextColor = Color.Black; if (dv.Count > 0) { } dv.RowFilter = "Status = 1"; treeViewAdv1.Nodes[2].Text = "Generiert (" + dv.Count.ToString() + ")"; generiert = dv.Count; dv.RowFilter = "Status = 2"; treeViewAdv1.Nodes[3].Text = "Abgeschlossen (" + dv.Count.ToString() + ")"; abgeschlossen = dv.Count; treeViewAdv1.SelectedNode = treeViewAdv1.Nodes[0]; update_grid(); enable_disable_functions(2, false); if (inbearbeitung > 0) { RibbonButtonGenerateSB.Enabled = true; } if (fehlerhaft == 0 && inbearbeitung == 0 && generiert > 0) { RibbonButtonArchivierenUndAbschlessen.Enabled = true; ribbonButtonVersandstrasse.Enabled = true; ribbonButtonVersandstrasse.Enabled = true; if (sb.ppfaktura!=0) { ribbonButtonVersandstrasse.Enabled = false; } ribbonButtonDruckstapel.Enabled = true; if (cbdigitaleunterschrfiten.Checked) { if (sb.approved == 0) { this.ribbonButtonDruckstapel.Enabled = false; this.RibbonButtonArchivierenUndAbschlessen.Enabled = false; this.ribbonButtonVersandstrasse.Enabled = false; this.ribbonButtonToApproval.Enabled = true; } else { this.ribbonButtonDruckstapel.Enabled = true; this.RibbonButtonArchivierenUndAbschlessen.Enabled = true; this.ribbonButtonVersandstrasse.Enabled = true; this.ribbonButtonToApproval.Enabled = false; } } } enable_disable_functions(3, true); if (generiert > 0 || abgeschlossen > 0) { enable_disable_functions(3, false); } if (inbearbeitung == 0 && generiert == 0 && fehlerhaft == 0 && abgeschlossen > 0) { enable_disable_functions(7, false); } } catch { } } private void treeViewAdv1_AfterSelect(object sender, EventArgs e) { update_grid(); } private void update_grid() { bool found = false; foreach (System.Data.DataColumn dc in sb.dsempfaenger.Tables[0].Columns) { if (dc.ColumnName.ToUpper() == "INTEINTRAGNR") { found = true; } } if (!found) { sb.dsempfaenger.Tables[0].Columns.Add("IntEintragnr"); } string nodetext = treeViewAdv1.SelectedNode.Text; DataView dv = new DataView(sb.dsempfaenger.Tables[0]); try { switch (nodetext.Substring(0, 5)) { case "In Be": dv.RowFilter = "Status = 0"; sfDataGridEmpfaenger.DataSource = null; sfDataGridEmpfaenger.DataSource = dv; refresh_spalten(); enable_disable_functions(4, false); break; case "Fehle": dv.RowFilter = "Status=-1"; sfDataGridEmpfaenger.DataSource = null; sfDataGridEmpfaenger.DataSource = dv; refresh_spalten(); enable_disable_functions(4, false); break; case "Gener": dv.RowFilter = "Status = 1"; sfDataGridEmpfaenger.DataSource = null; sfDataGridEmpfaenger.DataSource = dv; refresh_spalten(); enable_disable_functions(5, false); break; case "Abges": dv.RowFilter = "Status = 2"; sfDataGridEmpfaenger.DataSource = null; sfDataGridEmpfaenger.DataSource = dv; refresh_spalten(); enable_disable_functions(5, false); break; } } catch { } } private void ribbonbuttonsave_Click(object sender, EventArgs e) { update_serienbriefdaten(false); } private void RibbonButtonOpen_Click(object sender, EventArgs e) { GrpEmpfaenger.Visible = false; GrpDokumentInhalt.Visible = false; pnlLoad.Visible = true; pnlLoad.Dock = DockStyle.Top; DB db = new DB(AppParams.connectionstring); db.clear_parameter(); db.add_parameter("@mitarbeiternr", AppParams.CurrentMitarbeiter.ToString()); db.Get_Tabledata("dbo.ondoc_get_offene_serienbriefe", true, false); sfdatagridsbload.DataSource = null; sfdatagridsbload.DataSource = db.dsdaten.Tables[0]; sfdatagridsbload.Columns[sfdatagridsbload.Columns.Count - 1].Visible = false; sfdatagridsbload.Columns[sfdatagridsbload.Columns.Count - 2].Visible = false; sfdatagridsbload.Columns[0].Width = 50; sfdatagridsbload.Columns[1].Width = 50; sfdatagridsbload.Columns[3].Width = 120; sfdatagridsbload.Columns[5].Width = 90; sfdatagridsbload.ExpanderColumnWidth = btnsbloadok.Left = pnlLoad.Width - btnsbloadok.Width - 20; if (sfdatagridsbload.RowCount == 0) this.btnsbloadok.Enabled = false; // vorlage_auslesen_und_speichern(); System.Windows.Forms.Application.DoEvents(); } private void bntsbloadok_Click(object sender, EventArgs e) { open_sb(selectedsbnr); } public void open_sb(int serienbriefnr) { DB db = new DB(AppParams.connectionstring); sb = new serienbrief(); sb.dsempfaenger = new DataSet(); sb.serienbriefnr = serienbriefnr; sb = db.Load_Serienbrief(sb, AppParams.tempdir); db.Get_Tabledata("Select * from office_vorlage where office_vorlagenr = " + sb.officevorlagenr.ToString(), false, true); sb.barcode_height = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bch"]); sb.barcode_width = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcw"]); sb.barcode_top = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcpt"]); sb.barcode_left = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcpl"]); sb.barcode_horizontal = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bchorizontal"]); sb.barcode_type = db.dsdaten.Tables[0].Rows[0]["barcodetype"].ToString(); sb.barcode_content = db.dsdaten.Tables[0].Rows[0]["datamatrixcontent"].ToString(); string sql = ""; sql = "select bcpt, bcpl, bcw, bch, bchorizontal from OnDocBarcodeMpping "; sql = sql + "where orig_bcpt = " + sb.barcode_top.ToString() + " and orig_bcpl=" + sb.barcode_left.ToString() + " "; sql = sql + "and orig_bcw=" + sb.barcode_width.ToString() + " and orig_bch=" + sb.barcode_height.ToString(); db.Get_Tabledata(sql, false, true); if (db.dsdaten.Tables[0].Rows.Count > 0) { Logging.Logging.Debug("Barcode-Übersteuerung" + sb.dokumenttypnr, "Serienbrief", ""); sb.barcode_left = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcpl"]); sb.barcode_top = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcpt"]); sb.barcode_width = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcw"]); sb.barcode_height = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bch"]); } sb.barcode_font = AppParams.barcodefont; sb.barcode_fontsize = AppParams.barcodefontsize; sb.barcode_textposition = AppParams.barcodetextposition; sb.barcode_zusatz = ""; sb.filename = db.get_sb_vorlage(sb.serienbriefnr, AppParams.tempdir); pnlLoad.Visible = false; update_screen(); refresh_empfaenger(sb.dsempfaenger.Tables[0]); enable_disable_functions(6, false); if (sb.status == 1) { enable_disable_functions(7, false); } db = null; } private void update_screen() { txtbezeichnung.Text = sb.bezeichnung; cbboxpostzustellung.SelectedValue = sb.postzustellung; cbboxunterschriftlinks.SelectedValue = sb.unterschriftlinks; cbboxunterschriftrechts.SelectedValue = sb.unterschriftrechts; cbboxverantwortlich.SelectedValue = sb.verantwortlich; cbformularohneunterschrfit.Checked = sb.ohneunterschrift == 1; cbdigitaleunterschrfiten.Checked = sb.faksimile == 1; DateDokumentDatum.Value = sb.archivdatum; switch (sb.ppfaktura) { case 0: rbppohne.Checked = true; break; case 1: rbppa.Checked = true; break; case 2: rbbpb.Checked = true; break; } if (sb.zustaendig == -1) { rbzustaendigkube.Checked = true; rbzustaendigmitarbeiter.Checked = false; } else { rbzustaendigkube.Checked = false; rbzustaendigmitarbeiter.Checked = true; cbboxzustaendigmitarbeiter.SelectedValue = sb.zustaendig; if (sb.zustaendig == 0) { cbboxzustaendigmitarbeiter.SelectedValue = AppParams.CurrentMitarbeiter; } } update_zahlen(); GrpDokumentInhalt.Enabled = true; grpFaktura.Enabled = true; } private void btnsbloadcancel_Click(object sender, EventArgs e) { pnlLoad.Visible = false; GrpEmpfaenger.Visible = true; GrpDokumentInhalt.Visible = true; } private void sfdatagridsbload_CellClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e) { try { var selectedItem = e.DataRow; var dataRow = (e.DataRow.RowData as DataRowView).Row; selectedsbnr = Convert.ToInt32(dataRow["id"].ToString()); } catch { } } private void ribbonButton1_Click(object sender, EventArgs e) { try { sbedit.Dispose(); } catch { } sbedit = new SerienbriefBearbeitung(this.sb); sbedit.Show(); this.sb = sbedit.sb; update_serienbriefdaten(false); } private void ribbonbuttonaddpartner_Click(object sender, EventArgs e) { Partnersuche ps = new Partnersuche(true); ps.ShowDialog(); if (ps.DialogResult == DialogResult.OK) { try { if (sb.dsempfaenger.Tables[0].Rows[0]["Status"].ToString() == "-1") { sb.dsempfaenger.Tables[0].Rows.RemoveAt(0); } } catch { } add_partner(ps.partnernr.ToString()); } } private void add_partner(string ipartnernr) { if (ipartnernr == "") { return; } this.partnernr = ""; bool found = false; foreach (System.Data.DataColumn dc in sb.dsempfaenger.Tables[0].Columns) { if (dc.ColumnName.ToUpper() == "INTEINTRAGNR") { found = true; } } if (!found) { sb.dsempfaenger.Tables[0].Columns.Add("IntEintragnr"); } int lastid = sb.dsempfaenger.Tables[0].Rows.Count; DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select bkpar00, saldiert from partner where nrpar00=" + ipartnernr, false, true); if (db.dsdaten.Tables[0].Rows.Count > 0) { System.Data.DataRow dr = sb.dsempfaenger.Tables[0].NewRow(); for (int i = 1; i < sb.dsempfaenger.Tables[0].Columns.Count; i++) { dr[i] = ""; } dr["partnernr"] = Convert.ToInt32(ipartnernr); if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][1]) == 1) { dr["kurzbezeichnung"] = "SALDIERT: "+db.dsdaten.Tables[0].Rows[0][0].ToString(); } else { dr["kurzbezeichnung"] = db.dsdaten.Tables[0].Rows[0][0].ToString(); } db.Get_Tabledata("select dbo.fnkt_check_blkunde(" + ipartnernr.ToString() + ")", false, true); if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0])>0) { dr["BLKUNDE"] = "1"; } else { dr["BLKUNDE"] = "0"; } dr["STATUS"] = 0; dr["FEHLERCODE"] = 0; dr["IntEintragnr"] = lastid; sb.dsempfaenger.Tables[0].Rows.Add(dr); this.partnernr = ""; if (sb.dsempfaenger.Tables[0].Rows.Count == 2 && sb.dsempfaenger.Tables[0].Rows[0][0].ToString() == "") { sb.dsempfaenger.Tables[0].Rows.RemoveAt(0); } refresh_empfaenger(sb.dsempfaenger.Tables[0]); } db = null; } private void partnerHinzufügenToolStripMenuItem_Click(object sender, EventArgs e) { ribbonbuttonaddpartner_Click(sender, e); } private void partnerLöschenToolStripMenuItem_Click(object sender, EventArgs e) { sfDataGridEmpfaenger.AllowDeleting = true; sfDataGridEmpfaenger.DeleteSelectedRecords(); sfDataGridEmpfaenger.AllowDeleting = false; refresh_empfaenger(sb.dsempfaenger.Tables[0]); return; } private void sfdatagridsbload_DoubleClick(object sender, EventArgs e) { if (sfdatagridsbload.RowCount == 0) return; bntsbloadok_Click(sender, e); } private void sfdatagridsbload_CellDoubleClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e) { bntsbloadok_Click(sender, e); } private bool Partnerliste_Pruefen() { DB db = new DB(AppParams.connectionstring); //Logging.Logging.Debug("Create sb_chechtable", "OnDoc", ""); db.create_sb_check_table(AppParams.CurrentMitarbeiter); //Logging.Logging.Debug("Save Check_Data", "OnDoc", ""); db.save_sb_checkdata(AppParams.CurrentMitarbeiter, sb); System.Data.DataTable dt = new System.Data.DataTable(); dt = db.Check_sb_Data(AppParams.CurrentMitarbeiter, sb); //Logging.Logging.Debug("Check_sb_Data ", "OnDoc", dt.Rows.Count.ToString()); string msg = ""; init_progressbar("Partnerliste prüfen", dt.Rows.Count); bool bldossier = false; System.Data.DataRow[] dr; for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++) { add_progress(); System.Windows.Forms.Application.DoEvents(); dr = sb.dsempfaenger.Tables[0].Select("Partnernr='" + dt.Rows[i][0].ToString() + "' and status<>1"); if (dr.Length == 0) { dr = sb.dsempfaenger.Tables[0].Select("Partnernr=''"); } foreach (var dr1 in dr) { dr1["blkunde"] = dt.Rows[i]["blkunde"].ToString(); dr1["Status"] = dt.Rows[i]["status"]; // Logging.Logging.Debug("dr1 ", "OnDoc", dr1["Status"].ToString()); try { if (Convert.ToInt32(dr1["status"]) == -9) { dr1["Status"] = 0; if (dr1[1].ToString().Contains("SALDIERT:")) { } else { dr1[1] = "SALDIERT: " + dr1[1].ToString(); } } if (Convert.ToInt32(dt.Rows[i]["Fehlercode"]) > 0) { dr1["Fehlercode"] = dt.Rows[i]["Fehlercode"]; } if (Convert.ToInt32(dt.Rows[i]["Fehlercode"]) >= 10) { if (Convert.ToInt32(dt.Rows[i]["Fehlercode"]) == 11) { // MyMsg.show_standardmessage(920000, MsgBoxStyle.Exclamation) msg = "Die Serienbriefvorlage ist für Personen-Dokumente. Es sind jedoch BP's in der Partnerliste. Der Serienbrief kann nicht generiert werden."; } else { msg = "Die Serienbriefvorlage ist für BP-Dokumente. Es sind jedoch Personen-Nummern in der Partnerliste. Der Serienbrief kann nicht generiert weden."; } } } catch { } } if (Convert.ToInt32(dt.Rows[i][4]) == 1) { bldossier = true; }; } //Logging.Logging.Debug("Check Duplicates ", "OnDoc", ""); var duplicates = sb.dsempfaenger.Tables[0].AsEnumerable() .GroupBy(r => r[0])//Using Column Index .Where(gr => gr.Count() > 1) .Select(g => g.Key); string check_duplicates = ""; foreach (var dup in duplicates) { set_grid_color(dup.ToString()); if (check_duplicates != "") { check_duplicates = check_duplicates + ", "; } check_duplicates = check_duplicates + dup.ToString(); } if (check_duplicates != "") { MessageBox.Show("In der Partnerliste sind folgende Duplikate vorhanden: " + Environment.NewLine + check_duplicates, "Partnerprüfung", MessageBoxButtons.OK, MessageBoxIcon.Error); finish_progress(); return false; } //System.Data.DataTable tbNew = (System.Data.DataTable)duplicates; if (sb.dsempfaenger.Tables[0].Columns.Count > 20) { check_zwingende_felder(); } finish_progress(); refresh_empfaenger(sb.dsempfaenger.Tables[0]); if (msg != "") { MessageBox.Show(msg, "Serienbrief", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } //Logging.Logging.Debug("Ende Pruefung", "OnDoc",""); return true; } private void set_grid_color(string partner) { } private void check_zwingende_felder() { for (int i = 20; i < sb.dsempfaenger.Tables[0].Columns.Count; i++) { try { if (Convert.ToInt32(sb.dsempfaenger.Tables[1].Rows[0][sb.dsempfaenger.Tables[0].Columns[i].ColumnName]) == 1) { System.Data.DataRow[] dr = sb.dsempfaenger.Tables[0].Select("[" + sb.dsempfaenger.Tables[0].Columns[i].ColumnName + "] <>''"); foreach (System.Data.DataRow dr2 in dr) { if (Convert.ToInt32(dr2["Status"]) == 0) { dr2["Status"] = 0; } } dr = sb.dsempfaenger.Tables[0].Select("[" + sb.dsempfaenger.Tables[0].Columns[i].ColumnName + "] =''"); foreach (System.Data.DataRow dr2 in dr) { if (Convert.ToInt32(dr2["Status"]) == 0) { dr2["Status"] = -1; dr2["Fehlercode"] = 2; } } } } catch { } } } private void ribbonButton2_Click(object sender, EventArgs e) { lblProgressTitel.Text = "Partnerliste prüfen"; pnlprogress.Visible = true; //Logging.Logging.Debug("Partnerliste Pruefen", "OnDoc", ""); Partnerliste_Pruefen(); treeViewAdv1_AfterSelect(sender, e); pnlprogress.Visible = false; } System.Data.DataTable vorlagendaten = new System.Data.DataTable(); private void RibbonButtonGenerateSB_Click(object sender, EventArgs e) { if (cbdigitaleunterschrfiten.Checked && sb.approved!=1) { sb.toapproval = 1; sb.approved = 0; sb.approval1 = 0; sb.approval2 = 0; } ribbonbuttonsave_Click(sender, e); if (!Partnerliste_Pruefen()) { return; } Generate(); } private bool Check_Signature(int mitarbeiternr) { DB db = new DB(AppParams.connectionstring); try { db.Get_Tabledata("Select tgnummer from mitarbeiter where mitarbeiternr=" + mitarbeiternr.ToString(), false, true); if (db.dsdaten.Tables[0].Rows[0][0].ToString() == "") { return false; } string URL = AppParams.RESTURI + "API/CheckSignature?TGNummer=" + db.dsdaten.Tables[0].Rows[0][0].ToString(); 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(); return true; } else { Logging.Logging.Error(URL + ": " + response.StatusCode.ToString() + " / " + response.StatusDescription, "Clinet - DokList GetDocument", ""); return false; } } } catch (Exception ex) { return false; } } catch { return false; } finally { db = null; } } private void Generate(int vorschauid = -1) { ToastMessage.ShowToast("Speichern", "Serienbriefdaten wurden gespeichert"); vorlagendaten = null; vorlagendaten = new System.Data.DataTable(); vorlagendaten = Datentabelle_Generieren(); dg = new DOCGEN.DocGen(); dget = new DOCGEN.DocGet(AppParams.connectionstring); DB dB = new DB(AppParams.connectionstring); if (vorschauid == -1) { dB.Exec_SQL("Update serienbrief_Bewilligung set aktiv=0, mutiert_am=getdate(),mutierer="+ AppParams.CurrentMitarbeiter.ToString() + " where serienbriefnr=" + sb.serienbriefnr.ToString()); } if (IsPreview) { Helper.FileHelper fh = new FileHelper(); sb.VorlageBase64 = fh.Base64FromFile(PreviewFiename); } else { string fn = dB.get_sb_vorlage(sb.serienbriefnr, AppParams.tempdir); sb.VorlageBase64 = dB.dsdaten.Tables[0].Rows[0][0].ToString(); } sb.DocValues = new List(); APIHelper imghelper = new APIHelper(AppParams.RESTURI, AppParams.apikey); if (sb.faksimile_unterschrfit == "True") { sb.img_unterschriftlinks = Newtonsoft.Json.JsonConvert.DeserializeObject(imghelper.get_unterschrift(sb.unterschriftlinks.ToString())); sb.img_unterschrfitrechts = Newtonsoft.Json.JsonConvert.DeserializeObject(imghelper.get_unterschrift(sb.unterschriftrechts.ToString())); } sb.img_faktura = ""; if (sb.ppfaktura == 1) { sb.img_faktura = Newtonsoft.Json.JsonConvert.DeserializeObject(imghelper.get_image(1, -1, 0)); } if (sb.ppfaktura == 2) { sb.img_faktura = Newtonsoft.Json.JsonConvert.DeserializeObject(imghelper.get_image(2, -1, 0)); } if (cbboxunterschriftlinks.Text.Trim() == "") { sb.unterschriftlinks = 0; } if (cbboxunterschriftrechts.Text.Trim() == "") { sb.unterschriftrechts = 0; }; bool error = false; if (cbdigitaleunterschrfiten.Checked) { if (sb.unterschriftlinks != 0) { if (!Check_Signature(sb.unterschriftlinks)) { MessageBox.Show("Unterschrift von " + cbboxunterschriftlinks.Text + " fehlt", "Unterschriftenprüfung", MessageBoxButtons.OK, MessageBoxIcon.Error); error = true; }; } if (sb.unterschriftrechts != 0) { if (!Check_Signature(sb.unterschriftrechts)) { MessageBox.Show("Unterschrift von " + cbboxunterschriftrechts.Text + " fehlt", "Unterschriftenprüfung", MessageBoxButtons.OK, MessageBoxIcon.Error); error = true; } } if (error) { return; } } imghelper = null; vorlagendaten_aufbereiten(vorschauid); if (cbdigitaleunterschrfiten.Checked) { sb.toapproval = 1; sb.approved = 0; sb.approval1 = 0; sb.approval2 = 0; }else { sb.toapproval = 0; sb.approved = 0; sb.approval1 = 0; sb.approval2 = 0; } update_serienbriefdaten(false); update_zahlen(); treeViewAdv1.SelectedNode = treeViewAdv1.Nodes[2]; update_grid(); } private void vorlagendaten_aufbereiten(int vorschauid = -1) { init_progressbar("Dokumente generieren", vorlagendaten.Rows.Count); for (int i = 0, loopTo = vorlagendaten.Rows.Count - 1; i <= loopTo; i++) { if (vorschauid == -1 || Convert.ToInt32(vorlagendaten.Rows[i]["IntEintragnr"]) == vorschauid) { add_progress(); System.Windows.Forms.Application.DoEvents(); string sp1 = ""; string[] sp2; string feldnr; for (int i1 = 0, loopTo1 = vorlagendaten.Columns.Count - 1; i1 <= loopTo1; i1++) { try { sp1 = vorlagendaten.Columns[i1].ColumnName; sp2 = sp1.Split(new string[] { "_09_" }, StringSplitOptions.None); sp1 = sp2[0] + "_09_" + sp2[2]; feldnr = sp2[1].ToString(); sp1 = sp1; } catch { sp1 = vorlagendaten.Columns[i1].ColumnName; feldnr = sp1; } try { switch (sp1) { // Mapping Zustelladresse case "F_09_1": case "F_09_10": { if (vorlagendaten.Rows[i]["Zustelladresse"] != "") { vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["Zustelladresse"]; } break; } case "F_09_89": { if (vorlagendaten.Rows[i]["Name"] != "") { vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["Name"]; } break; } case "F_09_111": { if (vorlagendaten.Rows[i]["Vorname"] != "") { vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["Vorname"]; } break; } case "F_09_122": case "F_09_123": case "F_09_20": { string s = ""; string s1; if (vorlagendaten.Rows[i]["Briefanrede1"] != "") { s = vorlagendaten.Rows[i]["Briefanrede1"].ToString(); if (s.Substring(0, 4) == "Herr") { s = "r " + s; } else { s = " " + s; } } if (vorlagendaten.Rows[i]["Briefanrede2"] != "") { if (!string.IsNullOrEmpty(s)) s = s + Environment.NewLine; s1 = vorlagendaten.Rows[i]["Briefanrede2"].ToString(); if (s.Substring(0, 4) == "Herr") { s = s + "Sehr geehrter " + s1; } else { s = s + "Sehr geehrte " + s1; } } if (!string.IsNullOrEmpty(s)) { vorlagendaten.Rows[i][i1] = s; } break; } case "F_09_98": { if (vorlagendaten.Rows[i]["Strasse"] != "") { vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["Strasse"]; } break; } case "F_09_93": { if (vorlagendaten.Rows[i]["Ort"] != "") { vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["Ort"]; } break; } case var @case when @case == "F_09_93": { if (vorlagendaten.Rows[i]["Ort"] != "") { vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["Ort"]; } break; } case "F_09_96": { if (vorlagendaten.Rows[i]["PLZ"] != "") { vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["PLZ"]; } break; } case "F_09_132": { if (vorlagendaten.Rows[i]["PLZ"].ToString() != "" | vorlagendaten.Rows[i]["Ort"].ToString() != "0") { vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["PLZ"] + " " + vorlagendaten.Rows[i]["Ort"]; } break; } default: { break; } } } catch { } // Verknüpfte Felder try { int i2; var loopTo2 = sb.dsempfaenger.Tables["VerkFelder"].Rows.Count - 1; for (i2 = 0; i2 <= loopTo2; i2++) { if (feldnr == sb.dsempfaenger.Tables["verkfelder"].Rows[i2]["Vorlagenfeldnr"].ToString()) { vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i][sb.dsempfaenger.Tables["verkfelder"].Rows[i2]["IDVWert"].ToString()]; } } } catch { } if (object.ReferenceEquals(vorlagendaten.Rows[i][i1], DBNull.Value)) { vorlagendaten.Rows[i][i1] = ""; } try { if (vorlagendaten.Columns[i1].ColumnName.ToString().Substring(0, 5) == "F_09_") { Insert_Value(vorlagendaten.Rows[i][i1].ToString(), vorlagendaten.Columns[i1].ColumnName); } } catch { } try { if (vorlagendaten.Columns[i1].ColumnName.ToString().Substring(0, 5) == "I_09_") { string intfeldname; string Intbookmark; string IntWert; intfeldname = vorlagendaten.Columns[i1].ColumnName; Intbookmark = Helper.Strings.Right(vorlagendaten.Columns[i1].ColumnName, vorlagendaten.Columns[i1].ColumnName.Length - 5); IntWert = Helper.Strings.Right(vorlagendaten.Columns[i1].ColumnName, vorlagendaten.Columns[i1].ColumnName.Length - 14); int ind; ind = IntWert.IndexOf("_09_"); IntWert = Helper.Strings.Left(IntWert, ind); // SplitArray = IntWert.Split("_09_") // IntWert = SplitArray(0) // IntWert = RenCol(IntWert) Insert_Value(vorlagendaten.Rows[i][IntWert].ToString(), Intbookmark); } } catch { } try { if (vorlagendaten.Columns[i1].ColumnName.ToString().Substring(0, 2) == "$$") { Insert_Value(vorlagendaten.Rows[i][i1].ToString(), vorlagendaten.Columns[i1].ColumnName); } } catch { } } Helper.FileHelper fh = new FileHelper(); DB db = new DB(AppParams.connectionstring); System.Data.DataRow dr = sb.dsempfaenger.Tables[0].Select("intEintragnr = '" + vorlagendaten.Rows[i]["IntEintragnr"].ToString() + "'").FirstOrDefault(); string dokumentid = ""; if (dr != null) { dokumentid = dr["dokumentid"].ToString(); } if (dokumentid == "") { dokumentid = db.get_dbkey("Dokument"); } string filename = dokumentid + ".pdf"; if (vorschauid != -1 && Convert.ToInt32(vorlagendaten.Rows[i]["IntEintragnr"]) == vorschauid) { string pdfdoc_preview = dget.Convert_Word_To_PDF(dg.generate_serienbrief(sb.VorlageBase64, sb, dokumentid, AppParams.RESTURI, AppParams.apikey)); sbedit.Update_Preview(pdfdoc_preview); } else { string pdfdoc = dget.Convert_Word_To_PDF(dg.generate_serienbrief(sb.VorlageBase64, sb, dokumentid, AppParams.RESTURI, AppParams.apikey)); fh.SaveBase64ToFile(pdfdoc, AppParams.tempdir + filename); db.save_serienbrief_datei(sb.serienbriefnr, Convert.ToInt32(vorlagendaten.Rows[i]["IntEintragnr"]), AppParams.tempdir + filename, dokumentid); System.IO.File.Delete(AppParams.tempdir + filename); } db = null; if (dr != null && vorschauid == -1) { dr["STATUS"] = "1"; dr["Dokumentid"] = dokumentid; } sb.DocValues.Clear(); } } finish_progress(); } private void insert_PPZeile(string position, string typ) { } private void Insert_Value(string feldwert, string feldname) { System.Data.DataRow dc; int pos1; int pos2; string beginntextmarke = ""; string endetextmarke = ""; // Test if (feldwert == "**PPZeileB") { // MsgBox(beginntextmarke) foreach (System.Data.DataRow currentDc in sb.dsempfaenger.Tables["UsedFelder"].Rows) { dc = currentDc; if (dc["TempFeldName"] == feldname) { beginntextmarke = dc["Beginntextmarke"].ToString(); endetextmarke = dc["Endetextmarke"].ToString(); feldname = dc["Feldname"].ToString(); insert_PPZeile(beginntextmarke, "B"); return; } } } if (feldwert == "**PPZeileA") { // MsgBox(beginntextmarke) foreach (System.Data.DataRow currentDc in sb.dsempfaenger.Tables["UsedFelder"].Rows) { dc = currentDc; if (dc["TempFeldName"] == feldname) { beginntextmarke = dc["Beginntextmarke"].ToString(); endetextmarke = dc["Endetextmarke"].ToString(); feldname = dc["Feldname"].ToString(); insert_PPZeile(beginntextmarke, "A"); return; } } } if (Helper.Strings.Left(feldname, 5) == "TMISB") { beginntextmarke = feldname; endetextmarke = ""; feldname = ""; } else { foreach (System.Data.DataRow currentDc2 in sb.dsempfaenger.Tables["UsedFelder"].Rows) { dc = currentDc2; if (dc["TempFeldName"].ToString() == feldname) { beginntextmarke = dc["Beginntextmarke"].ToString(); endetextmarke = dc["Endetextmarke"].ToString(); feldname = dc["Feldname"].ToString(); break; } } } // contentcontrols try { if (feldname.Length > 2) { if (feldname != "" & feldname.Substring(0, 3) == "cc_") { //objword.ActiveDocument.SelectContentControlsByTag(feldname).Item(1).Range.Text = feldwert; } } } catch (Exception ex) { } clsDocValue dv = new clsDocValue(); dv.TMBeginn = beginntextmarke; ; dv.TMEnd = endetextmarke; dv.Value = feldwert; dv.FieldName = feldname; sb.DocValues.Add(dv); } private string Insert_DT_Column(ref System.Data.DataTable dt, string colname) { int i = 0; foreach (DataColumn dc in dt.Columns) { if (dc.ColumnName.Length >= colname.Length) { if (dc.ColumnName.Substring(0, colname.Length - 1).ToUpper() == colname.ToUpper()) { i = i + 1; } } } if (i > 0) colname = colname + "_" + i.ToString(); try { dt.Columns.Add(colname); } catch { } return colname; } private System.Data.DataTable Datentabelle_Generieren() { var dt = new System.Data.DataTable(); System.Data.DataRow dn; int i; var aPrimaryKey = new DataColumn[1]; DataColumn oDatacolumn; try { sb.dsempfaenger.Tables[0].Columns.Add("IntEintragnr"); } catch { } var loopTo = sb.dsempfaenger.Tables[0].Rows.Count - 1; for (i = 0; i <= loopTo; i++) sb.dsempfaenger.Tables[0].Rows[i]["IntEintragNr"] = i; oDatacolumn = sb.dsempfaenger.Tables[0].Columns["IntEintragnr"]; aPrimaryKey[0] = oDatacolumn; sb.dsempfaenger.Tables[0].PrimaryKey = aPrimaryKey; sb.dsempfaenger.AcceptChanges(); dt.TableName = "EDKB09_" + sb.serienbriefnr.ToString(); var loopTo1 = sb.dsempfaenger.Tables[0].Columns.Count - 1; for (i = 0; i <= loopTo1; i++) dt.Columns.Add(sb.dsempfaenger.Tables[0].Columns[i].ColumnName); System.Data.DataRow[] dv; dv = sb.dsempfaenger.Tables[0].Select("Status=0"); foreach (System.Data.DataRow dr in dv) { dt.ImportRow(dr); } bool tmkopfzeile = false; sb.dsempfaenger.Tables["UsedFelder"].AcceptChanges(); try { var loopTo2 = sb.dsempfaenger.Tables["UsedFelder"].Rows.Count - 1; for (i = 0; i <= loopTo2; i++) { if (sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["Nr"].ToString() == "33") { tmkopfzeile = true; } } } catch (Exception ex) { object a; a = 1; } if (tmkopfzeile == false) { dn = sb.dsempfaenger.Tables["UsedFelder"].NewRow(); dn[0] = 33; dn[1] = "TGEDKCompanyBBEB99"; dn[2] = ""; dn[3] = "TGEDKCompanyBBEB99"; dn[4] = ""; sb.dsempfaenger.Tables["UsedFelder"].Rows.Add(dn); } try { sb.dsempfaenger.Tables["UsedFelder"].Columns.Add("Fnkt"); sb.dsempfaenger.Tables["UsedFelder"].Columns.Add("TempFeldname"); } catch { } string s; System.Data.DataTable dtx = sb.dsempfaenger.Tables["UsedFelder"].Copy(); var loopTo3 = sb.dsempfaenger.Tables["UsedFelder"].Rows.Count - 1; for (i = 0; i <= loopTo3; i++) { if (Convert.ToInt32(sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["Nr"]) != 0) { s = "F_09_" + sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["Nr"].ToString(); sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["fnkt"] = s; s = Insert_DT_Column(ref dt, s); sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["Tempfeldname"] = s; } else { s = "I_09_" + sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["Beginntextmarke"]; sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["fnkt"] = s; s = Insert_DT_Column(ref dt, s); sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["Tempfeldname"] = s; } } // Me.dsempfaenger.WriteXml("d:\test.xmls") //dt.Columns["intEintragnr"]. DB db = new DB(AppParams.connectionstring); //db.Get_Tabledata_for_Update("Select * from edkb09_" + sb.serienbriefnr.ToString(), false, true); //db.daten.Tables.Clear(); //db.daten.Tables.Add(dt.Copy()); //db.daten.Tables[0].Columns["Partnernr"].ColumnName = "NRPAR00"; //db.daten.Tables[0].TableName = "Daten"; //db.Update_Data(); //dt.Columns["Partnernr"].ColumnName = "NRPAR00"; db.Create_sb_SQL_Server_Table(ref dt, sb); db.Save_sb_Data_To_Temptable(ref dt, sb); return db.Fill_And_Get_Data(sb); } private void sfDataGridEmpfaenger_CellClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e) { if (docPreview1.Visible == true) { try { var selectedItem = e.DataRow; var dataRow = (e.DataRow.RowData as DataRowView).Row; string inteintragnr = "0"; inteintragnr = dataRow["inteintragnr"].ToString(); string dokumentid = dataRow["dokumentid"].ToString(); docPreview1.Show_Serienbrief_Dokument(sb.serienbriefnr, Convert.ToInt32(inteintragnr), dokumentid); } catch { } } } private void init_progressbar(string title, int maxvalue) { progressBarAdv1.Value = 0; progressBarAdv1.Maximum = maxvalue; progressBarAdv1.Minimum = 0; lblProgressTitel.Text = title; pnlprogress.Visible = true; } private void add_progress() { progressBarAdv1.Value = progressBarAdv1.Value + 1; System.Windows.Forms.Application.DoEvents(); } private void finish_progress() { pnlprogress.Visible = false; } private void merge() { DataView dv = new DataView(sb.dsempfaenger.Tables[0]); dv.RowFilter = "Status = 1"; dv.Sort = "Partnernr"; PdfDocument finalDoc = new PdfDocument(); int normalcount = 0; int blcount = 0; foreach (DataRowView rowView in dv) { System.Data.DataRow dr = rowView.Row; if (dr["blkunde"].ToString()=="1") { blcount++; } else { normalcount++; } } DB db = new DB(AppParams.connectionstring); int stapelgroesse = 200; int stapel = 1; int i = 0; int anzahl_stapel = (normalcount / 100) + 1; if (blcount > 0) { btnblexport.Visible = true; System.Windows.Forms.Application.DoEvents(); } Stream[] streams = null; if (normalcount > stapelgroesse) { streams = new Stream[stapelgroesse]; } else streams = new Stream[normalcount]; init_progressbar("Druckstapel generieren", dv.Count); if (normalcount > 0) { foreach (DataRowView rowView in dv) { add_progress(); System.Data.DataRow dr = rowView.Row; if (dr["blkunde"].ToString() != "1") { db.Get_Tabledata("Select dbo.BinaryToBase64(dokument) from edex_sb_serienbrief_dokument where dokumentid='" + dr["Dokumentid"].ToString() + "'", false, true); var stream = new MemoryStream(Convert.FromBase64String(db.dsdaten.Tables[0].Rows[0][0].ToString())); if (stream.Length > 0) { streams[i] = stream; i++; if (i >= stapelgroesse) { save_stapel(stapel, ref streams); i = 0; if (dv.Count - (stapel * stapelgroesse) >= stapelgroesse) { streams = new Stream[stapelgroesse]; } else { streams = new Stream[dv.Count - (stapel * stapelgroesse)]; } //streams = new Stream[dv.Count - (stapel * stapelgroesse)]; stapel++; } } } } save_stapel(stapel, ref streams); } //if (blcount > 0) //{ // i = 0; // anzahl_stapel = (blcount / 100) + 1; // streams = null; // if (blcount > stapelgroesse) { streams = new Stream[stapelgroesse]; } else streams = new Stream[blcount]; // stapel = stapel + 1; // i = 0; // foreach (DataRowView rowView in dv) // { // add_progress(); // System.Data.DataRow dr = rowView.Row; // if (dr["blkunde"].ToString() == "1") // { // db.Get_Tabledata("Select dbo.BinaryToBase64(dokument) from edex_sb_serienbrief_dokument where dokumentid='" + dr["Dokumentid"].ToString() + "'", false, true); // var stream = new MemoryStream(Convert.FromBase64String(db.dsdaten.Tables[0].Rows[0][0].ToString())); // if (stream.Length > 0) // { // streams[i] = stream; // i++; // if (i >= stapelgroesse) // { // save_stapel(stapel, ref streams); // i = 0; // if (dv.Count - (stapel * stapelgroesse) >= stapelgroesse) { streams = new Stream[stapelgroesse]; } // else // { // streams = new Stream[dv.Count - (stapel * stapelgroesse)]; // } // //streams = new Stream[dv.Count - (stapel * stapelgroesse)]; // stapel++; // } // } // } // } // save_stapel(stapel, ref streams); //} //PdfDocumentBase.Merge(finalDoc, streams); //FileStream fs = new FileStream(AppParams.tempdir+sb.serienbriefnr.ToString()+".pdf",FileMode.Create); //finalDoc.Save(fs); //finalDoc.Close(); //finalDoc.Dispose(); //fs.Close(); //fs.Dispose(); //for (i = 0; i < streams.Length; i++) //{ // streams[i].Dispose(); //} streams = null; dv = null; finish_progress(); } private void save_stapel(int stapelnr, ref Stream[] streams) { try { PdfDocument finalDoc = new PdfDocument(); PdfDocumentBase.Merge(finalDoc, streams); string filename = AppParams.tempdir + DateTime.Now.ToString("yyyyhhmmHHmmss") + "_" + stapelnr.ToString() + "_" + sb.serienbriefnr.ToString() + ".pdf"; FileStream fs = new FileStream(filename, FileMode.Create); finalDoc.Save(fs); finalDoc.Close(); finalDoc.Dispose(); fs.Close(); fs.Dispose(); TreeNodeAdv tn = new TreeNodeAdv(); tn.Text = "Druckstapel " + stapelnr.ToString() + " (" + streams.Length.ToString() + ")"; tn.Tag = stapelnr.ToString(); tn.TagObject = filename; treeviewDruckstapel.Nodes.Add(tn); for (int i = 0; i < streams.Length; i++) { streams[i].Close(); streams[i].Dispose(); streams[i] = null; } streams = null; finalDoc = null; } catch { } } private void ribbonButtonDruckstapel_Click(object sender, EventArgs e) { treeviewDruckstapel.Nodes.Clear(); merge(); try { treeviewDruckstapel.SelectedNode = treeviewDruckstapel.Nodes[0]; update_grid(); } catch { } grpDruckstapel.Visible = true; } private void button1_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start(treeviewDruckstapel.SelectedNode.TagObject.ToString()); } private void button2_Click(object sender, EventArgs e) { grpDruckstapel.Visible = false; } private void RibbonButtonArchivierenUndAbschlessen_CanvasChanged(object sender, EventArgs e) { } private void RibbonButtonArchivierenUndAbschlessen_Click(object sender, EventArgs e) { try { DB db = new DB(AppParams.connectionstring); DataView dv = new DataView(sb.dsempfaenger.Tables[0]); init_progressbar("Dokumente archivieren", dv.Count); dv.RowFilter = "Status = 1"; dv.Sort = "Partnernr"; foreach (DataRowView rowView in dv) { add_progress(); OnBaseDocUpload.OnBaseDokument onbasedoc = new OnBaseDocUpload.OnBaseDokument(); System.Data.DataRow dr = rowView.Row; db.clear_parameter(); db.add_parameter("@serienbriefnr", sb.serienbriefnr.ToString()); db.add_parameter("@intEintragnr", dr["intEintragnr"].ToString()); db.add_parameter("@partnernr", dr["Partnernr"].ToString()); db.add_parameter("@dokumentid", dr["dokumentid"].ToString()); db.Get_Tabledata("sp_get_onbase_parameters_sb", true, false); if (db.dsdaten.Tables[0].Rows[0]["BpNummer"].ToString() == "") { onbasedoc.personNummer = db.dsdaten.Tables[0].Rows[0]["PersonNummer"].ToString(); onbasedoc.bpNummer = ""; } else { onbasedoc.bpNummer = db.dsdaten.Tables[0].Rows[0]["BpNummer"].ToString(); onbasedoc.personNummer = ""; } onbasedoc.dokumentDatum = db.dsdaten.Tables[0].Rows[0]["DokumentDatum"].ToString(); onbasedoc.dokumentTyp = db.dsdaten.Tables[0].Rows[0]["dokumenttyp"].ToString(); onbasedoc.dateiTyp = db.dsdaten.Tables[0].Rows[0]["dateityp"].ToString(); onbasedoc.attributes = new List(); foreach (System.Data.DataRow rw in db.dsdaten.Tables[1].Rows) { OnBaseDocUpload.attribute p = new OnBaseDocUpload.attribute(rw["fieldname"].ToString(), rw["fieldvalue"].ToString()); onbasedoc.attributes.Add(p); } db.Get_Tabledata("Select dbo.BinaryToBase64(dokument) from edex_sb_serienbrief_dokument where serienbriefnr=" + sb.serienbriefnr.ToString() + " and inteintragnr=" + dr["IntEintragNr"].ToString(), false, true); onbasedoc.dokumentDatei = db.dsdaten.Tables[0].Rows[0][0].ToString(); string URL = ""; string response = ""; string jsonstring = Newtonsoft.Json.JsonConvert.SerializeObject(onbasedoc); URL = AppParams.RESTURI + "api/ArchivSBDoc"; URL = URL + "?sbnr=" + sb.serienbriefnr.ToString(); URL = URL + "&intid=" + dr["inteintragnr"].ToString(); URL = URL + "&partnernr=" + dr["partnernr"].ToString(); URL = URL + "&dokumentid=" + dr["dokumentid"].ToString(); HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(URL); httpWebRequest.ContentType = "text/json"; httpWebRequest.Method = "POST"; httpWebRequest.Headers["Authorization"] = "Bearer " + AppParams.apikey; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string json = jsonstring; streamWriter.Write(json); streamWriter.Flush(); } var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); if (httpResponse.StatusCode == HttpStatusCode.OK) { dr["STATUS"] = 2; ; } } } sb.status = 1; sb.dsempfaenger.AcceptChanges(); update_serienbriefdaten(false); update_zahlen(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { finish_progress(); } } private void ausListeLöschenToolStripMenuItem_Click(object sender, EventArgs e) { sfDataGridEmpfaenger.AllowDeleting = true; sfDataGridEmpfaenger.DeleteSelectedRecords(); sfDataGridEmpfaenger.AllowDeleting = false; refresh_empfaenger(sb.dsempfaenger.Tables[0]); return; } private void erneutGenerierenToolStripMenuItem_Click(object sender, EventArgs e) { System.Data.DataTable dt = sb.dsempfaenger.Tables[0]; var records = sfDataGridEmpfaenger.View.GetSelectedRecords(); if (records.Count < 1) { return; } int[] inteintraege = new int[records.Count]; int i = 0; foreach (var record in records) { var datarow = record as DataRowView; string documentid = datarow["dokumentid"].ToString(); inteintraege[i] = Convert.ToInt32(datarow["inteintragnr"].ToString()); i = i + 1; } for (int i1 = 0; i1 < i; i1++) { System.Data.DataRow dr = sb.dsempfaenger.Tables[0].Select("inteintragnr='" + inteintraege[i1].ToString() + "'").FirstOrDefault(); // finds all rows with id==2 and selects first or null if haven't found any if (dr != null) { dr["status"] = "0"; //changes the Product_name } } refresh_empfaenger(sb.dsempfaenger.Tables[0]); ribbonButtonToApproval.Enabled = false; } private void ribbonButton3_Click(object sender, EventArgs e) { if (MessageBox.Show("Serienbrief löschen?", "Serienbrief löschen", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { DB dB = new DB(AppParams.connectionstring); dB.Exec_SQL("Update edex_sb_serienbrief set aktiv=0, mutiert_am=getdate(),mutierer=" + AppParams.CurrentMitarbeiter.ToString() + " where serienbriefnr=" + sb.serienbriefnr.ToString()); dB = null; enable_disable_functions(1, false); } } private void ctxmenutree_Opening(object sender, CancelEventArgs e) { partnerlistePrüfenToolStripMenuItem.Visible = false; dokumentgenerierungZurücksetzenToolStripMenuItem.Visible = false; druckstapelAufbereitenToolStripMenuItem.Visible = false; archivierenUndAbschliessenToolStripMenuItem.Visible = false; if (ribbonButtonPartnerPruefen.Enabled) partnerlistePrüfenToolStripMenuItem.Visible = true; if (RibbonButtonArchivierenUndAbschlessen.Enabled) archivierenUndAbschliessenToolStripMenuItem.Visible = true; if (ribbonButtonDruckstapel.Enabled) druckstapelAufbereitenToolStripMenuItem.Visible = true; try { if (treeViewAdv1.SelectedNode.Text.Substring(0, 4) == "Gene") (dokumentgenerierungZurücksetzenToolStripMenuItem.Visible) = true; } catch { } } private void partnerlistePrüfenToolStripMenuItem_Click(object sender, EventArgs e) { ribbonButton2_Click(sender, e); } private void dokumentgenerierungZurücksetzenToolStripMenuItem_Click(object sender, EventArgs e) { sfDataGridEmpfaenger.SelectAll(); erneutGenerierenToolStripMenuItem_Click(sender, e); ribbonButtonToApproval.Enabled= false; } private void druckstapelAufbereitenToolStripMenuItem_Click(object sender, EventArgs e) { ribbonButtonDruckstapel_Click(sender, e); } private void archivierenUndAbschliessenToolStripMenuItem_Click(object sender, EventArgs e) { RibbonButtonArchivierenUndAbschlessen_Click(sender, e); } private void cbboxzustaendigmitarbeiter_SelectedIndexChanged(object sender, EventArgs e) { Refresh_Team(0); } private void ribbonbuttonsavetemplate_Click(object sender, EventArgs e) { string bez = ""; InputDialog id = new InputDialog("Name zum Speichern", "Name", ""); if (id.ShowDialog() == DialogResult.OK) { bez = id.result; } id.Dispose(); if (bez !="") { //InputBoxItem[] items = new InputBoxItem[] { new InputBoxItem("Bezeichnung") }; //InputBox input = InputBox.Show("Name für die Vorlage",items,InputBoxButtons.OKCancel); //if (input.Result == InputBoxResult.OK) { // string bez = input.Items["Bezeichnung"].ToString(); update_serienbriefdaten(false); string json = JsonConvert.SerializeObject(sb.dsempfaenger.Tables["UsedFelder"], Formatting.Indented); DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select dbo.binarytobase64(vorlage),DocType from edex_sb_vorlage where serienbriefnr=" + sb.serienbriefnr.ToString(), false, true); string file = db.dsdaten.Tables[0].Rows[0][0].ToString(); string dokytype = db.dsdaten.Tables[0].Rows[0][1].ToString(); db.Get_Tabledata_for_Update("select top 1 * from ondoc_sb_vorlage where id=-1", false, true); System.Data.DataRow dr = db.daten.Tables[0].NewRow(); dr[1] = AppParams.CurrentMitarbeiter; dr[2] = file; dr[3] = DateTime.Now; dr[4] = DateTime.Now; dr[5] = AppParams.CurrentMitarbeiter; dr[6] = true; dr[7] = dokytype; dr[8] = bez; dr[9] = json; db.daten.Tables[0].Rows.Add(dr); db.Update_Data(); db = null; } } private void ribbonbuttonloadtemplate_Click(object sender, EventArgs e) { SerienbriefTemplateLoad sbt = new SerienbriefTemplateLoad(AppParams.CurrentMitarbeiter.ToString()); sbt.ShowDialog(); if (sbt.DialogResult == DialogResult.OK) { sb.VorlageBase64 = sbt.file; FileHelper fh = new FileHelper(); fh.SaveBase64ToFile(sbt.file, sb.filename); fh = null; sb.dsempfaenger.Tables["UsedFelder"].Rows.Clear(); try { string json = sbt.usedfelder; System.Data.DataTable dt = (System.Data.DataTable)JsonConvert.DeserializeObject(json, (typeof(System.Data.DataTable))); sb.dsempfaenger.Tables["UsedFelder"].Rows.Clear(); foreach (System.Data.DataRow dr in dt.Rows) { sb.dsempfaenger.Tables["Usedfelder"].ImportRow(dr); }; } catch { } update_serienbriefdaten(false); } } private void cbformularohneunterschrfit_Click(object sender, EventArgs e) { } private void cbformularohneunterschrfit_CheckedChanged(object sender, EventArgs e) { if (cbformularohneunterschrfit.Checked) { cbboxunterschriftlinks.SelectedValue = -1; cbboxunterschriftrechts.SelectedValue = -1; cbboxunterschriftrechts.Enabled = false; cbboxunterschriftlinks.Enabled = false; cbdigitaleunterschrfiten.Checked = false; cbdigitaleunterschrfiten.Enabled = false; sb.approval1 = 0; sb.approval2 = 0; sb.toapproval = 0; sb.approval2 = 0; sb.faksimile = 0; sb.ohneunterschrift = 1; } else { cbboxunterschriftrechts.Enabled = true; cbboxunterschriftlinks.Enabled = true; cbdigitaleunterschrfiten.Enabled = true; if (cbdigitaleunterschrfiten.Checked == false) { sb.toapproval = 0; sb.approval2 = 0; sb.approval1 = 0; sb.approved = 0; sb.faksimile = 0; sb.ohneunterschrift = 0; } } } private void cbdigitaleunterschrfiten_CheckedChanged(object sender, EventArgs e) { if (sb.approved == 1) { return; } if (cbdigitaleunterschrfiten.Checked) { cbboxunterschriftlinks.Enabled = true; cbboxunterschriftrechts.Enabled = true; cbformularohneunterschrfit.Checked = false; cbformularohneunterschrfit.Enabled = false; sb.toapproval = 1; sb.approval2 = 0; sb.approval1 = 0; sb.approved = 0; sb.faksimile = 1; sb.ohneunterschrift = 0; } else { cbformularohneunterschrfit.Enabled = true; if (cbformularohneunterschrfit.Checked == false) { sb.toapproval = 0; sb.approval2 = 0; sb.approval1 = 0; sb.approved = 0; sb.faksimile = 0; sb.ohneunterschrift = 0; } } } private void ribbon1_Click(object sender, EventArgs e) { } private void ribbonButtonToApproval_Click(object sender, EventArgs e) { frmToApproval fa = new frmToApproval(); fa.serienbriefnr = sb.serienbriefnr.ToString(); fa.ShowDialog(); return; } private void ribbonbuttonGeprueft_Click(object sender, EventArgs e) { DB db = new DB(AppParams.connectionstring); clsMailer mailer = new clsMailer(); string empfaengerid = ""; db.Get_Tabledata("Select mutierer from serienbrief_Bewilligung where id=" + approvaldata["id"].ToString(), false, true); empfaengerid = db.dsdaten.Tables[0].Rows[0][0].ToString(); string sql = "update serienbrief_bewilligung set bewilligt=1, bewilligt_am = '" + DateTime.Now.ToString() + "' where id=" + approvaldata["id"].ToString(); db.Exec_SQL(sql); if (approvaldata["Bewilligungstyp"].ToString() == "2") { db.Exec_SQL("Update edex_sb_serienbrief set approval2=1 where serienbriefnr=" + sb.serienbriefnr.ToString() + ""); } else { db.Exec_SQL("Update edex_sb_serienbrief set approval1=1 where serienbriefnr=" + sb.serienbriefnr.ToString() + ""); } mailer.sendmail(4, empfaengerid, "", "","", "", AppParams.CurrentMitarbeiter.ToString(), approvaldata["id"].ToString()); mailer = null; db = null; Logging.DocLog.Info("Serienbrief geprüft", "Serienbrief geprüft", sb.serienbriefnr.ToString(), "", ""); Broadcaster().Broadcast("Serienbrief", new SenderInfo("Removesbfromlist", "Refreshpruefung", serienbriefnr.ToString())); } private void ribbonbuttonAbgelehnt_Click(object sender, EventArgs e) { frmNote note = new frmNote(sb.serienbriefnr.ToString(), "Ablehnen"); //DataRow dr = treeViewAdv1.SelectedNode.TagObject as DataRow; if (note.ShowDialog() == DialogResult.OK) { DB db = new DB(AppParams.connectionstring); clsMailer mailer = new clsMailer(); string empfaengerid = ""; db.Get_Tabledata("Select mutierer from serienbrief_Bewilligung where id=" + approvaldata["id"].ToString(), false, true); empfaengerid = db.dsdaten.Tables[0].Rows[0][0].ToString(); string sql = "update serienbrief_bewilligung set abgelehnt=1, abgelehnt_am = '" + DateTime.Now.ToString() + "', betreff='"+note.betreff+"', notizgrund='"+note.notiz+"' where id=" + approvaldata["id"].ToString(); db.Exec_SQL(sql); // treeViewAdv1.Nodes.Remove(treeViewAdv1.SelectedNode); // TreeNodeAdv tp = treeViewAdv1.SelectedNode.Parent; // treeViewAdv1.SelectedNode.Parent.Nodes.Remove(treeViewAdv1.SelectedNode); if (approvaldata["Bewilligungstyp"].ToString() == "2") { db.Exec_SQL("Update edex_sb_serienbrief set approved=0, approval2=0 where serienbriefnr=" + sb.serienbriefnr.ToString()); } else { db.Exec_SQL("Update edex_sb_serienbrief set approved=0, approval1=0 where serienbriefnr=" + sb.serienbriefnr.ToString()); } mailer.sendmail(6, empfaengerid, "", "", sb.serienbriefnr.ToString(), "", AppParams.CurrentMitarbeiter.ToString(), approvaldata["id"].ToString()); mailer = null; //if (tp.Nodes.Count < 1) //{ // tp.Parent.Nodes.Remove(tp); //} db = null; Logging.DocLog.Info("Serienbrief geprüft - abgelehnt", "Serienbriefprüfung", sb.serienbriefnr.ToString(), "", ""); Broadcaster().Broadcast("Serienbrief", new SenderInfo("Removesbfromlist", "Refreshpruefung", serienbriefnr.ToString())); } } private void sfdatagridsbload_DrawCell(object sender, Syncfusion.WinForms.DataGrid.Events.DrawCellEventArgs e) { try { if (e.Column.MappingName == "S") { try { e.Column.CellStyle.HorizontalAlignment = HorizontalAlignment.Center; e.Handled = true; var selectedItem = e.DataRow; var dataRow = (e.DataRow.RowData as DataRowView).Row; if (Convert.ToInt32(dataRow["S"]) == 0) { e.Graphics.DrawImage(OnDoc.Properties.Resources.Word_ToApprove_24x24_32, e.Bounds.X + 20, e.Bounds.Y); } if (Convert.ToInt32(dataRow["S"]) == 1) { e.Graphics.DrawImage(OnDoc.Properties.Resources.Word_approved_24x24_32, e.Bounds.X + 20, e.Bounds.Y); } if (Convert.ToInt32(dataRow["S"]) == 2) { e.Graphics.DrawImage(OnDoc.Properties.Resources.Word_24x24_32, 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 { } e.Handled = false; } } catch { } } private void sfdatagridsbload_ToolTipOpening(object sender, Syncfusion.WinForms.DataGrid.Events.ToolTipOpeningEventArgs e) { switch (e.Column.MappingName.ToLower()) { case "prüfung_rechts": if (e.DisplayText.Contains("Abgelehnt")) { Syncfusion.Data.RecordEntry record = sfdatagridsbload.View.GetRecordAt(e.RowIndex - 1); var a = record.Data; var b = a as DataRowView; string x = b["id"].ToString(); DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("select top 1 betreff, notizgrund, mutiert_am from serienbrief_bewilligung where serienbriefnr='" + x + "' and bewilligungstyp=2 and abgelehnt=1 order by mutiert_am desc", false, true); try { Syncfusion.WinForms.Controls.ToolTipItem t = new Syncfusion.WinForms.Controls.ToolTipItem(); t.Text = db.dsdaten.Tables[0].Rows[0]["mutiert_am"].ToString() + Environment.NewLine + Environment.NewLine + db.dsdaten.Tables[0].Rows[0]["betreff"].ToString() + Environment.NewLine + Environment.NewLine + db.dsdaten.Tables[0].Rows[0]["Notizgrund"].ToString(); System.Drawing.Font tf = new System.Drawing.Font(t.Style.Font.FontFamily, 10, FontStyle.Bold); t.Style.TextAlignment = ContentAlignment.MiddleLeft; t.Style.BackColor = Color.FromArgb(255, 102, 0); t.Style.Font = tf; e.ToolTipInfo.Items.Add(t); db = null; } catch { } db = null; } //var record1 = sfDataGrid1.View.Records.GetItemAt(e.RowIndex); break; case "prüfung_links": if (e.DisplayText.Contains("Abgelehnt")) { Syncfusion.Data.RecordEntry record = sfdatagridsbload.View.GetRecordAt(e.RowIndex - 1); var a = record.Data; var b = a as DataRowView; string x = b["id"].ToString(); DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("select top 1 betreff, notizgrund, mutiert_am from serienbrief_bewilligung where serienbriefnr='" + x + "' and bewilligungstyp=1 and abgelehnt=1 order by mutiert_am desc", false, true); try { Syncfusion.WinForms.Controls.ToolTipItem t = new Syncfusion.WinForms.Controls.ToolTipItem(); t.Text = db.dsdaten.Tables[0].Rows[0]["mutiert_am"].ToString() + Environment.NewLine + Environment.NewLine + db.dsdaten.Tables[0].Rows[0]["betreff"].ToString() + Environment.NewLine + Environment.NewLine + db.dsdaten.Tables[0].Rows[0]["Notizgrund"].ToString(); System.Drawing.Font tf = new System.Drawing.Font(t.Style.Font.FontFamily, 10, FontStyle.Bold); t.Style.TextAlignment = ContentAlignment.MiddleLeft; t.Style.BackColor = Color.FromArgb(255, 102, 0); t.Style.Font = tf; e.ToolTipInfo.Items.Add(t); db = null; } catch { } db = null; } //var record1 = sfDataGrid1.View.Records.GetItemAt(e.RowIndex); break; } } private void DateDokumentDatum_DropDownOpening(object sender, CancelEventArgs e) { DateDokumentDatum.MonthCalendar.FirstDayOfWeek=DayOfWeek.Monday; } private void sfDataGridEmpfaenger_DrawCell(object sender, Syncfusion.WinForms.DataGrid.Events.DrawCellEventArgs e) { var selectedItem = e.DataRow; var dataRow = (e.DataRow.RowData as DataRowView).Row; if (e.Column.MappingName == "BLKUNDE") { if (dataRow["blkunde"].ToString() == "1") { e.Style.BackColor = Color.FromArgb(250, 141, 118); } } if (e.Column.MappingName == "Kurzbezeichnung") { if (dataRow["kurzbezeichnung"].ToString().Contains("SALDIERT:")) { e.Style.BackColor = Color.FromArgb(250, 141, 118); } } } private void btnblexport_Click(object sender, EventArgs e) { folderBrowserDialog1.ShowNewFolderButton = true; folderBrowserDialog1.SelectedPath=AppParams.tempdir; if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { DB db = new DB(AppParams.connectionstring); FileHelper fh = new FileHelper(); DataView dv = new DataView(sb.dsempfaenger.Tables[0]); foreach (DataRowView rowView in dv) { System.Data.DataRow dr = rowView.Row; if (dr["blkunde"].ToString() == "1") { db.Get_Tabledata("Select dbo.BinaryToBase64(dokument) from edex_sb_serienbrief_dokument where dokumentid='" + dr["Dokumentid"].ToString() + "'", false, true); string filename = dr[0].ToString() + "_" + dr["dokumentid"].ToString() + ".pdf"; fh.SaveBase64ToFile(db.dsdaten.Tables[0].Rows[0][0].ToString(),folderBrowserDialog1.SelectedPath+@"\"+filename ); } } db = null; fh = null; } } private bool check_versandstrasse() { bool result = false; DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select * from dokumenttyp where dokumenttypnr=" + sb.dokumenttypnr.ToString(), false, true); if (Convert.ToBoolean(db.dsdaten.Tables[0].Rows[0]["Versandstrasse_moeglich"]) == true) { result = true; } db = null; return result; } private void ribbonButtonVersandstrasse_Click(object sender, EventArgs e) { Listversandpakete = new List(); Versandpaket vp = new Versandpaket(); vp.Dokument = new List(); vp.isSerienbrief = true; vp.sb = sb; vp.partnernr = 0; vp.Versandoption = "B1"; vp.Mitteilung = ""; vp.GAS = ""; vp.GASAdresse = ""; vp.PaketNr = "0"; DataView dv = new DataView(sb.dsempfaenger.Tables[0]); DB db = new DB(AppParams.connectionstring); init_progressbar("Dokumente vorbereiten", dv.Count); dv.RowFilter = "Status = 1"; dv.Sort = "Partnernr"; foreach (DataRowView rowView in dv) { add_progress(); OnBaseDocUpload.OnBaseDokument onbasedoc = new OnBaseDocUpload.OnBaseDokument(); System.Data.DataRow dr = rowView.Row; db.Get_Tabledata("Select dokumentid, dbo.BinaryToBase64(dokument) as dokument from edex_sb_serienbrief_dokument where dokumentid='" + dr["dokumentid"].ToString() + "' order by inteintragnr", false, true); string dokument = db.dsdaten.Tables[0].Rows[0]["dokument"].ToString(); db.Get_Tabledata("Select bkpar00 from partner where nrpar00=" + dr["partnernr"].ToString(), false, true); Versanddokument vd = new Versanddokument("", "", ""); vd.Partnernr = dr["Partnernr"].ToString(); vd.inteintragnr = Convert.ToInt32(dr["inteintragnr"].ToString()); vd.Bezeichnung = dr["Partnernr"].ToString() + " - " + db.dsdaten.Tables[0].Rows[0][0].ToString(); vd.DokumentID = dr["dokumentid"].ToString(); vd.dokument = dokument; vp.Dokument.Add(vd); add_progress(); } db = null; finish_progress(); versandpakete.Add(vp); OnDoc.Versandstrasse.Versandstrasse vs = new OnDoc.Versandstrasse.Versandstrasse(versandpakete); vs.ShowDialog(); } } }