65 lines
1.5 KiB
Dart
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),
|
|
);
|
|
}
|
|
}
|