QueueMgr/lib/scanning_page.dart
2023-08-21 08:24:26 +05:30

102 lines
3.3 KiB
Dart

import 'package:flutter/material.dart';
import 'package:queue_mgr/backend/DataManager.dart';
import 'package:queue_mgr/backend/Dialogs.dart';
class ScanningPage extends StatefulWidget {
ScanningPage({super.key,required this.id});
String id;
@override
State<ScanningPage> createState() => _ScanningPageState();
}
class _ScanningPageState extends State<ScanningPage> {
int tokenID = 0;
@override
Widget build(BuildContext context) {
Map<String, dynamic> service = DataManager.instance().GetServiceById(widget.id.toString());
return Scaffold(
appBar: AppBar(title: Text("${service['name']} - Scan Mode"),),
body: Padding(
padding: const EdgeInsets.all(18.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(Icons.token),
Text(" Token ID"),
],
),
Text(tokenID.toString(),style: TextStyle(fontSize: 65),),
LimitedBox(
maxWidth: 300,
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 30.0),
child: GridView.count(crossAxisCount: 3,shrinkWrap: true,children: List.generate(9, (index){
return Padding(
padding: const EdgeInsets.all(8.0),
child: ElevatedButton(onPressed: (){OnButton(index+1);}, child: Text((index+1).toString(),style: TextStyle(fontSize: 20),)),
);
}),),
),
),
Container(
height:95,
width: 135,
padding: const EdgeInsets.symmetric(horizontal: 30.0,vertical: 10),
child: ElevatedButton(onPressed: (){OnButton(0);}, child: Text("0",style: TextStyle(fontSize: 20))),
)
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
ElevatedButton(onPressed: (){
tokenID=0;
setState(() {
});
}, child: Padding(
padding: const EdgeInsets.all(18.0),
child: Text("Clear",style: TextStyle(fontSize: 15)),
),),
ElevatedButton(onPressed: () async{
Dialogs.waiting(context);
String result = await DataManager.instance().CompleteService(widget.id, tokenID);
tokenID=0;
setState(() {
});
Dialogs.hide(context);
if(result == "0"){
//success
}else{
Dialogs.showAlertDialog(context, "Error", result);
}
}, child: Padding(
padding: const EdgeInsets.all(18.0),
child: Text("Complete",style: TextStyle(fontSize: 15)),
))
],
)
],
),
),
);
}
void OnButton(int num){
tokenID = int.parse(tokenID.toString() + num.toString());
setState(() {
});
}
}