tankstop save Methode
This commit is contained in:
@@ -5,8 +5,7 @@ import 'package:geolocator/geolocator.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:get_storage/get_storage.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:tankguru_flutter_app_appwrite/utils/extensions/static_helper.dart';
|
||||
|
||||
import '../../utils/extensions/static_helper.dart';
|
||||
import '../../data/repository/location_repository.dart';
|
||||
import '../../data/repository/appwrite_repository.dart';
|
||||
import '../login/login_view.dart';
|
||||
@@ -36,6 +35,7 @@ class TankController extends GetxController {
|
||||
final kilometerStandEdittingController = TextEditingController();
|
||||
final mengeController = TextEditingController();
|
||||
final pricePerLiterController = TextEditingController();
|
||||
final ortController = TextEditingController();
|
||||
|
||||
final FocusNode firstFocusNode = FocusNode(); // Deklariere den FocusNode
|
||||
|
||||
@@ -70,6 +70,7 @@ class TankController extends GetxController {
|
||||
// den Standort in der UI anzuzeigen oder an einen Server zu senden.
|
||||
var map = {'lat': latitude, 'lng': longitude};
|
||||
rxOrtString.value = await _locationRepository.getNearbyLocation(map);
|
||||
ortController.text = rxOrtString.value;
|
||||
// Print Standortinformationen in der Konsole
|
||||
print('Nearby Location: ${rxOrtString.value}');
|
||||
print('Current Position: Latitude: $latitude, Longitude: $longitude');
|
||||
@@ -92,6 +93,7 @@ class TankController extends GetxController {
|
||||
kilometerStandEdittingController.clear();
|
||||
mengeController.clear();
|
||||
pricePerLiterController.clear();
|
||||
ortController.clear();
|
||||
}
|
||||
|
||||
String? validateKilometerStand(String? value) {
|
||||
@@ -124,6 +126,13 @@ class TankController extends GetxController {
|
||||
return null;
|
||||
}
|
||||
|
||||
String? validateOrt(String? value) {
|
||||
if (value == null || value.isEmpty) {
|
||||
return 'Bitte Ort eingeben...';
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
//Go to Login Page
|
||||
void logoutSessionAndGoToLoginPage() async {
|
||||
// Handle logout logic here
|
||||
@@ -140,8 +149,8 @@ class TankController extends GetxController {
|
||||
@override
|
||||
void onInit() {
|
||||
super.onInit();
|
||||
if (_dataBox.hasData('sessinId')) {
|
||||
rxSessionIdString(_dataBox.read('sessinId').toString());
|
||||
if (_dataBox.hasData('sessionId')) {
|
||||
rxSessionIdString(_dataBox.read('sessionId').toString());
|
||||
}
|
||||
// Rufe den Standort direkt beim Initialisieren des Controllers ab, falls gewünscht.
|
||||
fetchCurrentLocation();
|
||||
@@ -171,6 +180,7 @@ class TankController extends GetxController {
|
||||
kilometerStandEdittingController.dispose();
|
||||
mengeController.dispose();
|
||||
pricePerLiterController.dispose();
|
||||
ortController.dispose();
|
||||
firstFocusNode.dispose(); // Dispose den FocusNode
|
||||
}
|
||||
|
||||
@@ -206,18 +216,10 @@ class TankController extends GetxController {
|
||||
await _authRepository.createTankStop({
|
||||
'userId': _dataBox.read('userId'),
|
||||
'date': f.format(DateTime.parse(dateController.text)),
|
||||
'odometer': double.parse(
|
||||
double.parse(
|
||||
kilometerStandEdittingController.text,
|
||||
).toStringAsFixed(0),
|
||||
),
|
||||
'liters': double.parse(
|
||||
double.parse(mengeController.text).toStringAsFixed(2),
|
||||
),
|
||||
'pricePerLiter': double.parse(
|
||||
double.parse(pricePerLiterController.text).toStringAsFixed(2),
|
||||
),
|
||||
'location': rxOrtString.value,
|
||||
'odometer': kilometerStandEdittingController.text,
|
||||
'liters': mengeController.text,
|
||||
'pricePerLiter': pricePerLiterController.text,
|
||||
'location': ortController.text,
|
||||
}).then((models.Document document) {
|
||||
print('Tankstopp erfolgreich gespeichert: ${document.data}');
|
||||
messageToUser = 'Tankstopp erfolgreich gespeichert!';
|
||||
|
||||
@@ -181,9 +181,33 @@ class TankPage extends GetView<TankController> {
|
||||
child: Column(
|
||||
children: [
|
||||
TextFormField(
|
||||
validator: (value) => controller.validateOrt(value),
|
||||
focusNode: controller.firstFocusNode, // Setze den FocusNode
|
||||
//onTap: () => controller.selectDateTime(Get.context!),
|
||||
controller: controller.ortController,
|
||||
decoration: InputDecoration(
|
||||
labelText: 'Ort der Tankstelle',
|
||||
labelStyle: const TextStyle(color: Colors.white, fontSize: 20),
|
||||
errorStyle: const TextStyle(color: Colors.red, fontSize: 16),
|
||||
filled: true,
|
||||
fillColor: Colors.black.withValues(alpha: 0.9),
|
||||
focusedBorder: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
borderSide: const BorderSide(color: Colors.white, width: 2),
|
||||
),
|
||||
border: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
borderSide: BorderSide.none, // Entferne den Rand
|
||||
),
|
||||
),
|
||||
style: const TextStyle(color: Colors.white),
|
||||
),
|
||||
SizedBox(height: 20),
|
||||
TextFormField(
|
||||
//focusNode: controller.firstFocusNode, // Setze den FocusNode
|
||||
readOnly: true,
|
||||
onTap: () => controller.selectDateTime(Get.context!),
|
||||
keyboardType: TextInputType.text,
|
||||
controller: controller.dateController,
|
||||
decoration: InputDecoration(
|
||||
labelText: 'Datum',
|
||||
|
||||
Reference in New Issue
Block a user