980 lines
50 KiB
Dart
980 lines
50 KiB
Dart
import 'package:SEFER/constant/box_name.dart';
|
|
import 'package:SEFER/controller/functions/crud.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/constant/table_names.dart';
|
|
import 'package:SEFER/controller/auth/captin/register_captin_controller.dart';
|
|
import 'package:SEFER/controller/functions/ocr_controller.dart';
|
|
import 'package:SEFER/main.dart';
|
|
import 'package:SEFER/views/widgets/elevated_btn.dart';
|
|
import 'package:SEFER/views/widgets/my_scafold.dart';
|
|
import 'package:SEFER/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());
|
|
AI contentController = Get.put(AI());
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MyScafolld(
|
|
title: 'Documents check'.tr,
|
|
body: [
|
|
// box.read(BoxName.countryCode) == 'USA'
|
|
// ? UsaAiDocuments(scanDocumentsByApi: scanDocumentsByApi)
|
|
// : box.read(BoxName.countryCode) == 'Jordan'
|
|
// ? JordanDocumants(contentController: contentController)
|
|
// :
|
|
// EgyptDocuments(contentController: contentController),
|
|
// box.read(BoxName.countryCode) == 'USA'
|
|
// ? usaDriverLicensWidget()
|
|
// : box.read(BoxName.countryCode) == 'Jordan'
|
|
// ? jordanDriverLicenseWidget()
|
|
// :
|
|
egyptDriverLicenseWidget()
|
|
],
|
|
isleading: true);
|
|
}
|
|
|
|
GetBuilder<AI> egyptDriverLicenseWidget() {
|
|
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.boxDecoration1,
|
|
// height: Get.height * .4,
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(5),
|
|
child: contentController.responseMap.isEmpty
|
|
? Center(
|
|
child: Text(
|
|
'Take Picture Of ID Card'.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.responseCarLicenseMap.isNotEmpty
|
|
? Container(
|
|
decoration: AppStyle.boxDecoration,
|
|
// height: Get.height * .3,
|
|
width: Get.width * .9,
|
|
child: Column(
|
|
children: [
|
|
Text(
|
|
'${'Name'.tr} ${contentController.responseCarLicenseMap['name']}',
|
|
style: AppStyle.title,
|
|
),
|
|
Text(
|
|
'${'Address'.tr} ${contentController.responseCarLicenseMap['address']}',
|
|
style: AppStyle.title,
|
|
),
|
|
Text(
|
|
'${'Car Kind'.tr} ${contentController.responseCarLicenseMap['car_kind']}',
|
|
style: AppStyle.title,
|
|
),
|
|
Text(
|
|
'${'Color'.tr} ${contentController.responseCarLicenseMap['car_color']}',
|
|
style: AppStyle.title,
|
|
),
|
|
Text(
|
|
'${'Year'.tr} ${contentController.responseCarLicenseMap['car_year']}',
|
|
style: AppStyle.title,
|
|
),
|
|
Text(
|
|
'${'Car Plate'.tr} ${contentController.responseCarLicenseMap['car_plate']}',
|
|
style: AppStyle.title,
|
|
),
|
|
Text(
|
|
'${'Car Expire'.tr} ${contentController.responseCarLicenseMap['expire_date_of_license']}',
|
|
style: contentController
|
|
.responseCarLicenseMap
|
|
.isNotEmpty
|
|
? DateTime.parse(contentController
|
|
.responseCarLicenseMap[
|
|
'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.responseCarLicenseMap.isNotEmpty
|
|
? Container(
|
|
decoration: AppStyle.boxDecoration,
|
|
// height: Get.height * .3,
|
|
width: Get.width * .9,
|
|
child: Column(
|
|
children: [
|
|
Text(
|
|
'${'Name'.tr} ${contentController.responseCarLicenseMap['name']}',
|
|
style: AppStyle.title,
|
|
),
|
|
Text(
|
|
'${'Address'.tr} ${contentController.responseCarLicenseMap['address']}',
|
|
style: AppStyle.title,
|
|
),
|
|
Text(
|
|
'${'Car Kind'.tr} ${contentController.responseCarLicenseMap['car_kind']}',
|
|
style: AppStyle.title,
|
|
),
|
|
Text(
|
|
'${'Color'.tr} ${contentController.responseCarLicenseMap['car_color']}',
|
|
style: AppStyle.title,
|
|
),
|
|
Text(
|
|
'${'Year'.tr} ${contentController.responseCarLicenseMap['car_year']}',
|
|
style: AppStyle.title,
|
|
),
|
|
Text(
|
|
'${'Car Plate'.tr} ${contentController.responseCarLicenseMap['car_plate']}',
|
|
style: AppStyle.title,
|
|
),
|
|
Text(
|
|
'${'ُExpire Date'.tr} ${contentController.responseCarLicenseMap['expire_date_of_license']}',
|
|
style: contentController
|
|
.responseCarLicenseMap
|
|
.isNotEmpty
|
|
? DateTime.parse(contentController
|
|
.responseCarLicenseMap[
|
|
'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)
|
|
// .then((value) => print(
|
|
// 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).then(
|
|
(value) => print(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,
|
|
),
|
|
)),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
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();
|
|
},
|
|
));
|
|
}
|
|
}
|