diff --git a/frontend/src/stores/fleetDashboardStore.js b/frontend/src/stores/fleetDashboardStore.js index 7e88851..9318966 100644 --- a/frontend/src/stores/fleetDashboardStore.js +++ b/frontend/src/stores/fleetDashboardStore.js @@ -1021,6 +1021,40 @@ export async function downloadMonthlyCostsReport(year, month) { } } +export async function downloadMonthlyServiceTasksArchive(year, month) { + try { + const payload = await api.post('fleet/reports/monthly-service-tasks-archive-request/', { year, month }); + await _refreshNotificationsAsync(); + if (payload?.status === 'ready' && payload?.download_url) { + showToast('ZIP arhiva servisnih taskova je spremna. Preuzmite je kroz notifikaciju.', 'success'); + return payload; + } + showToast('ZIP arhiva servisnih taskova se generira u pozadini. Preuzimanje je dostupno kroz notifikaciju.', 'info'); + _schedulePdfNotificationPolling(); + return payload; + } catch (err) { + showToast(err?.message || 'Pokretanje generiranja ZIP arhive servisnih taskova nije uspjelo.', 'error'); + throw err; + } +} + +export async function downloadMonthlyWorkOrdersArchive(year, month) { + try { + const payload = await api.post('fleet/reports/monthly-work-orders-archive-request/', { year, month }); + await _refreshNotificationsAsync(); + if (payload?.status === 'ready' && payload?.download_url) { + showToast('ZIP arhiva putnih naloga je spremna. Preuzmite je kroz notifikaciju.', 'success'); + return payload; + } + showToast('ZIP arhiva putnih naloga se generira u pozadini. Preuzimanje je dostupno kroz notifikaciju.', 'info'); + _schedulePdfNotificationPolling(); + return payload; + } catch (err) { + showToast(err?.message || 'Pokretanje generiranja ZIP arhive putnih naloga nije uspjelo.', 'error'); + throw err; + } +} + export async function downloadGeneratedPdfByUrl(downloadUrl, filename = 'document.pdf') { if (!downloadUrl) { showToast('Nedostaje URL za preuzimanje PDF-a.', 'error');