updaet 20241101

This commit is contained in:
Stefan Hutter
2024-11-01 17:22:30 +01:00
parent 4b85e91ed9
commit 0ddc71c2b3
68 changed files with 1218 additions and 423 deletions

View File

@@ -13,12 +13,14 @@ 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.Klassen;
using OnDoc.UIControls.Administrator;
using Syncfusion.Windows.Forms.Tools;
using Syncfusion.Windows.Forms.Tools.Renderers;
using Syncfusion.WinForms.Controls;
using Syncfusion.WinForms.DataGrid;
using Syncfusion.WinForms.DataGrid.Interactivity;
@@ -33,8 +35,8 @@ namespace OnDoc.UIControls
private int profilnr = 0;
private serienbrief sb = new serienbrief();
private int serienbriefnr = 0;
//private DataSet dsempfaenger = new DataSet();
//private DataSet dsempfaenger = new DataSet();
private int selectedsbnr = 0;
public Serienbrief()
{
@@ -95,6 +97,7 @@ namespace OnDoc.UIControls
cbboxteam.DataSource = dbteam.dsdaten.Tables[0];
cbboxteam.ValueMember = "teamnr";
cbboxteam.DisplayMember = "bezeichnung";
this.cbboxteam.SelectedIndex = 0;
}
private void RibbonButtonExit_Click(object sender, EventArgs e)
{
@@ -103,7 +106,7 @@ namespace OnDoc.UIControls
private void RibbonButtonExcelImport_Click(object sender, EventArgs e)
{
DataTable importdata = new DataTable();
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)
@@ -152,10 +155,10 @@ namespace OnDoc.UIControls
catch { r1[col.ColumnName] = ""; }
}
r1["Status"] = 0;
r1["Error"] = 0;
r1["STATUS"] = 0;
r1["FEHLERCODE"] = 0;
dB.Get_Tabledata("Select bkpar00 from partner where nrpar00=" + r1[0].ToString(), false, true);
if (dB.dsdaten.Tables[0].Rows.Count < 1) r1["Error"] = 1; else r1["Error"] = 0;
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);
}
@@ -165,7 +168,7 @@ namespace OnDoc.UIControls
}
}
private void refresh_empfaenger(DataTable dt)
private void refresh_empfaenger(System.Data.DataTable dt)
{
sfDataGridEmpfaenger.DataSource = null;
sfDataGridEmpfaenger.DataSource = dt;
@@ -178,10 +181,8 @@ namespace OnDoc.UIControls
//sfDataGridEmpfaenger.Columns["ERSTELLER"].Visible = false;
//sfDataGridEmpfaenger.Columns["DRUCKJOBID"].Visible = false;
//sfDataGridEmpfaenger.Columns["AKTIV"].Visible = false;
//sfDataGridEmpfaenger.Columns["Status"].Visible = false;
//sfDataGridEmpfaenger.Columns["Error"].Visible = false;
update_zahlen();
}
}
private void init_empfaenger(int serienbriefnr)
{
Database.DB db = new DB(AppParams.connectionstring);
@@ -198,11 +199,7 @@ namespace OnDoc.UIControls
sb.dsempfaenger = new DataSet();
sb.dsempfaenger.Tables.Clear();
sb.dsempfaenger.ReadXml(filename);
sb.dsempfaenger.Tables[0].Columns.Add("Status");
sb.dsempfaenger.Tables[0].Rows[0]["Status"] = "0";
sb.dsempfaenger.Tables[0].Columns.Add("Error");
sb.dsempfaenger.Tables[0].Rows[0]["Error"] = "0";
sb.dsempfaenger.AcceptChanges();
refresh_empfaenger(sb.dsempfaenger.Tables[0]);
System.IO.File.Delete(filename);
@@ -210,7 +207,7 @@ namespace OnDoc.UIControls
private void RibbonButtonNew_Click(object sender, EventArgs e)
{
OnDoc.DocMgmt.DokTypSelect DokTypSelect = new OnDoc.DocMgmt.DokTypSelect();
DokTypSelect.vorlagentype = 1;
DokTypSelect.ShowDialog(this);
@@ -219,15 +216,21 @@ namespace OnDoc.UIControls
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
{
@@ -242,9 +245,9 @@ namespace OnDoc.UIControls
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);
}
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);
@@ -267,7 +270,7 @@ namespace OnDoc.UIControls
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)
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;
}
@@ -283,10 +286,10 @@ namespace OnDoc.UIControls
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); }
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)
//{
@@ -310,27 +313,27 @@ namespace OnDoc.UIControls
if (newsb)
{
db.Get_Tabledata("Select bezeichnung,office_vorlagenr from dokumenttyp where dokumenttypnr=" + sb.dokumenttypnr.ToString(), false, true);
sb.bezeichnung= db.dsdaten.Tables[0].Rows[0][0].ToString();
sb.bezeichnung = db.dsdaten.Tables[0].Rows[0][0].ToString();
sb.officevorlagenr = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][1]);
}
}
private void update_serienbriefdaten(bool newsb)
{
sb.bezeichnung=this.txtbezeichnung.Text;
sb.verantwortlich=Convert.ToInt32(this.cbboxverantwortlich.SelectedValue.ToString());
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;
try {sb.postzustellung = Convert.ToInt32(cbboxpostzustellung.SelectedValue.ToString());} catch { sb.postzustellung = 0; }
sb.verantwortlich = AppParams.CurrentMitarbieter;
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.unterschriftrechts = Convert.ToInt32(cbboxunterschriftrechts.SelectedValue.ToString()); } catch { sb.unterschriftrechts = 0; }
try { sb.team = Convert.ToInt32(cbboxteam.SelectedValue.ToString()); } catch { sb.team = 0; }
DB db = new DB(AppParams.connectionstring);
sb.serienbriefnr=db.Save_Serienbrief(sb,AppParams.tempdir);
sb.serienbriefnr = db.Save_Serienbrief(sb, AppParams.tempdir);
db.save_sb_vorlage_to_db(sb.filename, "", sb.serienbriefnr);
}
@@ -338,22 +341,25 @@ namespace OnDoc.UIControls
private void treeViewAdv1_NodeMouseClick(object sender, TreeViewAdvMouseClickEventArgs e)
{
}
private void update_zahlen()
{
try
{
sb.dsempfaenger.AcceptChanges();
DataView dv = new DataView(sb.dsempfaenger.Tables[0]);
dv.RowFilter = "Status = 0";
dv.RowFilter = "Status = 0";
treeViewAdv1.Nodes[0].Text = "In Bearbeitung (" + dv.Count.ToString() + ")";
dv.RowFilter = "Error <> 0";
dv.RowFilter = "Status =-1";
treeViewAdv1.Nodes[1].Text = "Fehlerhaft (" + dv.Count.ToString() + ")";
dv.RowFilter = "Status = 1";
if (dv.Count > 0) treeViewAdv1.Nodes[1].TextColor = Color.Red; else treeViewAdv1.Nodes[1].TextColor= Color.Black;
dv.RowFilter = "Status = 1";
treeViewAdv1.Nodes[2].Text = "Generiert (" + dv.Count.ToString() + ")";
dv.RowFilter = "Status = 2";
dv.RowFilter = "Status = 2";
treeViewAdv1.Nodes[3].Text = "Abgeschlossen (" + dv.Count.ToString() + ")";
treeViewAdv1.SelectedNode = treeViewAdv1.Nodes[0];
}
catch { }
@@ -369,22 +375,22 @@ namespace OnDoc.UIControls
switch (nodetext.Substring(0, 5))
{
case "In Be":
dv.RowFilter = "Status = 0";
dv.RowFilter = "Status = 0";
sfDataGridEmpfaenger.DataSource = null;
sfDataGridEmpfaenger.DataSource = dv;
break;
case "Fehle":
dv.RowFilter = "Error <> 0";
dv.RowFilter = "Status=-1";
sfDataGridEmpfaenger.DataSource = null;
sfDataGridEmpfaenger.DataSource = dv;
break;
case "Gener":
dv.RowFilter = "Status = 1";
dv.RowFilter = "Status = 1";
sfDataGridEmpfaenger.DataSource = null;
sfDataGridEmpfaenger.DataSource = dv;
break;
case "Abges":
dv.RowFilter = "Status = 2";
dv.RowFilter = "Status = 2";
sfDataGridEmpfaenger.DataSource = null;
sfDataGridEmpfaenger.DataSource = dv;
break;
@@ -399,16 +405,20 @@ namespace OnDoc.UIControls
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.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];
this.pnlLoad.Left = this.Left;
this.pnlLoad.Width = this.Width;
Application.DoEvents();
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)
@@ -417,18 +427,22 @@ namespace OnDoc.UIControls
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);
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() {
private void update_screen()
{
txtbezeichnung.Text = sb.bezeichnung;
cbboxpostzustellung.SelectedValue = sb.postzustellung;
cbboxunterschriftlinks.SelectedValue = sb.unterschriftlinks;
cbboxunterschriftrechts.SelectedValue=sb.unterschriftrechts;
cbboxunterschriftrechts.SelectedValue = sb.unterschriftrechts;
cbboxverantwortlich.SelectedValue = sb.verantwortlich;
update_zahlen();
GrpDokumentInhalt.Enabled = true;
@@ -438,21 +452,166 @@ namespace OnDoc.UIControls
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());
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 = "";
bool bldossier = false;
System.Data.DataRow[] dr;
for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++)
{
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(); }
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++)
{
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;
}
}
}
}
}
private void ribbonButton2_Click(object sender, EventArgs e)
{
Partnerliste_Pruefen();
treeViewAdv1_AfterSelect(sender, e);
}
}
}