diff --git a/Elwig/Helpers/AppDbContext.cs b/Elwig/Helpers/AppDbContext.cs index aaa057b..3b392f3 100644 --- a/Elwig/Helpers/AppDbContext.cs +++ b/Elwig/Helpers/AppDbContext.cs @@ -5,6 +5,7 @@ namespace Elwig.Helpers { public class AppDbContext : DbContext { public DbSet Countries { get; set; } public DbSet Members { get; set; } + public DbSet BillingAddresses { get; set; } public DbSet Gemeinden { get; set; } public DbSet Katastralgemeinden { get; set; } public DbSet Orte { get; set; } @@ -23,6 +24,7 @@ namespace Elwig.Helpers { protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite("Data Source=\"C:\\Users\\lorenz\\Desktop\\wgprod.sqlite3\"; foreign keys=true"); optionsBuilder.UseLazyLoadingProxies(); + base.OnConfiguring(optionsBuilder); } } } diff --git a/Elwig/Models/BillingAddress.cs b/Elwig/Models/BillingAddress.cs new file mode 100644 index 0000000..ef7205c --- /dev/null +++ b/Elwig/Models/BillingAddress.cs @@ -0,0 +1,31 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Elwig.Models { + [Table("member_billing_address"), PrimaryKey("MgNr")] + public class BillingAddress { + [Column("mgnr")] + public int MgNr { get; set; } + + [Column("name")] + public string Name { get; set; } + + [Column("country")] + public string CountryCode { get; set; } + + [Column("postal_dest")] + public string PostalDestId { get; set; } + + [Column("address")] + public string Address { get; set; } + + [ForeignKey("MgNr")] + public virtual Member Member { get; private set; } + + [ForeignKey("CountryCode")] + public virtual Country Country { get; private set; } + + [ForeignKey("CountryCode, PostalDestId")] + public virtual PostalDest PostalDest { get; private set; } + } +} diff --git a/Elwig/Models/Member.cs b/Elwig/Models/Member.cs index 5acc740..3670d86 100644 --- a/Elwig/Models/Member.cs +++ b/Elwig/Models/Member.cs @@ -122,5 +122,8 @@ namespace Elwig.Models { [InverseProperty("Member")] public virtual ISet Contracts { get; private set; } + + [InverseProperty("Member")] + public virtual BillingAddress BillingAddress { get; private set; } } } diff --git a/Elwig/Windows/MemberAdminWindow.xaml.cs b/Elwig/Windows/MemberAdminWindow.xaml.cs index 2137302..3d6c518 100644 --- a/Elwig/Windows/MemberAdminWindow.xaml.cs +++ b/Elwig/Windows/MemberAdminWindow.xaml.cs @@ -390,7 +390,23 @@ namespace Elwig.Windows { LfbisNrInput.Text = m.LfbisNr; BuchführendInput.IsChecked = m.IsBuchführend; - // TODO Rechnungsadresse + var billingAddr = m.BillingAddress; + if (billingAddr != null) { + BillingName.Text = billingAddr.Name; + BillingAddressInput.Text = billingAddr.Address; + AT_PlzDest? b = billingAddr.PostalDest.AtPlz; + if (b != null) { + BillingPlzInput.Text = b.Plz.ToString(); + BillingOrtInput.ItemsSource = b.AtPlz.Orte; + BillingOrtInput.SelectedItem = b; + } + } else { + BillingName.Text = ""; + BillingAddressInput.Text = ""; + BillingPlzInput.Text = ""; + BillingOrtInput.ItemsSource = null; + BillingOrtInput.SelectedItem = null; + } EntryDateInput.Text = (m.EntryDate != null) ? string.Join(".", m.EntryDate.Split("-").Reverse()) : null; ExitDateInput.Text = (m.ExitDate != null) ? string.Join(".", m.ExitDate.Split("-").Reverse()) : null;