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.

326 lines
13 KiB

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;
}
}
}