diff --git a/lib/componentes/drawer_custom.dart b/lib/componentes/drawer_custom.dart index cb85441..0f41e90 100644 --- a/lib/componentes/drawer_custom.dart +++ b/lib/componentes/drawer_custom.dart @@ -25,24 +25,27 @@ class DrawerCustom extends StatelessWidget { @override Widget build(BuildContext context) { + + // print(estudanteModelo.dados); + return Container( padding: EdgeInsets.symmetric(vertical: 20), width: Dimensoes.width*0.8, color: Colors.white, child: ListView( children: [ - CircleAvatar( - radius: 70, - backgroundColor: Colors.grey[300], - child:estudanteModelo.foto==''?Container(): - ClipRRect( - child: Image.asset(estudanteModelo.foto), - borderRadius:BorderRadius.circular(70), - ) - ), + // CircleAvatar( + // radius: 70, + // backgroundColor: Colors.grey[300], + // child:estudanteModelo.foto==''?Container(): + // ClipRRect( + // child: Image.asset(estudanteModelo.foto), + // borderRadius:BorderRadius.circular(70), + // ) + // ), Padding( - padding: const EdgeInsets.all(8.0), - child: TextCustom(text: estudanteModelo.nome,fontWeight: FontWeight.bold,size: 16.0,textAlign: TextAlign.center), + padding: const EdgeInsets.symmetric(vertical: 8.0,horizontal: 40), + child: TextCustom(text: estudanteModelo.nome.split(" ").first,fontWeight: FontWeight.bold,size: 16.0,textAlign: TextAlign.start), ), Container( height: Dimensoes.height*0.5, @@ -70,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: '8° ano A'))), + TelaBoletim(estudanteModelo: estudanteModelo,ano: '2023',turma: "${estudanteModelo.dados[estudanteModelo.nroAluno]['DESC_SERIE']} ${estudanteModelo.dados[estudanteModelo.nroAluno]['TURMA']}"))), ), Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), ItemDrawer( diff --git a/lib/componentes/item_bimestre.dart b/lib/componentes/item_bimestre.dart index 862abb0..41107c1 100644 --- a/lib/componentes/item_bimestre.dart +++ b/lib/componentes/item_bimestre.dart @@ -6,40 +6,10 @@ import 'item_disciplina.dart'; class ItemBimestre extends StatelessWidget { - int nArte; - int fArte; - int nCiencias; - int fCiencias; - int nEFisica; - int fEFisica; - int nGeografia; - int fGeografia; - int nHistoria; - int fHistoria; - int nIngles; - int fIngles; - int nPortugues; - int fPortugues; - int nMatematica; - int fMatematica; + Widget displinas; ItemBimestre({ - required this.nArte, - required this.fArte, - required this.nCiencias, - required this.fCiencias, - required this.nEFisica, - required this.fEFisica, - required this.nGeografia, - required this.fGeografia, - required this.nHistoria, - required this.fHistoria, - required this.nIngles, - required this.fIngles, - required this.nPortugues, - required this.fPortugues, - required this.nMatematica, - required this.fMatematica, + required this.displinas, }); @override @@ -64,14 +34,7 @@ class ItemBimestre extends StatelessWidget { ), ], ), - ItemDisciplina(disciplina:'Artes',nota: nArte,falta: fArte,), - ItemDisciplina(disciplina:'Ciências',nota: nCiencias,falta: fCiencias,), - ItemDisciplina(disciplina:'Educação Física',nota: nEFisica,falta: fEFisica,), - ItemDisciplina(disciplina:'Geografia',nota: nGeografia,falta: fGeografia,), - ItemDisciplina(disciplina:'História',nota: nHistoria,falta: fHistoria,), - ItemDisciplina(disciplina:'Língua Inglesa',nota: nIngles,falta: fIngles,), - ItemDisciplina(disciplina:'Língua Portuguesa',nota: nPortugues,falta: fPortugues,), - ItemDisciplina(disciplina:'Matemática',nota: nMatematica,falta: fMatematica,), + displinas ], ); } diff --git a/lib/modelos/estudante_modelo.dart b/lib/modelos/estudante_modelo.dart index 80fb2ef..2b720d6 100644 --- a/lib/modelos/estudante_modelo.dart +++ b/lib/modelos/estudante_modelo.dart @@ -7,6 +7,7 @@ class EstudanteModelo{ int anoEscolar; var dados; int nroAluno; + String cidade; EstudanteModelo({ required this.nome, @@ -16,6 +17,7 @@ class EstudanteModelo{ required this.idade, required this.anoEscolar, required this.dados, - required this.nroAluno + required this.nroAluno, + required this.cidade }); } \ No newline at end of file diff --git a/lib/telas/tela_botetim.dart b/lib/telas/tela_botetim.dart index 505f625..8f92cdb 100644 --- a/lib/telas/tela_botetim.dart +++ b/lib/telas/tela_botetim.dart @@ -1,12 +1,17 @@ +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_bimestre.dart'; +import 'package:rkm_educa_app/componentes/item_disciplina.dart'; import 'package:rkm_educa_app/componentes/item_modelo.dart'; import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; import 'package:rkm_educa_app/utils/cores.dart'; - +import '../componentes/snackBars.dart'; +import '../componentes/text_custom.dart'; import '../utils/dimensoes.dart'; +import 'package:http/http.dart' as http; class TelaBoletim extends StatefulWidget { EstudanteModelo estudanteModelo; @@ -24,12 +29,64 @@ class TelaBoletim extends StatefulWidget { } class _TelaBoletimState extends State { + + List listDisciplinas1 = []; + List listDisciplinas2 = []; + List listDisciplinas3 = []; + List listDisciplinas4 = []; + bool carregando = true; + + buscarBoletim()async{ + + final url = 'http://192.168.18.2:8000/boletim?MATRICULA=${widget.estudanteModelo.dados[widget.estudanteModelo.nroAluno]['CD_MATRICULA']}&CIDADE=${widget.estudanteModelo.cidade}'; + print(url); + final response = await http.get(Uri.parse(url)); + var map = json.decode(response.body); + // print(map); + if(map!=false){ + List list = map; + if(list.isEmpty){ + showSnackBar(context, 'Notas não encontradas', Colors.red); + carregando = false; + setState(() {}); + }else{ + for(int i=0;list.length>i;i++){ + listDisciplinas1.add(ItemDisciplina(disciplina: list[i]['NO_DISCIPLINA'], nota: int.parse(list[i]['NOTA_1']??0), falta: 0)); + listDisciplinas2.add(ItemDisciplina(disciplina: list[i]['NO_DISCIPLINA'], nota: list[i]['NOTA_2']==null?0:int.parse(list[i]['NOTA_2']??0), falta: 0)); + listDisciplinas3.add(ItemDisciplina(disciplina: list[i]['NO_DISCIPLINA'], nota: list[i]['NOTA_3']==null?0:int.parse(list[i]['NOTA_3']??0), falta: 0)); + listDisciplinas4.add(ItemDisciplina(disciplina: list[i]['NO_DISCIPLINA'], nota: list[i]['NOTA_4']==null?0:int.parse(list[i]['NOTA_4']??0), falta: 0)); + } + carregando = false; + setState(() {}); + } + }else{ + showSnackBar(context, 'Notas não encontradas', Colors.red); + carregando = false; + setState(() {}); + } + } + + @override + void initState() { + super.initState(); + buscarBoletim(); + } + @override Widget build(BuildContext context) { return Scaffold( appBar: AppBarCustom().appbar(context, 'BOLETIM 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 Notas ...') + ], + ), + ): Container( padding: EdgeInsets.symmetric(vertical: 20,horizontal: 10), width: Dimensoes.width, height: Dimensoes.height, @@ -39,85 +96,61 @@ class _TelaBoletimState extends State { ItemModelo(texto: widget.turma, titulo: 'Turma'), ItemModelo(texto: '', titulo: '1° Bimestre'), ItemBimestre( - nArte: 9, - fArte: 0, - nCiencias: 10, - fCiencias: 0, - nEFisica: 9, - fEFisica: 0, - nGeografia: 8, - fGeografia: 0, - nHistoria: 10, - fHistoria: 0, - nIngles: 10, - fIngles: 0, - nPortugues: 10, - fPortugues: 2, - nMatematica: 9, - fMatematica: 0, + displinas: Container( + height: 22*listDisciplinas1.length.toDouble(), + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + itemCount: listDisciplinas1.length, + itemBuilder: (context,index){ + return ItemDisciplina(disciplina: listDisciplinas1[index].disciplina, nota: listDisciplinas1[index].nota, falta: 0); + } + ), + ) ), SizedBox(height: 5,), Container(width: double.infinity,height: 2,color: PaletaCores.divider), ItemModelo(texto: '', titulo: '2° Bimestre'), ItemBimestre( - nArte: 0, - fArte: 0, - nCiencias: 0, - fCiencias: 0, - nEFisica: 0, - fEFisica: 0, - nGeografia: 0, - fGeografia: 0, - nHistoria: 0, - fHistoria: 0, - nIngles: 0, - fIngles: 0, - nPortugues: 0, - fPortugues: 0, - nMatematica: 0, - fMatematica: 0, + displinas: Container( + height: 22*listDisciplinas2.length.toDouble(), + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + itemCount: listDisciplinas2.length, + itemBuilder: (context,index){ + return ItemDisciplina(disciplina: listDisciplinas2[index].disciplina, nota: listDisciplinas2[index].nota, falta: 0); + } + ), + ) ), SizedBox(height: 5,), Container(width: double.infinity,height: 2,color: PaletaCores.divider), ItemModelo(texto: '', titulo: '3° Bimestre'), ItemBimestre( - nArte: 0, - fArte: 0, - nCiencias: 0, - fCiencias: 0, - nEFisica: 0, - fEFisica: 0, - nGeografia: 0, - fGeografia: 0, - nHistoria: 0, - fHistoria: 0, - nIngles: 0, - fIngles: 0, - nPortugues: 0, - fPortugues: 0, - nMatematica: 0, - fMatematica: 0, + displinas: Container( + height: 22*listDisciplinas3.length.toDouble(), + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + itemCount: listDisciplinas3.length, + itemBuilder: (context,index){ + return ItemDisciplina(disciplina: listDisciplinas3[index].disciplina, nota: listDisciplinas3[index].nota, falta: 0); + } + ), + ) ), SizedBox(height: 5,), Container(width: double.infinity,height: 2,color: PaletaCores.divider), ItemModelo(texto: '', titulo: '4° Bimestre'), ItemBimestre( - nArte: 0, - fArte: 0, - nCiencias: 0, - fCiencias: 0, - nEFisica: 0, - fEFisica: 0, - nGeografia: 0, - fGeografia: 0, - nHistoria: 0, - fHistoria: 0, - nIngles: 0, - fIngles: 0, - nPortugues: 0, - fPortugues: 0, - nMatematica: 0, - fMatematica: 0, + displinas: Container( + height: 22*listDisciplinas4.length.toDouble(), + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + itemCount: listDisciplinas4.length, + itemBuilder: (context,index){ + return ItemDisciplina(disciplina: listDisciplinas4[index].disciplina, nota: listDisciplinas4[index].nota, falta: 0); + } + ), + ) ), ], ), diff --git a/lib/telas/tela_login.dart b/lib/telas/tela_login.dart index 00d97d0..73d757c 100644 --- a/lib/telas/tela_login.dart +++ b/lib/telas/tela_login.dart @@ -110,11 +110,12 @@ class _TelaLoginState extends State { idade: idade, anoEscolar: DateTime.now().year, dados: listAlunos, - nroAluno: 0 + nroAluno: 0, + cidade: cidade ); Navigator.pushReplacement(context,MaterialPageRoute(builder: (context) => TelaSituacaoEscolar(estudanteModelo: estudanteModelo!))); }else{ - Navigator.pushReplacement(context,MaterialPageRoute(builder: (context) => TelaSelecionaFilho(listAlunos: listAlunos,))); + Navigator.pushReplacement(context,MaterialPageRoute(builder: (context) => TelaSelecionaFilho(listAlunos: listAlunos,cidade: cidade,))); } } diff --git a/lib/telas/tela_perfil.dart b/lib/telas/tela_perfil.dart index 76720ad..9c3003f 100644 --- a/lib/telas/tela_perfil.dart +++ b/lib/telas/tela_perfil.dart @@ -26,16 +26,16 @@ class _TelaPerfilState extends State { appBar: AppBarCustom().appbar(context, 'PERFIL'), drawer: DrawerCustom(estudanteModelo: widget.estudanteModelo), body: ListView( - padding: EdgeInsets.symmetric(vertical: 50,horizontal: 20), + padding: EdgeInsets.symmetric(vertical: 0,horizontal: 20), children: [ - CircleAvatar( - radius: 70, - backgroundColor: Colors.grey[300], - child:widget.estudanteModelo.foto==''?Container(): ClipRRect( - borderRadius:BorderRadius.circular(70), - child: Image.asset(widget.estudanteModelo.foto), - ) - ), + // CircleAvatar( + // radius: 70, + // backgroundColor: Colors.grey[300], + // child:widget.estudanteModelo.foto==''?Container(): ClipRRect( + // borderRadius:BorderRadius.circular(70), + // child: Image.asset(widget.estudanteModelo.foto), + // ) + // ), SizedBox(height: 25,), ItemModelo(texto: widget.estudanteModelo.nome,titulo: 'Nome',), ItemModelo(texto: widget.estudanteModelo.idade.toString()+' anos',titulo: 'Idade',), diff --git a/lib/telas/tela_seleciona_filho.dart b/lib/telas/tela_seleciona_filho.dart index 7e11d10..667793c 100644 --- a/lib/telas/tela_seleciona_filho.dart +++ b/lib/telas/tela_seleciona_filho.dart @@ -9,10 +9,12 @@ import '../componentes/text_custom.dart'; import '../utils/dimensoes.dart'; class TelaSelecionaFilho extends StatefulWidget { - List listAlunos; - TelaSelecionaFilho({ - required this.listAlunos -}); + List listAlunos; + String cidade; + TelaSelecionaFilho({ + required this.listAlunos, + required this.cidade + }); @override State createState() => _TelaSelecionaFilhoState(); @@ -28,7 +30,7 @@ class _TelaSelecionaFilhoState extends State { //print(widget.listAlunos); for(int i=0; widget.listAlunos.length>i;i++){ - print(widget.listAlunos[i]['NO_ALUNO']); + // print(widget.listAlunos[i]['NO_ALUNO']); String dataBD = widget.listAlunos[i]['DT_NASCIMENTO']; int dia = 00; @@ -53,7 +55,8 @@ class _TelaSelecionaFilhoState extends State { idade: idade, anoEscolar: DateTime.now().year, dados: widget.listAlunos, - nroAluno: i + nroAluno: i, + cidade: widget.cidade ) ); } @@ -114,7 +117,7 @@ class _TelaSelecionaFilhoState extends State { ).toList(), onChanged: (EstudanteModelo? value){ setState(() { - print(value!.nome); + // print(value!.nome); estudanteModelo = value; }); }, diff --git a/lib/telas/tela_situacao_escolar.dart b/lib/telas/tela_situacao_escolar.dart index 89aa36c..9704df5 100644 --- a/lib/telas/tela_situacao_escolar.dart +++ b/lib/telas/tela_situacao_escolar.dart @@ -6,7 +6,6 @@ import 'package:rkm_educa_app/componentes/text_custom.dart'; import 'package:rkm_educa_app/utils/dimensoes.dart'; import 'package:syncfusion_flutter_charts/charts.dart'; import '../componentes/drawer_custom.dart'; -import 'dart:ui' as ui; class TelaSituacaoEscolar extends StatefulWidget { EstudanteModelo estudanteModelo; @@ -76,166 +75,6 @@ class _TelaSituacaoEscolarState extends State { SizedBox( height: Dimensoes.height*0.1, ), - Card( - margin: EdgeInsets.symmetric(horizontal: 30), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - TextCustom(text: 'Últimas Notas',fontWeight: FontWeight.bold,), - Row( - children: [ - Container( - width: Dimensoes.width*0.3, - child: TextCustom(text: 'Matemática',) - ), - Container( - alignment: Alignment.center, - width: Dimensoes.width*0.1, - child: TextCustom(text: '10',) - ), - ], - ), - Row( - children: [ - Container( - width: Dimensoes.width*0.3, - child: TextCustom(text: 'Português',) - ), - Container( - alignment: Alignment.center, - width: Dimensoes.width*0.1, - child: TextCustom(text: '9',) - ), - ], - ), - Row( - children: [ - Container( - width: Dimensoes.width*0.3, - child: TextCustom(text: 'História',) - ), - Container( - alignment: Alignment.center, - width: Dimensoes.width*0.1, - child: TextCustom(text: '10',) - ), - ], - ), - ], - ), - ), - ), - SizedBox( - height: Dimensoes.height*0.03, - ), - Card( - margin: EdgeInsets.symmetric(horizontal: 30), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Row( - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - TextCustom(text: 'Faltas',fontWeight: FontWeight.bold,), - Row( - children: [ - Container( - width: Dimensoes.width*0.3, - child: TextCustom(text: 'Matemática',) - ), - Container( - alignment: Alignment.center, - width: Dimensoes.width*0.1, - child: TextCustom(text: '3',) - ), - ], - ), - Row( - children: [ - Container( - width: Dimensoes.width*0.3, - child: TextCustom(text: 'Português',) - ), - Container( - alignment: Alignment.center, - width: Dimensoes.width*0.1, - child: TextCustom(text: '1',) - ), - ], - ), - Row( - children: [ - Container( - width: Dimensoes.width*0.3, - child: TextCustom(text: 'História',) - ), - Container( - alignment: Alignment.center, - width: Dimensoes.width*0.1, - child: TextCustom(text: '5',) - ), - ], - ), - Row( - children: [ - Container( - width: Dimensoes.width*0.3, - child: TextCustom(text: 'Geografia',) - ), - Container( - alignment: Alignment.center, - width: Dimensoes.width*0.1, - child: TextCustom(text: '2',) - ), - ], - ), - Row( - children: [ - Container( - width: Dimensoes.width*0.3, - child: TextCustom(text: 'Ciências',) - ), - Container( - alignment: Alignment.center, - width: Dimensoes.width*0.1, - child: TextCustom(text: '4',) - ), - ], - ), - ], - ), - Column( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - TextCustom(text: 'Presenças',fontWeight: FontWeight.bold,), - Stack( - children: [ - Container( - alignment: Alignment.topCenter, - width: 150, - height: 110, - child: graph(context) - ), - Container( - alignment: Alignment.center, - width: 150, - height: 110, - child: TextCustom(text: '90%',size: 14.0,) - ) - ], - ) - ], - ) - ], - ), - ), - ), - SizedBox( - height: Dimensoes.height*0.03, - ), Card( margin: EdgeInsets.symmetric(horizontal: 30), child: Padding( @@ -284,12 +123,12 @@ class _TelaSituacaoEscolarState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - TextCustom(text: 'Próximas Datas - Agenda',fontWeight: FontWeight.bold,), + TextCustom(text: 'Última Ocorrência',fontWeight: FontWeight.bold,), Row( children: [ Container( width: Dimensoes.width*0.5, - child: TextCustom(text: 'Feriado Corpus Christi',) + child: TextCustom(text: 'Aluno Ausente',) ), Container( alignment: Alignment.center, @@ -298,32 +137,6 @@ class _TelaSituacaoEscolarState extends State { ), ], ), - Row( - children: [ - Container( - width: Dimensoes.width*0.5, - child: TextCustom(text: 'Início Férias',) - ), - Container( - alignment: Alignment.center, - width: Dimensoes.width*0.3, - child: TextCustom(text: '19/07/2023',) - ), - ], - ), - Row( - children: [ - Container( - width: Dimensoes.width*0.5, - child: TextCustom(text: 'Início 3 bimestre',) - ), - Container( - alignment: Alignment.center, - width: Dimensoes.width*0.3, - child: TextCustom(text: '30/07/2023',) - ), - ], - ), ], ), ),