All files / libs/payout-calculation/statements/shared/src/lib/payments should-show-payments.ts

92.59% Statements 25/27
85.71% Branches 6/7
100% Functions 1/1
92.59% Lines 25/27

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 281x 1x 1x 1x 12x 12x 12x 12x     12x 12x 12x 12x 12x 12x 3x 3x 9x 9x 12x 6x 6x 6x 3x 3x 3x  
import { PaymentCategory, type PaymentAmountsByCategory } from '@amalia/core/types';
import { roundNumber } from '@amalia/kernel/intl/formatters';
 
export const shouldShowPayment = (
  allAmounts: Partial<PaymentAmountsByCategory> | undefined,
  category: PaymentCategory,
): boolean => {
  if (!allAmounts) {
    return false;
  }
 
  const categoryAmount = allAmounts[category];
  const roundedCategoryAmount = roundNumber(categoryAmount ?? 0);
 
  // Show future payments if different than 0
  if (category === PaymentCategory.hold) {
    return roundedCategoryAmount !== 0;
  }
 
  // Show if different than achievement
  if (category === PaymentCategory.paid) {
    const achievedAmount = roundNumber(allAmounts[PaymentCategory.achievement]);
    return roundedCategoryAmount !== achievedAmount;
  }
 
  return categoryAmount !== undefined;
};