|
|
|
|
@ -73,6 +73,15 @@ class _CreateIncidentRequestPageState extends State<CreateIncidentRequestPage> {
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> payload = {};
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic>? ovrDetails;
|
|
|
|
|
|
|
|
|
|
bool get isOvrVerified => ovrDetails != null;
|
|
|
|
|
|
|
|
|
|
bool ovrVerifying = false;
|
|
|
|
|
String ovrTicketNumber = "";
|
|
|
|
|
|
|
|
|
|
TextEditingController ovrTicketController = TextEditingController();
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
super.initState();
|
|
|
|
|
@ -372,6 +381,7 @@ class _CreateIncidentRequestPageState extends State<CreateIncidentRequestPage> {
|
|
|
|
|
8.height,
|
|
|
|
|
AppTextFormField(
|
|
|
|
|
initialValue: "",
|
|
|
|
|
controller: ovrTicketController,
|
|
|
|
|
labelText: "OVR Ticket Number",
|
|
|
|
|
validator: (value) {
|
|
|
|
|
if ((value ?? "").isEmpty) return "Mandatory";
|
|
|
|
|
@ -381,10 +391,56 @@ class _CreateIncidentRequestPageState extends State<CreateIncidentRequestPage> {
|
|
|
|
|
backgroundColor: AppColor.fieldBgColor(context),
|
|
|
|
|
labelStyle: AppTextStyles.textFieldLabelStyle.copyWith(color: AppColor.textColor(context)),
|
|
|
|
|
showShadow: false,
|
|
|
|
|
suffixIcon: Row(
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
children: [
|
|
|
|
|
TextButton(
|
|
|
|
|
onPressed: () {
|
|
|
|
|
if (ovrVerifying || isOvrVerified) return;
|
|
|
|
|
if (ovrTicketNumber.isEmpty) {
|
|
|
|
|
"Please enter OVR ticket number".showToast;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
ovrVerifying = true;
|
|
|
|
|
setState(() {});
|
|
|
|
|
context.read<IncidentProvider>().getOvrTicketDetails(ovrTicketNumber).then((details) {
|
|
|
|
|
ovrDetails = details;
|
|
|
|
|
if (ovrDetails != null) {
|
|
|
|
|
payload["ovrTicketNumber"] = ovrTicketNumber;
|
|
|
|
|
"OVR Ticket verified successfully".showToast;
|
|
|
|
|
}
|
|
|
|
|
}).whenComplete(() {
|
|
|
|
|
ovrVerifying = false;
|
|
|
|
|
setState(() {});
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
child: ovrVerifying
|
|
|
|
|
? SizedBox(
|
|
|
|
|
width: 16.toScreenHeight,
|
|
|
|
|
height: 16.toScreenHeight,
|
|
|
|
|
child: const CircularProgressIndicator(color: AppColor.primary10, strokeWidth: 2),
|
|
|
|
|
)
|
|
|
|
|
: isOvrVerified
|
|
|
|
|
? const Row(
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
children: [Icon(Icons.done), Text("Verified")],
|
|
|
|
|
)
|
|
|
|
|
: const Text("Verify"),
|
|
|
|
|
),
|
|
|
|
|
if (isOvrVerified)
|
|
|
|
|
const Icon(Icons.clear, color: AppColor.red30).paddingOnly(end: 8).onPress(() {
|
|
|
|
|
ovrDetails = null;
|
|
|
|
|
ovrTicketNumber = "";
|
|
|
|
|
ovrTicketController.clear();
|
|
|
|
|
payload.remove("ovrTicketNumber");
|
|
|
|
|
setState(() {});
|
|
|
|
|
}),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
textInputType: TextInputType.name,
|
|
|
|
|
textInputAction: TextInputAction.next,
|
|
|
|
|
onChange: (value) {
|
|
|
|
|
payload["ovrTicketNumber"] = value;
|
|
|
|
|
ovrTicketNumber = value;
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
@ -621,6 +677,11 @@ class _CreateIncidentRequestPageState extends State<CreateIncidentRequestPage> {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ovrSystem?.value == 1 && isOvrVerified == false) {
|
|
|
|
|
"Please verify OVR Ticket Number".showToast;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (occurrenceDate == null) {
|
|
|
|
|
"Please select occurrence Data".showToast;
|
|
|
|
|
return;
|
|
|
|
|
|