inserida as faltas na tela boletim e eventos na situacao escolar

This commit is contained in:
Reginaldo
2023-06-28 17:38:04 -03:00
parent f394c5cf32
commit d0596b2b51
5 changed files with 209 additions and 48 deletions

View File

@@ -93,12 +93,12 @@ class DrawerCustom extends StatelessWidget {
texto: 'Agenda Escolar', texto: 'Agenda Escolar',
onPressed: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaAgenda(estudanteModelo: estudanteModelo))), onPressed: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaAgenda(estudanteModelo: estudanteModelo))),
), ),
Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), // Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),),
ItemDrawer( // ItemDrawer(
icone: LineIcons.calendarTimes, // icone: LineIcons.calendarTimes,
texto: 'Eventos Escolares', // texto: 'Eventos Escolares',
onPressed: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaEventos(estudanteModelo: estudanteModelo))), // onPressed: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaEventos(estudanteModelo: estudanteModelo))),
), // ),
Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),),
ItemDrawer( ItemDrawer(
icone: LineIcons.mobilePhone, icone: LineIcons.mobilePhone,

View File

@@ -0,0 +1,29 @@
import 'package:flutter/material.dart';
import 'package:rkm_educa_app/componentes/text_custom.dart';
import '../utils/dimensoes.dart';
class ItemEventoHome extends StatelessWidget {
String titulo;
String data;
ItemEventoHome({
required this.titulo,
required this.data
});
@override
Widget build(BuildContext context) {
return Row(
children: [
Container(
width: Dimensoes.width*0.5,
child: TextCustom(text: titulo,)
),
Container(
alignment: Alignment.center,
width: Dimensoes.width*0.3,
child: TextCustom(text: data,)
),
],
);
}
}

View File

@@ -0,0 +1,9 @@
class EventoModelo{
String titulo;
String data;
EventoModelo({
required this.titulo,
required this.data,
});
}

View File

@@ -36,10 +36,10 @@ class _TelaBoletimState extends State<TelaBoletim> {
List <ItemDisciplina> listDisciplinas4 = []; List <ItemDisciplina> listDisciplinas4 = [];
bool carregando = true; bool carregando = true;
buscarBoletim()async{ buscarNotas()async{
final url = 'http://192.168.18.2:8000/boletim?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.estudanteModelo.dados[widget.estudanteModelo.nroAluno]['CD_MATRICULA']}&CIDADE=${widget.estudanteModelo.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);
// print(map); // print(map);
@@ -56,6 +56,80 @@ class _TelaBoletimState extends State<TelaBoletim> {
listDisciplinas3.add(ItemDisciplina(disciplina: list[i]['NO_DISCIPLINA'], nota: list[i]['NOTA_3']==null?0:int.parse(list[i]['NOTA_3']??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)); listDisciplinas4.add(ItemDisciplina(disciplina: list[i]['NO_DISCIPLINA'], nota: list[i]['NOTA_4']==null?0:int.parse(list[i]['NOTA_4']??0), falta: 0));
} }
buscarFaltas();
}
}else{
showSnackBar(context, 'Notas não encontradas', Colors.red);
carregando = false;
setState(() {});
}
}
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}';
// 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, 'Faltas não encontradas', Colors.red);
carregando = false;
setState(() {});
}else{
for(int i = 0; list.length>i;i++){
if(list[i]['PERIODO'].toString().trim()=='1'){
// print(list[i]['PERIODO'].toString().trim());
for(int i2 = 0; listDisciplinas1.length>i2;i2++){
// print(list[i]['DESCRICAO']);
// print(listDisciplinas1[i2].disciplina);
if(list[i]['DESCRICAO']==listDisciplinas1[i2].disciplina){
// print('falta ${list[i]['FALTA']}');
// print('disciplina ${list[i]['DESCRICAO']}');
listDisciplinas1[i2].falta = list[i]['FALTA']??0;
// print('falta na lista1 ${listDisciplinas1[i2].falta}');
}
}
}else if(list[i]['PERIODO'].toString().trim()=='2'){
// print(list[i]['PERIODO'].toString().trim());
for(int i2 = 0; listDisciplinas2.length>i2;i2++){
// print(list[i]['DESCRICAO']);
// print(listDisciplinas1[i2].disciplina);
if(list[i]['DESCRICAO']==listDisciplinas2[i2].disciplina){
// print('falta ${list[i]['FALTA']}');
// print('disciplina ${list[i]['DESCRICAO']}');
listDisciplinas2[i2].falta = list[i]['FALTA']??0;
// print('falta na lista2 ${listDisciplinas2[i2].falta}');
}
}
}else if(list[i]['PERIODO'].toString().trim()=='3'){
// print(list[i]['PERIODO'].toString().trim());
for(int i2 = 0; listDisciplinas3.length>i2;i2++){
// print(list[i]['DESCRICAO']);
// print(listDisciplinas1[i2].disciplina);
if(list[i]['DESCRICAO']==listDisciplinas3[i2].disciplina){
// print('falta ${list[i]['FALTA']}');
// print('disciplina ${list[i]['DESCRICAO']}');
listDisciplinas3[i2].falta = list[i]['FALTA']??0;
// print('falta na lista3 ${listDisciplinas3[i2].falta}');
}
}
}else if(list[i]['PERIODO'].toString().trim()=='4'){
// print(list[i]['PERIODO'].toString().trim());
for(int i2 = 0; listDisciplinas4.length>i2;i2++){
// print(list[i]['DESCRICAO']);
// print(listDisciplinas1[i2].disciplina);
if(list[i]['DESCRICAO']==listDisciplinas4[i2].disciplina){
// print('falta ${list[i]['FALTA']}');
// print('disciplina ${list[i]['DESCRICAO']}');
listDisciplinas4[i2].falta = list[i]['FALTA']??0;
// print('falta na lista4 ${listDisciplinas4[i2].falta}');
}
}
}
}
carregando = false; carregando = false;
setState(() {}); setState(() {});
} }
@@ -69,7 +143,7 @@ class _TelaBoletimState extends State<TelaBoletim> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
buscarBoletim(); buscarNotas();
} }
@override @override
@@ -102,7 +176,7 @@ class _TelaBoletimState extends State<TelaBoletim> {
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
itemCount: listDisciplinas1.length, itemCount: listDisciplinas1.length,
itemBuilder: (context,index){ itemBuilder: (context,index){
return ItemDisciplina(disciplina: listDisciplinas1[index].disciplina, nota: listDisciplinas1[index].nota, falta: 0); return ItemDisciplina(disciplina: listDisciplinas1[index].disciplina, nota: listDisciplinas1[index].nota, falta: listDisciplinas1[index].falta);
} }
), ),
) )
@@ -117,7 +191,7 @@ class _TelaBoletimState extends State<TelaBoletim> {
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
itemCount: listDisciplinas2.length, itemCount: listDisciplinas2.length,
itemBuilder: (context,index){ itemBuilder: (context,index){
return ItemDisciplina(disciplina: listDisciplinas2[index].disciplina, nota: listDisciplinas2[index].nota, falta: 0); return ItemDisciplina(disciplina: listDisciplinas2[index].disciplina, nota: listDisciplinas2[index].nota, falta: listDisciplinas2[index].falta);
} }
), ),
) )
@@ -132,7 +206,7 @@ class _TelaBoletimState extends State<TelaBoletim> {
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
itemCount: listDisciplinas3.length, itemCount: listDisciplinas3.length,
itemBuilder: (context,index){ itemBuilder: (context,index){
return ItemDisciplina(disciplina: listDisciplinas3[index].disciplina, nota: listDisciplinas3[index].nota, falta: 0); return ItemDisciplina(disciplina: listDisciplinas3[index].disciplina, nota: listDisciplinas3[index].nota, falta: listDisciplinas3[index].falta);
} }
), ),
) )
@@ -147,7 +221,7 @@ class _TelaBoletimState extends State<TelaBoletim> {
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
itemCount: listDisciplinas4.length, itemCount: listDisciplinas4.length,
itemBuilder: (context,index){ itemBuilder: (context,index){
return ItemDisciplina(disciplina: listDisciplinas4[index].disciplina, nota: listDisciplinas4[index].nota, falta: 0); return ItemDisciplina(disciplina: listDisciplinas4[index].disciplina, nota: listDisciplinas4[index].nota, falta: listDisciplinas4[index].falta);
} }
), ),
) )

View File

@@ -1,4 +1,7 @@
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:rkm_educa_app/componentes/item_evento_home.dart';
import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; import 'package:rkm_educa_app/modelos/estudante_modelo.dart';
import 'package:rkm_educa_app/telas/tela_avisos.dart'; import 'package:rkm_educa_app/telas/tela_avisos.dart';
import 'package:rkm_educa_app/utils/cores.dart'; import 'package:rkm_educa_app/utils/cores.dart';
@@ -6,6 +9,8 @@ import 'package:rkm_educa_app/componentes/text_custom.dart';
import 'package:rkm_educa_app/utils/dimensoes.dart'; import 'package:rkm_educa_app/utils/dimensoes.dart';
import 'package:syncfusion_flutter_charts/charts.dart'; import 'package:syncfusion_flutter_charts/charts.dart';
import '../componentes/drawer_custom.dart'; import '../componentes/drawer_custom.dart';
import '../componentes/snackBars.dart';
import '../modelos/evento_modelo.dart';
class TelaSituacaoEscolar extends StatefulWidget { class TelaSituacaoEscolar extends StatefulWidget {
EstudanteModelo estudanteModelo; EstudanteModelo estudanteModelo;
@@ -22,15 +27,55 @@ class _TelaSituacaoEscolarState extends State<TelaSituacaoEscolar> {
late List<_ChartData> data; late List<_ChartData> data;
late TooltipBehavior _tooltip; late TooltipBehavior _tooltip;
List <EventoModelo>eventos = [];
List <EventoModelo>ocorrencias = [];
bool carregandoEventos = true;
bool carregandoOcorrencias = true;
buscarEventos()async{
final url = 'http://192.168.18.2:8000/calendario_home?'
'HOJE=${DateTime.now().year}-${DateTime.now().month}-${DateTime.now().day}&'
'COD_ESCOLA=${widget.estudanteModelo.dados[widget.estudanteModelo.nroAluno]['CD_CAD_DIVERSO']}&'
'CIDADE=${widget.estudanteModelo.cidade}';
print(url);
final response = await http.get(Uri.parse(url));
var map = json.decode(response.body);
print(map);
List list = map;
for(int i=0; list.length>i;i++){
List data = list[i]['DT_CALENDARIO'].toString().split('-');
eventos.add(EventoModelo(titulo: list[i]['NO_EVENTO'], data: '${data[2]}/${data[1]}/${data[0]}'));
}
carregandoEventos = false;
setState(() {});
}
buscarOcorrencia()async{
final url = 'http://192.168.18.2:8000/ocorrencia?'
'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);
if(map==false){
ocorrencias.add(EventoModelo(titulo: 'Nenhuma ocorrência', data: ''));
}else{
ocorrencias.add(EventoModelo(titulo: map['DESC_OCORRENCIA'], data: map['DATA']));
}
carregandoOcorrencias = false;
setState(() {});
}
@override @override
void initState() { void initState() {
super.initState(); super.initState();
data = [ buscarEventos();
_ChartData('Faltas', 10,Color(0xffD9D9D9)), buscarOcorrencia();
_ChartData('Presenças', 90,Color(0xff43A65F)), // data = [
]; // _ChartData('Faltas', 10,Color(0xffD9D9D9)),
_tooltip = TooltipBehavior(enable: true); // _ChartData('Presenças', 90,Color(0xff43A65F)),
// ];
// _tooltip = TooltipBehavior(enable: true);
} }
Widget graph(BuildContext context) { Widget graph(BuildContext context) {
@@ -83,32 +128,26 @@ class _TelaSituacaoEscolarState extends State<TelaSituacaoEscolar> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
TextCustom(text: 'Próximos Eventos',fontWeight: FontWeight.bold,), TextCustom(text: 'Próximos Eventos',fontWeight: FontWeight.bold,),
Row( carregandoEventos?Container(
children: [ padding: EdgeInsets.all(50),
Container( child: Row(
width: Dimensoes.width*0.5, mainAxisSize: MainAxisSize.min,
child: TextCustom(text: 'Viagem para o Museu',) children: [
), CircularProgressIndicator(color: PaletaCores.cinzaClaro),
Container( SizedBox(width: 20,),
alignment: Alignment.center, TextCustom(text: 'Carregando Eventos')
width: Dimensoes.width*0.3, ],
child: TextCustom(text: '01/06/2023',) ),
), ):Container(
], height: eventos.length*23,
), child: ListView.builder(
Row( physics: NeverScrollableScrollPhysics(),
children: [ itemCount: eventos.length,
Container( itemBuilder: (context,index){
width: Dimensoes.width*0.5, return ItemEventoHome(titulo: eventos[index].titulo,data: eventos[index].data,);
child: TextCustom(text: 'Apresentação dia dos pais',) }
), ),
Container( )
alignment: Alignment.center,
width: Dimensoes.width*0.3,
child: TextCustom(text: '13/08/2023',)
),
],
),
], ],
), ),
), ),
@@ -124,16 +163,26 @@ class _TelaSituacaoEscolarState extends State<TelaSituacaoEscolar> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
TextCustom(text: 'Última Ocorrência',fontWeight: FontWeight.bold,), TextCustom(text: 'Última Ocorrência',fontWeight: FontWeight.bold,),
Row( carregandoEventos?Container(
padding: EdgeInsets.all(50),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
CircularProgressIndicator(color: PaletaCores.cinzaClaro),
SizedBox(width: 20,),
TextCustom(text: 'Carregando Ocorrência')
],
),
):Row(
children: [ children: [
Container( Container(
width: Dimensoes.width*0.5, width: Dimensoes.width*0.5,
child: TextCustom(text: 'Aluno Ausente',) child: TextCustom(text:ocorrencias.length==0?'': ocorrencias[0].titulo,)
), ),
Container( Container(
alignment: Alignment.center, alignment: Alignment.center,
width: Dimensoes.width*0.3, width: Dimensoes.width*0.3,
child: TextCustom(text: '08/06/2023',) child: TextCustom(text:ocorrencias.length==0?'': ocorrencias[0].data,)
), ),
], ],
), ),