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.

1501 lines
61 KiB

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.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 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;
namespace OnDoc.UIControls
{
public partial class Serienbrief : SfForm
{
//private int dokumenttypnr = 0;
private int officevorlagenr = 0;
private int profilnr = 0;
private serienbrief sb = new serienbrief();
private int serienbriefnr = 0;
private DOCGEN.DocGen dg = null;
private DOCGEN.DocGet dget = null;
//private DataSet dsempfaenger = new DataSet();
private int selectedsbnr = 0;
public Serienbrief()
{
InitializeComponent();
this.Style.TitleBar.BackColor = Theaming.Titelbar();
this.Style.TitleBar.ForeColor = Theaming.TitelFontColor();
}
public Serienbrief(int profilnr)
{
InitializeComponent();
this.Style.TitleBar.BackColor = Theaming.Titelbar();
this.Style.TitleBar.ForeColor = Theaming.TitelFontColor();
this.profilnr = profilnr;
}
private void Serienbrief_Load(object sender, EventArgs e)
{
Refresh_Lists();
Refresh_Team();
}
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.CurrentMitarbieter;
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.CurrentMitarbieter;
}
private void Refresh_Team()
{
DB dbteam = new DB(AppParams.connectionstring);
dbteam.clear_parameter();
dbteam.add_parameter("@profilnr", profilnr.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 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<string>();
sheets = reader.Get_ExcelSheets(openFileDialog1.FileName);
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]; }
reader.Excel_To_Datatabable(openFileDialog1.FileName, selected_sheetname, true, ref importdata);
init_progressbar("Daten importieren", importdata.Rows.Count);
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.ToUpper() != "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);
//sb.dsempfaenger.Tables[0].Rows.Clear();
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 { r1[col.ColumnName] = ""; }
}
r1["STATUS"] = 0;
r1["FEHLERCODE"] = 0;
try
{
r1["inteingragnr"] = string.Empty;
}
catch { }
dB.Get_Tabledata("Select bkpar00 from partner where nrpar00=" + r1[0].ToString(), false, true);
if (dB.dsdaten.Tables[0].Rows.Count < 1) r1["Fehlercode"] = 1; else r1["fehlercode"] = 0;
r1[1] = dB.dsdaten.Tables[0].Rows[0][0].ToString();
sb.dsempfaenger.Tables[0].Rows.Add(r1);
}
dB = null;
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()
{
//sfDataGridEmpfaenger.Columns["STATUS"].Visible = false;
//sfDataGridEmpfaenger.Columns["FEHLERCODE"].Visible = false;
//sfDataGridEmpfaenger.Columns["BLKUNDE"].Visible = false;
//sfDataGridEmpfaenger.Columns["DOKUMENT_GEDRUCKT"].Visible = false;
//sfDataGridEmpfaenger.Columns["DOKUMENTID"].Visible = false;
//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;
}
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=" + 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 + @"\tmpsb.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.AcceptChanges();
refresh_empfaenger(sb.dsempfaenger.Tables[0]);
System.IO.File.Delete(filename);
}
private void RibbonButtonNew_Click(object sender, EventArgs e)
{
OnDoc.DocMgmt.DokTypSelect DokTypSelect = new OnDoc.DocMgmt.DokTypSelect();
DokTypSelect.vorlagentype = 1;
DokTypSelect.ShowDialog(this);
if (DokTypSelect.DialogResult == DialogResult.OK)
{
this.sb = null;
this.sb = new serienbrief();
sb.dokumenttypnr = DokTypSelect.dokumenttypnr;
update_serienbrief_details(true, sb.dokumenttypnr, 0);
init_empfaenger(0);
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";
update_serienbriefdaten(false);
}
else
{
this.GrpDokumentInhalt.Enabled = false;
return;
}
}
private void vorlage_auslesen_und_speichern()
{
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 = dB.get_vorlage_to_file(sb.officevorlagenr.ToString(), AppParams.tempdir, sb.serienbriefnr.ToString() + "." + Apptype);
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
{
sb.dsempfaenger.Tables[0].Columns.Add(db.dsdaten.Tables[0].Rows[i][0].ToString());
sb.dsempfaenger.Tables[0].Rows[0][db.dsdaten.Tables[0].Rows[i][0].ToString()] = "";
sb.dsempfaenger.Tables[1].Columns.Add(db.dsdaten.Tables[0].Rows[i][0].ToString());
try
{
if (Convert.ToBoolean(db.dsdaten.Tables[0].Rows[i][1]) == true)
{
sb.dsempfaenger.Tables[1].Rows[0][db.dsdaten.Tables[0].Rows[i][0].ToString()] = 1;
}
else
{
sb.dsempfaenger.Tables[1].Rows[0][db.dsdaten.Tables[0].Rows[i][0].ToString()] = 0;
}
}
catch
{
sb.dsempfaenger.Tables[1].Rows[0][db.dsdaten.Tables[0].Rows[i][0].ToString()] = 0;
}
s = s + "- " + db.dsdaten.Tables[0].Rows[i][0].ToString() + 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 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]);
}
}
private void update_serienbriefdaten(bool newsb)
{
sb.bezeichnung = this.txtbezeichnung.Text;
sb.verantwortlich = Convert.ToInt32(this.cbboxverantwortlich.SelectedValue.ToString());
if (newsb) { sb.erstellt_am = DateTime.Now; }
sb.aktiv = true;
sb.mutiert_am = DateTime.Now;
sb.mutierer = AppParams.CurrentMitarbieter;
sb.verantwortlich = AppParams.CurrentMitarbieter;
if (rbzustaendigkube.Checked) { sb.zustaendig = -1; } else { 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; }
try { sb.team = Convert.ToInt32(cbboxteam.SelectedValue.ToString()); } catch { sb.team = 0; }
sb.archivdatum = Convert.ToDateTime(DateDokumentDatum.Value);
sb.dokumentdatum = Convert.ToDateTime(DateDokumentDatum.Value);
DB db = new DB(AppParams.connectionstring);
sb.serienbriefnr = db.Save_Serienbrief(sb, AppParams.tempdir);
db.save_sb_vorlage_to_db(sb.filename, "", sb.serienbriefnr);
}
private void update_zahlen()
{
try
{
int inbearbeitung = 0;
int fehlerhaft = 0;
int generiert = 0;
int abgeschlossen = 0;
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();
RibbonButtonGenerateSB.Enabled = false;
RibbonButtonArchivierenUndAbschlessen.Enabled = false;
ribbonButtonDruckstapel.Enabled = false;
if (inbearbeitung > 0) { RibbonButtonGenerateSB.Enabled = true; }
if (fehlerhaft == 0 && inbearbeitung == 0 && generiert > 0)
{
RibbonButtonArchivierenUndAbschlessen.Enabled = true;
ribbonButtonDruckstapel.Enabled = true;
}
enable_disable(true);
if (generiert > 0 || abgeschlossen > 0)
{
enable_disable(false);
}
}
catch { }
}
private void enable_disable(bool enabled)
{
groupBox5.Enabled = enabled;
groupBox6.Enabled = enabled;
groupBox7.Enabled = enabled;
groupBox8.Enabled = enabled;
ribbonButton1.Enabled = enabled;
}
private void Set_Functions(int type)
{
if (type == 1 || type == 2)
{
sfDataGridEmpfaenger.AllowEditing = true;
ctxmenuEmpfaenger.Enabled = true;
partnerHinzufügenToolStripMenuItem.Visible = true;
partnerLöschenToolStripMenuItem.Visible = true;
erneutGenerierenToolStripMenuItem.Visible = false;
docPreview1.Visible = false;
}
if (type == 3 || type == 4)
{
partnerHinzufügenToolStripMenuItem.Visible = false;
partnerLöschenToolStripMenuItem.Visible = false;
sfDataGridEmpfaenger.AllowEditing = false;
erneutGenerierenToolStripMenuItem.Visible = true;
docPreview1.clear_viewer();
docPreview1.Visible = true;
//ctxmenuEmpfaenger.Enabled = false;
}
}
private void treeViewAdv1_AfterSelect(object sender, EventArgs e)
{
update_grid();
}
private void update_grid()
{
string nodetext = treeViewAdv1.SelectedNode.Text;
DataView dv = new DataView(sb.dsempfaenger.Tables[0]);
switch (nodetext.Substring(0, 5))
{
case "In Be":
dv.RowFilter = "Status = 0";
sfDataGridEmpfaenger.DataSource = null;
sfDataGridEmpfaenger.DataSource = dv;
refresh_spalten();
Set_Functions(1);
break;
case "Fehle":
dv.RowFilter = "Status=-1";
sfDataGridEmpfaenger.DataSource = null;
sfDataGridEmpfaenger.DataSource = dv;
refresh_spalten();
Set_Functions(2);
break;
case "Gener":
dv.RowFilter = "Status = 1";
sfDataGridEmpfaenger.DataSource = null;
sfDataGridEmpfaenger.DataSource = dv;
refresh_spalten(); Set_Functions(3);
break;
case "Abges":
dv.RowFilter = "Status = 2";
sfDataGridEmpfaenger.DataSource = null;
sfDataGridEmpfaenger.DataSource = dv;
refresh_spalten();
Set_Functions(4);
break;
}
}
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.CurrentMitarbieter.ToString());
db.Get_Tabledata("dbo.sp_edex_sb_get_serienbriefe", true, false);
sfdatagridsbload.DataSource = null;
sfdatagridsbload.DataSource = db.dsdaten.Tables[0];
btnsbloadok.Left = pnlLoad.Width - btnsbloadok.Width - 20;
if (sfdatagridsbload.RowCount == 0) this.btnsbloadok.Enabled = false;
// vorlage_auslesen_und_speichern();
System.Windows.Forms.Application.DoEvents();
ribbonbuttonsave.Enabled = true;
RibbonButtonExcelImport.Enabled = true;
RibbonButtonEditWord.Enabled = true;
grpDruckstapel.Visible = false;
docPreview1.Visible = false;
}
private void bntsbloadok_Click(object sender, EventArgs e)
{
DB db = new DB(AppParams.connectionstring);
sb = new serienbrief();
sb.dsempfaenger = new DataSet();
sb.serienbriefnr = selectedsbnr;
sb = db.Load_Serienbrief(sb, AppParams.tempdir);
sb.filename = db.get_sb_vorlage(sb.serienbriefnr, AppParams.tempdir);
pnlLoad.Visible = false;
update_screen();
refresh_empfaenger(sb.dsempfaenger.Tables[0]);
GrpEmpfaenger.Visible = true;
GrpDokumentInhalt.Visible = true;
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;
DateDokumentDatum.Value = sb.archivdatum;
if (sb.zustaendig == -1)
{
rbzustaendigkube.Checked = true; rbzustaendigmitarbeiter.Checked = false;
}
else
{
rbzustaendigkube.Checked = false;
rbzustaendigmitarbeiter.Checked = true;
cbboxzustaendigmitarbeiter.SelectedValue = sb.zustaendig;
}
update_zahlen();
GrpDokumentInhalt.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)
{
var selectedItem = e.DataRow;
var dataRow = (e.DataRow.RowData as DataRowView).Row;
selectedsbnr = Convert.ToInt32(dataRow["serienbriefnr"].ToString());
}
private void ribbonButton1_Click(object sender, EventArgs e)
{
SerienbriefBearbeitung sbedit = new SerienbriefBearbeitung(this.sb);
sbedit.Show();
}
private void ribbonbuttonaddpartner_Click(object sender, EventArgs e)
{
Partnersuche ps = new Partnersuche();
ps.ShowDialog();
if (ps.DialogResult == DialogResult.OK)
{
DB db = new DB(AppParams.connectionstring);
db.Get_Tabledata("Select bkpar00 from partner where nrpar00=" + ps.partnernr.ToString(), 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(ps.partnernr.ToString());
dr["kurzbezeichnung"] = db.dsdaten.Tables[0].Rows[0][0].ToString();
dr["STATUS"] = 0;
dr["FEHLERCODE"] = 0;
sb.dsempfaenger.Tables[0].Rows.Add(dr);
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 void Partnerliste_Pruefen()
{
DB db = new DB(AppParams.connectionstring);
db.create_sb_check_table(AppParams.CurrentMitarbieter);
db.save_sb_checkdata(AppParams.CurrentMitarbieter, sb);
System.Data.DataTable dt = new System.Data.DataTable();
dt = db.Check_sb_Data(AppParams.CurrentMitarbieter, sb);
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() + "'");
if (dr.Length == 0)
{
dr = sb.dsempfaenger.Tables[0].Select("Partnernr=''");
}
foreach (var dr1 in dr)
{
dr1["Status"] = dt.Rows[i]["status"];
try
{
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; };
}
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); }
}
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"] = 1; }
}
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;
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)
{
ribbonbuttonsave_Click(sender, e);
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);
string fn = dB.get_sb_vorlage(sb.serienbriefnr, AppParams.tempdir);
sb.VorlageBase64 = dB.dsdaten.Tables[0].Rows[0][0].ToString();
sb.DocValues = new List<clsDocValue>();
vorlagendaten_aufbereiten();
update_serienbriefdaten(false);
update_zahlen();
treeViewAdv1.SelectedNode = treeViewAdv1.Nodes[2];
update_grid();
}
private void vorlagendaten_aufbereiten()
{
init_progressbar("Dokumente generieren", vorlagendaten.Rows.Count);
for (int i = 0, loopTo = vorlagendaten.Rows.Count - 1; i <= loopTo; i++)
{
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;
}
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;
}
}
// 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 { }
}
string pdfdoc = dget.Convert_Word_To_PDF(dg.generate_serienbrief(sb.VorlageBase64, sb));
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";
//string filename = "SB_" + sb.serienbriefnr.ToString() + vorlagendaten.Rows[i]["intEintragnr"].ToString() + ".pdf";
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)
{
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();
dt.Columns.Add(colname);
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;
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();
docPreview1.Show_Serienbrief_Dokument(sb.serienbriefnr, Convert.ToInt32(inteintragnr));
}
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();
DB db = new DB(AppParams.connectionstring);
int stapelgroesse = 100;
int stapel = 1;
int i = 0;
int anzahl_stapel = (dv.Count / 100) + 1;
Stream[] streams = null;
if (dv.Count > stapelgroesse) { streams = new Stream[stapelgroesse]; } else streams = new Stream[dv.Count];
init_progressbar("Druckstapel generieren", dv.Count);
foreach (DataRowView rowView in dv)
{
add_progress();
System.Data.DataRow dr = rowView.Row;
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;
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].Dispose();
}
streams = 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.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();
var Attribute = new List<Model.OnBaseDocUpload.attribute>();
foreach (System.Data.DataRow rw in db.dsdaten.Tables[1].Rows)
{
var p = new OnBaseDocUpload.attribute()
{
fieldname = rw["fieldname"].ToString(),
fieldvalue = rw["fieldvalue"].ToString()
};
Attribute.Add(p);
}
onbasedoc.attributes = Attribute;
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();
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.dsempfaenger.AcceptChanges();
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]);
}
}
}