Dtos: merge under/over delivery with percent column
This commit is contained in:
@ -19,8 +19,7 @@ namespace Elwig.Models.Dtos {
|
||||
("Areas", "Fläche", "m²", 16),
|
||||
("DeliveryObligations", "Lieferpflicht", "kg", 22),
|
||||
("Weights", "Geliefert", "kg", 22),
|
||||
("UnderDeliveries", "Unterliefert", "kg", 22),
|
||||
("Percents", "Prozent", "%", 16),
|
||||
("UnderDeliveries", "Unterliefert", "kg|%", 34),
|
||||
};
|
||||
|
||||
public AreaComUnderDeliveryData(IEnumerable<AreaComUnderDeliveryRow> rows, int year) :
|
||||
@ -61,11 +60,8 @@ namespace Elwig.Models.Dtos {
|
||||
public int[] Areas;
|
||||
public int[] DeliveryObligations;
|
||||
public int[] Weights;
|
||||
public int?[] UnderDeliveries => Weights.Zip(DeliveryObligations)
|
||||
.Select(v => v.First < v.Second ? (int?)v.First - v.Second : null)
|
||||
.ToArray();
|
||||
public double?[] Percents => Weights.Zip(DeliveryObligations)
|
||||
.Select(v => v.First < v.Second ? (double?)v.First * 100.0 / v.Second - 100.0 : null)
|
||||
public (int? Kg, double? Percent)[] UnderDeliveries => Weights.Zip(DeliveryObligations)
|
||||
.Select(v => v.First < v.Second ? ((int?, double?))(v.First - v.Second, v.First * 100.0 / v.Second - 100.0) : (null, null))
|
||||
.ToArray();
|
||||
|
||||
public AreaComUnderDeliveryRow(IEnumerable<AreaComUnderDeliveryRowSingle> rows) {
|
||||
|
@ -18,8 +18,7 @@ namespace Elwig.Models.Dtos {
|
||||
("DeliveryObligation", "Lieferpflicht", "kg", 22),
|
||||
("DeliveryRight", "Lieferrecht", "kg", 22),
|
||||
("Weight", "Geliefert", "kg", 22),
|
||||
("OverUnderDelivery", "Über-/Unterliefert", "kg", 35),
|
||||
("Percent", "Prozent", "%", 16),
|
||||
("OverUnderDelivery", "Über-/Unterliefert", "kg|%", 34),
|
||||
};
|
||||
|
||||
public OverUnderDeliveryData(IEnumerable<OverUnderDeliveryRow> rows, int year) :
|
||||
@ -70,12 +69,8 @@ namespace Elwig.Models.Dtos {
|
||||
[Column("sum")]
|
||||
public int Weight { get; set; }
|
||||
[NotMapped]
|
||||
public int? OverUnderDelivery =>
|
||||
Weight < DeliveryObligation ? Weight - DeliveryObligation :
|
||||
Weight > DeliveryRight ? Weight - DeliveryRight : null;
|
||||
[NotMapped]
|
||||
public double? Percent =>
|
||||
Weight < DeliveryObligation ? Weight * 100.0 / DeliveryObligation - 100.0 :
|
||||
Weight > DeliveryRight ? Weight * 100.0 / DeliveryRight - 100 : null;
|
||||
public (int? Kg, double? Percent) OverUnderDelivery =>
|
||||
Weight < DeliveryObligation ? (Weight - DeliveryObligation, Weight * 100.0 / DeliveryObligation - 100.0) :
|
||||
Weight > DeliveryRight ? (Weight - DeliveryRight, Weight * 100.0 / DeliveryRight - 100) : (null, null);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user