182 lines
6.0 KiB
Dart
182 lines
6.0 KiB
Dart
import 'package:esms_project/screens/listEquipment.dart';
|
|
import 'package:esms_project/screens/listEquipmentByClient.dart';
|
|
import 'package:esms_project/screens/listEquipmentByID.dart';
|
|
import 'package:esms_project/screens/listEquipmentDelivered.dart';
|
|
import 'package:esms_project/widgets/widget_button.dart';
|
|
import 'package:esms_project/widgets/widget_input.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
class listEquipmentMain extends StatefulWidget {
|
|
@override
|
|
_listEquipmentMainState createState() => _listEquipmentMainState();
|
|
}
|
|
// TODO: Tela pesquisar via cliente
|
|
// Polir
|
|
class _listEquipmentMainState extends State<listEquipmentMain> {
|
|
final _formCli = GlobalKey<FormState>();
|
|
final _formCli2 = GlobalKey<FormState>();
|
|
TextEditingController input = TextEditingController();
|
|
TextEditingController input2 = TextEditingController();
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(body: _layout());
|
|
}
|
|
|
|
_layout() {
|
|
return Container(
|
|
padding: EdgeInsets.all(20),
|
|
child: Center(
|
|
child: SingleChildScrollView(
|
|
child: Column(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
RichText(
|
|
text: TextSpan(
|
|
style: TextStyle(
|
|
fontWeight: FontWeight.w400,
|
|
color: Colors.black,
|
|
fontSize: 30),
|
|
text: "Listagem de Aparelhos")),
|
|
RichText(
|
|
text: TextSpan(
|
|
style: TextStyle(
|
|
fontWeight: FontWeight.w300,
|
|
color: Colors.black,
|
|
fontSize: 20),
|
|
text: "Selecione uma das opções abaixo.")),
|
|
Divider(color: Colors.black38,),
|
|
FractionallySizedBox(
|
|
widthFactor: 0.7,
|
|
child: Column(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
|
children: [
|
|
BotaoCustom(
|
|
"Por Cliente",
|
|
onPressed: () => _modalInput("Digite um nome.",
|
|
"Ex. José da Silva"),
|
|
),
|
|
BotaoCustom(
|
|
"Por Número",
|
|
onPressed: () => _modalInputID("Digite um número.",
|
|
"Ex. 1123"),
|
|
),
|
|
BotaoCustom(
|
|
"Aparelhos Entregues",
|
|
onPressed: () => _goto(context, listEquipmentDelivered()),
|
|
),
|
|
BotaoCustom("Aparelhos em Aberto",
|
|
onPressed: () => _goto(context, listEquipment()))
|
|
],
|
|
),
|
|
)
|
|
],
|
|
),
|
|
)
|
|
));
|
|
}
|
|
|
|
_goto(context, page) {
|
|
setState(() {
|
|
Navigator.of(context)
|
|
.push(new MaterialPageRoute(builder: (context) => page));
|
|
});
|
|
}
|
|
|
|
_modalInputID(String label, String hint) {
|
|
input.clear();
|
|
return showDialog(
|
|
context: context,
|
|
builder: (_) => SimpleDialog(
|
|
contentPadding: EdgeInsets.all(20),
|
|
children: [
|
|
Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
Icon(Icons.search),
|
|
Text("Filtro de Pesquisa"),
|
|
],
|
|
),
|
|
Divider(color: Colors.black38),
|
|
Form(key: _formCli, child: InputNumber(label, hint, controller: input)),
|
|
Botoes(
|
|
"Pesquisar",
|
|
onPressed: () => _validateSearchID(),
|
|
),
|
|
Botoes(
|
|
"Fechar",
|
|
onPressed: () {
|
|
Navigator.of(context, rootNavigator: true).pop('dialog');
|
|
},
|
|
)
|
|
],
|
|
));
|
|
}
|
|
|
|
_modalInput(String label, String hint) {
|
|
input2.clear();
|
|
return showDialog(
|
|
context: context,
|
|
builder: (_) => SimpleDialog(
|
|
contentPadding: EdgeInsets.all(20),
|
|
children: [
|
|
Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
Icon(Icons.search),
|
|
Text("Filtro de Pesquisa"),
|
|
],
|
|
),
|
|
Divider(color: Colors.black38),
|
|
Form(key: _formCli2, child: InputValidado(label, hint, controller: input2)),
|
|
Botoes(
|
|
"Pesquisar",
|
|
onPressed: () => _validateSearchClient(),
|
|
),
|
|
Botoes(
|
|
"Fechar",
|
|
onPressed: () {
|
|
Navigator.of(context, rootNavigator: true).pop('dialog');
|
|
},
|
|
)
|
|
],
|
|
));
|
|
}
|
|
_validateSearchClient() {
|
|
FocusScopeNode currentFocus = FocusScope.of(context);
|
|
if (!currentFocus.hasPrimaryFocus) {
|
|
currentFocus.unfocus();
|
|
}
|
|
setState(() {
|
|
if (_formCli2.currentState.validate()) {
|
|
if (input2 != null) {
|
|
String name = input2.text;
|
|
Navigator.of(context, rootNavigator: true).pop('dialog');
|
|
Navigator.of(context).push(new MaterialPageRoute(
|
|
builder: (context) => listEquipmentClient(
|
|
clientName: name,
|
|
)));
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
_validateSearchID() {
|
|
FocusScopeNode currentFocus = FocusScope.of(context);
|
|
if (!currentFocus.hasPrimaryFocus) {
|
|
currentFocus.unfocus();
|
|
}
|
|
setState(() {
|
|
if (_formCli.currentState.validate()) {
|
|
if (input != null) {
|
|
int goto = int.tryParse(input.text);
|
|
input.clear();
|
|
Navigator.of(context, rootNavigator: true).pop('dialog');
|
|
Navigator.of(context).push(new MaterialPageRoute(
|
|
builder: (context) => listEquipmentID(goto)));
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|