From cf33eb9053ae81a3e16f9656da7911d1d5f75b44 Mon Sep 17 00:00:00 2001 From: jpasta Date: Fri, 25 Jul 2025 11:46:14 -0700 Subject: [PATCH] bugfix/AB#29607-FixAmounts --- .../UpdatePaymentRequestStatus.cshtml | 2 +- .../UpdatePaymentRequestStatus.cshtml.cs | 2 +- .../UpdatePaymentRequestStatusModal.js | 20 +++++++++---------- .../CreatePaymentRequests.cshtml | 2 +- .../CreatePaymentRequestsModal.js | 7 +++++-- .../Pages/PaymentRequests/Index.js | 5 ++++- .../Shared/Components/ActionBar/ActionBar.cs | 2 -- .../Shared/Components/ActionBar/Default.js | 6 +++++- 8 files changed, 27 insertions(+), 19 deletions(-) diff --git a/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentApprovals/UpdatePaymentRequestStatus.cshtml b/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentApprovals/UpdatePaymentRequestStatus.cshtml index 1a6ed5962..d3804689d 100644 --- a/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentApprovals/UpdatePaymentRequestStatus.cshtml +++ b/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentApprovals/UpdatePaymentRequestStatus.cshtml @@ -45,7 +45,7 @@ - + diff --git a/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentApprovals/UpdatePaymentRequestStatus.cshtml.cs b/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentApprovals/UpdatePaymentRequestStatus.cshtml.cs index bdfaeba7b..c4cbd61a5 100644 --- a/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentApprovals/UpdatePaymentRequestStatus.cshtml.cs +++ b/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentApprovals/UpdatePaymentRequestStatus.cshtml.cs @@ -41,7 +41,7 @@ public class UpdatePaymentRequestStatus( public decimal TotalAmount { get; set; } [BindProperty] - public string Note { get; set; } = string.Empty; + public string? Note { get; set; } = string.Empty; public List SelectedPaymentIds { get; set; } = new(); public string FromStatusText { get; set; } = string.Empty; diff --git a/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentApprovals/UpdatePaymentRequestStatusModal.js b/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentApprovals/UpdatePaymentRequestStatusModal.js index 51e632b2d..8026351fd 100644 --- a/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentApprovals/UpdatePaymentRequestStatusModal.js +++ b/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentApprovals/UpdatePaymentRequestStatusModal.js @@ -1,10 +1,11 @@ +const upatePaymentNumberFormatter = createNumberFormatter(); function removeApplicationPaymentApproval(applicationId, groupId) { let $container = $('#' + applicationId); $container.remove(); $('#' + applicationId).remove(); - let applicationCount = $('#ApplicationCount').val(); + let applicationCount = $('#ApplicationCount').val(); let groupCount = $(`#${groupId}_count`).val(); $(`#${groupId}_count`).val(groupCount - 1); $('#ApplicationCount').val(applicationCount - 1); @@ -39,7 +40,7 @@ function removeApplicationPaymentApproval(applicationId, groupId) { $(`#${groupId}_container .payment-status-transition`).css("display", "none"); } - calculateTotalAmount(); + calculateUpdateTotalAmount(); } function closePaymentModal() { @@ -106,16 +107,15 @@ function getStatusText(data) { } } -function calculateTotalAmount() { +function calculateUpdateTotalAmount() { let total = 0; $('.amount').each(function () { - let value = parseFloat($(this).val().replace(/,/g, '')) || 0; + // Remove commas and $ symbols before parsing + let rawValue = $(this).val().replace(/[$,]/g, ''); + let value = parseFloat(rawValue) || 0; total += value; + this.value = upatePaymentNumberFormatter.format(value); }); - $('.totalAmount').val(total.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })); + let totalFormatted = upatePaymentNumberFormatter.format(total); + $('#UpdateTotalAmount').val(totalFormatted); } - - - - - diff --git a/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentRequests/CreatePaymentRequests.cshtml b/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentRequests/CreatePaymentRequests.cshtml index c3c3acb75..f59a90e20 100644 --- a/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentRequests/CreatePaymentRequests.cshtml +++ b/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentRequests/CreatePaymentRequests.cshtml @@ -27,7 +27,7 @@ - + diff --git a/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentRequests/CreatePaymentRequestsModal.js b/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentRequests/CreatePaymentRequestsModal.js index 77857084b..26eb08010 100644 --- a/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentRequests/CreatePaymentRequestsModal.js +++ b/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentRequests/CreatePaymentRequestsModal.js @@ -1,3 +1,4 @@ +let createPaymentNumberFormatter = createNumberFormatter(); function removeApplicationPaymentRequest(applicationId) { let $container = $('#' + applicationId); @@ -61,5 +62,7 @@ function calculateTotalAmount() { let value = parseFloat($(this).val().replace(/,/g, '')) || 0; total += value; }); - $('.totalAmount').val(total.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })); -} \ No newline at end of file + + let totalFormatted = createPaymentNumberFormatter.format(total); + $('#TotalAmount').val(totalFormatted); +} diff --git a/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentRequests/Index.js b/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentRequests/Index.js index 19f996a52..eacb87611 100644 --- a/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentRequests/Index.js +++ b/applications/Unity.GrantManager/modules/Unity.Payments/src/Unity.Payments.Web/Pages/PaymentRequests/Index.js @@ -32,6 +32,10 @@ $(function () { viewUrl: 'PaymentApprovals/UpdatePaymentRequestStatus', }); + paymentRequestStatusModal.onOpen(function () { + calculateUpdateTotalAmount(); + }); + let selectedPaymentIds = []; let actionButtons = [ @@ -719,7 +723,6 @@ $(function () { }); - let casPaymentResponseModal = new abp.ModalManager({ viewUrl: '../PaymentRequests/CasPaymentRequestResponse' }); diff --git a/applications/Unity.GrantManager/src/Unity.GrantManager.Web/Views/Shared/Components/ActionBar/ActionBar.cs b/applications/Unity.GrantManager/src/Unity.GrantManager.Web/Views/Shared/Components/ActionBar/ActionBar.cs index fe25b08dd..fc08087d5 100644 --- a/applications/Unity.GrantManager/src/Unity.GrantManager.Web/Views/Shared/Components/ActionBar/ActionBar.cs +++ b/applications/Unity.GrantManager/src/Unity.GrantManager.Web/Views/Shared/Components/ActionBar/ActionBar.cs @@ -43,8 +43,6 @@ public override void ConfigureBundle(BundleConfigurationContext context) .AddIfNotContains("/Pages/PaymentRequests/CreatePaymentRequestsModal.js"); context.Files .AddIfNotContains("/libs/jquery-maskmoney/dist/jquery.maskMoney.min.js"); - context.Files - .AddIfNotContains("/Pages/PaymentApprovals/UpdatePaymentRequestStatusModal.js"); context.Files .AddIfNotContains("/Pages/BulkApprovals/ApproveApplicationsModal.js"); } diff --git a/applications/Unity.GrantManager/src/Unity.GrantManager.Web/Views/Shared/Components/ActionBar/Default.js b/applications/Unity.GrantManager/src/Unity.GrantManager.Web/Views/Shared/Components/ActionBar/Default.js index 7c9c06ae0..4b7efbc61 100644 --- a/applications/Unity.GrantManager/src/Unity.GrantManager.Web/Views/Shared/Components/ActionBar/Default.js +++ b/applications/Unity.GrantManager/src/Unity.GrantManager.Web/Views/Shared/Components/ActionBar/Default.js @@ -329,7 +329,11 @@ $(function () { 'The application/s payment request has been successfully submitted.', 'Payment' ); - PubSub.publish("refresh_application_list"); + PubSub.publish("refresh_application_list"); }); + + applicationPaymentRequestModal.onOpen(function () { + calculateTotalAmount(); + }); });