Files
rkm_educa_app/lib/telas/tela_botetim.dart
2023-06-27 18:30:51 -03:00

161 lines
6.3 KiB
Dart

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;
String ano;
String turma;
TelaBoletim({
required this.estudanteModelo,
required this.ano,
required this.turma
});
@override
State<TelaBoletim> createState() => _TelaBoletimState();
}
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: 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,
child: ListView(
children: [
ItemModelo(texto: widget.ano, titulo: 'Ano Letivo'),
ItemModelo(texto: widget.turma, titulo: 'Turma'),
ItemModelo(texto: '', titulo: '1° Bimestre'),
ItemBimestre(
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(
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(
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(
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);
}
),
)
),
],
),
)
);
}
}