using OnDoc.Klassen; using Syncfusion.WinForms.Controls; 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 Helper; using OnDoc.Helper; using Syncfusion.WinForms.DataGrid; using System.Web.UI.WebControls; using Syncfusion.Data; using Syncfusion.WinForms.DataGrid.Interactivity; using System.IO; using Database; using System.Linq.Expressions; namespace OnDoc.UIControls { public partial class Partnersuche : SfForm { public int partnernr = 0; public string partnerkurzname = ""; public bool bpperson_changed { get; set; } = false; public bool partnersaldiert = false; public bool person = false; public bool personendokument { get; set; } = false; public bool check_bp_person { get; set; } = false; public int dokumenttypnr { get; set; } = 0; public Partnersuche() { InitializeComponent(); clsPartner.set_connectionstring(AppParams.connectionstring); this.trefferlistedata.TableControl.DoubleClick += TableControl_DoubleClick; } public Partnersuche(bool personendokument, bool check_bp_person) { InitializeComponent(); this.personendokument = personendokument; this.check_bp_person = check_bp_person; clsPartner.set_connectionstring(AppParams.connectionstring); this.trefferlistedata.TableControl.DoubleClick += TableControl_DoubleClick; } public Partnersuche(bool personendokument, bool check_bp_person, int dokumenttypnr=0) { InitializeComponent(); this.personendokument = personendokument; this.check_bp_person = check_bp_person; clsPartner.set_connectionstring(AppParams.connectionstring); this.trefferlistedata.TableControl.DoubleClick += TableControl_DoubleClick; this.dokumenttypnr = dokumenttypnr; } private void Form1_Load(object sender, EventArgs e) { this.SetDesktopLocation(Cursor.Position.X, Cursor.Position.Y); trefferlistedata.DataSource = clsPartner.get_partnerliste(); try { TableHelper.FormatTable(ref clsPartner.partnerliste, "Partner", ref trefferlistedata, true); try { trefferlistedata.Columns[0].Width = trefferlistedata.Columns[0].Width + 20; } catch { } if (trefferlistedata.RowCount > 0) { sfButton1.Enabled = true; } trefferlistedata.SelectedIndex = 0; } catch { } } private void btnsuche_Click(object sender, EventArgs e) { if (txtPartnerNr.Text.Trim() != "") { string s = txtPartnerNr.Text.Replace(".", "").Trim(); if (DivFnkt.IsNumeric(s)) { trefferlistedata.DataSource = clsPartner.search_partner(s, 50, 0); TableHelper.FormatTable(ref clsPartner.partnerliste, "Partner", ref trefferlistedata, true); try { trefferlistedata.Columns[0].Width = trefferlistedata.Columns[0].Width + 20; } catch { } if (clsPartner.partnerliste.Rows.Count == 1) { trefferlistedata.SelectedIndex = 0; trefferlistedata_DoubleClick(sender, e); } } } if (txtKurzname.Text.Trim() != "") { string s = txtKurzname.Text.Trim(); trefferlistedata.DataSource = clsPartner.search_partner(s, 50, 1); TableHelper.FormatTable(ref clsPartner.partnerliste, "Partner", ref trefferlistedata, true); try { trefferlistedata.Columns[0].Width = trefferlistedata.Columns[0].Width + 20; } catch { } if (clsPartner.partnerliste.Rows.Count == 1) { trefferlistedata.SelectedIndex = 0; trefferlistedata_DoubleClick(sender, e); } } try { TableHelper.FormatTable(ref clsPartner.partnerliste, "Partner", ref trefferlistedata, true); try { trefferlistedata.Columns[0].Width = trefferlistedata.Columns[0].Width + 20; } catch { } trefferlistedata.SelectedIndex = 0; try { if (!bpperson_changed) { get_details(); //partnernr = Convert.ToInt32(TableHelper.GetCellCValue(ref trefferlistedata, "nrpar00")); //partnerkurzname = TableHelper.GetCellCValue(ref this.trefferlistedata, "bkpar00"); } } catch { } } catch { } try { if (trefferlistedata.View.Records.Count > 0) sfButton1.Enabled = true; else sfButton1.Enabled = false; } catch { sfButton1.Enabled = false; } } private void txtPartnerNr_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { btnsuche_Click(sender, e); } } private void trefferlistedata_SelectionChanged(object sender, Syncfusion.WinForms.DataGrid.Events.SelectionChangedEventArgs e) { try { get_details(); //partnernr = Convert.ToInt32(TableHelper.GetCellCValue(ref trefferlistedata, "nrpar00")); //partnerkurzname = TableHelper.GetCellCValue(ref this.trefferlistedata, "bkpar00"); //partnersaldiert = Convert.ToBoolean(TableHelper.GetCellCValue(ref this.trefferlistedata, "saldiert")); } catch { } } private void trefferlistedata_DoubleClick(object sender, EventArgs e) { try { if (get_details()) { this.DialogResult = DialogResult.OK; this.Close(); } } catch { } } public bool get_details() { try { partnernr = Convert.ToInt32(TableHelper.GetCellCValue(ref this.trefferlistedata, "nrpar00")); partnerkurzname = TableHelper.GetCellCValue(ref this.trefferlistedata, "bkpar00"); partnersaldiert = Convert.ToBoolean(TableHelper.GetCellCValue(ref this.trefferlistedata, "saldiert")); if (!check_bp_person) return true; if (check_bp_person && personendokument && partnernr < 99999999) { DB dB = new DB(AppParams.connectionstring); dB.Get_Tabledata("SELECT TOP 1 person_nummer FROM Partner_Rel WHERE BP_Nr=" + partnernr.ToString() + " AND BP_Person_Rel_Typ=6 AND aktiv=1", false, true); if (dB.dsdaten.Tables[0].Rows.Count > 0) { partnernr = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0][0]); dB.Get_Tabledata("Select bkpar00, saldiert from partner where nrpar00=" + partnernr.ToString(), false, true); if (dB.dsdaten.Tables[0].Rows.Count > 0) { partnerkurzname = dB.dsdaten.Tables[0].Rows[0][0].ToString(); partnersaldiert = Convert.ToBoolean(dB.dsdaten.Tables[0].Rows[0][1]); bpperson_changed = true; } } dB = null; return true; } if (check_bp_person && !personendokument && partnernr > 100000000) { DB db = new DB(AppParams.connectionstring); try { db.clear_parameter(); db.add_parameter("@personnr", partnernr.ToString()); db.Get_Tabledata("ondoc_bps_zur_person", true, false); if (db.dsdaten.Tables[0].Rows.Count == 0) { return false; } if (db.dsdaten.Tables[0].Rows.Count == 1) { partnerkurzname = db.dsdaten.Tables[0].Rows[0][0].ToString(); partnersaldiert = Convert.ToBoolean(db.dsdaten.Tables[0].Rows[0][1]); partnernr = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][2]); bpperson_changed = true; return true; } if (db.dsdaten.Tables[0].Rows.Count > 1) { MessageBox.Show("Für die gewählte Person exisieren mehrere BP's." + Environment.NewLine + "Bitte erneut suchen.", "Partnersuche", MessageBoxButtons.OK, MessageBoxIcon.Information); return false; } } catch { return false; } finally { db=null; } } if (partnersaldiert) { DB db = new DB(AppParams.connectionstring); try { db.Get_Tabledata("Select * from dokumenttyp where dokumenttypnr=" + dokumenttypnr.ToString(),false,true); if (Convert.ToBoolean(db.dsdaten.Tables[0].Rows[0]["vertrag"]) == true) { MessageBox.Show("Das Dokument " + db.dsdaten.Tables[0].Rows[0]["Bezeichnung"].ToString() + " kann nicht für einen saldierten Partner erstellt werden.","Dokument erstellen", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } } catch { return false; } finally { db = null; } } return true; } catch { return false; } } private void sfButton1_Click(object sender, EventArgs e) { if (get_details()) { this.DialogResult = DialogResult.OK; this.Close(); } //partnernr = Convert.ToInt32(TableHelper.GetCellCValue(ref this.trefferlistedata, "nrpar00")); //partnerkurzname = TableHelper.GetCellCValue(ref this.trefferlistedata, "bkpar00"); //partnersaldiert = Convert.ToBoolean(TableHelper.GetCellCValue(ref this.trefferlistedata, "saldiert")); } private void sfButton2_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Abort; this.Close(); } void TableControl_DoubleClick(object sender, System.EventArgs e) { try { if (!get_details()) { return; }; //partnernr = Convert.ToInt32(TableHelper.GetCellCValue(ref this.trefferlistedata, "nrpar00")); //partnerkurzname = TableHelper.GetCellCValue(ref this.trefferlistedata, "bkpar00"); //partnersaldiert = Convert.ToBoolean(TableHelper.GetCellCValue(ref this.trefferlistedata, "saldiert")); this.DialogResult = DialogResult.OK; this.Close(); } catch { } } private void trefferlistedata_DrawCell(object sender, Syncfusion.WinForms.DataGrid.Events.DrawCellEventArgs e) { if (e.Column.MappingName == "Typ") { var selectedItem = e.DataRow; var dataRow = (e.DataRow.RowData as DataRowView).Row; if (Convert.ToInt32(dataRow["Typ"]) == 1) { e.Graphics.DrawImage(OnDoc.Properties.Resources.BP_16x16_32, e.Bounds.X + 5, e.Bounds.Y + 3); } else { e.Graphics.DrawImage(OnDoc.Properties.Resources.Person_16x16_32, e.Bounds.X + 5, e.Bounds.Y + 3); } Pen borderPen = new Pen(Color.LightGray); e.Graphics.DrawLine(borderPen, e.Bounds.Right, e.Bounds.Top, e.Bounds.Right, e.Bounds.Bottom); e.Graphics.DrawLine(borderPen, e.Bounds.Left, e.Bounds.Bottom, e.Bounds.Right, e.Bounds.Bottom); e.Handled = true; return; } e.Handled = false; } } }