feat: Assign default PDF template automatically

This commit is contained in:
Ahmed Bouhuolia
2024-10-02 18:18:57 +02:00
parent cbc60b3c73
commit b23112bc92
30 changed files with 501 additions and 46 deletions

View File

@@ -1,7 +1,7 @@
// @ts-nocheck
import { useQueryClient, useMutation } from 'react-query';
import { useRequestQuery } from '../useQueryRequest';
import { transformPagination } from '@/utils';
import { transformPagination, transformToCamelCase } from '@/utils';
import useApiRequest from '../useRequest';
import { useRequestPdf } from '../useRequestPdf';
import t from './types';
@@ -356,3 +356,21 @@ export function useRefundCreditTransaction(id, props, requestProps) {
export function usePdfCreditNote(creditNoteId) {
return useRequestPdf({ url: `sales/credit_notes/${creditNoteId}` });
}
export interface CreditNoteStateResponse {
defaultTemplateId: number;
}
export function useGetCreditNoteState(
options?: UseQueryOptions<CreditNoteStateResponse, Error>,
): UseQueryResult<CreditNoteStateResponse, Error> {
const apiRequest = useApiRequest();
return useQuery<CreditNoteStateResponse, Error>(
['CREDIT_NOTE_STATE'],
() =>
apiRequest
.get('/sales/credit_notes/state')
.then((res) => transformToCamelCase(res.data?.data)),
{ ...options },
);
}

View File

@@ -2,7 +2,7 @@
import { useQueryClient, useMutation } from 'react-query';
import { useRequestQuery } from '../useQueryRequest';
import useApiRequest from '../useRequest';
import { transformPagination } from '@/utils';
import { transformPagination, transformToCamelCase } from '@/utils';
import t from './types';
import { useRequestPdf } from '../useRequestPdf';
@@ -270,3 +270,22 @@ export function useSaleEstimateDefaultOptions(estimateId, props) {
},
);
}
export interface ISaleEstimatesStateResponse {
defaultTemplateId: number;
}
export function useGetSaleEstimatesState(
options?: UseQueryOptions<ISaleEstimatesStateResponse, Error>,
): UseQueryResult<ISaleEstimatesStateResponse, Error> {
const apiRequest = useApiRequest();
return useQuery<ISaleEstimatesStateResponse, Error>(
['SALE_ESTIMATES_STATE'],
() =>
apiRequest
.get('/sales/estimates/state')
.then((res) => transformToCamelCase(res.data?.data)),
{ ...options },
);
}

View File

@@ -1,7 +1,7 @@
// @ts-nocheck
import { useQueryClient, useMutation } from 'react-query';
import { useQueryClient, useMutation, useQuery } from 'react-query';
import { useRequestQuery } from '../useQueryRequest';
import { transformPagination } from '@/utils';
import { transformPagination, transformToCamelCase } from '@/utils';
import useApiRequest from '../useRequest';
import { useRequestPdf } from '../useRequestPdf';
import t from './types';
@@ -341,3 +341,22 @@ export function useSaleInvoiceDefaultOptions(invoiceId, props) {
},
);
}
export interface GetSaleInvoiceStateResponse {
defaultTemplateId: number;
}
export function useGetSaleInvoiceState(
options?: UseQueryOptions<GetSaleInvoiceStateResponse, Error>,
): UseQueryResult<GetSaleInvoiceStateResponse, Error> {
const apiRequest = useApiRequest();
return useQuery<GetSaleInvoiceStateResponse, Error>(
['SALE_INVOICE_STATE'],
() =>
apiRequest
.get(`/sales/invoices/state`)
.then((res) => transformToCamelCase(res.data?.data)),
{ ...options },
);
}

View File

@@ -1,11 +1,17 @@
// @ts-nocheck
import { useMutation, useQueryClient } from 'react-query';
import { useRequestQuery } from '../useQueryRequest';
import {
useMutation,
useQueryClient,
QueryClient,
UseQueryOptions,
UseQueryResult,
useQuery,
} from 'react-query';
import useApiRequest from '../useRequest';
import { useRequestQuery } from '../useQueryRequest';
import { transformPagination, saveInvoke } from '@/utils';
import t from './types';
import { useRequestPdf } from '../useRequestPdf';
import t from './types';
// Common invalidate queries.
const commonInvalidateQueries = (client) => {
@@ -269,3 +275,31 @@ export function usePaymentReceiveDefaultOptions(paymentReceiveId, props) {
},
);
}
export interface PaymentReceivedStateResponse {
defaultTemplateId: number;
}
/**
* Retrieves the payment receive state.
* @param {Record<string, any>} query - Query parameters for the request.
* @param {UseQueryOptions<PaymentReceivedStateResponse, Error>} options - Optional query options.
* @returns {UseQueryResult<PaymentReceivedStateResponse, Error>} The query result.
*/
export function usePaymentReceivedState(
query: Record<string, any>,
options?: UseQueryOptions<PaymentReceivedStateResponse, Error>,
): UseQueryResult<PaymentReceivedStateResponse, Error> {
const apiRequest = useApiRequest();
return useQuery<PaymentReceivedStateResponse, Error>(
[t.PAYMENT_RECEIVE_STATE, query],
() =>
apiRequest
.get('/sales/payment_receives/state', { params: query })
.then((res) => res.data),
{
...options,
},
);
}

View File

@@ -1,5 +1,11 @@
// @ts-nocheck
import { useQueryClient, useMutation } from 'react-query';
import {
useQueryClient,
useMutation,
UseQueryResult,
UseQueryOptions,
useQuery,
} from 'react-query';
import { useRequestQuery } from '../useQueryRequest';
import useApiRequest from '../useRequest';
import { transformPagination } from '@/utils';
@@ -244,3 +250,22 @@ export function useSaleReceiptDefaultOptions(invoiceId, props) {
},
);
}
export interface IGetReceiptStateResponse {
pdfTemplateId: number;
}
export function useGetReceiptState(
options?: UseQueryOptions<IGetReceiptStateResponse, Error>,
): UseQueryResult<IGetReceiptStateResponse, Error> {
const apiRequest = useApiRequest();
return useQuery<IGetReceiptStateResponse, Error>(
['SALE_RECEIPT_STATE'],
() =>
apiRequest
.get(`/sales/receipts/state`)
.then((res) => transformToCamelCase(res.data?.data)),
{ ...options },
);
}