bharat_erp/lib/core/utils/active_option.dart
2026-07-16 15:18:59 +05:30

39 lines
1.1 KiB
Dart

// Shared helpers so entity lookup dropdowns omit inactive records.
// Do not use these for status-picker dropdowns (Active / Inactive choices).
const _inactiveStatuses = {
'inactive',
'locked',
'blacklisted',
'disabled',
};
/// Returns true when a raw API row should appear in a lookup dropdown.
bool isActiveOptionRow(Map<String, dynamic> item) {
if (item['is_active'] == false) return false;
if (item['isActive'] == false) return false;
final status = (item['status']?.toString() ?? '').trim().toLowerCase();
if (status.isEmpty) return true;
return !_inactiveStatuses.contains(status);
}
/// Active user suitable for manager / assignee dropdowns.
bool isActiveUserOption({
required String status,
required bool isActive,
}) {
return isActive && status.trim().toLowerCase() == 'active';
}
/// Active vendor suitable for PO / asset vendor dropdowns.
bool isActiveVendorOption({
required bool isActive,
String? status,
}) {
if (!isActive) return false;
final normalized = (status ?? '').trim().toLowerCase();
if (normalized.isEmpty) return true;
return !_inactiveStatuses.contains(normalized);
}