From fc89cfb14a7839ca7510266acbd50a5b80cbeb2d Mon Sep 17 00:00:00 2001 From: Ahmed Bouhuolia Date: Wed, 29 Oct 2025 12:54:12 +0200 Subject: [PATCH] fix: edit payment transaction --- .../queries/GetBankRulesTransformer.ts | 7 ++- .../commands/BillPaymentsPages.service.ts | 5 +- .../queries/PaymentsReceivedPages.service.ts | 9 ++- .../Accounting/JournalsLanding/components.tsx | 4 +- .../webapp/src/containers/Accounts/utils.tsx | 2 +- .../Banking/Rules/RulesList/hooks.tsx | 2 +- .../Expenses/ExpensesLanding/components.tsx | 4 +- .../src/containers/Items/components.tsx | 2 +- .../PaymentForm/PaymentMadeFormProvider.tsx | 4 +- .../Estimates/EstimatesLanding/components.tsx | 10 +-- .../PaymentReceiveFormProvider.tsx | 8 +-- .../webapp/src/hooks/query/paymentMades.tsx | 61 +++++++------------ .../src/hooks/query/paymentReceives.tsx | 16 +---- 13 files changed, 57 insertions(+), 77 deletions(-) diff --git a/packages/server/src/modules/BankRules/queries/GetBankRulesTransformer.ts b/packages/server/src/modules/BankRules/queries/GetBankRulesTransformer.ts index 0a26317c7..144c2333d 100644 --- a/packages/server/src/modules/BankRules/queries/GetBankRulesTransformer.ts +++ b/packages/server/src/modules/BankRules/queries/GetBankRulesTransformer.ts @@ -28,7 +28,12 @@ export class GetBankRulesTransformer extends Transformer { * @returns {string} */ protected assignCategoryFormatted(bankRule: any) { - return getCashflowTransactionFormattedType(bankRule.assignCategory); + const translationKey = getCashflowTransactionFormattedType( + bankRule.assignCategory, + ); + return translationKey + ? this.context.i18n.t(translationKey) + : bankRule.assignCategory; } /** diff --git a/packages/server/src/modules/BillPayments/commands/BillPaymentsPages.service.ts b/packages/server/src/modules/BillPayments/commands/BillPaymentsPages.service.ts index 29a461c90..84c908873 100644 --- a/packages/server/src/modules/BillPayments/commands/BillPaymentsPages.service.ts +++ b/packages/server/src/modules/BillPayments/commands/BillPaymentsPages.service.ts @@ -19,7 +19,7 @@ export class BillPaymentsPages { @Inject(BillPayment.name) private readonly billPaymentModel: TenantModelProxy, - ) {} + ) { } /** * Retrieve bill payment with associated metadata. @@ -46,7 +46,8 @@ export class BillPaymentsPages { paymentAmount: entry.paymentAmount, })); - const resPayableBills = await Bill.query() + const resPayableBills = await this.billModel() + .query() .modify('opened') .modify('dueBills') .where('vendor_id', billPayment.vendorId) diff --git a/packages/server/src/modules/PaymentReceived/queries/PaymentsReceivedPages.service.ts b/packages/server/src/modules/PaymentReceived/queries/PaymentsReceivedPages.service.ts index 6eeb2536a..942ad952b 100644 --- a/packages/server/src/modules/PaymentReceived/queries/PaymentsReceivedPages.service.ts +++ b/packages/server/src/modules/PaymentReceived/queries/PaymentsReceivedPages.service.ts @@ -18,7 +18,7 @@ export class PaymentsReceivedPagesService { @Inject(PaymentReceived.name) private readonly paymentReceived: TenantModelProxy, - ) {} + ) { } /** * Retrive page invoices entries from the given sale invoices models. @@ -58,11 +58,10 @@ export class PaymentsReceivedPagesService { /** * Retrieve the payment receive details of the given id. - * @param {number} tenantId - Tenant id. - * @param {Integer} paymentReceiveId - Payment receive id. + * @param {number} paymentReceiveId - Payment receive id. */ public async getPaymentReceiveEditPage(paymentReceiveId: number): Promise<{ - paymentReceive: Omit; + data: Omit; entries: IPaymentReceivePageEntry[]; }> { // Retrieve payment receive. @@ -100,7 +99,7 @@ export class PaymentsReceivedPagesService { const entries = [...paymentEntries, ...restReceivableEntries]; return { - paymentReceive: omit(paymentReceive, ['entries']), + data: omit(paymentReceive, ['entries']), entries, }; } diff --git a/packages/webapp/src/containers/Accounting/JournalsLanding/components.tsx b/packages/webapp/src/containers/Accounting/JournalsLanding/components.tsx index 34bdd5cc8..de5a9bbff 100644 --- a/packages/webapp/src/containers/Accounting/JournalsLanding/components.tsx +++ b/packages/webapp/src/containers/Accounting/JournalsLanding/components.tsx @@ -102,13 +102,13 @@ export const StatusAccessor = (row) => { return ( - + - + diff --git a/packages/webapp/src/containers/Accounts/utils.tsx b/packages/webapp/src/containers/Accounts/utils.tsx index bed1323d3..9064a5cb2 100644 --- a/packages/webapp/src/containers/Accounts/utils.tsx +++ b/packages/webapp/src/containers/Accounts/utils.tsx @@ -42,7 +42,7 @@ export const handleDeleteErrors = (errors) => { export const AccountCodeAccessor = (row) => !isBlank(row.code) ? ( - + {row.code} ) : null; diff --git a/packages/webapp/src/containers/Banking/Rules/RulesList/hooks.tsx b/packages/webapp/src/containers/Banking/Rules/RulesList/hooks.tsx index 17dfc29b1..2bcada271 100644 --- a/packages/webapp/src/containers/Banking/Rules/RulesList/hooks.tsx +++ b/packages/webapp/src/containers/Banking/Rules/RulesList/hooks.tsx @@ -15,7 +15,7 @@ const applyToTypeAccessor = (rule) => { }; const conditionsAccessor = (rule) => ( - + {rule.conditions_formatted} ); diff --git a/packages/webapp/src/containers/Expenses/ExpensesLanding/components.tsx b/packages/webapp/src/containers/Expenses/ExpensesLanding/components.tsx index d03bde7a7..1a14d99cf 100644 --- a/packages/webapp/src/containers/Expenses/ExpensesLanding/components.tsx +++ b/packages/webapp/src/containers/Expenses/ExpensesLanding/components.tsx @@ -101,11 +101,11 @@ export function ActionsCell(props) { */ export function PublishAccessor(row) { return row.is_published ? ( - + ) : ( - + ); diff --git a/packages/webapp/src/containers/Items/components.tsx b/packages/webapp/src/containers/Items/components.tsx index 23c3c72e0..5d7b3a82f 100644 --- a/packages/webapp/src/containers/Items/components.tsx +++ b/packages/webapp/src/containers/Items/components.tsx @@ -72,7 +72,7 @@ export const SellPriceCell = ({ cell: { value } }) => { export const ItemTypeAccessor = (row) => { return row.type_formatted ? ( - + {row.type_formatted} ) : null; diff --git a/packages/webapp/src/containers/Purchases/PaymentsMade/PaymentForm/PaymentMadeFormProvider.tsx b/packages/webapp/src/containers/Purchases/PaymentsMade/PaymentForm/PaymentMadeFormProvider.tsx index 6a33713a7..7a7e215f4 100644 --- a/packages/webapp/src/containers/Purchases/PaymentsMade/PaymentForm/PaymentMadeFormProvider.tsx +++ b/packages/webapp/src/containers/Purchases/PaymentsMade/PaymentForm/PaymentMadeFormProvider.tsx @@ -46,12 +46,14 @@ function PaymentMadeFormProvider({ query, paymentMadeId, ...props }) { // Handle fetch specific payment made details. const { - data: { paymentMade: paymentMadeEditPage, entries: paymentEntriesEditPage }, + data: paymentMadeEditData, isFetching: isPaymentFetching, isLoading: isPaymentLoading, } = usePaymentMadeEditPage(paymentMadeId, { enabled: !!paymentMadeId, }); + const paymentMadeEditPage = paymentMadeEditData?.bill_payment; + const paymentEntriesEditPage = paymentMadeEditData?.entries; // Fetches the branches list. const { diff --git a/packages/webapp/src/containers/Sales/Estimates/EstimatesLanding/components.tsx b/packages/webapp/src/containers/Sales/Estimates/EstimatesLanding/components.tsx index 0d593a42b..811c54c7e 100644 --- a/packages/webapp/src/containers/Sales/Estimates/EstimatesLanding/components.tsx +++ b/packages/webapp/src/containers/Sales/Estimates/EstimatesLanding/components.tsx @@ -22,27 +22,27 @@ import { safeCallback } from '@/utils'; export const statusAccessor = (row) => ( - + - + - + - + - + diff --git a/packages/webapp/src/containers/Sales/PaymentsReceived/PaymentReceiveForm/PaymentReceiveFormProvider.tsx b/packages/webapp/src/containers/Sales/PaymentsReceived/PaymentReceiveForm/PaymentReceiveFormProvider.tsx index be79c1d64..1a9f6fe12 100644 --- a/packages/webapp/src/containers/Sales/PaymentsReceived/PaymentReceiveForm/PaymentReceiveFormProvider.tsx +++ b/packages/webapp/src/containers/Sales/PaymentsReceived/PaymentReceiveForm/PaymentReceiveFormProvider.tsx @@ -42,15 +42,15 @@ function PaymentReceiveFormProvider({ query, paymentReceiveId, ...props }) { // Fetches payment recevie details. const { - data: { - paymentReceive: paymentReceiveEditPage, - entries: paymentEntriesEditPage, - }, + data: paymentReceivedEditData, isLoading: isPaymentLoading, isFetching: isPaymentFetching, } = usePaymentReceiveEditPage(paymentReceiveId, { enabled: !!paymentReceiveId, }); + const paymentReceiveEditPage = paymentReceivedEditData?.data; + const paymentEntriesEditPage = paymentReceivedEditData?.entries + // Handle fetch accounts data. const { data: accounts, isLoading: isAccountsLoading } = useAccounts(); diff --git a/packages/webapp/src/hooks/query/paymentMades.tsx b/packages/webapp/src/hooks/query/paymentMades.tsx index 9f17a4a05..facd1ac54 100644 --- a/packages/webapp/src/hooks/query/paymentMades.tsx +++ b/packages/webapp/src/hooks/query/paymentMades.tsx @@ -1,5 +1,5 @@ // @ts-nocheck -import { useMutation, useQueryClient } from 'react-query'; +import { useMutation, useQuery, useQueryClient } from 'react-query'; import { useRequestQuery } from '../useQueryRequest'; import { transformPagination } from '@/utils'; import useApiRequest from '../useRequest'; @@ -66,16 +66,13 @@ export function useCreatePaymentMade(props) { const client = useQueryClient(); const apiRequest = useApiRequest(); - return useMutation( - (values) => apiRequest.post('bill-payments', values), - { - onSuccess: (res, values) => { - // Common invalidation queries. - commonInvalidateQueries(client); - }, - ...props, + return useMutation((values) => apiRequest.post('bill-payments', values), { + onSuccess: (res, values) => { + // Common invalidation queries. + commonInvalidateQueries(client); }, - ); + ...props, + }); } /** @@ -107,42 +104,28 @@ export function useDeletePaymentMade(props) { const client = useQueryClient(); const apiRequest = useApiRequest(); - return useMutation( - (id) => apiRequest.delete(`bill-payments/${id}`), - { - onSuccess: (res, id) => { - // Common invalidation queries. - commonInvalidateQueries(client); + return useMutation((id) => apiRequest.delete(`bill-payments/${id}`), { + onSuccess: (res, id) => { + // Common invalidation queries. + commonInvalidateQueries(client); - // Invalidate specific payment made. - client.invalidateQueries([t.PAYMENT_MADE, id]); - }, - ...props, + // Invalidate specific payment made. + client.invalidateQueries([t.PAYMENT_MADE, id]); }, - ); + ...props, + }); } /** * Retrieve specific payment made. */ -export function usePaymentMadeEditPage(id, props) { - return useRequestQuery( - [t.PAYMENT_MADE_EDIT_PAGE, id], - { - method: 'get', - url: `bill-payments/${id}/edit-page`, - }, - { - select: (res) => ({ - paymentMade: res.data.bill_payment, - entries: res.data.entries, - }), - defaultData: { - paymentMade: {}, - entries: [], - }, - ...props, - }, +export function usePaymentMadeEditPage( + id: number, + props: UseQueryOptions, +) { + const apiRequest = useApiRequest(); + return useQuery([t.PAYMENT_MADE_EDIT_PAGE, id], () => + apiRequest.get(`bill-payments/${id}/edit-page`).then((res) => res.data), ); } diff --git a/packages/webapp/src/hooks/query/paymentReceives.tsx b/packages/webapp/src/hooks/query/paymentReceives.tsx index 3bc316c4c..8560c3ab7 100644 --- a/packages/webapp/src/hooks/query/paymentReceives.tsx +++ b/packages/webapp/src/hooks/query/paymentReceives.tsx @@ -171,20 +171,10 @@ export function usePaymentReceive(id, props) { * @param {number} id - Payment receive id. */ export function usePaymentReceiveEditPage(id, props) { - return useRequestQuery( + const apiRequest = useApiRequest(); + return useQuery( [t.PAYMENT_RECEIVE_EDIT_PAGE, id], - { method: 'get', url: `payments-received/${id}/edit-page` }, - { - select: (res) => ({ - paymentReceive: res.data, - entries: res.data.entries, - }), - defaultData: { - paymentReceive: {}, - entries: [], - }, - ...props, - }, + () => apiRequest.get(`payments-received/${id}/edit-page`).then(res => res.data), ); }