477 lines
19 KiB
Dart
477 lines
19 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:service/constant/colors.dart';
|
|
import 'package:service/constant/links.dart';
|
|
import 'package:service/controller/functions/crud.dart';
|
|
import 'package:service/controller/mainController/main_controller.dart';
|
|
import 'package:service/controller/mainController/pages/best_driver_page.dart';
|
|
import 'package:service/controller/mainController/pages/complaint.dart';
|
|
import 'package:service/controller/mainController/pages/edit_car_plate.dart';
|
|
import 'package:service/controller/mainController/pages/passengers_cant_regster.dart';
|
|
import 'package:service/views/widgets/elevated_btn.dart';
|
|
import 'package:service/views/widgets/my_dialog.dart';
|
|
import 'package:service/views/widgets/my_textField.dart';
|
|
|
|
import '../../constant/style.dart';
|
|
import '../../controller/mainController/pages/add_car.dart';
|
|
import '../../controller/mainController/pages/contact_page.dart';
|
|
import '../../controller/mainController/pages/drivers_cant_register.dart';
|
|
import '../../controller/mainController/pages/welcome_call.dart';
|
|
import '../widgets/my_scafold.dart';
|
|
|
|
class Main extends StatelessWidget {
|
|
Main({super.key});
|
|
MainController mainController = Get.put(MainController());
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MyScaffold(title: 'Sefer Service'.tr, isleading: false, body: [
|
|
ListView(
|
|
children: [
|
|
InkWell(
|
|
onTap: () {
|
|
MyDialog().getDialog(
|
|
'insert passenger phone'.tr,
|
|
'midTitle',
|
|
Column(
|
|
children: [
|
|
Form(
|
|
key: mainController.formKey,
|
|
child: MyTextForm(
|
|
controller: mainController.passengerPhoneController,
|
|
label: 'insert passenger phone'.tr,
|
|
hint: 'insert passenger phone'.tr,
|
|
type: TextInputType.phone,
|
|
)),
|
|
],
|
|
),
|
|
() {
|
|
mainController.searchPassengerByPhone();
|
|
},
|
|
);
|
|
},
|
|
child: Container(
|
|
decoration: AppStyle.boxDecoration,
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Text(
|
|
'passenger details by phone'.tr,
|
|
style: AppStyle.title,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
const SizedBox(
|
|
height: 20,
|
|
),
|
|
InkWell(
|
|
onTap: () {
|
|
MyDialog().getDialog(
|
|
'insert Driver phone'.tr,
|
|
'midTitle',
|
|
Column(
|
|
children: [
|
|
Form(
|
|
key: mainController.formKey,
|
|
child: MyTextForm(
|
|
controller: mainController.driverPhoneController,
|
|
label: 'insert Driver phone'.tr,
|
|
hint: 'insert Driver phone'.tr,
|
|
type: TextInputType.phone,
|
|
)),
|
|
],
|
|
),
|
|
() {
|
|
mainController.searchDriverByPhone();
|
|
},
|
|
);
|
|
},
|
|
child: Container(
|
|
decoration: AppStyle.boxDecoration,
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Text(
|
|
'Driver details by phone'.tr,
|
|
style: AppStyle.title,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
const SizedBox(
|
|
height: 20,
|
|
),
|
|
InkWell(
|
|
onTap: () async {
|
|
await mainController.getDriverNotCompleteRegistration();
|
|
Get.to(() => DriversCantRegister());
|
|
},
|
|
child: Container(
|
|
decoration: AppStyle.boxDecoration,
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Text(
|
|
'Drivers Cant Register'.tr,
|
|
style: AppStyle.title,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
const SizedBox(
|
|
height: 20,
|
|
),
|
|
InkWell(
|
|
onTap: () async {
|
|
await mainController.getPassengerNotCompleteRegistration();
|
|
Get.to(() => PassengersCantRegister());
|
|
},
|
|
child: Container(
|
|
decoration: AppStyle.boxDecoration,
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Text(
|
|
'Passengers Cant Register'.tr,
|
|
style: AppStyle.title,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
const SizedBox(
|
|
height: 20,
|
|
),
|
|
InkWell(
|
|
onTap: () async {
|
|
await mainController.getdriverWithoutCar();
|
|
if (mainController.driverWithoutCar.isNotEmpty) {
|
|
Get.to(() => const AddCar());
|
|
}
|
|
},
|
|
child: Container(
|
|
decoration: AppStyle.boxDecoration,
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Text(
|
|
'Add car'.tr,
|
|
style: AppStyle.title,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
InkWell(
|
|
onTap: () async {
|
|
await mainController.getCarPlateNotEdit();
|
|
if (mainController.carPlateNotEdit.isNotEmpty) {
|
|
Get.to(() => const EditCarPlate());
|
|
}
|
|
},
|
|
child: Container(
|
|
decoration: AppStyle.boxDecoration,
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Text(
|
|
'Edit car plate'.tr,
|
|
style: AppStyle.title,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
const SizedBox(
|
|
height: 20,
|
|
),
|
|
InkWell(
|
|
onTap: () async {
|
|
// await mainController.getCarPlateNotEdit();
|
|
// if (mainController.carPlateNotEdit.isNotEmpty) {
|
|
Get.to(() => const Complaint());
|
|
// }
|
|
},
|
|
child: Container(
|
|
decoration: AppStyle.boxDecoration,
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Text(
|
|
"View complaint".tr,
|
|
style: AppStyle.title,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
const SizedBox(
|
|
height: 20,
|
|
),
|
|
InkWell(
|
|
onTap: () async {
|
|
await mainController.getNewDriverRegister();
|
|
// if (mainController.carPlateNotEdit.isNotEmpty) {
|
|
Get.to(() => const WelcomeCall());
|
|
// }
|
|
},
|
|
child: Container(
|
|
decoration: AppStyle.boxDecoration,
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Text(
|
|
"Welcome call".tr,
|
|
style: AppStyle.title,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
const SizedBox(
|
|
height: 20,
|
|
),
|
|
InkWell(
|
|
onTap: () async {
|
|
await mainController.getNewDriverRegister();
|
|
// if (mainController.carPlateNotEdit.isNotEmpty) {
|
|
Get.to(() => DriverTheBest());
|
|
// }
|
|
},
|
|
child: Container(
|
|
decoration: AppStyle.boxDecoration,
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Text(
|
|
"best driver".tr,
|
|
style: AppStyle.title,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
const SizedBox(
|
|
height: 20,
|
|
),
|
|
InkWell(
|
|
onTap: () async {
|
|
Get.defaultDialog(
|
|
barrierDismissible: false,
|
|
title: "Add Driver Who Wants to Work".tr,
|
|
content: SizedBox(
|
|
width: Get.width * .7,
|
|
height: 300,
|
|
child: Form(
|
|
key: mainController.formKey,
|
|
child: ListView(
|
|
children: [
|
|
MyTextForm(
|
|
controller: mainController.driverNameController,
|
|
label: 'Insert Name of Driver'.tr,
|
|
hint: 'Insert Name of Driver'.tr,
|
|
type: TextInputType.name),
|
|
MyTextForm(
|
|
controller: mainController.nationalIdController,
|
|
label: 'Insert national ID of Driver'.tr,
|
|
hint: 'Insert national ID of Driver'.tr,
|
|
type: TextInputType.number),
|
|
MyTextForm(
|
|
controller: mainController.phoneController,
|
|
label: 'Insert phone of Driver'.tr,
|
|
hint: 'Insert phone of Driver'.tr,
|
|
type: TextInputType.phone),
|
|
MyTextForm(
|
|
controller: mainController.licenseTypeController,
|
|
label: 'Insert license type of Driver'.tr,
|
|
hint: 'Insert license type of Driver'.tr,
|
|
type: TextInputType.name),
|
|
MyTextForm(
|
|
controller: mainController.siteDriverController,
|
|
label: 'Insert site of Driver'.tr,
|
|
hint: 'Insert site of Driver'.tr,
|
|
type: TextInputType.name),
|
|
MyTextForm(
|
|
controller: mainController.birthDateController,
|
|
label: 'Insert birth_date of Driver'.tr,
|
|
hint: 'Insert license type of Driver'.tr,
|
|
type: TextInputType.number),
|
|
],
|
|
)),
|
|
),
|
|
confirm: MyElevatedButton(
|
|
title: 'Add'.tr,
|
|
onPressed: () async {
|
|
if (mainController.formKey.currentState!.validate()) {
|
|
var res = await CRUD()
|
|
.post(link: AppLink.addDriverWantWork, payload: {
|
|
"driver_name": mainController.driverNameController.text,
|
|
"national_id": mainController.nationalIdController.text,
|
|
"birth_date": mainController.birthDateController.text,
|
|
"site": mainController.siteDriverController.text,
|
|
"license_type":
|
|
mainController.licenseTypeController.text,
|
|
"phone": mainController.phoneController.text,
|
|
});
|
|
if (res != 'failure') {
|
|
Get.back();
|
|
mainController.driverNameController.clear();
|
|
mainController.nationalIdController.clear();
|
|
mainController.birthDateController.clear();
|
|
mainController.licenseTypeController.clear();
|
|
mainController.siteDriverController.clear();
|
|
mainController.phoneController.clear();
|
|
Get.snackbar('done', '',
|
|
backgroundColor: AppColor.greenColor);
|
|
}
|
|
}
|
|
},
|
|
kolor: AppColor.greenColor,
|
|
),
|
|
cancel: MyElevatedButton(
|
|
title: 'Cancel'.tr,
|
|
kolor: AppColor.redColor,
|
|
onPressed: () {
|
|
Get.back();
|
|
}),
|
|
);
|
|
},
|
|
child: Container(
|
|
decoration: AppStyle.boxDecoration,
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Text(
|
|
"Add Driver Who Wants to Work".tr,
|
|
style: AppStyle.title,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
const SizedBox(
|
|
height: 20,
|
|
),
|
|
InkWell(
|
|
onTap: () async {
|
|
Get.defaultDialog(
|
|
barrierDismissible: false,
|
|
title: "Add Car Who Wants to Work".tr,
|
|
content: SizedBox(
|
|
width: Get.width * .7,
|
|
height: 300,
|
|
child: Form(
|
|
key: mainController.formKey,
|
|
child: ListView(
|
|
children: [
|
|
MyTextForm(
|
|
controller: mainController.carOwnerWorkController,
|
|
label: 'Insert Name of Owner'.tr,
|
|
hint: 'Insert Name of Owner'.tr,
|
|
type: TextInputType.name),
|
|
MyTextForm(
|
|
controller: mainController.carNumberController,
|
|
label: 'Insert car_number of Driver'.tr,
|
|
hint: 'Insert car_number of Driver'.tr,
|
|
type: TextInputType.name),
|
|
MyTextForm(
|
|
controller: mainController.phoneCarController,
|
|
label: 'Insert phone of Owner'.tr,
|
|
hint: 'Insert phone of Owner'.tr,
|
|
type: TextInputType.phone),
|
|
MyTextForm(
|
|
controller:
|
|
mainController.manufactureYearController,
|
|
label: 'Insert year of Car'.tr,
|
|
hint: 'Insert year of Car'.tr,
|
|
type: TextInputType.number),
|
|
MyTextForm(
|
|
controller: mainController.carModelController,
|
|
label: 'Insert car_model of Driver'.tr,
|
|
hint: 'Insert car_model of Driver'.tr,
|
|
type: TextInputType.name),
|
|
MyTextForm(
|
|
controller: mainController.siteCarController,
|
|
label: 'Insert site of Owner'.tr,
|
|
hint: 'Insert site of Owner'.tr,
|
|
type: TextInputType.name),
|
|
MyTextForm(
|
|
controller: mainController.carTypeController,
|
|
label: 'Insert car_type of Driver'.tr,
|
|
hint: 'Insert car_type of Driver'.tr,
|
|
type: TextInputType.name),
|
|
MyTextForm(
|
|
controller:
|
|
mainController.registrationDateController,
|
|
label: 'Insert registration_date of Car'.tr,
|
|
hint: 'Insert registration_date of Car'.tr,
|
|
type: TextInputType.datetime),
|
|
],
|
|
)),
|
|
),
|
|
confirm: MyElevatedButton(
|
|
title: 'Add'.tr,
|
|
onPressed: () async {
|
|
if (mainController.formKey.currentState!.validate()) {
|
|
var res = await CRUD()
|
|
.post(link: AppLink.addCarWantWork, payload: {
|
|
"owner_name":
|
|
mainController.carOwnerWorkController.text,
|
|
"car_number": mainController.carNumberController.text,
|
|
"manufacture_year":
|
|
mainController.manufactureYearController.text,
|
|
"car_model": mainController.carModelController.text,
|
|
"car_type": mainController.carTypeController.text,
|
|
"site": mainController.siteCarController.text,
|
|
"registration_date":
|
|
mainController.registrationDateController.text,
|
|
"phone": mainController.phoneCarController.text,
|
|
});
|
|
if (res != 'failure') {
|
|
Get.back();
|
|
mainController.ownerController.clear();
|
|
mainController.carNumberController.clear();
|
|
mainController.manufactureYearController.clear();
|
|
mainController.carModelController.clear();
|
|
mainController.siteCarController.clear();
|
|
mainController.carTypeController.clear();
|
|
mainController.registrationDateController.clear();
|
|
mainController.phoneController.clear();
|
|
Get.snackbar('done', '',
|
|
backgroundColor: AppColor.greenColor);
|
|
}
|
|
}
|
|
},
|
|
kolor: AppColor.greenColor,
|
|
),
|
|
cancel: MyElevatedButton(
|
|
title: 'Cancel'.tr,
|
|
kolor: AppColor.redColor,
|
|
onPressed: () {
|
|
Get.back();
|
|
}),
|
|
);
|
|
},
|
|
child: Container(
|
|
decoration: AppStyle.boxDecoration,
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Text(
|
|
"Add Car Who Wants to Work".tr,
|
|
style: AppStyle.title,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
const SizedBox(
|
|
height: 20,
|
|
),
|
|
// GestureDetector(
|
|
// onTap: () {
|
|
// Get.to(() => const ContactPage());
|
|
// },
|
|
// child: Container(
|
|
// decoration: AppStyle.boxDecoration,
|
|
// child: const Center(child: Text('contact')),
|
|
// ),
|
|
// )
|
|
],
|
|
)
|
|
]);
|
|
}
|
|
}
|