feito o cadastro do cidadão
This commit is contained in:
144
lib/controllers/main_controllers.dart
Normal file
144
lib/controllers/main_controllers.dart
Normal file
@@ -0,0 +1,144 @@
|
||||
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';
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user