feat: bulk transcations delete

This commit is contained in:
Ahmed Bouhuolia
2025-11-03 21:40:24 +02:00
parent 8161439365
commit a0bc9db9a6
107 changed files with 2213 additions and 156 deletions

View File

@@ -150,6 +150,40 @@ export function useInactivateAccount(props) {
});
}
/**
* Deletes multiple accounts in bulk.
*/
export function useBulkDeleteAccounts(props) {
const queryClient = useQueryClient();
const apiRequest = useApiRequest();
return useMutation(
(ids: number[]) => apiRequest.post('accounts/bulk-delete', { ids }),
{
onSuccess: () => {
// Common invalidate queries.
commonInvalidateQueries(queryClient);
},
...props,
},
);
}
/**
* Validates which accounts can be deleted in bulk.
*/
export function useValidateBulkDeleteAccounts(props) {
const apiRequest = useApiRequest();
return useMutation(
(ids: number[]) =>
apiRequest.post('accounts/validate-bulk-delete', { ids }),
{
...props,
},
);
}
/**
* Retrieve account transactions.
*/

View File

@@ -121,6 +121,25 @@ export function useDeleteBill(props) {
});
}
/**
* Deletes multiple bills in bulk.
*/
export function useBulkDeleteBills(props) {
const queryClient = useQueryClient();
const apiRequest = useApiRequest();
return useMutation(
(ids: number[]) => apiRequest.post('bills/bulk-delete', { ids }),
{
onSuccess: () => {
// Common invalidate queries.
commonInvalidateQueries(queryClient);
},
...props,
},
);
}
const transformBillsResponse = (response) => ({
bills: response.data.bills,
pagination: transformPagination(response.data.pagination),

View File

@@ -111,6 +111,25 @@ export function useDeleteCreditNote(props) {
});
}
/**
* Deletes multiple credit notes in bulk.
*/
export function useBulkDeleteCreditNotes(props) {
const queryClient = useQueryClient();
const apiRequest = useApiRequest();
return useMutation(
(ids: number[]) => apiRequest.post('credit-notes/bulk-delete', { ids }),
{
onSuccess: () => {
// Common invalidate queries.
commonInvalidateQueries(queryClient);
},
...props,
},
);
}
const transformCreditNotes = (res) => ({
creditNotes: res.data.credit_notes,
pagination: transformPagination(res.data.pagination),

View File

@@ -124,6 +124,25 @@ export function useDeleteEstimate(props) {
});
}
/**
* Deletes multiple sale estimates in bulk.
*/
export function useBulkDeleteEstimates(props) {
const queryClient = useQueryClient();
const apiRequest = useApiRequest();
return useMutation(
(ids: number[]) => apiRequest.post('sale-estimates/bulk-delete', { ids }),
{
onSuccess: () => {
// Common invalidate queries.
commonInvalidateQueries(queryClient);
},
...props,
},
);
}
/**
* Mark the given estimate as delivered.
*/

View File

@@ -102,6 +102,25 @@ export function useDeleteExpense(props) {
});
}
/**
* Deletes multiple expenses in bulk.
*/
export function useBulkDeleteExpenses(props) {
const queryClient = useQueryClient();
const apiRequest = useApiRequest();
return useMutation(
(ids: number[]) => apiRequest.post('expenses/bulk-delete', { ids }),
{
onSuccess: () => {
// Common invalidate queries.
commonInvalidateQueries(queryClient);
},
...props,
},
);
}
/**
* Edits the given expense.
*/

View File

@@ -125,6 +125,25 @@ export function useDeleteInvoice(props) {
});
}
/**
* Deletes multiple sale invoices in bulk.
*/
export function useBulkDeleteInvoices(props) {
const queryClient = useQueryClient();
const apiRequest = useApiRequest();
return useMutation(
(ids: number[]) => apiRequest.post('sale-invoices/bulk-delete', { ids }),
{
onSuccess: () => {
// Common invalidate queries.
commonInvalidateQueries(queryClient);
},
...props,
},
);
}
const transformInvoices = (res) => ({
invoices: res.data.sales_invoices,
pagination: transformPagination(res.data.pagination),

View File

@@ -73,6 +73,25 @@ export function useDeleteItem(props) {
});
}
/**
* Deletes multiple items in bulk.
*/
export function useBulkDeleteItems(props) {
const queryClient = useQueryClient();
const apiRequest = useApiRequest();
return useMutation(
(ids: number[]) => apiRequest.post('items/bulk-delete', { ids }),
{
onSuccess: () => {
// Common invalidate queries.
commonInvalidateQueries(queryClient);
},
...props,
},
);
}
/**
* Activate the given item.
*/

View File

@@ -88,6 +88,25 @@ export function useDeleteJournal(props) {
});
}
/**
* Deletes multiple manual journals in bulk.
*/
export function useBulkDeleteManualJournals(props) {
const queryClient = useQueryClient();
const apiRequest = useApiRequest();
return useMutation(
(ids: number[]) => apiRequest.post('manual-journals/bulk-delete', { ids }),
{
onSuccess: () => {
// Common invalidate queries.
commonInvalidateQueries(queryClient);
},
...props,
},
);
}
/**
* Publishes the given manual journal.
*/

View File

@@ -150,6 +150,25 @@ export function useDeletePaymentReceive(props) {
);
}
/**
* Deletes multiple payments received in bulk.
*/
export function useBulkDeletePaymentReceives(props) {
const queryClient = useQueryClient();
const apiRequest = useApiRequest();
return useMutation(
(ids: number[]) => apiRequest.post('payments-received/bulk-delete', { ids }),
{
onSuccess: () => {
// Common invalidate queries.
commonInvalidateQueries(queryClient);
},
...props,
},
);
}
/**
* Retrieve specific payment receive.
* @param {number} id - Payment receive.

View File

@@ -113,6 +113,25 @@ export function useDeleteVendorCredit(props) {
);
}
/**
* Deletes multiple vendor credits in bulk.
*/
export function useBulkDeleteVendorCredits(props) {
const queryClient = useQueryClient();
const apiRequest = useApiRequest();
return useMutation(
(ids: number[]) => apiRequest.post('vendor-credits/bulk-delete', { ids }),
{
onSuccess: () => {
// Common invalidate queries.
commonInvalidateQueries(queryClient);
},
...props,
},
);
}
const transformVendorCreditsResponse = (response) => ({
vendorCredits: response.data.vendor_credits,
pagination: transformPagination(response.data.pagination),