import 'package:flutter/material.dart'; import 'package:pad_scanner/services/code_parser.dart'; const batchPaichaMismatchMessage = '批量凑箱仅支持同排产号产品,请移除不属于同一批次的总排号'; bool isTransitTarget(CodeType? locationType, String? locationCode) { return locationType == CodeType.locationTransit || (locationCode?.startsWith('TRANS-') ?? false); } bool isTempStorageTarget(CodeType? locationType, String? locationCode) { return locationType == CodeType.locationTempStorage || (locationCode?.startsWith('B') ?? false); } String registrationSubmitLabel({ required bool isTransitTarget, required bool isMultiCode, required int zongpaiCount, }) { if (!isTransitTarget) { return isMultiCode && zongpaiCount > 1 ? '批量上架($zongpaiCount 条)' : '确 认 上 架'; } return isMultiCode && zongpaiCount > 1 ? '批量转运并凑箱($zongpaiCount 条)' : '转运并装箱'; } Color registrationSubmitColor({ required bool canSubmit, required bool isTransitTarget, required Color primaryColor, }) { if (!canSubmit) return Colors.grey.shade300; return isTransitTarget ? Colors.orange : primaryColor; } bool allSamePaicha(Iterable paichaNos) { String? first; for (final paichaNo in paichaNos) { if (paichaNo == null || paichaNo.isEmpty) return false; first ??= paichaNo; if (paichaNo != first) return false; } return first != null; }