This commit is contained in:
2026-08-10 16:29:26 +08:00
parent e364c46ce4
commit d1e8eb7316
18 changed files with 1335 additions and 819 deletions
+60
View File
@@ -497,6 +497,66 @@ export async function getInvoiceDetail(id: string): Promise<any> {
return api.get(`/invoices/${id}`);
}
// ── Invoice Headers ──────────────────────────────────────
export async function getInvoiceHeaders(): Promise<{ items: any[] }> {
return api.get('/invoice-headers');
}
export async function createInvoiceHeader(data: {
type: 'personal' | 'company';
name: string;
taxNo?: string;
registerAddress?: string;
registerPhone?: string;
bankName?: string;
bankAccount?: string;
email?: string;
isDefault?: boolean;
}): Promise<any> {
return api.post('/invoice-headers', {
type: data.type,
name: data.name,
tax_no: data.taxNo,
register_address: data.registerAddress,
register_phone: data.registerPhone,
bank_name: data.bankName,
bank_account: data.bankAccount,
email: data.email,
is_default: data.isDefault ?? false,
});
}
export async function updateInvoiceHeader(id: string, data: {
name?: string;
taxNo?: string;
registerAddress?: string;
registerPhone?: string;
bankName?: string;
bankAccount?: string;
email?: string;
isDefault?: boolean;
}): Promise<any> {
return api.put(`/invoice-headers/${id}`, {
name: data.name,
tax_no: data.taxNo,
register_address: data.registerAddress,
register_phone: data.registerPhone,
bank_name: data.bankName,
bank_account: data.bankAccount,
email: data.email,
is_default: data.isDefault,
});
}
export async function deleteInvoiceHeader(id: string): Promise<void> {
await api.delete(`/invoice-headers/${id}`);
}
export async function setDefaultInvoiceHeader(id: string): Promise<any> {
return api.put(`/invoice-headers/${id}/set-default`);
}
export async function getCreditRatios(): Promise<any[]> {
return api.get('/credits/ratios');
}