77 lines
2.8 KiB
C#
77 lines
2.8 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]
|
|
private string _title = "Geschäftsanteilbewegungen - Elwig";
|
|
|
|
public required Member FilterMember { get; set; }
|
|
|
|
[ObservableProperty]
|
|
private MemberHistory? _selectedHistoryEntry;
|
|
[ObservableProperty]
|
|
private IEnumerable<MemberHistory> _history = [];
|
|
|
|
[ObservableProperty]
|
|
private string? _dateNoticeString;
|
|
public DateOnly? DateNotice {
|
|
get => DateOnly.TryParseExact(DateNoticeString, "dd.MM.yyyy", out var d) ? d : null;
|
|
set => DateNoticeString = $"{value:dd.MM.yyyy}";
|
|
}
|
|
[ObservableProperty]
|
|
private string? _dateEffectiveString;
|
|
public DateOnly? DateEffective {
|
|
get => DateOnly.TryParseExact(DateEffectiveString, "dd.MM.yyyy", out var d) ? d : null;
|
|
set => DateEffectiveString = $"{value:dd.MM.yyyy}";
|
|
}
|
|
[ObservableProperty]
|
|
private string? _reason;
|
|
[ObservableProperty]
|
|
private string? _sharesString;
|
|
public int? Shares {
|
|
get => int.TryParse(SharesString, out var shares) ? shares : null;
|
|
set => SharesString = $"{value}";
|
|
}
|
|
[ObservableProperty]
|
|
private string? _otherMgNrString;
|
|
public int? OtherMgNr {
|
|
get => int.TryParse(OtherMgNrString, out var mgnr) ? mgnr : null;
|
|
set => OtherMgNrString = $"{value}";
|
|
}
|
|
[ObservableProperty]
|
|
private string? _deductYearString;
|
|
public int? DeductYear {
|
|
get => int.TryParse(DeductYearString, out var year) ? year : null;
|
|
set => DeductYearString = $"{value}";
|
|
}
|
|
[ObservableProperty]
|
|
private bool _deduct;
|
|
[ObservableProperty]
|
|
private bool _memberHasSigned;
|
|
[ObservableProperty]
|
|
private string? _valuePerShareString;
|
|
public decimal? ValuePerShare {
|
|
get => decimal.TryParse(ValuePerShareString, out var v) ? v : null;
|
|
set => ValuePerShareString = $"{value:0.00}";
|
|
}
|
|
[ObservableProperty]
|
|
private string? _totalAmount;
|
|
[ObservableProperty]
|
|
private string? _comment;
|
|
|
|
[ObservableProperty]
|
|
private Visibility _controlButtonsVisibility = Visibility.Visible;
|
|
[ObservableProperty]
|
|
private Visibility _editingButtonsVisibility = Visibility.Hidden;
|
|
[ObservableProperty]
|
|
private Visibility _personalNameVisibility = Visibility.Visible;
|
|
[ObservableProperty]
|
|
private Visibility _juridicalNameVisibility = Visibility.Hidden;
|
|
}
|
|
}
|