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
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();
|
|
}
|
|
}
|
|
}
|