diff --git a/src/webparts/requestPortal/forms/PaymentRequest/PaymentRequestForm.tsx b/src/webparts/requestPortal/forms/PaymentRequest/PaymentRequestForm.tsx index c6514d5..81b5229 100644 --- a/src/webparts/requestPortal/forms/PaymentRequest/PaymentRequestForm.tsx +++ b/src/webparts/requestPortal/forms/PaymentRequest/PaymentRequestForm.tsx @@ -43,6 +43,7 @@ import { approvalListTitle, approvalListTitleForListId, dataListTitle, dataListT import { FORM_ID, IFormData, EMPTY_DATA, SetField } from './model'; import { savePaymentRequest, paymentRequestApprovalService } from './submit'; import { loadPaymentRequest } from './load'; +import { loadPreviousPayments } from './services/previousPayments.service'; import { validatePayment } from './validation'; import { useBasisSelection } from './useBasisSelection'; import { useInvoiceFlow } from './useInvoiceFlow'; @@ -137,6 +138,16 @@ const PaymentRequestForm: React.FC = ({ setRequestStatus(loaded.status); setRequestCode(loaded.code || undefined); if (loaded.code) onCodeLoaded?.(loaded.code); + // В элементе лежит снимок прежних оплат на момент сохранения. Пока заявку + // ещё правят (черновик, возврат), перечитываем их: по основанию могли + // подать новые, а лимит суммы должен считаться по актуальным. + if (isEditableStatus(loaded.status) && loaded.data.BasisKey) { + loadPreviousPayments(loaded.data.BasisKey, editId) + .then((previous) => { + if (alive) patch({ PreviousPayments: previous }); + }) + .catch(() => undefined); // остаётся снимок — лучше, чем пустая таблица + } }) .catch((e) => { if (alive) submit.setError(`Не удалось загрузить заявку №${editId}: ${friendlyErrorMessage(e)}`);