Files
InvoiceShelf/resources/scripts-v2/api/services/report.service.ts
Darko Gjorgjijoski a46cca5cd8 Complete scripts-v2 TypeScript migration — all imports resolved,
build passes

Create all missing components (modals, dropdowns, icons, tabs, mail
drivers, customer partials), fix all @/scripts/ imports to @v2/,
wire up vite entry point and blade template. 382 files, 48883 lines.

- 27 settings components: modals (tax, payment, custom field, note,
  category, role, exchange rate, unit, mail test), dropdowns (6),
  customization tabs (4), mail driver forms (4)
- 22 icon components: 5 utility icons, 4 dashboard icons, 13 editor
  toolbar icons with typed barrel export
- 3 customer components: info, chart placeholder, custom fields single
- Fixed usePopper composable, client/format-money import patterns
- Zero remaining @/scripts/ imports in scripts-v2/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 09:30:00 +02:00

87 lines
1.8 KiB
TypeScript

import { client } from '../client'
import { API } from '../endpoints'
import type { DateRangeParams } from '@v2/types/api'
export interface ReportParams extends DateRangeParams {
report_type?: string
}
export interface SalesReportResponse {
data: Array<{
date: string
total: number
count: number
}>
total: number
from_date: string
to_date: string
}
export interface ProfitLossReportResponse {
data: {
income: Array<{
label: string
amount: number
}>
expenses: Array<{
label: string
amount: number
}>
net_profit: number
}
from_date: string
to_date: string
}
export interface ExpenseReportResponse {
data: Array<{
category: string
total: number
count: number
}>
total: number
from_date: string
to_date: string
}
export interface TaxReportResponse {
data: Array<{
tax_name: string
tax_amount: number
invoice_count: number
}>
total: number
from_date: string
to_date: string
}
export const reportService = {
async getSalesReport(params: ReportParams): Promise<SalesReportResponse> {
const { data } = await client.get(API.DASHBOARD, {
params: { ...params, report_type: 'sales' },
})
return data
},
async getProfitLossReport(params: ReportParams): Promise<ProfitLossReportResponse> {
const { data } = await client.get(API.DASHBOARD, {
params: { ...params, report_type: 'profit_loss' },
})
return data
},
async getExpenseReport(params: ReportParams): Promise<ExpenseReportResponse> {
const { data } = await client.get(API.DASHBOARD, {
params: { ...params, report_type: 'expenses' },
})
return data
},
async getTaxReport(params: ReportParams): Promise<TaxReportResponse> {
const { data } = await client.get(API.DASHBOARD, {
params: { ...params, report_type: 'tax' },
})
return data
},
}