diff --git a/frontend/src/stores/fleetDashboardStore.js b/frontend/src/stores/fleetDashboardStore.js index 12f729e..82d8bff 100644 --- a/frontend/src/stores/fleetDashboardStore.js +++ b/frontend/src/stores/fleetDashboardStore.js @@ -731,10 +731,12 @@ export async function fetchTasksByWorkOrder(workOrderId) { export async function fetchWorkOrderTaskServiceContext(workOrderId) { if (!workOrderId) { - return { tasks: [], additional_costs_table: null }; + return { tasks: [], additional_costs_table: null, travel_expenses_table: null }; } const payload = await api.get(`fleet/work-orders/${encodeURIComponent(workOrderId)}/task-service-context/`); - return payload && typeof payload === 'object' ? payload : { tasks: [], additional_costs_table: null }; + return payload && typeof payload === 'object' + ? payload + : { tasks: [], additional_costs_table: null, travel_expenses_table: null }; } export async function fetchWorkOrderAdditionalCostsTable(workOrderId) { @@ -759,6 +761,42 @@ export async function updateWorkOrderAdditionalCostsTable(workOrderId, data) { return payload; } +export async function fetchWorkOrderTravelExpensesTable(workOrderId) { + if (!workOrderId) { + return { + work_order: null, + broj_sati: '0.00', + kolicina_dnevnica: '0.00', + iznos_dnevnica: '30.00', + daily_rate_country: 'HR', + total_for_payout: '0.00', + }; + } + const payload = await api.get(`fleet/work-orders/${encodeURIComponent(workOrderId)}/travel-expenses-table/`); + return payload && typeof payload === 'object' + ? payload + : { + work_order: null, + broj_sati: '0.00', + kolicina_dnevnica: '0.00', + iznos_dnevnica: '30.00', + daily_rate_country: 'HR', + total_for_payout: '0.00', + }; +} + +export async function updateWorkOrderTravelExpensesTable(workOrderId, data) { + if (!workOrderId) { + throw new Error('Work order ID je obavezan.'); + } + const payload = await api.put( + `fleet/work-orders/${encodeURIComponent(workOrderId)}/travel-expenses-table/`, + data ?? {}, + ); + showToast('Obračun putnih troškova je uspješno spremljen.', 'success'); + return payload; +} + export async function updateTaskWorkHoursTable(taskId, data) { if (!taskId) { throw new Error('Task ID je obavezan.'); @@ -768,6 +806,17 @@ export async function updateTaskWorkHoursTable(taskId, data) { return payload; } +export async function updateTaskServiceReportNote(taskId, note) { + if (!taskId) { + throw new Error('Task ID je obavezan.'); + } + const payload = await api.patch(`tasks/tasks/${encodeURIComponent(taskId)}/`, { + service_report_note: String(note ?? ''), + }); + showToast('Napomena servisnog izvještaja je uspješno spremljena.', 'success'); + return payload; +} + export async function createWorkOrderInvoice(workOrderId, data = {}, signal = null) { if (!workOrderId) { throw new Error('Work order ID je obavezan.');