import 'package:get/get.dart'; import 'package:rkm/service/db/db_querys.dart'; class MainControllers{ validaCNS(String cns)async{ //valido provisório 783107557570002 //cns valido def 187455333020009 String response = 'CNS inválido'; String type = cns.substring(0,1); if(type == '7'|| type =='8' || type == '9'){ response = await validaCNSProv(cns); }else{ response = validaCNSDef(cns); } return response; } validaCNSProv(String vlrCNS)async{ int resto; int soma; if(vlrCNS.length == 15){ // print('pis'); // print(vlrCNS); soma = ((int.parse(vlrCNS.substring( 0, 1))) * 15) + ((int.parse(vlrCNS.substring( 1, 2))) * 14) + ((int.parse(vlrCNS.substring( 2, 3))) * 13) + ((int.parse(vlrCNS.substring( 3, 4))) * 12) + ((int.parse(vlrCNS.substring( 4, 5))) * 11) + ((int.parse(vlrCNS.substring( 5, 6))) * 10) + ((int.parse(vlrCNS.substring( 6, 7))) * 9) + ((int.parse(vlrCNS.substring( 7, 8))) * 8) + ((int.parse(vlrCNS.substring( 8, 9))) * 7) + ((int.parse(vlrCNS.substring( 9,10))) * 6) + ((int.parse(vlrCNS.substring(10,11))) * 5) + ((int.parse(vlrCNS.substring(11,12))) * 4) + ((int.parse(vlrCNS.substring(12,13))) * 3) + ((int.parse(vlrCNS.substring(13,14))) * 2) + ((int.parse(vlrCNS.substring(14,15))) * 1); resto = soma % 11; // print('soma'); // print(soma); // print('resto'); // print(resto); if (resto == 0) { // CNS provisório válido List result = await DBQuerys().duplicidadeCNS(vlrCNS); if(result.length==0){ return 'ok'; }else{ return 'CNS duplicado'; } } else { // CNS provisório inválido return 'CNS provisório inválido'; } }else{ if(vlrCNS.length< 15){ return 'CNS inválido! Faltando números'; }else{ return 'CNS inválido! Sobrando números'; } } } validaCNSDef(String vlrCNS){ int soma = 0; int resto = 0; int dv = 0; String pis = ''; String resultado = ''; if(vlrCNS.length == 15){ pis = vlrCNS.substring(0,11); soma = (int.parse(pis.substring(0,1)) * 15) + ((int.parse(pis.substring(1,2))) * 14) + ((int.parse(pis.substring(2,3))) * 13) + ((int.parse(pis.substring(3,4))) * 12) + ((int.parse(pis.substring(4,5))) * 11) + ((int.parse(pis.substring(5,6))) * 10) + ((int.parse(pis.substring(6,7))) * 9) + ((int.parse(pis.substring(7,8))) * 8) + ((int.parse(pis.substring(8,9))) * 7) + ((int.parse(pis.substring(9,10))) * 6) + ((int.parse(pis.substring(10,11))) * 5); resto = soma % 11; dv = 11 - resto; if (dv == 11) { dv = 0; } if (dv == 10) { soma = (((int.parse(pis.substring(0,1))) * 15) + ((int.parse(pis.substring(1,2))) * 14) + ((int.parse(pis.substring(2,3))) * 13) + ((int.parse(pis.substring(3,4))) * 12) + ((int.parse(pis.substring(4,5))) * 11) + ((int.parse(pis.substring(5,6))) * 10) + ((int.parse(pis.substring(6,7))) * 9) + ((int.parse(pis.substring(7,8))) * 8) + ((int.parse(pis.substring(8,9))) * 7) + ((int.parse(pis.substring(9,10))) * 6) + ((int.parse(pis.substring(10,11))) * 5) + 2); resto = soma % 11; dv = 11 - resto; resultado = pis + "001" + dv.toString(); } else { resultado = pis + "000" + dv.toString(); } if (vlrCNS != resultado) { // CNS inválido return 'CNS definitivo inválido'; } else { // CNS válido String result = DBQuerys().duplicidadeCNS(vlrCNS); if(result==''){ return 'ok'; }else{ return 'CNS duplicado"'; } } }else{ if(vlrCNS.length< 15){ return 'CNS inválido! Faltando números'; }else{ return 'CNS inválido! Sobrando números'; } } } validaCPF(String cpf)async{ // 60352523620 CPF VÁLIDO if(GetUtils.isCpf(cpf)){ List result = await DBQuerys().duplicidadeCPF(cpf); print(cpf); if(result.length==0){ return 'ok'; }else{ return 'CPF duplicado'; } }else{ return 'CPF inválido'; } } }