mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-18 05:40:31 +00:00
feat(webapp): wip printing financial reports
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// @ts-nocheck
|
||||
import React, { useMemo, createContext, useContext } from 'react';
|
||||
import { useMemo, createContext, useContext } from 'react';
|
||||
|
||||
import FinancialReportPage from '../FinancialReportPage';
|
||||
import { useAPAgingSummaryReport } from '@/hooks/query';
|
||||
@@ -12,22 +12,22 @@ const APAgingSummaryContext = createContext();
|
||||
*/
|
||||
function APAgingSummaryProvider({ filter, ...props }) {
|
||||
// Transformers the filter from to the Url query.
|
||||
const query = useMemo(() => transformFilterFormToQuery(filter), [filter]);
|
||||
const httpQuery = useMemo(() => transformFilterFormToQuery(filter), [filter]);
|
||||
|
||||
const {
|
||||
data: APAgingSummary,
|
||||
isLoading: isAPAgingLoading,
|
||||
isFetching: isAPAgingFetching,
|
||||
refetch,
|
||||
} = useAPAgingSummaryReport(query, { keepPreviousData: true });
|
||||
} = useAPAgingSummaryReport(httpQuery, { keepPreviousData: true });
|
||||
|
||||
const provider = {
|
||||
APAgingSummary,
|
||||
|
||||
isAPAgingLoading,
|
||||
isAPAgingFetching,
|
||||
refetch,
|
||||
query,
|
||||
query: httpQuery,
|
||||
httpQuery,
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -49,11 +49,8 @@ export function APAgingSummarySheetLoadingBar() {
|
||||
*/
|
||||
export function APAgingSummaryExportMenu() {
|
||||
const toastKey = useRef(null);
|
||||
const commonToastConfig = {
|
||||
isCloseButtonShown: true,
|
||||
timeout: 2000,
|
||||
};
|
||||
const { query } = useAPAgingSummaryContext();
|
||||
const commonToastConfig = { isCloseButtonShown: true, timeout: 2000 };
|
||||
const { httpQuery } = useAPAgingSummaryContext();
|
||||
|
||||
const openProgressToast = (amount: number) => {
|
||||
return (
|
||||
@@ -70,7 +67,7 @@ export function APAgingSummaryExportMenu() {
|
||||
);
|
||||
};
|
||||
// Export the report to xlsx.
|
||||
const { mutateAsync: xlsxExport } = useAPAgingSheetXlsxExport(query, {
|
||||
const { mutateAsync: xlsxExport } = useAPAgingSheetXlsxExport(httpQuery, {
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
@@ -89,7 +86,7 @@ export function APAgingSummaryExportMenu() {
|
||||
},
|
||||
});
|
||||
// Export the report to csv.
|
||||
const { mutateAsync: csvExport } = useAPAgingSheetCsvExport(query, {
|
||||
const { mutateAsync: csvExport } = useAPAgingSheetCsvExport(httpQuery, {
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
DialogContent,
|
||||
PdfDocumentPreview,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
} from '@/components';
|
||||
import { useAPAgingSummaryPdf } from '@/hooks/query';
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import { useAPAgingSummaryContext } from '../../APAgingSummaryProvider';
|
||||
|
||||
export default function APAgingSummaryPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = useAPAgingSummaryPdf();
|
||||
const { httpQuery } = useAPAgingSummaryContext();
|
||||
const { isLoading, pdfUrl } = useAPAgingSummaryPdf(httpQuery);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// @ts-nocheck
|
||||
import React, { useState, useCallback, useEffect } from 'react';
|
||||
import { useCallback, useEffect } from 'react';
|
||||
import moment from 'moment';
|
||||
|
||||
import ARAgingSummaryHeader from './ARAgingSummaryHeader';
|
||||
@@ -13,9 +13,9 @@ import { ARAgingSummaryBody } from './ARAgingSummaryBody';
|
||||
import withARAgingSummaryActions from './withARAgingSummaryActions';
|
||||
|
||||
import { useARAgingSummaryQuery } from './common';
|
||||
import { compose } from '@/utils';
|
||||
import { ARAgingSummaryPdfDialog } from './dialogs/ARAgingSummaryPdfDialog';
|
||||
import { DialogsName } from '@/constants/dialogs';
|
||||
import { compose } from '@/utils';
|
||||
|
||||
/**
|
||||
* A/R aging summary report.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// @ts-nocheck
|
||||
import React, { useMemo, createContext, useContext } from 'react';
|
||||
import { useMemo, createContext, useContext } from 'react';
|
||||
import FinancialReportPage from '../FinancialReportPage';
|
||||
import { useARAgingSummaryReport } from '@/hooks/query';
|
||||
import { transformFilterFormToQuery } from '../common';
|
||||
@@ -11,10 +11,7 @@ const ARAgingSummaryContext = createContext();
|
||||
*/
|
||||
function ARAgingSummaryProvider({ filter, ...props }) {
|
||||
// Transformes the filter from to the url query.
|
||||
const requestQuery = useMemo(
|
||||
() => transformFilterFormToQuery(filter),
|
||||
[filter],
|
||||
);
|
||||
const httpQuery = useMemo(() => transformFilterFormToQuery(filter), [filter]);
|
||||
|
||||
// A/R aging summary sheet context.
|
||||
const {
|
||||
@@ -22,13 +19,14 @@ function ARAgingSummaryProvider({ filter, ...props }) {
|
||||
isLoading: isARAgingLoading,
|
||||
isFetching: isARAgingFetching,
|
||||
refetch,
|
||||
} = useARAgingSummaryReport(requestQuery, { keepPreviousData: true });
|
||||
} = useARAgingSummaryReport(httpQuery, { keepPreviousData: true });
|
||||
|
||||
const provider = {
|
||||
ARAgingSummary,
|
||||
isARAgingLoading,
|
||||
isARAgingFetching,
|
||||
refetch,
|
||||
httpQuery,
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -53,7 +53,7 @@ export function ARAgingSummaryExportMenu() {
|
||||
isCloseButtonShown: true,
|
||||
timeout: 2000,
|
||||
};
|
||||
const { query } = useARAgingSummaryContext();
|
||||
const { httpQuery } = useARAgingSummaryContext();
|
||||
|
||||
const openProgressToast = (amount: number) => {
|
||||
return (
|
||||
@@ -71,7 +71,7 @@ export function ARAgingSummaryExportMenu() {
|
||||
};
|
||||
|
||||
// Export the report to xlsx.
|
||||
const { mutateAsync: xlsxExport } = useARAgingSheetXlsxExport(query, {
|
||||
const { mutateAsync: xlsxExport } = useARAgingSheetXlsxExport(httpQuery, {
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
@@ -90,7 +90,7 @@ export function ARAgingSummaryExportMenu() {
|
||||
},
|
||||
});
|
||||
// Export the report to csv.
|
||||
const { mutateAsync: csvExport } = useARAgingSheetCsvExport(query, {
|
||||
const { mutateAsync: csvExport } = useARAgingSheetCsvExport(httpQuery, {
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
|
||||
@@ -20,7 +20,7 @@ function ARAgingSummaryPdfDialogRoot({ dialogName, payload, isOpen }) {
|
||||
return (
|
||||
<Dialog
|
||||
name={dialogName}
|
||||
title={'AR Aging Summary Print Preview'}
|
||||
title={'A/R Aging Summary Print Preview'}
|
||||
className={classNames(CLASSES.DIALOG_PDF_PREVIEW)}
|
||||
autoFocus={true}
|
||||
canEscapeKeyClose={true}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
DialogContent,
|
||||
PdfDocumentPreview,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
} from '@/components';
|
||||
import { useARAgingSummaryPdf } from '@/hooks/query';
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import { useARAgingSummaryContext } from '../../ARAgingSummaryProvider';
|
||||
|
||||
export default function ARAgingSummaryPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = useARAgingSummaryPdf();
|
||||
const { httpQuery } = useARAgingSummaryContext();
|
||||
const { isLoading, pdfUrl } = useARAgingSummaryPdf(httpQuery);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
|
||||
@@ -85,7 +85,6 @@ function BalanceSheetActionsBar({
|
||||
active={balanceSheetDrawerFilter}
|
||||
/>
|
||||
<NavbarDivider />
|
||||
|
||||
<Popover
|
||||
content={
|
||||
<NumberFormatDropdown
|
||||
@@ -118,7 +117,6 @@ function BalanceSheetActionsBar({
|
||||
</Popover>
|
||||
|
||||
<NavbarDivider />
|
||||
|
||||
<Button
|
||||
className={Classes.MINIMAL}
|
||||
onClick={handlePdfPrintBtnSubmit}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// @ts-nocheck
|
||||
import React, { createContext, useContext } from 'react';
|
||||
import { createContext, useContext, useMemo } from 'react';
|
||||
|
||||
import FinancialReportPage from '../FinancialReportPage';
|
||||
import { useBalanceSheet } from '@/hooks/query';
|
||||
@@ -9,9 +9,7 @@ const BalanceSheetContext = createContext();
|
||||
|
||||
function BalanceSheetProvider({ filter, ...props }) {
|
||||
// Transformes the given filter to query.
|
||||
const query = React.useMemo(() => transformFilterFormToQuery(filter), [
|
||||
filter,
|
||||
]);
|
||||
const httpQuery = useMemo(() => transformFilterFormToQuery(filter), [filter]);
|
||||
|
||||
// Fetches the balance sheet report.
|
||||
const {
|
||||
@@ -19,15 +17,14 @@ function BalanceSheetProvider({ filter, ...props }) {
|
||||
isFetching,
|
||||
isLoading,
|
||||
refetch,
|
||||
} = useBalanceSheet(query, { keepPreviousData: true });
|
||||
} = useBalanceSheet(httpQuery, { keepPreviousData: true });
|
||||
|
||||
const provider = {
|
||||
balanceSheet,
|
||||
isFetching,
|
||||
isLoading,
|
||||
refetchBalanceSheet: refetch,
|
||||
|
||||
query,
|
||||
httpQuery,
|
||||
filter,
|
||||
};
|
||||
return (
|
||||
|
||||
@@ -96,7 +96,7 @@ export const BalanceSheetExportMenu = () => {
|
||||
isCloseButtonShown: true,
|
||||
timeout: 2000,
|
||||
};
|
||||
const { query } = useBalanceSheetContext();
|
||||
const { httpQuery } = useBalanceSheetContext();
|
||||
|
||||
const openProgressToast = (amount: number) => {
|
||||
return (
|
||||
@@ -114,7 +114,7 @@ export const BalanceSheetExportMenu = () => {
|
||||
};
|
||||
|
||||
// Export the report to xlsx.
|
||||
const { mutateAsync: xlsxExport } = useBalanceSheetXlsxExport(query, {
|
||||
const { mutateAsync: xlsxExport } = useBalanceSheetXlsxExport(httpQuery, {
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
@@ -132,8 +132,9 @@ export const BalanceSheetExportMenu = () => {
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
// Export the report to csv.
|
||||
const { mutateAsync: csvExport } = useBalanceSheetCsvExport(query, {
|
||||
const { mutateAsync: csvExport } = useBalanceSheetCsvExport(httpQuery, {
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
DialogContent,
|
||||
PdfDocumentPreview,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
} from '@/components';
|
||||
import { useBalanceSheetPdf } from '@/hooks/query';
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import { useBalanceSheetContext } from '../../BalanceSheetProvider';
|
||||
|
||||
export default function BalanceSheetPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = useBalanceSheetPdf();
|
||||
const { httpQuery } = useBalanceSheetContext();
|
||||
const { isLoading, pdfUrl } = useBalanceSheetPdf({ ...httpQuery });
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
|
||||
@@ -10,27 +10,27 @@ const CashFLowStatementContext = React.createContext();
|
||||
* Cash flow statement provider.
|
||||
*/
|
||||
function CashFlowStatementProvider({ filter, ...props }) {
|
||||
// transforms the given filter to query.
|
||||
const query = React.useMemo(
|
||||
// Transforms the given state query to http query.
|
||||
const httpQuery = React.useMemo(
|
||||
() => transformFilterFormToQuery(filter),
|
||||
[filter],
|
||||
);
|
||||
|
||||
// fetch the cash flow statement report.
|
||||
// Fetching the cash flow statement report.
|
||||
const {
|
||||
data: cashFlowStatement,
|
||||
isFetching: isCashFlowFetching,
|
||||
isLoading: isCashFlowLoading,
|
||||
refetch: refetchCashFlow,
|
||||
} = useCashFlowStatementReport(query, { keepPreviousData: true });
|
||||
} = useCashFlowStatementReport(httpQuery, { keepPreviousData: true });
|
||||
|
||||
const provider = {
|
||||
cashFlowStatement,
|
||||
isCashFlowFetching,
|
||||
isCashFlowLoading,
|
||||
refetchCashFlow,
|
||||
query,
|
||||
query: httpQuery,
|
||||
filter,
|
||||
httpQuery,
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
DialogContent,
|
||||
PdfDocumentPreview,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
} from '@/components';
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import { useCashflowSheetPdf } from '@/hooks/query';
|
||||
import { useCashFlowStatementContext } from '../CashFlowStatementProvider';
|
||||
|
||||
export default function CashflowSheetPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = useCashflowSheetPdf();
|
||||
const { httpQuery } = useCashFlowStatementContext();
|
||||
const { isLoading, pdfUrl } = useCashflowSheetPdf(httpQuery);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
|
||||
@@ -95,7 +95,7 @@ export function CashflowSheetExportMenu() {
|
||||
isCloseButtonShown: true,
|
||||
timeout: 2000,
|
||||
};
|
||||
const { query } = useCashFlowStatementContext();
|
||||
const { httpQuery } = useCashFlowStatementContext();
|
||||
|
||||
const openProgressToast = (amount: number) => {
|
||||
return (
|
||||
@@ -113,26 +113,30 @@ export function CashflowSheetExportMenu() {
|
||||
};
|
||||
|
||||
// Export the report to xlsx.
|
||||
const { mutateAsync: xlsxExport } = useCashFlowStatementXlsxExport(query, {
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
message: openProgressToast(xlsxExportProgress),
|
||||
...commonToastConfig,
|
||||
});
|
||||
} else {
|
||||
AppToaster.show(
|
||||
{
|
||||
const { mutateAsync: xlsxExport } = useCashFlowStatementXlsxExport(
|
||||
httpQuery,
|
||||
{
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
message: openProgressToast(xlsxExportProgress),
|
||||
...commonToastConfig,
|
||||
},
|
||||
toastKey.current,
|
||||
);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
AppToaster.show(
|
||||
{
|
||||
message: openProgressToast(xlsxExportProgress),
|
||||
...commonToastConfig,
|
||||
},
|
||||
toastKey.current,
|
||||
);
|
||||
}
|
||||
},
|
||||
},
|
||||
});
|
||||
);
|
||||
|
||||
// Export the report to csv.
|
||||
const { mutateAsync: csvExport } = useCashFlowStatementCsvExport(query, {
|
||||
const { mutateAsync: csvExport } = useCashFlowStatementCsvExport(httpQuery, {
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
DialogContent,
|
||||
PdfDocumentPreview,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
} from '@/components';
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import { useCustomerBalanceSummaryPdf } from '@/hooks/query';
|
||||
import { useCustomersBalanceSummaryContext } from '../CustomersBalanceSummaryProvider';
|
||||
|
||||
export default function CustomerBalanceSummaryPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = useCustomerBalanceSummaryPdf();
|
||||
const { httpQuery } = useCustomersBalanceSummaryContext();
|
||||
const { isLoading, pdfUrl } = useCustomerBalanceSummaryPdf(httpQuery);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
@@ -23,7 +26,7 @@ export default function CustomerBalanceSummaryPdfDialogContent() {
|
||||
|
||||
<AnchorButton
|
||||
href={pdfUrl}
|
||||
download={'invoice.pdf'}
|
||||
download={'customer-balance-summary.pdf'}
|
||||
minimal={true}
|
||||
outlined={true}
|
||||
>
|
||||
|
||||
@@ -29,9 +29,9 @@ function CustomersBalanceSummaryProvider({ filter, ...props }) {
|
||||
CustomerBalanceSummary,
|
||||
isCustomersBalanceFetching,
|
||||
isCustomersBalanceLoading,
|
||||
|
||||
refetch,
|
||||
query
|
||||
query,
|
||||
httpQuery: query
|
||||
};
|
||||
return (
|
||||
<FinancialReportPage name={'customers-balance-summary'}>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// @ts-nocheck
|
||||
import React, { createContext, useContext, useMemo } from 'react';
|
||||
import { createContext, useContext, useMemo } from 'react';
|
||||
import FinancialReportPage from '../FinancialReportPage';
|
||||
import { useCustomersTransactionsReport } from '@/hooks/query';
|
||||
import { transformFilterFormToQuery } from '../common';
|
||||
@@ -10,9 +10,7 @@ const CustomersTransactionsContext = createContext();
|
||||
* Customers transactions provider.
|
||||
*/
|
||||
function CustomersTransactionsProvider({ filter, ...props }) {
|
||||
const query = useMemo(() => transformFilterFormToQuery(filter), [
|
||||
filter,
|
||||
]);
|
||||
const query = useMemo(() => transformFilterFormToQuery(filter), [filter]);
|
||||
|
||||
// Fetches the customers transactions.
|
||||
const {
|
||||
@@ -29,7 +27,8 @@ function CustomersTransactionsProvider({ filter, ...props }) {
|
||||
CustomersTransactionsRefetch,
|
||||
|
||||
filter,
|
||||
query
|
||||
query,
|
||||
httpQuery: query,
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
DialogContent,
|
||||
PdfDocumentPreview,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
} from '@/components';
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import { useCustomersTransactionsPdfExport } from '@/hooks/query';
|
||||
import { useCustomersTransactionsContext } from '../../CustomersTransactionsProvider';
|
||||
|
||||
export default function CashflowSheetPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = useCustomersTransactionsPdfExport();
|
||||
const { httpQuery } = useCustomersTransactionsContext();
|
||||
const { isLoading, pdfUrl } = useCustomersTransactionsPdfExport(httpQuery);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
@@ -23,7 +26,7 @@ export default function CashflowSheetPdfDialogContent() {
|
||||
|
||||
<AnchorButton
|
||||
href={pdfUrl}
|
||||
download={'invoice.pdf'}
|
||||
download={'customer-transactions.pdf'}
|
||||
minimal={true}
|
||||
outlined={true}
|
||||
>
|
||||
|
||||
@@ -12,24 +12,23 @@ const GeneralLedgerContext = createContext();
|
||||
*/
|
||||
function GeneralLedgerProvider({ query, ...props }) {
|
||||
// Transformes the report query to request query.
|
||||
const requestQuery = React.useMemo(
|
||||
const httpQuery = React.useMemo(
|
||||
() => transformFilterFormToQuery(query),
|
||||
[query],
|
||||
);
|
||||
|
||||
const {
|
||||
data: generalLedger,
|
||||
isFetching,
|
||||
isLoading,
|
||||
refetch,
|
||||
} = useGeneralLedgerSheet(requestQuery, { keepPreviousData: true });
|
||||
} = useGeneralLedgerSheet(httpQuery, { keepPreviousData: true });
|
||||
|
||||
const provider = {
|
||||
generalLedger,
|
||||
sheetRefresh: refetch,
|
||||
isFetching,
|
||||
isLoading,
|
||||
httpRequest: requestQuery
|
||||
httpQuery,
|
||||
};
|
||||
return (
|
||||
<FinancialReportPage name={'general-ledger-sheet'}>
|
||||
|
||||
@@ -79,7 +79,7 @@ export const GeneralLedgerSheetExportMenu = () => {
|
||||
isCloseButtonShown: true,
|
||||
timeout: 2000,
|
||||
};
|
||||
const { httpRequest } = useGeneralLedgerContext();
|
||||
const { httpQuery } = useGeneralLedgerContext();
|
||||
|
||||
const openProgressToast = (amount: number) => {
|
||||
return (
|
||||
@@ -97,7 +97,7 @@ export const GeneralLedgerSheetExportMenu = () => {
|
||||
};
|
||||
// Export the report to xlsx.
|
||||
const { mutateAsync: xlsxExport } = useGeneralLedgerSheetXlsxExport(
|
||||
httpRequest,
|
||||
httpQuery,
|
||||
{
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
@@ -118,27 +118,24 @@ export const GeneralLedgerSheetExportMenu = () => {
|
||||
},
|
||||
);
|
||||
// Export the report to csv.
|
||||
const { mutateAsync: csvExport } = useGeneralLedgerSheetCsvExport(
|
||||
httpRequest,
|
||||
{
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
const { mutateAsync: csvExport } = useGeneralLedgerSheetCsvExport(httpQuery, {
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
message: openProgressToast(xlsxExportProgress),
|
||||
...commonToastConfig,
|
||||
});
|
||||
} else {
|
||||
AppToaster.show(
|
||||
{
|
||||
message: openProgressToast(xlsxExportProgress),
|
||||
...commonToastConfig,
|
||||
});
|
||||
} else {
|
||||
AppToaster.show(
|
||||
{
|
||||
message: openProgressToast(xlsxExportProgress),
|
||||
...commonToastConfig,
|
||||
},
|
||||
toastKey.current,
|
||||
);
|
||||
}
|
||||
},
|
||||
},
|
||||
toastKey.current,
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
// Handle csv export button click.
|
||||
const handleCsvExportBtnClick = () => {
|
||||
csvExport();
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
DialogContent,
|
||||
PdfDocumentPreview,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
} from '@/components';
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import { useGeneralLedgerPdf } from '@/hooks/query';
|
||||
import { useGeneralLedgerContext } from '../../GeneralLedgerProvider';
|
||||
|
||||
export default function GeneralLedgerPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = useGeneralLedgerPdf();
|
||||
const { httpQuery } = useGeneralLedgerContext();
|
||||
const { isLoading, pdfUrl } = useGeneralLedgerPdf(httpQuery);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
@@ -23,7 +26,7 @@ export default function GeneralLedgerPdfDialogContent() {
|
||||
|
||||
<AnchorButton
|
||||
href={pdfUrl}
|
||||
download={'invoice.pdf'}
|
||||
download={'general-ledger.pdf'}
|
||||
minimal={true}
|
||||
outlined={true}
|
||||
>
|
||||
|
||||
@@ -28,8 +28,8 @@ function InventoryItemDetailsProvider({ query, ...props }) {
|
||||
isInventoryItemDetailsFetching,
|
||||
isInventoryItemDetailsLoading,
|
||||
inventoryItemDetailsRefetch,
|
||||
|
||||
query,
|
||||
httpQuery: requestQuery
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
DialogContent,
|
||||
PdfDocumentPreview,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
} from '@/components';
|
||||
import { useInventoryItemDetailsPdf } from '@/hooks/query';
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import { useInventoryItemDetailsContext } from '../../InventoryItemDetailsProvider';
|
||||
|
||||
export default function InventoryItemDetailsPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = useInventoryItemDetailsPdf();
|
||||
const { httpQuery } = useInventoryItemDetailsContext();
|
||||
const { isLoading, pdfUrl } = useInventoryItemDetailsPdf(httpQuery);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
@@ -23,7 +26,7 @@ export default function InventoryItemDetailsPdfDialogContent() {
|
||||
|
||||
<AnchorButton
|
||||
href={pdfUrl}
|
||||
download={'invoice.pdf'}
|
||||
download={'inventory-item-details.pdf'}
|
||||
minimal={true}
|
||||
outlined={true}
|
||||
>
|
||||
|
||||
@@ -11,7 +11,7 @@ const InventoryValuationContext = React.createContext();
|
||||
*/
|
||||
function InventoryValuationProvider({ query, ...props }) {
|
||||
// Transformes the filter form query to request query.
|
||||
const requestQuery = React.useMemo(
|
||||
const httpQuery = React.useMemo(
|
||||
() => transformFilterFormToQuery(query),
|
||||
[query],
|
||||
);
|
||||
@@ -21,9 +21,7 @@ function InventoryValuationProvider({ query, ...props }) {
|
||||
isFetching,
|
||||
isLoading,
|
||||
refetch,
|
||||
} = useInventoryValuationTable(requestQuery, {
|
||||
keepPreviousData: true,
|
||||
});
|
||||
} = useInventoryValuationTable(httpQuery, { keepPreviousData: true });
|
||||
|
||||
// Provider data.
|
||||
const provider = {
|
||||
@@ -31,6 +29,7 @@ function InventoryValuationProvider({ query, ...props }) {
|
||||
isLoading,
|
||||
isFetching,
|
||||
refetchSheet: refetch,
|
||||
httpQuery
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
DialogContent,
|
||||
PdfDocumentPreview,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
} from '@/components';
|
||||
import { useInventoryValuationPdf } from '@/hooks/query';
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import { useInventoryValuationContext } from '../../InventoryValuationProvider';
|
||||
|
||||
export default function InventoryValuationPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = useInventoryValuationPdf();
|
||||
const { httpQuery } = useInventoryValuationContext();
|
||||
const { isLoading, pdfUrl } = useInventoryValuationPdf(httpQuery);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
@@ -23,7 +26,7 @@ export default function InventoryValuationPdfDialogContent() {
|
||||
|
||||
<AnchorButton
|
||||
href={pdfUrl}
|
||||
download={'invoice.pdf'}
|
||||
download={'inventory-valuation-summary.pdf'}
|
||||
minimal={true}
|
||||
outlined={true}
|
||||
>
|
||||
|
||||
@@ -11,24 +11,23 @@ const JournalSheetContext = createContext();
|
||||
*/
|
||||
function JournalSheetProvider({ query, ...props }) {
|
||||
// Transforms the sheet query to request query.
|
||||
const requestQuery = React.useMemo(
|
||||
const httpQuery = React.useMemo(
|
||||
() => transformFilterFormToQuery(query),
|
||||
[query],
|
||||
);
|
||||
|
||||
const {
|
||||
data: journalSheet,
|
||||
isFetching,
|
||||
isLoading,
|
||||
refetch,
|
||||
} = useJournalSheet(requestQuery, { keepPreviousData: true });
|
||||
} = useJournalSheet(httpQuery, { keepPreviousData: true });
|
||||
|
||||
const provider = {
|
||||
journalSheet,
|
||||
isLoading,
|
||||
isFetching,
|
||||
refetchSheet: refetch,
|
||||
httpQuery: requestQuery
|
||||
httpQuery,
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
DialogContent,
|
||||
PdfDocumentPreview,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
} from '@/components';
|
||||
import { useJournalSheetPdf } from '@/hooks/query';
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import { useJournalSheetContext } from '../../JournalProvider';
|
||||
|
||||
export default function JournalSheetPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = useJournalSheetPdf();
|
||||
const { httpQuery } = useJournalSheetContext();
|
||||
const { isLoading, pdfUrl } = useJournalSheetPdf(httpQuery);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// @ts-nocheck
|
||||
import React, { createContext, useContext, useMemo } from 'react';
|
||||
import FinancialReportPage from '../FinancialReportPage';
|
||||
import { createContext, useContext, useMemo } from 'react';
|
||||
import { useProfitLossSheet } from '@/hooks/query';
|
||||
import FinancialReportPage from '../FinancialReportPage';
|
||||
import { transformFilterFormToQuery } from '../common';
|
||||
|
||||
const ProfitLossSheetContext = createContext();
|
||||
@@ -11,27 +11,22 @@ const ProfitLossSheetContext = createContext();
|
||||
* @returns {React.JSX}
|
||||
*/
|
||||
function ProfitLossSheetProvider({ query, ...props }) {
|
||||
|
||||
const innerQuery = useMemo(() => {
|
||||
return transformFilterFormToQuery(query);
|
||||
}, [query]);
|
||||
const httpQuery = useMemo(() => transformFilterFormToQuery(query), [query]);
|
||||
|
||||
const {
|
||||
data: profitLossSheet,
|
||||
isFetching,
|
||||
isLoading,
|
||||
refetch,
|
||||
} = useProfitLossSheet(
|
||||
innerQuery,
|
||||
{ keepPreviousData: true },
|
||||
);
|
||||
} = useProfitLossSheet(httpQuery, { keepPreviousData: true });
|
||||
|
||||
const provider = {
|
||||
profitLossSheet,
|
||||
isLoading,
|
||||
isFetching,
|
||||
sheetRefetch: refetch,
|
||||
query: innerQuery
|
||||
query: httpQuery,
|
||||
httpQuery,
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
DialogContent,
|
||||
PdfDocumentPreview,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
} from '@/components';
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import { useProfitLossSheetPdf } from '@/hooks/query';
|
||||
import { useProfitLossSheetContext } from '../ProfitLossProvider';
|
||||
|
||||
export default function ProfitLossSheetPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = useProfitLossSheetPdf();
|
||||
const { httpQuery } = useProfitLossSheetContext();
|
||||
const { isLoading, pdfUrl } = useProfitLossSheetPdf(httpQuery);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// @ts-nocheck
|
||||
import React, { useRef } from 'react';
|
||||
import { useRef } from 'react';
|
||||
import {
|
||||
Button,
|
||||
Classes,
|
||||
@@ -78,7 +78,7 @@ export const ProfitLossSheetExportMenu = () => {
|
||||
isCloseButtonShown: true,
|
||||
timeout: 2000,
|
||||
};
|
||||
const { query } = useProfitLossSheetContext();
|
||||
const { httpQuery } = useProfitLossSheetContext();
|
||||
|
||||
const openProgressToast = (amount: number) => {
|
||||
return (
|
||||
@@ -96,7 +96,7 @@ export const ProfitLossSheetExportMenu = () => {
|
||||
};
|
||||
|
||||
// Export the report to xlsx.
|
||||
const { mutateAsync: xlsxExport } = useProfitLossSheetXlsxExport(query, {
|
||||
const { mutateAsync: xlsxExport } = useProfitLossSheetXlsxExport(httpQuery, {
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
@@ -115,7 +115,7 @@ export const ProfitLossSheetExportMenu = () => {
|
||||
},
|
||||
});
|
||||
// Export the report to csv.
|
||||
const { mutateAsync: csvExport } = useProfitLossSheetCsvExport(query, {
|
||||
const { mutateAsync: csvExport } = useProfitLossSheetCsvExport(httpQuery, {
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// @ts-nocheck
|
||||
import React, { createContext, useContext } from 'react';
|
||||
import React, { createContext, useContext, useMemo } from 'react';
|
||||
import FinancialReportPage from '../FinancialReportPage';
|
||||
import { usePurchasesByItemsTable } from '@/hooks/query';
|
||||
import { transformFilterFormToQuery } from '../common';
|
||||
@@ -7,26 +7,23 @@ import { transformFilterFormToQuery } from '../common';
|
||||
const PurchasesByItemsContext = createContext();
|
||||
|
||||
function PurchasesByItemsProvider({ query, ...props }) {
|
||||
// Transformes the report query to http query.
|
||||
const httpQuery = useMemo(() => transformFilterFormToQuery(query), [query]);
|
||||
|
||||
// Handle fetching the purchases by items report based on the given query.
|
||||
const {
|
||||
data: purchaseByItems,
|
||||
isFetching,
|
||||
isLoading,
|
||||
refetch,
|
||||
} = usePurchasesByItemsTable(
|
||||
{
|
||||
...transformFilterFormToQuery(query),
|
||||
},
|
||||
{
|
||||
keepPreviousData: true,
|
||||
},
|
||||
);
|
||||
} = usePurchasesByItemsTable(httpQuery, { keepPreviousData: true });
|
||||
|
||||
const provider = {
|
||||
purchaseByItems,
|
||||
isFetching,
|
||||
isLoading,
|
||||
refetchSheet: refetch,
|
||||
httpQuery,
|
||||
};
|
||||
return (
|
||||
<FinancialReportPage name={'purchase-by-items'}>
|
||||
|
||||
@@ -37,11 +37,8 @@ export function PurchasesByItemsLoadingBar() {
|
||||
*/
|
||||
export const PurchasesByItemsExportMenu = () => {
|
||||
const toastKey = useRef(null);
|
||||
const commonToastConfig = {
|
||||
isCloseButtonShown: true,
|
||||
timeout: 2000,
|
||||
};
|
||||
const { query } = usePurchaseByItemsContext();
|
||||
const commonToastConfig = { isCloseButtonShown: true, timeout: 2000 };
|
||||
const { httpQuery } = usePurchaseByItemsContext();
|
||||
|
||||
const openProgressToast = (amount: number) => {
|
||||
return (
|
||||
@@ -57,9 +54,8 @@ export const PurchasesByItemsExportMenu = () => {
|
||||
</Stack>
|
||||
);
|
||||
};
|
||||
|
||||
// Export the report to xlsx.
|
||||
const { mutateAsync: xlsxExport } = usePurchasesByItemsXlsxExport(query, {
|
||||
const { mutateAsync: xlsxExport } = usePurchasesByItemsXlsxExport(httpQuery, {
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
@@ -78,7 +74,7 @@ export const PurchasesByItemsExportMenu = () => {
|
||||
},
|
||||
});
|
||||
// Export the report to csv.
|
||||
const { mutateAsync: csvExport } = usePurchasesByItemsCsvExport(query, {
|
||||
const { mutateAsync: csvExport } = usePurchasesByItemsCsvExport(httpQuery, {
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import {
|
||||
DialogContent,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
FormattedMessage as T,
|
||||
} from '@/components';
|
||||
import { usePurchasesByItemsPdfExport } from '@/hooks/query';
|
||||
import { usePurchasesByItemsQuery } from '../../utils';
|
||||
|
||||
export default function PurchasesByItemsPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = usePurchasesByItemsPdfExport();
|
||||
const { httpQuery } = usePurchasesByItemsQuery();
|
||||
const { isLoading, pdfUrl } = usePurchasesByItemsPdfExport(httpQuery);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// @ts-nocheck
|
||||
import { createContext, useContext } from 'react';
|
||||
import { createContext, useContext, useMemo } from 'react';
|
||||
import FinancialReportPage from '../FinancialReportPage';
|
||||
import { useSalesByItemsTable } from '@/hooks/query';
|
||||
import { transformFilterFormToQuery } from '../common';
|
||||
@@ -7,25 +7,22 @@ import { transformFilterFormToQuery } from '../common';
|
||||
const SalesByItemsContext = createContext();
|
||||
|
||||
function SalesByItemProvider({ query, ...props }) {
|
||||
// Transformes the sheet query to http query.
|
||||
const httpQuery = useMemo(() => transformFilterFormToQuery(query), [query]);
|
||||
|
||||
const {
|
||||
data: salesByItems,
|
||||
isFetching,
|
||||
isLoading,
|
||||
refetch,
|
||||
} = useSalesByItemsTable(
|
||||
{
|
||||
...transformFilterFormToQuery(query),
|
||||
},
|
||||
{
|
||||
keepPreviousData: true,
|
||||
},
|
||||
);
|
||||
} = useSalesByItemsTable({ ...httpQuery }, { keepPreviousData: true });
|
||||
|
||||
const provider = {
|
||||
salesByItems,
|
||||
isFetching,
|
||||
isLoading,
|
||||
refetchSheet: refetch,
|
||||
httpQuery,
|
||||
};
|
||||
return (
|
||||
<FinancialReportPage name={'sales-by-items'}>
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
// @ts-nocheck
|
||||
import { useMemo, useRef } from 'react';
|
||||
import intl from 'react-intl-universal';
|
||||
import { useRef } from 'react';
|
||||
import classNames from 'classnames';
|
||||
import { Classes } from '@blueprintjs/core';
|
||||
|
||||
import { getColumnWidth } from '@/utils';
|
||||
import { AppToaster, If, Stack } from '@/components';
|
||||
import { Align } from '@/constants';
|
||||
import { CellTextSpan } from '@/components/Datatable/Cells';
|
||||
import { useSalesByItemsContext } from './SalesByItemProvider';
|
||||
import FinancialLoadingBar from '../FinancialLoadingBar';
|
||||
import { Intent, Menu, MenuItem, ProgressBar, Text } from '@blueprintjs/core';
|
||||
@@ -34,11 +30,8 @@ export function SalesByItemsLoadingBar() {
|
||||
*/
|
||||
export const SalesByItemsSheetExportMenu = () => {
|
||||
const toastKey = useRef(null);
|
||||
const commonToastConfig = {
|
||||
isCloseButtonShown: true,
|
||||
timeout: 2000,
|
||||
};
|
||||
const { query } = useSalesByItemsContext();
|
||||
const commonToastConfig = { isCloseButtonShown: true, timeout: 2000, };
|
||||
const { httpQuery } = useSalesByItemsContext();
|
||||
|
||||
const openProgressToast = (amount: number) => {
|
||||
return (
|
||||
@@ -54,9 +47,8 @@ export const SalesByItemsSheetExportMenu = () => {
|
||||
</Stack>
|
||||
);
|
||||
};
|
||||
|
||||
// Export the report to xlsx.
|
||||
const { mutateAsync: xlsxExport } = useSalesByItemsXlsxExport(query, {
|
||||
const { mutateAsync: xlsxExport } = useSalesByItemsXlsxExport(httpQuery, {
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
@@ -75,7 +67,7 @@ export const SalesByItemsSheetExportMenu = () => {
|
||||
},
|
||||
});
|
||||
// Export the report to csv.
|
||||
const { mutateAsync: csvExport } = useSalesByItemsCsvExport(query, {
|
||||
const { mutateAsync: csvExport } = useSalesByItemsCsvExport(httpQuery, {
|
||||
onDownloadProgress: (xlsxExportProgress: number) => {
|
||||
if (!toastKey.current) {
|
||||
toastKey.current = AppToaster.show({
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
DialogContent,
|
||||
PdfDocumentPreview,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
} from '@/components';
|
||||
import { useSalesByItemsPdfExport } from '@/hooks/query';
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import { useSalesByItemsContext } from '../../SalesByItemProvider';
|
||||
|
||||
export default function SalesByItemsPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = useSalesByItemsPdfExport();
|
||||
const { httpQuery } = useSalesByItemsContext();
|
||||
const { isLoading, pdfUrl } = useSalesByItemsPdfExport(httpQuery);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
DialogContent,
|
||||
PdfDocumentPreview,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
} from '@/components';
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import { useSalesTaxLiabilitySummaryPdf } from '@/hooks/query';
|
||||
import { useSalesTaxLiabilitySummaryContext } from '../SalesTaxLiabilitySummaryBoot';
|
||||
|
||||
export default function SalesTaxLiabilityPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = useSalesTaxLiabilitySummaryPdf();
|
||||
const { query } = useSalesTaxLiabilitySummaryContext();
|
||||
const { isLoading, pdfUrl } = useSalesTaxLiabilitySummaryPdf(query);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
@@ -23,7 +26,7 @@ export default function SalesTaxLiabilityPdfDialogContent() {
|
||||
|
||||
<AnchorButton
|
||||
href={pdfUrl}
|
||||
download={'profit_loss_sheet.pdf'}
|
||||
download={'sales-tax-liability-summary.pdf'}
|
||||
minimal={true}
|
||||
outlined={true}
|
||||
>
|
||||
|
||||
@@ -59,7 +59,6 @@ function SalesTaxLiabilitySummaryActionsBar({
|
||||
openDialog(DialogsName.SalesTaxLiabilitySummaryPdfPreview)
|
||||
};
|
||||
|
||||
|
||||
return (
|
||||
<DashboardActionsBar>
|
||||
<NavbarGroup>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// @ts-nocheck
|
||||
import React, { createContext, useContext } from 'react';
|
||||
import { createContext, useContext, useMemo } from 'react';
|
||||
import FinancialReportPage from '../FinancialReportPage';
|
||||
import { useTrialBalanceSheet } from '@/hooks/query';
|
||||
import { transformFilterFormToQuery } from '../common';
|
||||
@@ -7,25 +7,21 @@ import { transformFilterFormToQuery } from '../common';
|
||||
const TrialBalanceSheetContext = createContext();
|
||||
|
||||
function TrialBalanceSheetProvider({ query, ...props }) {
|
||||
const httpQuery = useMemo(() => transformFilterFormToQuery(query), [query]);
|
||||
|
||||
const {
|
||||
data: trialBalanceSheet,
|
||||
isFetching,
|
||||
isLoading,
|
||||
refetch,
|
||||
} = useTrialBalanceSheet(
|
||||
{
|
||||
...transformFilterFormToQuery(query),
|
||||
},
|
||||
{
|
||||
keepPreviousData: true,
|
||||
},
|
||||
);
|
||||
} = useTrialBalanceSheet({ ...httpQuery }, { keepPreviousData: true });
|
||||
|
||||
const provider = {
|
||||
trialBalanceSheet,
|
||||
isLoading,
|
||||
isFetching,
|
||||
refetchSheet: refetch,
|
||||
httpQuery,
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
DialogContent,
|
||||
PdfDocumentPreview,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
} from '@/components';
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import { useTrialBalanceSheetPdf } from '@/hooks/query';
|
||||
import { useTrialBalanceSheetContext } from '../../TrialBalanceProvider';
|
||||
|
||||
export default function TrialBalanceSheetPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = useTrialBalanceSheetPdf();
|
||||
const { httpQuery } = useTrialBalanceSheetContext();
|
||||
const { isLoading, pdfUrl } = useTrialBalanceSheetPdf(httpQuery);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
|
||||
@@ -10,26 +10,25 @@ const VendorsBalanceSummaryContext = React.createContext();
|
||||
* Vendors balance summary provider.
|
||||
*/
|
||||
function VendorsBalanceSummaryProvider({ filter, ...props }) {
|
||||
const query = React.useMemo(() => transformFilterFormToQuery(filter), [
|
||||
filter,
|
||||
]);
|
||||
const httpQuery = React.useMemo(
|
||||
() => transformFilterFormToQuery(filter),
|
||||
[filter],
|
||||
);
|
||||
// Fetching vendors balance summary report based on the given query.
|
||||
const {
|
||||
data: VendorBalanceSummary,
|
||||
isLoading: isVendorsBalanceLoading,
|
||||
isFetching: isVendorsBalanceFetching,
|
||||
refetch,
|
||||
} = useVendorsBalanceSummaryReport(query, {
|
||||
keepPreviousData: true,
|
||||
});
|
||||
} = useVendorsBalanceSummaryReport(httpQuery, { keepPreviousData: true });
|
||||
|
||||
// Provider.
|
||||
const provider = {
|
||||
VendorBalanceSummary,
|
||||
isVendorsBalanceLoading,
|
||||
isVendorsBalanceFetching,
|
||||
|
||||
refetch,
|
||||
httpQuery,
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
DialogContent,
|
||||
PdfDocumentPreview,
|
||||
@@ -5,9 +6,11 @@ import {
|
||||
} from '@/components';
|
||||
import { useVendorBalanceSummaryPdfExport } from '@/hooks/query';
|
||||
import { AnchorButton } from '@blueprintjs/core';
|
||||
import { useVendorsBalanceSummaryContext } from '../../VendorsBalanceSummaryProvider';
|
||||
|
||||
export default function VendorTransactionsPdfDialogContent() {
|
||||
const { isLoading, pdfUrl } = useVendorBalanceSummaryPdfExport();
|
||||
const { httpQuery } = useVendorsBalanceSummaryContext();
|
||||
const { isLoading, pdfUrl } = useVendorBalanceSummaryPdfExport(httpQuery);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
|
||||
@@ -14,7 +14,7 @@ import withVendorsTransactionsActions from './withVendorsTransactionsActions';
|
||||
|
||||
import { compose } from '@/utils';
|
||||
import { useVendorsTransactionsQuery } from './_utils';
|
||||
import { VendorBalanceDialogs } from '../VendorsBalanceSummary/VendorBalanceDialogs';
|
||||
import { VendorTransactionsDialogs } from './VendorTransactionsDialogs';
|
||||
|
||||
/**
|
||||
* Vendors transactions.
|
||||
@@ -67,7 +67,7 @@ function VendorsTransactions({
|
||||
</FinancialStatement>
|
||||
</DashboardPageContent>
|
||||
|
||||
<VendorBalanceDialogs />
|
||||
<VendorTransactionsDialogs />
|
||||
</VendorsTransactionsProvider>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ const VendorsTransactionsContext = createContext();
|
||||
* Vendors transactions provider.
|
||||
*/
|
||||
function VendorsTransactionsProvider({ filter, ...props }) {
|
||||
const query = useMemo(() => transformFilterFormToQuery(filter), [filter]);
|
||||
const httpQuery = useMemo(() => transformFilterFormToQuery(filter), [filter]);
|
||||
|
||||
// Fetch vendors transactions based on the given query.
|
||||
const {
|
||||
@@ -18,16 +18,15 @@ function VendorsTransactionsProvider({ filter, ...props }) {
|
||||
isFetching: isVendorsTransactionFetching,
|
||||
isLoading: isVendorsTransactionsLoading,
|
||||
refetch,
|
||||
} = useVendorsTransactionsReport(query, { keepPreviousData: true });
|
||||
} = useVendorsTransactionsReport(httpQuery, { keepPreviousData: true });
|
||||
|
||||
const provider = {
|
||||
vendorsTransactions,
|
||||
isVendorsTransactionsLoading,
|
||||
isVendorsTransactionFetching,
|
||||
|
||||
refetch,
|
||||
filter,
|
||||
query,
|
||||
httpQuery,
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user