feat: batch invoice items save with transaction

This commit is contained in:
Your Name
2026-02-20 14:54:37 +02:00
parent 4faac61901
commit 37751eb0c8
2 changed files with 1143 additions and 41 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -31,7 +31,9 @@ pub fn run() {
commands::seed_default_templates(&data_dir); commands::seed_default_templates(&data_dir);
tauri::Builder::default() tauri::Builder::default()
.plugin(tauri_plugin_window_state::Builder::new().build()) .plugin(tauri_plugin_window_state::Builder::new()
.with_denylist(&["mini-timer"])
.build())
.plugin(tauri_plugin_shell::init()) .plugin(tauri_plugin_shell::init())
.plugin(tauri_plugin_dialog::init()) .plugin(tauri_plugin_dialog::init())
.plugin(tauri_plugin_fs::init()) .plugin(tauri_plugin_fs::init())
@@ -47,9 +49,11 @@ pub fn run() {
commands::create_project, commands::create_project,
commands::update_project, commands::update_project,
commands::delete_project, commands::delete_project,
commands::get_project_dependents,
commands::get_tasks, commands::get_tasks,
commands::create_task, commands::create_task,
commands::delete_task, commands::delete_task,
commands::update_task,
commands::get_time_entries, commands::get_time_entries,
commands::create_time_entry, commands::create_time_entry,
commands::update_time_entry, commands::update_time_entry,
@@ -63,6 +67,7 @@ pub fn run() {
commands::get_invoice_items, commands::get_invoice_items,
commands::create_invoice_item, commands::create_invoice_item,
commands::delete_invoice_items, commands::delete_invoice_items,
commands::save_invoice_items_batch,
commands::get_settings, commands::get_settings,
commands::update_settings, commands::update_settings,
commands::export_data, commands::export_data,
@@ -93,6 +98,39 @@ pub fn run() {
commands::open_mini_timer, commands::open_mini_timer,
commands::close_mini_timer, commands::close_mini_timer,
commands::get_invoice_templates, commands::get_invoice_templates,
commands::get_recurring_entries,
commands::create_recurring_entry,
commands::update_recurring_entry,
commands::delete_recurring_entry,
commands::update_recurring_last_triggered,
commands::get_expenses,
commands::create_expense,
commands::update_expense,
commands::delete_expense,
commands::get_uninvoiced_expenses,
commands::mark_expenses_invoiced,
commands::get_timeline_events,
commands::create_timeline_event,
commands::update_timeline_event_ended,
commands::delete_timeline_events,
commands::clear_all_timeline_data,
commands::get_calendar_sources,
commands::create_calendar_source,
commands::update_calendar_source,
commands::delete_calendar_source,
commands::import_ics_file,
commands::get_calendar_events,
commands::lock_timesheet_week,
commands::unlock_timesheet_week,
commands::get_timesheet_locks,
commands::is_week_locked,
commands::update_invoice_status,
commands::check_overdue_invoices,
commands::get_time_entries_paginated,
commands::bulk_delete_entries,
commands::bulk_update_entries_project,
commands::bulk_update_entries_billable,
commands::upsert_timesheet_entry,
]) ])
.setup(|app| { .setup(|app| {
#[cfg(desktop)] #[cfg(desktop)]