ajustes para editar e deletar dados do mariadb

This commit is contained in:
Reginaldo
2023-06-19 16:41:13 -03:00
parent 58614a7756
commit 67af2e648f
5 changed files with 214 additions and 115 deletions

View File

@@ -1,25 +1,19 @@
class ResponsavelModel{ class ResponsavelModel{
String nomeAluno; String CD_ALUNO;
String raAluno; String NOME;
String escola; String PARENTESCO;
String serie; String CPF;
String turma; String SENHA;
String nomeResponsavel; String DATA_CADASTRO;
String parentesco; String CONDICAO;
String cpf;
String senha;
String dataCadastro;
ResponsavelModel({ ResponsavelModel({
required this.nomeAluno, required this.CD_ALUNO,
required this.raAluno, required this.NOME,
required this.escola, required this.PARENTESCO,
required this.serie, required this.CPF,
required this.turma, required this.SENHA,
required this.nomeResponsavel, required this.DATA_CADASTRO,
required this.parentesco, required this.CONDICAO
required this.cpf,
required this.senha,
required this.dataCadastro,
}); });
} }

View File

@@ -47,7 +47,7 @@ class _HomeScreenState extends State<HomeScreen> {
}); });
}else{ }else{
List list = map; List list = map;
print(list); // print(list);
if(list.length != 0){ if(list.length != 0){
for(int i =0; list.length>i;i++){ for(int i =0; list.length>i;i++){
String data = list[i]['DT_NASCIMENTO']??''; String data = list[i]['DT_NASCIMENTO']??'';

View File

@@ -64,7 +64,7 @@ class _LoginScreenState extends State<LoginScreen> {
// print(MainControllers().encrypt(inputSenha.text,map['SENHA'])); // print(MainControllers().encrypt(inputSenha.text,map['SENHA']));
if(MainControllers().encrypt(inputSenha.text,map['SENHA']) == map['SENHA']){ if(MainControllers().encrypt(inputSenha.text,map['SENHA']) == map['SENHA']){
showSnackBar(context, 'Acesso validado', Colors.green); showSnackBar(context, 'Acesso validado', Colors.green);
Navigator.push( Navigator.pushReplacement(
context, context,
MaterialPageRoute(builder: (context) => HomeScreen()), MaterialPageRoute(builder: (context) => HomeScreen()),
); );
@@ -79,20 +79,6 @@ class _LoginScreenState extends State<LoginScreen> {
}); });
} }
paisBanco()async{
final url = 'http://localhost:8000/pais';
// print(url);
final response = await http.get(Uri.parse(url));
var map = json.decode(response.body);
print(map);
}
@override
void initState() {
super.initState();
paisBanco();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height; double height = MediaQuery.of(context).size.height;

View File

@@ -36,44 +36,51 @@ class _ResponsibleRegisterScreenState extends State<ResponsibleRegisterScreen> {
var inputCpf = TextEditingController(); var inputCpf = TextEditingController();
var inputSenha = TextEditingController(); var inputSenha = TextEditingController();
var inputData = TextEditingController(); var inputData = TextEditingController();
bool carregando = true;
inserirDB()async{
final url = 'http://localhost:8000/inserirpais';
final response = await http.post(
Uri.parse(url),
body:{
'CD_ALUNO' : widget.alunoModel.dados['CD_ALUNO'],
'CPF': inputCpf.text,
'NOME' : inputNome.text,
'SENHA' : inputSenha.text,
'PARENTESCO' : inputParentesco.text,
'DATA_CADASTRO' : DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now()),
'CONDICAO' : editando?'EDITADO':'NOVO'
}
);
print(response.body);
if(response.body == 'cadastrado com sucesso' || response.body == 'editado com sucesso'){
editando?
showSnackBar(context, 'Responsável alterado!', Colors.green):
showSnackBar(context, 'Responsável adicionado!', Colors.green);
salvarResponsavel() {
if(inputNome.text.isNotEmpty && inputNome.text.contains(' ')){
if(inputParentesco.text.isNotEmpty){
if(inputCpf.text.isNotEmpty && GetUtils.isCpf(inputCpf.text)){
if(inputSenha.text.isNotEmpty && inputSenha.text.length > 5){
if(editando && indice!=null){ if(editando && indice!=null){
responsaveis[indice!] = ResponsavelModel( responsaveis[indice!] = ResponsavelModel(
nomeAluno: widget.alunoModel.nome, CD_ALUNO: widget.alunoModel.dados['CD_ALUNO'],
raAluno: widget.alunoModel.ra, NOME: inputNome.text,
escola: widget.alunoModel.escola, PARENTESCO: inputParentesco.text,
serie: widget.alunoModel.serie, CPF: inputCpf.text,
turma: widget.alunoModel.turma, SENHA: inputSenha.text,
nomeResponsavel: inputNome.text, DATA_CADASTRO: DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now()),
parentesco: inputParentesco.text, CONDICAO: ''
cpf: inputCpf.text,
senha: inputSenha.text,
dataCadastro: DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now())
); );
}else{ }else{
responsaveis.add( responsaveis.add(
ResponsavelModel( ResponsavelModel(
nomeAluno: widget.alunoModel.nome.toUpperCase(), CD_ALUNO: widget.alunoModel.dados['CD_ALUNO'],
raAluno: widget.alunoModel.ra.toUpperCase(), NOME: inputNome.text.toUpperCase(),
escola: widget.alunoModel.escola.toUpperCase(), PARENTESCO: inputParentesco.text.toUpperCase(),
serie: widget.alunoModel.serie.toUpperCase(), CPF: inputCpf.text,
turma: widget.alunoModel.turma.toUpperCase(), SENHA: inputSenha.text.toUpperCase(),
nomeResponsavel: inputNome.text.toUpperCase(), DATA_CADASTRO: DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now()),
parentesco: inputParentesco.text.toUpperCase(), CONDICAO: ''
cpf: inputCpf.text,
senha: inputSenha.text.toUpperCase(),
dataCadastro: DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now())
) )
); );
} }
editando?
showSnackBar(context, 'Responsável alterado!', Colors.green):
showSnackBar(context, 'Responsável adicionado!', Colors.green);
inputNome.clear(); inputNome.clear();
inputParentesco.clear(); inputParentesco.clear();
inputCpf.clear(); inputCpf.clear();
@@ -82,7 +89,25 @@ class _ResponsibleRegisterScreenState extends State<ResponsibleRegisterScreen> {
editando = false; editando = false;
indice = null; indice = null;
inputData.clear(); inputData.clear();
paisBanco();
setState((){}); setState((){});
}else{
carregando = false;
setState((){});
showSnackBar(context, 'Erro ao fazer o registro, verifique os dados do usuário', Colors.red);
}
}
salvarResponsavel() {
if(inputNome.text.isNotEmpty && inputNome.text.contains(' ')){
if(inputParentesco.text.isNotEmpty){
if(inputCpf.text.isNotEmpty && GetUtils.isCpf(inputCpf.text)){
if(inputSenha.text.isNotEmpty && inputSenha.text.length > 5){
setState(() {
carregando = true;
});
inserirDB();
}else{ }else{
showSnackBar(context, 'Insira o uma senha com o mínimo de 6 caracteres', Colors.red); showSnackBar(context, 'Insira o uma senha com o mínimo de 6 caracteres', Colors.red);
} }
@@ -97,53 +122,107 @@ class _ResponsibleRegisterScreenState extends State<ResponsibleRegisterScreen> {
} }
} }
carregaPais(){ carregaPais(var map){
responsaveis.clear();
List list = map;
if(widget.alunoModel.dados['NO_PAI']!=''){ if(widget.alunoModel.dados['NO_PAI']!=''){
responsaveis.add( responsaveis.add(
ResponsavelModel( ResponsavelModel(
nomeAluno: widget.alunoModel.nome.toUpperCase(), CD_ALUNO: widget.alunoModel.dados['CD_ALUNO'],
raAluno: widget.alunoModel.ra.toUpperCase(), NOME: widget.alunoModel.dados['NO_PAI'],
escola: widget.alunoModel.escola.toUpperCase(), PARENTESCO: 'PAI',
serie: widget.alunoModel.serie.toUpperCase(), CPF: '',
turma: widget.alunoModel.turma.toUpperCase(), SENHA: '',
nomeResponsavel: widget.alunoModel.dados['NO_PAI'], DATA_CADASTRO: DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now()),
parentesco: 'PAI', CONDICAO: ''
cpf: '',
senha: '',
dataCadastro: DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now())
) )
); );
} }
if(widget.alunoModel.dados['NO_MAE']!=''){ if(widget.alunoModel.dados['NO_MAE']!=''){
responsaveis.add( responsaveis.add(
ResponsavelModel( ResponsavelModel(
nomeAluno: widget.alunoModel.nome.toUpperCase(), CD_ALUNO: widget.alunoModel.dados['CD_ALUNO'],
raAluno: widget.alunoModel.ra.toUpperCase(), NOME: widget.alunoModel.dados['NO_MAE'],
escola: widget.alunoModel.escola.toUpperCase(), PARENTESCO: 'MAE',
serie: widget.alunoModel.serie.toUpperCase(), CPF: '',
turma: widget.alunoModel.turma.toUpperCase(), SENHA: '',
nomeResponsavel: widget.alunoModel.dados['NO_MAE'], DATA_CADASTRO: DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now()),
parentesco: 'MAE', CONDICAO: ''
cpf: '', )
senha: '', );
dataCadastro: DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now()) }
//fazer if comparando os parentescos para não duplicar e não falta pais
for(int i = 0; list.length>i;i++){
if(list[i]['PARENTESCO'].toString().toUpperCase()=='PAI'){
responsaveis[0]=
ResponsavelModel(
CD_ALUNO: list[i]['CD_ALUNO']??'',
NOME: list[i]['NOME']??'',
PARENTESCO: list[i]['PARENTESCO']??'',
CPF: list[i]['CPF']??'',
SENHA: list[i]['SENHA']??'',
DATA_CADASTRO: list[i]['DATA_CADASTRO']??'',
CONDICAO: list[i]['CONDICAO']??''
);
}else if (list[i]['PARENTESCO'].toString().toUpperCase()=='MAE' ||list[i]['PARENTESCO'].toString().toUpperCase()=='MÃE'){
responsaveis[1]=
ResponsavelModel(
CD_ALUNO: list[i]['CD_ALUNO']??'',
NOME: list[i]['NOME'].toString().toUpperCase()??'',
PARENTESCO: list[i]['PARENTESCO'].toString().toUpperCase()??'',
CPF: list[i]['CPF'].toString().toUpperCase()??'',
SENHA: list[i]['SENHA'].toString().toUpperCase()??'',
DATA_CADASTRO: list[i]['DATA_CADASTRO'].toString().toUpperCase()??'',
CONDICAO: list[i]['CONDICAO']??''
);
}else{
responsaveis.add(
ResponsavelModel(
CD_ALUNO: list[i]['CD_ALUNO']??'',
NOME: list[i]['NOME'].toString().toUpperCase()??'',
PARENTESCO: list[i]['PARENTESCO'].toString().toUpperCase()??'',
CPF: list[i]['CPF'].toString().toUpperCase()??'',
SENHA: list[i]['SENHA'].toString().toUpperCase()??'',
DATA_CADASTRO: list[i]['DATA_CADASTRO'].toString().toUpperCase()??'',
CONDICAO: list[i]['CONDICAO']??''
) )
); );
} }
} }
carregando = false;
setState(() {});
}
paisBanco()async{ paisBanco()async{
final url = 'http://localhost:8000/pais'; final url = 'http://localhost:8000/pais?CD_ALUNO=${widget.alunoModel.dados['CD_ALUNO']}';
// print(url); print(url);
final response = await http.get(Uri.parse(url)); final response = await http.get(Uri.parse(url));
var map = json.decode(response.body); var map = json.decode(response.body);
print(map); print(map);
carregaPais(map);
}
excluirResponsavel(int index, String cpf)async{
Navigator.pop(context);
setState(() {
carregando = true;
});
final url = 'http://localhost:8000/deleta?CPF=$cpf';
print(url);
final response = await http.get(Uri.parse(url));
print(response.body);
if(response.body == 'deletado com sucesso'){
responsaveis.removeAt(index);
carregando = false;
setState(() {});
showSnackBar(context, 'Responsável deletado!', Colors.green);
}
} }
@override @override
void initState() { void initState() {
super.initState(); super.initState();
carregaPais(); paisBanco();
} }
@override @override
@@ -164,7 +243,16 @@ class _ResponsibleRegisterScreenState extends State<ResponsibleRegisterScreen> {
), ),
backgroundColor: PaletteColors.grey, backgroundColor: PaletteColors.grey,
), ),
body: Padding( body: carregando?Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
CircularProgressIndicator(),
SizedBox(width: 20,),
TextCustom(text: 'AGUARDE ...')
],
),
):Padding(
padding: const EdgeInsets.all(30.0), padding: const EdgeInsets.all(30.0),
child: Column( child: Column(
children: [ children: [
@@ -208,7 +296,7 @@ class _ResponsibleRegisterScreenState extends State<ResponsibleRegisterScreen> {
padding: EdgeInsets.all(10), padding: EdgeInsets.all(10),
color: Colors.black54, color: Colors.black54,
child: TextCustom( child: TextCustom(
text: 'Novo responsável', text: editando?'Editar responsável':'Novo responsável',
color: Colors.white, color: Colors.white,
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
@@ -241,6 +329,7 @@ class _ResponsibleRegisterScreenState extends State<ResponsibleRegisterScreen> {
width: width>900? width * 0.18:width*0.4, width: width>900? width * 0.18:width*0.4,
child: InputText( child: InputText(
controller: inputCpf, controller: inputCpf,
enable: !editando,
title: 'CPF', title: 'CPF',
width: width * 0.18, width: width * 0.18,
colorBorder: PaletteColors.white, colorBorder: PaletteColors.white,
@@ -315,7 +404,7 @@ class _ResponsibleRegisterScreenState extends State<ResponsibleRegisterScreen> {
showRegister?Container():Container( showRegister?Container():Container(
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
width: width, width: width,
height: height*0.3, height: height*0.4,
child: ListView.separated( child: ListView.separated(
itemCount: responsaveis.length, itemCount: responsaveis.length,
separatorBuilder: (context,index){ separatorBuilder: (context,index){
@@ -326,19 +415,49 @@ class _ResponsibleRegisterScreenState extends State<ResponsibleRegisterScreen> {
responsavelModel: responsaveis[index], responsavelModel: responsaveis[index],
onTapEdit: (){ onTapEdit: (){
showRegister = true; showRegister = true;
if(responsaveis[index].CONDICAO == 'NOVO' || responsaveis[index].CONDICAO == 'EDITADO'){
editando = true; editando = true;
}
indice = index; indice = index;
inputNome.text = responsaveis[index].nomeResponsavel; inputNome.text = responsaveis[index].NOME;
inputParentesco.text = responsaveis[index].parentesco; inputParentesco.text = responsaveis[index].PARENTESCO;
inputCpf.text = responsaveis[index].cpf; inputCpf.text = responsaveis[index].CPF;
inputSenha.text = responsaveis[index].senha; inputSenha.text = responsaveis[index].SENHA;
inputData.text = responsaveis[index].dataCadastro; inputData.text = responsaveis[index].DATA_CADASTRO;
setState(() {}); setState(() {});
}, },
onTapDelete: (){ onTapDelete: (){
responsaveis.removeAt(index);
setState(() {}); showDialog(
showSnackBar(context, 'Responsável deletado!', Colors.green); context: context,
builder: (BuildContext context){
return AlertDialog(
title: TextCustom(text: 'Excluir Responsável'),
content: TextCustom(text:'Deseja realmente excluir esse responsável?',),
actions: [
ButtonCustom(
onPressed:()=>Navigator.pop(context),
text: 'NÃO',
widthCustom: 0.1,
heightCustom: 0.05,
colorText: Colors.white,
colorBorder: PaletteColors.bgColor,
colorButton: PaletteColors.bgColor,
size: 15,
),
ButtonCustom(
onPressed:()=>excluirResponsavel(index, responsaveis[index].CPF),
text: 'SIM',
widthCustom: 0.1,
heightCustom: 0.05,
colorText: Colors.white,
colorBorder: PaletteColors.primaryColor,
colorButton: PaletteColors.primaryColor,
size: 15,
),
],
);
});
}, },
); );
} }

View File

@@ -36,8 +36,8 @@ class DadosResponsaveisContainer extends StatelessWidget {
padding: EdgeInsets.symmetric(vertical: 10,horizontal: 5), padding: EdgeInsets.symmetric(vertical: 10,horizontal: 5),
child: Row( child: Row(
children: [ children: [
CaixaTextoContainer(texto: responsavelModel.nomeResponsavel,titulo: 'Nome',widthCustom: 0.15), CaixaTextoContainer(texto: responsavelModel.NOME,titulo: 'Nome',widthCustom: 0.15),
CaixaTextoContainer(texto: responsavelModel.parentesco,titulo: 'Parentesco',widthCustom: 0.1,), CaixaTextoContainer(texto: responsavelModel.PARENTESCO,titulo: 'Parentesco',widthCustom: 0.1,),
], ],
), ),
), ),