public static IR2Command GetRenewInactiveLeaseCmd(FilteredListVMBase listVM, string label = "Renew Contract for this Lease") { return(LeaseCRUD1VM.NewCmd(listVM, label, listVM.AppArgs.CanAddLease(false), (lse, crud) => { var args = crud.AppArgs; var inactv = lse as InactiveLeaseDTO; if (inactv == null) { throw Bad.Data("Expected non-null ‹InactiveLeaseDTO›"); } if (args.MarketState.IsOccupied(inactv.Stall)) { Alert.Show($"Stall [{inactv.Stall}] is currently occupied."); return; } crud.TenantTemplate = inactv.Tenant.ShallowClone(); crud.DraftBirthDate = inactv.Tenant.BirthDate; crud.SetPickedStall(inactv.Stall); crud.SetPickedStart(inactv.DeactivatedDate.AddDays(1).Date); crud.SetRenewedFrom(inactv); crud.SetProductToSell(inactv.ProductToSell); crud.NewRecordSaved += (s, newLse) => inactv.ForwardBalancesTo(newLse, args); crud.EncodeNewDraftCmd.ExecuteIfItCan(); })); }
public static IR2Command GetTerminateThisLeaseCmd(FilteredListVMBase listVM, string label = "Terminate this Lease") { return(LeaseCRUD1VM.NewCmd(listVM, label, listVM.AppArgs.CanTerminateteLease(false), (lse, crud) => { if (lse == null) { return; } var resp = MessageBox.Show($"Are you sure you want to terminate the lease for {L.f} {lse}?", " Confirm Termination", MessageBoxButton.YesNo, MessageBoxImage.Question); if (resp != MessageBoxResult.Yes) { return; } if (!PopUpInput.TryGetDate($"When is the last billable day for {L.f}{lse}?", out DateTime termDate, DateTime.Now.Date)) { return; } if (!PopUpInput.TryGetString("Why are you terminating this lease?", out string reason)) { return; } listVM.AppArgs.MarketState.DeactivateLease(lse, reason, termDate); }));
public static IR2Command GetEncodeNewDraftCmd(FilteredListVMBase listVM, string label = "Encode new Lease Contract") { if (!listVM.AppArgs.CanAddLease(false)) { return(null); } return(LeaseCRUD1VM.NewCmd(listVM, label, true, (lse, crud) => crud.EncodeNewDraftCmd.ExecuteIfItCan())); }
public static IR2Command GetEditTenantInfoCmd(FilteredListVMBase listVM, string label = "Edit Tenant Info") { return(LeaseCRUD1VM.NewCmd(listVM, label, listVM.AppArgs.CanEditTenantInfo(false), (lse, crud) => { if (lse == null) { return; } crud.AllFieldsEnabled = false; crud.EditCurrentRecord(lse); })); }
public static IR2Command GetAddStallToTenantCmd(FilteredListVMBase listVM, string label = "Add another Stall to this Tenant") { return(LeaseCRUD1VM.NewCmd(listVM, label, listVM.AppArgs.CanAddLease(false), (lse, crud) => { if (lse == null) { return; } crud.TenantTemplate = lse.Tenant.ShallowClone(); crud.DraftBirthDate = lse.Tenant.BirthDate; crud.EncodeNewDraftCmd.ExecuteIfItCan(); })); }