From 42ba33c45c3b8251977a239b92f33f95664c330a Mon Sep 17 00:00:00 2001 From: RunasSudo Date: Tue, 27 May 2025 00:54:22 +1000 Subject: [PATCH] Look up eofy_date in libdrcr_bridge itself --- src-tauri/src/libdrcr_bridge.rs | 16 ++++------------ src/reports/BalanceSheetReport.vue | 12 ++++-------- src/reports/IncomeStatementReport.vue | 12 ++++-------- 3 files changed, 12 insertions(+), 28 deletions(-) diff --git a/src-tauri/src/libdrcr_bridge.rs b/src-tauri/src/libdrcr_bridge.rs index ead5a20..661528d 100644 --- a/src-tauri/src/libdrcr_bridge.rs +++ b/src-tauri/src/libdrcr_bridge.rs @@ -35,7 +35,6 @@ use crate::AppState; #[tauri::command] pub(crate) async fn get_balance_sheet( state: State<'_, Mutex>, - eofy_date: String, dates: Vec, ) -> Result { let state = state.lock().await; @@ -47,11 +46,8 @@ pub(crate) async fn get_balance_sheet( DbConnection::connect(format!("sqlite:{}", db_filename.as_str()).as_str()); // Initialise ReportingContext - let mut context = ReportingContext::new( - db_connection, - NaiveDate::parse_from_str(eofy_date.as_str(), "%Y-%m-%d").unwrap(), - "$".to_string(), - ); + let eofy_date = db_connection.metadata().eofy_date; + let mut context = ReportingContext::new(db_connection, eofy_date, "$".to_string()); register_lookup_fns(&mut context); register_dynamic_builders(&mut context); @@ -98,7 +94,6 @@ pub(crate) async fn get_balance_sheet( #[tauri::command] pub(crate) async fn get_income_statement( state: State<'_, Mutex>, - eofy_date: String, dates: Vec<(String, String)>, ) -> Result { let state = state.lock().await; @@ -110,11 +105,8 @@ pub(crate) async fn get_income_statement( DbConnection::connect(format!("sqlite:{}", db_filename.as_str()).as_str()); // Initialise ReportingContext - let mut context = ReportingContext::new( - db_connection, - NaiveDate::parse_from_str(eofy_date.as_str(), "%Y-%m-%d").unwrap(), - "$".to_string(), - ); + let eofy_date = db_connection.metadata().eofy_date; + let mut context = ReportingContext::new(db_connection, eofy_date, "$".to_string()); register_lookup_fns(&mut context); register_dynamic_builders(&mut context); diff --git a/src/reports/BalanceSheetReport.vue b/src/reports/BalanceSheetReport.vue index 0ae6a0b..dbea95b 100644 --- a/src/reports/BalanceSheetReport.vue +++ b/src/reports/BalanceSheetReport.vue @@ -56,7 +56,6 @@ import { DynamicReport, reportEntryById } from './base.ts'; import { db } from '../db.ts'; - import { ExtendedDatabase } from '../dbutil.ts'; import DynamicReportComponent from '../components/DynamicReportComponent.vue'; const report = ref(null as DynamicReport | null); @@ -70,18 +69,15 @@ dt.value = db.metadata.eofy_date; - await updateReport(session); + await updateReport(); // Update report when dates etc. changed // We initialise the watcher here only after dt is initialised above - watch([dt, comparePeriods, compareUnit], async () => { - const session = await db.load(); - await updateReport(session); - }); + watch([dt, comparePeriods, compareUnit], updateReport); } load(); - async function updateReport(session: ExtendedDatabase) { + async function updateReport() { const reportDates = []; for (let i = 0; i < comparePeriods.value; i++) { let thisReportDt; @@ -103,7 +99,7 @@ reportDates.push(thisReportDt.format('YYYY-MM-DD')); } - report.value = JSON.parse(await invoke('get_balance_sheet', { eofyDate: db.metadata.eofy_date, dates: reportDates })); + report.value = JSON.parse(await invoke('get_balance_sheet', { dates: reportDates })); } const doesBalance = computed(function() { diff --git a/src/reports/IncomeStatementReport.vue b/src/reports/IncomeStatementReport.vue index 9482490..02b065a 100644 --- a/src/reports/IncomeStatementReport.vue +++ b/src/reports/IncomeStatementReport.vue @@ -45,7 +45,6 @@ import { DynamicReport } from './base.ts'; import { db } from '../db.ts'; - import { ExtendedDatabase } from '../dbutil.ts'; import DynamicReportComponent from '../components/DynamicReportComponent.vue'; const report = ref(null as DynamicReport | null); @@ -62,17 +61,14 @@ dt.value = db.metadata.eofy_date; dtStart.value = dayjs(db.metadata.eofy_date).subtract(1, 'year').add(1, 'day').format('YYYY-MM-DD'); - await updateReport(session); + await updateReport(); // Update report when dates etc. changed // We initialise the watcher here only after dt and dtStart are initialised above - watch([dt, dtStart, comparePeriods, compareUnit], async () => { - const session = await db.load(); - await updateReport(session); - }); + watch([dt, dtStart, comparePeriods, compareUnit], updateReport); } - async function updateReport(session: ExtendedDatabase) { + async function updateReport() { const reportDates = []; for (let i = 0; i < comparePeriods.value; i++) { let thisReportDt, thisReportDtStart; @@ -97,7 +93,7 @@ reportDates.push([thisReportDtStart.format('YYYY-MM-DD'), thisReportDt.format('YYYY-MM-DD')]); } - report.value = JSON.parse(await invoke('get_income_statement', { eofyDate: db.metadata.eofy_date, dates: reportDates })); + report.value = JSON.parse(await invoke('get_income_statement', { dates: reportDates })); } load();