mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-16 21:00:31 +00:00
refactoring: invoice, receipt, payment receive, estimate and journal number dialogs.
This commit is contained in:
@@ -11,9 +11,11 @@ export function useCreateBill(props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useMutation((values) => apiRequest.post('purchases/bills', values), {
|
||||
onSuccess: () => {
|
||||
onSuccess: (res, values) => {
|
||||
queryClient.invalidateQueries('BILLS');
|
||||
queryClient.invalidateQueries('BILL');
|
||||
queryClient.invalidateQueries(['VENDORS']);
|
||||
queryClient.invalidateQueries(['VENDOR', values.vendor_id]);
|
||||
},
|
||||
...props,
|
||||
});
|
||||
@@ -29,9 +31,11 @@ export function useEditBill(props) {
|
||||
return useMutation(
|
||||
([id, values]) => apiRequest.post(`purchases/bills/${id}`, values),
|
||||
{
|
||||
onSuccess: () => {
|
||||
onSuccess: (res, [id, values]) => {
|
||||
queryClient.invalidateQueries('BILLS');
|
||||
queryClient.invalidateQueries('BILL');
|
||||
queryClient.invalidateQueries(['VENDORS']);
|
||||
queryClient.invalidateQueries(['VENDOR', values.vendor_id]);
|
||||
},
|
||||
...props,
|
||||
},
|
||||
@@ -46,9 +50,10 @@ export function useDeleteBill(props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useMutation((id) => apiRequest.delete(`purchases/bills/${id}`), {
|
||||
onSuccess: () => {
|
||||
onSuccess: (res, id) => {
|
||||
queryClient.invalidateQueries('BILLS');
|
||||
queryClient.invalidateQueries('BILL');
|
||||
queryClient.invalidateQueries(['VENDORS']);
|
||||
},
|
||||
...props,
|
||||
});
|
||||
@@ -122,6 +127,7 @@ export function useOpenBill(props) {
|
||||
{
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries('BILLS');
|
||||
queryClient.invalidateQueries(['VENDORS']);
|
||||
},
|
||||
...props,
|
||||
},
|
||||
|
||||
@@ -13,6 +13,7 @@ export function useCreateEstimate(props) {
|
||||
return useMutation((values) => apiRequest.post('sales/estimates', values), {
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries('SALE_ESTIMATES');
|
||||
queryClient.invalidateQueries(['SETTINGS', 'ESTIMATES']);
|
||||
},
|
||||
...props,
|
||||
});
|
||||
|
||||
@@ -10,7 +10,7 @@ export const useAuthInviteAccept = (props) => {
|
||||
return useMutation(
|
||||
([values, token]) => apiRequest.post(`invite/accept/${token}`, values),
|
||||
props,
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,8 +11,11 @@ export function useCreateInvoice(props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useMutation((values) => apiRequest.post('sales/invoices', values), {
|
||||
onSuccess: () => {
|
||||
onSuccess: (values) => {
|
||||
queryClient.invalidateQueries('SALE_INVOICES');
|
||||
queryClient.invalidateQueries(['SETTINGS', 'INVOICES']);
|
||||
queryClient.invalidateQueries('CUSTOMERS');
|
||||
queryClient.invalidateQueries(['CUSTOMER', values.customer_id]);
|
||||
},
|
||||
...props,
|
||||
});
|
||||
@@ -28,9 +31,11 @@ export function useEditInvoice(props) {
|
||||
return useMutation(
|
||||
([id, values]) => apiRequest.post(`sales/invoices/${id}`, values),
|
||||
{
|
||||
onSuccess: (res, id) => {
|
||||
onSuccess: (res, [id, values]) => {
|
||||
queryClient.invalidateQueries('SALE_INVOICES');
|
||||
queryClient.invalidateQueries(['SALE_INVOICE', id]);
|
||||
queryClient.invalidateQueries('CUSTOMERS');
|
||||
queryClient.invalidateQueries(['CUSTOMER', values.customer_id]);
|
||||
},
|
||||
...props,
|
||||
},
|
||||
@@ -48,6 +53,7 @@ export function useDeleteInvoice(props) {
|
||||
onSuccess: (res, id) => {
|
||||
queryClient.invalidateQueries('SALE_INVOICES');
|
||||
queryClient.invalidateQueries(['SALE_INVOICE', id]);
|
||||
queryClient.invalidateQueries('CUSTOMERS');
|
||||
},
|
||||
...props,
|
||||
});
|
||||
@@ -97,6 +103,7 @@ export function useDeliverInvoice(props) {
|
||||
onSuccess: (res, id) => {
|
||||
queryClient.invalidateQueries('SALE_INVOICES');
|
||||
queryClient.invalidateQueries(['SALE_INVOICE', id]);
|
||||
queryClient.invalidateQueries('CUSTOMERS');
|
||||
},
|
||||
...props,
|
||||
});
|
||||
|
||||
@@ -3,34 +3,6 @@ import { useDispatch } from 'react-redux';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from 'store/types';
|
||||
|
||||
/**
|
||||
* Retrieve settings.
|
||||
*/
|
||||
export function useSettings(query, props) {
|
||||
const dispatch = useDispatch();
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const settings = useQuery(
|
||||
['SETTINGS', query],
|
||||
async () => {
|
||||
const {
|
||||
data: { settings },
|
||||
} = await apiRequest.get('settings', { params: query });
|
||||
|
||||
return settings;
|
||||
},
|
||||
{
|
||||
initialData: [],
|
||||
...props,
|
||||
},
|
||||
);
|
||||
dispatch({
|
||||
type: t.SETTING_SET,
|
||||
options: settings.data,
|
||||
});
|
||||
return settings;
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves the settings.
|
||||
*/
|
||||
@@ -45,3 +17,90 @@ export function useSaveSettings(props) {
|
||||
...props,
|
||||
});
|
||||
}
|
||||
|
||||
function useSettingsQuery(key, query, props) {
|
||||
const dispatch = useDispatch();
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQuery(
|
||||
key,
|
||||
() => apiRequest.get('settings', { params: query }),
|
||||
{
|
||||
select: (res) => res.data.settings,
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: {
|
||||
settings: [],
|
||||
},
|
||||
},
|
||||
onSuccess: (settings) => {
|
||||
dispatch({ type: t.SETTING_SET, options: settings });
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the all settings of the organization.
|
||||
*/
|
||||
export function useSettings() {
|
||||
return useSettingsQuery(['SETTINGS', 'ALL'], {});
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve invoices settings.
|
||||
*/
|
||||
export function useSettingsInvoices(props) {
|
||||
return useSettingsQuery(
|
||||
['SETTINGS', 'INVOICES'],
|
||||
{ group: 'sale_invoices' },
|
||||
props,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve invoices settings.
|
||||
*/
|
||||
export function useSettingsEstimates(props) {
|
||||
return useSettingsQuery(
|
||||
['SETTINGS', 'ESTIMATES'],
|
||||
{ group: 'sale_estimates' },
|
||||
props,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve payment receives settings.
|
||||
*/
|
||||
export function useSettingsPaymentReceives(props) {
|
||||
return useSettingsQuery(
|
||||
['SETTINGS', 'PAYMENT_RECEIVES'],
|
||||
{ group: 'payment_receives' },
|
||||
props,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve sale receipts settings.
|
||||
* @param {*} props
|
||||
*/
|
||||
export function useSettingsReceipts(props) {
|
||||
return useSettingsQuery(
|
||||
['SETTINGS', 'RECEIPTS'],
|
||||
{ group: 'sale_receipts' },
|
||||
props,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve sale receipts settings.
|
||||
* @param {*} props
|
||||
*/
|
||||
export function useSettingsManualJournals(props) {
|
||||
return useSettingsQuery(
|
||||
['SETTINGS', 'MANUAL_JOURNALS'],
|
||||
{ group: 'sale_receipts' },
|
||||
props,
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user