Recognize B-prefix location codes as temp storage shelves. Add purple color scheme, conflict detection for temp_stored status, and updated submit/dialog logic for temp storage target handling. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
47 lines
1.4 KiB
Dart
47 lines
1.4 KiB
Dart
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<String?> 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;
|
|
}
|