239 lines
9.7 KiB
Dart
239 lines
9.7 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 '../controllers/main_controllers.dart';
|
|
import '../utils/dimensoes.dart';
|
|
import 'package:http/http.dart' as http;
|
|
|
|
class TelaBoletim extends StatefulWidget {
|
|
EstudanteModelo estudanteModelo;
|
|
String ano;
|
|
String turma;
|
|
String matricula;
|
|
|
|
TelaBoletim({
|
|
required this.estudanteModelo,
|
|
required this.ano,
|
|
required this.turma,
|
|
required this.matricula
|
|
});
|
|
|
|
@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;
|
|
|
|
buscarNotas()async{
|
|
|
|
final url = '${widget.estudanteModelo.URL}/boletim_notas?MATRICULA=${widget.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));
|
|
}
|
|
buscarFaltas();
|
|
}
|
|
}else{
|
|
showSnackBar(context, 'Notas não encontradas', Colors.red);
|
|
carregando = false;
|
|
setState(() {});
|
|
}
|
|
}
|
|
|
|
buscarFaltas()async{
|
|
|
|
final url = '${widget.estudanteModelo.URL}/boletim_faltas?MATRICULA=${widget.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(() {});
|
|
}
|
|
}else{
|
|
showSnackBar(context, 'Notas não encontradas', Colors.red);
|
|
carregando = false;
|
|
setState(() {});
|
|
}
|
|
}
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
buscarNotas();
|
|
MainControllers().salvarLog(widget.estudanteModelo, 'BOLETIM');
|
|
}
|
|
|
|
@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: listDisciplinas1[index].falta);
|
|
}
|
|
),
|
|
)
|
|
),
|
|
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: listDisciplinas2[index].falta);
|
|
}
|
|
),
|
|
)
|
|
),
|
|
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: listDisciplinas3[index].falta);
|
|
}
|
|
),
|
|
)
|
|
),
|
|
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: listDisciplinas4[index].falta);
|
|
}
|
|
),
|
|
)
|
|
),
|
|
],
|
|
),
|
|
)
|
|
);
|
|
}
|
|
}
|