コード例 #1
0
        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);
        }
コード例 #2
0
        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));
            });
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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();
        }
コード例 #5
0
        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);
        }
コード例 #6
0
 public SoaPrintVM(SoaViewerVM soaViewerVM) : base(soaViewerVM.AppArgs)
 {
     VM = soaViewerVM;
 }