getHuAssignStatus method

UnitAssignStatus getHuAssignStatus(
  1. List<HuStatus> huStatuses
)

Implementation

UnitAssignStatus getHuAssignStatus(List<HuStatus> huStatuses) {
  if (huStatuses.isEmpty) {
    return UnitAssignStatus.inactive;
  }

  List<HuStatus> activeStatuses = huStatuses
      .where((s) => s.inactive != true)
      .toList();

  if (activeStatuses.isNotEmpty) {
    List<int> numericStatuses = activeStatuses
        .map((s) => int.parse(s.statusId!.replaceAll(RegExp(r'[^0-9]'), '')))
        .toList();

    int maxStatus = numericStatuses.reduce(max);

    if (maxStatus >= 512 && maxStatus <= 520) {
      return UnitAssignStatus.assigned;
    } else if (maxStatus > 520) {
      return UnitAssignStatus.showOnly;
    } else if (maxStatus <= 511) {
      return UnitAssignStatus.waitingForScan;
    }
  }

  return UnitAssignStatus.inactive;
}