diff --git a/src/main/com/topcoder/web/tc/controller/legacy/pacts/controller/request/member/PaymentHistory.java b/src/main/com/topcoder/web/tc/controller/legacy/pacts/controller/request/member/PaymentHistory.java index 75471ed4d7..b48991ab4f 100644 --- a/src/main/com/topcoder/web/tc/controller/legacy/pacts/controller/request/member/PaymentHistory.java +++ b/src/main/com/topcoder/web/tc/controller/legacy/pacts/controller/request/member/PaymentHistory.java @@ -63,6 +63,8 @@ public class PaymentHistory extends BaseProcessor implements PactsConstants { public static final String XLS_FORMAT = "xls"; public static final String FULL_LIST = "full_list"; public static final String PAYMENTS = "payments"; + public static final String OWED_PAYMENTS = "owedPayments"; + public static final String TOTAL_OWED_PAYMENTS = "totalOwedPayments"; /** *

A String providing the name for request attribute holding the ID of a payment method preferred by @@ -150,9 +152,17 @@ protected void businessProcessing() throws TCWebException { List removeNonPending = new ArrayList(); + List owedPayments = new ArrayList(); + double totalOwedPayments = 0.0; + Date currentDate = new Date(); + for (BasePayment payment : payments) { if (payment.getPaymentType() == 3 || payment.getPaymentType() == 5) { removePayments.add(payment); + } else if ((payment.getCurrentStatus().equals(PaymentStatusFactory.createStatus(PaymentStatus.OWED_PAYMENT_STATUS))) && + !(payment.getDueDate().after(currentDate))) { + owedPayments.add(payment.getId()); + totalOwedPayments += payment.getNetAmount(); } else { if (!(payment.getCurrentStatus().equals(PaymentStatusFactory.createStatus(PaymentStatus.OWED_PAYMENT_STATUS))) && !(payment.getCurrentStatus().equals(PaymentStatusFactory.createStatus(PaymentStatus.ENTERED_INTO_PAYMENT_SYSTEM_PAYMENT_STATUS))) && @@ -184,6 +194,8 @@ protected void businessProcessing() throws TCWebException { getRequest().setAttribute("NUM_TOTAL", payments.size()); getRequest().setAttribute("NUM_PER_PAGE", numRecords); getRequest().setAttribute("NUM_PENDING", pendingPayments); + getRequest().setAttribute("OWED_PAYMENTS", owedPayments); + getRequest().setAttribute("TOTAL_OWED_PAYMENTS", totalOwedPayments); if (exportToExcel) { produceXLS(payments); diff --git a/src/main/com/topcoder/web/tc/view/pacts/client/PaymentHistory.jsp b/src/main/com/topcoder/web/tc/view/pacts/client/PaymentHistory.jsp index c0c76a03b5..0a4dd42863 100755 --- a/src/main/com/topcoder/web/tc/view/pacts/client/PaymentHistory.jsp +++ b/src/main/com/topcoder/web/tc/view/pacts/client/PaymentHistory.jsp @@ -56,6 +56,8 @@ " var="numTotal" /> " var="numPerPage" /> " var="numPending" /> +" var="owedPayments" /> +" var="totalOwedPayments" /> @@ -81,6 +83,9 @@ MINIMUM_PAYMENT_ACCRUAL_AMOUNT = ${MINIMUM_PAYMENT_ACCRUAL_AMOUNT}; PAY_ME_CONFIRMATION_TEMPLATE = '${paymentConfirmationTemplate}'; + var owedPayments = ${owedPayments}; + var totalOwedPayments = ${totalOwedPayments}; + function next() { var myForm = document.f; myForm.<%=DataAccessConstants.START_RANK%>.value = ${requestScope[defaults][startRank]} + parseInt(myForm.<%=DataAccessConstants.NUMBER_RECORDS%>.value); @@ -139,6 +144,23 @@ $('.payable[value="' + paymentId + '"]').click(); }); + $('.checkAll').click(function () { + if (this.checked) { + $('.checkAll').attr('checked', true); + $('.payable').each(function () { + var paymentId = this.value; + $('[data-name="${PAYMENT_ID}"][data-value="'+paymentId+'"]').removeClass('checked'); + $('[data-name="${PAYMENT_ID}"][data-value="'+paymentId+'"]').addClass('checked'); + }); + } else { + $('.checkAll').attr('checked', false); + $('.payable').each(function () { + var paymentId = this.value; + $('[data-name="${PAYMENT_ID}"][data-value="'+paymentId+'"]').removeClass('checked'); + }); + } + }); + $('.payable').click(function() { var hasSelected = false; $('.payable:checked').each(function () { @@ -151,6 +173,11 @@ error = $('').attr('class', 'bigRed').html('The total net amount for selected payments is less than $25'); $("#PaymentHistoryForm").prev().append('
').append(error) } + if ($('.checkable:checked').length == $('.checkable').length) { + $('.checkAll').attr('checked', true); + } else if ($('.checkable').not(':checked').length == $('.checkable').length) { + $('.checkAll').attr('checked', false); + } }); }); } @@ -224,6 +251,12 @@ +

+
+ +
+
+ <%-- desktop tabs --%>