35 lines
843 B
Dart
35 lines
843 B
Dart
import 'package:hl_lieferservice/dto/component.dart';
|
|
|
|
class Component {
|
|
Component({
|
|
required this.articleNumber,
|
|
required this.name,
|
|
required this.quantity,
|
|
required this.position,
|
|
this.scannedAmount = 0,
|
|
});
|
|
|
|
final String articleNumber;
|
|
final String name;
|
|
final double quantity;
|
|
final double position;
|
|
|
|
int scannedAmount;
|
|
|
|
/// Required scan count derived from BOM quantity (e.g. 7.0 → 7).
|
|
int get requiredAmount => quantity.ceil();
|
|
|
|
bool get isFullyScanned => scannedAmount >= requiredAmount;
|
|
|
|
bool get needsScanning => scannedAmount < requiredAmount;
|
|
|
|
factory Component.fromDTO(ComponentDTO dto) {
|
|
return Component(
|
|
articleNumber: dto.articleNr,
|
|
name: dto.name,
|
|
quantity: double.tryParse(dto.quantity) ?? 0.0,
|
|
position: double.tryParse(dto.pos) ?? 0.0,
|
|
);
|
|
}
|
|
}
|