This commit is contained in:
Hamza-Ayed
2023-11-27 00:08:10 +03:00
parent a8d6c509c1
commit e095cf564a
19 changed files with 782 additions and 305 deletions

View File

@@ -0,0 +1,48 @@
import 'dart:convert';
import 'package:get/get.dart';
import '../../../constant/box_name.dart';
import '../../../constant/links.dart';
import '../../../main.dart';
import '../../../views/home/Captin/history/history_details_page.dart';
import '../../functions/crud.dart';
class HistoryCaptainController extends GetxController {
bool isloading = false;
Map historyData = {};
Map historyDetailsData = {};
late String orderID;
getOrderId(String orderId) {
orderID = orderId;
update();
}
getHistory() async {
isloading = true;
var res = await CRUD().get(
link: AppLink.getDriverOrder,
payload: {'driver_id': box.read(BoxName.driverID)});
historyData = jsonDecode(res);
print(historyData);
isloading = false;
update();
}
getHistoryDetails(String orderId) async {
isloading = true;
var res = await CRUD()
.get(link: AppLink.getRideOrderID, payload: {'id': orderId});
historyDetailsData = jsonDecode(res);
print(historyDetailsData);
isloading = false;
update();
Get.to(() => HistoryDetailsPage());
}
@override
void onInit() {
getHistory();
super.onInit();
}
}

View File

@@ -3,9 +3,11 @@ import 'dart:math';
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/controller/functions/ocr_controller.dart';
import 'package:ride/main.dart';
import 'package:ride/views/auth/captin/login_captin.dart';
import 'package:ride/views/auth/captin/verify_email_captain.dart';
@@ -139,6 +141,14 @@ class RegisterCaptainController extends GetxController {
'registrationDate': registrationDate,
});
print(jsonDecode(res));
box.write(BoxName.vin, vin);
box.write(BoxName.make, make);
box.write(BoxName.model, model);
box.write(BoxName.year, year);
box.write(BoxName.expirationDate, expirationDate);
box.write(BoxName.color, color);
box.write(BoxName.owner, owner);
box.write(BoxName.registrationDate, registrationDate);
isLoading = false;
update();
if (jsonDecode(res)['status'] == 'success') {
@@ -166,6 +176,10 @@ class RegisterCaptainController extends GetxController {
update();
if (jsonDecode(res)['status'] == 'success') {
print('sdfffffffffff');
box.write(BoxName.dobDriver, dob);
box.write(BoxName.sexDriver, sex);
box.write(BoxName.phoneDriver, phoneController.text);
box.write(BoxName.lastNameDriver, name.split(' ')[0]);
int randomNumber = Random().nextInt(100000) + 1;
await CRUD().post(link: AppLink.sendVerifyEmail, payload: {
'email': emailController.text,

View File

@@ -26,14 +26,13 @@ class CRUD {
// 'Basic ${base64Encode(utf8.encode(basicAuthCredentials.toString()))}',
},
);
//print("-----basicAuthCredentials----" + AK.basicAuthCredentials.toString());
//print("-----request----" + response.request.toString());
//print("-----headers-----" + response.headers.toString());
//print("-----payload-----" + payload.toString());
// print("-----request----" + response.request.toString());
// print("-----headers-----" + response.headers.toString());
// print("-----payload-----" + payload.toString());
if (response.statusCode == 200) {
var jsonData = jsonDecode(response.body);
if (jsonData['status'] == 'success') {
// //print(jsonData);
// print(jsonData);
return response.body;
}

View File

@@ -6,20 +6,16 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:image_picker/image_picker.dart';
import 'package:http/http.dart' as http;
import 'package:path/path.dart' as path;
import 'package:path_provider/path_provider.dart' as path_provider;
import 'package:ride/constant/api_key.dart';
import 'package:ride/constant/box_name.dart';
import 'package:ride/constant/colors.dart';
import 'package:ride/constant/credential.dart';
import 'package:ride/constant/info.dart';
import 'package:ride/constant/links.dart';
import 'package:ride/constant/style.dart';
import 'package:ride/constant/table_names.dart';
import 'package:ride/env/env.dart';
import 'package:ride/main.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
import '../../constant/links.dart';
import '../../views/auth/captin/car_license_page.dart';
import 'launch.dart';
@@ -232,6 +228,7 @@ class ScanDocumentsByApi extends GetxController {
late Uint8List imageDocumentFrontSide;
XFile? image;
XFile? imageFace;
late File tempFile;
late String imagePath;
DateTime now = DateTime.now();
late String name;
@@ -326,7 +323,7 @@ class ScanDocumentsByApi extends GetxController {
responseMap['data']['image']['portrait'] != null) {
imagePortrait = base64Decode(responseMap['data']['image']['portrait']);
String tempPath = Directory.systemTemp.path;
File tempFile = File('$tempPath/image.jpg');
tempFile = File('$tempPath/image.jpg');
await tempFile.writeAsBytes(imagePortrait);
imagePath = tempFile.path;
@@ -480,7 +477,11 @@ class ScanDocumentsByApi extends GetxController {
)
: MyElevatedButton(
title: 'Next'.tr,
onPressed: () => Get.to(() => CarLicensePage()),
onPressed: () async {
await uploadImage(
tempFile, AppLink.uploadImagePortrate);
Get.to(() => CarLicensePage());
},
kolor: AppColor.greenColor,
));
} else {
@@ -489,12 +490,12 @@ class ScanDocumentsByApi extends GetxController {
}
// Todo upload images and fields
Future<String> uploadImage(File imageFile) async {
Future<String> uploadImage(File imageFile, String link) async {
String? basicAuthCredentials =
await storage.read(key: BoxName.basicAuthCredentials);
var request = http.MultipartRequest(
'POST',
Uri.parse(AppLink.uploadImage),
Uri.parse(link), //AppLink.uploadImage
);
// Attach the image file to the request

View File

@@ -1,5 +1,6 @@
import 'dart:async';
import 'dart:convert';
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -61,6 +62,7 @@ class MapDriverController extends GetxController {
late Timer timer;
String? mapAPIKEY;
final zones = <Zone>[];
void onMapCreated(GoogleMapController controller) {
LocationController locationController = Get.find<LocationController>();
myLocation = locationController.myLocation;

View File

@@ -2,6 +2,8 @@ import 'package:flutter/material.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:get/get.dart';
import 'package:ride/controller/home/captin/home_captain_controller.dart';
import 'package:ride/controller/home/captin/map_driver_controller.dart';
import 'package:ride/controller/home/captin/widget/zones_controller.dart';
import '../../../../constant/colors.dart';
import '../../../../views/Rate/ride_calculate_driver.dart';
@@ -21,7 +23,11 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
color: AppColor.secondaryColor,
borderRadius: BorderRadius.circular(15)),
child: IconButton(
onPressed: () {},
onPressed: () {
ZonesController mapDriverController =
Get.put(ZonesController());
mapDriverController.getJsonOfZones();
},
icon: const Icon(
FontAwesome.map_signs,
size: 24,

View File

@@ -0,0 +1,73 @@
import 'dart:convert';
import 'dart:math';
import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class ZonesController extends GetxController {
Map<String, List<LatLng>> generateZoneMap(
LatLng southwest, LatLng southEast, LatLng northeast) {
const double desiredZoneArea = 4; // in square kilometers
final double width = (southEast.longitude - southwest.longitude) * 100;
final double height = (northeast.latitude - southEast.latitude) * 100;
final double totalArea = width * height;
print(width);
print(height);
// final int numZones = (totalArea / desiredZoneArea).ceil();
final double zoneWidth = width / sqrt(desiredZoneArea);
final double zoneHeight = height / sqrt(desiredZoneArea);
final numRows =
((northeast.latitude - southwest.latitude) / zoneHeight).ceil();
final numCols =
((southEast.longitude - southwest.longitude) / zoneWidth).ceil();
print('zoneWidth = $zoneWidth');
print('zoneHeight = $zoneHeight');
List<String> zoneNames = [];
List<LatLng> zoneCoordinates = [];
for (int row = 0; row < numRows; row++) {
for (int col = 0; col < numCols; col++) {
final double zoneSouthwestLat =
southwest.latitude + (row * zoneHeight / 100);
final double zoneSouthwestLng =
southwest.longitude + (col * zoneWidth / 100);
final double zoneNortheastLat = zoneSouthwestLat + zoneHeight / 100;
final double zoneNortheastLng = zoneSouthwestLng + zoneWidth / 100;
LatLng zoneSouthwest = LatLng(zoneSouthwestLat, zoneSouthwestLng);
LatLng zoneNortheast = LatLng(zoneNortheastLat, zoneNortheastLng);
String zoneName =
'Zone${row + col}'; // Assign a unique name to each zone
zoneNames.add(zoneName);
zoneCoordinates.add(zoneSouthwest);
zoneCoordinates.add(zoneNortheast);
}
}
Map<String, List<LatLng>> zoneMap = {};
for (int i = 0; i < zoneNames.length; i++) {
zoneMap[zoneNames[i]] = [
zoneCoordinates[i], // Southwest LatLng
zoneCoordinates[i + 1], // Northeast LatLng
];
}
return zoneMap;
}
void getJsonOfZones() {
LatLng southwest = const LatLng(32.111107, 36.062222);
LatLng southEast = const LatLng(32.108333, 36.101667);
LatLng northeast = const LatLng(32.143889, 36.058889);
Map<String, List<LatLng>> zoneMap =
generateZoneMap(southwest, southEast, northeast);
String jsonMap = json.encode(zoneMap);
print(jsonMap);
}
}

View File

@@ -312,7 +312,8 @@ class MapPassengerController extends GetxController {
totalDriver.toString(),
duration.toString(),
distance.toString(),
dataCarsLocationByPassenger['message'][carsOrder]['id'].toString(),
dataCarsLocationByPassenger['message'][carsOrder]['driver_id']
.toString(),
box.read(BoxName.passengerID).toString(),
box.read(BoxName.name).toString(),
box.read(BoxName.tokenFCM).toString(),