977 lines
49 KiB
Dart
977 lines
49 KiB
Dart
import 'package:sefer_driver/controller/functions/crud.dart';
|
||
import 'package:flutter/material.dart';
|
||
import 'package:get/get.dart';
|
||
import 'package:sefer_driver/constant/colors.dart';
|
||
import 'package:sefer_driver/constant/style.dart';
|
||
import 'package:sefer_driver/constant/table_names.dart';
|
||
import 'package:sefer_driver/controller/auth/captin/register_captin_controller.dart';
|
||
import 'package:sefer_driver/controller/functions/ocr_controller.dart';
|
||
import 'package:sefer_driver/main.dart';
|
||
import 'package:sefer_driver/views/widgets/elevated_btn.dart';
|
||
import 'package:sefer_driver/views/widgets/my_scafold.dart';
|
||
import 'package:sefer_driver/views/widgets/mycircular.dart';
|
||
|
||
import '../../../constant/links.dart';
|
||
import '../../../controller/functions/gemeni.dart';
|
||
|
||
class AiPage extends StatelessWidget {
|
||
ScanDocumentsByApi scanDocumentsByApi = Get.put(ScanDocumentsByApi());
|
||
RegisterCaptainController registerCaptainController =
|
||
Get.put(RegisterCaptainController());
|
||
|
||
@override
|
||
Widget build(BuildContext context) {
|
||
Get.put(AI());
|
||
String text = '';
|
||
return MyScafolld(
|
||
title: 'Documents check'.tr,
|
||
body: [
|
||
GetBuilder<AI>(builder: (controller) {
|
||
return controller.isLoading
|
||
? const MyCircularProgressIndicator()
|
||
: Padding(
|
||
padding: const EdgeInsets.all(8.0),
|
||
child: ListView(
|
||
children: [
|
||
// egyptDriverLicense(),
|
||
// egyptCarLicenceFront(),
|
||
// egyptCarLicenceBack(),
|
||
// egyptDriverIDFront(),
|
||
// egyptDriverIDBack(),
|
||
],
|
||
),
|
||
);
|
||
}),
|
||
],
|
||
isleading: true);
|
||
}
|
||
|
||
GetBuilder<AI> egyptDriverLicenseWidget() {
|
||
return GetBuilder<AI>(
|
||
builder: (contentController) => contentController.responseMap.isNotEmpty
|
||
? contentController.isloading
|
||
? Column(
|
||
children: [
|
||
const MyCircularProgressIndicator(),
|
||
Text(
|
||
'We are process picture please wait '.tr,
|
||
style: AppStyle.title,
|
||
)
|
||
],
|
||
)
|
||
: SizedBox(
|
||
height: Get.height * .7,
|
||
child: ListView(
|
||
children: [
|
||
Container(
|
||
decoration: AppStyle.boxDecoration1,
|
||
// height: Get.height * .4,
|
||
child: Padding(
|
||
padding: const EdgeInsets.all(5),
|
||
child: contentController.responseMap.isEmpty
|
||
? Center(
|
||
child: Text(
|
||
'Capture an Image of Your Driver’s License'
|
||
.tr,
|
||
style: AppStyle.title,
|
||
),
|
||
)
|
||
: Column(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.spaceBetween,
|
||
crossAxisAlignment: CrossAxisAlignment.start,
|
||
children: [
|
||
Row(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.spaceBetween,
|
||
children: <Widget>[
|
||
Column(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.start,
|
||
crossAxisAlignment:
|
||
CrossAxisAlignment.start,
|
||
children: [
|
||
Row(
|
||
children: [
|
||
Text(
|
||
'${'Name'.tr} :${contentController.responseMap['first_name']}',
|
||
style: AppStyle.subtitle,
|
||
),
|
||
Text(
|
||
' ${contentController.responseMap['last_name']}',
|
||
style: AppStyle.subtitle,
|
||
),
|
||
],
|
||
),
|
||
Text(
|
||
'${'Name in arabic'.tr}: ${contentController.responseMap['name_in_arabic']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'Drivers License Class'.tr}: ${contentController.responseMap['class']}',
|
||
style: AppStyle.title,
|
||
),
|
||
],
|
||
),
|
||
],
|
||
),
|
||
Row(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.spaceBetween,
|
||
children: [
|
||
Text(
|
||
'${'National Number'.tr}: ${contentController.responseMap['id']}',
|
||
style: AppStyle.title,
|
||
),
|
||
// Image.memory(
|
||
// scanDocumentsByApi
|
||
// .imagePortrait,
|
||
// width: 60,
|
||
// ),
|
||
]),
|
||
Text(
|
||
'${'Address'.tr}: ${contentController.responseMap['address']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Row(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.spaceBetween,
|
||
children: [
|
||
Text(
|
||
'${'Date of Birth'.tr}: ${contentController.responseMap['dob']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'Age'.tr} : ${contentController.responseMap['age_in_years']}',
|
||
style: AppStyle.title,
|
||
),
|
||
],
|
||
),
|
||
Row(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.spaceBetween,
|
||
children: [
|
||
Text(
|
||
'${'Expiry Date'.tr}: ${contentController.responseMap['expiration_date']}',
|
||
style: DateTime.parse(
|
||
contentController
|
||
.responseMap[
|
||
'expiration_date']
|
||
.toString())
|
||
.isBefore(
|
||
contentController.now)
|
||
? AppStyle.title.copyWith(
|
||
color: AppColor.redColor)
|
||
: AppStyle.title.copyWith(
|
||
color: AppColor.greenColor),
|
||
),
|
||
],
|
||
),
|
||
],
|
||
),
|
||
),
|
||
),
|
||
const SizedBox(
|
||
height: 10,
|
||
),
|
||
DateTime.parse(contentController
|
||
.responseMap['expiration_date']
|
||
.toString())
|
||
.isBefore(contentController.now)
|
||
? Text(
|
||
'You can\'t continue with us .\nYou should renew Driver license'
|
||
.tr,
|
||
style: AppStyle.title
|
||
.copyWith(color: AppColor.redColor),
|
||
)
|
||
: MyElevatedButton(
|
||
kolor: AppColor.greenColor,
|
||
title: 'Lets check Car license '.tr,
|
||
onPressed: () => contentController
|
||
.getCarLicenseJordanContent()),
|
||
const SizedBox(
|
||
height: 10,
|
||
),
|
||
contentController.responseCarLicenseMapJordan.isNotEmpty
|
||
? Container(
|
||
decoration: AppStyle.boxDecoration,
|
||
// height: Get.height * .3,
|
||
width: Get.width * .9,
|
||
child: Column(
|
||
children: [
|
||
Text(
|
||
'${'Name'.tr} ${contentController.responseCarLicenseMapJordan['name']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'Address'.tr} ${contentController.responseCarLicenseMapJordan['address']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'Car Kind'.tr} ${contentController.responseCarLicenseMapJordan['car_kind']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'Color'.tr} ${contentController.responseCarLicenseMapJordan['car_color']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'Year'.tr} ${contentController.responseCarLicenseMapJordan['car_year']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'Car Plate'.tr} ${contentController.responseCarLicenseMapJordan['car_plate']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'Car Expire'.tr} ${contentController.responseCarLicenseMapJordan['expire_date_of_license']}',
|
||
style: contentController
|
||
.responseCarLicenseMapJordan
|
||
.isNotEmpty
|
||
? DateTime.parse(contentController
|
||
.responseCarLicenseMapJordan[
|
||
'expire_date_of_license']
|
||
.toString())
|
||
.isBefore(contentController.now)
|
||
? AppStyle.title.copyWith(
|
||
color: AppColor.redColor)
|
||
: AppStyle.title.copyWith(
|
||
color: AppColor.greenColor)
|
||
: null,
|
||
),
|
||
],
|
||
),
|
||
)
|
||
: const SizedBox(),
|
||
const SizedBox(
|
||
height: 10,
|
||
),
|
||
// DateTime.parse(contentController
|
||
// .responseCarLicenseMap[
|
||
// 'expire_date_of_license']
|
||
// .toString())
|
||
// .isBefore(contentController.now)
|
||
// ? Text(
|
||
// 'You can\'t continue with us .\nYou should renew Car license'
|
||
// .tr,
|
||
// style: AppStyle.title.copyWith(
|
||
// color: AppColor.redColor),
|
||
// )
|
||
// :
|
||
MyElevatedButton(
|
||
kolor: AppColor.greenColor,
|
||
title: 'Lets check License Back Face'.tr,
|
||
onPressed: () => contentController
|
||
.generateBackCarLicenseJordanContent()),
|
||
const SizedBox(
|
||
height: 10,
|
||
),
|
||
contentController.responseBackCarLicenseMap.isNotEmpty
|
||
? Container(
|
||
decoration: AppStyle.boxDecoration,
|
||
// height: 300,
|
||
child: Column(children: [
|
||
Text(
|
||
'VIN ${contentController.responseBackCarLicenseMap['vin']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'Fuel Type ${contentController.responseBackCarLicenseMap['fuelType']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'Insurance Company ${contentController.responseBackCarLicenseMap['insuranceCompany']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'Policy Number ${contentController.responseBackCarLicenseMap['policyNumber']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'Insurance Type ${contentController.responseBackCarLicenseMap['insuranceType']}',
|
||
style: AppStyle.title,
|
||
)
|
||
]))
|
||
: const SizedBox()
|
||
],
|
||
),
|
||
)
|
||
: Positioned(
|
||
top: Get.height * .06,
|
||
left: Get.width * .051,
|
||
right: Get.width * .051,
|
||
child: scanDocumentsByApi.isLoading
|
||
? Column(
|
||
children: [
|
||
const MyCircularProgressIndicator(),
|
||
Text(
|
||
'We are process picture please wait '.tr,
|
||
style: AppStyle.title,
|
||
)
|
||
],
|
||
)
|
||
: Column(
|
||
children: [
|
||
Container(
|
||
decoration: AppStyle.boxDecoration1,
|
||
height: Get.height * .35,
|
||
child: Padding(
|
||
padding: const EdgeInsets.all(5),
|
||
child: Center(
|
||
child: InkWell(
|
||
onTap: () async {
|
||
await CRUD().allMethodForAI(
|
||
'name,address,dob,nationalNo,',
|
||
AppLink.uploadEgypt,
|
||
'idFront'); //egypt
|
||
},
|
||
child: Text(
|
||
'Take Picture Of ID Card'.tr,
|
||
style: AppStyle.title,
|
||
),
|
||
),
|
||
)),
|
||
),
|
||
],
|
||
),
|
||
),
|
||
);
|
||
}
|
||
|
||
GetBuilder<AI> jordanDriverLicenseWidget() {
|
||
return GetBuilder<AI>(
|
||
builder: (contentController) => contentController.responseMap.isNotEmpty
|
||
? Positioned(
|
||
top: Get.height * .09,
|
||
left: Get.width * .051,
|
||
right: Get.width * .051,
|
||
child: contentController.isloading
|
||
? Column(
|
||
children: [
|
||
const MyCircularProgressIndicator(),
|
||
Text(
|
||
'We are process picture please wait '.tr,
|
||
style: AppStyle.title,
|
||
)
|
||
],
|
||
)
|
||
: SizedBox(
|
||
height: Get.height * .7,
|
||
child: ListView(
|
||
children: [
|
||
Container(
|
||
decoration: AppStyle.boxDecoration,
|
||
// height: Get.height * .4,
|
||
child: Padding(
|
||
padding: const EdgeInsets.all(5),
|
||
child: contentController.responseMap.isEmpty
|
||
? Center(
|
||
child: Text(
|
||
'There is no data yet.'.tr,
|
||
style: AppStyle.title,
|
||
),
|
||
)
|
||
: Column(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.spaceBetween,
|
||
crossAxisAlignment:
|
||
CrossAxisAlignment.start,
|
||
children: [
|
||
Row(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.spaceBetween,
|
||
children: <Widget>[
|
||
Column(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.start,
|
||
crossAxisAlignment:
|
||
CrossAxisAlignment.start,
|
||
children: [
|
||
Row(
|
||
children: [
|
||
Text(
|
||
'${'Name'.tr} :${contentController.responseMap['first_name']}',
|
||
style: AppStyle.subtitle,
|
||
),
|
||
Text(
|
||
' ${contentController.responseMap['last_name']}',
|
||
style: AppStyle.subtitle,
|
||
),
|
||
],
|
||
),
|
||
Text(
|
||
'${'Name in arabic'.tr}: ${contentController.responseMap['name_in_arabic']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'Drivers License Class'.tr}: ${contentController.responseMap['class']}',
|
||
style: AppStyle.title,
|
||
),
|
||
],
|
||
),
|
||
],
|
||
),
|
||
Row(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.spaceBetween,
|
||
children: [
|
||
Text(
|
||
'${'National Number'.tr}: ${contentController.responseMap['id']}',
|
||
style: AppStyle.title,
|
||
),
|
||
// Image.memory(
|
||
// scanDocumentsByApi
|
||
// .imagePortrait,
|
||
// width: 60,
|
||
// ),
|
||
]),
|
||
Text(
|
||
'${'Address'.tr}: ${contentController.responseMap['address']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Row(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.spaceBetween,
|
||
children: [
|
||
Text(
|
||
'${'Date of Birth'.tr}: ${contentController.responseMap['dob']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'Age'.tr} : ${contentController.responseMap['age_in_years']}',
|
||
style: AppStyle.title,
|
||
),
|
||
],
|
||
),
|
||
Row(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.spaceBetween,
|
||
children: [
|
||
Text(
|
||
'${'Expiry Date'.tr}: ${contentController.responseMap['expiration_date']}',
|
||
style: DateTime.parse(
|
||
contentController
|
||
.responseMap[
|
||
'expiration_date']
|
||
.toString())
|
||
.isBefore(
|
||
contentController.now)
|
||
? AppStyle.title.copyWith(
|
||
color: AppColor.redColor)
|
||
: AppStyle.title.copyWith(
|
||
color:
|
||
AppColor.greenColor),
|
||
),
|
||
],
|
||
),
|
||
],
|
||
),
|
||
),
|
||
),
|
||
const SizedBox(
|
||
height: 10,
|
||
),
|
||
DateTime.parse(contentController
|
||
.responseMap['expiration_date']
|
||
.toString())
|
||
.isBefore(contentController.now)
|
||
? Text(
|
||
'You can\'t continue with us .\nYou should renew Driver license'
|
||
.tr,
|
||
style: AppStyle.title
|
||
.copyWith(color: AppColor.redColor),
|
||
)
|
||
: MyElevatedButton(
|
||
kolor: AppColor.greenColor,
|
||
title: 'Lets check Car license '.tr,
|
||
onPressed: () => contentController
|
||
.getTextFromCard(
|
||
'''Extract the following information from the front face of the car license card in Jordan:
|
||
|
||
* name
|
||
* Address
|
||
* Vehicle type
|
||
* car_kind
|
||
* car_color
|
||
* Vehicle category
|
||
* car_year
|
||
* car_plate
|
||
* Registration type
|
||
* Usage type
|
||
* expire_date_of_license
|
||
|
||
Output the extracted information in the following JSON formate and make date format like YYYY-MM-DD''')),
|
||
const SizedBox(
|
||
height: 10,
|
||
),
|
||
contentController
|
||
.responseCarLicenseMapJordan.isNotEmpty
|
||
? Container(
|
||
decoration: AppStyle.boxDecoration,
|
||
// height: Get.height * .3,
|
||
width: Get.width * .9,
|
||
child: Column(
|
||
children: [
|
||
Text(
|
||
'${'Name'.tr} ${contentController.responseCarLicenseMapJordan['name']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'Address'.tr} ${contentController.responseCarLicenseMapJordan['address']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'Car Kind'.tr} ${contentController.responseCarLicenseMapJordan['car_kind']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'Color'.tr} ${contentController.responseCarLicenseMapJordan['car_color']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'Year'.tr} ${contentController.responseCarLicenseMapJordan['car_year']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'Car Plate'.tr} ${contentController.responseCarLicenseMapJordan['car_plate']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'${'ُExpire Date'.tr} ${contentController.responseCarLicenseMapJordan['expire_date_of_license']}',
|
||
style: contentController
|
||
.responseCarLicenseMapJordan
|
||
.isNotEmpty
|
||
? DateTime.parse(contentController
|
||
.responseCarLicenseMapJordan[
|
||
'expire_date_of_license']
|
||
.toString())
|
||
.isBefore(
|
||
contentController.now)
|
||
? AppStyle.title.copyWith(
|
||
color: AppColor.redColor)
|
||
: AppStyle.title.copyWith(
|
||
color: AppColor.greenColor)
|
||
: null,
|
||
),
|
||
],
|
||
),
|
||
)
|
||
: const SizedBox(),
|
||
const SizedBox(
|
||
height: 10,
|
||
),
|
||
//todo temporary
|
||
// DateTime.parse(contentController
|
||
// .responseCarLicenseMap[
|
||
// 'expire_date_of_license']
|
||
// .toString())
|
||
// .isBefore(contentController.now)
|
||
// ? Text(
|
||
// 'You can\'t continue with us .\nYou should renew Car license'
|
||
// .tr,
|
||
// style: AppStyle.title.copyWith(
|
||
// color: AppColor.redColor),
|
||
// )
|
||
// :
|
||
MyElevatedButton(
|
||
kolor: AppColor.greenColor,
|
||
title: 'Lets check License Back Face'.tr,
|
||
onPressed: () =>
|
||
contentController.getTextFromCard(
|
||
'write json output from extracting car license back face for these key ,vin,fuelType,passengerType,curbWeight,insuranceCompany,policyNumber,notes,insuranceType and output it json .dont add data else this image',
|
||
)),
|
||
const SizedBox(
|
||
height: 10,
|
||
),
|
||
contentController.responseBackCarLicenseMap.isNotEmpty
|
||
? Container(
|
||
decoration: AppStyle.boxDecoration,
|
||
// height: 300,
|
||
child: Column(children: [
|
||
Text(
|
||
'VIN ${contentController.responseBackCarLicenseMap['vin']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'Fuel Type ${contentController.responseBackCarLicenseMap['fuelType']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'Insurance Company ${contentController.responseBackCarLicenseMap['insuranceCompany']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'Policy Number ${contentController.responseBackCarLicenseMap['policyNumber']}',
|
||
style: AppStyle.title,
|
||
),
|
||
Text(
|
||
'Insurance Type ${contentController.responseBackCarLicenseMap['insuranceType']}',
|
||
style: AppStyle.title,
|
||
)
|
||
]))
|
||
: const SizedBox()
|
||
// MyElevatedButton(
|
||
// title: 'Detect Your Face '.tr,
|
||
// onPressed: () => scanDocumentsByApi
|
||
// .checkMatchFaceApi(),
|
||
// ),
|
||
// scanDocumentsByApi.res.isEmpty
|
||
// ? const SizedBox()
|
||
// : scanDocumentsByApi.res['data']
|
||
// ['result']
|
||
// .toString() ==
|
||
// 'Same'
|
||
// ? MyElevatedButton(
|
||
// onPressed: () async {
|
||
// await registerCaptainController
|
||
// .register();
|
||
// await registerCaptainController
|
||
// .addLisence();
|
||
// // await scanDocumentsByApi
|
||
// // .uploadImagePortrate();
|
||
// },
|
||
// title:
|
||
// 'Go to next step\nscan Car License.'
|
||
// .tr,
|
||
// kolor: AppColor.greenColor,
|
||
// )
|
||
// : const SizedBox(),
|
||
// MyElevatedButton(
|
||
// title: 'get sql data',
|
||
// kolor: AppColor.yellowColor,
|
||
// onPressed: () {
|
||
// sql.deleteAllData(
|
||
// TableName.faceDetectTimes);
|
||
// sql
|
||
// .getAllData(
|
||
// TableName.faceDetectTimes)
|
||
// value[0]['faceDetectTimes']));
|
||
// },
|
||
// ),
|
||
],
|
||
),
|
||
),
|
||
)
|
||
: Positioned(
|
||
top: Get.height * .06,
|
||
left: Get.width * .051,
|
||
right: Get.width * .051,
|
||
child: scanDocumentsByApi.isLoading
|
||
? Column(
|
||
children: [
|
||
const MyCircularProgressIndicator(),
|
||
Text(
|
||
'We are process picture please wait '.tr,
|
||
style: AppStyle.title,
|
||
)
|
||
],
|
||
)
|
||
: Column(
|
||
children: [
|
||
Container(
|
||
decoration: AppStyle.boxDecoration,
|
||
height: Get.height * .35,
|
||
child: Padding(
|
||
padding: const EdgeInsets.all(5),
|
||
child: Center(
|
||
child: Text(
|
||
'There is no data yet.'.tr,
|
||
style: AppStyle.title,
|
||
),
|
||
)),
|
||
),
|
||
],
|
||
),
|
||
),
|
||
);
|
||
}
|
||
|
||
GetBuilder<ScanDocumentsByApi> usaDriverLicensWidget() {
|
||
return GetBuilder<ScanDocumentsByApi>(
|
||
builder: (scanDocumentsByApi) => scanDocumentsByApi.responseMap.isNotEmpty
|
||
? Positioned(
|
||
top: Get.height * .06,
|
||
left: Get.width * .051,
|
||
right: Get.width * .051,
|
||
child: scanDocumentsByApi.isLoading
|
||
? Column(
|
||
children: [
|
||
const MyCircularProgressIndicator(),
|
||
Text(
|
||
'We are process picture please wait '.tr,
|
||
style: AppStyle.title,
|
||
)
|
||
],
|
||
)
|
||
: Column(
|
||
children: [
|
||
Container(
|
||
decoration: AppStyle.boxDecoration,
|
||
height: Get.height * .4,
|
||
child: Padding(
|
||
padding: const EdgeInsets.all(5),
|
||
child: scanDocumentsByApi.responseMap.isEmpty
|
||
? Center(
|
||
child: Text(
|
||
'There is no data yet.'.tr,
|
||
style: AppStyle.title,
|
||
),
|
||
)
|
||
: Column(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.spaceBetween,
|
||
crossAxisAlignment:
|
||
CrossAxisAlignment.start,
|
||
children: [
|
||
Row(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.spaceBetween,
|
||
children: <Widget>[
|
||
Column(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.start,
|
||
crossAxisAlignment:
|
||
CrossAxisAlignment.start,
|
||
children: [
|
||
Text(
|
||
'${'Name :'.tr}${scanDocumentsByApi.name}',
|
||
style: AppStyle.subtitle,
|
||
),
|
||
Row(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment
|
||
.spaceBetween,
|
||
children: [
|
||
Text(
|
||
'${'Drivers License Class: '.tr}${scanDocumentsByApi.licenseClass}',
|
||
style: AppStyle.title,
|
||
),
|
||
Image.memory(
|
||
scanDocumentsByApi
|
||
.imageSignature,
|
||
width: 100,
|
||
height: 30,
|
||
),
|
||
],
|
||
),
|
||
],
|
||
),
|
||
],
|
||
),
|
||
Row(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.spaceBetween,
|
||
children: [
|
||
Text(
|
||
'${'Document Number: '.tr}${scanDocumentsByApi.documentNo}',
|
||
style: AppStyle.title,
|
||
),
|
||
Image.memory(
|
||
scanDocumentsByApi.imagePortrait,
|
||
width: 60,
|
||
),
|
||
]),
|
||
Text(
|
||
'${'Address: '.tr}${scanDocumentsByApi.address}',
|
||
style: AppStyle.title,
|
||
),
|
||
Row(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.spaceBetween,
|
||
children: [
|
||
Text(
|
||
'${'Height: '.tr}${scanDocumentsByApi.height}',
|
||
style: AppStyle.subtitle,
|
||
),
|
||
Text(
|
||
'Postal Code: ${scanDocumentsByApi.postalCode}',
|
||
style: AppStyle.subtitle,
|
||
),
|
||
Text(
|
||
'Sex: ${scanDocumentsByApi.sex}',
|
||
style: AppStyle.subtitle,
|
||
),
|
||
],
|
||
),
|
||
Text(
|
||
'Territorial Code: ${scanDocumentsByApi.stateCode}',
|
||
style: AppStyle.subtitle,
|
||
),
|
||
Row(
|
||
mainAxisAlignment:
|
||
MainAxisAlignment.spaceBetween,
|
||
children: [
|
||
Text(
|
||
'${'Expiry Date: '.tr}${scanDocumentsByApi.expireDate}',
|
||
style: DateTime.parse(
|
||
scanDocumentsByApi
|
||
.responseMap['data']
|
||
['ocr']
|
||
['dateOfExpiry']
|
||
.toString())
|
||
.isBefore(
|
||
scanDocumentsByApi.now)
|
||
? AppStyle.title.copyWith(
|
||
color: AppColor.redColor)
|
||
: AppStyle.title.copyWith(
|
||
color: AppColor.greenColor),
|
||
),
|
||
Text(
|
||
'${'Date of Birth: '.tr}${scanDocumentsByApi.dob}',
|
||
style: AppStyle.title,
|
||
),
|
||
],
|
||
),
|
||
],
|
||
),
|
||
),
|
||
),
|
||
DateTime.parse(scanDocumentsByApi.responseMap['data']
|
||
['ocr']['dateOfExpiry']
|
||
.toString())
|
||
.isBefore(scanDocumentsByApi.now)
|
||
? Text(
|
||
'You can\'t continue with us .\nYou should renew Driver license',
|
||
style: AppStyle.title
|
||
.copyWith(color: AppColor.redColor),
|
||
)
|
||
: MyElevatedButton(
|
||
title: 'Detect Your Face '.tr,
|
||
onPressed: () =>
|
||
scanDocumentsByApi.checkMatchFaceApi(),
|
||
),
|
||
scanDocumentsByApi.res.isEmpty
|
||
? const SizedBox()
|
||
: scanDocumentsByApi.res['data']['result']
|
||
.toString() ==
|
||
'Same'
|
||
? MyElevatedButton(
|
||
onPressed: () async {
|
||
await registerCaptainController
|
||
.register();
|
||
await registerCaptainController
|
||
.addLisence();
|
||
// await scanDocumentsByApi
|
||
// .uploadImagePortrate();
|
||
},
|
||
title:
|
||
'Go to next step\nscan Car License.'.tr,
|
||
kolor: AppColor.greenColor,
|
||
)
|
||
: const SizedBox(),
|
||
MyElevatedButton(
|
||
title: 'get sql data',
|
||
kolor: AppColor.yellowColor,
|
||
onPressed: () {
|
||
sql.deleteAllData(TableName.faceDetectTimes);
|
||
sql.getAllData(TableName.faceDetectTimes);
|
||
},
|
||
)
|
||
],
|
||
),
|
||
)
|
||
: Positioned(
|
||
top: Get.height * .06,
|
||
left: Get.width * .051,
|
||
right: Get.width * .051,
|
||
child: scanDocumentsByApi.isLoading
|
||
? Column(
|
||
children: [
|
||
const MyCircularProgressIndicator(),
|
||
Text(
|
||
'We are process picture please wait '.tr,
|
||
style: AppStyle.title,
|
||
)
|
||
],
|
||
)
|
||
: Column(
|
||
children: [
|
||
Container(
|
||
decoration: AppStyle.boxDecoration,
|
||
height: Get.height * .35,
|
||
child: Padding(
|
||
padding: const EdgeInsets.all(5),
|
||
child: Center(
|
||
child: Text(
|
||
'There is no data yet.'.tr,
|
||
style: AppStyle.title,
|
||
),
|
||
)),
|
||
),
|
||
],
|
||
),
|
||
),
|
||
);
|
||
}
|
||
}
|
||
|
||
class EgyptDocuments extends StatelessWidget {
|
||
const EgyptDocuments({
|
||
super.key,
|
||
required this.contentController,
|
||
});
|
||
|
||
final AI contentController;
|
||
|
||
@override
|
||
Widget build(BuildContext context) {
|
||
return Positioned(
|
||
top: 3,
|
||
left: Get.width * .1,
|
||
right: Get.width * .1,
|
||
child: MyElevatedButton(
|
||
title: 'Take Picture Of ID Card'.tr, //egypt
|
||
onPressed: () async {
|
||
await CRUD().allMethodForAI('name,address,dob,nationalNo,',
|
||
AppLink.uploadEgypt, 'idFront'); //egypt
|
||
},
|
||
));
|
||
}
|
||
}
|
||
|
||
class JordanDocumants extends StatelessWidget {
|
||
const JordanDocumants({
|
||
super.key,
|
||
required this.contentController,
|
||
});
|
||
|
||
final AI contentController;
|
||
|
||
@override
|
||
Widget build(BuildContext context) {
|
||
return Positioned(
|
||
top: 3,
|
||
left: Get.width * .1,
|
||
right: Get.width * .1,
|
||
child: MyElevatedButton(
|
||
title: 'Take Picture Of Driver License Card'.tr,
|
||
onPressed: () {
|
||
contentController.getDriverLicenseJordanContent();
|
||
},
|
||
));
|
||
}
|
||
}
|
||
|
||
class UsaAiDocuments extends StatelessWidget {
|
||
const UsaAiDocuments({
|
||
super.key,
|
||
required this.scanDocumentsByApi,
|
||
});
|
||
|
||
final ScanDocumentsByApi scanDocumentsByApi;
|
||
|
||
@override
|
||
Widget build(BuildContext context) {
|
||
return Positioned(
|
||
top: 3,
|
||
left: Get.width * .2,
|
||
right: Get.width * .2,
|
||
child: MyElevatedButton(
|
||
title: 'Take Picture Of ID Card'.tr,
|
||
onPressed: () {
|
||
scanDocumentsByApi.scanDocumentsByApi();
|
||
},
|
||
));
|
||
}
|
||
}
|