Billing: Include all deliveries when calculating under delivery for area commitments
All checks were successful
Test / Run tests (push) Successful in 1m43s
All checks were successful
Test / Run tests (push) Successful in 1m43s
This commit is contained in:
@ -81,11 +81,11 @@ namespace Elwig.Documents {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static string FormatRow(
|
private static string FormatRow(
|
||||||
int obligation, int right, int delivery, int? payment = null, int? area = null,
|
int obligation, int right, int delivery, int? totalDelivery = null, int? payment = null, int? area = null,
|
||||||
bool isGa = false, bool showPayment = false, bool showArea = false
|
bool isGa = false, bool showPayment = false, bool showArea = false
|
||||||
) {
|
) {
|
||||||
|
totalDelivery ??= delivery;
|
||||||
payment ??= delivery;
|
payment ??= delivery;
|
||||||
var baseline = showPayment ? payment : delivery;
|
|
||||||
|
|
||||||
if (showArea) {
|
if (showArea) {
|
||||||
return $"<td>{(area == null ? "" : $"{area:N0}")}</td>" +
|
return $"<td>{(area == null ? "" : $"{area:N0}")}</td>" +
|
||||||
@ -95,15 +95,15 @@ namespace Elwig.Documents {
|
|||||||
|
|
||||||
return $"<td>{(obligation == 0 ? "-" : $"{obligation:N0}")}</td>" +
|
return $"<td>{(obligation == 0 ? "-" : $"{obligation:N0}")}</td>" +
|
||||||
$"<td>{(right == 0 ? "-" : $"{right:N0}")}</td>" +
|
$"<td>{(right == 0 ? "-" : $"{right:N0}")}</td>" +
|
||||||
$"<td>{(baseline < obligation ? $"<b>{obligation - baseline:N0}</b>" : "-")}</td>" +
|
$"<td>{(totalDelivery < obligation ? $"<b>{obligation - totalDelivery:N0}</b>" : "-")}</td>" +
|
||||||
$"<td>{(baseline >= obligation && delivery <= right ? $"{right - delivery:N0}" : "-")}</td>" +
|
$"<td>{(delivery <= right ? $"{right - delivery:N0}" : "-")}</td>" +
|
||||||
$"<td>{(obligation == 0 && right == 0 ? "-" : (delivery > right ? ((isGa ? "<b>" : "") + $"{delivery - right:N0}" + (isGa ? "</b>" : "")) : "-"))}</td>" +
|
$"<td>{(obligation == 0 && right == 0 ? "-" : (delivery > right ? ((isGa ? "<b>" : "") + $"{delivery - right:N0}" + (isGa ? "</b>" : "")) : "-"))}</td>" +
|
||||||
(showPayment ? $"<td>{(isGa ? "" : obligation == 0 && right == 0 ? "-" : $"{payment:N0}")}</td>" : "") +
|
(showPayment ? $"<td>{(isGa ? "" : obligation == 0 && right == 0 ? "-" : $"{payment:N0}")}</td>" : "") +
|
||||||
$"<td>{delivery:N0}</td>";
|
$"<td>{totalDelivery:N0}</td>";
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string FormatRow(MemberBucket bucket, bool isGa = false, bool showPayment = false, bool showArea = false) {
|
private static string FormatRow(MemberBucket bucket, bool isGa = false, bool showPayment = false, bool showArea = false) {
|
||||||
return FormatRow(bucket.Obligation, bucket.Right, bucket.Delivery, bucket.Payment, bucket.Area, isGa, showPayment, showArea);
|
return FormatRow(bucket.Obligation, bucket.Right, bucket.Delivery, bucket.DeliveryTotal, bucket.Payment, bucket.Area, isGa, showPayment, showArea);
|
||||||
}
|
}
|
||||||
|
|
||||||
public string PrintBucketTable(
|
public string PrintBucketTable(
|
||||||
|
@ -17,7 +17,7 @@ namespace Elwig.Helpers {
|
|||||||
|
|
||||||
public record struct AreaComBucket(int Area, int Obligation, int Right);
|
public record struct AreaComBucket(int Area, int Obligation, int Right);
|
||||||
public record struct UnderDelivery(int Weight, int Diff);
|
public record struct UnderDelivery(int Weight, int Diff);
|
||||||
public record struct MemberBucket(string Name, int Area, int Obligation, int Right, int Delivery, int DeliveryStrict, int Payment);
|
public record struct MemberBucket(string Name, int Area, int Obligation, int Right, int Delivery, int DeliveryStrict, int DeliveryTotal, int Payment);
|
||||||
public record struct MemberStat(string Variety, string Discr, int Weight);
|
public record struct MemberStat(string Variety, string Discr, int Weight);
|
||||||
public record struct ModifierStat(string ModId, string Name, int Count, decimal? Min, decimal? Max, decimal Sum);
|
public record struct ModifierStat(string ModId, string Name, int Count, decimal? Min, decimal? Max, decimal Sum);
|
||||||
|
|
||||||
@ -442,6 +442,7 @@ namespace Elwig.Helpers {
|
|||||||
rightsAndObligations.GetValueOrDefault(id).Right,
|
rightsAndObligations.GetValueOrDefault(id).Right,
|
||||||
deliveryBuckets.GetValueOrDefault(id),
|
deliveryBuckets.GetValueOrDefault(id),
|
||||||
deliveryBucketsStrict.GetValueOrDefault(id),
|
deliveryBucketsStrict.GetValueOrDefault(id),
|
||||||
|
deliveryBuckets.GetValueOrDefault(id) + deliveryBuckets.GetValueOrDefault(id + "_"),
|
||||||
paymentBuckets.GetValueOrDefault(id)
|
paymentBuckets.GetValueOrDefault(id)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ namespace Elwig.Helpers {
|
|||||||
public static class AppDbUpdater {
|
public static class AppDbUpdater {
|
||||||
|
|
||||||
// Don't forget to update value in Tests/fetch-resources.bat!
|
// Don't forget to update value in Tests/fetch-resources.bat!
|
||||||
public static readonly int RequiredSchemaVersion = 30;
|
public static readonly int RequiredSchemaVersion = 31;
|
||||||
|
|
||||||
private static int VersionOffset = 0;
|
private static int VersionOffset = 0;
|
||||||
|
|
||||||
|
14
Elwig/Resources/Sql/30-31.sql
Normal file
14
Elwig/Resources/Sql/30-31.sql
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
-- schema version 30 to 31
|
||||||
|
|
||||||
|
PRAGMA writable_schema = ON;
|
||||||
|
|
||||||
|
DROP VIEW v_under_delivery_bucket_strict;
|
||||||
|
CREATE VIEW v_under_delivery_bucket_strict AS
|
||||||
|
SELECT c.year, c.mgnr, c.bucket, c.min_kg, SUM(COALESCE(p.weight, 0)) AS weight
|
||||||
|
FROM v_area_commitment_bucket_strict c
|
||||||
|
LEFT JOIN v_payment_bucket_strict p ON (p.year, p.mgnr, p.bucket) = (c.year, c.mgnr, c.bucket) OR (p.year, p.mgnr, p.bucket) = (c.year, c.mgnr, c.bucket || '_')
|
||||||
|
GROUP BY c.year, c.mgnr, c.bucket
|
||||||
|
ORDER BY c.year, c.mgnr, c.bucket;
|
||||||
|
|
||||||
|
PRAGMA schema_version = 3001;
|
||||||
|
PRAGMA writable_schema = OFF;
|
@ -1 +1 @@
|
|||||||
curl --fail -s -L "https://elwig.at/files/create.sql?v=30" -u "elwig:ganzGeheim123!" -o "Resources\Sql\Create.sql"
|
curl --fail -s -L "https://elwig.at/files/create.sql?v=31" -u "elwig:ganzGeheim123!" -o "Resources\Sql\Create.sql"
|
||||||
|
Reference in New Issue
Block a user