2/10/1
This commit is contained in:
@@ -3,6 +3,7 @@ import 'dart:convert';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:geolocator/geolocator.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||
import 'package:google_polyline_algorithm/google_polyline_algorithm.dart';
|
||||
@@ -63,7 +64,7 @@ class MapDriverController extends GetxController {
|
||||
bool isPassengerInfoWindow = false;
|
||||
bool isBtnRideBegin = false;
|
||||
bool isArrivedSend = true;
|
||||
bool isBtnPassengerWait = false;
|
||||
bool isdriverWaitTimeEnd = false;
|
||||
bool isRideFinished = false;
|
||||
bool isRideStarted = false;
|
||||
double passengerInfoWindow = Get.height * .35;
|
||||
@@ -211,11 +212,11 @@ class MapDriverController extends GetxController {
|
||||
progressInPassengerLocationFromDriver = i / (timeWaitingPassenger * 60);
|
||||
remainingTimeInPassengerLocatioWait = (timeWaitingPassenger * 60) - i;
|
||||
if (remainingTimeInPassengerLocatioWait == 0) {
|
||||
isBtnPassengerWait = true;
|
||||
print(isBtnPassengerWait);
|
||||
isdriverWaitTimeEnd = true;
|
||||
print(isdriverWaitTimeEnd);
|
||||
update();
|
||||
}
|
||||
print(isBtnPassengerWait);
|
||||
print(isdriverWaitTimeEnd);
|
||||
print(
|
||||
'remainingTimeInPassengerLocatioWait $remainingTimeInPassengerLocatioWait');
|
||||
|
||||
@@ -282,6 +283,48 @@ class MapDriverController extends GetxController {
|
||||
// 'RideIsBegin', box.read(BoxName.name).toString(), tokenPassenger);
|
||||
}
|
||||
|
||||
addWaittingTimeCostFromPassengerToDriverWallet() async {
|
||||
double distance2 = Geolocator.distanceBetween(
|
||||
latLngpassengerLocation.latitude,
|
||||
latLngpassengerLocation.longitude,
|
||||
Get.find<LocationController>().myLocation.latitude,
|
||||
Get.find<LocationController>().myLocation.longitude,
|
||||
);
|
||||
if (distance2 > 80) {
|
||||
Get.defaultDialog(
|
||||
title: 'Your are far from passenger location'.tr,
|
||||
middleText:
|
||||
'go to your passenger location before\nPassenger cancel trip'.tr,
|
||||
confirm: MyElevatedButton(
|
||||
title: 'Ok',
|
||||
onPressed: () {
|
||||
Get.back();
|
||||
}));
|
||||
} else {
|
||||
double cost =
|
||||
(distanceBetweenDriverAndPassengerWhenConfirm * .08) + (5 * .06);
|
||||
var res = await CRUD().post(link: AppLink.addDriverpayment, payload: {
|
||||
'rideId': rideId,
|
||||
'amount': cost.toString(),
|
||||
'payment_method': 'wait-cancel',
|
||||
'passengerID': passengerId,
|
||||
'driverID': box.read(BoxName.driverID).toString(),
|
||||
});
|
||||
if (res != 'failure') {
|
||||
Get.snackbar(
|
||||
'You will get cost of your work for this trip'.tr,
|
||||
'you gain $cost \$ in your wallet',
|
||||
backgroundColor: AppColor.deepPurpleAccent,
|
||||
);
|
||||
}
|
||||
await CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
||||
'passenger_id': passengerId,
|
||||
'balance': (cost * -1).toString()
|
||||
});
|
||||
Get.offAll(HomeCaptain());
|
||||
}
|
||||
}
|
||||
|
||||
void finishRideFromDriver() async {
|
||||
isRideFinished = true;
|
||||
isRideStarted = false;
|
||||
@@ -436,6 +479,7 @@ class MapDriverController extends GetxController {
|
||||
});
|
||||
}
|
||||
|
||||
double distanceBetweenDriverAndPassengerWhenConfirm = 0;
|
||||
getMap(String origin, destination) async {
|
||||
isLoading = false;
|
||||
|
||||
@@ -447,6 +491,8 @@ class MapDriverController extends GetxController {
|
||||
var response = await CRUD().getGoogleApi(link: url, payload: {});
|
||||
data = response['routes'][0]['legs'];
|
||||
print(data);
|
||||
distanceBetweenDriverAndPassengerWhenConfirm =
|
||||
(data[0]['distance']['value']) / 1000;
|
||||
final points =
|
||||
decodePolyline(response["routes"][0]["overview_polyline"]["points"]);
|
||||
for (int i = 0; i < points.length; i++) {
|
||||
|
||||
@@ -650,6 +650,7 @@ class MapPassengerController extends GetxController {
|
||||
late String licensePlate;
|
||||
changeConfirmRide() async {
|
||||
await getCarsLocationByPassenger();
|
||||
await getNearestDriverByPassengerLocation();
|
||||
|
||||
if (dataCarsLocationByPassenger != 'failure') {
|
||||
driverToken =
|
||||
@@ -1423,7 +1424,7 @@ class MapPassengerController extends GetxController {
|
||||
String distanceByPassenger = '';
|
||||
late Duration durationFromDriverToPassenger;
|
||||
|
||||
void getNearestDriverByPassengerLocation() async {
|
||||
getNearestDriverByPassengerLocation() async {
|
||||
if (polyLines.isEmpty || data.isEmpty) {
|
||||
if (rideConfirm == false) {
|
||||
double nearestDistance = double.infinity;
|
||||
@@ -1493,7 +1494,7 @@ class MapPassengerController extends GetxController {
|
||||
}
|
||||
|
||||
calculateDistanceBetweenPassengerAndDriverBeforecancelRide() async {
|
||||
// await getDriverCarsLocationToPassengerAfterApplied();
|
||||
await getDriverCarsLocationToPassengerAfterApplied();
|
||||
double distance = Geolocator.distanceBetween(
|
||||
passengerLocation.latitude,
|
||||
passengerLocation.longitude,
|
||||
|
||||
Reference in New Issue
Block a user