update edit and list and detail view
This commit is contained in:
@@ -5,13 +5,13 @@ import '../helpers/filament_repository.dart';
|
||||
|
||||
class EditController extends GetxController {
|
||||
Rx<FilamentModel?> originalFilament = Rx<FilamentModel?>(null);
|
||||
|
||||
|
||||
// Form Controllers
|
||||
final nameController = TextEditingController();
|
||||
final typeController = TextEditingController();
|
||||
final colorController = TextEditingController();
|
||||
final weightController = TextEditingController();
|
||||
final weightUsedController = TextEditingController();
|
||||
final currentUsageController = TextEditingController();
|
||||
final priceController = TextEditingController();
|
||||
final manufacturerController = TextEditingController();
|
||||
final purchaseDateController = TextEditingController();
|
||||
@@ -20,6 +20,9 @@ class EditController extends GetxController {
|
||||
final printingTempController = TextEditingController();
|
||||
final bedTempController = TextEditingController();
|
||||
|
||||
// Reactive color for UI updates
|
||||
final selectedColor = 'White'.obs;
|
||||
|
||||
// Validation
|
||||
final formKey = GlobalKey<FormState>();
|
||||
final isSaving = false.obs;
|
||||
@@ -27,6 +30,7 @@ class EditController extends GetxController {
|
||||
// Available options
|
||||
final List<String> filamentTypes = [
|
||||
'PLA',
|
||||
'PLA+',
|
||||
'ABS',
|
||||
'PETG',
|
||||
'TPU',
|
||||
@@ -64,7 +68,8 @@ class EditController extends GetxController {
|
||||
if (filament != null) {
|
||||
nameController.text = filament.name;
|
||||
typeController.text = filament.type;
|
||||
colorController.text = filament.color;
|
||||
selectedColor.value = filament.color;
|
||||
selectedColor.value = filament.color;
|
||||
weightController.text = filament.weight.toString();
|
||||
weightUsedController.text = filament.weightUsed.toString();
|
||||
priceController.text = filament.price.toString();
|
||||
@@ -83,26 +88,33 @@ class EditController extends GetxController {
|
||||
isSaving.value = true;
|
||||
|
||||
try {
|
||||
// Berechne den neuen Gesamtverbrauch
|
||||
final currentWeightUsed = double.tryParse(weightUsedController.text) ?? 0;
|
||||
final additionalUsage = double.tryParse(currentUsageController.text) ?? 0;
|
||||
final totalWeightUsed = currentWeightUsed + additionalUsage;
|
||||
|
||||
final updatedFilament = FilamentModel(
|
||||
id: originalFilament.value?.id ?? DateTime.now().millisecondsSinceEpoch.toString(),
|
||||
id:
|
||||
originalFilament.value?.id ??
|
||||
DateTime.now().millisecondsSinceEpoch.toString(),
|
||||
name: nameController.text.trim(),
|
||||
type: typeController.text.trim(),
|
||||
color: colorController.text.trim(),
|
||||
color: selectedColor.value.trim(),
|
||||
weight: double.tryParse(weightController.text) ?? 0,
|
||||
weightUsed: double.tryParse(weightUsedController.text) ?? 0,
|
||||
weightUsed: totalWeightUsed,
|
||||
price: double.tryParse(priceController.text) ?? 0,
|
||||
manufacturer: manufacturerController.text.trim().isEmpty
|
||||
? null
|
||||
manufacturer: manufacturerController.text.trim().isEmpty
|
||||
? null
|
||||
: manufacturerController.text.trim(),
|
||||
purchaseDate: purchaseDateController.text.trim().isEmpty
|
||||
? null
|
||||
purchaseDate: purchaseDateController.text.trim().isEmpty
|
||||
? null
|
||||
: purchaseDateController.text.trim(),
|
||||
notes: notesController.text.trim().isEmpty
|
||||
? null
|
||||
notes: notesController.text.trim().isEmpty
|
||||
? null
|
||||
: notesController.text.trim(),
|
||||
pices: int.tryParse(piecesController.text),
|
||||
printingTemp: int.tryParse(printingTempController.text),
|
||||
bedTemp: int.tryParse(bedTempController.text),
|
||||
pices: int.tryParse(piecesController.text) ?? 0,
|
||||
printingTemp: int.tryParse(printingTempController.text) ?? 0,
|
||||
bedTemp: int.tryParse(bedTempController.text) ?? 0,
|
||||
);
|
||||
|
||||
bool success;
|
||||
@@ -116,7 +128,7 @@ class EditController extends GetxController {
|
||||
Get.back(result: updatedFilament);
|
||||
Get.snackbar(
|
||||
'Erfolg',
|
||||
originalFilament.value != null
|
||||
originalFilament.value != null
|
||||
? 'Filament wurde aktualisiert'
|
||||
: 'Filament wurde erstellt',
|
||||
snackPosition: SnackPosition.BOTTOM,
|
||||
@@ -149,9 +161,9 @@ class EditController extends GetxController {
|
||||
void onClose() {
|
||||
nameController.dispose();
|
||||
typeController.dispose();
|
||||
colorController.dispose();
|
||||
weightController.dispose();
|
||||
weightUsedController.dispose();
|
||||
currentUsageController.dispose();
|
||||
priceController.dispose();
|
||||
manufacturerController.dispose();
|
||||
purchaseDateController.dispose();
|
||||
|
||||
Reference in New Issue
Block a user