mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-16 12:50:38 +00:00
wip
This commit is contained in:
@@ -16,6 +16,7 @@ export const useBulkDeleteDialog = (
|
||||
if (!ids?.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
const { deletableCount = 0, nonDeletableCount = 0 } =
|
||||
await validateBulkDelete(ids);
|
||||
|
||||
|
||||
@@ -167,7 +167,7 @@ export function useBulkDeleteAccounts(props) {
|
||||
}) =>
|
||||
apiRequest.post('accounts/bulk-delete', {
|
||||
ids,
|
||||
skipUndeletable,
|
||||
skip_undeletable: skipUndeletable,
|
||||
}),
|
||||
{
|
||||
onSuccess: () => {
|
||||
|
||||
@@ -128,7 +128,7 @@ export function useBulkDeleteCreditNotes(props) {
|
||||
}) =>
|
||||
apiRequest.post('credit-notes/bulk-delete', {
|
||||
ids,
|
||||
skipUndeletable,
|
||||
skip_undeletable: skipUndeletable,
|
||||
}),
|
||||
{
|
||||
onSuccess: () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// @ts-nocheck
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import { transformPagination } from '@/utils';
|
||||
import { transformPagination, transformToCamelCase } from '@/utils';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from './types';
|
||||
|
||||
@@ -100,6 +100,49 @@ export function useDeleteCustomer(props) {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes multiple customers in bulk.
|
||||
*/
|
||||
export function useBulkDeleteCustomers(props) {
|
||||
const queryClient = useQueryClient();
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useMutation(
|
||||
({
|
||||
ids,
|
||||
skipUndeletable = false,
|
||||
}: {
|
||||
ids: number[];
|
||||
skipUndeletable?: boolean;
|
||||
}) =>
|
||||
apiRequest.post('customers/bulk-delete', {
|
||||
ids,
|
||||
skip_undeletable: skipUndeletable,
|
||||
}).then((res) => transformToCamelCase(res.data)),
|
||||
{
|
||||
onSuccess: () => {
|
||||
commonInvalidateQueries(queryClient);
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates which customers can be deleted in bulk.
|
||||
*/
|
||||
export function useValidateBulkDeleteCustomers(props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useMutation(
|
||||
(ids: number[]) =>
|
||||
apiRequest.post('customers/validate-bulk-delete', { ids }).then((res) => transformToCamelCase(res.data)),
|
||||
{
|
||||
...props,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new customer.
|
||||
*/
|
||||
|
||||
@@ -141,7 +141,7 @@ export function useBulkDeleteEstimates(props) {
|
||||
}) =>
|
||||
apiRequest.post('sale-estimates/bulk-delete', {
|
||||
ids,
|
||||
skipUndeletable,
|
||||
skip_undeletable: skipUndeletable,
|
||||
}),
|
||||
{
|
||||
onSuccess: () => {
|
||||
|
||||
@@ -119,7 +119,7 @@ export function useBulkDeleteExpenses(props) {
|
||||
}) =>
|
||||
apiRequest.post('expenses/bulk-delete', {
|
||||
ids,
|
||||
skipUndeletable,
|
||||
skip_undeletable: skipUndeletable,
|
||||
}),
|
||||
{
|
||||
onSuccess: () => {
|
||||
|
||||
@@ -142,7 +142,7 @@ export function useBulkDeleteInvoices(props) {
|
||||
}) =>
|
||||
apiRequest.post('sale-invoices/bulk-delete', {
|
||||
ids,
|
||||
skipUndeletable,
|
||||
skip_undeletable: skipUndeletable,
|
||||
}),
|
||||
{
|
||||
onSuccess: () => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// @ts-nocheck
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { transformPagination, transformResponse } from '@/utils';
|
||||
import { transformPagination, transformResponse, transformToCamelCase } from '@/utils';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from './types';
|
||||
@@ -81,7 +81,17 @@ export function useBulkDeleteItems(props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useMutation(
|
||||
(ids: number[]) => apiRequest.post('items/bulk-delete', { ids }),
|
||||
({
|
||||
ids,
|
||||
skipUndeletable = false,
|
||||
}: {
|
||||
ids: number[];
|
||||
skipUndeletable?: boolean;
|
||||
}) =>
|
||||
apiRequest.post('items/bulk-delete', {
|
||||
ids,
|
||||
skip_undeletable: skipUndeletable,
|
||||
}),
|
||||
{
|
||||
onSuccess: () => {
|
||||
// Common invalidate queries.
|
||||
@@ -92,6 +102,21 @@ export function useBulkDeleteItems(props) {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates which items can be deleted in bulk.
|
||||
*/
|
||||
export function useValidateBulkDeleteItems(props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useMutation(
|
||||
(ids: number[]) =>
|
||||
apiRequest.post('items/validate-bulk-delete', { ids }).then((res) => transformToCamelCase(res.data)),
|
||||
{
|
||||
...props,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Activate the given item.
|
||||
*/
|
||||
|
||||
@@ -105,7 +105,7 @@ export function useBulkDeleteManualJournals(props) {
|
||||
}) =>
|
||||
apiRequest.post('manual-journals/bulk-delete', {
|
||||
ids,
|
||||
skipUndeletable,
|
||||
skip_undeletable: skipUndeletable,
|
||||
}),
|
||||
{
|
||||
onSuccess: () => {
|
||||
|
||||
@@ -167,7 +167,7 @@ export function useBulkDeletePaymentReceives(props) {
|
||||
}) =>
|
||||
apiRequest.post('payments-received/bulk-delete', {
|
||||
ids,
|
||||
skipUndeletable,
|
||||
skip_undeletable: skipUndeletable,
|
||||
}),
|
||||
{
|
||||
onSuccess: () => {
|
||||
|
||||
@@ -121,7 +121,7 @@ export function useBulkDeleteReceipts(props) {
|
||||
}) =>
|
||||
apiRequest.post('sale-receipts/bulk-delete', {
|
||||
ids,
|
||||
skipUndeletable,
|
||||
skip_undeletable: skipUndeletable,
|
||||
}),
|
||||
{
|
||||
onSuccess: () => {
|
||||
|
||||
@@ -130,7 +130,7 @@ export function useBulkDeleteVendorCredits(props) {
|
||||
}) =>
|
||||
apiRequest.post('vendor-credits/bulk-delete', {
|
||||
ids,
|
||||
skipUndeletable,
|
||||
skip_undeletable: skipUndeletable,
|
||||
}),
|
||||
{
|
||||
onSuccess: () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// @ts-nocheck
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import t from './types';
|
||||
import { transformPagination } from '@/utils';
|
||||
import { transformPagination, transformToCamelCase } from '@/utils';
|
||||
import useApiRequest from '../useRequest';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
|
||||
@@ -88,6 +88,49 @@ export function useDeleteVendor(props) {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes multiple vendors in bulk.
|
||||
*/
|
||||
export function useBulkDeleteVendors(props) {
|
||||
const queryClient = useQueryClient();
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useMutation(
|
||||
({
|
||||
ids,
|
||||
skipUndeletable = false,
|
||||
}: {
|
||||
ids: number[];
|
||||
skipUndeletable?: boolean;
|
||||
}) =>
|
||||
apiRequest.post('vendors/bulk-delete', {
|
||||
ids,
|
||||
skip_undeletable: skipUndeletable,
|
||||
}),
|
||||
{
|
||||
onSuccess: () => {
|
||||
commonInvalidateQueries(queryClient);
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates which vendors can be deleted in bulk.
|
||||
*/
|
||||
export function useValidateBulkDeleteVendors(props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useMutation(
|
||||
(ids: number[]) =>
|
||||
apiRequest.post('vendors/validate-bulk-delete', { ids }).then((res) => transformToCamelCase(res.data)),
|
||||
{
|
||||
...props,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new vendor.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user