consumindo os dados do boletim

This commit is contained in:
Reginaldo
2023-06-27 18:30:51 -03:00
parent 339e256eac
commit f394c5cf32
8 changed files with 144 additions and 326 deletions

View File

@@ -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<TelaBoletim> {
List <ItemDisciplina> listDisciplinas1 = [];
List <ItemDisciplina> listDisciplinas2 = [];
List <ItemDisciplina> listDisciplinas3 = [];
List <ItemDisciplina> 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<TelaBoletim> {
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);
}
),
)
),
],
),

View File

@@ -110,11 +110,12 @@ class _TelaLoginState extends State<TelaLogin> {
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,)));
}
}

View File

@@ -26,16 +26,16 @@ class _TelaPerfilState extends State<TelaPerfil> {
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',),

View File

@@ -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<TelaSelecionaFilho> createState() => _TelaSelecionaFilhoState();
@@ -28,7 +30,7 @@ class _TelaSelecionaFilhoState extends State<TelaSelecionaFilho> {
//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<TelaSelecionaFilho> {
idade: idade,
anoEscolar: DateTime.now().year,
dados: widget.listAlunos,
nroAluno: i
nroAluno: i,
cidade: widget.cidade
)
);
}
@@ -114,7 +117,7 @@ class _TelaSelecionaFilhoState extends State<TelaSelecionaFilho> {
).toList(),
onChanged: (EstudanteModelo? value){
setState(() {
print(value!.nome);
// print(value!.nome);
estudanteModelo = value;
});
},

View File

@@ -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<TelaSituacaoEscolar> {
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<TelaSituacaoEscolar> {
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<TelaSituacaoEscolar> {
),
],
),
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',)
),
],
),
],
),
),