Owners and addresses works

This commit is contained in:
2021-03-10 22:36:32 +01:00
parent e61719e037
commit b4a9237290
4 changed files with 75 additions and 7 deletions

32
Helpers/ComboboxItem.cs Normal file
View File

@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Helpers
{
public class ComboboxItem
{
private readonly string _display;
private readonly int _hidden;
public ComboboxItem(string display,int hidden)
{
_display = display;
_hidden = hidden;
}
public int HiddenValue
{
get
{
return _hidden;
}
}
public override string ToString()
{
return _display;
}
}
}

View File

@ -12,6 +12,7 @@ using System.Threading.Tasks;
using System.Windows.Forms;
using System.Text.Json;
using System.IO;
using Helpers;
namespace StockInfo
{
@ -25,6 +26,7 @@ namespace StockInfo
private frmMyStocks stockWindow;
private frmSelling sellWindow;
private frmPerson personWindow;
public int SelectedPersonId { get; set; } = 0;
public frmInitial(
IStockRepository stockMemberRepository,
@ -170,8 +172,10 @@ namespace StockInfo
{
Cursor.Current = Cursors.WaitCursor;
personWindow = new frmPerson(_personRepository, _addressRepository);
personWindow.PersonId = SelectedPersonId;
Cursor.Current = DefaultCursor;
personWindow.ShowDialog();
LoadCmbOwners();
}
private void btnConnShares_Click(object sender, EventArgs e)
@ -186,19 +190,21 @@ namespace StockInfo
private void LoadCmbOwners()
{
cmbOwners.Items.Clear();
var owners = _personRepository.GetAllOwners();
if (owners.Count() > 0)
{
foreach (var person in owners)
{
var itemIndex = cmbOwners.Items.Add($"{person.FirstName} {person.LastName} ({person.NickName})");
var itemIndex = cmbOwners.Items.Add(new ComboboxItem ($"{person.FirstName} {person.LastName} ({person.NickName})",person.Id));
}
}
cmbOwners.Items.Add(new ComboboxItem($"< ny person> ", 0));
}
private void cmbOwners_SelectedIndexChanged(object sender, EventArgs e)
{
SelectedPersonId = ((ComboboxItem)cmbOwners.SelectedItem).HiddenValue;
}
}
}

View File

@ -295,6 +295,7 @@ namespace StockInfo
this.btnClose.TabIndex = 15;
this.btnClose.Text = "Close";
this.btnClose.UseVisualStyleBackColor = true;
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
//
// frmPerson
//

View File

@ -28,7 +28,9 @@ namespace StockInfo
public int PersonId { get; set; }
public int HomeAddressId { get; set; }
public int CheckHomeAddressId { get; set; }
public int InvoiceAddressId { get; set; }
public int CheckInvoiceAddressId { get; set; }
private void btnAddSave_Click(object sender, EventArgs e)
@ -38,7 +40,8 @@ namespace StockInfo
if (OK)
{
person = _personRepository.SavePerson(person);
PersonId = person.Id;
initializeAllFields();
PersonId = 0;
}
else
{
@ -58,17 +61,27 @@ namespace StockInfo
person.AccountNo = txtAccountNr.Text.IsNumeric() ? int.Parse(txtAccountNr.Text) : 0;
person.Born = txtPersonNr.Text;
person.Comments = txtComment.Text;
HomeAddressId = AddressSave();
if (rdbHome.Checked)
{
HomeAddressId = AddressSave(HomeAddressId);
}
else
{
InvoiceAddressId = AddressSave(InvoiceAddressId);
}
person.HomeAddress = HomeAddressId;
CheckHomeAddressId = HomeAddressId;
person.InvoiceAddress = InvoiceAddressId;
CheckInvoiceAddressId = InvoiceAddressId;
return (person, true);
}
private int AddressSave()
private int AddressSave(int AddressId)
{
var retval = 0;
bool changed = false;
Address address = new Address();
(address.Id, changed) = checkInt(AddressId.ToString());
(address.Street, changed) = checkString(txtStreet.Text);
(address.Street2, changed) = checkString(txtStreet2.Text);
(address.Zipcode, changed) = checkInt(txtZipCode.Text);
@ -103,7 +116,9 @@ namespace StockInfo
if (person != null)
{
HomeAddressId = person.HomeAddress;
CheckHomeAddressId = person.HomeAddress;
InvoiceAddressId = person.InvoiceAddress;
CheckInvoiceAddressId = person.InvoiceAddress;
fillFieldsFromPerson(person);
}
}
@ -145,6 +160,8 @@ namespace StockInfo
ClearAddress();
HomeAddressId = 0;
InvoiceAddressId = 0;
CheckHomeAddressId = 0;
CheckInvoiceAddressId = 0;
rdbHome.Checked = true;
}
@ -163,14 +180,14 @@ namespace StockInfo
{
if (rdbInvoiceAddr.Checked)
{
HomeAddressId = AddressSave();
HomeAddressId = AddressSave(HomeAddressId);
ClearAddress();
ShowAddressFrom(InvoiceAddressId);
radioOk = true;
}
else
{
InvoiceAddressId = AddressSave();
InvoiceAddressId = AddressSave(InvoiceAddressId);
ClearAddress();
ShowAddressFrom(HomeAddressId);
radioOk = true;
@ -181,5 +198,17 @@ namespace StockInfo
radioOk = false;
}
}
private void btnClose_Click(object sender, EventArgs e)
{
if (HomeAddressId != CheckHomeAddressId || InvoiceAddressId != CheckInvoiceAddressId)
{
MessageBox.Show("NB Save info first to insure not losing addresses");
}
else
{
this.Close();
}
}
}
}