public object GetYearlyBalanceReports() { List <ChartValue> chartValues = new List <ChartValue>(); var balanceReports = GetBalanceReports().OrderBy(x => x.Date); if (balanceReports.Count() != 0) { int startYear = GetBalanceReports().Min(x => x.Date).Year; for (int i = startYear; i <= DateTime.Now.Year; ++i) { BalanceReport balanceReport = GetBalanceReports().Where(x => x.Date.Year == i).LastOrDefault(); ChartValue chartValue = new ChartValue { Name = i.ToString(), Value = balanceReport?.Balance ?? 0 }; chartValues.Add(chartValue); } } return(chartValues); }
public object GetTransfers(DataSourceLoadOptions loadOptions, int?key) { CheckRecurringTransfers(); // If key is given, then filter transfers based on BalanceReport date. if (key != null) { BalanceReport balanceReport = GetBalanceReports().Where(x => x.BalanceReportId == key).FirstOrDefault(); BalanceReport previousBalanceReport = GetBalanceReports().OrderByDescending(x => x.Date).Where(y => y.Date < balanceReport.Date).FirstOrDefault(); if (balanceReport != null) { //TODO: (?/2) Future transfers can't be retrieved by key. DateTime startDate = previousBalanceReport?.Date ?? DateTime.MinValue; DateTime endDate = balanceReport.Date; IQueryable <Transfer> transfers = GetTransfers().Where(x => startDate < x.Date && x.Date <= endDate); return(DataSourceLoader.Load(transfers, loadOptions)); } else { return(DataSourceLoader.Load(Enumerable.Empty <Transfer>().AsQueryable(), loadOptions)); } } else { return(DataSourceLoader.Load(GetTransfers(), loadOptions)); } }
public void TestFormattingOfBalanceReport() { const string season = "2011"; var myTeamLister = new FakeTeamMetricsLister(); var br = new BalanceReport { Season = season, TeamList = myTeamLister.GetTeams(season) }; br.Render(); Assert.IsTrue(true); }
private void HandleChangeUserAccountBalance(ChangeBalance message) { _events.Add(message); var balance = CalculateBalance(); var lastOperations = GetLastOperations(); var response = new BalanceReport(balance, lastOperations, message.UserId); Sender.Tell(response); _consoleWriter.WriteLine($"{_userId} balance change operation executed"); }
public IActionResult CreateBalanceReport(string values) { BalanceReport balanceReport = new BalanceReport(); JsonConvert.PopulateObject(values, balanceReport); if (TryValidateModel(balanceReport)) { balanceReport.UserId = UserId; ApplicationDb.BalanceReports.Add(balanceReport); ApplicationDb.SaveChanges(); return(Ok()); } else { return(BadRequest(ModelState)); } }
// TODO: In the future use correlation id public async Task Execute(TransactionCommand command) { var currentEvents = (await bankTransactionEventStore.ReadAll(command.AccountId)).ToArray(); var currentVersion = currentEvents.Length; var balance = BalanceReport.GetBalance(currentEvents); TransactionEvent evt = command switch { DepositCommand deposit => new Deposit(deposit.Amount, deposit.AccountId, DateTimeOffset.Now, deposit.CorrelationId), WithdrawalCommand withdrawal when balance >= withdrawal.Amount => new Withdrawal(withdrawal.Amount, withdrawal.AccountId, DateTimeOffset.Now, withdrawal.CorrelationId), _ => throw new ArgumentException() }; await bankTransactionEventStore.Append(currentVersion, evt); } }
public void HandleBalanceReportOutputsCorrectInformation() { //prepare var consoleMock = new Mock <IConsoleWriter>(); var output = string.Empty; consoleMock.Setup(x => x.WriteLine(It.IsAny <string>())).Callback((string x) => output = x); var actor = ActorOfAsTestActorRef <UserBalanceActor>(Props.Create(() => new UserBalanceActor(consoleMock.Object, null))); var message = new BalanceReport(100, new List <double> { 50, 50 }, Guid.NewGuid()); //execute actor.Tell(message); //assert consoleMock.Verify(x => x.WriteLine(It.IsAny <string>()), Times.Once); Assert.Equal($"user {message.UserId} has balance '{message.CurrentBalance}' with last 5 operations: '{string.Join(", ", message.LastOperations)}'", output); }
public IActionResult UpdateBalanceReport(int key, string values) { BalanceReport balanceReport = GetBalanceReports().FirstOrDefault(x => x.BalanceReportId == key); int id = balanceReport.BalanceReportId; string userId = balanceReport.UserId; JsonConvert.PopulateObject(values, balanceReport); if (TryValidateModel(balanceReport)) { balanceReport.BalanceReportId = id; balanceReport.UserId = userId; ApplicationDb.BalanceReports.Update(balanceReport); ApplicationDb.SaveChanges(); return(Ok()); } else { return(BadRequest(ModelState)); } }
//Record the state of all accounts if the month has changed public async static Task<bool> RecordBalance(IBalanceReport balanceRepo, IAccountRepository accountRepo) { //created a variable to keep async bool returns, set it to false just in case the code doesnt work, will return false bool success = false; //I record onyl Crdit and Debit account balances because only their balances matter. var accounts = await accountRepo.GetAccountByTwoTypes(AccountType.Credit, AccountType.Debit); //Because the record is happening in the new month any first day the app is accessed, but //the report needs to be for the end of the last month. So the date is last months date. var lastMonthsDate = DateTime.Now.AddMonths(-1); foreach (var acc in accounts) { var balanceReport = new BalanceReport { AccountId = acc.Id, Date = lastMonthsDate, Value = acc.Value }; success = await balanceRepo.Create(balanceReport); } return success; }
public object GetMonthlyBalanceReports(int?year) { List <ChartValue> chartValues = new List <ChartValue>(); year = year ?? DateTime.Now.Year; var balanceReports = GetBalanceReports().Where(x => x.Date.Year == year).OrderBy(y => y.Date); DateTimeFormatInfo formatInfo = new DateTimeFormatInfo(); for (int i = 1; i <= 12; ++i) { BalanceReport balanceReport = balanceReports.Where(x => x.Date.Month == i).LastOrDefault(); string monthName = formatInfo.GetMonthName(i).ToString(); ChartValue chartValue = new ChartValue { Name = monthName, Value = balanceReport?.Balance ?? 0 }; chartValues.Add(chartValue); } return(chartValues); }
private void HandleBalanceReport(BalanceReport message) { _consoleWriter.WriteLine($"user {message.UserId} has balance '{message.CurrentBalance}' with last 5 operations: '{string.Join(", ",message.LastOperations)}'"); }
public async Task <bool> Update(BalanceReport entity) { _db.BalanceReports.Update(entity); return(await Save()); }
public async Task <bool> Delete(BalanceReport entity) { _db.BalanceReports.Remove(entity); return(await Save()); }
public async Task <bool> Create(BalanceReport entity) { await _db.BalanceReports.AddAsync(entity); return(await Save()); }
/// <summary> /// Loads a form to the panel /// </summary> /// <param name="tag">The tag of the button - Here is stored what type of form is supposed to be opened</param> private void LoadForm(string tag) { var yEnd = new YearEnd(); if (yEnd.InventoryRequired(false)) { switch (VisibilitySetting.HandleUnits) { case 1: yEnd.GenerateAutomaticInventory(); break; case 2: yEnd.GenerateAutomaticInventoryByUnit(); break; case 3: yEnd.GenerateAutomaticInventoryByUnit(); break; } } Form frm; switch (tag) { case "Receives": frm = new ReceivingForm(); AddTab("Receiving Form", frm); break; case "Issues": frm = new IssueForm(); AddTab("Issue Form", frm); break; case "AMCs": frm = new AMCView(); AddTab("AMC Report", frm); break; case "menuItemPriceOnlyReport": frm = new ItemPriceOnlyReport(); AddTab("Item Price Only", frm); break; case "Facility Settings": frm = new Hospital(); AddTab("Facility Settings", frm); break; case "Drug List": frm = new ManageItems(); AddTab("Manage Drug List", frm); break; case "Supplies List": //frm = new ManageItems(); frm = new ManageSupplies(); AddTab("Manage Supplies List", frm); break; case "Item Consolidator": //frm = new ManageItems(); frm = new ItemConsolidator(); AddTab("Update Items List From The Directory Service", frm); break; case "Customize Druglist": frm = new CustomDrugList(); AddTab("Customize Drug List", frm); break; case "System Settings": frm = new SystemSetting(); AddTab("System Settings", frm); break; case "Facility Details": frm = new HospitalSettings(); AddTab("Facility Details", frm); break; case "User Accounts": frm = new UserAccounts(); AddTab("Manage Users", frm); break; case "Pipeline": frm = new Pipeline(); AddTab("Pipeline", frm); break; case "Change Password": frm = new ChangePassword(UserId); AddTab("Change Password", frm); break; case "Transfer Log": frm = new LogTransfer(); AddTab("Transfer Log", frm); break; case "VRF Form": frm = new vrfmainForm(); AddTab("Vaccine Requistion and Report Form", frm); break; case "Losses/Adjustment": frm = new LossesAdjustment(); AddTab("Losses and Adjustment", frm); break; case "Receive Log": frm = new LogReceive(); AddTab("Receive Transaction Log", frm); break; case "Issue Log": frm = new LogIssues(); AddTab("Issue Transaction Log", frm); break; case "Adjustment Log": frm = new LogAdjustment(); AddTab("Loss / Adjustment Transaction Log", frm); break; case "Inventory Log": frm = new LogInventory(); AddTab("Inventory Log", frm); break; case "Stock Status": frm = new ItemReport(); AddTab("Stock Status", frm); break; case "Over Stocked": frm = new OtherItemReport("Over Stocked"); AddTab("Over Stock Items", frm); break; case "Transfers": frm = new TransferForm(); AddTab("Transfer Form", frm); break; case "Stock Out": frm = new OtherItemReport("Stock Out"); AddTab("Stocked Out Items", frm); break; case "ConsumptionTrend": frm = new ConsumptionTrendReport(); AddTab("Consumption Trend", frm); break; case "Issues By Receiving Unit": frm = new IssuesByDep(); AddTab("Issues By Receiving Unit", frm); break; case "Expired Products": frm = new ExpiredProducts(); AddTab("Expired Products", frm); break; case "Near Expiry": frm = new NearlyExpired(); AddTab("Near Expiry Products", frm); break; case "SOH Trend": frm = new SOHTrend(); AddTab("SOH Trend", frm); break; case "Receive Trend": frm = new ReceiveTrend(); AddTab("Receive Trend", frm); break; case "Balance": frm = new BalanceReport(); AddTab("Balance", frm); break; case "Summary Report": frm = new GeneralReport(); AddTab("Summary Report", frm); break; case "Cost Summary": frm = new GeneralCostChart(); AddTab("Cost Summary", frm); break; case "Wastage Rate": frm = new WastageRate(); AddTab("Wastage Rate", frm); break; case "Summary Chart": frm = new GeneralChart(); AddTab("General Chart", frm); break; case "Activity Log Reports": frm = new ActivityLogReports(); AddTab("Activity Log", frm); break; case "ECLS": frm = new ECLS(); AddTab("CS Stock Status", frm); break; case "Year End Process": frm = new YearEndProcess(); AddTab("Inventory", frm); break; case "Default Year End Process": frm = new YearEndProcess(true); AddTab("Inventory", frm); break; case "Stock Expiry Status": frm = new GeneralExpiryChart(); AddTab("Stock Status", frm); break; case "DataBase": frm = new DatabaseActions(); AddTab("Database Actions", frm); break; case "PDA": frm = new ItemReport(); AddTab("Stock Status", frm); break; case "Consumables List": frm = new ManageSupplies(); AddTab("Supplies List", frm); break; case "RRF Form": frm = new RRFForm(); AddTab("Report and Requisition Form", frm); break; case "LossReport": frm = new ExpiredProductsReport(); AddTab("Loss / Adjustment Reporting View", frm); break; case "CostReport": frm = new CostReport(); AddTab("Cost Report", frm); break; case "ConsumptionByUnit": frm = new ConsumptionByUnits(); AddTab("Consumption By Dispensary Unit", frm); break; case "About": Program.ShowHCMISVersionInfoMessageBox(); break; } }
public Task <BalanceReportModel> GetBalanceReportAsync() { BalanceReport balanceReport = _balanceReportService.Get(); return(Task.FromResult(Mapper.Map <BalanceReportModel>(balanceReport))); }