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 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; } }