|
@@ -7,7 +7,7 @@ import { PaymentState } from '../payment-state-machine/payment-state';
|
|
|
/**
|
|
/**
|
|
|
* Returns true if the Order total is covered by Payments in the specified state.
|
|
* Returns true if the Order total is covered by Payments in the specified state.
|
|
|
*/
|
|
*/
|
|
|
-export function orderTotalIsCovered(order: Order, state: PaymentState): boolean {
|
|
|
|
|
|
|
+export function orderTotalIsCovered(order: Order, state: PaymentState | PaymentState[]): boolean {
|
|
|
const paymentsTotal = totalCoveredByPayments(order, state);
|
|
const paymentsTotal = totalCoveredByPayments(order, state);
|
|
|
return paymentsTotal === order.totalWithTax;
|
|
return paymentsTotal === order.totalWithTax;
|
|
|
}
|
|
}
|
|
@@ -15,9 +15,11 @@ export function orderTotalIsCovered(order: Order, state: PaymentState): boolean
|
|
|
/**
|
|
/**
|
|
|
* Returns the total amount covered by all Payments (minus any refunds)
|
|
* Returns the total amount covered by all Payments (minus any refunds)
|
|
|
*/
|
|
*/
|
|
|
-export function totalCoveredByPayments(order: Order, state?: PaymentState): number {
|
|
|
|
|
|
|
+export function totalCoveredByPayments(order: Order, state?: PaymentState | PaymentState[]): number {
|
|
|
const payments = state
|
|
const payments = state
|
|
|
- ? order.payments.filter(p => p.state === state)
|
|
|
|
|
|
|
+ ? Array.isArray(state)
|
|
|
|
|
+ ? order.payments.filter(p => state.includes(p.state))
|
|
|
|
|
+ : order.payments.filter(p => p.state === state)
|
|
|
: order.payments.filter(p => p.state !== 'Error' && p.state !== 'Declined');
|
|
: order.payments.filter(p => p.state !== 'Error' && p.state !== 'Declined');
|
|
|
let total = 0;
|
|
let total = 0;
|
|
|
for (const payment of payments) {
|
|
for (const payment of payments) {
|