ajustes para consumir a api das respectivas bases
This commit is contained in:
@@ -20,7 +20,7 @@ class MyApp extends StatelessWidget {
|
|||||||
title: 'CONTROLE DE ACESSO',
|
title: 'CONTROLE DE ACESSO',
|
||||||
routes: {
|
routes: {
|
||||||
'/': (_)=> LoginScreen(),
|
'/': (_)=> LoginScreen(),
|
||||||
'/home':(context)=> HomeScreen(acesso: ModalRoute.of(context)!.settings.arguments as String),
|
'/home':(context)=> HomeScreen(cidade: ModalRoute.of(context)!.settings.arguments as String),
|
||||||
'/cadastro':(context)=>ResponsibleRegisterScreen(ModalRoute.of(context)!.settings.arguments as AlunoModel),
|
'/cadastro':(context)=>ResponsibleRegisterScreen(ModalRoute.of(context)!.settings.arguments as AlunoModel),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ class AlunoModel{
|
|||||||
String escola;
|
String escola;
|
||||||
String serie;
|
String serie;
|
||||||
String turma;
|
String turma;
|
||||||
|
String cidade;
|
||||||
var dados;
|
var dados;
|
||||||
|
|
||||||
AlunoModel({
|
AlunoModel({
|
||||||
@@ -14,6 +15,7 @@ class AlunoModel{
|
|||||||
required this.escola,
|
required this.escola,
|
||||||
required this.serie,
|
required this.serie,
|
||||||
required this.turma,
|
required this.turma,
|
||||||
required this.dados
|
required this.dados,
|
||||||
|
required this.cidade
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
9
lib/models/cidade_model.dart
Normal file
9
lib/models/cidade_model.dart
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
class CidadeModel{
|
||||||
|
String codigo;
|
||||||
|
String cidadeQuery;
|
||||||
|
|
||||||
|
CidadeModel({
|
||||||
|
required this.codigo,
|
||||||
|
required this.cidadeQuery
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -10,8 +10,8 @@ import 'package:http/http.dart' as http;
|
|||||||
import '../widgets/snackBars.dart';
|
import '../widgets/snackBars.dart';
|
||||||
|
|
||||||
class HomeScreen extends StatefulWidget {
|
class HomeScreen extends StatefulWidget {
|
||||||
String acesso;
|
String cidade;
|
||||||
HomeScreen({this.acesso=''});
|
HomeScreen({required this.cidade});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<HomeScreen> createState() => _HomeScreenState();
|
State<HomeScreen> createState() => _HomeScreenState();
|
||||||
@@ -35,8 +35,8 @@ class _HomeScreenState extends State<HomeScreen> {
|
|||||||
alunos.clear();
|
alunos.clear();
|
||||||
String q = inputPesquisa.text.replaceAll(' ', '%20').toUpperCase();
|
String q = inputPesquisa.text.replaceAll(' ', '%20').toUpperCase();
|
||||||
// print(q);
|
// print(q);
|
||||||
final url = 'http://192.168.18.2:8000/aluno?NOME=$q';
|
final url = 'http://192.168.18.2:8000/aluno?NOME=$q&CIDADE=${widget.cidade}';
|
||||||
// print(url);
|
print(url);
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
var map = json.decode(response.body);
|
var map = json.decode(response.body);
|
||||||
if(map==null){
|
if(map==null){
|
||||||
@@ -66,7 +66,8 @@ class _HomeScreenState extends State<HomeScreen> {
|
|||||||
escola: list[i]['NO_RAZAO_SOCIAL']==''||list[i]['NO_RAZAO_SOCIAL']==null?list[i]['NO_FANTASIA']:list[i]['NO_RAZAO_SOCIAL'],
|
escola: list[i]['NO_RAZAO_SOCIAL']==''||list[i]['NO_RAZAO_SOCIAL']==null?list[i]['NO_FANTASIA']:list[i]['NO_RAZAO_SOCIAL'],
|
||||||
serie: list[i]['DESC_SERIE'],
|
serie: list[i]['DESC_SERIE'],
|
||||||
turma: list[i]['TURMA'],
|
turma: list[i]['TURMA'],
|
||||||
dados: list[i]
|
dados: list[i],
|
||||||
|
cidade: widget.cidade
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
resultadoPesquisa.add(alunos[i]);
|
resultadoPesquisa.add(alunos[i]);
|
||||||
@@ -122,7 +123,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
|||||||
double width = MediaQuery.of(context).size.width;
|
double width = MediaQuery.of(context).size.width;
|
||||||
double height = MediaQuery.of(context).size.height;
|
double height = MediaQuery.of(context).size.height;
|
||||||
|
|
||||||
return widget.acesso==null || widget.acesso == ''?Container():Scaffold(
|
return widget.cidade==null || widget.cidade == ''?Container():Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Row(
|
title: Row(
|
||||||
children: [
|
children: [
|
||||||
@@ -130,6 +131,8 @@ class _HomeScreenState extends State<HomeScreen> {
|
|||||||
child: Image.asset("assets/images/logoEduca.png",width:width * 0.08,height: height * 0.12)
|
child: Image.asset("assets/images/logoEduca.png",width:width * 0.08,height: height * 0.12)
|
||||||
),
|
),
|
||||||
TextCustom(text: '- PESQUISAR ALUNO',color: Colors.white,),
|
TextCustom(text: '- PESQUISAR ALUNO',color: Colors.white,),
|
||||||
|
Spacer(),
|
||||||
|
TextCustom(text: widget.cidade,color: Colors.white,)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
backgroundColor: PaletteColors.grey,
|
backgroundColor: PaletteColors.grey,
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
import 'package:educa_controle_acesso/utils/cidades_db.dart';
|
||||||
import 'package:educa_controle_acesso/widgets/input_text.dart';
|
import 'package:educa_controle_acesso/widgets/input_text.dart';
|
||||||
import 'package:educa_controle_acesso/widgets/text_custom.dart';
|
import 'package:educa_controle_acesso/widgets/text_custom.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -20,17 +21,33 @@ class _LoginScreenState extends State<LoginScreen> {
|
|||||||
//las1594@@
|
//las1594@@
|
||||||
//SENHAS CRIPTOGRAFADAS PORQUE FORMA ALTERADAS, SENHAS NOVAS USUÁRIO E SENHA SÃO IGUAIS
|
//SENHAS CRIPTOGRAFADAS PORQUE FORMA ALTERADAS, SENHAS NOVAS USUÁRIO E SENHA SÃO IGUAIS
|
||||||
//ibueno
|
//ibueno
|
||||||
final inputLogin = TextEditingController();
|
final inputLogin = TextEditingController(text: 'admin');
|
||||||
final inputSenha = TextEditingController();
|
final inputSenha = TextEditingController(text: 'las1594@@');
|
||||||
|
final inputCodigo = TextEditingController(text: 'e001');
|
||||||
bool loading = false;
|
bool loading = false;
|
||||||
|
List listCodigo = [];
|
||||||
|
|
||||||
|
carregarLista(){
|
||||||
|
for(int i=0;Cidades().listCidades.length>i;i++){
|
||||||
|
listCodigo.add(Cidades().listCidades[i].codigo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
verificacao(){
|
verificacao(){
|
||||||
if(inputLogin.text.isNotEmpty){
|
if(inputLogin.text.isNotEmpty){
|
||||||
if(inputSenha.text.isNotEmpty){
|
if(inputSenha.text.isNotEmpty){
|
||||||
setState(() {
|
if(inputCodigo.text.isNotEmpty){
|
||||||
loading = true;
|
if(listCodigo.contains(inputCodigo.text.toUpperCase())){
|
||||||
});
|
setState(() {
|
||||||
conectAPI();
|
loading = true;
|
||||||
|
});
|
||||||
|
conectAPI();
|
||||||
|
}else{
|
||||||
|
showSnackBar(context, 'Código inválido', Colors.red);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
showSnackBar(context, 'Preencha o código de acesso', Colors.red);
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
showSnackBar(context, 'Preencha sua senha', Colors.red);
|
showSnackBar(context, 'Preencha sua senha', Colors.red);
|
||||||
}
|
}
|
||||||
@@ -40,7 +57,15 @@ class _LoginScreenState extends State<LoginScreen> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
conectAPI()async{
|
conectAPI()async{
|
||||||
final url = 'http://192.168.18.2:8000/logincontrole?NO_USERNAME=${inputLogin.text.toUpperCase()}';
|
|
||||||
|
String cidade = '';
|
||||||
|
for(int i =0; Cidades().listCidades.length>i;i++){
|
||||||
|
if(Cidades().listCidades[i].codigo == inputCodigo.text.toUpperCase()){
|
||||||
|
cidade = Cidades().listCidades[i].cidadeQuery.toUpperCase();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final url = 'http://192.168.18.2:8000/logincontrole?NO_USERNAME=${inputLogin.text.toUpperCase()}&CIDADE=$cidade';
|
||||||
print(url);
|
print(url);
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
var map = json.decode(response.body);
|
var map = json.decode(response.body);
|
||||||
@@ -51,14 +76,14 @@ class _LoginScreenState extends State<LoginScreen> {
|
|||||||
if(map['NO_USERNAME']==map['SENHA']){
|
if(map['NO_USERNAME']==map['SENHA']){
|
||||||
if(map['NO_USERNAME']==inputLogin.text.toUpperCase() && map['SENHA']==inputSenha.text.toUpperCase()){
|
if(map['NO_USERNAME']==inputLogin.text.toUpperCase() && map['SENHA']==inputSenha.text.toUpperCase()){
|
||||||
showSnackBar(context, 'Acesso validado', Colors.green);
|
showSnackBar(context, 'Acesso validado', Colors.green);
|
||||||
Navigator.pushNamed(context, '/home',arguments: 'ok');
|
Navigator.pushNamed(context, '/home',arguments: cidade);
|
||||||
}else{
|
}else{
|
||||||
showSnackBar(context, 'Login não cadastrado e/ou senha incorreta', Colors.red);
|
showSnackBar(context, 'Login não cadastrado e/ou senha incorreta', Colors.red);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
if(MainControllers().encrypt(inputSenha.text,map['SENHA']) == map['SENHA']){
|
if(MainControllers().encrypt(inputSenha.text,map['SENHA']) == map['SENHA']){
|
||||||
showSnackBar(context, 'Acesso validado', Colors.green);
|
showSnackBar(context, 'Acesso validado', Colors.green);
|
||||||
Navigator.pushNamed(context, '/home',arguments: 'ok');
|
Navigator.pushNamed(context, '/home',arguments: cidade);
|
||||||
}else{
|
}else{
|
||||||
showSnackBar(context, 'Login não cadastrado e/ou senha incorreta', Colors.red);
|
showSnackBar(context, 'Login não cadastrado e/ou senha incorreta', Colors.red);
|
||||||
}
|
}
|
||||||
@@ -69,6 +94,12 @@ class _LoginScreenState extends State<LoginScreen> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
carregarLista();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
double height = MediaQuery.of(context).size.height;
|
double height = MediaQuery.of(context).size.height;
|
||||||
@@ -106,6 +137,17 @@ class _LoginScreenState extends State<LoginScreen> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(height: height * 0.02),
|
SizedBox(height: height * 0.02),
|
||||||
|
loading?Container():Container(
|
||||||
|
width: width>900? width * 0.18:width*0.5,
|
||||||
|
child: InputText(
|
||||||
|
inputFormatters: [],
|
||||||
|
controller: inputCodigo,
|
||||||
|
title: 'CÓDIGO',
|
||||||
|
width: width * 0.18,
|
||||||
|
colorBorder: PaletteColors.white,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: height * 0.02),
|
||||||
loading?Row(
|
loading?Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ class _ResponsibleRegisterScreenState extends State<ResponsibleRegisterScreen> {
|
|||||||
'PARENTESCO' : inputParentesco.text,
|
'PARENTESCO' : inputParentesco.text,
|
||||||
'DATA_CADASTRO' : DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now()),
|
'DATA_CADASTRO' : DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now()),
|
||||||
'CONDICAO' : editando?'EDITADO':'NOVO',
|
'CONDICAO' : editando?'EDITADO':'NOVO',
|
||||||
|
'CIDADE' : widget.alunoModel.cidade
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
print(response.body);
|
print(response.body);
|
||||||
|
|||||||
8
lib/utils/cidades_db.dart
Normal file
8
lib/utils/cidades_db.dart
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
import 'package:educa_controle_acesso/models/cidade_model.dart';
|
||||||
|
class Cidades{
|
||||||
|
List <CidadeModel> listCidades =[
|
||||||
|
CidadeModel(codigo: 'E001', cidadeQuery: 'aguasdelindoia'),
|
||||||
|
CidadeModel(codigo: 'E002', cidadeQuery: 'corumbatai'),
|
||||||
|
CidadeModel(codigo: 'E003',cidadeQuery: 'iracemapolis'),
|
||||||
|
];
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user