diff --git a/lib/constant/links.dart b/lib/constant/links.dart index f0c5991..c7bed65 100644 --- a/lib/constant/links.dart +++ b/lib/constant/links.dart @@ -71,6 +71,8 @@ class AppLink { ////-----------------DriverPayment------------------ static String addDrivePayment = "$ride/payment/add.php"; + static String addSeferWallet = "$ride/seferWallet/add.php"; + static String getSeferWallet = "$ride/seferWallet/get.php"; static String addDriverPaymentPoints = "$ride/driverPayment/add.php"; static String addPaymentTokenDriver = "$ride/driverWallet/addPaymentToken.php"; //driverWallet/addPaymentToken.php diff --git a/lib/controller/home/payment/captain_wallet_controller.dart b/lib/controller/home/payment/captain_wallet_controller.dart index 4055c6a..615585e 100644 --- a/lib/controller/home/payment/captain_wallet_controller.dart +++ b/lib/controller/home/payment/captain_wallet_controller.dart @@ -168,6 +168,17 @@ class CaptainWalletController extends GetxController { }); } + Future addSeferWallet(String paymentMethod, point) async { + var seferToken = await generateToken(point); + await CRUD().post(link: AppLink.addSeferWallet, payload: { + 'amount': point.toString(), + 'paymentMethod': paymentMethod, + 'passengerId': 'driver', + 'token': seferToken, + 'driverId': box.read(BoxName.driverID).toString(), + }); + } + Future addTransferDriversWallet(String paymentMethod1, paymentMethod2) async { paymentID = await addDriverPaymentPoints( paymentMethod1, amountFromBudgetController.text); @@ -210,6 +221,15 @@ class CaptainWalletController extends GetxController { onPressed: () async { Get.back(); Get.back(); + var seferToken = await Get.find() + .generateToken('5'); + await CRUD().post(link: AppLink.addSeferWallet, payload: { + 'amount': '5', + 'paymentMethod': 'payout fee', + 'passengerId': 'driver', + 'token': seferToken, + 'driverId': box.read(BoxName.driverID).toString(), + }); await refreshCaptainWallet(); })); } diff --git a/lib/controller/home/payment/paymob_payout.dart b/lib/controller/home/payment/paymob_payout.dart index a1218bf..8ec664c 100644 --- a/lib/controller/home/payment/paymob_payout.dart +++ b/lib/controller/home/payment/paymob_payout.dart @@ -43,6 +43,7 @@ class PaymobPayout extends GetxController { return token; } + int payOutFee = 5; payToDriverWallet( String token, String amount, String issuer, String msisdn) async { var headers = { @@ -66,16 +67,26 @@ class PaymobPayout extends GetxController { var dec = jsonDecode(res.body); if (dec['disbursement_status'] == 'successful') { var paymentToken = await Get.find() - .generateToken( - ((-1) * (double.parse(dec['amount'])) - 5).toStringAsFixed(0)); + .generateToken(((-1) * (double.parse(dec['amount'])) - payOutFee) + .toStringAsFixed(0)); await CRUD().post(link: AppLink.addDrivePayment, payload: { 'rideId': DateTime.now().toIso8601String(), - 'amount': ((-1) * (double.parse(dec['amount'])) - 5).toStringAsFixed(0), + 'amount': ((-1) * (double.parse(dec['amount'])) - payOutFee) + .toStringAsFixed(0), 'payment_method': 'payout', 'passengerID': 'myself', 'token': paymentToken, 'driverID': box.read(BoxName.driverID).toString(), }); + var seferToken = await Get.find() + .generateToken(payOutFee.toString()); + await CRUD().post(link: AppLink.addSeferWallet, payload: { + 'amount': ((-1) * (double.parse(dec['amount']))).toStringAsFixed(0), + 'paymentMethod': 'payout fee', + 'passengerId': 'driver', + 'token': seferToken, + 'driverId': box.read(BoxName.driverID).toString(), + }); Get.snackbar('Transaction successful'.tr, '${'Transaction successful'.tr} ${dec['amount']}', backgroundColor: AppColor.greenColor); diff --git a/lib/models/ai_query.sql b/lib/models/ai_query.sql index 1f4f290..2f3c19f 100644 --- a/lib/models/ai_query.sql +++ b/lib/models/ai_query.sql @@ -20,4 +20,132 @@ JOIN ride r ON JOIN `passengers` p ON c.passenger_id = p.id WHERE - c.complaint_type = 'Passenger' AND c.passenger_id = '100393163265770158312'; \ No newline at end of file + c.complaint_type = 'Passenger' AND c.passenger_id = '100393163265770158312'; + + -- Admin panel dashboard + + SELECT + ( + SELECT + COUNT(`email`) + FROM + `passengers` + ) AS countPassengers, + ( + SELECT + COUNT(`email`) + FROM + `driver` + ) AS countDriver, + ( + SELECT + COUNT(`id`) + FROM + `ride` + ) AS countRide, + ( + SELECT + COUNT(`id`) + FROM + `passengers` + WHERE + `passengers`.`created_at` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE) + ) AS countPassengersThisMonth, + ( + SELECT + COUNT(`id`) + FROM + `ride` + WHERE + `ride`.`created_at` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE) + ) AS countRideThisMonth, + ( + SELECT + COUNT(`id`) + FROM + `driver` + WHERE + `driver`.`created_at` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE) + ) AS countDriverThisMonth, + ( + SELECT + COUNT(`id`) + FROM + `CarRegistration` + WHERE + `CarRegistration`.`created_at` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE) + ) AS countCarRegistrationThisMonth, + ( + SELECT + COUNT(`id`) + FROM + `complaint` + WHERE + `complaint`.`date_filed` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE) + ) AS countComplaintThisMonth, + ( + SELECT + COUNT(`id`) + FROM + `complaint` + WHERE + `complaint`.`date_filed` BETWEEN DATE_FORMAT( + DATE_SUB( + CURRENT_DATE, + INTERVAL WEEKDAY(CURRENT_DATE) DAY + ), + '%Y-%m-%d' + ) AND DATE_FORMAT( + DATE_ADD( + DATE_SUB( + CURRENT_DATE, + INTERVAL WEEKDAY(CURRENT_DATE) DAY + ), + INTERVAL 6 DAY + ), + '%Y-%m-%d' + ) + ) AS countComplaintThisWeek, + ( + SELECT + COUNT(`id`) + FROM + `complaint` + WHERE + `complaint`.`date_filed` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-%d') AND DATE_FORMAT(CURRENT_DATE, '%Y-%m-%d') + ) AS countComplaintToday, + ( + SELECT + SUM(`payments`.`amount`) + FROM + `payments` WHERE + `payments`.`created_at` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE) + AND + `payments`.`payment_method` IN('visa-in', + 'visa', + 'visaRide', + 'TransferFrom', + 'payout', + 'TransferTo') + ) AS payments, + ( + SELECT + SUM(`driverWallet`.`amount`) + FROM + `driverWallet` + WHERE + `driverWallet`.`dateCreated` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE) + AND + `driverWallet`.`paymentMethod` IN('visa', '') + ) AS driverWallet, + ( + SELECT + SUM(`passengerWallet`.`balance`) + FROM + `passengerWallet` + WHERE + `passengerWallet`.`created_at` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE) + ) AS passengerWallet + FROM + `passengers` + LIMIT 1 \ No newline at end of file diff --git a/lib/views/home/my_wallet/points_captain.dart b/lib/views/home/my_wallet/points_captain.dart index 4a96422..222c9ad 100644 --- a/lib/views/home/my_wallet/points_captain.dart +++ b/lib/views/home/my_wallet/points_captain.dart @@ -48,10 +48,12 @@ class PointsCaptain extends StatelessWidget { box.read(BoxName.countryCode) == 'Egypt' ? 'EGP' : 'JOD', () async { - await captainWalletController.addDriverPaymentPoints( - 'visa-in', pricePoint); + // await captainWalletController.addDriverPaymentPoints( + // 'visa-in', pricePoint); await captainWalletController.addDriverWallet( 'visa-in', countPoint); + await captainWalletController.addSeferWallet( + 'visa-in', pricePoint); await captainWalletController .getCaptainWalletFromBuyPoints(); });