feat: Implement asynchronous invoice report generation with email delivery and frontend status polling.
This commit is contained in:
@@ -62,6 +62,15 @@ export interface AllMovementsFilter {
|
||||
exchange_rate_type: ExchangeRateType;
|
||||
is_shelter: boolean;
|
||||
operation_type?: 'imp' | 'exp' | null;
|
||||
send_email?: boolean;
|
||||
// Granular flags
|
||||
import_temp?: boolean;
|
||||
import_def?: boolean;
|
||||
import_rep?: boolean;
|
||||
export_def?: boolean;
|
||||
export_rep?: boolean;
|
||||
export_types?: string[];
|
||||
discharge_filter?: DischargeFilter;
|
||||
}
|
||||
|
||||
export interface MovementItem {
|
||||
@@ -181,5 +190,14 @@ export const invoiceMovementsApi = {
|
||||
|
||||
// All Movements
|
||||
getAllMovements: (filters: AllMovementsFilter) =>
|
||||
api.post<MovementItem[]>('/v1/a76/reports/movements/invoices/all', filters)
|
||||
api.post<MovementItem[]>('/v1/a76/reports/movements/invoices/all', filters),
|
||||
|
||||
// Async Generation
|
||||
generateReportAsync: (filters: AllMovementsFilter) =>
|
||||
api.post<{ task_id: string }>('/v1/a76/reports/movements/invoices/generate', filters),
|
||||
|
||||
getTaskStatus: (taskId: string) =>
|
||||
api.get<{ task_id: string; status: string; result?: any; meta?: any }>(
|
||||
`/v1/a76/reports/movements/invoices/task/${taskId}`
|
||||
)
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user