12/22/1
This commit is contained in:
@@ -3,7 +3,6 @@ import 'package:sefer_driver/controller/functions/gemeni.dart';
|
||||
import 'package:sefer_driver/controller/functions/tts.dart';
|
||||
import 'package:sefer_driver/views/widgets/elevated_btn.dart';
|
||||
import 'package:sefer_driver/views/widgets/my_circular_indicator_timer.dart';
|
||||
import 'package:sefer_driver/views/widgets/my_textField.dart';
|
||||
import 'package:sefer_driver/views/widgets/mydialoug.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -52,41 +51,70 @@ class EgyptCardAI extends StatelessWidget {
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Column(
|
||||
children: [
|
||||
(controller.responseIdCardDriverEgyptBack.isNotEmpty &&
|
||||
controller.responseIdCardDriverEgyptFront
|
||||
.isNotEmpty &&
|
||||
controller.responseIdEgyptFront.isNotEmpty &&
|
||||
controller.responseIdEgyptBack.isNotEmpty &&
|
||||
controller
|
||||
.responseIdEgyptDriverLicense.isNotEmpty
|
||||
// &&
|
||||
// controller
|
||||
// .responseCriminalRecordEgypt.isNotEmpty
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: [
|
||||
(controller.responseIdCardDriverEgyptBack
|
||||
.isNotEmpty &&
|
||||
controller.responseIdCardDriverEgyptFront
|
||||
.isNotEmpty &&
|
||||
(controller
|
||||
.responseIdEgyptFront.isNotEmpty ||
|
||||
controller.responseNonIdCardFront
|
||||
.isNotEmpty) &&
|
||||
(controller
|
||||
.responseIdEgyptBack.isNotEmpty ||
|
||||
controller.responseNonIdCardBack
|
||||
.isNotEmpty) &&
|
||||
controller
|
||||
.responseIdEgyptDriverLicense.isNotEmpty
|
||||
// &&
|
||||
// controller
|
||||
// .responseCriminalRecordEgypt.isNotEmpty
|
||||
)
|
||||
? MyElevatedButton(
|
||||
title: 'Next'.tr,
|
||||
kolor: AppColor.greenColor,
|
||||
onPressed: () {
|
||||
controller.addDriverAndCarEgypt();
|
||||
})
|
||||
: const SizedBox(),
|
||||
Row(
|
||||
children: [
|
||||
controller.isEgypt
|
||||
? MyElevatedButton(
|
||||
title: 'For Egypt'.tr,
|
||||
onPressed: () {
|
||||
controller.changeNationality();
|
||||
})
|
||||
: MyElevatedButton(
|
||||
title: 'Non Egypt'.tr,
|
||||
onPressed: () {
|
||||
controller.changeNationality();
|
||||
}),
|
||||
],
|
||||
)
|
||||
? MyElevatedButton(
|
||||
title: 'Next'.tr,
|
||||
onPressed: () {
|
||||
controller.addDriverAndCarEgypt();
|
||||
})
|
||||
: const SizedBox(),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height:
|
||||
(controller.responseIdCardDriverEgyptBack
|
||||
.isNotEmpty &&
|
||||
controller.responseIdCardDriverEgyptFront
|
||||
.isNotEmpty &&
|
||||
controller
|
||||
.responseIdEgyptFront.isNotEmpty &&
|
||||
controller
|
||||
.responseIdEgyptBack.isNotEmpty &&
|
||||
controller.responseIdEgyptDriverLicense
|
||||
.isNotEmpty
|
||||
// &&
|
||||
// controller.responseCriminalRecordEgypt
|
||||
// .isNotEmpty
|
||||
)
|
||||
? Get.height * .7
|
||||
: Get.height * .85,
|
||||
// (controller.responseIdCardDriverEgyptBack
|
||||
// .isNotEmpty &&
|
||||
// controller.responseIdCardDriverEgyptFront
|
||||
// .isNotEmpty &&
|
||||
// controller
|
||||
// .responseIdEgyptFront.isNotEmpty &&
|
||||
// controller
|
||||
// .responseIdEgyptBack.isNotEmpty &&
|
||||
// controller.responseIdEgyptDriverLicense
|
||||
// .isNotEmpty
|
||||
// &&
|
||||
// controller.responseCriminalRecordEgypt
|
||||
// .isNotEmpty
|
||||
// )
|
||||
// ?
|
||||
Get.height * .7,
|
||||
// : Get.height * .85,
|
||||
child: ListView(
|
||||
children: [
|
||||
Padding(
|
||||
@@ -109,8 +137,12 @@ class EgyptCardAI extends StatelessWidget {
|
||||
egyptDriverLicense(),
|
||||
egyptCarLicenceFront(),
|
||||
egyptCarLicenceBack(),
|
||||
egyptDriverIDFront(),
|
||||
egyptDriverIDBack(),
|
||||
controller.isEgypt
|
||||
? egyptDriverIDFront()
|
||||
: nonEgyptDriverIDFront(),
|
||||
controller.isEgypt
|
||||
? egyptDriverIDBack()
|
||||
: nonEgyptDriverIDBack(),
|
||||
// egyptCriminalRecord(),
|
||||
],
|
||||
),
|
||||
@@ -498,6 +530,109 @@ class EgyptCardAI extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
GetBuilder<AI> nonEgyptDriverIDBack() {
|
||||
return GetBuilder<AI>(
|
||||
builder: (ai) {
|
||||
if (ai.responseNonIdCardBack.isNotEmpty) {
|
||||
final residencyExpiryDate =
|
||||
ai.responseNonIdCardBack['residencyExpirationDate'];
|
||||
final today = DateTime.now();
|
||||
final residencyExpiryDateTime =
|
||||
DateTime.tryParse(residencyExpiryDate);
|
||||
final isExpired = residencyExpiryDateTime != null &&
|
||||
residencyExpiryDateTime.isBefore(today);
|
||||
|
||||
return Card(
|
||||
elevation: 4.0,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(16.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text('Non-Egyptian ID Back'.tr, style: AppStyle.title),
|
||||
IconButton(
|
||||
onPressed: () async {
|
||||
await ai.allMethodForAI(
|
||||
ai.prompts[7]['prompt'].toString(),
|
||||
AppLink.uploadEgypt,
|
||||
'non_id_back');
|
||||
},
|
||||
icon: const Icon(Icons.refresh),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 8.0),
|
||||
const Divider(color: AppColor.accentColor),
|
||||
const SizedBox(height: 8.0),
|
||||
Text(
|
||||
'${'Country'.tr}: ${ai.responseNonIdCardBack['country']}',
|
||||
style: AppStyle.title,
|
||||
),
|
||||
const SizedBox(height: 8.0),
|
||||
Text(
|
||||
'${'Residency Type'.tr}: ${ai.responseNonIdCardBack['residencyType']}',
|
||||
),
|
||||
const SizedBox(height: 8.0),
|
||||
Text(
|
||||
'${'Work Status'.tr}: ${ai.responseNonIdCardBack['workStatus']}',
|
||||
),
|
||||
const SizedBox(height: 8.0),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'${'Issue Date'.tr}: ${ai.responseNonIdCardBack['issueDate']}',
|
||||
),
|
||||
Text(
|
||||
'${'Birth Date'.tr}: ${ai.responseNonIdCardBack['birthDate']}',
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 8.0),
|
||||
Text(
|
||||
'${'Residency Expiration Date'.tr}: ${ai.responseNonIdCardBack['residencyExpirationDate']}',
|
||||
style: AppStyle.title.copyWith(
|
||||
color: !isExpired
|
||||
? AppColor.greenColor
|
||||
: AppColor.redColor),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
return Card(
|
||||
child: InkWell(
|
||||
onTap: () async {
|
||||
await ai.allMethodForAI(ai.prompts[7]['prompt'].toString(),
|
||||
AppLink.uploadEgypt, 'non_id_back');
|
||||
},
|
||||
child: Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/7.png',
|
||||
height: Get.height * .25,
|
||||
width: double.maxFinite,
|
||||
fit: BoxFit.fitHeight,
|
||||
),
|
||||
Text(
|
||||
'Capture Image of Non-Egyptian ID Back'.tr,
|
||||
style: AppStyle.title,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
GetBuilder<AI> egyptDriverIDFront() {
|
||||
return GetBuilder<AI>(
|
||||
builder: (ai) {
|
||||
@@ -597,6 +732,105 @@ class EgyptCardAI extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
GetBuilder<AI> nonEgyptDriverIDFront() {
|
||||
return GetBuilder<AI>(
|
||||
builder: (ai) {
|
||||
if (ai.responseNonIdCardFront.isNotEmpty) {
|
||||
return Card(
|
||||
elevation: 4.0,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(16.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text('Non-Egyptian ID Front'.tr, style: AppStyle.title),
|
||||
IconButton(
|
||||
onPressed: () async {
|
||||
await ai.allMethodForAI(
|
||||
ai.prompts[6]['prompt'].toString(),
|
||||
AppLink.uploadEgypt,
|
||||
'non_id_front');
|
||||
},
|
||||
icon: const Icon(Icons.refresh),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 8.0),
|
||||
const Divider(color: AppColor.accentColor),
|
||||
const SizedBox(height: 8.0),
|
||||
Text(
|
||||
'${'Full Name'.tr}: ${ai.responseNonIdCardFront['full_name']}',
|
||||
style: AppStyle.title,
|
||||
),
|
||||
const SizedBox(height: 8.0),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'${'Passport No'.tr}: ${ai.responseNonIdCardFront['passport_no']}',
|
||||
),
|
||||
Text(
|
||||
'${'Card ID'.tr}: ${ai.responseNonIdCardFront['card_id']}',
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 8.0),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'${'Country'.tr}: ${ai.responseNonIdCardFront['country']}',
|
||||
),
|
||||
Text(
|
||||
'${'Gender'.tr}: ${ai.responseNonIdCardFront['gender']}',
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 8.0),
|
||||
Text(
|
||||
'${'Birth Date'.tr}: ${ai.responseNonIdCardFront['birthdate']}',
|
||||
),
|
||||
const SizedBox(height: 8.0),
|
||||
Text(
|
||||
'${'Address'.tr}: ${ai.responseNonIdCardFront['address']}',
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
return Card(
|
||||
child: InkWell(
|
||||
onTap: () async {
|
||||
await ai.allMethodForAI(ai.prompts[6]['prompt'].toString(),
|
||||
AppLink.uploadEgypt, 'non_id_front');
|
||||
},
|
||||
child: Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/7.jpeg',
|
||||
height: Get.height * .25,
|
||||
width: double.maxFinite,
|
||||
fit: BoxFit.fitHeight,
|
||||
),
|
||||
Text(
|
||||
'Capture Image of Non-Egyptian ID Front'.tr,
|
||||
style: AppStyle.title,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
GetBuilder<AI> egyptCarLicenceFront() {
|
||||
return GetBuilder<AI>(
|
||||
builder: (ai) {
|
||||
|
||||
Reference in New Issue
Block a user