changeset 897:2b0bc66b951f

IN 32: Simplified the completed member function argument list for a ReconciledSurvey.
author John Schneiderman <JohnMS@member.fsf.org>
date Mon, 03 Oct 2022 17:32:38 +0200
parents c58d735ec6be
children 97c104efbb5e
files src/navigation/internal/BudgetBankLedgers.cpp src/navigation/unit-tests/ProjectedSurvey-unit-tests.cpp src/surveying/external/surveying/ReconciledSurvey.cpp src/surveying/external/surveying/ReconciledSurvey.h
diffstat 4 files changed, 12 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/src/navigation/internal/BudgetBankLedgers.cpp	Mon Oct 03 17:23:45 2022 +0200
+++ b/src/navigation/internal/BudgetBankLedgers.cpp	Mon Oct 03 17:32:38 2022 +0200
@@ -131,6 +131,8 @@
 using drn::navigation::BudgetBankAccount;
 #include <surveying/BankAccountSurvey.h>
 using drn::surveying::BankAccountSurvey;
+#include <surveying/ReconciledSurvey.h>
+using drn::surveying::ReconciledSurvey;
 
 
 void BudgetBankLedgers::verifyBudgetSourceName(const BudgetSource& bs)
@@ -927,10 +929,11 @@
 	try
 	{
 		this->surveys_.completed(
-			completedOn,
-			ba,
-			reconciledBalance,
-			unusedBudget
+			ReconciledSurvey{
+				ReconciledBankAccount{ba, reconciledBalance, completedOn},
+				unusedBudget
+			},
+			reconciledBalance
 		);
 	}
 	catch (const exception&)
--- a/src/navigation/unit-tests/ProjectedSurvey-unit-tests.cpp	Mon Oct 03 17:23:45 2022 +0200
+++ b/src/navigation/unit-tests/ProjectedSurvey-unit-tests.cpp	Mon Oct 03 17:32:38 2022 +0200
@@ -1013,7 +1013,7 @@
 			{
 				{this->salaryId_, Money{Iso4217Codes::USD}},
 				{this->clothingId_, Money{Iso4217Codes::USD}},
-				{this->streamingId_, Money{0, 0u, Iso4217Codes::USD}}
+				{this->streamingId_, Money{Iso4217Codes::USD}}
 			}
 		};
 		const auto& bankAccount{survey.reconciled().bankAccount()};
--- a/src/surveying/external/surveying/ReconciledSurvey.cpp	Mon Oct 03 17:23:45 2022 +0200
+++ b/src/surveying/external/surveying/ReconciledSurvey.cpp	Mon Oct 03 17:32:38 2022 +0200
@@ -139,14 +139,10 @@
 	return account->second;
 }
 
-void ReconciledSurveys::completed(
-	const QDate& completedOn,
-	const BankAccount& ba,
-	const Money& reconciledBalance,
-	const map<BudgetItemIdentifier, Money>& distribution
-)
+void ReconciledSurveys::completed(ReconciledSurvey survey, const Money& reconciledBalance)
 {
-	const auto expectedBalance{sum(reconciledBalance.code(), distribution)};
+	const auto expectedBalance{sum(survey.reconciled().balance().code(), survey.distribution())};
+	const auto ba{survey.reconciled().bankAccount()};
 
 	if (reconciledBalance != expectedBalance)
 		throw BankError{
@@ -155,13 +151,7 @@
 				.arg(presentationText(reconciledBalance))
 				.arg(presentationText(expectedBalance))
 		};
-	ReconciledSurvey survey{
-		ReconciledBankAccount{ba, reconciledBalance, completedOn},
-		distribution
-	};
 
-	// TODO: Add the bank account for the reconciliations if it doesn't exist.
-	// TODO: update the stored survey with the new balance and date information.
 	if (this->count(ba) == 0)
 	{
 		const auto emplaced{(*this).emplace(ba, move(survey))};
--- a/src/surveying/external/surveying/ReconciledSurvey.h	Mon Oct 03 17:23:45 2022 +0200
+++ b/src/surveying/external/surveying/ReconciledSurvey.h	Mon Oct 03 17:32:38 2022 +0200
@@ -96,12 +96,7 @@
 		const banking::BankName& bn,
 		const accounting::AccountNumber& an
 	) const;
-	void completed(
-		const ::QDate& completedOn,
-		const banking::BankAccount& ba,
-		const pecunia::currency::Money& balance,
-		const std::map<budgeting::BudgetItemIdentifier, pecunia::currency::Money>& unusedBudget
-	);
+	void completed(ReconciledSurvey survey, const pecunia::currency::Money& reconciledBalance);
 };
 
 DRN_SURVEYING_EXPORT bool operator==(