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 @@
+