ovr ticker validation added.

design_3.0_incident_module
Sikander Saleem 21 hours ago
parent 5d945e07cb
commit 6d4bc4694a

@ -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;

@ -42,6 +42,10 @@ class IncidentProvider extends ChangeNotifier {
try {
Response response = await ApiManager.instance.post(URLs.getOvrTicketDetails, body: {"ticketNumber": ticketNumber}, showToast: false);
if (response.statusCode >= 200 && response.statusCode < 300) {
if (json.decode(response.body)["statusCode"] == 404) {
Fluttertoast.showToast(msg: json.decode(response.body)["message"] ?? "OVR Ticket not found");
return null;
}
return json.decode(response.body)["data"];
}
} catch (error) {

Loading…
Cancel
Save