public void StampDutyCalculatorCorrectFees(PropertySaleInformation saleInfo, FinancialResults expectedResults, decimal expectedTotalFees, decimal transferDutyPayable, decimal expectedTotalConcessions, int scenarioId) { var calc = new StampDutyService(); FinancialResults results = calc.Calculate(saleInfo); _output.WriteLine($"Testing scenario {scenarioId}"); try { FinancialResultCategory stampDutySummaryCategory = results.Categories.Where(c => c.Title == "Stamp Duty Summary").SingleOrDefault(); if (stampDutySummaryCategory != null) { Assert.Equal(transferDutyPayable, stampDutySummaryCategory.Total); } Assert.Equal(expectedTotalFees, results.Categories.Where(c => c.Title == "Fees").Single().Total); Assert.Equal(expectedTotalConcessions, results.Categories.Where(c => c.Title == "Concessions").Single().Total); Assert.Equal(expectedResults, results); } catch { var settings = new Newtonsoft.Json.JsonSerializerSettings(); settings.Formatting = Newtonsoft.Json.Formatting.Indented; var serialiser = Newtonsoft.Json.JsonSerializer.Create(settings); using (TextWriter writer = new StringWriter()) { serialiser.Serialize(writer, expectedResults); _output.WriteLine("Expected financial results:"); _output.WriteLine(writer.ToString()); } using (TextWriter writer = new StringWriter()) { serialiser.Serialize(writer, results); _output.WriteLine("Actual financial result:"); _output.WriteLine(writer.ToString()); } throw; } }
public void FinancialResultsEquality() { var items1 = new[] { new FinancialResultLineItem("Title1", 10), new FinancialResultLineItem("Title2", 10) }; var items2 = new[] { new FinancialResultLineItem("Title1", 10), new FinancialResultLineItem("Title2", 10) }; FinancialResultCategory category1 = new FinancialResultCategory("catTitle", items1); FinancialResultCategory category2 = new FinancialResultCategory("catTitle", items2); FinancialResults results1 = new FinancialResults(new[] { category1 }); FinancialResults results2 = new FinancialResults(new[] { category2 }); Assert.Equal(results1, results2); }
public void Post([FromBody] List <FinancialResults> results) { Debug.WriteLine("RESULT SIZE " + results.Count); // repo.add(results); if (results.Count != 0) { List <int> empIds = repo.getTimeReportedEmpIdForQuarter(results[0].Year, results[0].Quarter, results[0].AccountId); foreach (FinancialResults result in results) { empIds.Remove(result.EmpId); //repo.saveData(result); } foreach (int empId in empIds) { TeamMembers member = teamRepo.Get(empId); if (member != null) { FinancialResults tempResult = new FinancialResults(); tempResult.EmpId = empId; tempResult.EmpName = member.MemberName; tempResult.AccountId = results[0].AccountId; tempResult.AccountName = results[0].AccountName; tempResult.Month = results[0].Month; tempResult.Quarter = results[0].Quarter; tempResult.Year = results[0].Year; Console.WriteLine(tempResult.EmpName); // repo.saveData(tempResult); } } } //Calculate Financial Summary double expectedHours = 0; double actualHours = 0; double coveredBillableHours = 0; foreach (FinancialResults result in results) { if (result.BillableType == Constants.FULLTIMEBILLABLE) { // The below commented code compares individual allocation with its billable hours //expectedHours += result.AllocatedHours; //double tempActualHours = 0; //if (result.AllocatedHours < result.BillableHours) //{ // tempActualHours = result.AllocatedHours; //} //else //{ // tempActualHours = result.BillableHours; //} //actualHours += tempActualHours; expectedHours += result.AllocatedHours; actualHours += result.BillableHours; coveredBillableHours += result.BillableHours; } } if (results.Count != 0) { if (actualHours > expectedHours) { // actualHours = expectedHours; } string strDate = "01/" + results[0].Month + "/" + results[0].Year; //String strDate = "01/12/2014"; DateTime dateTime = new DateTime(results[0].Year, results[0].Month, 1); //DateTime dateTime = DateTime.ParseExact(strDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); dateTime = dateTime.AddMonths(-1); FinancialSummary summary = summaryRepo.getSelectedMonthSummary(dateTime.Year, results[0].AccountId, results[0].Quarter); FinancialSummary savingSummary = new FinancialSummary(); savingSummary.Month = results[0].Month; savingSummary.Year = results[0].Year; savingSummary.Quarter = results[0].Quarter; savingSummary.AccountId = results[0].AccountId; savingSummary.AccountName = results[0].AccountName; savingSummary.MonthName = getMonth(results[0].Month); if (summary != null) { double finalAllocatedHours = expectedHours + summary.ExpectedHours; double finalActualHours = actualHours + summary.ActualHours; double finalCoveredBillableHours = coveredBillableHours + summary.coveredBillableHours; finalActualHours = finalCoveredBillableHours; if (finalCoveredBillableHours > finalAllocatedHours) { finalActualHours = finalAllocatedHours; } savingSummary.ExpectedHours = finalAllocatedHours; savingSummary.ActualHours = finalActualHours; savingSummary.coveredBillableHours = finalCoveredBillableHours; } else { savingSummary.ExpectedHours = expectedHours; Debug.WriteLine("Saving Summary " + expectedHours); savingSummary.ActualHours = actualHours; savingSummary.coveredBillableHours = coveredBillableHours; } summaryRepo.add(savingSummary); } }
public int changedAdd(List <FinancialResults> results) { int datarows = 0; //String strDate = "5/" + results[0].Month + "/" + results[0].Year+ ""; //DateTime dateTime = DateTime.ParseExact(strDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); //dateTime = dateTime.AddMonths(-1); List <int> empDataInAccount = new List <int>(); List <int> usingEmpDataInAccount = new List <int>(); if (results.Count != 0) { empDataInAccount = empRepo.getDistinctEmpIdsForAccounts(results[0].AccountId, results[0].Year, results[0].Quarter); usingEmpDataInAccount = empRepo.getDistinctEmpIdsForAccounts(results[0].AccountId, results[0].Year, results[0].Quarter); } foreach (FinancialResults result in results) { if (empDataInAccount.Count != 0) { foreach (int data in empDataInAccount) { if (data == result.EmpId) { usingEmpDataInAccount.Remove(data); } } } //Check the above method // This Add Statement Is Not Completed..... int tempMonth = result.Month; int pastMaxMonth = getEmployeeTimeReportMaxMonth(result.AccountId, result.Year, result.Quarter, result.EmpId); if (pastMaxMonth != 0) { int currentMonth = result.Month; int monthDifference = currentMonth - pastMaxMonth; if (monthDifference > 1) { monthDifference = monthDifference - 1; for (int i = (pastMaxMonth + 1); i <= (monthDifference + pastMaxMonth); i++) { result.Month = i; Console.WriteLine(result.EmpName); // saveData(result); } } } else { int pastMonth = 0; int currentMonth = result.Month; if (result.Quarter == 1) { pastMonth = 1; } else { pastMonth = 7; } int minMonthForQuarter = getAccountTimeReportMinMonthForQuarter(result.AccountId, result.Year, result.Quarter); if (minMonthForQuarter == 0) { pastMonth = currentMonth; } else { pastMonth = minMonthForQuarter; } for (int i = pastMonth; i < currentMonth; i++) { FinancialResults tempResult = result; tempResult.Month = i; Console.WriteLine(tempResult.EmpName); // saveData(tempResult); } } double considerableHours = 0; double extraOrLag = result.BillableHours - result.AllocatedHours; if (result.BillableHours >= result.AllocatedHours) { considerableHours = result.AllocatedHours; } else { considerableHours = result.BillableHours; } Debug.WriteLine("BillableType " + result.BillableType); Console.WriteLine(result.EmpName); result.Month = tempMonth; datarows = this._db.Execute(@"INSERT FinancialResults([EmpId],[EmpName],[AccountId],[AccountName],[Year],[Month],[Quarter],[BillableType],[AllocatedHours],[BillableHours],[TotalReportedHours],[ConsiderableHours],[ExtraOrLag]) values (@EmpId,@EmpName,@AccountId,@AccountName,@Year,@Month,@Quarter,@BillableType,@AllocatedHours,@BillableHours,@TotalReportedHours,@ConsiderableHours,@ExtraOrLag)", new { EmpId = result.EmpId, EmpName = result.EmpName, AccountId = result.AccountId, AccountName = result.AccountName, Year = result.Year, Month = result.Month, Quarter = result.Quarter, BillableType = result.BillableType, AllocatedHours = result.AllocatedHours, BillableHours = result.BillableHours, TotalReportedHours = result.TotalReportedHours, ConsiderableHours = considerableHours, ExtraOrLag = extraOrLag }); } if (usingEmpDataInAccount.Count != 0 && results.Count != 0) { foreach (int data in usingEmpDataInAccount) { FinancialResults tempFinancialResult = new FinancialResults(); tempFinancialResult.EmpId = data; TeamMembers employee = teamRepo.Get(data); tempFinancialResult.EmpName = employee.MemberName; tempFinancialResult.Year = results[0].Year; tempFinancialResult.Month = results[0].Month; tempFinancialResult.Quarter = results[0].Quarter; tempFinancialResult.AccountId = results[0].AccountId; tempFinancialResult.AccountName = results[0].AccountName; // saveData(tempFinancialResult); } } return(datarows); }