using CommunityToolkit.Mvvm.ComponentModel; using Elwig.Helpers; using Elwig.Models.Entities; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Windows; using System.Windows.Controls; namespace Elwig.ViewModels { public partial class MemberAdminViewModel : ObservableObject { public int? TransferPredecessorAreaComs = null; public bool MaintainAreaComYearTo = false; public int? CancelAreaComs = null; public ObservableCollection> PhoneNrTypes { get; set; } = new(Utils.PhoneNrTypes); [ObservableProperty] private string? _searchQuery = ""; public List TextFilter => [.. SearchQuery?.ToLower().Split(' ').ToList().FindAll(e => e.Length > 0)]; [ObservableProperty] private bool _showOnlyActiveMembers; [ObservableProperty] private Member? _selectedMember; [ObservableProperty] private IEnumerable _members = []; [ObservableProperty] private bool _isMemberSelected; [ObservableProperty] private bool _memberHasEmail; [ObservableProperty] private bool _memberCanSendEmail; [ObservableProperty] private bool _enableMemberReferenceButton; [ObservableProperty] private bool _enableSearchInputs = true; [ObservableProperty] private IEnumerable _memberHasDeliveries = [ .. Enumerable.Range(0, 9999).Select(i => false) ]; [ObservableProperty] private bool _memberListOrderByMgNr; [ObservableProperty] private bool _memberListOrderByName; [ObservableProperty] private bool _memberListOrderByOrt; [ObservableProperty] private string? _mgNrString; public int? MgNr => int.TryParse(MgNrString, out var mgnr) ? mgnr : null; [ObservableProperty] private string? _predecessorMgNrString; public int? PredecessorMgNr => int.TryParse(PredecessorMgNrString, out var mgnr) ? mgnr : null; [ObservableProperty] private bool _isJuridicalPerson; [ObservableProperty] private string? _prefix; [ObservableProperty] private string? _givenName; [ObservableProperty] private string? _name; [ObservableProperty] private string? _suffix; [ObservableProperty] private string? _forTheAttentionOf; [ObservableProperty] private string? _birthday; [ObservableProperty] private string? _age; [ObservableProperty] private bool _isDeceased; [ObservableProperty] private string? _address; [ObservableProperty] private string? _plzString; public int? Plz => int.TryParse(PlzString, out var plz) ? plz : null; [ObservableProperty] private AT_PlzDest? _ort; [ObservableProperty] private IEnumerable _ortSource = []; [ObservableProperty] private string? _billingName; [ObservableProperty] private string? _billingAddress; [ObservableProperty] private string? _billingPlzString; public int? BillingPlz => int.TryParse(BillingPlzString, out var plz) ? plz : null; [ObservableProperty] private AT_PlzDest? _billingOrt; [ObservableProperty] private IEnumerable _billingOrtSource = []; [ObservableProperty] private string? _iban; [ObservableProperty] private string? _bic; [ObservableProperty] private string? _ustIdNr; [ObservableProperty] private string? _lfbisNr; [ObservableProperty] private bool _isBuchführend; [ObservableProperty] private bool _isOrganic; [ObservableProperty] private string? _entryDate; [ObservableProperty] private string? _exitDate; [ObservableProperty] private string? _businessSharesString; public int? BusinessShares => int.TryParse(BusinessSharesString, out var bs) ? bs : null; [ObservableProperty] private string? _accountingNr; [ObservableProperty] private bool _isActive; [ObservableProperty] private bool _isVollLieferant; [ObservableProperty] private bool _isFunktionär; [ObservableProperty] private Branch? _branch; [ObservableProperty] private IEnumerable _branchSource = []; [ObservableProperty] private AT_Kg? _defaultKg; [ObservableProperty] private IEnumerable _defaultKgSource = []; [ObservableProperty] private string? _comment; [ObservableProperty] private bool _contactViaPost; [ObservableProperty] private bool _contactViaEmail; public ObservableCollection EmailAddresses { get; private set; } = [null, null, null, null, null, null, null, null, null]; public partial class PhoneNr(int? type = null, string? number = null, string? comment = null) : ObservableObject { [ObservableProperty] public int _type = type ?? -1; [ObservableProperty] public string? _number = number; [ObservableProperty] public string? _comment = comment; } public ObservableCollection PhoneNrs { get; private set; } = [new(), new(), new(), new(), new(), new(), new(), new(), new()]; [ObservableProperty] private string _statusMembers = "-"; [ObservableProperty] private string? _statusMembersToolTip; [ObservableProperty] private string _statusBusinessShares = "-"; [ObservableProperty] private string? _statusBusinessSharesToolTip; [ObservableProperty] private string _statusDeliveriesLastSeason = "-"; [ObservableProperty] private string _statusDeliveriesLastSeasonInfo = "letzte Saison"; [ObservableProperty] private Grid? _statusDeliveriesLastSeasonToolTip; [ObservableProperty] private string _statusDeliveriesThisSeason = "-"; [ObservableProperty] private string _statusDeliveriesThisSeasonInfo = "aktuelle Saison"; [ObservableProperty] private Grid? _statusDeliveriesThisSeasonToolTip; [ObservableProperty] private string _statusAreaCommitment = "-"; [ObservableProperty] private Grid? _statusAreaCommitmentToolTip; [ObservableProperty] private string _statusAreaCommitmentInfo = "aktuelle Saison"; [ObservableProperty] private Visibility _controlButtonsVisibility = Visibility.Visible; [ObservableProperty] private Visibility _editingButtonsVisibility = Visibility.Hidden; [ObservableProperty] private Visibility _personalNameVisibility = Visibility.Visible; [ObservableProperty] private Visibility _juridicalNameVisibility = Visibility.Hidden; } }