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..641fc9d474 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)!; @@ -115,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) => ( - ) - )} + ))} )} @@ -138,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 aa797130f3..f482dc75bb 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(); @@ -148,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) => ( - ) - )} + ))} )} @@ -171,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 83ce8dc209..9488dee96f 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); @@ -371,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) => ( - ) - )} + ))} )} @@ -395,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 8850eb2c08..9774dfe799 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); @@ -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) => ( + + ))}