diff --git a/lib/componentes/drawer_custom.dart b/lib/componentes/drawer_custom.dart index 9a5704f..6264bc1 100644 --- a/lib/componentes/drawer_custom.dart +++ b/lib/componentes/drawer_custom.dart @@ -73,7 +73,7 @@ class DrawerCustom extends StatelessWidget { icone: LineIcons.clipboardList, texto: 'Boletim Escolar', onPressed: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=> - TelaBoletim(estudanteModelo: estudanteModelo,ano: '2023',turma: "${estudanteModelo.dados[estudanteModelo.nroAluno]['DESC_SERIE']} ${estudanteModelo.dados[estudanteModelo.nroAluno]['TURMA']}"))), + TelaBoletim(estudanteModelo: estudanteModelo,ano: '2023',turma: "${estudanteModelo.dados[estudanteModelo.nroAluno]['DESC_SERIE']} ${estudanteModelo.dados[estudanteModelo.nroAluno]['TURMA']}",matricula: estudanteModelo.dados[estudanteModelo.nroAluno]['CD_MATRICULA'],))), ), Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), ItemDrawer( diff --git a/lib/telas/tela_botetim.dart b/lib/telas/tela_botetim.dart index 3ad66cc..f17c4bf 100644 --- a/lib/telas/tela_botetim.dart +++ b/lib/telas/tela_botetim.dart @@ -18,11 +18,13 @@ class TelaBoletim extends StatefulWidget { EstudanteModelo estudanteModelo; String ano; String turma; + String matricula; TelaBoletim({ required this.estudanteModelo, required this.ano, - required this.turma + required this.turma, + required this.matricula }); @override @@ -39,7 +41,7 @@ class _TelaBoletimState extends State { buscarNotas()async{ - final url = 'http://192.168.18.2:8000/boletim_notas?MATRICULA=${widget.estudanteModelo.dados[widget.estudanteModelo.nroAluno]['CD_MATRICULA']}&CIDADE=${widget.estudanteModelo.cidade}'; + final url = 'http://192.168.18.2:8000/boletim_notas?MATRICULA=${widget.matricula}&CIDADE=${widget.estudanteModelo.cidade}'; // print(url); final response = await http.get(Uri.parse(url)); var map = json.decode(response.body); @@ -68,7 +70,7 @@ class _TelaBoletimState extends State { buscarFaltas()async{ - final url = 'http://192.168.18.2:8000/boletim_faltas?MATRICULA=${widget.estudanteModelo.dados[widget.estudanteModelo.nroAluno]['CD_MATRICULA']}&CIDADE=${widget.estudanteModelo.cidade}'; + final url = 'http://192.168.18.2:8000/boletim_faltas?MATRICULA=${widget.matricula}&CIDADE=${widget.estudanteModelo.cidade}'; // print(url); final response = await http.get(Uri.parse(url)); var map = json.decode(response.body); diff --git a/lib/telas/tela_historico.dart b/lib/telas/tela_historico.dart index 351cf66..067241c 100644 --- a/lib/telas/tela_historico.dart +++ b/lib/telas/tela_historico.dart @@ -1,11 +1,16 @@ +import 'dart:convert'; + import 'package:flutter/material.dart'; import 'package:rkm_educa_app/componentes/appbar_custom.dart'; import 'package:rkm_educa_app/componentes/drawer_custom.dart'; import 'package:rkm_educa_app/componentes/item_historico.dart'; +import 'package:rkm_educa_app/componentes/snackBars.dart'; import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; import 'package:rkm_educa_app/telas/tela_botetim.dart'; - +import 'package:http/http.dart' as http; +import '../componentes/text_custom.dart'; import '../controllers/main_controllers.dart'; +import '../utils/cores.dart'; import '../utils/dimensoes.dart'; class TelaHistorico extends StatefulWidget { @@ -21,10 +26,37 @@ class TelaHistorico extends StatefulWidget { class _TelaHistoricoState extends State { + bool carregando = true; + List listHistorico=[]; + @override void initState() { super.initState(); MainControllers().salvarLog(widget.estudanteModelo, 'HISTORICO'); + print(widget.estudanteModelo.dados[widget.estudanteModelo.nroAluno]['CD_ALUNO']); + getMatriculas(); + } + + getMatriculas()async{ + String cd = widget.estudanteModelo.dados[widget.estudanteModelo.nroAluno]['CD_ALUNO']; + final url = 'http://192.168.18.2:8000/matriculas_aluno?CD_ALUNO=$cd&CIDADE=${widget.estudanteModelo.cidade}'; + print(url); + final response = await http.get(Uri.parse(url)); + var map = json.decode(response.body); + List list0 = map; + List list = list0.reversed.toList(); + print(map); + if(list.length!=0){ + for(int i=0; list.length>i;i++){ + listHistorico.add(ItemHistorico(ano:'${list[i]['ANO_FREQ']}', turma: '',onTap: ()=> + Navigator.push(context, MaterialPageRoute(builder: (context)=> + TelaBoletim(estudanteModelo: widget.estudanteModelo,ano: '${list[i]['ANO_FREQ']}',turma: '',matricula: list[i]['CD_MATRICULA'].toString(),))),),); + } + }else{ + showSnackBar(context, 'Histórico não encontrado!', Colors.red); + } + carregando = false; + setState((){}); } @override @@ -32,25 +64,24 @@ class _TelaHistoricoState extends State { return Scaffold( appBar: AppBarCustom().appbar(context, 'HISTÓRICO ESCOLAR'), drawer: DrawerCustom(estudanteModelo: widget.estudanteModelo), - body: Container( + body: carregando?Center( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircularProgressIndicator(color: PaletaCores.cinzaClaro,), + SizedBox(width: 20,), + TextCustom(text: 'Buscando dados ...') + ], + ), + ):Container( padding: EdgeInsets.symmetric(vertical: 20,horizontal: 10), width: Dimensoes.width, height: Dimensoes.height, - child: ListView( - children: [ - ItemHistorico(ano:'2023', turma: '8° ano A',onTap: ()=> - Navigator.push(context, MaterialPageRoute(builder: (context)=> - TelaBoletim(estudanteModelo: widget.estudanteModelo,ano: '2023',turma: '8° ano A',))),), - ItemHistorico(ano:'2022', turma: '7° ano A',onTap: ()=> - Navigator.push(context, MaterialPageRoute(builder: (context)=> - TelaBoletim(estudanteModelo: widget.estudanteModelo,ano: '2022',turma: '7° ano A')))), - ItemHistorico(ano:'2021', turma: '6° ano A',onTap: ()=> - Navigator.push(context, MaterialPageRoute(builder: (context)=> - TelaBoletim(estudanteModelo: widget.estudanteModelo,ano: '2021',turma: '6° ano A')))), - ItemHistorico(ano:'2020', turma: '5° ano A',onTap: ()=> - Navigator.push(context, MaterialPageRoute(builder: (context)=> - TelaBoletim(estudanteModelo: widget.estudanteModelo,ano: '2020',turma: '5° ano A')))), - ], + child: ListView.builder( + itemCount: listHistorico.length, + itemBuilder: (context,index){ + return listHistorico[index]; + }, ), ), ); diff --git a/lib/telas/tela_login.dart b/lib/telas/tela_login.dart index a1a1279..d0b4cb4 100644 --- a/lib/telas/tela_login.dart +++ b/lib/telas/tela_login.dart @@ -27,7 +27,7 @@ class _TelaLoginState extends State { final inputLogin = TextEditingController(text: '402.061.058-43'); final inputSenha = TextEditingController(); final inputRepetirSenha = TextEditingController(); - bool loading = false; + bool carregando = false; bool alterarSenha = false; String tituloSenha = 'Senha'; EstudanteModelo? estudanteModelo; @@ -38,7 +38,7 @@ class _TelaLoginState extends State { if(inputLogin.text.isNotEmpty){ if(inputSenha.text.isNotEmpty){ setState(() { - loading = true; + carregando = true; }); conectAPI(inputLogin.text.toUpperCase(),inputSenha.text.toUpperCase()); }else{ @@ -55,7 +55,7 @@ class _TelaLoginState extends State { && inputLogin.text.replaceAll('-', '').replaceAll('.', '') != inputRepetirSenha.text){ if(inputSenha.text == inputRepetirSenha.text){ if(inputSenha.text.length >5){ - loading = true; + carregando = true; alterarSenha = false; status = 'ALTERANDO SENHA ...'; setState(() {}); @@ -77,7 +77,7 @@ class _TelaLoginState extends State { ); showSnackBar(context, 'Senha Alterada com Sucesso!'.toString().toUpperCase(), Colors.green); - loading = false; + carregando = false; alterarSenha = false; inputSenha.clear(); inputRepetirSenha.clear(); @@ -106,7 +106,7 @@ class _TelaLoginState extends State { print(map); if(map==false){ setState(() { - loading = false; + carregando = false; }); showSnackBar(context, 'Login não cadastrado e/ou senha incorreta', Colors.red); }else{ @@ -122,14 +122,14 @@ class _TelaLoginState extends State { }); }else{ setState(() { - loading = false; + carregando = false; }); _prefService.removeCacheLogin(); showSnackBar(context, 'Login não cadastrado e/ou senha incorreta', Colors.red); } }else{ alterarSenha = true; - loading = false; + carregando = false; inputSenha.clear(); tituloSenha = 'Senha Nova'; setState(() {}); @@ -137,7 +137,7 @@ class _TelaLoginState extends State { } }else{ setState(() { - loading = false; + carregando = false; }); showSnackBar(context, 'Seu acesso não está liberado', Colors.red); } @@ -153,42 +153,48 @@ class _TelaLoginState extends State { List listAlunos = map; // print(listAlunos); + print('listAlunos.length'); + print(listAlunos.length); setState(() { - loading = false; + carregando = false; }); - if(listAlunos.length==1){ + if(listAlunos.length!=0){ + if(listAlunos.length==1){ - String dataBD = listAlunos[0]['DT_NASCIMENTO']; - int dia = 00; - int mes = 00; - int ano = 0000; - int idade = 0; - if(dataBD!=''){ - dia = int.parse(dataBD.substring(6,8)); - mes = int.parse(dataBD.substring(4,6)); - ano = int.parse(dataBD.substring(0,4)); - final hoje = DateTime.now(); - final nasc = DateTime.utc(ano,mes,dia); - idade = (hoje.difference(nasc).inDays/365).toInt(); + String dataBD = listAlunos[0]['DT_NASCIMENTO']; + int dia = 00; + int mes = 00; + int ano = 0000; + int idade = 0; + if(dataBD!=''){ + dia = int.parse(dataBD.substring(6,8)); + mes = int.parse(dataBD.substring(4,6)); + ano = int.parse(dataBD.substring(0,4)); + final hoje = DateTime.now(); + final nasc = DateTime.utc(ano,mes,dia); + idade = (hoje.difference(nasc).inDays/365).toInt(); + } + + estudanteModelo = EstudanteModelo( + NO_ALUNO: listAlunos[0]['NO_ALUNO'], + FOTO_ALUNO: '', + RA_ALUNO: listAlunos[0]['NR_RA'], + ESCOLA: listAlunos[0]['NO_FANTASIA']=='' || listAlunos[0]['NO_FANTASIA']==null?listAlunos[0]['NO_RAZAO_SOCIAL']:listAlunos[0]['NO_FANTASIA'], + IDADE_ALUNO: idade, + ANO_LETIVO: DateTime.now().year, + dados: listAlunos, + nroAluno: 0, + cidade: cidade, + NO_USUARIO: nome, + CD_USUARIO: CPF + ); + Navigator.pushReplacement(context,MaterialPageRoute(builder: (context) => TelaSituacaoEscolar(estudanteModelo: estudanteModelo!))); + }else{ + Navigator.pushReplacement(context,MaterialPageRoute(builder: (context) => + TelaSelecionaFilho(listAlunos: listAlunos,cidade: cidade,CD_USUARIO: CPF,NO_USUARIO: nome,))); } - - estudanteModelo = EstudanteModelo( - NO_ALUNO: listAlunos[0]['NO_ALUNO'], - FOTO_ALUNO: '', - RA_ALUNO: listAlunos[0]['NR_RA'], - ESCOLA: listAlunos[0]['NO_FANTASIA']=='' || listAlunos[0]['NO_FANTASIA']==null?listAlunos[0]['NO_RAZAO_SOCIAL']:listAlunos[0]['NO_FANTASIA'], - IDADE_ALUNO: idade, - ANO_LETIVO: DateTime.now().year, - dados: listAlunos, - nroAluno: 0, - cidade: cidade, - NO_USUARIO: nome, - CD_USUARIO: CPF - ); - Navigator.pushReplacement(context,MaterialPageRoute(builder: (context) => TelaSituacaoEscolar(estudanteModelo: estudanteModelo!))); }else{ - Navigator.pushReplacement(context,MaterialPageRoute(builder: (context) => - TelaSelecionaFilho(listAlunos: listAlunos,cidade: cidade,CD_USUARIO: CPF,NO_USUARIO: nome,))); + showSnackBar(context, 'Estudante não encontrado', Colors.red); } } @@ -199,7 +205,7 @@ class _TelaLoginState extends State { _prefService.readCacheLogin().then((login){ if(login!=null){ setState(() { - loading = true; + carregando = true; }); print(login); conectAPI(login[0], login[1].toString().toUpperCase()); @@ -218,7 +224,7 @@ class _TelaLoginState extends State { Container( child: Image.asset("assets/images/logoEduca.png",width:Dimensoes.width * 0.4,height: Dimensoes.height * 0.12) ), - loading?Container():Container( + carregando?Container():Container( width: Dimensoes.width>900? Dimensoes.width * 0.18:Dimensoes.width*0.7, child: InputText( inputFormatters: [ @@ -231,7 +237,7 @@ class _TelaLoginState extends State { colorBorder: PaletaCores.branco, ), ), - loading?Container():Container( + carregando?Container():Container( width: Dimensoes.width>900? Dimensoes.width * 0.18:Dimensoes.width*0.7, child: InputText( inputFormatters: [], @@ -254,7 +260,7 @@ class _TelaLoginState extends State { ), ), SizedBox(height: Dimensoes.height * 0.02), - loading?Row( + carregando?Row( mainAxisAlignment: MainAxisAlignment.center, children: [ CircularProgressIndicator(color: PaletaCores.cinzaClaro,),