This commit is contained in:
Hamza-Ayed
2023-12-03 10:35:27 +03:00
parent e095cf564a
commit 2501292424
50 changed files with 1841 additions and 730 deletions

View File

@@ -0,0 +1,93 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../../../constant/box_name.dart';
import '../../../../constant/links.dart';
import '../../../../constant/style.dart';
import '../../../../main.dart';
import '../../../../views/widgets/elevated_btn.dart';
import '../../../functions/crud.dart';
class HelpController extends GetxController {
bool isLoading = false;
final formKey = GlobalKey<FormState>();
final helpQuestionController = TextEditingController();
Map helpQuestionDate = {};
Map helpQuestionRepleyDate = {};
String status = '';
String qustion = '';
late int indexQuestion = 0;
getindex(int i, String qustion1) async {
indexQuestion = i;
qustion = qustion1;
update();
}
void addHelpQuestion() async {
isLoading = true;
update();
var res = await CRUD().post(link: AppLink.addhelpCenter, payload: {
'driverID': box.read(BoxName.driverID).toString(),
'helpQuestion': helpQuestionController.text
});
var d = jsonDecode(res);
// print(d);
isLoading = false;
update();
if (d['status'].toString() == 'success') {
getHelpQuestion();
// Get.snackbar('Feedback data saved successfully'.tr, '',
// backgroundColor: AppColor.greenColor,
// snackPosition: SnackPosition.BOTTOM);
}
}
void getHelpQuestion() async {
isLoading = true;
update();
var res = await CRUD().get(link: AppLink.gethelpCenter, payload: {
'driverID': box.read(BoxName.driverID).toString(),
});
if (res == "failure") {
// print(res);
Get.defaultDialog(
title: 'There is no help Question here'.tr,
titleStyle: AppStyle.title,
middleText: '',
confirm: MyElevatedButton(
title: 'Back',
onPressed: () {
Get.back();
Get.back();
}));
}
helpQuestionDate = jsonDecode(res);
isLoading = false;
update();
}
Future getHelpRepley(String id) async {
isLoading = true;
update();
var res = await CRUD().get(link: AppLink.getByIdhelpCenter, payload: {
'id': id,
});
print(res);
if (res == "failure") {
status = 'not yet';
isLoading = false;
update();
}
helpQuestionRepleyDate = jsonDecode(res);
isLoading = false;
update();
}
@override
void onInit() {
getHelpQuestion();
super.onInit();
}
}

View File

@@ -186,7 +186,7 @@ class HomeCaptainController extends GetxController {
getAllPayment() async {
var res = await CRUD().get(
link: AppLink.getAllPayment,
link: AppLink.getAllPaymentFromRide,
payload: {'driverID': box.read(BoxName.driverID).toString()});
data = jsonDecode(res);

View File

@@ -198,12 +198,26 @@ class MapDriverController extends GetxController {
'passengerID': passengerId,
'driverID': box.read(BoxName.driverID).toString(),
});
await CRUD().post(link: AppLink.updateRides, payload: {
'id': rideId,
'rideTimeStart': DateTime.now().toString(),
'status': 'Begin'
});
rideIsBeginPassengerTimer();
double pointsSubstraction = 0;
pointsSubstraction = double.parse(paymentAmount) * -100;
var res = await CRUD().post(link: AppLink.addDriversWallet, payload: {
'paymentID': 'rideId$rideId',
'amount': (pointsSubstraction).toString(),
'paymentMethod': paymentMethod,
'driverID': box.read(BoxName.driverID).toString(),
});
var d = jsonDecode(res);
print('...................');
print(d);
print('...................');
// FirebaseMessagesController().sendNotificationToAnyWithoutData(
// 'RideIsBegin', box.read(BoxName.name).toString(), tokenPassenger);
}
@@ -225,8 +239,10 @@ class MapDriverController extends GetxController {
'passengerId': passengerId,
'driverId': driverId
});
// FirebaseMessagesController().sendNotificationToAnyWithoutData(
// 'isRideFinished', box.read(BoxName.name).toString(), tokenPassenger);
FirebaseMessagesController().sendNotificationToAnyWithoutData(
'Captain Finish Trip',
box.read(BoxName.name).toString(),
tokenPassenger);
}
String canelString = '';

View File

@@ -347,7 +347,7 @@ class MapPassengerController extends GetxController {
}
void delayAndFetchRideStatus(String rideId) {
Timer(const Duration(seconds: 1), () async {
Timer(const Duration(milliseconds: 200), () async {
if (shouldFetch) {
// print('shouldFetch is =$shouldFetch');
var res = await CRUD()
@@ -357,13 +357,18 @@ class MapPassengerController extends GetxController {
print(decod['data']);
if (decod['data'].toString() == 'Apply') {
shouldFetch = false; // Stop further fetches
// rideConfirm = false;
rideConfirm = false;
update();
startTimer();
} else if (decod['data'].toString() == 'Refused') {
if (dataCarsLocationByPassenger.length > carsOrder) {
carsOrder++;
update();
carsOrder = carsOrder + 1;
update();
print(dataCarsLocationByPassenger['message'].length);
print(dataCarsLocationByPassenger['message']);
print(carsOrder);
if (carsOrder < dataCarsLocationByPassenger['message'].length) {
print('55555555555555555555');
changeConfirmRide();
} else {
Get.defaultDialog(
@@ -374,7 +379,7 @@ class MapPassengerController extends GetxController {
onPressed: () => Get.offAll(const MapPagePassenger()),
));
// cancelRide();
cancelRideAfterRejectFromAll();
}
} else {
delayAndFetchRideStatus(
@@ -548,6 +553,26 @@ class MapPassengerController extends GetxController {
update();
}
Future<void> cancelRideAfterRejectFromAll() async {
clearPlaces();
clearPolyline();
data = [];
await CRUD().post(link: AppLink.updateDriverOrder, payload: {
"order_id": rideId.toString(), // Convert to String
"status": 'Cancel'
});
rideConfirm = false;
shouldFetch = false;
isPassengerChosen = false;
isCashConfirmPageShown = false;
isCashSelectedBeforeConfirmRide = false;
timeToPassengerFromDriverAfterApplied = 0;
changeCancelRidePageShow();
remainingTime = 0;
update();
}
Future cancelRide() async {
print("rideConfirm=$rideConfirm");
@@ -558,8 +583,9 @@ class MapPassengerController extends GetxController {
changeCancelRidePageShow();
rideConfirm = false;
shouldFetch = false;
isCashSelectedBeforeConfirmRide = false;
isCashConfirmPageShown = false;
isPassengerChosen = false;
isCashSelectedBeforeConfirmRide = false;
timeToPassengerFromDriverAfterApplied = 0;
update();
} else {
@@ -573,6 +599,7 @@ class MapPassengerController extends GetxController {
rideConfirm = false;
shouldFetch = false;
isPassengerChosen = false;
isCashConfirmPageShown = false;
isCashSelectedBeforeConfirmRide = false;
timeToPassengerFromDriverAfterApplied = 0;
changeCancelRidePageShow();

View File

@@ -0,0 +1,73 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/constant/box_name.dart';
import 'package:ride/constant/links.dart';
import 'package:ride/controller/functions/crud.dart';
import 'package:ride/main.dart';
class CaptainWalletController extends GetxController {
bool isLoading = false;
Map walletDate = {};
Map walletDriverPointsDate = {};
final formKey = GlobalKey<FormState>();
String totalAmount = '0';
String totalPoints = '0';
Future getCaptainWalletFromRide() async {
isLoading = true;
update();
var res = await CRUD().get(
link: AppLink.getAllPaymentFromRide,
payload: {'driverID': box.read(BoxName.driverID)},
);
walletDate = jsonDecode(res);
totalAmount = walletDate['message'][0]['total_amount'].toString() == null
? '0'
: walletDate['message'][0]['total_amount'];
isLoading = false;
update();
}
Future getCaptainWalletFromBuyPoints() async {
isLoading = true;
update();
var res = await CRUD().get(
link: AppLink.getDriverPaymentPoints,
payload: {'driverID': box.read(BoxName.driverID)},
);
walletDriverPointsDate = jsonDecode(res);
totalPoints =
walletDriverPointsDate['message'][0]['total_amount'].toString();
isLoading = false;
update();
}
late String paymentID;
Future addDriverPayment(String paymentMethod, amount) async {
var res = await CRUD().post(link: AppLink.addDriverPaymentPoints, payload: {
'driverID': box.read(BoxName.driverID).toString(),
'amount': amount.toString(),
'payment_method': paymentMethod.toString(),
});
var d = jsonDecode(res);
paymentID = d['message'].toString();
// print(paymentID);
}
Future addDriverWallet(String paymentMethod, point) async {
await CRUD().post(link: AppLink.addDriversWallet, payload: {
'driverID': box.read(BoxName.driverID).toString(),
'paymentID': paymentID.toString(),
'amount': point,
'paymentMethod': paymentMethod.toString(),
});
}
@override
void onInit() {
getCaptainWalletFromRide();
getCaptainWalletFromBuyPoints();
super.onInit();
}
}

View File

@@ -19,11 +19,6 @@ class CreditCardController extends GetxController {
String? expiryDate = await SecureStorage().readData(BoxName.expiryDate);
String? cvvCode = await SecureStorage().readData(BoxName.cvvCode);
print('cardNumber: $cardNumber');
print('cardHolderName: $cardHolderName');
print('expiryDate: $expiryDate');
print('cvvCode: $cvvCode');
if (cvvCode != null && cvvCode.isNotEmpty) {
final maskedCardNumber = DigitObscuringFormatter()
.formatEditUpdate(
@@ -32,8 +27,6 @@ class CreditCardController extends GetxController {
)
.text;
print('maskedCardNumber: $maskedCardNumber');
cardNumberController.text = maskedCardNumber;
cardHolderNameController.text = cardHolderName ?? '';
expiryDateController.text = expiryDate ?? '';