Files
Holzleitner-Lieferservice-App/lib/model/article.dart
Dennis Nemec b19a6e1cd4 Initial draft
2025-09-20 16:14:06 +02:00

65 lines
1.5 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:hl_lieferservice/dto/article.dart';
class Article {
Article({
required this.name,
required this.articleNumber,
required this.amount,
required this.internalId,
required this.price,
required this.tax,
required this.scannable,
required this.scannedAmount,
required this.scannedRemovedAmount,
this.scannedDate,
this.removeNoteId
});
final String name;
final String articleNumber;
final int internalId;
int amount;
double price;
double tax;
bool scannable;
DateTime? scannedDate;
String? removeNoteId;
int scannedAmount;
int scannedRemovedAmount;
double getGrossPrice() {
return price * amount * ((100 + tax) / 100);
}
double getGrossPriceScanned() {
return price * scannedAmount * ((100 + tax) / 100);
}
bool unscanned() {
return scannedAmount == 0;
}
int getScannedAmount() {
return scannedAmount;
}
factory Article.fromDTO(ArticleDTO dto) {
return Article(
name: dto.name,
scannedAmount: int.parse(
dto.scannedAmount != "" ? dto.scannedAmount : "0",
),
scannedRemovedAmount: int.tryParse(dto.scannedRemovedAmount) ?? 0,
removeNoteId: dto.removeNoteId,
internalId: int.parse(dto.internalId),
articleNumber: dto.articleNr,
amount: int.parse(dto.quantity == "" ? "0" : dto.quantity),
price: double.parse(dto.price == "" ? "0.0" : dto.price),
scannable: dto.scannable,
tax: double.parse(dto.taxRate == "" ? "19" : dto.taxRate),
);
}
}