79 lines
3.2 KiB
C#
79 lines
3.2 KiB
C#
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using Elwig.Models.Entities;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Windows;
|
|
|
|
namespace Elwig.ViewModels {
|
|
public partial class MemberBusinessSharesViewModel : ObservableObject {
|
|
|
|
[ObservableProperty]
|
|
public partial string Title { get; set; } = "Geschäftsanteilbewegungen - Elwig";
|
|
|
|
public required Member FilterMember { get; set; }
|
|
|
|
[ObservableProperty]
|
|
public partial MemberHistory? SelectedHistoryEntry { get; set; }
|
|
[ObservableProperty]
|
|
public partial IEnumerable<MemberHistory> History { get; set; } = [];
|
|
|
|
[ObservableProperty]
|
|
public partial string? DateNoticeString { get; set; }
|
|
public DateOnly? DateNotice {
|
|
get => DateOnly.TryParseExact(DateNoticeString, "dd.MM.yyyy", out var d) ? d : null;
|
|
set => DateNoticeString = $"{value:dd.MM.yyyy}";
|
|
}
|
|
[ObservableProperty]
|
|
public partial string? DateEffectiveString { get; set; }
|
|
public DateOnly? DateEffective {
|
|
get => DateOnly.TryParseExact(DateEffectiveString, "dd.MM.yyyy", out var d) ? d : null;
|
|
set => DateEffectiveString = $"{value:dd.MM.yyyy}";
|
|
}
|
|
[ObservableProperty]
|
|
public partial string? Reason { get; set; }
|
|
[ObservableProperty]
|
|
public partial string? SharesString { get; set; }
|
|
public int? Shares {
|
|
get => int.TryParse(SharesString, out var shares) ? shares : null;
|
|
set => SharesString = $"{value}";
|
|
}
|
|
[ObservableProperty]
|
|
public partial string? OtherMgNrString { get; set; }
|
|
public int? OtherMgNr {
|
|
get => int.TryParse(OtherMgNrString, out var mgnr) ? mgnr : null;
|
|
set => OtherMgNrString = $"{value}";
|
|
}
|
|
[ObservableProperty]
|
|
public partial string? DeductYearString { get; set; }
|
|
public int? DeductYear {
|
|
get => int.TryParse(DeductYearString, out var year) ? year : null;
|
|
set => DeductYearString = $"{value}";
|
|
}
|
|
[ObservableProperty]
|
|
public partial bool Deduct { get; set; }
|
|
[ObservableProperty]
|
|
public partial bool CompanyHasSigned { get; set; }
|
|
[ObservableProperty]
|
|
public partial bool MemberHasSigned { get; set; }
|
|
[ObservableProperty]
|
|
public partial string? ValuePerShareString { get; set; }
|
|
public decimal? ValuePerShare {
|
|
get => decimal.TryParse(ValuePerShareString, out var v) ? v : null;
|
|
set => ValuePerShareString = $"{value:0.00}";
|
|
}
|
|
[ObservableProperty]
|
|
public partial string? TotalAmount { get; set; }
|
|
[ObservableProperty]
|
|
public partial string? Comment { get; set; }
|
|
|
|
[ObservableProperty]
|
|
public partial Visibility ControlButtonsVisibility { get; set; } = Visibility.Visible;
|
|
[ObservableProperty]
|
|
public partial Visibility EditingButtonsVisibility { get; set; } = Visibility.Hidden;
|
|
[ObservableProperty]
|
|
public partial Visibility PersonalNameVisibility { get; set; } = Visibility.Visible;
|
|
[ObservableProperty]
|
|
public partial Visibility JuridicalNameVisibility { get; set; } = Visibility.Hidden;
|
|
}
|
|
}
|