<button
type="submit"
class="btn btn-default"
+ ng-if="!valid_refund"
ng-disabled="!payment_amount || invalid_check_number() || !gridControls.selectedItems().length || applyingPayment"
>[% l('Apply Payment') %]</button>
+ <button
+ type="submit"
+ class="btn btn-default"
+ ng-if="valid_refund"
+ ng-disabled="invalid_check_number() || !gridControls.selectedItems().length || applyingPayment"
+ >[% l('Issue Refund') %]</button>
</div>
</div>
</fieldset>
$scope.max_amount = 100000;
$scope.amount_verified = false;
$scope.disable_auto_print = false;
+ $scope.valid_refund = false;
// check receipt_on_pay setting default persisted
egCore.hatch.getItem('circ.bills.receiptonpay')
}
// update the item.payment_pending value each time the user
- // selects different transactions to pay against.
+ // selects different transactions to pay against. Also check
+ // if any selected items are valid for issuing a refund.
$scope.$watch(
function() {return $scope.gridControls.selectedItems()},
- function() {updatePendingColumn()},
+ function() {updatePendingColumn(); validateRefundability()},
true
);
}
}
+ function validateRefundability() {
+ var is_valid = false;
+ angular.forEach($scope.gridControls.selectedItems(), function(item) {
+ if (Number(item['summary.balance_owed']) < 0) is_valid = true;
+ });
+ $scope.valid_refund = is_valid;
+ }
+
// builds payment arrays ([xact_id, ammount]) for all transactions
// which have a pending payment amount.
function generatePayments() {