import 'dart:convert'; import 'package:gainer_crypto/crypto.dart'; import 'package:http/http.dart' as http; import 'package:intl/intl.dart'; import 'package:rkm_educa_prof_app/modelos/modelo_presenca_aluno.dart'; class MainControllers{ encrypt(String senhaDigitada,String senhaUsuario) { // Deixa e senha digitada em maiuscula var senha = senhaDigitada.toUpperCase(); // Faz a criptografia da senha inserida String senhaMD5 = grHashString(GRCryptoType.md5, senha); // Retira o tipo (1, 2 ou 3) da senha do Usuário int tipo = int.parse(senhaUsuario.substring(0, 1)); // Define a possição inicial da quebra da senha int posicaoInicialMin = 0; int posicaoInicialMax= 0; int posicaoFinalMin = 0; int posicaoFinalMax = 0; // Pra cada tipo (1, 2 ou 3) define a posição inicial da quebra da senha if(tipo == 1){ posicaoInicialMin = 0; posicaoInicialMax = 16; posicaoFinalMin = 16; posicaoFinalMax = 32; } else if(tipo == 2){ posicaoInicialMin = 16; posicaoInicialMax = 32; posicaoFinalMin = 0; posicaoFinalMax = 16; } else if(tipo == 3){ posicaoInicialMin = 0; posicaoInicialMax = 1; posicaoFinalMin = 31; posicaoFinalMax = 32; } String inicio = senhaMD5.substring(posicaoInicialMin, posicaoInicialMax); String fim = senhaMD5.substring(posicaoFinalMin, posicaoFinalMax); // Faz a criptografia e concatena ela com sha1 e md5 String senhaCriptogradafa = tipo.toString() + '\$'+ grHashString(GRCryptoType.sha1, inicio + senha + fim); // Retorna a senha criptografada return senhaCriptogradafa; } 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 pegarAno(String urlAPI,String cidade)async{ final url = '$urlAPI/mostrar_boletim?ANO=${DateTime.now().year}&CIDADE=$cidade'; print(url); final response = await http.get(Uri.parse(url)); var map = json.decode(response.body); String data = map[0]['DT_INICIAL']; DateTime dataInicial = DateTime.parse(data); // print(dataInicial); // print(DateTime.now()); // print((DateTime.now().difference(dataInicial).inDays).toInt()); if(DateTime.now().difference(dataInicial).inDays>=0){ print('exibir ano atual'); return DateTime.now().year; }else{ print('exibir ano anterior'); return DateTime.now().year-1; } } atualizarChamada(List dados, List usuario)async{ List response = []; for(int i = 0; dados.length > i; i++){ if(dados[i].STATUS_DADOS!='NOVO'){ if(dados[i].CD_AULA1!=0){ response.add(await atualizarPresencaAluno(dados[i],usuario,dados[i].CD_AULA1, dados[i].FL_PRESENTE_AUSENTE1)); print(dados[i].CD_AULA1); print('foi alterado os dados ${dados[i].NO_ALUNO}'); } if(dados[i].CD_AULA2!=0){ response.add(await atualizarPresencaAluno(dados[i],usuario,dados[i].CD_AULA2, dados[i].FL_PRESENTE_AUSENTE2)); print(dados[i].CD_AULA2); print('foi alterado os dados ${dados[i].NO_ALUNO}'); } if(dados[i].CD_AULA3!=0){ response.add(await atualizarPresencaAluno(dados[i],usuario,dados[i].CD_AULA3, dados[i].FL_PRESENTE_AUSENTE3)); print(dados[i].CD_AULA3); print('foi alterado os dados ${dados[i].NO_ALUNO}'); } if(dados[i].CD_AULA4!=0){ response.add(await atualizarPresencaAluno(dados[i],usuario,dados[i].CD_AULA4, dados[i].FL_PRESENTE_AUSENTE4)); print(dados[i].CD_AULA4); print('foi alterado os dados ${dados[i].NO_ALUNO}'); } if(dados[i].CD_AULA5!=0){ response.add(await atualizarPresencaAluno(dados[i],usuario,dados[i].CD_AULA5, dados[i].FL_PRESENTE_AUSENTE5)); print(dados[i].CD_AULA5); print('foi alterado os dados ${dados[i].NO_ALUNO}'); } }else{ print('nada foi alterado'); } } if(!response.contains(false)){ print('TODOS FORAM EDITADOS'); return true; }else{ print('ALGUM DADOS NÃO ALTERADO'); return false; } } Future atualizarPresencaAluno(ModeloPresencaAluno dados,List usuario, int AULA, bool FL_PRESENTE_AUSENTE)async{ final url = '${usuario[2]}/editarchamada'; print(dados.DT_DIARIO_CLASSE); print(AULA); print(dados.CD_SALA); print(dados.CD_MATRICULA); print(usuario[0]); print(usuario[2]); final response = await http.post( Uri.parse(url), body:{ 'DT_DIARIO_CLASSE' : dados.DT_DIARIO_CLASSE.toString(), 'FL_PRESENTE_AUSENTE': FL_PRESENTE_AUSENTE?'A':'P', 'CD_AULA' : AULA.toString(), 'CD_SALA' : dados.CD_SALA.toString(), 'CD_MATRICULA' : dados.CD_MATRICULA.toString(), 'CIDADE' : usuario[0].toString(), } ); print('response : ${response.body}'); if(response.body=='editado com sucesso'){ return true; }else{ return false; } } Future salvarDiarioClasse(List usuario, List dados,int CD_AULA)async{ final url = '${usuario[2]}/salvardiarioclasse'; final response = await http.post( Uri.parse(url), body:{ 'DT_DIARIO_CLASSE': dados[0].toString(), 'CD_SALA' : dados[1].toString(), 'CD_AULA' : CD_AULA.toString(), 'CD_CALENDARIO' : dados[2].toString(), 'CD_DISCIPLINA' : dados[3].toString(), 'CD_USUARIO' : usuario[8].toString(), 'CIDADE' : usuario[0].toString(), } ); print('response : ${response.body}'); if(response.body=='sucesso'){ return CD_AULA; }else{ return 0; } } FutureverificarDadosNovaChamada(List dados, List usuario)async{ List response = []; for(int i = 0; dados.length > i; i++){ if(dados[i].CD_AULA1!=0){ response.add(await salvarChamadaNova(dados[i],usuario,dados[i].CD_AULA1, dados[i].FL_PRESENTE_AUSENTE1)); print(dados[i].CD_AULA1); print('salvo novos dados do ${dados[i].NO_ALUNO}'); } if(dados[i].CD_AULA2!=0){ response.add(await salvarChamadaNova(dados[i],usuario,dados[i].CD_AULA2, dados[i].FL_PRESENTE_AUSENTE2)); print(dados[i].CD_AULA2); print('salvo novos dados do ${dados[i].NO_ALUNO}'); } if(dados[i].CD_AULA3!=0){ response.add(await salvarChamadaNova(dados[i],usuario,dados[i].CD_AULA3, dados[i].FL_PRESENTE_AUSENTE3)); print(dados[i].CD_AULA3); print('salvo novos dados do ${dados[i].NO_ALUNO}'); } if(dados[i].CD_AULA4!=0){ response.add(await salvarChamadaNova(dados[i],usuario,dados[i].CD_AULA4, dados[i].FL_PRESENTE_AUSENTE4)); print(dados[i].CD_AULA4); print('salvo novos dados do ${dados[i].NO_ALUNO}'); } if(dados[i].CD_AULA5!=0){ response.add(await salvarChamadaNova(dados[i],usuario,dados[i].CD_AULA5, dados[i].FL_PRESENTE_AUSENTE5)); print(dados[i].CD_AULA5); print('salvo novos dados do ${dados[i].NO_ALUNO}'); } } if(!response.contains(false)){ print('TODOS FORAM SALVOS'); return true; }else{ print('ALGUM USUARIO NÃO SALVO'); return false; } } FuturesalvarChamadaNova(ModeloPresencaAluno dados,List usuario, int AULA, bool FL_PRESENTE_AUSENTE)async{ final url = '${usuario[2]}/salvarnovachamada'; final response = await http.post( Uri.parse(url), body:{ 'DT_DIARIO_CLASSE' : dados.DT_DIARIO_CLASSE.toString(), 'CD_SALA' : dados.CD_SALA.toString(), 'CD_AULA' : AULA.toString(), 'CD_MATRICULA' : dados.CD_MATRICULA.toString(), 'FL_PRESENTE_AUSENTE' : FL_PRESENTE_AUSENTE?'A':'P', 'CD_USUARIO_SISTEMA_REGISTRO' : usuario[8].toString(), 'CIDADE' : usuario[0].toString(), } ); print('response : ${response.body}'); if(response.body=='sucesso'){ return true; }else{ return false; } } }