export function accountUnique()

in src/app/customers/detail/payroll/form/validator/account-unique.validator.ts [23:46]


export function accountUnique(group: FormGroup): ValidationErrors | null {
  const mainAccountNumber: string = group.controls.mainAccountNumber.value;
  const payrollAllocations: PayrollAllocation[] = group.controls.payrollAllocations.value;

  if (isEmptyInputValue(mainAccountNumber)) {
    return;
  }

  const numbers = payrollAllocations
    .filter(allocation => allocation.accountNumber.length > 0)
    .map(allocation => allocation.accountNumber);

  const set = new Set();

  numbers.forEach(number => set.add(number));

  if (numbers.indexOf(mainAccountNumber) > -1 || set.size !== numbers.length) {
    return {
      accountUnique: true
    };
  }

  return null;
}