inserido busca das disciplinas professores

This commit is contained in:
Reginaldo
2023-11-30 12:21:37 -03:00
parent a30a57ebdf
commit 8fc77f2adc
67 changed files with 185 additions and 70 deletions

View File

@@ -3,6 +3,7 @@ import 'package:line_icons/line_icons.dart';
import 'package:rkm_educa_prof_app/componentes/text_custom.dart';
import 'package:rkm_educa_prof_app/telas/tela_calendario.dart';
import '../servicos/shared_preferences/shared.dart';
import '../telas/tela_home.dart';
import '../telas/tela_login.dart';
import '../utils/dimensoes.dart';
import 'item_drawer.dart';
@@ -45,27 +46,20 @@ class DrawerCustom extends StatelessWidget {
ItemDrawer(
icone: LineIcons.home,
texto: 'HOME',
onPressed: (){},
// onPressed: ()=> Navigator.pushReplacement(
// context,
// MaterialPageRoute(builder: (context) => TelaSituacaoEscolar(alunos: alunos,indiceAluno: indiceFilhos)),
// ),
// onPressed: (){},
onPressed: ()=> Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => TelaHome(dados: dados) )),
),
Container(height: 1,color: Colors.grey,margin: EdgeInsets.symmetric(horizontal: 20),),
ItemDrawer(
icone: LineIcons.clipboardList,
texto: 'LANÇAMENTO DE NOTAS',
onPressed: (){},
// onPressed: ()=> Navigator.pushReplacement(
// context,
// MaterialPageRoute(builder: (context) => TelaPerfil(alunos: alunos,indiceAluno: indiceFilhos)),
// ),
onPressed: ()=>Navigator.pushNamed(context, '/notas',arguments: dados),
),
Container(height: 1,color: Colors.grey,margin: EdgeInsets.symmetric(horizontal: 20),),
ItemDrawer(
icone: LineIcons.checkSquareAlt,
texto: 'LANÇAMENTO DE FALTAS/PRESENÇAS',
onPressed: (){},
onPressed: ()=>Navigator.pushNamed(context, '/faltas',arguments: dados),
),
Container(height: 1,color: Colors.grey,margin: EdgeInsets.symmetric(horizontal: 20),),
ItemDrawer(

View File

@@ -1,6 +1,7 @@
import 'dart:convert';
import 'package:gainer_crypto/crypto.dart';
import 'package:http/http.dart' as http;
import 'package:intl/intl.dart';
class MainControllers{
encrypt(String senhaDigitada,String senhaUsuario) {
@@ -41,25 +42,26 @@ class MainControllers{
// Retorna a senha criptografada
return senhaCriptogradafa;
}
// salvarLog(EstudanteModelo estudanteModelo,String TELA)async{
// final url = '${estudanteModelo.URL}/log';
// // print('dados');
// // print(widget.estudanteModelo.dados);
// final response = await http.post(
// Uri.parse(url),
// body:{
// 'DATA' : DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now()),
// 'TELA' : TELA,
// 'CD_USUARIO' : estudanteModelo.CD_USUARIO,
// 'NO_USUARIO': estudanteModelo.NO_USUARIO,
// 'CD_ALUNO': estudanteModelo.dados[estudanteModelo.nroAluno]['CD_ALUNO'],
// 'NO_ALUNO': estudanteModelo.dados[estudanteModelo.nroAluno]['NO_ALUNO'],
// 'CIDADE' : estudanteModelo.cidade
// }
// );
//
// print('response : ${response.body}');
// }
salvarLog(String TELA,List dados)async{
final url = '${dados[2]}/log';
// print('dados');
// print(widget.estudanteModelo.dados);
final response = await http.post(
Uri.parse(url),
body:{
'DATA' : DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now()),
'TELA' : TELA,
'CD_USUARIO' : dados[5],
'NO_USUARIO': dados[1],
'CD_ALUNO': dados[6],
'NO_ALUNO': '',
'CIDADE' : dados[0],
'SISTEMA' : 'PROFESSORES'
}
);
print('response : ${response.body}');
}
Future<int> pegarAno(String urlAPI,String cidade)async{
final url = '$urlAPI/mostrar_boletim?ANO=${DateTime.now().year}&CIDADE=$cidade';
print(url);

View File

@@ -1,5 +1,10 @@
import 'package:flutter/material.dart';
import 'package:rkm_educa_prof_app/telas/tela_faltas.dart';
import 'package:rkm_educa_prof_app/telas/tela_notas.dart';
import 'package:rkm_educa_prof_app/telas/tela_splash.dart';
var routes = {
'/splash': (context) => TelaSplash(),
'/notas' : (context) => TelaNotas(dados: ModalRoute.of(context)!.settings.arguments as List,),
'/faltas' : (context) => TelaFaltas(dados: ModalRoute.of(context)!.settings.arguments as List,)
};

View File

@@ -1,9 +1,9 @@
import 'package:shared_preferences/shared_preferences.dart';
class PrefService{
Future createCacheLogin(String cpf, String senha,String cidade)async{
Future createCacheLogin(List<String> list )async{
SharedPreferences preferences = await SharedPreferences.getInstance();
preferences.setStringList('login', [cpf,senha,cidade]);
preferences.setStringList('login', list);
}
Future readCacheLogin()async{
SharedPreferences preferences = await SharedPreferences.getInstance();

View File

@@ -9,6 +9,7 @@ import '../componentes/appbar_custom.dart';
import '../componentes/drawer_custom.dart';
import '../componentes/item_agenda.dart';
import '../componentes/text_custom.dart';
import '../controllers/main_controllers.dart';
import '../modelos/evento_modelo.dart';
import '../utils/cores.dart';
import '../utils/dimensoes.dart';
@@ -117,6 +118,7 @@ class _TelaCalendarioState extends State<TelaCalendario> {
@override
void initState() {
super.initState();
MainControllers().salvarLog('CALENDARIO',widget.dados);
buscarEventos();
}

View File

@@ -0,0 +1,44 @@
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:flutter/material.dart';
import '../componentes/appbar_custom.dart';
import '../componentes/drawer_custom.dart';
class TelaFaltas extends StatefulWidget {
List dados;
TelaFaltas({
required this.dados
});
@override
State<TelaFaltas> createState() => _TelaFaltasState();
}
class _TelaFaltasState extends State<TelaFaltas> {
buscarDisciplinas()async{
print('ususario');
print(widget.dados[8]);
int ano = DateTime.now().year;
final url = '${widget.dados[2]}/buscardisciplinasprof?USUARIO_SISTEMA=${widget.dados[8]}&CIDADE=${widget.dados[0]}&ANO=$ano';
print(url);
final response = await http.get(Uri.parse(url));
var map = json.decode(response.body);
print(map);
}
@override
void initState() {
super.initState();
buscarDisciplinas();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarCustom().appbar(context, 'LANÇAMENTO DE FALTAS'),
drawer: DrawerCustom(dados: widget.dados,),
body: Center(child: Text('faltas'),),
);
}
}

View File

@@ -1,5 +1,7 @@
import 'package:flutter/material.dart';
import '../componentes/drawer_custom.dart';
import '../controllers/main_controllers.dart';
import '../utils/dimensoes.dart';
class TelaHome extends StatefulWidget {
List dados;
@@ -11,19 +13,29 @@ class TelaHome extends StatefulWidget {
@override
State<TelaHome> createState() => _TelaHomeState();
}
class _TelaHomeState extends State<TelaHome> {
@override
void initState() {
MainControllers().salvarLog('HOME',widget.dados);
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
elevation: 0,
backgroundColor: Colors.white,
backgroundColor: Colors.white10,
title: Image.asset("assets/images/rkmprof.png",width:Dimensoes.width*0.4,height: Dimensoes.height * 0.15),
centerTitle: true,
iconTheme: IconThemeData(color: Colors.black),
),
drawer: DrawerCustom(dados: widget.dados,),
body: Center(
child: Text('home'),
child: Container(
child: Image.asset("assets/images/rkmprof.png",width:Dimensoes.width,height: Dimensoes.height * 0.15,color: Colors.black.withOpacity(0.2),)
),
),
);
}

View File

@@ -36,6 +36,7 @@ class _TelaLoginState extends State<TelaLogin> {
String urlAPI = 'https://homol-controle-educa-api.rkmsistemas.com.br';
final PrefService _prefService = PrefService();
String _version = 'Carregando...';
String idUsuario = '';
verificacao(){
if(inputLogin.text.isNotEmpty){
@@ -65,8 +66,20 @@ class _TelaLoginState extends State<TelaLogin> {
if(map['NO_USERNAME']==map['SENHA']){
if(map['NO_USERNAME']==usuario && map['SENHA']==inputSenha.text.toUpperCase()){
showSnackBar(context, 'Acesso validado', Colors.green);
List dados = [cidade.toUpperCase(),map['NO_USUARIO_SISTEMA']??'',urlAPI,map['NO_FANTASIA']??'',map['CD_UNIDADE']??0];
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => TelaHome(dados: dados) ));
List <String> dados = [
cidade.toUpperCase(),
map['NO_USUARIO_SISTEMA']??'',
urlAPI,
map['NO_FANTASIA']??'',
map['CD_UNIDADE'].toString()??'',
inputLogin.text,
usuario,
inputSenha.text,
map['CD_USUARIO_SISTEMA'].toString()
];
_prefService.createCacheLogin(dados).then((value){
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => TelaHome(dados: dados) ));
});
}else{
setState(() {
carregando = false;
@@ -77,8 +90,18 @@ class _TelaLoginState extends State<TelaLogin> {
if(MainControllers().encrypt(inputSenha.text,map['SENHA']) == map['SENHA']){
print(map);
showSnackBar(context, 'Acesso validado', Colors.green);
List dados = [cidade.toUpperCase(),map['NO_USUARIO_SISTEMA']??'',urlAPI,map['NO_FANTASIA']??'',map['CD_UNIDADE']??0,inputLogin.text];
_prefService.createCacheLogin(inputLogin.text, inputSenha.text,cidade).then((value) =>
List <String> dados = [
cidade.toUpperCase(),
map['NO_USUARIO_SISTEMA']??'',
urlAPI,
map['NO_FANTASIA']??'',
map['CD_UNIDADE'].toString()??'',
inputLogin.text,
usuario,
inputSenha.text,
map['CD_USUARIO_SISTEMA'].toString()
];
_prefService.createCacheLogin(dados).then((value) =>
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => TelaHome(dados: dados) )));
}else{
setState(() {
@@ -97,8 +120,9 @@ class _TelaLoginState extends State<TelaLogin> {
var map = await json.decode(response.body);
print(map);
if(map != false){
if(map['CPF']==inputLogin.text && map['CONDICAO']=='1'){
if(map['CPF']==inputLogin.text && map['APP_PROFESSORES']=='1'){
print('api foi');
idUsuario = map['ID_USUARIO'];
conectAPI(map['CIDADE'],map['ID_USUARIO']);
}else{
setState(() {
@@ -133,9 +157,15 @@ class _TelaLoginState extends State<TelaLogin> {
carregando = true;
});
print(login);
inputLogin.text = login[0];
inputSenha.text = login[5];
conectAPI(login[2],login[1]);
inputLogin.text = login[5];
inputSenha.text = login[7];
if(login[0]!='' && login[6]!=''){
conectAPI(login[0],login[6]);
}else{
setState(() {
carregando = false;
});
}
}
});
}

25
lib/telas/tela_notas.dart Normal file
View File

@@ -0,0 +1,25 @@
import 'package:flutter/material.dart';
import '../componentes/appbar_custom.dart';
import '../componentes/drawer_custom.dart';
class TelaNotas extends StatefulWidget {
List dados;
TelaNotas({
required this.dados
});
@override
State<TelaNotas> createState() => _TelaNotasState();
}
class _TelaNotasState extends State<TelaNotas> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarCustom().appbar(context, 'LANÇAMENTO DE NOTAS'),
drawer: DrawerCustom(dados: widget.dados,),
body: Center(child: Text('notas'),),
);
}
}