Files
elwig/Elwig/Models/Entities/Modifier.cs
Lorenz Stechauner 658a1f4dc1
All checks were successful
Test / Run tests (push) Successful in 1m53s
DeliveryAdminWindow: Only show active modifiers in receipt mode
2024-07-06 18:50:02 +02:00

54 lines
1.7 KiB
C#

using Elwig.Helpers;
using Microsoft.EntityFrameworkCore;
using System;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
namespace Elwig.Models.Entities {
[Table("modifier"), PrimaryKey("Year", "ModId")]
public class Modifier {
[Column("year")]
public int Year { get; set; }
[Column("modid")]
public required string ModId { get; set; }
[Column("active")]
public bool IsActive { get; set; }
[Column("ordering")]
public int Ordering { get; set; }
[Column("name")]
public required string Name { get; set; }
[Column("abs")]
public long? AbsValue { get; set; }
[NotMapped]
public decimal? Abs {
get => AbsValue != null ? Season.DecFromDb(AbsValue.Value) : null;
set => AbsValue = value != null ? Season.DecToDb(value.Value) : null;
}
[Column("rel")]
public double? RelValue { get; set; }
[NotMapped]
public decimal? Rel {
get => (decimal?)RelValue;
set => RelValue = (double?)value;
}
[ForeignKey("Year")]
public virtual Season Season { get; private set; } = null!;
public string ValueStr =>
(Abs != null) ? $"{Utils.GetSign(Abs.Value)}{Math.Abs(Abs.Value).ToString("0." + string.Concat(Enumerable.Repeat('0', Season.Precision)))}\u00a0{Season.Currency.Symbol}/kg" :
(Rel != null) ? $"{Utils.GetSign(Rel.Value)}{(Math.Abs(Rel.Value) < 0.1m ? "\u2007" : "")}{Math.Abs(Rel.Value):0.00##\u00a0%}" :
"";
public override string ToString() {
return Name;
}
}
}