mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-16 21:00:31 +00:00
feat(ManualJournals): Auto-increment.
fix(BillPayment): Validate the opened payment bills. fix(redux): presist redux state. fix(useRequestQuery): hook.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useQueryTenant, useRequestQuery } from '../useQueryRequest';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from './types';
|
||||
|
||||
@@ -14,27 +14,20 @@ const commonInvalidateQueries = (query) => {
|
||||
|
||||
// Invalidate financial reports.
|
||||
query.invalidateQueries(t.FINANCIAL_REPORT);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Retrieve accounts list.
|
||||
*/
|
||||
export function useAccounts(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.ACCOUNTS, query],
|
||||
() => apiRequest.get('accounts', { params: query }),
|
||||
{ method: 'get', url: 'accounts', params: query },
|
||||
{
|
||||
select: (response) => {
|
||||
return response.data.accounts;
|
||||
},
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: {
|
||||
accounts: []
|
||||
},
|
||||
},
|
||||
defaultData: [],
|
||||
...props,
|
||||
},
|
||||
);
|
||||
@@ -45,17 +38,13 @@ export function useAccounts(query, props) {
|
||||
* @param {number} id - Account id.
|
||||
*/
|
||||
export function useAccount(id, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.ACCOUNT, id],
|
||||
() => apiRequest.get(`accounts/${id}`).then(transformAccount),
|
||||
{ method: 'get', url: `accounts/${id}` },
|
||||
{
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: { account: {} }
|
||||
},
|
||||
...props
|
||||
select: transformAccount,
|
||||
defaultData: {},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
}
|
||||
@@ -64,19 +53,12 @@ export function useAccount(id, props) {
|
||||
* Retrieve accounts types list.
|
||||
*/
|
||||
export function useAccountsTypes(props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.ACCOUNTS_TYPES],
|
||||
() => apiRequest.get('account_types'),
|
||||
{ method: 'get', url: 'account_types' },
|
||||
{
|
||||
select: (res) => res.data.account_types,
|
||||
initialData: {
|
||||
data: {
|
||||
account_types: [],
|
||||
},
|
||||
},
|
||||
initialDataUpdatedAt: 0,
|
||||
defaultData: [],
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { useQueryClient, useMutation } from 'react-query';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { defaultTo } from 'lodash';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import { transformPagination } from 'utils';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from './types';
|
||||
@@ -63,20 +62,17 @@ export function useEditBill(props) {
|
||||
/**
|
||||
* Marks the given bill as open.
|
||||
*/
|
||||
export function useOpenBill(props) {
|
||||
export function useOpenBill(props) {
|
||||
const queryClient = useQueryClient();
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useMutation(
|
||||
(id) => apiRequest.post(`purchases/bills/${id}/open`),
|
||||
{
|
||||
onSuccess: (res, id) => {
|
||||
// Common invalidate queries.
|
||||
commonInvalidateQueries(queryClient);
|
||||
},
|
||||
...props,
|
||||
return useMutation((id) => apiRequest.post(`purchases/bills/${id}/open`), {
|
||||
onSuccess: (res, id) => {
|
||||
// Common invalidate queries.
|
||||
commonInvalidateQueries(queryClient);
|
||||
},
|
||||
);
|
||||
...props,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -95,38 +91,37 @@ export function useDeleteBill(props) {
|
||||
});
|
||||
}
|
||||
|
||||
const transformBillsResponse = (response) => ({
|
||||
bills: response.data.bills,
|
||||
pagination: transformPagination(response.data.pagination),
|
||||
filterMeta: response.data.filter_meta,
|
||||
});
|
||||
|
||||
/**
|
||||
* Retrieve sale invoices list with pagination meta.
|
||||
*/
|
||||
export function useBills(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.BILLS, query],
|
||||
() =>
|
||||
apiRequest.get('purchases/bills', { params: query }),
|
||||
{
|
||||
select: (response) => ({
|
||||
bills: response.data.bills,
|
||||
pagination: transformPagination(response.data.pagination),
|
||||
filterMeta: response.data.filter_meta,
|
||||
}),
|
||||
method: 'get',
|
||||
url: 'purchases/bills',
|
||||
params: query,
|
||||
},
|
||||
{
|
||||
select: transformBillsResponse,
|
||||
defaultData: {
|
||||
bills: [],
|
||||
pagination: {
|
||||
page: 1,
|
||||
page_size: 12,
|
||||
total: 0,
|
||||
},
|
||||
filterMeta: {},
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, {
|
||||
bills: [],
|
||||
pagination: {
|
||||
page: 1,
|
||||
page_size: 12,
|
||||
total: 0,
|
||||
},
|
||||
filterMeta: {},
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -134,44 +129,33 @@ export function useBills(query, props) {
|
||||
* @param {number} id - Bill id.
|
||||
*/
|
||||
export function useBill(id, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.BILL, id],
|
||||
() => apiRequest.get(`/purchases/bills/${id}`),
|
||||
{ method: 'get', url: `/purchases/bills/${id}`, },
|
||||
{
|
||||
select: (res) => res.data.bill,
|
||||
defaultData: {},
|
||||
...props,
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, {}),
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the due bills of the given vendor id.
|
||||
* @param {number} vendorId -
|
||||
*/
|
||||
export function useDueBills(vendorId, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
export function useDueBills(vendorId, props) {
|
||||
return useRequestQuery(
|
||||
[t.BILLS, t.BILLS_DUE, vendorId],
|
||||
() =>
|
||||
apiRequest.get(`purchases/bills/due`, {
|
||||
params: { vendor_id: vendorId },
|
||||
}),
|
||||
{
|
||||
method: 'get',
|
||||
url: 'purchases/bills/due',
|
||||
params: { vendor_id: vendorId },
|
||||
},
|
||||
{
|
||||
select: (res) => res.data.bills,
|
||||
defaultData: [],
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, []),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import useApiRequest from '../useRequest';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useQueryTenant } from '../useQueryRequest';
|
||||
|
||||
/**
|
||||
* Retrieve the contact duplicate.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from './types';
|
||||
|
||||
@@ -62,14 +62,12 @@ export function useDeleteCurrency(props) {
|
||||
* Retrieve the currencies list.
|
||||
*/
|
||||
export function useCurrencies(props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.CURRENCIES],
|
||||
() => apiRequest.get('currencies').then((res) => res.data.currencies),
|
||||
{ method: 'get', url: 'currencies' },
|
||||
{
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: [],
|
||||
select: (res) => res.data.currencies,
|
||||
defaultData: [],
|
||||
...props
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import { transformPagination } from 'utils';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from './types';
|
||||
@@ -22,28 +22,26 @@ const commonInvalidateQueries = (queryClient) => {
|
||||
queryClient.invalidateQueries(t.FINANCIAL_REPORT);
|
||||
};
|
||||
|
||||
// Customers response selector.
|
||||
const customersSelector = (response) => ({
|
||||
customers: response.data.customers,
|
||||
pagination: transformPagination(response.data.pagination),
|
||||
filterMeta: response.data.filter_meta,
|
||||
});
|
||||
|
||||
/**
|
||||
* Retrieve customers list with pagination meta.
|
||||
*/
|
||||
export function useCustomers(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.CUSTOMERS, query],
|
||||
() => apiRequest.get(`customers`, { params: query }),
|
||||
{ method: 'get', url: `customers`, params: query },
|
||||
{
|
||||
select: (response) => ({
|
||||
customers: response.data.customers,
|
||||
pagination: transformPagination(response.data.pagination),
|
||||
filterMeta: response.data.filter_meta,
|
||||
}),
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: {
|
||||
customers: [],
|
||||
pagination: defaultPagination,
|
||||
filter_meta: {},
|
||||
}
|
||||
select: customersSelector,
|
||||
defaultData: {
|
||||
customers: [],
|
||||
pagination: defaultPagination,
|
||||
filterMeta: {},
|
||||
},
|
||||
...props,
|
||||
},
|
||||
@@ -117,19 +115,12 @@ export function useCreateCustomer(props) {
|
||||
* Retrieve the customer details.
|
||||
*/
|
||||
export function useCustomer(id, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.CUSTOMER, id],
|
||||
() => apiRequest.get(`customers/${id}`),
|
||||
{ method: 'get', url: `customers/${id}` },
|
||||
{
|
||||
select: (res) => res.data.customer,
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: {
|
||||
customer: {}
|
||||
}
|
||||
},
|
||||
defaultData: {},
|
||||
...props
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useQueryClient, useMutation } from 'react-query';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import useApiRequest from '../useRequest';
|
||||
import { transformPagination } from 'utils';
|
||||
import t from './types';
|
||||
@@ -55,48 +55,40 @@ export function useEditEstimate(props) {
|
||||
* Retrieve sale estimate details.
|
||||
*/
|
||||
export function useEstimate(id, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.SALE_ESTIMATE, id],
|
||||
() => apiRequest.get(`sales/estimates/${id}`),
|
||||
{ method: 'get', url: `sales/estimates/${id}` },
|
||||
{
|
||||
select: (res) => res.data.estimate,
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: { estimate: {} },
|
||||
},
|
||||
defaultData: {},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
const transformEstimates = (res) => ({
|
||||
estimates: res.data.sales_estimates,
|
||||
pagination: transformPagination(res.data.pagination),
|
||||
filterMeta: res.data.filter_meta,
|
||||
});
|
||||
|
||||
/**
|
||||
* Retrieve sale invoices list with pagination meta.
|
||||
*/
|
||||
export function useEstimates(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.SALE_ESTIMATES, query],
|
||||
() => apiRequest.get('sales/estimates', { params: query }),
|
||||
{ method: 'get', url: 'sales/estimates', params: query },
|
||||
{
|
||||
select: (res) => ({
|
||||
estimates: res.data.sales_estimates,
|
||||
pagination: transformPagination(res.data.pagination),
|
||||
filterMeta: res.data.filter_meta,
|
||||
}),
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data:{
|
||||
sales_estimates: [],
|
||||
pagination: {
|
||||
page: 1,
|
||||
pageSize: 12,
|
||||
total: 0,
|
||||
},
|
||||
filter_meta: {},
|
||||
}
|
||||
select: transformEstimates,
|
||||
defaultData: {
|
||||
estimates: [],
|
||||
pagination: {
|
||||
page: 1,
|
||||
pageSize: 12,
|
||||
total: 0,
|
||||
},
|
||||
filterMeta: {},
|
||||
},
|
||||
...props,
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { defaultTo } from 'lodash';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useQueryTenant } from '../useQueryRequest';
|
||||
import { transformPagination } from 'utils';
|
||||
import useApiRequest from '../useRequest';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import useApiRequest from '../useRequest';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import { transformPagination } from 'utils';
|
||||
import t from './types';
|
||||
|
||||
@@ -23,28 +23,29 @@ const commonInvalidateQueries = (queryClient) => {
|
||||
queryClient.invalidateQueries(t.FINANCIAL_REPORT);
|
||||
};
|
||||
|
||||
const transformExpenses = (response) => ({
|
||||
expenses: response.data.expenses,
|
||||
pagination: transformPagination(response.data.pagination),
|
||||
filterMeta: response.data.filter_meta,
|
||||
});
|
||||
|
||||
/**
|
||||
* Retrieve the expenses list.
|
||||
*/
|
||||
export function useExpenses(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.EXPENSES, query],
|
||||
() => apiRequest.get(`expenses`, { params: { ...query } }),
|
||||
{
|
||||
select: (response) => ({
|
||||
expenses: response.data.expenses,
|
||||
pagination: transformPagination(response.data.pagination),
|
||||
filterMeta: response.data.filter_meta,
|
||||
}),
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: {
|
||||
expenses: [],
|
||||
pagination: defaultPagination,
|
||||
filter_meta: {},
|
||||
},
|
||||
method: 'get',
|
||||
url: `expenses`,
|
||||
params: { ...query }
|
||||
},
|
||||
{
|
||||
select: transformExpenses,
|
||||
defaultData: {
|
||||
expenses: [],
|
||||
pagination: defaultPagination,
|
||||
filterMeta: {},
|
||||
},
|
||||
...props,
|
||||
},
|
||||
@@ -56,19 +57,15 @@ export function useExpenses(query, props) {
|
||||
* @param {number} id - Expense id.
|
||||
*/
|
||||
export function useExpense(id, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.EXPENSE, id],
|
||||
() => apiRequest.get(`expenses/${id}`),
|
||||
{
|
||||
method: 'get',
|
||||
url: `expenses/${id}`
|
||||
},
|
||||
{
|
||||
select: (res) => res.data.expense,
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: {
|
||||
expense: {},
|
||||
}
|
||||
},
|
||||
defaultData: {},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { defaultTo } from 'lodash';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import {
|
||||
trialBalanceSheetReducer,
|
||||
balanceSheetRowsReducer,
|
||||
@@ -7,176 +6,150 @@ import {
|
||||
generalLedgerTableRowsReducer,
|
||||
journalTableRowsReducer,
|
||||
ARAgingSummaryTableRowsMapper,
|
||||
APAgingSummaryTableRowsMapper
|
||||
APAgingSummaryTableRowsMapper,
|
||||
} from 'containers/FinancialStatements/reducers';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from './types';
|
||||
|
||||
/**
|
||||
* Retrieve balance sheet.
|
||||
*/
|
||||
export function useBalanceSheet(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.FINANCIAL_REPORT, t.BALANCE_SHEET, query],
|
||||
() =>
|
||||
apiRequest.get('/financial_statements/balance_sheet', {
|
||||
params: query,
|
||||
}),
|
||||
{
|
||||
method: 'get',
|
||||
url: '/financial_statements/balance_sheet',
|
||||
params: query,
|
||||
},
|
||||
{
|
||||
select: (res) => ({
|
||||
tableRows: balanceSheetRowsReducer(res.data.data),
|
||||
...res.data,
|
||||
}),
|
||||
defaultData: {
|
||||
data: [],
|
||||
columns: [],
|
||||
query: {},
|
||||
tableRows: [],
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, {
|
||||
data: [],
|
||||
columns: [],
|
||||
query: {},
|
||||
tableRows: [],
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve trial balance sheet.
|
||||
*/
|
||||
export function useTrialBalanceSheet(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.FINANCIAL_REPORT, t.TRIAL_BALANCE_SHEET, query],
|
||||
() =>
|
||||
apiRequest.get('/financial_statements/trial_balance_sheet', {
|
||||
params: query,
|
||||
}),
|
||||
{
|
||||
method: 'get',
|
||||
url: '/financial_statements/trial_balance_sheet',
|
||||
params: query,
|
||||
},
|
||||
{
|
||||
select: (res) => ({
|
||||
tableRows: trialBalanceSheetReducer(res.data.data),
|
||||
...res.data,
|
||||
}),
|
||||
defaultData: {
|
||||
tableRows: [],
|
||||
data: [],
|
||||
query: {},
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, {
|
||||
tableRows: [],
|
||||
data: [],
|
||||
query: {},
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve profit/loss (P&L) sheet.
|
||||
*/
|
||||
export function useProfitLossSheet(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.FINANCIAL_REPORT, t.PROFIT_LOSS_SHEET, query],
|
||||
() =>
|
||||
apiRequest.get('/financial_statements/profit_loss_sheet', {
|
||||
params: query,
|
||||
}),
|
||||
{
|
||||
method: 'get',
|
||||
url: '/financial_statements/profit_loss_sheet',
|
||||
params: query,
|
||||
},
|
||||
{
|
||||
select: (res) => ({
|
||||
tableRows: profitLossSheetReducer(res.data.data),
|
||||
...res.data,
|
||||
}),
|
||||
defaultData: {
|
||||
data: {},
|
||||
tableRows: [],
|
||||
columns: [],
|
||||
query: {},
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, {
|
||||
data: {},
|
||||
tableRows: [],
|
||||
columns: [],
|
||||
query: {},
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve general ledger (GL) sheet.
|
||||
*/
|
||||
export function useGeneralLedgerSheet(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
|
||||
return useRequestQuery(
|
||||
[t.FINANCIAL_REPORT, t.GENERAL_LEDGER, query],
|
||||
() =>
|
||||
apiRequest.get('/financial_statements/general_ledger', {
|
||||
{
|
||||
method: 'get',
|
||||
url: '/financial_statements/general_ledger',
|
||||
params: query,
|
||||
}),
|
||||
},
|
||||
{
|
||||
select: (res) => ({
|
||||
tableRows: generalLedgerTableRowsReducer(res.data.data),
|
||||
...res.data,
|
||||
}),
|
||||
defaultData: {
|
||||
tableRows: [],
|
||||
data: {},
|
||||
query: {},
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, {
|
||||
tableRows: [],
|
||||
data: {},
|
||||
query: {},
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve journal sheet.
|
||||
*/
|
||||
export function useJournalSheet(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.FINANCIAL_REPORT, t.JOURNAL, query],
|
||||
() => apiRequest.get('/financial_statements/journal', { params: query }),
|
||||
{ method: 'get', url: '/financial_statements/journal', params: query },
|
||||
{
|
||||
select: (res) => ({
|
||||
tableRows: journalTableRowsReducer(res.data.data),
|
||||
...res.data,
|
||||
}),
|
||||
defaultData: {
|
||||
data: {},
|
||||
tableRows: [],
|
||||
query: {},
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, {
|
||||
data: {},
|
||||
tableRows: [],
|
||||
query: {},
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve A/R aging summary report.
|
||||
*/
|
||||
export function useARAgingSummaryReport(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.FINANCIAL_REPORT, t.AR_AGING_SUMMARY, query],
|
||||
() =>
|
||||
apiRequest.get('/financial_statements/receivable_aging_summary', {
|
||||
params: query,
|
||||
}),
|
||||
{
|
||||
method: 'get',
|
||||
url: '/financial_statements/receivable_aging_summary',
|
||||
params: query,
|
||||
},
|
||||
{
|
||||
select: (res) => ({
|
||||
columns: res.data.columns,
|
||||
@@ -188,17 +161,14 @@ export function useARAgingSummaryReport(query, props) {
|
||||
columns: res.data.columns,
|
||||
}),
|
||||
}),
|
||||
initialData: {
|
||||
defaultData: {
|
||||
data: {
|
||||
data: {
|
||||
customers: [],
|
||||
total: {},
|
||||
},
|
||||
columns: [],
|
||||
tableRows: [],
|
||||
customers: [],
|
||||
total: {},
|
||||
},
|
||||
columns: [],
|
||||
tableRows: [],
|
||||
},
|
||||
initialDataUpdatedAt: 0,
|
||||
...props,
|
||||
},
|
||||
);
|
||||
@@ -208,14 +178,13 @@ export function useARAgingSummaryReport(query, props) {
|
||||
* Retrieve A/P aging summary report.
|
||||
*/
|
||||
export function useAPAgingSummaryReport(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.FINANCIAL_REPORT, t.AP_AGING_SUMMARY, query],
|
||||
() =>
|
||||
apiRequest.get('/financial_statements/payable_aging_summary', {
|
||||
params: query,
|
||||
}),
|
||||
{
|
||||
method: 'get',
|
||||
url: '/financial_statements/payable_aging_summary',
|
||||
params: query,
|
||||
},
|
||||
{
|
||||
select: (res) => ({
|
||||
columns: res.data.columns,
|
||||
@@ -227,17 +196,14 @@ export function useAPAgingSummaryReport(query, props) {
|
||||
columns: res.data.columns,
|
||||
}),
|
||||
}),
|
||||
initialData: {
|
||||
defaultData: {
|
||||
data: {
|
||||
data: {
|
||||
vendors: [],
|
||||
total: {},
|
||||
},
|
||||
columns: [],
|
||||
tableRows: [],
|
||||
vendors: [],
|
||||
total: {},
|
||||
},
|
||||
columns: [],
|
||||
tableRows: [],
|
||||
},
|
||||
initialDataUpdatedAt: 0,
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import { transformPagination } from 'utils';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from './types';
|
||||
|
||||
|
||||
const commonInvalidateQueries = (queryClient) => {
|
||||
// Invalidate inventory adjustments.
|
||||
queryClient.invalidateQueries(t.INVENTORY_ADJUSTMENTS);
|
||||
@@ -47,16 +46,13 @@ export function useDeleteInventoryAdjustment(props) {
|
||||
const queryClient = useQueryClient();
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useMutation(
|
||||
(id) => apiRequest.delete(`inventory_adjustments/${id}`),
|
||||
{
|
||||
onSuccess: (res, id) => {
|
||||
// Common invalidate queries.
|
||||
commonInvalidateQueries(queryClient);
|
||||
},
|
||||
...props
|
||||
return useMutation((id) => apiRequest.delete(`inventory_adjustments/${id}`), {
|
||||
onSuccess: (res, id) => {
|
||||
// Common invalidate queries.
|
||||
commonInvalidateQueries(queryClient);
|
||||
},
|
||||
);
|
||||
...props,
|
||||
});
|
||||
}
|
||||
|
||||
const inventoryAdjustmentsTransformer = (response) => {
|
||||
@@ -64,32 +60,27 @@ const inventoryAdjustmentsTransformer = (response) => {
|
||||
transactions: response.data.inventoy_adjustments,
|
||||
pagination: transformPagination(response.data.pagination),
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Retrieve inventory adjustment list with pagination meta.
|
||||
*/
|
||||
export function useInventoryAdjustments(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
['INVENTORY_ADJUSTMENTS', query],
|
||||
() => apiRequest.get('inventory_adjustments', { params: query })
|
||||
.then(inventoryAdjustmentsTransformer),
|
||||
{ url: 'inventory_adjustments', params: query },
|
||||
{
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: {
|
||||
transactions: [],
|
||||
pagination: {
|
||||
page: 1,
|
||||
pageSize: 12,
|
||||
total: 0,
|
||||
pagesCount: 0,
|
||||
},
|
||||
}
|
||||
select: inventoryAdjustmentsTransformer,
|
||||
defaultData: {
|
||||
transactions: [],
|
||||
pagination: {
|
||||
page: 1,
|
||||
pageSize: 12,
|
||||
total: 0,
|
||||
pagesCount: 0,
|
||||
},
|
||||
},
|
||||
...props
|
||||
...props,
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useMutation } from 'react-query';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import useApiRequest from '../useRequest';
|
||||
|
||||
/**
|
||||
@@ -19,11 +19,9 @@ export const useAuthInviteAccept = (props) => {
|
||||
* @param {string} token - Token.
|
||||
*/
|
||||
export const useInviteMetaByToken = (token, props) => {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
['INVITE_META', token],
|
||||
() => apiRequest.get(`invite/invited/${token}`),
|
||||
{ method: 'get', url: `invite/invited/${token}` },
|
||||
{
|
||||
select: (res) => res.data,
|
||||
...props
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useQueryClient, useMutation } from 'react-query';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import { transformPagination } from 'utils';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from './types';
|
||||
@@ -90,32 +90,29 @@ export function useDeleteInvoice(props) {
|
||||
});
|
||||
}
|
||||
|
||||
const transformInvoices = (res) => ({
|
||||
invoices: res.data.sales_invoices,
|
||||
pagination: transformPagination(res.data.pagination),
|
||||
filterMeta: res.data.filter_meta,
|
||||
});
|
||||
|
||||
/**
|
||||
* Retrieve sale invoices list with pagination meta.
|
||||
*/
|
||||
export function useInvoices(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.SALE_INVOICES, query],
|
||||
() => apiRequest.get('sales/invoices', { params: query }),
|
||||
{ method: 'get', url: 'sales/invoices', params: query },
|
||||
{
|
||||
select: (res) => ({
|
||||
invoices: res.data.sales_invoices,
|
||||
pagination: transformPagination(res.data.pagination),
|
||||
filterMeta: res.data.filter_meta,
|
||||
}),
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: {
|
||||
sales_invoices: [],
|
||||
pagination: {
|
||||
page: 1,
|
||||
pageSize: 12,
|
||||
total: 0,
|
||||
},
|
||||
filter_meta: {},
|
||||
select: transformInvoices,
|
||||
defaultData: {
|
||||
invoices: [],
|
||||
pagination: {
|
||||
page: 1,
|
||||
pageSize: 12,
|
||||
total: 0,
|
||||
},
|
||||
filterMeta: {},
|
||||
},
|
||||
...props,
|
||||
},
|
||||
@@ -149,19 +146,12 @@ export function useDeliverInvoice(props) {
|
||||
* @param {number} invoiceId - Invoice id.
|
||||
*/
|
||||
export function useInvoice(invoiceId, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.SALE_INVOICE, invoiceId],
|
||||
() => apiRequest.get(`sales/invoices/${invoiceId}`),
|
||||
{ method: 'get', url: `sales/invoices/${invoiceId}` },
|
||||
{
|
||||
select: (res) => res.data.sale_invoice,
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: {
|
||||
sale_invoice: {}
|
||||
},
|
||||
},
|
||||
defaultData: {},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
@@ -172,22 +162,16 @@ export function useInvoice(invoiceId, props) {
|
||||
* @param {number} customerId - Customer id.
|
||||
*/
|
||||
export function useDueInvoices(customerId, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.SALE_INVOICES, t.SALE_INVOICES_DUE, customerId],
|
||||
() =>
|
||||
apiRequest.get(`sales/invoices/payable`, {
|
||||
params: { customer_id: customerId },
|
||||
}),
|
||||
{
|
||||
method: 'get',
|
||||
url: `sales/invoices/payable`,
|
||||
params: { customer_id: customerId },
|
||||
},
|
||||
{
|
||||
select: (res) => res.data.sales_invoices,
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: {
|
||||
sales_invoices: [],
|
||||
},
|
||||
},
|
||||
defaultData: [],
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { transformPagination, transformResponse } from 'utils';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from './types';
|
||||
|
||||
@@ -114,9 +114,7 @@ export function useInactivateItem(props) {
|
||||
const transformItemsResponse = (response) => {
|
||||
return {
|
||||
items: response.data.items,
|
||||
pagination: transformPagination(
|
||||
transformResponse(response.data.pagination)
|
||||
),
|
||||
pagination: transformPagination(transformResponse(response.data.pagination)),
|
||||
filterMeta: transformResponse(response.data.filter_meta),
|
||||
};
|
||||
};
|
||||
@@ -125,19 +123,21 @@ const transformItemsResponse = (response) => {
|
||||
* Retrieves items list.
|
||||
*/
|
||||
export function useItems(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.ITEMS, query],
|
||||
() => apiRequest.get(`items`, { params: query }).then(transformItemsResponse),
|
||||
{
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
method: 'get',
|
||||
url: 'items',
|
||||
params: { ...query },
|
||||
},
|
||||
{
|
||||
select: transformItemsResponse,
|
||||
defaultData: {
|
||||
items: [],
|
||||
pagination: DEFAULT_PAGINATION,
|
||||
filterMeta: {},
|
||||
},
|
||||
...props,
|
||||
...props
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -147,14 +147,15 @@ export function useItems(query, props) {
|
||||
* @param {number} id - Item id.
|
||||
*/
|
||||
export function useItem(id, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.ITEM, id],
|
||||
() => apiRequest.get(`items/${id}`).then((response) => response.data.item),
|
||||
{
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {},
|
||||
method: 'get',
|
||||
url: `items/${id}`,
|
||||
},
|
||||
{
|
||||
select: (response) => response.data.item,
|
||||
defaultData: {},
|
||||
...props
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from './types';
|
||||
|
||||
@@ -68,26 +68,24 @@ export function useDeleteItemCategory(props) {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
const transformCategories = (res) => ({
|
||||
itemsCategories: res.data.item_categories,
|
||||
pagination: res.data.pagination,
|
||||
});
|
||||
|
||||
/**
|
||||
* Retrieve the items categories.
|
||||
*/
|
||||
export function useItemsCategories(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.ITEMS_CATEGORIES, query],
|
||||
() => apiRequest.get(`item_categories`, { params: query }),
|
||||
{ method: 'get', url: `item_categories`, params: query },
|
||||
{
|
||||
select: (response) => ({
|
||||
itemsCategories: response.data.item_categories,
|
||||
pagination: response.data.pagination,
|
||||
}),
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: {
|
||||
item_categories: [],
|
||||
pagination: {}
|
||||
},
|
||||
select: transformCategories,
|
||||
defaultData: {
|
||||
itemsCategories: [],
|
||||
pagination: {}
|
||||
},
|
||||
...props,
|
||||
},
|
||||
@@ -99,15 +97,12 @@ export function useItemsCategories(query, props) {
|
||||
* @param {number} id - Item category.
|
||||
*/
|
||||
export function useItemCategory(id, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.ITEM_CATEGORY, id],
|
||||
() =>
|
||||
apiRequest.get(`item_categories/${id}`).then((res) => res.data.category),
|
||||
{ method: 'get', url: `item_categories/${id}` },
|
||||
{
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {},
|
||||
select: (res) => res.data.category,
|
||||
defaultData: {},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { defaultTo } from 'lodash';
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import { transformPagination } from 'utils';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from './types';
|
||||
@@ -108,46 +107,41 @@ export function usePublishJournal(props) {
|
||||
);
|
||||
}
|
||||
|
||||
const transformJournals = (response) => ({
|
||||
manualJournals: response.data.manual_journals,
|
||||
pagination: transformPagination(response.data.pagination),
|
||||
filterMeta: response.data.filter_meta
|
||||
});
|
||||
|
||||
/**
|
||||
* Retrieve the manual journals with pagination meta.
|
||||
*/
|
||||
export function useJournals(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.MANUAL_JOURNALS, query],
|
||||
() => apiRequest.get('manual-journals', { params: query }),
|
||||
{ method: 'get', url: 'manual-journals', params: query },
|
||||
{
|
||||
select: (response) => ({
|
||||
manualJournals: response.data.manual_journals,
|
||||
pagination: transformPagination(response.data.pagination),
|
||||
filterMeta: response.data.filter_meta
|
||||
}),
|
||||
select: transformJournals,
|
||||
defaultData: {
|
||||
manualJournals: [],
|
||||
pagination: {},
|
||||
filterMeta: {},
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, {
|
||||
manualJournals: [],
|
||||
pagination: {},
|
||||
filterMeta: {},
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the manual journal details.
|
||||
*/
|
||||
export function useJournal(id, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.MANUAL_JOURNAL, id],
|
||||
() => apiRequest.get(`manual-journals/${id}`),
|
||||
{ method: 'get', url: `manual-journals/${id}` },
|
||||
{
|
||||
select: (res) => res.data.manual_journal,
|
||||
defaultData: {},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useMutation } from 'react-query';
|
||||
import t from './types';
|
||||
import useApiRequest from '../useRequest';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import { useEffect } from 'react';
|
||||
import { useSetOrganizations, useSetSubscriptions } from '../state';
|
||||
import { omit } from 'lodash';
|
||||
@@ -10,11 +10,9 @@ import { omit } from 'lodash';
|
||||
* Retrieve organizations of the authenticated user.
|
||||
*/
|
||||
export function useOrganizations(props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.ORGANIZATIONS],
|
||||
() => apiRequest.get(`organization/all`),
|
||||
{ method: 'get', url: `organization/all` },
|
||||
{
|
||||
select: (res) => res.data.organizations,
|
||||
initialDataUpdatedAt: 0,
|
||||
@@ -32,21 +30,15 @@ export function useOrganizations(props) {
|
||||
* Retrieve the current organization metadata.
|
||||
*/
|
||||
export function useCurrentOrganization(props) {
|
||||
const apiRequest = useApiRequest();
|
||||
const setOrganizations = useSetOrganizations();
|
||||
const setSubscriptions = useSetSubscriptions();
|
||||
|
||||
const query = useQueryTenant(
|
||||
const query = useRequestQuery(
|
||||
[t.ORGANIZATION_CURRENT],
|
||||
() => apiRequest.get(`organization/current`),
|
||||
{ method: 'get', url: `organization/current` },
|
||||
{
|
||||
select: (res) => res.data.organization,
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: {
|
||||
organization: {},
|
||||
},
|
||||
},
|
||||
defaultData: {},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { defaultTo } from 'lodash';
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import { transformPagination } from 'utils';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from './types';
|
||||
@@ -34,29 +33,23 @@ const commonInvalidateQueries = (client) => {
|
||||
* Retrieve payment mades list.
|
||||
*/
|
||||
export function usePaymentMades(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.PAYMENT_MADES, query],
|
||||
() => apiRequest.get('purchases/bill_payments', { params: query }),
|
||||
{ url: 'purchases/bill_payments', params: query },
|
||||
{
|
||||
select: (res) => ({
|
||||
paymentMades: res.data.bill_payments,
|
||||
pagination: transformPagination(res.data.pagination),
|
||||
filterMeta: res.data.filter_meta,
|
||||
}),
|
||||
defaultData: {
|
||||
paymentMades: [],
|
||||
pagination: {},
|
||||
filterMeta: {},
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, {
|
||||
paymentMades: [],
|
||||
pagination: {},
|
||||
filterMeta: {},
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -126,24 +119,24 @@ export function useDeletePaymentMade(props) {
|
||||
* Retrieve specific payment made.
|
||||
*/
|
||||
export function usePaymentMadeEditPage(id, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.PAYMENT_MADE_EDIT_PAGE, id],
|
||||
() => apiRequest.get(`purchases/bill_payments/${id}/edit-page`),
|
||||
{
|
||||
method: 'get',
|
||||
url: `purchases/bill_payments/${id}/edit-page`,
|
||||
},
|
||||
{
|
||||
select: (res) => ({
|
||||
paymentMade: res.data.bill_payment,
|
||||
entries: res.data.entries,
|
||||
}),
|
||||
defaultData: {
|
||||
paymentMade: {},
|
||||
entries: [],
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, {}),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -151,22 +144,16 @@ export function usePaymentMadeEditPage(id, props) {
|
||||
* @param {number} vendorId -
|
||||
*/
|
||||
export function usePaymentMadeNewPageEntries(vendorId, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.PAYMENT_MADE_NEW_ENTRIES, vendorId],
|
||||
() =>
|
||||
apiRequest.get(`purchases/bill_payments/new-page/entries`, {
|
||||
params: { vendor_id: vendorId },
|
||||
}),
|
||||
{
|
||||
method: 'get',
|
||||
url: `purchases/bill_payments/new-page/entries`,
|
||||
params: { vendor_id: vendorId },
|
||||
},
|
||||
{
|
||||
select: (res) => res.data.entries,
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: {
|
||||
entries: [],
|
||||
},
|
||||
},
|
||||
defaultData: [],
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { defaultTo } from 'lodash';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import useApiRequest from '../useRequest';
|
||||
import { transformPagination, saveInvoke } from 'utils';
|
||||
import t from './types';
|
||||
@@ -27,37 +26,30 @@ const commonInvalidateQueries = (client) => {
|
||||
client.invalidateQueries(t.CUSTOMER);
|
||||
};
|
||||
|
||||
// Transform payment receives.
|
||||
const transformPaymentReceives = (res) => ({
|
||||
paymentReceives: res.data.payment_receives,
|
||||
pagination: transformPagination(res.data.pagination),
|
||||
filterMeta: res.data.filter_meta,
|
||||
});
|
||||
|
||||
/**
|
||||
* Retrieve accounts list.
|
||||
*/
|
||||
export function usePaymentReceives(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.PAYMENT_RECEIVES, query],
|
||||
() => apiRequest.get('sales/payment_receives', { params: query }),
|
||||
{ method: 'get', url: 'sales/payment_receives', params: query },
|
||||
{
|
||||
select: (res) => ({
|
||||
paymentReceives: res.data.payment_receives,
|
||||
pagination: transformPagination(res.data.pagination),
|
||||
filterMeta: res.data.filter_meta,
|
||||
}),
|
||||
select: transformPaymentReceives,
|
||||
defaultData: {
|
||||
paymentReceives: [],
|
||||
pagination: { page: 1, pageSize: 12, total: 0 },
|
||||
filterMeta: {},
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, {
|
||||
paymentReceives: [],
|
||||
pagination: {
|
||||
page: 1,
|
||||
pageSize: 12,
|
||||
total: 0,
|
||||
},
|
||||
filterMeta: {},
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -136,23 +128,15 @@ export function useDeletePaymentReceive(props) {
|
||||
* @param {number} id - Payment receive.
|
||||
*/
|
||||
export function usePaymentReceive(id, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.PAYMENT_RECEIVE, id],
|
||||
() => apiRequest.get(`sales/payment_receives/${id}`),
|
||||
{ method: 'get', url: `sales/payment_receives/${id}` },
|
||||
{
|
||||
select: (res) => ({
|
||||
paymentReceive: res.data.payment_receive,
|
||||
}),
|
||||
select: (res) => res.data.payment_receive,
|
||||
defaultData: {},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, {}),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -160,25 +144,19 @@ export function usePaymentReceive(id, props) {
|
||||
* @param {number} id - Payment receive id.
|
||||
*/
|
||||
export function usePaymentReceiveEditPage(id, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.PAYMENT_RECEIVE_EDIT_PAGE, id],
|
||||
() => apiRequest.get(`sales/payment_receives/${id}/edit-page`),
|
||||
{ method: 'get', url: `sales/payment_receives/${id}/edit-page` },
|
||||
{
|
||||
select: (res) => ({
|
||||
paymentReceive: res.data.payment_receive,
|
||||
entries: res.data.entries,
|
||||
}),
|
||||
defaultData: {
|
||||
paymentReceive: {},
|
||||
entries: [],
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, {
|
||||
paymentReceive: {},
|
||||
entries: [],
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { useQueryClient, useMutation } from 'react-query';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { defaultTo } from 'lodash';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import useApiRequest from '../useRequest';
|
||||
import { transformPagination } from 'utils';
|
||||
import t from './types';
|
||||
@@ -99,56 +98,46 @@ export function useCloseReceipt(props) {
|
||||
});
|
||||
}
|
||||
|
||||
const transformReceipts = (res) => ({
|
||||
receipts: res.data.sale_receipts,
|
||||
pagination: transformPagination(res.data.pagination),
|
||||
filterMeta: res.data.filter_meta,
|
||||
});
|
||||
|
||||
/**
|
||||
* Retrieve sale invoices list with pagination meta.
|
||||
*/
|
||||
export function useReceipts(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
return useRequestQuery(
|
||||
['SALE_RECEIPTS', query],
|
||||
() => apiRequest.get('sales/receipts', { params: query }),
|
||||
{ method: 'get', url: 'sales/receipts', params: query },
|
||||
{
|
||||
select: (response) => ({
|
||||
receipts: response.data.sale_receipts,
|
||||
pagination: transformPagination(response.data.pagination),
|
||||
filterMeta: response.data.filter_meta,
|
||||
}),
|
||||
select: transformReceipts,
|
||||
defaultData: {
|
||||
receipts: [],
|
||||
pagination: {
|
||||
page: 1,
|
||||
page_size: 12,
|
||||
total: 0,
|
||||
},
|
||||
filterMeta: {},
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, {
|
||||
receipts: [],
|
||||
pagination: {
|
||||
page: 1,
|
||||
page_size: 12,
|
||||
total: 0,
|
||||
},
|
||||
filterMeta: {},
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve sale invoices list with pagination meta.
|
||||
*/
|
||||
export function useReceipt(id, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
return useRequestQuery(
|
||||
['SALE_RECEIPT', id],
|
||||
() => apiRequest.get(`sales/receipts/${id}`),
|
||||
{ method: 'get', url: `sales/receipts/${id}` },
|
||||
{
|
||||
select: (res) => res.data.sale_receipt,
|
||||
defaultData: {},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, {}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useEffect } from 'react';
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
import useApiRequest from '../useRequest';
|
||||
import { useSetSettings } from 'hooks/state';
|
||||
import t from './types';
|
||||
@@ -21,20 +21,14 @@ export function useSaveSettings(props) {
|
||||
}
|
||||
|
||||
function useSettingsQuery(key, query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
const setSettings = useSetSettings();
|
||||
|
||||
const state = useQueryTenant(
|
||||
const state = useRequestQuery(
|
||||
key,
|
||||
() => apiRequest.get('settings', { params: query }),
|
||||
{ method: 'get', url: 'settings', params: query },
|
||||
{
|
||||
select: (res) => res.data.settings,
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: {
|
||||
settings: [],
|
||||
},
|
||||
},
|
||||
defaultData: [],
|
||||
...props,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useMutation, useQueryClient } from 'react-query';
|
||||
import { defaultTo } from 'lodash';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useQueryTenant } from '../useQueryRequest';
|
||||
import useApiRequest from '../useRequest';
|
||||
import t from './types';
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import { useMutation, useQueryClient } from 'react-query';
|
||||
import t from './types';
|
||||
import { transformPagination } from 'utils';
|
||||
import useApiRequest from '../useRequest';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
|
||||
// Common invalidate queries.
|
||||
const commonInvalidateQueries = (queryClient) => {
|
||||
@@ -17,28 +17,26 @@ const commonInvalidateQueries = (queryClient) => {
|
||||
queryClient.invalidateQueries(t.FINANCIAL_REPORT);
|
||||
};
|
||||
|
||||
// Transformes vendors response.
|
||||
const transformVendorsResponse = (res) => ({
|
||||
vendors: res.data.vendors,
|
||||
pagination: transformPagination(res.data.pagination),
|
||||
filterMeta: res.data.filter_meta,
|
||||
});
|
||||
|
||||
/**
|
||||
* Retrieve vendors list.
|
||||
*/
|
||||
export function useVendors(query, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
return useRequestQuery(
|
||||
[t.VENDORS, query],
|
||||
() => apiRequest.get(`vendors`, { params: query }),
|
||||
{ method: 'get', url: `vendors`, params: query },
|
||||
{
|
||||
select: (res) => ({
|
||||
vendors: res.data.vendors,
|
||||
pagination: transformPagination(res.data.pagination),
|
||||
filterMeta: res.data.filter_meta,
|
||||
}),
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: {
|
||||
vendors: [],
|
||||
pagination: {},
|
||||
filter_meta: {},
|
||||
},
|
||||
select: transformVendorsResponse,
|
||||
defaultData: {
|
||||
vendors: [],
|
||||
pagination: {},
|
||||
filterMeta: {},
|
||||
},
|
||||
...props,
|
||||
},
|
||||
@@ -106,14 +104,13 @@ export function useCreateVendor(props) {
|
||||
* Retrieve vendor details.
|
||||
*/
|
||||
export function useVendor(id, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant([t.VENDOR, id], () => apiRequest.get(`vendors/${id}`), {
|
||||
select: (res) => res.data.vendor,
|
||||
initialDataUpdatedAt: 0,
|
||||
initialData: {
|
||||
data: { vendor: {} },
|
||||
return useRequestQuery(
|
||||
[t.VENDOR, id],
|
||||
{ method: 'get', url: `vendors/${id}` },
|
||||
{
|
||||
select: (res) => res.data.vendor,
|
||||
defaultData: {},
|
||||
...props,
|
||||
},
|
||||
...props,
|
||||
});
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,46 +1,46 @@
|
||||
import { defaultTo } from 'lodash';
|
||||
import useApiRequest from '../useRequest';
|
||||
import { useQueryTenant } from '../useQueryTenant';
|
||||
import { useRequestQuery } from '../useQueryRequest';
|
||||
|
||||
/**
|
||||
* Retrieve the resource views.
|
||||
* @param {string} resourceSlug - Resource slug.
|
||||
*/
|
||||
export function useResourceViews(resourceSlug) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const states = useQueryTenant(
|
||||
return useRequestQuery(
|
||||
['RESOURCE_VIEW', resourceSlug],
|
||||
() => apiRequest.get(`views/resource/${resourceSlug}`)
|
||||
.then((response) => response.data.views),
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, []),
|
||||
}
|
||||
}
|
||||
|
||||
export function useResourceColumns(resourceSlug) {
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
return useQueryTenant(
|
||||
['RESOURCE_COLUMNS', resourceSlug],
|
||||
() => apiRequest.get(`resources/${resourceSlug}/columns`),
|
||||
{ method: 'get', url: `views/resource/${resourceSlug}` },
|
||||
{
|
||||
initialData: [],
|
||||
select: (response) => response.data.views,
|
||||
defaultData: [],
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
export function useResourceFields(resourceSlug, props) {
|
||||
const apiRequest = useApiRequest();
|
||||
/**
|
||||
* Retrieve the resource columns.
|
||||
* @param {string} resourceSlug - Resource slug.
|
||||
*/
|
||||
export function useResourceColumns(resourceSlug) {
|
||||
return useRequestQuery(
|
||||
['RESOURCE_COLUMNS', resourceSlug],
|
||||
{ method: 'get', url: `resources/${resourceSlug}/columns` },
|
||||
{
|
||||
defaultData: [],
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
const states = useQueryTenant(
|
||||
/**
|
||||
* Retrieve the resource fields.
|
||||
* @param {string} resourceSlug - Resource slug.
|
||||
*/
|
||||
export function useResourceFields(resourceSlug, props) {
|
||||
return useRequestQuery(
|
||||
['RESOURCE_FIELDS', resourceSlug],
|
||||
() => apiRequest.get(`resources/${resourceSlug}/fields`)
|
||||
.then((res) => res.data.resource_fields),
|
||||
{ method: 'get', url: `resources/${resourceSlug}/fields` },
|
||||
{
|
||||
select: (res) => res.data.resource_fields,
|
||||
defaultData: [],
|
||||
},
|
||||
props
|
||||
);
|
||||
|
||||
return {
|
||||
...states,
|
||||
data: defaultTo(states.data, []),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user