From 8db1d9d9dcf71db40d31c942d2e863ef57554e43 Mon Sep 17 00:00:00 2001 From: Civolilah Date: Fri, 22 May 2026 22:29:09 +0300 Subject: [PATCH 1/2] Added status query parameter for payment terms --- src/common/queries/payment-terms.ts | 3 ++- src/pages/clients/common/components/Settings.tsx | 4 +++- src/pages/clients/edit/components/AdditionalInfo.tsx | 4 +++- src/pages/invoices/common/components/ClientCreate.tsx | 4 +++- src/pages/settings/online-payments/OnlinePayments.tsx | 2 +- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/common/queries/payment-terms.ts b/src/common/queries/payment-terms.ts index efeb63933d..fd77ab1b91 100644 --- a/src/common/queries/payment-terms.ts +++ b/src/common/queries/payment-terms.ts @@ -25,11 +25,12 @@ export function usePaymentTermsQuery(params: Params) { request( 'GET', endpoint( - '/api/v1/payment_terms?per_page=:perPage&page=:currentPage&sort=:sort', + '/api/v1/payment_terms?per_page=:perPage&page=:currentPage&sort=:sort&status=:status', { perPage: params.perPage ?? 1000, currentPage: params.currentPage, sort: params.sort ?? 'id|asc', + status: params.status ?? 'all', } ) ), diff --git a/src/pages/clients/common/components/Settings.tsx b/src/pages/clients/common/components/Settings.tsx index a13abbd349..d435f654f7 100644 --- a/src/pages/clients/common/components/Settings.tsx +++ b/src/pages/clients/common/components/Settings.tsx @@ -39,7 +39,9 @@ export default function Settings() { const currencies = useCurrencies(); const { data: statics } = useStaticsQuery(); - const { data: paymentTermsResponse } = usePaymentTermsQuery({}); + const { data: paymentTermsResponse } = usePaymentTermsQuery({ + status: ['active'], + }); const handleChange = (property: string, value: string | number | boolean) => { const $client = cloneDeep(client)!; diff --git a/src/pages/clients/edit/components/AdditionalInfo.tsx b/src/pages/clients/edit/components/AdditionalInfo.tsx index aa797130f3..c714b13acc 100644 --- a/src/pages/clients/edit/components/AdditionalInfo.tsx +++ b/src/pages/clients/edit/components/AdditionalInfo.tsx @@ -50,7 +50,9 @@ export function AdditionalInfo({ client, errors, setClient }: Props) { const hasPermission = useHasPermission(); const entityAssigned = useEntityAssigned(); - const { data: paymentTermsResponse } = usePaymentTermsQuery({}); + const { data: paymentTermsResponse } = usePaymentTermsQuery({ + status: ['active'], + }); const { data: statics } = useStaticsQuery(); const { id } = useParams(); diff --git a/src/pages/invoices/common/components/ClientCreate.tsx b/src/pages/invoices/common/components/ClientCreate.tsx index 83ce8dc209..1d27471d3f 100644 --- a/src/pages/invoices/common/components/ClientCreate.tsx +++ b/src/pages/invoices/common/components/ClientCreate.tsx @@ -61,7 +61,9 @@ export function ClientCreate({ refetchOnWindowFocus: false, }); - const { data: paymentTermsResponse } = usePaymentTermsQuery({}); + const { data: paymentTermsResponse } = usePaymentTermsQuery({ + status: ['active'], + }); const handleChange = (property: keyof Client, value: string) => { setErrors(undefined); diff --git a/src/pages/settings/online-payments/OnlinePayments.tsx b/src/pages/settings/online-payments/OnlinePayments.tsx index 8850eb2c08..17c845cc5d 100644 --- a/src/pages/settings/online-payments/OnlinePayments.tsx +++ b/src/pages/settings/online-payments/OnlinePayments.tsx @@ -49,7 +49,7 @@ export function OnlinePayments() { const company = useInjectCompanyChanges(); const { data: statics } = useStaticsQuery(); const errors = useAtomValue(companySettingsErrorsAtom); - const { data: termsResponse } = usePaymentTermsQuery({}); + const { data: termsResponse } = usePaymentTermsQuery({ status: ['active'] }); const { isCompanySettingsActive } = useCurrentSettingsLevel(); const isFormBusy = useAtomValue(isCompanySettingsFormBusy); From 846ae208d9eb6d80cc4e160186870115b3f767e2 Mon Sep 17 00:00:00 2001 From: Civolilah Date: Sun, 24 May 2026 00:57:22 +0300 Subject: [PATCH 2/2] Added payment terms filtering --- .../clients/common/components/Settings.tsx | 34 ++++++++++++++----- .../edit/components/AdditionalInfo.tsx | 34 ++++++++++++++----- .../common/components/ClientCreate.tsx | 34 ++++++++++++++----- .../online-payments/OnlinePayments.tsx | 31 +++++++++++------ 4 files changed, 99 insertions(+), 34 deletions(-) diff --git a/src/pages/clients/common/components/Settings.tsx b/src/pages/clients/common/components/Settings.tsx index d435f654f7..641fc9d474 100644 --- a/src/pages/clients/common/components/Settings.tsx +++ b/src/pages/clients/common/components/Settings.tsx @@ -117,13 +117,22 @@ export default function Settings() { withBlank customSelector > - {paymentTermsResponse.data.data.map( - (paymentTerm: PaymentTerm, index: number) => ( + {paymentTermsResponse.data.data + .filter( + ( + paymentTerm: PaymentTerm, + index: number, + terms: PaymentTerm[] + ) => + terms.findIndex( + (t) => t.num_days === paymentTerm.num_days + ) === index + ) + .map((paymentTerm: PaymentTerm, index: number) => ( - ) - )} + ))} )} @@ -140,13 +149,22 @@ export default function Settings() { withBlank customSelector > - {paymentTermsResponse.data.data.map( - (paymentTerm: PaymentTerm, index: number) => ( + {paymentTermsResponse.data.data + .filter( + ( + paymentTerm: PaymentTerm, + index: number, + terms: PaymentTerm[] + ) => + terms.findIndex( + (t) => t.num_days === paymentTerm.num_days + ) === index + ) + .map((paymentTerm: PaymentTerm, index: number) => ( - ) - )} + ))} )} diff --git a/src/pages/clients/edit/components/AdditionalInfo.tsx b/src/pages/clients/edit/components/AdditionalInfo.tsx index c714b13acc..f482dc75bb 100644 --- a/src/pages/clients/edit/components/AdditionalInfo.tsx +++ b/src/pages/clients/edit/components/AdditionalInfo.tsx @@ -150,13 +150,22 @@ export function AdditionalInfo({ client, errors, setClient }: Props) { withBlank customSelector > - {paymentTermsResponse.data.data.map( - (paymentTerm: PaymentTerm, index: number) => ( + {paymentTermsResponse.data.data + .filter( + ( + paymentTerm: PaymentTerm, + index: number, + terms: PaymentTerm[] + ) => + terms.findIndex( + (t) => t.num_days === paymentTerm.num_days + ) === index + ) + .map((paymentTerm: PaymentTerm, index: number) => ( - ) - )} + ))} )} @@ -173,13 +182,22 @@ export function AdditionalInfo({ client, errors, setClient }: Props) { withBlank customSelector > - {paymentTermsResponse.data.data.map( - (paymentTerm: PaymentTerm, index: number) => ( + {paymentTermsResponse.data.data + .filter( + ( + paymentTerm: PaymentTerm, + index: number, + terms: PaymentTerm[] + ) => + terms.findIndex( + (t) => t.num_days === paymentTerm.num_days + ) === index + ) + .map((paymentTerm: PaymentTerm, index: number) => ( - ) - )} + ))} )} diff --git a/src/pages/invoices/common/components/ClientCreate.tsx b/src/pages/invoices/common/components/ClientCreate.tsx index 1d27471d3f..9488dee96f 100644 --- a/src/pages/invoices/common/components/ClientCreate.tsx +++ b/src/pages/invoices/common/components/ClientCreate.tsx @@ -373,16 +373,25 @@ export function ClientCreate({ withBlank customSelector > - {paymentTermsResponse.data.data.map( - (paymentTerm: PaymentTerm, index: number) => ( + {paymentTermsResponse.data.data + .filter( + ( + paymentTerm: PaymentTerm, + index: number, + terms: PaymentTerm[] + ) => + terms.findIndex( + (t) => t.num_days === paymentTerm.num_days + ) === index + ) + .map((paymentTerm: PaymentTerm, index: number) => ( - ) - )} + ))} )} @@ -397,16 +406,25 @@ export function ClientCreate({ withBlank customSelector > - {paymentTermsResponse.data.data.map( - (paymentTerm: PaymentTerm, index: number) => ( + {paymentTermsResponse.data.data + .filter( + ( + paymentTerm: PaymentTerm, + index: number, + terms: PaymentTerm[] + ) => + terms.findIndex( + (t) => t.num_days === paymentTerm.num_days + ) === index + ) + .map((paymentTerm: PaymentTerm, index: number) => ( - ) - )} + ))} )} diff --git a/src/pages/settings/online-payments/OnlinePayments.tsx b/src/pages/settings/online-payments/OnlinePayments.tsx index 17c845cc5d..9774dfe799 100644 --- a/src/pages/settings/online-payments/OnlinePayments.tsx +++ b/src/pages/settings/online-payments/OnlinePayments.tsx @@ -300,11 +300,17 @@ export function OnlinePayments() { customSelector withBlank > - {paymentTerms.map((type: PaymentTerm) => ( - - ))} + {paymentTerms + .filter( + (type: PaymentTerm, index, terms) => + terms.findIndex((t) => t.num_days === type.num_days) === + index + ) + .map((type: PaymentTerm) => ( + + ))} )} @@ -366,11 +372,16 @@ export function OnlinePayments() { errorMessage={errors?.errors['settings.valid_until']} customSelector > - {paymentTerms?.map((type: PaymentTerm) => ( - - ))} + {paymentTerms + ?.filter( + (type: PaymentTerm, index, terms) => + terms.findIndex((t) => t.num_days === type.num_days) === index + ) + .map((type: PaymentTerm) => ( + + ))}