using OnDoc.Klassen; using OnDoc.UIControls.Administrator; using Model; using Syncfusion.WinForms.DataGrid; 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 Database; using Syncfusion.Pdf.Graphics; using Windows.UI.WebUI; using OnDoc.Diverses; using System.Web.Security; using System.Drawing.Text; using BroadcastListener.Classes; using static BroadcastListener.Classes.Factory; using System.Web.UI.WebControls; namespace OnDoc.UIControls { public partial class UCAllgemeineDokumentParam : UserControl { public int dokumenttypnr { get; set; } public int profilnr { get; set; } public int partnernr { get; set; } public bool checkpartner { get; set; } = true; public bool interop { get; set; } = false; public bool barcode { get; set; } = false; public bool runmacros { get; set; } = false; public string check_error { get; set; } = ""; public clsdocgendata docgendata { get; set; } private bool bpperson_error { get; set; }=false; public int bpperson_error_type { get; set; } = 0; public bool personendokument { get; set; } = false; public string uniqid { get; set; } = Guid.NewGuid().ToString(); public bool ausDokumentpaket { get; set; } = false; public string genertated_dokumentid { get; set; } public UCAllgemeineDokumentParam() { InitializeComponent(); docgendata = new clsdocgendata(); } public void Refresh_Details() { 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; db.clear_parameter(); db.add_parameter("dokumenttypnr", dokumenttypnr.ToString()); db.add_parameter("@dokumentid", ""); db.add_parameter("@fnkt", "1"); db.add_parameter("@mitarbeiternr", AppParams.CurrentMitarbieter.ToString()); db.add_parameter("@bck", "0"); db.Get_Tabledata("SP_Dokumentbearbeitung_StatusSelektion", true, false); if (partnernr != 0) { update_partner(); } else { if (checkpartner == true) { show_partnerdialog(); } } if (dokumenttypnr != 0) { set_personendokument(); db.Get_Tabledata("Select * from dokumenttyp where dokumenttypnr=" + dokumenttypnr, false, true); System.Data.DataRow dr = db.dsdaten.Tables[0].Rows[0]; this.txtbezeichnung.Text = dr["Bezeichnung"].ToString(); this.txtbezeichnung.Enabled = Convert.ToBoolean(dr["bezeichnungmut"]); this.cbboxunterschriftlinks.Enabled = Convert.ToBoolean(dr["unterschrift_links"]) == true; this.cbboxunterschriftrechts.Enabled = Convert.ToBoolean(dr["unterschrift_rechts"]) == true; this.cbformularohneunterschrfit.Enabled = Convert.ToBoolean(dr["unterschrift_ohne"]) == true; this.cbfaksimile.Enabled = Convert.ToBoolean(dr["unterschrift_faksimile"]) == true; this.cbfaksimile.Checked = false; this.cbformularohneunterschrfit.Checked = false; if (dr["Versandstrasse_moeglich"].ToString() == "") { docgendata.versandstrasse_moeglich = false; } else { docgendata.versandstrasse_moeglich = Convert.ToBoolean(dr["Versandstrasse_moeglich"].ToString()); } if (Convert.ToInt32(dr["Unterschrift_Standard"].ToString()) == 1) { cbfaksimile.Checked = true; } if (Convert.ToInt32(dr["Unterschrift_Standard"].ToString()) == 2) { cbformularohneunterschrfit.Checked = true; } try { this.rbDokumentbearbeiten.Checked = Convert.ToBoolean(dr["BearbeitungDirket"]) == true; } catch { this.rbDokumentbearbeiten.Checked = false; } try { interop = Convert.ToBoolean(dr["interop"]) == true; } catch { interop = false; } barcode = Convert.ToBoolean(dr["Vertrag"])== true; } else { } if (profilnr != 0) { db.Get_Tabledata("Select * from profil where profilnr=" + profilnr, false, true); int ulinks = 0; int urechts = 0; try { ulinks = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["unterschriftlinks"].ToString()); cbboxunterschriftlinks.SelectedValue = ulinks; } catch { ulinks = 0; } try { urechts = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["unterschriftrechts"].ToString()); cbboxunterschriftrechts.SelectedValue = urechts; } catch { urechts = 0; } } System.Data.DataTable dokwertlist = new System.Data.DataTable(); dokwertlist = db.Get_DokumentWertList("", dokumenttypnr); if (EDK_Data.toexecute == true) { foreach (System.Data.DataRow dr in dokwertlist.Rows) { string val = EDK_Data.GetAVQ_Value(dr[0].ToString(), dr[12].ToString()); if (val != "") { dr[2] = val; } } dokwertlist.AcceptChanges(); } gridDokwertlist.DataSource = dokwertlist; for (int i = 3; i < gridDokwertlist.Columns.Count; i++) { gridDokwertlist.Columns[i].Visible = false; } gridDokwertlist.Columns[0].AllowEditing = false; gridDokwertlist.Columns[1].AllowEditing = false; gridDokwertlist.Columns[0].Width = gridDokwertlist.Width * 0.35; gridDokwertlist.Columns[1].Width = gridDokwertlist.Width * 0.15; gridDokwertlist.Columns[2].Width = gridDokwertlist.Width * 0.35; gridDokwertlist.Columns.Add(new GridImageColumn() { MappingName = "S", ImageLayout = ImageLayout.Center }); gridDokwertlist.Columns["S"].Width = 25; gridDokwertlist.QueryImageCellStyle += gridDokwertlist_QueryImageCellStyle; gridDokwertlist.Columns["userinterface"].FilterPredicates.Add(new Syncfusion.Data.FilterPredicate() { FilterType=Syncfusion.Data.FilterType.Equals,FilterValue=true }); db = null; Refresh_Team(); this.cbboxteam.SelectedIndex = 0; } public bool FilterRecords(object o) { string filterText = "FRANS"; var item = o as DataRowView; if (item != null) { //if (item.CustomerID.Equals(filterText)) // return true; } return false; } public bool set_personendokument() { DB db1 = new DB(AppParams.connectionstring); db1.Get_Tabledata("select * from Dokumenttyp_BP_Person_Erstellung where dokumenttypnr=" + this.dokumenttypnr.ToString(), false, true); if (db1.dsdaten.Tables[0].Rows.Count == 0) { personendokument = false; } else { if (db1.dsdaten.Tables[0].Rows[0][1].ToString() == "2") personendokument=true; if (db1.dsdaten.Tables[0].Rows[0][1].ToString() == "1") personendokument = false; } return personendokument; } public bool check_bp_person() { DB db1 = new DB(AppParams.connectionstring); db1.Get_Tabledata("select * from Dokumenttyp_BP_Person_Erstellung where dokumenttypnr=" + this.dokumenttypnr.ToString(), false, true); bpperson_error_type = 0; if (db1.dsdaten.Tables[0].Rows.Count > 0) { if (db1.dsdaten.Tables[0].Rows[0][1].ToString() == "2" && this.partnernr.ToString().Length < 9) { bpperson_error = true; bpperson_error_type = 1; if (!ausDokumentpaket) MessageBox.Show("Das gewöhlte Dokument muss für eine Person erstellt werden", "BP/Person", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } if (db1.dsdaten.Tables[0].Rows[0][1].ToString() == "1" && this.partnernr.ToString().Length > 8) { bpperson_error = true; bpperson_error_type = 2; if(!ausDokumentpaket) MessageBox.Show("Das gewöhlte Dokument muss für ein BP erstellt werden", "BP/Person", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } } return true; } public void update_partner() { DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select * from partner where nrpar00=" + partnernr, false, true); this.lblPartner.Text = db.dsdaten.Tables[0].Rows[0]["nrpar00"].ToString() + " " + db.dsdaten.Tables[0].Rows[0]["bkpar00"].ToString(); db.clear_parameter(); db.add_parameter("@nrpar00", this.partnernr.ToString()); db.Get_Tabledata("sp_partner_detail", true, false); txtPartnerInhaber.Text = ""; string s = ""; for (int i = 1; i < 8; i++) { txtPartnerInhaber.Text = txtPartnerInhaber.Text + db.dsdaten.Tables[0].Rows[0]["d" + i.ToString()].ToString() + "\r\n"; txtPartnerZusteller.Text = txtPartnerZusteller.Text + db.dsdaten.Tables[0].Rows[0]["h" + i.ToString()].ToString() + "\r\n"; s = s + db.dsdaten.Tables[0].Rows[0]["h" + i.ToString()].ToString(); } if (s == "") { txtPartnerZusteller.Text = txtPartnerInhaber.Text; } db.clear_parameter(); db.add_parameter("@partnernr", this.partnernr.ToString()); db.Get_Tabledata("sp_dokumentbearbeitung_kube", true, false); cbboxzustaendigkube.DataSource = db.dsdaten.Tables[0]; cbboxzustaendigkube.DisplayMember = "name"; cbboxzustaendigkube.ValueMember = "mitarbeiternr"; db = null; if (check_bp_person() == true) { if (!ausDokumentpaket) Broadcaster().Broadcast("BtnErstellung", new SenderInfo("UIGenDoc", "Enable", uniqid)); } else { if (!ausDokumentpaket) Broadcaster().Broadcast("BtnErstellung", new SenderInfo("UIGenDoc", "Disable", uniqid)); } } private void gridDokwertlist_QueryImageCellStyle(object sender, Syncfusion.WinForms.DataGrid.Events.QueryImageCellStyleEventArgs e) { var rowdata = (DataRowView)e.Record; var feldtyp = rowdata.Row.ItemArray[5].ToString(); var datenherkunft = rowdata.Row.ItemArray[6].ToString(); try { if (feldtyp.ToUpper().Substring(0, 5) == "DATUM") { e.Image = (System.Drawing.Image.FromFile(System.Windows.Forms.Application.StartupPath + @"\images\calendar.png")); return; } } catch { } try { if (datenherkunft.ToString().Trim() != "" && datenherkunft.ToString().Trim()!="&Freitext&") { e.Image = (System.Drawing.Image.FromFile(System.Windows.Forms.Application.StartupPath + @"\images\Search.png")); } if (datenherkunft.Substring(0, 3).ToUpper() == "&PA") { e.Image = (System.Drawing.Image.FromFile(System.Windows.Forms.Application.StartupPath + @"\images\Partner.png")); } } catch { } //e.Image = (Image.FromFile(System.Windows.Forms.Application.StartupPath + @"\images\Search_16x16.png")); } 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"; } public void Set_Edit_later() { this.rbEditlater.Checked = true; } public Boolean check_fields() { check_error = ""; var records = gridDokwertlist.View.Records; foreach (var record in records) { var dataRowView = record.Data as DataRowView; if (dataRowView != null) { bool zwingend = Convert.ToBoolean(dataRowView.Row["zwingend"]); var feldwert = dataRowView.Row["feldwert"].ToString().Trim(); var bezeichnung = dataRowView.Row["bezeichnung"]; if (zwingend==true && feldwert=="") { if (check_error != "") { check_error=check_error+Environment.NewLine; } check_error = check_error + "- " + bezeichnung + " Feldwert ist zwingend" ; } } } if (check_error == "") { return true; } else { return false; } return true; } public void Update_DocGenData() { docgendata.partnernr = this.partnernr.ToString(); docgendata.inhaberadresse = this.txtPartnerInhaber.Text; docgendata.zustelladresse = this.txtPartnerZusteller.Text; docgendata.dokumenttypnr = dokumenttypnr.ToString(); docgendata.unterschriftLinks = cbboxunterschriftlinks.SelectedValue.ToString(); docgendata.unterschriftRehts = cbboxunterschriftrechts.SelectedValue.ToString(); if (cbfaksimile.Checked) { docgendata.digitaleunterschrift = true; } else { docgendata.digitaleunterschrift = false; } if (cbformularohneunterschrfit.Checked) { docgendata.frormularOhneUnterschrift = true; } else { docgendata.frormularOhneUnterschrift = false; } docgendata.verantwortlich = cbboxverantwortlich.SelectedValue.ToString(); docgendata.team = cbboxteam.SelectedValue.ToString(); if (rbzustaendigkube.Checked) { docgendata.zustaendigkube = cbboxzustaendigkube.SelectedValue.ToString(); } else { docgendata.zustaendigmitarbeiter = cbboxzustaendigmitarbeiter.SelectedValue.ToString(); } docgendata.status = " - 1"; docgendata.ersteller = AppParams.CurrentMitarbieter.ToString(); docgendata.dokumentdatum = DateDokumentDatum.DateTimeText.ToString(); docgendata.bezeichnung = txtbezeichnung.Text; docgendata.erstellungsart = Erstellungsart.DokumentPreview; if (rbDokumentbearbeiten.Checked) { docgendata.erstellungsart = Erstellungsart.DokumentBearbeiten; } if (rbEditlater.Checked) { docgendata.erstellungsart = Erstellungsart.DokumentSpäterBearbeiten; } if (rbasPDF.Checked) { docgendata.erstellungsart = Erstellungsart.DokumentAlsPDF; } if (rbasPDFarchivieren.Checked) { docgendata.erstellungsart = Erstellungsart.DokumentAlsPDFArchivieren; } docgendata.dokumentwerte = gridDokwertlist.DataSource as DataTable; } public void update_dokdata(ref clsDocData dokdata) { dokdata.PartnerNr = docgendata.partnernr; dokdata.UseEDOKA_Values = "True"; dokdata.DokumenttypNr = docgendata.dokumenttypnr; dokdata.Unterschrift_Links = docgendata.unterschriftLinks; dokdata.Unterschrift_Rechts = docgendata.unterschriftRehts; dokdata.Verantwortlich = docgendata.verantwortlich; dokdata.Team = docgendata.team; dokdata.Zustaendig = docgendata.zustaendigkube; if (rbzustaendigkube.Checked) { dokdata.Zustaendig = docgendata.zustaendigkube; } else { dokdata.Zustaendig = docgendata.zustaendigmitarbeiter; } dokdata.Status = docgendata.status; dokdata.Ersteller = docgendata.ersteller; dokdata.DokumentDatum = docgendata.dokumentdatum; dokdata.Bezeichnung = docgendata.bezeichnung; if (docgendata.erstellungsart == Erstellungsart.DokumentAlsPDF) { dokdata.Result_as_PDF = "True"; } else { dokdata.Result_as_PDF = "False"; } if (docgendata.digitaleunterschrift == true) { dokdata.As_Faksimile = "True"; } else { dokdata.As_Faksimile = "False"; } dokdata.dokumentwerte = docgendata.dokumentwerte; dokdata.Barcode = barcode; } private void sfButton1_Click(object sender, EventArgs e) { show_partnerdialog(); } private void show_partnerdialog() { Partnersuche ps = new Partnersuche(); ps.ShowDialog(); if (ps.DialogResult == DialogResult.OK) { this.partnernr = ps.partnernr; update_partner(); } } private void UCAllgemeineDokumentParam_Load(object sender, EventArgs e) { } private void gridDokwertlist_CellDoubleClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e) { var selectedItem = e.DataRow; var dataRow = (e.DataRow.RowData as DataRowView).Row; string datenherkunft = dataRow["datenherkunft"].ToString(); string feldtyp = dataRow["feldtyp"].ToString(); if (datenherkunft != "") { dataRow["feldwert"] = data_select(datenherkunft, feldtyp); } } private string data_select(string datenherkunft, string feldtyp) { if (datenherkunft=="" || datenherkunft=="&Freitext&") { return ""; } switch (feldtyp.ToUpper()) { case "DATUMSHORT": case "DATUMMEDIUM": case "DATUMLONG": break; frmCalendar f = new frmCalendar(); f.ShowDialog(); string res = ""; if (f.DialogResult == DialogResult.OK) { if (feldtyp.ToUpper() == "DATUMSHORT") { res = Helper.ConvertHelper.Datum(Convert.ToDateTime(f.sfCalendar1.SelectedDate), Helper.ConvertHelper.DateTimeFormat.datumshort); } if (feldtyp.ToUpper() == "DATUMMEDIUM") { res = Helper.ConvertHelper.Datum(Convert.ToDateTime(f.sfCalendar1.SelectedDate), Helper.ConvertHelper.DateTimeFormat.datummedium); } if (feldtyp.ToUpper() == "DATUMLONG") { res = Helper.ConvertHelper.Datum(Convert.ToDateTime(f.sfCalendar1.SelectedDate), Helper.ConvertHelper.DateTimeFormat.datummedium); } } f.Dispose(); return res; break; case "TEXT": if (datenherkunft.Substring(0, 1) != "&") { return ""; } if (datenherkunft.Length >= 8 && datenherkunft.Substring(0, 8).ToUpper() == "&PARTNER") { Partnersuche p = new Partnersuche(); p.ShowDialog(); if (p.partnernr != 0) { return p.partnernr.ToString() + " - " + p.partnerkurzname; } else { return ""; } } valueselector vs = new valueselector(); if (datenherkunft.ToUpper() == "&SekPartnerVV&") { var records = gridDokwertlist.View.Records; string s = ""; foreach (var record in records) { var dataRowView = record.Data as DataRowView; if (dataRowView != null) { var selectedValue = dataRowView.Row["datenherkunft"]; if (selectedValue== "&Partner&") { s = ""; s = dataRowView.Row["feldwert"].ToString(); int ii = 0; ii = s.IndexOf("-") - 1; if (ii < 1) return ""; } } } vs.partnernr = s.Substring(0, s.IndexOf("-") - 1); } if (datenherkunft.ToUpper() == "&TerPartnerVV&") { var records = gridDokwertlist.View.Records; string s = ""; foreach (var record in records) { var dataRowView = record.Data as DataRowView; if (dataRowView != null) { var selectedValue = dataRowView.Row["datenherkunft"]; if (selectedValue == "&Partner3&") { s = ""; s = dataRowView.Row["feldwert"].ToString(); int ii = 0; ii = s.IndexOf("-") - 1; if (ii < 1) return ""; } } } vs.partnernr = s.Substring(0, s.IndexOf("-") - 1); vs.load_data(); vs.ShowDialog(); } vs.datenherkunft = datenherkunft; vs.partnernr = this.partnernr.ToString(); vs.load_data(); vs.ShowDialog(); if (vs.DialogResult == DialogResult.OK) { return vs.selected_value; } break; default: return ""; break; } return ""; } private void btnErneutGenerierung_Click(object sender, EventArgs e) { Broadcaster().Broadcast("DokumentPaket", new SenderInfo("NeuGenerierung", "NeuGenerierung", genertated_dokumentid)); } public void Show_Neugenerieren() { btnErneutGenerierung.Visible = true; } } }