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

@@ -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(

View File

@@ -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
],
);
}

View File

@@ -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
});
}

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