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.
OnDoc/Client/UIControls/UCAllgemeineDokumentParam.cs

1184 lines
51 KiB

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;
using Windows.UI;
using edoka_dms;
using Syncfusion.Windows.Forms.Tools.XPMenus;
using Windows.Graphics.Printing3D;
using System.IO;
using System.Net;
using Syncfusion.Windows.Shared;
using System.Xml.Linq;
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 bedingt_retournierbar { 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 bool bpdokument { get; set; } = false;
public string uniqid { get; set; } = Guid.NewGuid().ToString();
public bool ausDokumentpaket { get; set; } = false;
public string genertated_dokumentid { get; set; }
public bool ErstellungInOffice = false;
public int vorlagenr = 0;
public bool kopfzeile_generieren = false;
public string barcode_zusatz = "";
public int barcode_top = 0;
public int barcode_left = 0;
public int barcode_width = 0;
public int barcode_height = 0;
public int barcode_horizontal = 0;
public string barcode_type = "";
public string barcode_content = "";
public bool Erstellung_in_Office = false;
public bool FillOffice = false;
public string CompatibilityMode = "";
public bool signiert = false;
public string 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.CurrentMitarbeiter;
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.CurrentMitarbeiter;
db.clear_parameter();
db.add_parameter("dokumenttypnr", dokumenttypnr.ToString());
db.add_parameter("@dokumentid", "");
db.add_parameter("@fnkt", "1");
db.add_parameter("@mitarbeiternr", AppParams.CurrentMitarbeiter.ToString());
db.add_parameter("@bck", "0");
db.Get_Tabledata("SP_Dokumentbearbeitung_StatusSelektion", true, false);
if (dokumenttypnr != 0)
{
set_personendokument();
}
if (partnernr != 0)
{
update_partner();
//check_bp_person();
}
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;
if (cbboxunterschriftlinks.Enabled == false)
{
cbboxunterschriftlinks.Visible = false;
lblUnterschriftlinks.Visible = false;
}
if (cbboxunterschriftrechts.Enabled == false)
{
cbboxunterschriftrechts.Visible = false;
lblUnterschriftrechts.Visible = false;
}
this.cbfaksimile.Enabled = Convert.ToBoolean(dr["unterschrift_faksimile"]) == true;
if (this.cbfaksimile.Enabled == true)
{
this.cbfaksimile.Checked = true;
//20250208 - bis faksimile klappt
this.cbfaksimile.Checked = false;
}
this.cbformularohneunterschrfit.Checked = false;
if (cbformularohneunterschrfit.Enabled)
{
lblUnterschriftlinks.Visible = false;
lblUnterschriftrechts.Visible = false;
cbboxunterschriftlinks.Visible = false;
cbboxunterschriftrechts.Visible = false;
cbfaksimile.Visible = false;
lblohneUnterschrift.Visible = true;
}
if (this.cbfaksimile.Enabled == false) { cbfaksimile.Visible = false; }
try
{
if (Convert.ToBoolean(dr["ErstellungInOffice"]) == true)
{
this.ErstellungInOffice = true;
}
else
{
ErstellungInOffice = false;
}
}
catch { ErstellungInOffice = 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;
if (Convert.ToInt32(dr["doktypbedingteretournierung"]) > 0)
{
barcode = true;
}
try
{
this.bedingt_retournierbar = Convert.ToBoolean(dr["bedingtretournierbar"]) == true;
}
catch { }
try
{
if (dr["physisches_archiv"].ToString() == "1") { this.barcode_zusatz = " U"; }
if (dr["physisches_archiv"].ToString() == "2") { this.barcode_zusatz = " F"; }
}
catch { }
if (barcode)
{
this.lblTermin.Visible = true;
this.DateTermin.Visible = true;
this.DateTerminText.Visible = true;
this.DateTerminText.Text = "";
}
else
{
this.lblTermin.Visible = false;
this.DateTermin.Visible = false;
this.DateTerminText.Visible = false;
this.DateTermin.Value = new DateTime(1900, 01, 01);
}
this.Erstellung_in_Office = Convert.ToBoolean(db.dsdaten.Tables[0].Rows[0]["ErstellungInOffice"]);
this.FillOffice = Convert.ToBoolean(db.dsdaten.Tables[0].Rows[0]["FillOffice"]);
this.CompatibilityMode = db.dsdaten.Tables[0].Rows[0]["CompatibilityMode"].ToString();
db.Get_Tabledata("Select beschreibung from physischesarchiv where physischesarchivnr = " + dr["physisches_archiv"].ToString(), false, true);
barcode_zusatz = db.dsdaten.Tables[0].Rows[0][0].ToString();
if (barcode_zusatz != "") { barcode_zusatz = " " + barcode_zusatz; }
db.Get_Tabledata("Select office_vorlagenr,kopfzeile_generieren, bcpt,bcpl, bcw, bch, bchorizontal, barcodetype, datamatrixcontent from office_vorlage where office_vorlagenr=" + dr["office_vorlagenr"].ToString(), false, true);
this.vorlagenr = Convert.ToInt32(dr["office_vorlagenr"]);
this.kopfzeile_generieren = false;
try
{
if (Convert.ToBoolean(db.dsdaten.Tables[0].Rows[0][1]) == true) { this.kopfzeile_generieren = true; }
}
catch { }
this.barcode_left = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcpl"]);
this.barcode_top = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcpt"]);
this.barcode_width = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcw"]);
this.barcode_height = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bch"]);
this.barcode_horizontal = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bchorizontal"]);
this.barcode_type = db.dsdaten.Tables[0].Rows[0]["BarcodeType"].ToString();
this.barcode_content = db.dsdaten.Tables[0].Rows[0]["DatamatrixContent"].ToString();
string logdata1 = barcode_left.ToString() + "/" + barcode_top.ToString() + "/" + barcode_width.ToString() + "/" + barcode_height.ToString();
Logging.Logging.Debug("Barcode-Size Ursprung:" + logdata1, "OnDoc", "");
if (this.ErstellungInOffice == false)
{
Logging.Logging.Debug("Erstellung not Office", "OnDoc", "");
string sql = "";
sql = "select bcpt, bcpl, bcw, bch, bchorizontal from OnDocBarcodeMpping ";
sql = sql + "where orig_bcpt = " + barcode_top.ToString() + " and orig_bcpl=" + barcode_left.ToString() + " ";
sql = sql + "and orig_bcw=" + barcode_width.ToString() + " and orig_bch=" + barcode_height.ToString();
db.Get_Tabledata(sql, false, true);
if (db.dsdaten.Tables[0].Rows.Count > 0)
{
logdata1 = barcode_left.ToString() + "/" + barcode_top.ToString() + "/" + barcode_width.ToString() + "/" + barcode_height.ToString();
this.barcode_left = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcpl"]);
this.barcode_top = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcpt"]);
this.barcode_width = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcw"]);
this.barcode_height = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bch"]);
string logdata2 = barcode_left.ToString() + "/" + barcode_top.ToString() + "/" + barcode_width.ToString() + "/" + barcode_height.ToString();
Logging.Logging.Debug("Barcode-Resize: " + logdata1 + " - " + logdata2, "ondoc", "");
}
}
}
else
{
}
Logging.Logging.Debug("Profilnr", "OnDoc", profilnr.ToString());
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"]);
cbboxunterschriftlinks.SelectedValue = ulinks;
}
catch
{
ulinks = 0;
Logging.Logging.Debug("Unterschrift links nicht zugewiesen", "DokPaket", ulinks.ToString() + " / " + profilnr.ToString());
}
try
{
urechts = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["unterschriftrechts"]);
cbboxunterschriftrechts.SelectedValue = urechts;
}
catch
{
urechts = 0;
Logging.Logging.Debug("Unterschrift rechts nicht zugewiesen", "DokPaket", urechts.ToString() + " / " + profilnr.ToString());
}
}
if (dokumentid == "")
{
Get_DokWertList(ref db, "", 1);
}
db = null;
Refresh_Team();
try
{
this.cbboxteam.SelectedIndex = 0;
}
catch { }
}
private void Get_DokWertList(ref DB db, string dokumentid, int createnew)
{
System.Data.DataTable dokwertlist = new System.Data.DataTable();
dokwertlist = db.Get_DokumentWertList(dokumentid, dokumenttypnr, createnew);
if (EDK_Data.toexecute == true)
{
//db.Get_Tabledata("Select mitarbeiternr from mitarbeiter where tgnummer='" + EDK_Data.verantwortlich + "'", false, true);
//if (db.dsdaten.Tables[0].Rows.Count > 0) { cbboxverantwortlich.SelectedValue = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]); }
db.Get_Tabledata("Select mitarbeiternr from mitarbeiter where tgnummer='" + EDK_Data.unterschrift_links + "'", false, true);
if (db.dsdaten.Tables[0].Rows.Count > 0) { cbboxunterschriftlinks.SelectedValue = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]); }
db.Get_Tabledata("Select mitarbeiternr from mitarbeiter where tgnummer='" + EDK_Data.unterschrift_rechts + "'", false, true);
if (db.dsdaten.Tables[0].Rows.Count > 0) { cbboxunterschriftrechts.SelectedValue = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]); }
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 });
gridDokwertlist.View.RecordPropertyChanged += OnRecordPropertyChanged;
}
private void OnRecordPropertyChanged(object sender, PropertyChangedEventArgs e)
{
try
{
DataRowView x = (DataRowView)sender;
if (x["Validierungsregel"].ToString() != "")
{
DB db = new DB(AppParams.connectionstring);
db.clear_parameter();
db.add_parameter("@FeldwertIn", x["Feldwert"].ToString());
db.add_parameter("@Validierungsregel", x["Validierungsregel"].ToString());
db.Get_Tabledata("OnDoc_sp_dokumentfeldwert_validate", true, false);
if (db.dsdaten.Tables[0].Rows.Count > 0)
{
MessageBox.Show(db.dsdaten.Tables[0].Rows[0][0].ToString(), "Wertprüfung", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
db = null;
}
}
catch { }
//if (e.PropertyName == "Name")
//{
// // Updates the "Last Modified Date"
// this.gridDokwertlist.View.GetPropertyAccessProvider().SetValue(sender as DataRowView, "Last Modified Date", DateTime.Now);
//}
}
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;
bpdokument = true;
}
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;
if (personendokument) { bpdokument = 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("OnDoc_sp_partner_detail", true, false);
txtPartnerInhaber.Text = "";
txtPartnerZusteller.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";
try
{
cbboxzustaendigkube.SelectedIndex = 0;
}
catch { }
db.clear_parameter();
db.add_parameter("@nrpar00", partnernr.ToString());
db.Get_Tabledata("OnDoc_SP_Check_Other_Addr", true, false);
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]) == 1)
{
btnweitereadressen.Visible = true;
}
else
{ btnweitereadressen.Visible = false; }
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(int id = 0)
{
DB dbteam = new DB(AppParams.connectionstring);
dbteam.clear_parameter();
dbteam.add_parameter("@profilnr", profilnr.ToString());
if (id == 0)
{
dbteam.add_parameter("@mitarbeiternr", cbboxzustaendigmitarbeiter.SelectedValue.ToString());
}
else
{
dbteam.add_parameter("@mitarbeiternr", id.ToString());
}
dbteam.Get_Tabledata("sp_dokumentbearbeitung_team", true, false);
cbboxteam.DataSource = null;
cbboxteam.DataSource = dbteam.dsdaten.Tables[0];
cbboxteam.ValueMember = "teamnr";
cbboxteam.DisplayMember = "bezeichnung";
cbboxteam.SelectedIndex = 0;
}
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 (cbfaksimile.Checked)
{
int ul = 0;
int ur = 0;
try
{
ul = Convert.ToInt32(cbboxunterschriftlinks.SelectedValue);
}
catch { }
try
{
ur = Convert.ToInt32(cbboxunterschriftrechts.SelectedValue);
}
catch { }
if (cbboxunterschriftlinks.Text == "") { ul = 0; }
if (cbboxunterschriftrechts.Text == "") { ur = 0; }
if (cbfaksimile.Checked)
{
if (ul != 0)
{
if (!Check_Signature(ul))
{
if (check_error != "") { check_error = check_error + Environment.NewLine; }
check_error = check_error + "- Unterschriftenbild " + cbboxunterschriftlinks.Text + " fehlt";
}
}
if (ur != 0)
{
if (!Check_Signature(ur))
{
if (check_error != "") { check_error = check_error + Environment.NewLine; }
check_error = check_error + "- Unterschriftenbild " + cbboxunterschriftrechts.Text + " fehlt";
}
}
}
}
try
{
if (this.DateTerminText.Text.Trim() != "")
{
try
{
DateTime checkdate = Convert.ToDateTime(this.DateTerminText.Text);
}
catch
{
if (check_error != "") { check_error = check_error + Environment.NewLine; }
check_error = check_error + "- Termin-Datum ist kein gültiges Datum ";
}
}
}
catch { }
//20250121 - ausblenden
//if (ul==0 || ur == 0)
//{
// if (check_error != "") { check_error = check_error + Environment.NewLine + Environment.NewLine; }
// check_error = check_error + "- " + "Bitte Unterschrift links und rechts auswählen";
//}
if (check_error == "") { return true; } else { return false; }
return true;
}
private bool Check_Signature(int mitarbeiternr)
{
DB db = new DB(AppParams.connectionstring);
try
{
db.Get_Tabledata("Select tgnummer from mitarbeiter where mitarbeiternr=" + mitarbeiternr.ToString(), false, true);
if (db.dsdaten.Tables[0].Rows[0][0].ToString() == "")
{
return false;
}
string URL = AppParams.RESTURI + "API/CheckSignature?TGNummer=" + db.dsdaten.Tables[0].Rows[0][0].ToString();
HttpWebRequest webRequest = HttpWebRequest.Create(URL) as HttpWebRequest;
webRequest.Method = WebRequestMethods.Http.Get;
webRequest.Headers["Authorization"] = "Bearer " + AppParams.apikey;
try
{
using (HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse)
{
if (response.StatusCode == HttpStatusCode.OK)
{
StreamReader reader = new StreamReader(response.GetResponseStream());
string responseContent = reader.ReadToEnd();
return true;
}
else
{
Logging.Logging.Error(URL + ": " + response.StatusCode.ToString() + " / " + response.StatusDescription, "Clinet - DokList GetDocument", "");
return false;
}
}
}
catch (Exception ex)
{
return false;
}
}
catch
{
return false;
}
finally { db = null; }
}
public void Update_DocGenData()
{
docgendata.partnernr = this.partnernr.ToString();
docgendata.inhaberadresse = this.txtPartnerInhaber.Text;
docgendata.zustelladresse = this.txtPartnerZusteller.Text;
docgendata.anrede = this.txtanrede.Text;
docgendata.dokumenttypnr = dokumenttypnr.ToString();
try { docgendata.unterschriftLinks = cbboxunterschriftlinks.SelectedValue.ToString(); } catch { docgendata.unterschriftLinks = ""; }
try { docgendata.unterschriftRehts = cbboxunterschriftrechts.SelectedValue.ToString(); } catch { docgendata.unterschriftRehts = ""; }
try
{
if (cbboxunterschriftlinks.Text == "") { docgendata.unterschriftLinks = "-1"; }
if (cbboxunterschriftrechts.Text == "") { docgendata.unterschriftRehts = "-1"; }
}
catch { }
if (cbfaksimile.Checked) { docgendata.digitaleunterschrift = true; } else { docgendata.digitaleunterschrift = false; }
if (cbformularohneunterschrfit.Checked) { docgendata.frormularOhneUnterschrift = true; } else { docgendata.frormularOhneUnterschrift = false; }
if (lblohneUnterschrift.Visible) { docgendata.frormularOhneUnterschrift = true; }
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.CurrentMitarbeiter.ToString();
docgendata.dokumentdatum = DateDokumentDatum.DateTimeText.ToString();
docgendata.bezeichnung = txtbezeichnung.Text;
docgendata.erstellungsart = Erstellungsart.DokumentPreview;
if (ErstellungInOffice == true) { docgendata.erstellungsart = Erstellungsart.ErstellungInOffice; }
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)
{
if (this.signiert == true) { dokdata.remove_signature = true; }
dokdata.PartnerNr = docgendata.partnernr;
dokdata.UseEDOKA_Values = "True";
try
{
dokdata.postzustellung = cbboxpostzustellung.SelectedValue.ToString();
}
catch { dokdata.postzustellung = "0"; }
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"; }
if (docgendata.frormularOhneUnterschrift == true) { dokdata.Form_ohne_Unterschrift = "True"; } else { dokdata.Form_ohne_Unterschrift = "False"; }
dokdata.Zustaendig_Kube = "0";
if (this.rbzustaendigkube.Checked)
{
dokdata.Zustaendig_Kube = "1";
};
dokdata.dokumentwerte = docgendata.dokumentwerte;
dokdata.Barcode = barcode;
dokdata.VorlageNr = this.vorlagenr.ToString();
dokdata.Kopfzeile_generieren = this.kopfzeile_generieren;
dokdata.barcode_zusatz = barcode_zusatz;
dokdata.barcode_left = barcode_left;
dokdata.barcode_width = barcode_width;
dokdata.barcode_top = barcode_top;
dokdata.barcode_height = barcode_height;
dokdata.barcode_horizontal = barcode_horizontal;
dokdata.barcode_font = AppParams.barcodefont;
dokdata.barcode_fontsize = Convert.ToInt32(AppParams.barcodefontsize);
dokdata.Zusatz_Font = AppParams.ZusatzFont;
dokdata.Zusatz_FontSize = Convert.ToInt32(AppParams.ZusatzFontSize);
dokdata.barcode_textposition = AppParams.barcodetextposition;
dokdata.barcode_type = barcode_type;
dokdata.barcode_content = barcode_content;
dokdata.Erstellung_in_Office = this.Erstellung_in_Office;
dokdata.FillOffice = this.FillOffice;
dokdata.CompatibilityMode = this.CompatibilityMode;
if (dokdata.Barcode == false && this.bedingt_retournierbar == true) { dokdata.Barcode = true; }
if (DateTerminText.Text == "")
{
dokdata.Termin = "01.01.1900";
}
else
{
dokdata.Termin = DateTerminText.Text;
//.ToString DateTermin.Value.ToString();
}
dokdata.Bezeichnung = txtbezeichnung.Text.ToString();
dokdata.zustelladresse = docgendata.zustelladresse;
dokdata.anrede = docgendata.anrede;
dokdata.barcode_zusatz = barcode_zusatz;
if (cbfaksimile.Checked)
{
dokdata.approval1 = 0;
dokdata.approval2 = 0;
dokdata.toapprove = 1;
try
{
if (cbboxunterschriftlinks.Text == "") { dokdata.approval1 = 1; }
else
{
if (Convert.ToInt32(dokdata.Verantwortlich) == Convert.ToInt32(this.cbboxunterschriftlinks.SelectedValue.ToString()))
{
dokdata.approval1 = 1;
}
}
}
catch { }
try
{
if (cbboxunterschriftrechts.Text == "") { dokdata.approval2 = 1; }
else
{
if (Convert.ToInt32(dokdata.Verantwortlich) == Convert.ToInt32(this.cbboxunterschriftrechts.SelectedValue.ToString()))
{
dokdata.approval2 = 1;
}
}
}
catch { }
if (dokdata.approval1 == 1 && dokdata.approval2 == 1)
{
dokdata.approved = 1;
dokdata.signiert = false;
dokdata.sign = true;
}
}
}
private void sfButton1_Click(object sender, EventArgs e)
{
set_personendokument();
show_partnerdialog();
}
private void show_partnerdialog()
{
Partnersuche ps = new Partnersuche(personendokument, true, bpdokument, dokumenttypnr);
ps.ShowDialog();
if (ps.DialogResult == DialogResult.OK)
{
this.partnernr = ps.partnernr;
if (ps.bpperson_changed) { lblPartner.ForeColor = System.Drawing.Color.Blue; } else { lblPartner.ForeColor = System.Drawing.Color.Black; }
update_partner();
}
}
private void UCAllgemeineDokumentParam_Load(object sender, EventArgs e)
{
}
private void gridDokwertlist_CellDoubleClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e)
{
try
{
//if (e.DataColumn.ColumnIndex != 15) { return; }
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);
gridDokwertlist.Refresh();
}
}
catch { }
}
private string data_select(string datenherkunft, string feldtyp)
{
try
{
if (datenherkunft == "" || datenherkunft == "&Freitext&") { return ""; }
switch (feldtyp.ToUpper())
{
case "DATUMSHORT":
case "DATUMMEDIUM":
case "DATUMLONG":
valueselector f = new valueselector(true);
f.ShowDialog();
string res = "";
if (f.DialogResult == DialogResult.OK)
{
if (feldtyp.ToUpper() == "DATUMSHORT")
{
res = Helper.ConvertHelper.Datum(Convert.ToDateTime(f.selected_datetime), Helper.ConvertHelper.DateTimeFormat.datumshort);
}
if (feldtyp.ToUpper() == "DATUMMEDIUM")
{
res = Helper.ConvertHelper.Datum(Convert.ToDateTime(f.selected_datetime), Helper.ConvertHelper.DateTimeFormat.datummedium);
}
if (feldtyp.ToUpper() == "DATUMLONG")
{
res = Helper.ConvertHelper.Datum(Convert.ToDateTime(f.selected_datetime), 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 "";
}
catch { return ""; }
}
private void btnErneutGenerierung_Click(object sender, EventArgs e)
{
Broadcaster().Broadcast("DokumentPaket", new SenderInfo("NeuGenerierung", "NeuGenerierung", genertated_dokumentid));
}
private void btnGenerieren_Click(object sender, EventArgs e)
{
Broadcaster().Broadcast("DokumentPaket", new SenderInfo("NeuGenerierung", "Generierung", dokumenttypnr.ToString()));
}
public void Show_Neugenerieren()
{
btnErneutGenerierung.Visible = true;
}
private void rbzustaendigkube_CheckedChanged(object sender, EventArgs e)
{
cbboxzustaendigkube_SelectedIndexChanged(sender, e);
}
private void button1_Click(object sender, EventArgs e)
{
PartnerDetails pd = new PartnerDetails(this.partnernr, true);
pd.ShowDialog();
if (pd.DialogResult == DialogResult.OK)
{
this.txtPartnerZusteller.Text = pd.selectedadresse;
this.txtanrede.Text = pd.selectedanrede;
}
}
private void btneditadresse_Click(object sender, EventArgs e)
{
InputDialog id = new InputDialog("Zustelladresse", "Zustelladresse ändern", this.txtPartnerZusteller.Text, true);
id.ShowDialog();
if (id.DialogResult == DialogResult.OK)
{
this.txtPartnerZusteller.Text = id.result;
}
}
private void cbboxzustaendigkube_SelectedIndexChanged(object sender, EventArgs e)
{
if (rbzustaendigkube.Checked)
{
Refresh_Team(Convert.ToInt32(cbboxzustaendigkube.SelectedValue));
}
else
{
Refresh_Team(0);
}
}
private void cbboxzustaendigmitarbeiter_SelectedIndexChanged(object sender, EventArgs e)
{
cbboxzustaendigkube_SelectedIndexChanged(sender, e);
}
private void gridDokwertlist_CurrentCellEndEdit(object sender, Syncfusion.WinForms.DataGrid.Events.CurrentCellEndEditEventArgs e)
{
try
{
DataRowView x = (e.DataRow.RowData as DataRowView);
if (x["Validierungsregel"].ToString() != "")
{
DB db = new DB(AppParams.connectionstring);
db.clear_parameter();
db.add_parameter("@FeldwertIn", x["Feldwert"].ToString());
db.add_parameter("@Validierungsregel", x["Validierungsregel"].ToString());
db.Get_Tabledata("OnDoc_sp_dokumentfeldwert_validate", true, false);
if (db.dsdaten.Tables[0].Rows.Count > 0)
{
MessageBox.Show(db.dsdaten.Tables[0].Rows[0][0].ToString(), "Wertprüfung", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
db = null;
}
}
catch { }
}
private void DateTermin_ValueChanged(object sender, Syncfusion.WinForms.Input.Events.DateTimeValueChangedEventArgs e)
{
this.DateTerminText.Text = DateTermin.Value.ToString().Substring(0, 10);
}
private void gridDokwertlist_DoubleClick(object sender, EventArgs e)
{
}
private void gridDokwertlist_CellClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e)
{
try
{
if (e.DataColumn.ColumnIndex != 15) { return; }
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);
gridDokwertlist.Refresh();
}
}
catch { }
}
public void load_doc()
{
DB db = new DB(AppParams.connectionstring);
db.Get_Tabledata("Select * from dokument where dokumentid='" + this.dokumentid + "'", false, true);
System.Data.DataRow dr = db.dsdaten.Tables[0].Rows[0];
this.partnernr = Convert.ToInt32(dr["nrpar00"]);
this.dokumenttypnr = Convert.ToInt32(dr["dokumenttypnr"]);
Refresh_Details();
this.cbboxpostzustellung.SelectedValue = Convert.ToInt32(dr["postzustellung"]);
this.cbboxunterschriftlinks.SelectedValue = Convert.ToInt32(dr["unterschriftlinks"]);
this.cbboxunterschriftrechts.SelectedValue = Convert.ToInt32(dr["unterschriftrechts"]);
if (Convert.ToInt32(dr["zustaendig_kube"]) > 0)
{
rbzustaendigkube.Checked = true;
rbzustaendigmitarbeiter.Checked = false;
cbboxzustaendigkube.SelectedValue = Convert.ToInt32(dr["zustaendiger"]);
}
else
{
rbzustaendigmitarbeiter.Checked = true;
rbzustaendigkube.Checked = false;
cbboxzustaendigmitarbeiter.SelectedValue = Convert.ToInt32(dr["zustaendiger"]);
}
this.txtbezeichnung.Text = dr["bezeichnung"].ToString();
this.cbboxverantwortlich.SelectedValue = Convert.ToInt32(dr["verantwortlich"]);
this.txtanrede.Text = dr["anredezustelladresse"].ToString();
this.cbboxpostzustellung.SelectedValue = Convert.ToInt32(dr["postzustellung"]);
this.DateDokumentDatum.Value = Convert.ToDateTime(dr["erstellungsdatum"]);
if (Convert.ToDateTime(dr["termin"]).Year < 2000)
{
this.DateTerminText.Text = "";
}
else
{
this.DateTerminText.Text = Convert.ToDateTime(dr["termin"]).ToString();
this.DateTerminText.Text = this.DateTerminText.Text.Substring(0, 10);
}
this.signiert = Convert.ToBoolean(dr["signiert"]) == true;
this.cbfaksimile.Checked = Convert.ToBoolean(dr["faksimile"]) == true;
if (dr["zustelladresse"].ToString() != "") this.txtPartnerZusteller.Text = dr["zustelladresse"].ToString();
Get_DokWertList(ref db, dokumentid, 0);
db = null;
}
}
}