diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 08187c0..9ef1a19 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -91,6 +91,7 @@ pub fn run() { get_open_filename, set_open_filename, libdrcr_bridge::get_all_transactions_except_earnings_to_equity, + libdrcr_bridge::get_all_transactions_except_earnings_to_equity_for_account, libdrcr_bridge::get_balance_sheet, libdrcr_bridge::get_income_statement, libdrcr_bridge::get_trial_balance, diff --git a/src-tauri/src/libdrcr_bridge.rs b/src-tauri/src/libdrcr_bridge.rs index 71d4553..3813652 100644 --- a/src-tauri/src/libdrcr_bridge.rs +++ b/src-tauri/src/libdrcr_bridge.rs @@ -73,7 +73,7 @@ async fn get_report( pub(crate) async fn get_all_transactions_except_earnings_to_equity( state: State<'_, Mutex>, ) -> Result { - Ok(get_report( + let transactions = get_report( state, &ReportingProductId { name: "AllTransactionsExceptEarningsToEquity", @@ -84,9 +84,40 @@ pub(crate) async fn get_all_transactions_except_earnings_to_equity( }, ) .await - .downcast_ref::() + .downcast::() .unwrap() - .to_json()) + .transactions; + + Ok(serde_json::to_string(&transactions).unwrap()) +} + +#[tauri::command] +pub(crate) async fn get_all_transactions_except_earnings_to_equity_for_account( + state: State<'_, Mutex>, + account: String, +) -> Result { + let transactions = get_report( + state, + &ReportingProductId { + name: "AllTransactionsExceptEarningsToEquity", + kind: ReportingProductKind::Transactions, + args: Box::new(DateArgs { + date: NaiveDate::from_ymd_opt(9999, 12, 31).unwrap(), + }), + }, + ) + .await + .downcast::() + .unwrap() + .transactions; + + // Filter only transactions affecting this account + let filtered_transactions = transactions + .into_iter() + .filter(|t| t.postings.iter().any(|p| p.account == account)) + .collect::>(); + + Ok(serde_json::to_string(&filtered_transactions).unwrap()) } #[tauri::command] diff --git a/src/pages/TransactionsView.vue b/src/pages/TransactionsView.vue index bfb2c50..1c0e2c0 100644 --- a/src/pages/TransactionsView.vue +++ b/src/pages/TransactionsView.vue @@ -1,6 +1,6 @@