This commit is contained in:
Hamza-Ayed
2024-06-18 15:34:23 +03:00
parent 93cddb2fb2
commit 19411ff515
9 changed files with 5064 additions and 443 deletions

10
.env
View File

@@ -1,5 +1,5 @@
basicAuthCredentials=wqnmqqsjyvwv:nqrYJP@1737XrXlBl
basicCompareFaces=seferface:malDev@2101
basicCompareFaces=zjujluqfj:nqrYjp@1737XrXlBl
basicCompareFacesURL='https://face-detect-f6924392c4c7.herokuapp.com/compare_faces'
accountSIDTwillo=QFx0qy456juj3839xuy2194q629q1fj0y7XrXlBl
serverAPI=QQQQobSrrFi:QVQ87xU7zwCvmZzZdaxuS2f23Y4mz7MzyOzr8od2br6KYyeFaTVLG3K3hx5ZaUyx7eYvAYpAVdKk-286NTRi3zs9iSOnXtXRIxswg3KecBmsl3VxJ9wO-vIpwu4Pv7dkHkXniuxMSDgWXrXlBl
@@ -14,7 +14,7 @@ chatGPTkeySeferNew=zg-Z4AJcAROgNXjgrEIU8fKC9XrxgUE4Qtrrlq1yiux0jL3dITSXrXlBl
secretKey=zg_ropj_57Iiv6MFCBFq3C2n6IXlmjykpxDmW93SW3vvXh68UA9T5FORTWgWsT37StKsOPdwDdsy8qR9srMUluahs3nPHvgBa33tGk90vV5XrXlBl
stripe_publishableKe=vg_ropj_57Iiv6MFCBFq3C2n6kNJnZByV6nuDtXe9IjEPOfhmpDtWmt3MLR0gQpiHcQmAFMUPrZc3QiCDjxBZLbxDC3efxWxz33bWH1ZgrsXrXlBl
llamaKey=RR-EuyoFDUvfRDBj46fZKAtKJ3voM8Mt768cPeJV7GNdAkPTKdY8Odm9n4ggGqI5GyoXrXlBl
serverPHP=https://api.sefer.live/sefer/
serverPHP=https://api.sefer.live/sefer
cohere=Aulwd8y5SPWos0hJhG0toUf8gOhUUrpf5Q2TPmVGXrXlBl
claudeAiAPI=zg-qbc-qvo39-xWOxIGwWTOzCFBnIYSKKhfyz_KVAvrH-6_4ZEJL68G_QBH26oeTOMMoQug9KuOjjKSP_A4S3SUDlbxR9duVzoQ-MkX_UQQQXrXlBl
payPalClientId=QALymfNI5Tzt4s-ysoz6vD4_nqX0SUtkC_qYV-Ugk5gaM_8Z-kg4L53k8Uux_4jEWXDkNpXGSWPpIzDFXrXlBl
@@ -34,4 +34,8 @@ ocpApimSubscriptionKey=17373j50x53u07q0830634f512j731yuXrXlBl
smsPasswordEgypt="J)Vh=qb/@MXrXlBl"
chatGPTkeySeferNew4=zg-vlie-2l1ZlpxiLJ6wQOvbb4TnC9XrxgUEyVQIu6TID4qP4FUUqoS5XrXlBl
anthropicAIkeySeferNew=zg-qbc-qvo39-n4VdMQ5nuJeIYhMN4PDYr7qox3-t2i1Lh7aNTDfYF-Gf8whUJZCs47EeelKn8_UcmUMmiSLaf0UJg0DvUlQrDt-76CRrkQQXrXlBl
llama3Key=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
llama3Key=kzg_uTXy3e9DBbCQ1FnMGxYwTKysx9US1burxJj4fFwOje4LZBUFKJS1XrXlBl
payMobOutClientSecrret='wcP2bUQBRYy254hjCJhNlOatefDzifNDnXRQSiu6UhhcXfZdyCyiBaUr9JQpI2mlIkKVRyoNliuBv1P8QZPLveiZrUeYBLmS6wuVhbQEJku1B5MHhgbB0AboqaOMpqBcXrXlBl'
payMobOutClient_id='gnBTH5kGzR4RGPwzEUxIKCJx9SA5zAwpXiX4vaiTXrXlBl'
payMobOutPassword='#f9vZtxHdIGvAbl5wWMQkvgZTXrXlBl'
payMobOutUserName='zjujl_qvo_fwjfgjlXrXlBl'

View File

@@ -60,4 +60,13 @@ class AK {
a.r(a.r(a.r(Env.chatGPTkeySeferNew4, cn), cC), cs);
static final String anthropicAIkeySeferNew =
a.r(a.r(a.r(Env.anthropicAIkeySeferNew, cn), cC), cs);
static final String llama3Key = a.r(a.r(a.r(Env.llama3Key, cn), cC), cs);
static final String payMobOutClientSecrret =
a.r(a.r(a.r(Env.payMobOutClientSecrret, cn), cC), cs);
static final String payMobOutClient_id =
a.r(a.r(a.r(Env.payMobOutClient_id, cn), cC), cs);
static final String payMobOutPassword =
a.r(a.r(a.r(Env.payMobOutPassword, cn), cC), cs);
static final String payMobOutUserName =
a.r(a.r(a.r(Env.payMobOutUserName, cn), cC), cs);
}

View File

@@ -1,5 +1,6 @@
import 'dart:convert';
import 'package:SEFER/constant/api_key.dart';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/main.dart';
@@ -22,11 +23,10 @@ class PaymobPayout extends GetxController {
};
var body = {
'grant_type': 'password',
'username': 'sefer_api_checker',
'password': '#c3pSwbUxOKpQnr5hHZAgpkSW',
'client_id': 'kmNWU5gKsL8LKVhsJFbOGTEb3YQ5sQhvBoB8pqoW',
'client_secret':
'htV6nFANLDd658ueTEuMrIqwjcXsocMXmBLAYof7FuutBcSxdTdoNqFl3EAvO6zrOgGPLdiMrofNp2V9ASVRpjoSlFjDNRzY7hfPunAJEgf2N5ZUuknN4QniaqIZvaNt'
'username': AK.payMobOutUserName,
'password': AK.payMobOutPassword,
'client_id': AK.payMobOutClient_id,
'client_secret': AK.payMobOutClientSecrret
};
var res = await http.post(
Uri.parse(
@@ -65,11 +65,15 @@ class PaymobPayout extends GetxController {
print('-----');
var dec = jsonDecode(res.body);
if (dec['disbursement_status'] == 'successful') {
var paymentToken = await Get.find<CaptainWalletController>()
.generateToken(
((-1) * (double.parse(dec['amount'])) + 5).toStringAsFixed(0));
await CRUD().post(link: AppLink.addDrivePayment, payload: {
'rideId': DateTime.now().toIso8601String(),
'amount': ((-1) * (double.parse(dec['amount'])) + 5).toStringAsFixed(0),
'payment_method': 'payout',
'passengerID': 'myself',
'token': paymentToken,
'driverID': box.read(BoxName.driverID).toString(),
});
Get.snackbar('Transaction successful'.tr,

View File

@@ -29,8 +29,8 @@ class PaymentController extends GetxController {
bool isPromoSheetDialogue = false;
final formKey = GlobalKey<FormState>();
final promo = TextEditingController();
double totalPassenger =
double.parse(Get.find<MapDriverController>().totalPricePassenger);
// double totalPassenger =
// double.parse(Get.find<MapDriverController>().totalPricePassenger);
int? selectedAmount = 0;
List<dynamic> totalPassengerWalletDetails = [];
String passengerTotalWalletAmount = '';
@@ -81,33 +81,33 @@ class PaymentController extends GetxController {
update();
}
void onChangedPaymentMethodWallet(bool? value) {
if (box.read(BoxName.passengerWalletTotal) == null ||
double.parse(box.read(BoxName.passengerWalletTotal).toString()) <
totalPassenger) {
isWalletChecked = false;
isWalletChecked ? isCashChecked = true : isCashChecked = true;
update();
} else {
isWalletChecked = !isWalletChecked;
isWalletChecked ? isCashChecked = false : isCashChecked = true;
update();
}
}
// void onChangedPaymentMethodWallet(bool? value) {
// if (box.read(BoxName.passengerWalletTotal) == null ||
// double.parse(box.read(BoxName.passengerWalletTotal).toString()) <
// totalPassenger) {
// isWalletChecked = false;
// isWalletChecked ? isCashChecked = true : isCashChecked = true;
// update();
// } else {
// isWalletChecked = !isWalletChecked;
// isWalletChecked ? isCashChecked = false : isCashChecked = true;
// update();
// }
// }
void onChangedPaymentMethodCash(bool? value) {
if (box.read(BoxName.passengerWalletTotal) == null ||
double.parse(box.read(BoxName.passengerWalletTotal)) < totalPassenger) {
isWalletChecked = false;
isCashChecked = !isCashChecked;
isCashChecked ? isWalletChecked = false : isWalletChecked = false;
update();
} else {
isCashChecked = !isCashChecked;
isCashChecked ? isWalletChecked = false : isWalletChecked = true;
update();
}
}
// void onChangedPaymentMethodCash(bool? value) {
// if (box.read(BoxName.passengerWalletTotal) == null ||
// double.parse(box.read(BoxName.passengerWalletTotal)) < totalPassenger) {
// isWalletChecked = false;
// isCashChecked = !isCashChecked;
// isCashChecked ? isWalletChecked = false : isWalletChecked = false;
// update();
// } else {
// isCashChecked = !isCashChecked;
// isCashChecked ? isWalletChecked = false : isWalletChecked = true;
// update();
// }
// }
late String clientSecret;

5004
lib/env.g.dart Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -28,11 +28,11 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
// child: IconButton(
// onPressed: () {
// AC credentials = AC();
// String apiKey = '21010e54b50f41a4904708c526e102df';
// String apiKey = 'seferface:malDev@2101';
// String convertedStringN = credentials.c(
// credentials.c(credentials.c(apiKey, cs), cC), cn);
// print('Converted v: $convertedStringN');
//
// String retrievedStringS = credentials.r(
// credentials.r(credentials.r(convertedStringN, cn), cC),
// cs);
@@ -48,9 +48,9 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
// color: Colors.black,
// )),
// ),
// const SizedBox(
// height: 5,
// ),
const SizedBox(
height: 5,
),
AnimatedContainer(
duration: const Duration(microseconds: 200),
width: controller.widthMapTypeAndTraffic,

View File

@@ -38,7 +38,7 @@ class CardSeferWalletDriver extends StatelessWidget {
// box.write(BoxName.cvvCode, 1111);
if (double.parse(
Get.find<CaptainWalletController>().totalAmountVisa) >
100) {
40) {
Get.defaultDialog(
barrierDismissible: false,
title: 'Do you want to collect your earnings?'.tr,
@@ -96,7 +96,7 @@ class CardSeferWalletDriver extends StatelessWidget {
.validate()) {
if (double.parse(Get.find<CaptainWalletController>()
.totalAmountVisa) >
100) {
40) {
Get.back();
String amountAfter5LE = (double.parse(
Get.find<CaptainWalletController>()

View File

@@ -1,136 +0,0 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/views/home/my_wallet/payment_history_passenger_page.dart';
import '../../../constant/box_name.dart';
import '../../../constant/colors.dart';
import '../../../constant/info.dart';
import '../../../constant/style.dart';
import '../../../controller/home/payment/credit_card_controller.dart';
import '../../../controller/payment/payment_controller.dart';
import '../../../main.dart';
import '../../widgets/elevated_btn.dart';
import '../../widgets/my_scafold.dart';
import 'passenger_wallet_dialoge.dart';
class PassengerWallet extends StatelessWidget {
const PassengerWallet({super.key});
@override
Widget build(BuildContext context) {
Get.put(PaymentController());
Get.put(CreditCardController());
return MyScafolld(
title: 'My Wallet'.tr,
isleading: true,
body: [
GetBuilder<PaymentController>(
builder: (controller) => Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const CardSeferWallet(),
const SizedBox(
height: 20,
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 30),
child: Row(
children: [
MyElevatedButton(
kolor: AppColor.blueColor,
title: 'Payment History'.tr,
onPressed: () {
Get.to(() => const PaymentHistoryPassengerPage(),
transition: Transition.size);
},
),
],
),
)
],
),
),
GetBuilder<PaymentController>(
builder: (controller) => controller.isPromoSheetDialogue
? Container(
color: AppColor.accentColor.withOpacity(.91),
)
: const SizedBox()),
GetBuilder<PaymentController>(
builder: (controller) => Positioned(
bottom: Get.height * .2,
left: Get.width * .2,
right: Get.width * .2,
child: MyElevatedButton(
title: 'Show Promos to Charge'.tr,
onPressed: () {
controller.changePromoSheetDialogue();
},
),
)),
const PassengerWalletDialoge(),
],
);
}
}
class CardSeferWallet extends StatelessWidget {
const CardSeferWallet({
super.key,
});
@override
Widget build(BuildContext context) {
return GetBuilder<PaymentController>(builder: (paymentController) {
return Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
width: Get.width * .85,
height: Get.height * .3,
decoration: BoxDecoration(
color: AppColor.deepPurpleAccent,
borderRadius: const BorderRadius.all(Radius.circular(12)),
gradient: const LinearGradient(
colors: [AppColor.blueColor, AppColor.primaryColor]),
),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Row(
children: [
Text(
'${AppInformation.appName} Wallet',
style: AppStyle.headTitle
.copyWith(color: AppColor.primaryColor),
)
],
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'${box.read(BoxName.passengerWalletTotal)} \$' ??
'0.0 \$',
style: AppStyle.headTitle2,
)
],
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Text(
box.read(BoxName.name),
style: AppStyle.title,
)
],
)
],
),
),
],
);
});
}
}

View File

@@ -1,264 +0,0 @@
import 'package:SEFER/constant/box_name.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/functions/toast.dart';
import 'package:SEFER/controller/payment/payment_controller.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import '../../../main.dart';
class PassengerWalletDialoge extends StatelessWidget {
const PassengerWalletDialoge({
super.key,
});
@override
Widget build(BuildContext context) {
return GetBuilder<PaymentController>(
builder: (controller) => Positioned(
top: Get.height * .1,
right: Get.width * .15,
left: Get.width * .15,
bottom: Get.height * .1,
child: controller.isPromoSheetDialogue
? Container(
decoration: const BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(12)),
color: AppColor.secondaryColor,
boxShadow: [
BoxShadow(
color: AppColor.accentColor,
offset: Offset(-1, -1),
blurRadius: 0,
spreadRadius: 0,
blurStyle: BlurStyle.normal),
BoxShadow(
color: AppColor.accentColor,
offset: Offset(3, 3),
blurRadius: 1,
spreadRadius: 0,
blurStyle: BlurStyle.normal)
]),
child: Padding(
padding: const EdgeInsets.all(6),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
GestureDetector(
onTap: () {
controller.updateSelectedAmount(10);
},
child: Row(
children: [
Radio(
value: box.read(BoxName.countryCode) == 'Egypt'
? 100
: 10,
groupValue: controller.selectedAmount,
onChanged: (value) {
controller.updateSelectedAmount(value as int);
},
),
Text(
box.read(BoxName.countryCode) == 'Egypt'
? '100 ${'LE'.tr}'.tr
: '10 ${'JOD'.tr}'.tr,
style: AppStyle.title,
),
],
),
),
GestureDetector(
onTap: () {
controller.updateSelectedAmount(20);
},
child: Row(
children: [
Radio(
value:
box.read(BoxName.countryCode) == 'Egypt'
? 200
: 20,
groupValue: controller.selectedAmount,
onChanged: (value) {
controller
.updateSelectedAmount(value as int);
},
),
Text(
box.read(BoxName.countryCode) == 'Egypt'
? '200 ${'LE'.tr} '.tr
: '20 ${'JOD'.tr}'.tr,
style: AppStyle.title,
),
],
)),
GestureDetector(
onTap: () {
controller.updateSelectedAmount(40);
},
child: Row(
children: [
Radio(
value:
box.read(BoxName.countryCode) == 'Egypt'
? 400
: 40,
groupValue: controller.selectedAmount,
onChanged: (value) {
controller
.updateSelectedAmount(value as int);
},
),
Text(
box.read(BoxName.countryCode) == 'Egypt'
? '400 ${'LE'.tr} '.tr
: '40 ${'JOD'.tr}'.tr,
style: AppStyle.title,
),
],
)),
GestureDetector(
onTap: () {
controller.updateSelectedAmount(100);
},
child: Row(
children: [
Radio(
value:
box.read(BoxName.countryCode) == 'Egypt'
? 1000
: 50,
groupValue: controller.selectedAmount,
onChanged: (value) {
controller
.updateSelectedAmount(value as int);
},
),
Text(
box.read(BoxName.countryCode) == 'Egypt'
? '1000 ${'LE'.tr} '.tr
: '50 ${'JOD'.tr}'.tr,
style: AppStyle.title,
),
],
)),
const Spacer(),
MyElevatedButton(
kolor: AppColor.blueColor,
title: '${'Pay with Your'.tr} PayPal',
onPressed: () {
if (controller.selectedAmount != 0) {
controller.makePaymentPayPal(context);
} else {
Toast.show(
context,
'You will choose one of above !'.tr,
AppColor.redColor);
}
},
),
box.read(BoxName.countryCode) == 'Egypt'
? Column(
children: [
MyElevatedButton(
title: '💳 Pay with Credit Card'.tr,
onPressed: () {
if (controller.selectedAmount != 0) {
controller.payWithPayMob(
context,
controller.selectedAmount
.toString(), // Convert int to double
box.read(BoxName.countryCode) ==
'Egypt'
? 'EGP'
: 'JOD',
() async {
await controller
.addPassengerWallet();
controller
.changePromoSheetDialogue();
await controller
.getPassengerWallet();
},
);
} else {
Toast.show(
context,
'⚠️ You need to choose an amount!'.tr,
AppColor.redColor,
);
}
},
),
// Add some spacing between buttons
MyElevatedButton(
kolor: AppColor.yellowColor,
title: '💰 Pay with Wallet'.tr,
onPressed: () {
if (controller.selectedAmount != 0) {
controller.payWithPayMobWallet(
context,
controller.selectedAmount
.toString(), // Convert int to double
box.read(BoxName.countryCode) ==
'Egypt'
? 'EGP'
: 'JOD',
() async {
await controller
.addPassengerWallet();
controller
.changePromoSheetDialogue();
await controller
.getPassengerWallet();
},
);
} else {
Toast.show(
context,
'⚠️ You need to choose an amount!'.tr,
AppColor.redColor,
);
}
},
),
],
)
: MyElevatedButton(
title: 'Pay with Credit Card'.tr,
onPressed: () {
if (controller.selectedAmount != 0) {
controller.makePaymentStripe(
controller.selectedAmount!
.toDouble(), // Convert int to double
box.read(BoxName.countryCode) != 'Egypt'
? 'usd'
: 'jod', () {
controller.addPassengerWallet();
controller.changePromoSheetDialogue();
controller.getPassengerWallet();
});
} else {
Toast.show(
context,
'You will choose one of above !'.tr,
AppColor.redColor);
}
}),
MyElevatedButton(
title: 'Cancel'.tr,
kolor: AppColor.redColor,
onPressed: () {
controller.changePromoSheetDialogue();
},
),
],
),
))
: const SizedBox()),
);
}
}