inserida as faltas na tela boletim e eventos na situacao escolar
This commit is contained in:
@@ -93,12 +93,12 @@ class DrawerCustom extends StatelessWidget {
|
||||
texto: 'Agenda Escolar',
|
||||
onPressed: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaAgenda(estudanteModelo: estudanteModelo))),
|
||||
),
|
||||
Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),),
|
||||
ItemDrawer(
|
||||
icone: LineIcons.calendarTimes,
|
||||
texto: 'Eventos Escolares',
|
||||
onPressed: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaEventos(estudanteModelo: estudanteModelo))),
|
||||
),
|
||||
// Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),),
|
||||
// ItemDrawer(
|
||||
// icone: LineIcons.calendarTimes,
|
||||
// texto: 'Eventos Escolares',
|
||||
// onPressed: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaEventos(estudanteModelo: estudanteModelo))),
|
||||
// ),
|
||||
Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),),
|
||||
ItemDrawer(
|
||||
icone: LineIcons.mobilePhone,
|
||||
|
||||
29
lib/componentes/item_evento_home.dart
Normal file
29
lib/componentes/item_evento_home.dart
Normal 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,)
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
9
lib/modelos/evento_modelo.dart
Normal file
9
lib/modelos/evento_modelo.dart
Normal file
@@ -0,0 +1,9 @@
|
||||
class EventoModelo{
|
||||
String titulo;
|
||||
String data;
|
||||
|
||||
EventoModelo({
|
||||
required this.titulo,
|
||||
required this.data,
|
||||
});
|
||||
}
|
||||
@@ -36,10 +36,10 @@ class _TelaBoletimState extends State<TelaBoletim> {
|
||||
List <ItemDisciplina> listDisciplinas4 = [];
|
||||
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}';
|
||||
print(url);
|
||||
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);
|
||||
final response = await http.get(Uri.parse(url));
|
||||
var map = json.decode(response.body);
|
||||
// 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));
|
||||
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;
|
||||
setState(() {});
|
||||
}
|
||||
@@ -69,7 +143,7 @@ class _TelaBoletimState extends State<TelaBoletim> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
buscarBoletim();
|
||||
buscarNotas();
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -102,7 +176,7 @@ class _TelaBoletimState extends State<TelaBoletim> {
|
||||
physics: NeverScrollableScrollPhysics(),
|
||||
itemCount: listDisciplinas1.length,
|
||||
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(),
|
||||
itemCount: listDisciplinas2.length,
|
||||
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(),
|
||||
itemCount: listDisciplinas3.length,
|
||||
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(),
|
||||
itemCount: listDisciplinas4.length,
|
||||
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);
|
||||
}
|
||||
),
|
||||
)
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
import 'dart:convert';
|
||||
import 'package:http/http.dart' as http;
|
||||
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/telas/tela_avisos.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:syncfusion_flutter_charts/charts.dart';
|
||||
import '../componentes/drawer_custom.dart';
|
||||
import '../componentes/snackBars.dart';
|
||||
import '../modelos/evento_modelo.dart';
|
||||
|
||||
class TelaSituacaoEscolar extends StatefulWidget {
|
||||
EstudanteModelo estudanteModelo;
|
||||
@@ -22,15 +27,55 @@ class _TelaSituacaoEscolarState extends State<TelaSituacaoEscolar> {
|
||||
|
||||
late List<_ChartData> data;
|
||||
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
|
||||
void initState() {
|
||||
super.initState();
|
||||
data = [
|
||||
_ChartData('Faltas', 10,Color(0xffD9D9D9)),
|
||||
_ChartData('Presenças', 90,Color(0xff43A65F)),
|
||||
];
|
||||
_tooltip = TooltipBehavior(enable: true);
|
||||
buscarEventos();
|
||||
buscarOcorrencia();
|
||||
// data = [
|
||||
// _ChartData('Faltas', 10,Color(0xffD9D9D9)),
|
||||
// _ChartData('Presenças', 90,Color(0xff43A65F)),
|
||||
// ];
|
||||
// _tooltip = TooltipBehavior(enable: true);
|
||||
}
|
||||
|
||||
Widget graph(BuildContext context) {
|
||||
@@ -83,32 +128,26 @@ class _TelaSituacaoEscolarState extends State<TelaSituacaoEscolar> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextCustom(text: 'Próximos Eventos',fontWeight: FontWeight.bold,),
|
||||
Row(
|
||||
children: [
|
||||
Container(
|
||||
width: Dimensoes.width*0.5,
|
||||
child: TextCustom(text: 'Viagem para o Museu',)
|
||||
),
|
||||
Container(
|
||||
alignment: Alignment.center,
|
||||
width: Dimensoes.width*0.3,
|
||||
child: TextCustom(text: '01/06/2023',)
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Container(
|
||||
width: Dimensoes.width*0.5,
|
||||
child: TextCustom(text: 'Apresentação dia dos pais',)
|
||||
),
|
||||
Container(
|
||||
alignment: Alignment.center,
|
||||
width: Dimensoes.width*0.3,
|
||||
child: TextCustom(text: '13/08/2023',)
|
||||
),
|
||||
],
|
||||
),
|
||||
carregandoEventos?Container(
|
||||
padding: EdgeInsets.all(50),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
CircularProgressIndicator(color: PaletaCores.cinzaClaro),
|
||||
SizedBox(width: 20,),
|
||||
TextCustom(text: 'Carregando Eventos')
|
||||
],
|
||||
),
|
||||
):Container(
|
||||
height: eventos.length*23,
|
||||
child: ListView.builder(
|
||||
physics: NeverScrollableScrollPhysics(),
|
||||
itemCount: eventos.length,
|
||||
itemBuilder: (context,index){
|
||||
return ItemEventoHome(titulo: eventos[index].titulo,data: eventos[index].data,);
|
||||
}
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -124,16 +163,26 @@ class _TelaSituacaoEscolarState extends State<TelaSituacaoEscolar> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
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: [
|
||||
Container(
|
||||
width: Dimensoes.width*0.5,
|
||||
child: TextCustom(text: 'Aluno Ausente',)
|
||||
child: TextCustom(text:ocorrencias.length==0?'': ocorrencias[0].titulo,)
|
||||
),
|
||||
Container(
|
||||
alignment: Alignment.center,
|
||||
width: Dimensoes.width*0.3,
|
||||
child: TextCustom(text: '08/06/2023',)
|
||||
child: TextCustom(text:ocorrencias.length==0?'': ocorrencias[0].data,)
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user