private static void EditBillRow(DailyBillDTO dto, decimal newVal, SoaViewerVM vm) { var bCode = BillCode.Rights; var billr = vm.AppArgs.DailyBiller; var newState = billr.ComputeBill(bCode, vm.Lease, dto.GetBillDate(), newVal); dto.Bills.RemoveAll(_ => _.BillCode == bCode); dto.Bills.Add(newState); }
private static async Task PersistThenRecompute(DailyBillDTO updatedDto, SoaViewerVM vm) { var repo = vm.AppArgs.Balances.GetRepo(vm.Lease); var date = updatedDto.GetBillDate(); await Task.Delay(1); await Task.Run(() => { repo.Update(updatedDto); repo.RecomputeFrom(date.AddDays(1)); }); }
private static decimal GetSuggestedVal(DailyBillDTO.BillState state, SoaViewerVM vm) { var orig = state.OpeningBalance; if (!orig.HasValue) { Alert.ShowModal("Unsafe Operation", "Day 1 Opening Balance is NULL"); } var param = vm.Lease.Rights; return((param.TotalAmount - orig.Value) * -1); }
public static void Print(SoaViewerVM soaViewerVM) { var vm = new SoaPrintVM(soaViewerVM); var win = new SoaPrintWindow1(); win.DataContext = vm; var lse = soaViewerVM.Lease; win.dg.AskToPrint(lse.TenantAndStall, $"Total Rights {lse.Rights.TotalAmount:N2} (due: {lse.RightsDueDate:d MMM yyyy})", $"as of {vm.AppArgs.Collections.LastPostedDate():MMMM d, yyyy}", $": {vm.AppArgs.MarketState.BranchName}"); win.Close(); }
private static bool IsUpdateConfirmed(out DailyBillDTO dtoForUpdate, SoaViewerVM vm) { var day1 = vm?.Rows?.LastOrDefault(); if (day1 == null) { throw Bad.Data("Day 1 row"); } dtoForUpdate = day1.DTO; var origVal = day1.Rights.OpeningBalance; var suggVal = GetSuggestedVal(day1.Rights, vm); var dte = $"{day1.Date:d-MMM-yyyy}"; var msg = $"[{dte}] Starting Rights (orig.val: {origVal:N2})"; var ok = PopUpInput.TryGetDecimal(msg, out decimal newVal, suggVal); if (!ok) { return(false); } EditBillRow(dtoForUpdate, newVal, vm); return(true); }
public SoaPrintVM(SoaViewerVM soaViewerVM) : base(soaViewerVM.AppArgs) { VM = soaViewerVM; }