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.

566 lines
23 KiB

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OnDoc.Klassen;
using Syncfusion.WinForms.Controls;
using Syncfusion.WinForms.Controls.Styles;
using Database;
using Helper;
using System.Windows.Forms.VisualStyles;
using OnDoc.Helper;
using Syncfusion.Windows.Forms.Tools;
using Syncfusion.WinForms.Controls;
using Syncfusion.Windows.Forms;
using System.Security.Cryptography;
using Windows.UI.WebUI;
namespace OnDoc.UIControls.Administrator
{
public partial class Dokumenttyp : SfForm
{
DB db = new DB(AppParams.connectionstring);
private int dokumenttypnr = 0;
System.Data.DataRow Origin;
public Dokumenttyp()
{
InitializeComponent();
}
public Dokumenttyp(int dokumenttypnr)
{
InitializeComponent();
this.dokumenttypnr = dokumenttypnr;
}
System.Data.DataTable treedata = new System.Data.DataTable();
private void update_tree()
{
int count = txtFilter.Text.Trim().Count(f => f == ' ');
if (count > 0) { treedata.Rows.Clear(); }
TreeDokumenttyp.Nodes.Clear();
string sql = "";
sql = "Select dokumenttypnr as ID, Bezeichnung, Aktiv from dokumenttyp";
if (txtFilter.Text.Trim().Length > 0)
{
sql = sql + " where bezeichnung like '%" + txtFilter.Text.Replace(" ", "%") + "%'";
}
else
{
sql = sql + " where dokumenttypnr > 0";
}
if (chkboxaktive.Checked) { sql = sql + " and aktiv=1"; }
if (rbNr.Checked)
{
sql=sql+" order by id";
}
else
{
sql = sql + " order by bezeichnung";
}
db.Get_Tabledata(sql, false, true);
treedata = db.dsdaten.Tables[0].Copy();
try
{
foreach (DataRow r in treedata.Rows)
{
TreeNodeAdv nodeAdv = new TreeNodeAdv();
nodeAdv.Text = r["id"].ToString() + " " + r["Bezeichnung"].ToString();
nodeAdv.Tag = r["id"].ToString();
if (Convert.ToBoolean(r["aktiv"]) == false)
{
nodeAdv.Font = new System.Drawing.Font(nodeAdv.Font, FontStyle.Strikeout);
}
TreeDokumenttyp.Nodes.Add(nodeAdv);
}
}
catch { }
}
private void Dokumenttyp_Load(object sender, EventArgs e)
{
update_tree();
return;
}
private void Update_Details(int id) {
db.Get_Tabledata("Select office_vorlagenr, bezeichnung from office_vorlage", false, true);
cbboxofficevorlage.DataSource = db.dsdaten.Tables[0];
cbboxofficevorlage.DisplayMember = "Bezeichnung";
cbboxofficevorlage.ValueMember = "office_vorlagenr";
db.Get_Tabledata("select mitarbeiternr as id, name+' '+vorname+', '+tgnummer as MA from mitarbeiter where aktiv=1 order by name", false, true);
cbboxFachverantwortung.DataSource = db.dsdaten.Tables[0];
cbboxFachverantwortung.DisplayMember = "MA";
cbboxFachverantwortung.ValueMember = "id";
cbboxOwner.DataSource = db.dsdaten.Tables[0];
cbboxOwner.DisplayMember = "MA";
cbboxOwner.ValueMember = "id";
db.Get_Tabledata("Select * from [physischesarchiv] where aktiv=1", false, true);
cbboxarchiv.DataSource = db.dsdaten.Tables[0];
cbboxarchiv.DisplayMember = "Bezeichnung";
cbboxarchiv.ValueMember = "physischesarchivnr";
int erstellungstyp = 0;
db.Get_Tabledata("Select * from Dokumenttyp_BP_Person_Erstellung where dokumenttypnr=" + dokumenttypnr.ToString(), false, true);
if (db.dsdaten.Tables[0].Rows.Count != 0)
{
erstellungstyp = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]);
}
db.Get_Tabledata("Select * from dokumenttyp where dokumenttypnr = " + dokumenttypnr.ToString(), false, true);
DataRow r = db.dsdaten.Tables[0].Rows[0];
this.TxTBezeichnung.Text = r["bezeichnung"].ToString();
this.TxTBeschreibung.Text = r["beschreibung"].ToString();
this.cbaktiv.Checked = Convert.ToBoolean(r["aktiv"]);
this.cbboxofficevorlage.SelectedValue = r["office_vorlagenr"].ToString();
this.cbboxFachverantwortung.SelectedValue = r["fachverantwortung"].ToString();
this.cbboxOwner.SelectedValue = r["owner"].ToString();
this.cbVertrag.Checked = Convert.ToBoolean(r["vertrag"]) == true;
this.cbbezeichnungmutierbar.Checked = Convert.ToBoolean(r["bezeichnungmut"]) == true;
this.cbAnzeigeVorlagenauswahl.Checked = Convert.ToBoolean(r["AnzeigeZurDokumenterstellung"]) == true;
this.rbDokumenterstellungBP.Checked = erstellungstyp == 1;
this.rbDokumenterstellungPerson.Checked = erstellungstyp == 2;
if (rbDokumenterstellungPerson.Checked == false && rbDokumenterstellungBP.Checked == false)
{
rbDokumenterstellungBP.Checked = true;
}
this.cbUnterschriftlinks.Checked = Convert.ToBoolean(r["unterschrift_links"]) == true;
this.cbUnterschriftrechts.Checked = Convert.ToBoolean(r["unterschrift_rechts"]) == true;
this.cbDigitaleUnterschrift.Checked = Convert.ToBoolean(r["Unterschrift_Faksimile"]) == true;
this.cbFormularOhneUnterschrift.Checked = Convert.ToBoolean(r["Unterschrift_ohne"]) == true;
this.cbUnterschriftpruefung.Checked = Convert.ToBoolean(r["Unterschrift_Pruefung"]) == true;
this.lbUnterschriftStandard.SelectedIndex = Convert.ToInt32(r["unterschrift_standard"]);
this.cbboxarchiv.SelectedValue = Convert.ToInt32(r["physisches_archiv"]);
//this.cbbearbeitungzwingend.Checked = Convert.ToBoolean(r["bearbeitungzwingend"]) == true;
//switch (Convert.ToInt32(r["genresultat_type"]))
//{
// case 1:
// cbOfficeDokument.Checked = true;
// break;
// case 2:
// cbPDFDokument.Checked = true;
// break;
// case 3:
// cbPDFDirekteArchivierung.Checked = true;
// break;
// case 4:
// cbbearbeitungzwingend.Checked = true;
// break;
// default:
// cbOfficeDokument.Checked = true;
// break;
//}
try { chkbearbeitungdirekt.Checked = Convert.ToBoolean(r["BearbeitungDirket"]) == true; } catch { chkbearbeitungdirekt.Checked = false; }
try { chkinterop.Checked = Convert.ToBoolean(r["interop"]) == true; }catch { chkinterop.Checked = false; }
try { chkboxInOffice.Checked = Convert.ToBoolean(r["erstellungInOffice"]) == true; } catch { chkboxInOffice.Checked = false; };
try { cbbearbeitungzwingend.Checked = Convert.ToBoolean(r["bearbeitung_zwingend"]) == true; } catch { cbbearbeitungzwingend.Checked = false; }
r["physisches_archiv"] = cbboxarchiv.SelectedValue;
this.cbversandstrasse_moeglich.Checked = r["versandstrasse_moeglich"].ToString() == "True";
this.cbebanking_moeglich.Checked = r["ebanking_moeglich"].ToString() == "True";
db.Get_Tabledata("Select vorlagenfeldregelnr, bezeichnung from vorlagenfeldregel where aktiv=1 order by bezeichnung", false, true);
this.listBox1.DataSource = db.dsdaten.Tables[0];
this.listBox1.DisplayMember = "Bezeichnung";
this.listBox1.ValueMember = "vorlagenfeldregelnr";
if (r["CompatibilityMode"].ToString()=="") { cbboxcompatibilitymode.SelectedIndex = 0; } else { cbboxcompatibilitymode.Text = r["CompatibilityMode"].ToString(); }
try { chkfilloffice.Checked = Convert.ToBoolean(r["FillOffice"]) == true; } catch { chkfilloffice .Checked = false; }
//try
//{
// chkbearbeitungdirekt.Checked = Convert.ToBoolean(r["BearbeitungDirket"]) == true;
//}
//catch { chkbearbeitungdirekt.Checked = false; }
//try
//{
// chkinterop.Checked = Convert.ToBoolean(r["interop"]) == true;
//}
//catch { chkinterop.Checked = false; }
//try
//{
// chkboxInOffice.Checked = Convert.ToBoolean(r["erstellunginoffice"]) == true;
//}
//catch
//{ chkboxInOffice.Checked = false; }
Update_Vorlagenfelder();
}
private void Update_Vorlagenfelder() {
db.Get_Tabledata("Select * from View_Vorlagenfelder_Relaunch where doktypid=" + dokumenttypnr.ToString(), false, true);
this.sfDataGrid1.DataSource = db.dsdaten.Tables[0];
DataTable dt = db.dsdaten.Tables[0];
TableHelper.FormatTable(ref dt, "vorlagenfeld", ref this.sfDataGrid1);
sfDataGrid1.Columns["Feldregel"].AllowTextWrapping = false;
sfDataGrid1.Refresh();
}
private void groupBox3_Enter(object sender, EventArgs e)
{
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
}
private void sfDataGrid1_CellClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e)
{
string vorlagenfeldnr = "";
try
{
var selectedItem = e.DataRow;
var dataRow = (e.DataRow.RowData as DataRowView).Row;
Origin = (e.DataRow.RowData as DataRowView).Row;
vorlagenfeldnr = dataRow["id"].ToString();
Update_Vorlagenfeld(dataRow);
}
catch
{
vorlagenfeldnr = "0";
return;
}
}
private void Update_Vorlagenfeld(DataRow dr)
{
//Origin = dr;
lblID.Text = dr["ID"].ToString();
lblfeldregelid.Text = dr["Feldregelid"].ToString();
lblFeldregel.Text = dr["feldregel"].ToString();
txtfeldname.Text = dr["feldname"].ToString();
txtbookmarkstart.Text = dr["BTM"].ToString();
txtBookmarkEnd.Text = dr["ETM"].ToString();
txtessclass.Text = dr["essclass"].ToString();
lblessfieldname.Text = dr["ess_feldname"].ToString();
txtessimagetop.Text = dr["ess_img_top"].ToString();
txtessimageleft.Text = dr["ess_img_left"].ToString();
txtessimagewidth.Text = dr["ess_img_width"].ToString();
txtessimagewidth.Text = dr["ess_img_height"].ToString();
txtSort.Text = dr["reihenfolge"].ToString();
txtUIDescription.Text = dr["feldbezeichnung"].ToString();
txtTechbezeichnung.Text = dr["Techbezeichnung"].ToString();
if (Convert.ToBoolean(dr["ui"]) == true)
{
chkui.Checked = true;
txtSort.Enabled = true;
txtUIDescription.Enabled = true;
txtTechbezeichnung.Enabled = true;
chkzwingend.Enabled = true;
}
else
{
chkui.Checked = false;
chkui.Checked = false;
txtSort.Enabled = false;
txtUIDescription.Enabled = false;
txtTechbezeichnung.Enabled = false;
chkzwingend.Enabled = false;
}
if (Convert.ToBoolean(dr["aktiv"]) == true)
{
chkaktiv.Checked = true;
}
else
{
chkaktiv.Checked = false;
}
//if (Convert.ToBoolean(dr["erstellunginoffice"]) == true)
//{
// chkboxInOffice.Checked = true;
//}
//else
//{ chkboxInOffice.Checked = false; }
}
private void txtfeldname_TextChanged(object sender, EventArgs e)
{
}
private void txtSort_Leave(object sender, EventArgs e)
{
try
{
TextBox tmptxtbox = new TextBox();
tmptxtbox = sender as TextBox;
Origin[tmptxtbox.Tag.ToString()] = tmptxtbox.Text;
var record = sfDataGrid1.View.Records.GetItemAt(sfDataGrid1.SelectedIndex);
this.sfDataGrid1.View.GetPropertyAccessProvider().SetValue(record, tmptxtbox.Tag.ToString(), tmptxtbox.Text);
Origin.AcceptChanges();
sfDataGrid1.Update();
}
catch { }
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
DB db = new DB(AppParams.connectionstring);
db.Get_Tabledata_for_Update("Select * from dokumenttyp where dokumenttypnr=" + dokumenttypnr.ToString(), false, true);
DataRow r = db.daten.Tables[0].Rows[0];
r["bezeichnung"] = this.TxTBezeichnung.Text;
r["beschreibung"] = this.TxTBeschreibung.Text;
r["office_vorlagenr"] = this.cbboxofficevorlage.SelectedValue;
r["fachverantwortung"] = this.cbboxFachverantwortung.SelectedValue;
r["owner"] = this.cbboxOwner.SelectedValue;
r["vertrag"] = this.cbVertrag.Checked;
r["bezeichnungmut"] = this.cbbezeichnungmutierbar.Checked;
r["AnzeigeZurDokumenterstellung"] = this.cbAnzeigeVorlagenauswahl.Checked;
r["unterschrift_links"] = this.cbUnterschriftlinks.Checked;
r["unterschrift_rechts"] = this.cbUnterschriftrechts.Checked;
r["Unterschrift_Faksimile"] = this.cbDigitaleUnterschrift.Checked;
r["Unterschrift_ohne"] = this.cbFormularOhneUnterschrift.Checked;
r["Unterschrift_Pruefung"] = this.cbUnterschriftpruefung.Checked;
r["unterschrift_standard"] = this.lbUnterschriftStandard.SelectedIndex;
r["aktiv"] = this.cbaktiv.Checked;
r["mutierer"] = AppParams.CurrentMitarbieter;
r["mutiert_am"] = DateTime.Now;
r["versandstrasse_moeglich"] = cbversandstrasse_moeglich.Checked == true;
r["ebanking_moeglich"] = cbebanking_moeglich.Checked == true;
r["BearbeitungDirket"] = chkbearbeitungdirekt.Checked == true;
r["interop"] = chkinterop.Checked == true;
r["erstellungInOffice"] = chkboxInOffice.Checked == true;
r["physisches_archiv"]=cbboxarchiv.SelectedValue;
r["CompatibilityMode"] = cbboxcompatibilitymode.Text;
r["FillOffice"]=chkfilloffice.Checked == true;
//if (cbOfficeDokument.Checked) { r["genresultat_type"] = 1; }
//if (cbPDFDokument.Checked) { r["genresultat_type"] = 2; }
//if (cbPDFDirekteArchivierung.Checked) { r["genresultat_type"] = 3; }
r["bearbeitung_zwingend"] = this.cbbearbeitungzwingend.Checked == true;
db.Update_Data();
db.daten.Tables.Clear();
db.Get_Tabledata_for_Update("Select * from Dokumenttyp_BP_Person_Erstellung where dokumenttypnr=" + dokumenttypnr.ToString(), false, true);
if (db.daten.Tables[0].Rows.Count > 0)
{
if (rbDokumenterstellungBP.Checked) { db.daten.Tables[0].Rows[0][1] = 1; } else { db.daten.Tables[0].Rows[0][1] = 2; }
}
else
{
DataRow dr = db.daten.Tables[0].NewRow();
dr[0] = dokumenttypnr;
if (rbDokumenterstellungBP.Checked) { dr[1] = 1; } else { dr[1] = 2; }
db.daten.Tables[0].Rows.Add(dr);
}
db.Update_Data();
ToastMessage.ShowToast("Speichern", "Dokumenttyp erfolgreich gespeichert");
update_tree();
}
private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
DB db = new DB(AppParams.connectionstring);
db.Insert_Vorlagenfeld(Convert.ToInt32(this.listBox1.SelectedValue), this.dokumenttypnr, AppParams.CurrentMitarbieter);
db.Get_Tabledata("Select top 1 vorlagenfeldnr from vorlagenfeld order by erstellt_am desc", false, true);
int newkey = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]);
Update_Vorlagenfelder();
pos_grid(newkey);
db = null;
}
private void pos_grid(int newkey)
{
var records = this.sfDataGrid1.View.Records;
foreach (var record in records)
{
var obj = record.Data as DataRowView;
if (obj["id"].ToString() == newkey.ToString())
{ this.sfDataGrid1.SelectedItems.Add(obj);
var dataRow = (obj as DataRowView).Row;
Origin = (obj as DataRowView).Row;
Update_Vorlagenfeld(dataRow); }
}
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void chkui_CheckedChanged(object sender, EventArgs e)
{
CheckBox tmpcheckbox = sender as CheckBox;
Origin[tmpcheckbox.Tag.ToString()] = tmpcheckbox.Checked;
var record = sfDataGrid1.View.Records.GetItemAt(sfDataGrid1.SelectedIndex);
this.sfDataGrid1.View.GetPropertyAccessProvider().SetValue(record, tmpcheckbox.Tag.ToString(), tmpcheckbox.Checked);
Origin.AcceptChanges();
sfDataGrid1.Update();
}
private void TreeDokumenttyp_Click(object sender, EventArgs e)
{
}
private void TreeDokumenttyp_AfterSelect(object sender, EventArgs e)
{
try
{
this.dokumenttypnr = Convert.ToInt32(TreeDokumenttyp.SelectedNode.Tag.ToString());
Update_Details(dokumenttypnr);
}
catch { }
}
private void txtFilter_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
update_tree();
}
}
private void rbNr_Click(object sender, EventArgs e)
{
update_tree();
}
private void tsbtncopy_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Dokumenttyp kopieren?", "Kopieren", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
db.clear_parameter();
db.add_parameter("@id", dokumenttypnr.ToString());
db.add_parameter("@maid", AppParams.CurrentMitarbieter.ToString());
db.Get_Tabledata("sp_ondoc_copy_doktyp", true, false);
string newkey = db.dsdaten.Tables[0].Rows[0][0].ToString();
treedata.Rows.Clear();
update_tree();
//TreeDokumenttyp.SelectedNode= Search(TreeDokumenttyp.Nodes[0], db.dsdaten.Tables[0].Rows[0][0].ToString() );
List<TreeNodeAdv> nodes;
nodes = TreeDokumenttyp.SearchTree().Where(n => n.Text.Contains(newkey)).ToList();
if (nodes.Count > 0) { TreeDokumenttyp.SelectedNode = nodes[0]; }
}
}
private void chkboxaktive_CheckedChanged(object sender, EventArgs e)
{
update_tree();
}
private void toolStripButton3_Click(object sender, EventArgs e)
{
OfficeVorlage ov = new OfficeVorlage();
ov.Show();
ov.set_filter(this.cbboxofficevorlage.SelectedValue.ToString());
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
}
private void btnSaveVorlagenfeld_Click(object sender, EventArgs e)
{
DB vdb = new DB(AppParams.connectionstring);
vdb.Get_Tabledata_for_Update("Select * from vorlagenfeld where vorlagenfeldnr = " + this.lblID.Text, false, true);
System.Data.DataRow dr = vdb.daten.Tables[0].Rows[0];
dr["feldname"] = txtfeldname.Text;
dr["beginntextmarke"] = txtbookmarkstart.Text;
dr["endetextmarke"] = txtBookmarkEnd.Text;
dr["ess_field_class_id"] = txtessclass.Text;
dr["ess_feldname"] = lblessfieldname.Text;
dr["ess_img_top"] = txtessimagetop.Text;
dr["ess_img_left"] = txtessimageleft.Text;
dr["ess_img_width"] = txtessimagewidth.Text;
dr["ess_img_height"] = txtessimagewidth.Text;
if (txtSort.Text == "") { dr["reihenfolge"] = 0; } else { dr["reihenfolge"] = txtSort.Text; }
// dr["feldbezeichnung"] = txtUIDescription.Text;
// dr["Techbezeichnung"] = txtTechbezeichnung.Text;
dr["aktiv"] = cbaktiv.Checked == true;
dr["mutiert_am"]= DateTime.Now;
dr["mutierer"] = AppParams.CurrentMitarbieter;
vdb.Update_Data();
vdb.daten.Tables.Clear();
if (chkui.Checked == true)
{
vdb.Get_Tabledata_for_Update("Select * from vorlagenfeldbezeichnung where vorlagenfeld=" + lblID.Text, false, true);
if (vdb.daten.Tables[0].Rows.Count == 0)
{
int newkey = Convert.ToInt32(vdb.get_dbkey("vorlagenfeldbezeichnung"));
System.Data.DataRow vdr = vdb.daten.Tables[0].NewRow();
vdr[0] = newkey;
vdr[1] = lblID.Text;
vdr[2] = 1;
vdr[3] = txtUIDescription.Text;
vdr[4] = DateTime.Now;
vdr[5] = DateTime.Now;
vdr[6] = AppParams.CurrentMitarbieter;
vdr[7] = txtTechbezeichnung.Text;
vdb.daten.Tables[0].Rows.Add(vdr);
}
else
{
System.Data.DataRow vdr = vdb.daten.Tables[0].Rows[0];
vdr[3] = txtUIDescription.Text;
vdr[5] = DateTime.Now;
vdr[6] = AppParams.CurrentMitarbieter;
vdr[7] = txtTechbezeichnung.Text;
}
vdb.Update_Data();
}
vdb = null;
}
}
public static class SOExtension
{
public static IEnumerable<TreeNodeAdv> SearchTree(this TreeViewAdv treeView)
{
return SearchTree(treeView.Nodes);
}
public static IEnumerable<TreeNodeAdv> SearchTree(this TreeNodeAdvCollection coll)
{
return coll.Cast<TreeNodeAdv>().Concat(coll.Cast<TreeNodeAdv>().SelectMany(x => SearchTree(x.Nodes)));
}
}
}