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.

312 lines
12 KiB

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OnDoc.Klassen;
using OnDoc.UIControls;
using Model;
using Database;
using Syncfusion.Windows.Forms;
using Syncfusion.Windows.Forms.Tools;
using Syncfusion.WinForms.Controls;
using Syncfusion.WinForms.DataGrid;
using Syncfusion.WinForms.DataGrid.Interactivity;
using Syncfusion.WinForms.ListView.Enums;
using Syncfusion.WinForms.ListView.Events;
namespace OnDoc.DocMgmt
{
public partial class Dokumentpaket : SfForm
{
private List<UCAllgemeineDokumentParam> doclist = new List<UCAllgemeineDokumentParam>();
private DataTable dokumentpaket = new DataTable();
private DataTable dokumentpaketvorlagen = new DataTable();
private DataTable dokumentpaketvorlagen_Original = new DataTable();
private int profilnr {get;set;}
public int dokumentpaketnr { get; set; } = 0;
public Dokumentpaket()
{
InitializeComponent();
this.Style.TitleBar.BackColor = Theaming.Titelbar();
this.Style.TitleBar.ForeColor = Theaming.TitelFontColor();
}
public Dokumentpaket(int profilnr)
{
InitializeComponent();
this.Style.TitleBar.BackColor = Theaming.Titelbar();
this.Style.TitleBar.ForeColor = Theaming.TitelFontColor();
this.profilnr = profilnr;
}
private void NeuesDokumentpaket()
{
DokTypSelect dt = new DokTypSelect();
dt.vorlagentype = 2;
dt.ShowDialog();
if (dt.DialogResult == DialogResult.OK) { dokumentpaketnr = Convert.ToInt32(dt.dokumenttypnr); }
}
private void Dokumentpaket_Load(object sender, EventArgs e)
{
this.BeginUpdate();
if (dokumentpaketnr == 0)
{
NeuesDokumentpaket();
}
Update_PaketDetails();
}
private void Update_PaketDetails() {
Cursor = Cursors.WaitCursor;
DB db = new DB(AppParams.connectionstring);
db.Get_Tabledata("Select * from edex_dokumentpaket where dokumentpaketnr="+dokumentpaketnr.ToString(), false, true);
dokumentpaket = db.dsdaten.Tables[0].Copy();
string sql = "SELECT dbo.edex_dokumentpaket.dokumentpaketnr, dbo.edex_dokumentpaket.bezeichnung, dbo.dokumenttyp.dokumenttypnr, ";
sql = sql + "dbo.dokumenttyp.bezeichnung AS dokumenttypbezeichnung, dbo.edex_dokumentpaketvorlage.zwingend, ";
sql = sql + "dbo.edex_dokumentpaketvorlage.sort FROM dbo.edex_dokumentpaket INNER JOIN dbo.edex_dokumentpaketvorlage ON ";
sql = sql + "dbo.edex_dokumentpaket.dokumentpaketnr = dbo.edex_dokumentpaketvorlage.dokumentpaketnr INNER JOIN dbo.dokumenttyp ON ";
sql = sql + "dbo.edex_dokumentpaketvorlage.dokumenttypnr = dbo.dokumenttyp.dokumenttypnr ";
sql = sql + " WHERE edex_dokumentpaket.dokumentpaketnr="+dokumentpaketnr.ToString()+" and (dbo.edex_dokumentpaket.aktiv = 1) AND ";
sql = sql + " dbo.edex_dokumentpaketvorlage.aktiv = 1 ORDER BY dbo.edex_dokumentpaketvorlage.sort";
db.Get_Tabledata(sql,false,true);
dokumentpaketvorlagen=db.dsdaten.Tables[0].Copy();
dokumentpaketvorlagen_Original = db.dsdaten.Tables[0].Copy();
sfListView1.DataSource = dokumentpaketvorlagen;
sfListView1.DisplayMember = "dokumenttypbezeichnung";
sfListView1.ValueMember = "dokumentpaketvorlagenr";
sfListView1.ShowCheckBoxes = true;
sfListView1.AllowTriStateMode = false;
sfListView1.CheckedMember = "zwingend";
TabControlDokuments.TabPages.Clear();
foreach(System.Data.DataRow r in dokumentpaketvorlagen.Rows)
{
if (Convert.ToInt32(r[4]) == 1) { add_uc(r); }
}
Config_Doklist();
Cursor = Cursors.Default;
try
{
this.Text = "Dokumentpaket " + dokumentpaket.Rows[0]["bezeichnung"].ToString();
}
catch { }
if (this.dokumentpaketnr == 0)
{
this.RibbonButtonGenerieren.Enabled = false;
this.groupBox1.Enabled = false;
this.groupBox2.Enabled=false;
this.groupBox3.Enabled=false;
}
this.EndUpdate();
}
private void Config_Doklist()
{
dokList1.profilnr = this.profilnr;
dokList1.hide_panels();
}
private void tsbtnPartnerSearch_Click(object sender, EventArgs e)
{
}
private void tsbtnPartnerSuche_Click(object sender, EventArgs e)
{
}
private void btnSearchBP_Click(object sender, EventArgs e)
{
UCAllgemeineDokumentParam newdoc = new UCAllgemeineDokumentParam();
doclist.Add(newdoc);
Refresh_DocTab();
}
private void add_uc(System.Data.DataRow r)
{
UCAllgemeineDokumentParam newdoc = new UCAllgemeineDokumentParam();
newdoc.profilnr = profilnr;
newdoc.Dock= DockStyle.Fill;
newdoc.checkpartner = false;
newdoc.dokumenttypnr = Convert.ToInt32(r[2]);
if (txtbpnummer.Text !="") { newdoc.partnernr = Convert.ToInt32(txtbpnummer.Text); }
newdoc.Refresh_Details();
TabPageAdv tabPage = new TabPageAdv(r[3].ToString());
tabPage.Controls.Add(newdoc);
TabControlDokuments.TabPages.Add(tabPage);
}
private void remove_uc(System.Data.DataRow r)
{
foreach (TabPageAdv tab in TabControlDokuments.TabPages)
{
if (tab.Text == r[3].ToString()) { TabControlDokuments.TabPages.Remove(tab); return; }
}
}
private void Refresh_DocTab()
{
TabControlDokuments.TabPages.Clear();
foreach (UCAllgemeineDokumentParam uc in doclist)
{
TabPageAdv tabPage = new TabPageAdv("gummi");
tabPage.Controls.Add(uc);
TabControlDokuments.TabPages.Add(tabPage);
}
}
private void sfListView1_ItemChecked(object sender, Syncfusion.WinForms.ListView.Events.ItemCheckedEventArgs e)
{
var dataRow = (e.ItemData as DataRowView).Row;
int vorlagenr = Convert.ToInt32(dataRow[2]);
int zwingend = Convert.ToInt32(dataRow[4]);
foreach (System.Data.DataRow r in dokumentpaketvorlagen_Original.Rows)
{
if (Convert.ToInt32(r[2]) == vorlagenr)
{
if (Convert.ToInt32(r[4])==1 && Convert.ToInt32(r[4]) != zwingend)
{
MessageBox.Show("Zwingende Dokumentte können nicht abgewählt werden");
dataRow[4] = 1;
return;
}
}
}
if (Convert.ToInt32(dataRow[4]) == 1)
{
foreach (System.Data.DataRow r in dokumentpaketvorlagen_Original.Rows)
{
if (Convert.ToInt32(r[2]) == vorlagenr)
{
add_uc(r);
}
}
}
else
{
foreach (System.Data.DataRow r in dokumentpaketvorlagen_Original.Rows)
{
if (Convert.ToInt32(r[2]) == vorlagenr)
{
remove_uc(r);
}
}
}
}
private void textBox1_Leave(object sender, EventArgs e)
{
try
{
foreach (TabPageAdv tab in TabControlDokuments.TabPages)
{
UCAllgemeineDokumentParam uc = (UCAllgemeineDokumentParam)tab.Controls[0];
uc.partnernr = Convert.ToInt32(txtbpnummer.Text);
uc.update_partner();
}
}catch { }
}
private void lblPaketDetails_Click(object sender, EventArgs e)
{
}
private void sfDataGrid1_Click(object sender, EventArgs e)
{
}
private void RibbonButtonExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void RibbonButtonGenerieren_Click(object sender, EventArgs e)
{
string filter = "dokumentid in ('";
progressBarAdv1.Minimum = 0;
progressBarAdv1.Maximum = TabControlDokuments.TabPages.Count;
progressBarAdv1.Value = 0;
progressBarAdv1.Visible = true;
foreach (TabPageAdv tab in TabControlDokuments.TabPages)
{
progressBarAdv1.Value = progressBarAdv1.Value+1;
Application.DoEvents();
UCAllgemeineDokumentParam uc = (UCAllgemeineDokumentParam)tab.Controls[0];
uc.partnernr = Convert.ToInt32(txtbpnummer.Text);
uc.Set_Edit_later();
uc.Update_DocGenData();
clsDocData dokdata = new clsDocData();
uc.update_dokdata(ref dokdata);
uc.update_partner();
DOCGEN.DocGen docgen = new DOCGEN.DocGen(AppParams.connectionstring);
string dokumentid = docgen.GenDocID(dokdata);
dokdata.Dokumentid = dokumentid;
filter = filter + dokumentid + "','";
dokumentid = dokdata.Dokumentid;
if (dokumentid != "")
{
DOCGEN.Generator.DocGenerator_from_EDOKA Generator = new DOCGEN.Generator.DocGenerator_from_EDOKA(AppParams.connectionstring, AppParams.tempdir);
clsdok dok = new clsdok("", "", "");
dok = Generator.Generate_Doc_EDOKA(dokumentid, ref dokdata);
if (uc.docgendata.erstellungsart == Erstellungsart.DokumentBearbeiten)
{
string filename = AppParams.tempdir + dokumentid + "." + dok.extension;
System.IO.File.WriteAllBytes(filename, Convert.FromBase64String(dok.dokument));
DB db = new DB(AppParams.connectionstring);
db.Save_To_DB(dokdata.Dokumentid, filename);
db = null;
System.Diagnostics.Process.Start("winword.exe", filename);
clsProcessWatch.AddToList(dokdata.Dokumentid, filename, "Word");
}
if (uc.docgendata.erstellungsart == Erstellungsart.DokumentAlsPDF)
{
//Generator.DocToPDF(dokumentid, ref dok);
dok.extension = "pdf";
string filename = AppParams.tempdir + dokumentid + "." + dok.extension;
System.IO.File.WriteAllBytes(filename, Convert.FromBase64String(dok.dokument));
DB db = new DB(AppParams.connectionstring);
db.Save_To_DB(dokdata.Dokumentid, filename);
}
if (uc.docgendata.erstellungsart == Erstellungsart.DokumentSpäterBearbeiten)
{
string filename = AppParams.tempdir + dokumentid + "." + dok.extension;
System.IO.File.WriteAllBytes(filename, Convert.FromBase64String(dok.dokument));
DB db = new DB(AppParams.connectionstring);
db.Save_To_DB(dokdata.Dokumentid, filename);
db = null;
}
}
}
progressBarAdv1.Visible = false;
filter = filter.Substring(0, filter.Length - 2) + ")";
dokList1.datafilter = filter;
dokList1.refresh_dokumente();
}
public void ribbonButtonNew_Click(object sender, EventArgs e)
{
NeuesDokumentpaket();
Update_PaketDetails();
}
}
}