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 createState() => _TelaBoletimState(); } class _TelaBoletimState extends State { List listDisciplinas1 = []; List listDisciplinas2 = []; List listDisciplinas3 = []; List listDisciplinas4 = []; bool carregando = true; buscarNotas()async{ 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); 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 = '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(() {}); } }else{ showSnackBar(context, 'Notas não encontradas', Colors.red); carregando = false; setState(() {}); } } @override void initState() { super.initState(); buscarNotas(); } @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); } ), ) ), ], ), ) ); } }