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

599 lines
27 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;
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 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 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;
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;
try
{
if (dr["physichses_archiv"].ToString() == "1") { this.barcode_zusatz = " U"; }
if (dr["physichses_archiv"].ToString() == "2") { this.barcode_zusatz = " F"; }
}
catch { }
db.Get_Tabledata("Select office_vorlagenr,kopfzeile_generieren, bcpt,bcpl, bcw, bch, bchorizontal from office_vorlage where office_vorlagenr="+dr["office_vorlagenr"].ToString(),false,true);
this.vorlagenr = Convert.ToInt32(dr["office_vorlagenr"]);
this.kopfzeile_generieren = false;
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"]);
try
{
if (Convert.ToBoolean(db.dsdaten.Tables[0].Rows[0][1]) == true) { this.kopfzeile_generieren = true; }
}
catch { }
}
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 (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)
{
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;
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_zusatz = barcode_zusatz;
}
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;
}
}
}