Files
ga-commission-system/ga-frontend/src/api/year-end-statement.ts
T

62 lines
1.7 KiB
TypeScript
Raw Normal View History

import api, { unwrap } from './request';
export interface YearEndStatementResp extends Record<string, unknown> {
statementId: number;
agentId: number;
agentName?: string;
agentCode?: string;
businessNo?: string;
orgName?: string;
statementYear: number;
statementType?: string;
statementTypeName?: string;
totalIncome: number;
totalWithheld: number;
totalLocalTax: number;
filePath?: string;
fileFormat?: string;
fileStatus?: string;
fileStatusName?: string;
generatedAt?: string;
sentAt?: string;
sentTo?: string;
createdAt?: string;
updatedAt?: string;
}
export interface YearEndStatementSearchParam {
statementYear?: number;
agentId?: number;
orgId?: number;
fileStatus?: string;
fileFormat?: string;
pageNum?: number;
pageSize?: number;
}
export interface YearEndStatementRegenerateReq {
statementYear: number;
agentIds?: number[];
statementType?: string;
}
export interface YearEndStatementSendReq {
ids: number[];
sentTo: string;
}
export const yearEndStatementApi = {
list: (params?: YearEndStatementSearchParam) =>
unwrap<{ list: YearEndStatementResp[]; total: number }>(
api.get('/api/year-end-statements', { params })
),
detail: (id: number) =>
unwrap<YearEndStatementResp>(api.get(`/api/year-end-statements/${id}`)),
regenerate: (req: YearEndStatementRegenerateReq) =>
unwrap<number>(api.post('/api/year-end-statements/regenerate', req)),
generate: (id: number, fileFormat?: string) =>
unwrap<void>(api.post(`/api/year-end-statements/${id}/generate`, { fileFormat })),
send: (req: YearEndStatementSendReq) =>
unwrap<void>(api.put('/api/year-end-statements/send', req)),
};