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.

480 lines
18 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;
using OnDoc.Diverses;
using Windows.AI.MachineLearning.Preview;
using BroadcastListener.Classes;
using BroadcastListener.Interfaces;
using static BroadcastListener.Classes.Factory;
using Windows.Phone.Notification.Management;
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 bpdokument { get; set; } = false;
public bool check_bp_person { get; set; } = false;
public int dokumenttypnr { get; set; } = 0;
public bool keepalive { get; set; } = false;
public bool keepopen { get; set; } = false;
public Partnersuche(bool keepalive = false)
{
InitializeComponent();
clsPartner.set_connectionstring(AppParams.connectionstring);
this.trefferlistedata.TableControl.DoubleClick += TableControl_DoubleClick;
this.keepalive = keepalive;
}
public Partnersuche(bool personendokument, bool check_bp_person,bool bpdokument)
{
InitializeComponent();
this.personendokument = personendokument;
this.check_bp_person = check_bp_person;
this.bpdokument = bpdokument;
clsPartner.set_connectionstring(AppParams.connectionstring);
this.trefferlistedata.TableControl.DoubleClick += TableControl_DoubleClick;
}
public Partnersuche(bool personendokument, bool check_bp_person, bool bpdokument,int dokumenttypnr=0)
{
InitializeComponent();
this.personendokument = personendokument;
this.bpdokument= bpdokument;
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);
this.toolTip1.SetToolTip(this.btnbpperson, "Partner (BP's) von der Person / Person vom Partner (BP)");
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 { }
this.Text = "Kunde suchen";
this.lblPartnerNr.Text = "Kunde-Nr";
//if (personendokument) {
// this.Text = "Person suchen";
// this.lblPartnerNr.Text = "Person-Nr.";
//}
//if (bpdokument) {
// this.Text = "Partner suchen";
// this.lblPartnerNr.Text = "Partner-Nr.";
//}
}
private void btnsuche_Click(object sender, EventArgs e)
{
if (chkkeepalive.Checked) { keepopen = true; }
if (txtPartnerNr.Text.Trim() != "")
{
string s = txtPartnerNr.Text.Replace(".", "").Trim();
if (DivFnkt.IsNumeric(s))
{
trefferlistedata.DataSource = clsPartner.search_partner(s, 50, 0,personendokument,bpdokument, chksaldiert.Checked);
TableHelper.FormatTable(ref clsPartner.partnerliste, "Partner", ref trefferlistedata, true);
trefferlistedata.Columns[0].HeaderText = "Kunden-Nr.";
try
{
trefferlistedata.Columns[0].Width = trefferlistedata.Columns[0].Width + 20;
}
catch { }
if (clsPartner.partnerliste.Rows.Count == 1)
{
trefferlistedata.SelectedIndex = 0;
get_details();
if (keepopen) { keepopen = false; return; }
trefferlistedata_DoubleClick(sender, e);
}
}
}
if (txtKurzname.Text.Trim() != "")
{
string s = txtKurzname.Text.Trim();
trefferlistedata.DataSource = clsPartner.search_partner(s, 50, 1, personendokument, bpdokument, chksaldiert.Checked);
TableHelper.FormatTable(ref clsPartner.partnerliste, "Partner", ref trefferlistedata, true);
trefferlistedata.Columns[0].HeaderText = "Kunden-Nr.";
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())
{
if (!keepalive)
{
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");
personpartner_function(partnernr.ToString());
if (personendokument && partnernr < 100000000) return false;
if (bpdokument && partnernr > 100000000) return false;
partnersaldiert = Convert.ToBoolean(TableHelper.GetCellCValue(ref this.trefferlistedata, "saldiert"));
if (!check_bp_person) return true;
if (check_bp_person && personendokument && partnernr < 99999999) { return false; }
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"));
if (!keepalive) {
this.DialogResult = DialogResult.OK;
this.Close();
}
else
{
//Broadcaster().Broadcast("AdminDokErstellung", new SenderInfo("AdminDokErstellung", "", this.dokumenttypnr.ToString()));
Broadcaster().Broadcast("SBPartnersuche", new SenderInfo("Partnersuche","SelectedPartner",this.partnernr.ToString()));
}
}
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;
}
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
var records = trefferlistedata.View.GetSelectedRecords();
if (records.Count < 1) {
this.partnerDetailsToolStripMenuItem.Enabled = false;
this.personDesKundenToolStripMenuItem.Enabled = false;
this.kundenDerPersonToolStripMenuItem.Enabled = false;
return;
}
this.partnerDetailsToolStripMenuItem.Enabled = true;
int ipartnernr = Convert.ToInt32(TableHelper.GetCellCValue(ref this.trefferlistedata, "nrpar00"));
if (ipartnernr < 99999999)
{
personDesKundenToolStripMenuItem.Enabled = true;
kundenDerPersonToolStripMenuItem.Enabled = false;
}
else
{
personDesKundenToolStripMenuItem.Enabled = false;
kundenDerPersonToolStripMenuItem.Enabled = true;
}
}
private void partnerDetailsToolStripMenuItem_Click(object sender, EventArgs e)
{
var records = trefferlistedata.View.GetSelectedRecords();
var datarow = records[0] as DataRowView;
PartnerDetails pd = new PartnerDetails(Convert.ToInt32(datarow[0]));
pd.ShowDialog();
}
private void chksaldiert_CheckedChanged(object sender, EventArgs e)
{
btnsuche_Click(sender, e);
}
private void personDesKundenToolStripMenuItem_Click(object sender, EventArgs e)
{
int nr = 0;
var records = trefferlistedata.View.GetSelectedRecords();
var datarow = records[0] as DataRowView;
nr = Convert.ToInt32(datarow[0]);
clsPartner.partnerderperson(nr, 8);
if (clsPartner.partnerliste.Rows.Count > 0)
{
trefferlistedata.DataSource = clsPartner.partnerliste;
this.txtPartnerNr.Text = clsPartner.partnerliste.Rows[0][0].ToString();
this.txtKurzname.Text = "";
keepopen = true;
btnsuche_Click(sender, e);
}
//string pers = clsPartner.partnerderperson(nr, 8);
//if (pers != "")
//{
// this.txtPartnerNr.Text = pers;
// keepopen = true;
// btnsuche_Click(sender, e);
//}
}
private void kundenDerPersonToolStripMenuItem_Click(object sender, EventArgs e)
{
int nr = 0;
var records = trefferlistedata.View.GetSelectedRecords();
var datarow = records[0] as DataRowView;
nr = Convert.ToInt32(datarow[0]);
clsPartner.partnerderperson(nr, 9);
if (clsPartner.partnerliste.Rows.Count > 0)
{
trefferlistedata.DataSource = clsPartner.partnerliste;
TableHelper.FormatTable(ref clsPartner.partnerliste, "Partner", ref trefferlistedata, true);
trefferlistedata.SelectedIndex = 0;
get_details();
}
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
}
private void personDesKundenToolStripMenuItem_EnabledChanged(object sender, EventArgs e)
{
}
private void btnbpperson_Click(object sender, EventArgs e)
{
if (kundenDerPersonToolStripMenuItem.Enabled)
{
kundenDerPersonToolStripMenuItem_Click(sender, e);
keepopen = true;
return;
}
if (personDesKundenToolStripMenuItem.Enabled)
{
personDesKundenToolStripMenuItem_Click(sender, e);
keepopen = true;
return;
}
}
private void trefferlistedata_CellClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e)
{
try
{
var rowIndex = e.DataRow.RowIndex;
//Get the column index value
var columnIndex = e.DataColumn.ColumnIndex;
var selectedItem = e.DataRow;
var dataRow = (e.DataRow.RowData as DataRowView).Row;
string pnr = dataRow[0].ToString();
personpartner_function(pnr);
}
catch { }
}
private void personpartner_function(string pnr)
{
int ipartnernr = Convert.ToInt32(pnr);
if (ipartnernr < 99999999)
{
personDesKundenToolStripMenuItem.Enabled = true;
kundenDerPersonToolStripMenuItem.Enabled = false;
}
else
{
personDesKundenToolStripMenuItem.Enabled = false;
kundenDerPersonToolStripMenuItem.Enabled = true;
}
var records = trefferlistedata.View.GetSelectedRecords();
if (records.Count < 1)
{
btnbpperson.Enabled = false;
}
else
{
btnbpperson.Enabled = true;
}
}
}
}