diff --git a/Elwig/Helpers/Billing/Billing.cs b/Elwig/Helpers/Billing/Billing.cs index 3b8dfdd..506ccb9 100644 --- a/Elwig/Helpers/Billing/Billing.cs +++ b/Elwig/Helpers/Billing/Billing.cs @@ -45,7 +45,15 @@ namespace Elwig.Helpers.Billing { """); } - public async Task CalculateBuckets(bool allowAttrsIntoLower, bool avoidUnderDeliveries, bool honorGebunden, SqliteConnection? cnx = null) { + public async Task CalculateBuckets( + bool? honorGebundenField = null, + bool? allowAttributesIntoLower = null, + bool? avoidUnderDeliveries = null, + SqliteConnection? cnx = null + ) { + var honorGebunden = honorGebundenField ?? Season.Billing_HonorGebunden; + var allowAttrsIntoLower = allowAttributesIntoLower ?? Season.Billing_AllowAttrsIntoLower; + var avoidUnderDlvrs = avoidUnderDeliveries ?? Season.Billing_AvoidUnderDeliveries; var attrVals = Context.WineAttributes.ToDictionary(a => a.AttrId, a => (a.IsStrict, a.FillLower)); var attrForced = attrVals.Where(a => a.Value.IsStrict && a.Value.FillLower == 0).Select(a => a.Key).ToArray(); var ownCnx = cnx == null; @@ -125,7 +133,7 @@ namespace Elwig.Helpers.Billing { SET discr = excluded.discr, value = value + excluded.value; """); - if (!avoidUnderDeliveries) { + if (!avoidUnderDlvrs) { if (ownCnx) await cnx.DisposeAsync(); return; } diff --git a/Elwig/Helpers/Billing/BillingVariant.cs b/Elwig/Helpers/Billing/BillingVariant.cs index 70a8b93..249ae47 100644 --- a/Elwig/Helpers/Billing/BillingVariant.cs +++ b/Elwig/Helpers/Billing/BillingVariant.cs @@ -18,14 +18,10 @@ namespace Elwig.Helpers.Billing { Data = PaymentBillingData.FromJson(PaymentVariant.Data, Utils.GetVaributes(Context, Year, onlyDelivered: false)); } - public async Task Calculate() { + public async Task Calculate(bool? honorGebunden = null, bool ? allowAttrsIntoLower = null, bool? avoidUnderDeliveries = null) { using var cnx = await AppDbContext.ConnectAsync(); using var tx = await cnx.BeginTransactionAsync(); - await CalculateBuckets( - Season.Billing_AllowAttrsIntoLower, - Season.Billing_AvoidUnderDeliveries, - Season.Billing_HonorGebunden, - cnx); + await CalculateBuckets(honorGebunden, allowAttrsIntoLower, avoidUnderDeliveries, cnx); await DeleteInDb(cnx); await SetCalcTime(cnx); await CalculatePrices(cnx); @@ -149,8 +145,9 @@ namespace Elwig.Helpers.Billing { foreach (var part in parts) { var ungeb = part.Discr == "_"; var payAttrId = (part.Discr is "" or "_") ? null : part.Discr; - var geb = !ungeb && payAttrId == part.AttrId; - var price = Data.CalculatePrice(part.SortId, part.AttrId, part.QualId, geb, part.Oe, part.Kmw); + var attrId = part.AttrId == "B" ? "B" : payAttrId; // FIXME + var geb = !ungeb; // FIXME && payAttrId == part.AttrId; + var price = Data.CalculatePrice(part.SortId, attrId, part.QualId, geb, part.Oe, part.Kmw); var priceL = PaymentVariant.Season.DecToDb(price); inserts.Add((part.Year, part.DId, part.DPNr, part.BktNr, priceL, priceL * part.Value)); } diff --git a/Elwig/Windows/SeasonFinishWindow.xaml.cs b/Elwig/Windows/SeasonFinishWindow.xaml.cs index ad3c9ad..6836b4b 100644 --- a/Elwig/Windows/SeasonFinishWindow.xaml.cs +++ b/Elwig/Windows/SeasonFinishWindow.xaml.cs @@ -57,10 +57,7 @@ namespace Elwig.Windows { var b = new Billing(year); await b.FinishSeason(); - await b.CalculateBuckets( - s.Billing_AllowAttrsIntoLower, - s.Billing_AvoidUnderDeliveries, - s.Billing_HonorGebunden); + await b.CalculateBuckets(); Mouse.OverrideCursor = null; CalculateBucketsButton.IsEnabled = true; }