Precision
This commit is contained in:
@@ -2,13 +2,20 @@
|
|||||||
|
|
||||||
namespace Jugenddienst_Stunden.Converter;
|
namespace Jugenddienst_Stunden.Converter;
|
||||||
internal class SecondsTimeConverter : IValueConverter {
|
internal class SecondsTimeConverter : IValueConverter {
|
||||||
|
|
||||||
private int seconds;
|
private int seconds;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Konvertiert eine Sekundenangabe nach Stunden:Minuten, auch bei mehr als 24 Stunden
|
||||||
|
/// </summary>
|
||||||
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) {
|
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) {
|
||||||
if (value is null)
|
if (value is null)
|
||||||
return "0:0";
|
return "0:0";
|
||||||
if (value is int) {
|
if (value is int) {
|
||||||
seconds = (int)value;
|
seconds = (int)value;
|
||||||
|
}
|
||||||
|
if (value is double) {
|
||||||
|
seconds = (int)Math.Round((double)value);
|
||||||
} else {
|
} else {
|
||||||
int.TryParse((string?)value, out seconds);
|
int.TryParse((string?)value, out seconds);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,15 +4,15 @@ using System.Collections.ObjectModel;
|
|||||||
|
|
||||||
namespace Jugenddienst_Stunden.Types;
|
namespace Jugenddienst_Stunden.Types;
|
||||||
|
|
||||||
internal class Hours : ObservableObject {
|
internal partial class Hours : ObservableObject {
|
||||||
public int? Zeit;
|
public double? Zeit;
|
||||||
public int? Nominal;
|
public double? Nominal;
|
||||||
//public Dictionary<DateOnly,NominalDay> nominal_day_api;
|
//public Dictionary<DateOnly,NominalDay> nominal_day_api;
|
||||||
public List<NominalDay>? Nominal_day_api;
|
public List<NominalDay>? Nominal_day_api;
|
||||||
//public Dictionary<int,NominalWeek> nominal_week_api;
|
//public Dictionary<int,NominalWeek> nominal_week_api;
|
||||||
public List<NominalWeek>? Nominal_week_api;
|
public List<NominalWeek>? Nominal_week_api;
|
||||||
//public List<string> time_line;
|
//public List<string> time_line;
|
||||||
public string? Zeit_total;
|
public double? Zeit_total;
|
||||||
|
|
||||||
//https://stackoverflow.com/questions/29449641/deserialize-json-when-a-value-can-be-an-object-or-an-empty-array/29450279#29450279
|
//https://stackoverflow.com/questions/29449641/deserialize-json-when-a-value-can-be-an-object-or-an-empty-array/29450279#29450279
|
||||||
//[JsonConverter(typeof(JsonSingleOrEmptyArrayConverter<Hours>))]
|
//[JsonConverter(typeof(JsonSingleOrEmptyArrayConverter<Hours>))]
|
||||||
@@ -21,16 +21,23 @@ internal class Hours : ObservableObject {
|
|||||||
public List<TimeDay> zeit_total_daily_api;
|
public List<TimeDay> zeit_total_daily_api;
|
||||||
public List<DayTime>? daytime;
|
public List<DayTime>? daytime;
|
||||||
//public List<string> wochensumme;
|
//public List<string> wochensumme;
|
||||||
public int overtime_month;
|
|
||||||
public int overtime;
|
[ObservableProperty]
|
||||||
|
public double overtime_month;
|
||||||
|
|
||||||
|
[ObservableProperty]
|
||||||
|
public double overtime;
|
||||||
//public List<string> overtime_day;
|
//public List<string> overtime_day;
|
||||||
public int zeitausgleich;
|
|
||||||
public int zeitausgleich_month;
|
[ObservableProperty]
|
||||||
public int holiday;
|
public double zeitausgleich;
|
||||||
public int krankheit;
|
|
||||||
public int weiterbildung;
|
public double zeitausgleich_month;
|
||||||
public int bereitschaft;
|
public double holiday;
|
||||||
public int bereitschaft_month;
|
public double krankheit;
|
||||||
|
public double weiterbildung;
|
||||||
|
public double bereitschaft;
|
||||||
|
public double bereitschaft_month;
|
||||||
//public Operator operator_api;
|
//public Operator operator_api;
|
||||||
public DateTime Today;
|
public DateTime Today;
|
||||||
public DateTime Date;
|
public DateTime Date;
|
||||||
|
|||||||
@@ -2,6 +2,6 @@
|
|||||||
internal class NominalDay {
|
internal class NominalDay {
|
||||||
public int day_number;
|
public int day_number;
|
||||||
public int month_number;
|
public int month_number;
|
||||||
public int hours;
|
public double hours;
|
||||||
public DateOnly date;
|
public DateOnly date;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
internal class NominalWeek {
|
internal class NominalWeek {
|
||||||
public int Week_number;
|
public int Week_number;
|
||||||
public int Hours;
|
public double Hours;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,5 +3,5 @@
|
|||||||
public class Sollstunden {
|
public class Sollstunden {
|
||||||
public int Timetable { get; set; }
|
public int Timetable { get; set; }
|
||||||
public int Wochentag { get; set; }
|
public int Wochentag { get; set; }
|
||||||
public float Zeit { get; set; }
|
public double Zeit { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,5 +5,5 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
internal struct TimeDay {
|
internal struct TimeDay {
|
||||||
public int Day { get; set; }
|
public int Day { get; set; }
|
||||||
public decimal Hours { get; set; }
|
public double Hours { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,10 +56,9 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
|
|||||||
|
|
||||||
public string Title { get; set; } = GlobalVar.Name + " " + GlobalVar.Surname;
|
public string Title { get; set; } = GlobalVar.Name + " " + GlobalVar.Surname;
|
||||||
|
|
||||||
private Hours _hour;
|
[ObservableProperty]
|
||||||
public Hours Hours {
|
private Hours hours;
|
||||||
get => _hour;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Mindest-Datum für den Datepicker
|
/// Mindest-Datum für den Datepicker
|
||||||
@@ -94,42 +93,42 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Monatsübersicht: Geleistete Stunden
|
/// Monatsübersicht: Geleistete Stunden
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? ZeitCalculated {
|
public double? ZeitCalculated {
|
||||||
get => Hours.Zeit_total;
|
get => Hours.Zeit_total;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Monatsübersicht: Sollstunden
|
/// Monatsübersicht: Sollstunden
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int? Nominal {
|
public double? Nominal {
|
||||||
get => Hours.Nominal;
|
get => Hours.Nominal;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Monatsübersicht: Differenz zwischen Soll und geleisteten Stunden
|
/// Monatsübersicht: Differenz zwischen Soll und geleisteten Stunden
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int? Overtime {
|
public double? Overtime {
|
||||||
get => Hours.overtime;
|
get => Hours.overtime;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Monatsübersicht: Restüberstunden insgesamt
|
/// Monatsübersicht: Restüberstunden insgesamt
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int OvertimeMonth {
|
public double OvertimeMonth {
|
||||||
get => Hours.overtime_month;
|
get => Hours.overtime_month;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int Zeitausgleich {
|
public double Zeitausgleich {
|
||||||
get => Hours.zeitausgleich;
|
get => Hours.zeitausgleich;
|
||||||
}
|
}
|
||||||
public int ZeitausgleichMonth {
|
public double ZeitausgleichMonth {
|
||||||
get => Hours.zeitausgleich_month;
|
get => Hours.zeitausgleich_month;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Monatsübersicht: Resturlaub
|
/// Monatsübersicht: Resturlaub
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int Holiday {
|
public double Holiday {
|
||||||
get => Hours.holiday;
|
get => Hours.holiday;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -158,7 +157,7 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
|
|||||||
/// CTOR
|
/// CTOR
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public StundenViewModel() {
|
public StundenViewModel() {
|
||||||
_hour = new Hours();
|
Hours = new Hours();
|
||||||
|
|
||||||
LoadOverview = "Lade Summen für " + DateToday.ToString("MMMM");
|
LoadOverview = "Lade Summen für " + DateToday.ToString("MMMM");
|
||||||
|
|
||||||
@@ -202,7 +201,7 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
|
|||||||
private async Task LoadData() {
|
private async Task LoadData() {
|
||||||
try {
|
try {
|
||||||
BaseResponse dat = await HoursBase.LoadBase("hours&year=" + DateToday.ToString("yyyy") + "&month=" + DateToday.ToString("MM"));
|
BaseResponse dat = await HoursBase.LoadBase("hours&year=" + DateToday.ToString("yyyy") + "&month=" + DateToday.ToString("MM"));
|
||||||
_hour = dat.hour;
|
Hours = dat.hour;
|
||||||
Settings = dat.settings;
|
Settings = dat.settings;
|
||||||
|
|
||||||
if (Settings.Version != AppInfo.Current.VersionString.Substring(0, 5)) {
|
if (Settings.Version != AppInfo.Current.VersionString.Substring(0, 5)) {
|
||||||
@@ -295,14 +294,14 @@ internal partial class StundenViewModel : ObservableObject, IQueryAttributable,
|
|||||||
/// Refreshes all properties
|
/// Refreshes all properties
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void RefreshProperties() {
|
private void RefreshProperties() {
|
||||||
|
OnPropertyChanged(nameof(Hours));
|
||||||
|
OnPropertyChanged(nameof(Title));
|
||||||
OnPropertyChanged(nameof(Nominal));
|
OnPropertyChanged(nameof(Nominal));
|
||||||
OnPropertyChanged(nameof(Overtime));
|
OnPropertyChanged(nameof(Overtime));
|
||||||
OnPropertyChanged(nameof(OvertimeMonth));
|
OnPropertyChanged(nameof(OvertimeMonth));
|
||||||
OnPropertyChanged(nameof(Zeitausgleich));
|
OnPropertyChanged(nameof(Zeitausgleich));
|
||||||
OnPropertyChanged(nameof(ZeitCalculated));
|
OnPropertyChanged(nameof(ZeitCalculated));
|
||||||
OnPropertyChanged(nameof(Holiday));
|
OnPropertyChanged(nameof(Holiday));
|
||||||
OnPropertyChanged(nameof(Hours));
|
|
||||||
OnPropertyChanged(nameof(Title));
|
|
||||||
OnPropertyChanged(nameof(MinimumDate));
|
OnPropertyChanged(nameof(MinimumDate));
|
||||||
OnPropertyChanged(nameof(MaximumDate));
|
OnPropertyChanged(nameof(MaximumDate));
|
||||||
OnPropertyChanged(nameof(LoadOverview));
|
OnPropertyChanged(nameof(LoadOverview));
|
||||||
|
|||||||
Reference in New Issue
Block a user