ajuste no register_citizen_screen.dart para a sincronização

This commit is contained in:
Reginaldo
2023-04-18 20:19:22 -03:00
parent ac5b55c195
commit 9ea45caab6
11 changed files with 605 additions and 140 deletions

View File

@@ -10,6 +10,7 @@ import '../../controllers/main_controllers.dart';
import '../../service/db/db_querys.dart';
import '../../service/db/db_sqlite_load.dart';
import '../../service/db/db_sqlite_sync.dart';
import '../../service/shared_preferences/shared_preferences_service.dart';
import '../../widgets/appbar_default.dart';
import '../../widgets/dropdown_with_subtitle.dart';
import '../../widgets/error_default.dart';
@@ -80,21 +81,30 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
String checkCNS = '';
String checkCPF = '';
String? selectTypeCertificate;
int? selectTypeCertificateCod;
String? selectCTPSUF;
String? selectRGUF;
String? selectTypeStreet;
String? selectStreet;
String? selectSubdivision;
String? selectZone;
int? selectZoneCod;
String? selectVillage;
String? selectCountry;
String? selectClassification;
int? selectClassificationCOD;
String? selectGender;
String? selectMaritalStatus;
int? selectMaritalStatusCod;
String? selectBreed;
int? selectBreedCod;
String? selectScooling;
int? selectScoolingCod;
String? selectDeficiency;
int? selectDeficiencyCod;
String? selectNaturality;
int? selectNaturalityCod;
int? cityBirthCod;
bool enableSpouse = false;
bool enableMother = false;
bool enableFather = false;
@@ -112,11 +122,19 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
List showResultSearchCity = [];
List showResultSearchIbge = [];
List listVillageDB =[];
List resultListNasc =[];
List resultListResid =[];
String idBairro='';
String idTipo='';
bool showCheckError = false;
bool showTab = false;
String errorTopo = 'Existem campos obrigatórios não preenchidos.';
List<String> typeCertificate = [];
List<String> listDeficiency = [];
List<String> listScooling = [];
List<String> listBreed = [];
List<String> listMaritalStatus = [];
String idUnidade = '';
escolherprazoInicio(BuildContext context,String type) async {
@@ -154,7 +172,10 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
Database db = await DbSqliteLoad().intialDB();
var queryControl = "SELECT * FROM CONTROLE_INTERNO";
List listControl = await db.rawQuery(queryControl);
final PrefService _prefService = PrefService();
_prefService.readCacheUnidade('idUnidade').then((listUnidade)async{
idUnidade =listUnidade[0];
});
setState(() {
unitController.text = listControl[0]['NOME_UNIDADE'];
});
@@ -317,38 +338,47 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
}
}
gerarCDUsuarioSus(){
var mkTime = ((int.parse(DateTime.now())/1000)).toString();
var seqID = (Math.floor((Math.random() * 100) + int.parse((Math.floor((Math.random() * 5) + 1)) + '00000'))).toString();
var cdUsuarioSUS = (md5(mkTime) + seqID).toUpperCase();
var codSize = cdUsuarioSUS.length;
cdUsuarioSUS = cdUsuarioSUS.substr((codSize <= 58) ? (codSize * -1) : -58 , 58);
return cdUsuarioSUS;
}
saveCitizen()async{
Map<String, dynamic> row = {
'CD_USUARIO_SUS' : '0',
'NOME_CIDADAO' : nameController.text,
'NOME_SOCIAL' : nameSocialController.text,
'SEXO' : selectGender,
'SEXO' : selectGender=='MASCULINO'?'M':'F',
'DT_NASCIMENTO' : dateDB,
'ID_ESTADO_CIVIL' : '',
'ID_ESTADO_CIVIL' : '',
'ID_ESTADO_CIVIL' : selectMaritalStatusCod,
'NOME_CONJUGE' : spouseController.text,
'NACIONALIDADE' : selectNaturality,
'ID_MUNICIPIO_NASC' : '',
'NO_MUNICIPIO_NASC' : cityBirthController.text,
'ESTADO_UF_NASC' : '',
'ID_ETNIA' : '',
'ID_ESCOLARIDADE' : '',
'ID_DEFICIENCIA' : '',
'NACIONALIDADE' : selectNaturalityCod,
'ID_MUNICIPIO_NASC' : resultListNasc[0]['ID_MUNICIPIO'],
'NO_MUNICIPIO_NASC' : resultListNasc[0]['NO_MUNICIPIO'],
'ESTADO_UF_NASC' : resultListNasc[0]['UF_ESTADO'],
'ID_ETNIA' : selectBreedCod,
'ID_ESCOLARIDADE' : selectScoolingCod,
'ID_DEFICIENCIA' : selectDeficiencyCod,
'NOME_MAE' : nameMotherController.text,
'DESCONHECE_MAE' : '${!enableMother}',
'NOME_PAI' : nameFatherController.text,
'DESCONHECE_PAI' : '${!enableFather}',
'ID_UNIDADE' : '',
'ID_UNIDADE' : idUnidade,
'NUM_PRONTUARIO' : medicalRecordController.text,
'NUM_PRONTUARIO_PROV' : medicalRecordProvController.text,
'CLASSIFICACAO' : selectClassification,
'CLASSIFICACAO' : selectClassificationCOD,
//aqui
'CLASSIFICACAO_SUB' : '',
'NUM_FAMILIA' : numberFamilyController.text,
'ID_PAIS_RESID' : '',
'ID_MUNICIPIO_RESID' : '',
'NO_MUNICIPIO_RESID' : cityController.text,
'ESTADO_UF_RESID' : '',
'ID_PAIS_RESID' : selectCountry=='BRASIL'?33:0,
'ID_MUNICIPIO_RESID' : resultListResid[0]['ID_MUNICIPIO'],
'NO_MUNICIPIO_RESID' : resultListResid[0]['NO_MUNICIPIO'],
'ESTADO_UF_RESID' : resultListResid[0]['UF_ESTADO'],
'CODIGO_IBGE_RESID' : codIBGEController.text,
'NO_BAIRRO_LOGR' : selectVillage,
'ID_LOGR_TIPO' : idTipo,
@@ -358,7 +388,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'LOTEAMENTO_LOGR' : selectSubdivision,
'COMPL_LOGR' : complementController.text,
'PONTO_REFERENCIA' : referencePointController.text,
'ZONA_LOGR' : selectZone,
'ZONA_LOGR' : selectZoneCod,
'DDD_TELEFONE' : foneDDDController.text,
'NUM_TELEFONE' : foneController.text,
'DDD_RECADO' : messageDDDController.text,
@@ -373,7 +403,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'RG_UF' : selectRGUF,
'RG_ORGAO' : RGOrganController.text,
'RG_DATA_EMISSAO' : RGDateController.text,
'TIPO_CERTIDAO' : selectTypeCertificate,
'TIPO_CERTIDAO' : selectTypeCertificateCod,
'NUM_CERTIDAO' : numberCertificateController.text,
'CARTORIO_CERTIDAO' : nameCertificateController.text,
'LIVRO_CERTIDAO' : bookCertificateController.text,
@@ -386,18 +416,22 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'NUM_PIS_PASEP' : PISController.text,
'FL_RETIROU_CARTAO' : enableCityCard,
'NUM_NIS' : NISController.text,
//aqui
'NUM_PROT_CROSS' : '',
'RENDA_MENSAL' : incomeController.text,
'PROFISSAO' : professionalController.text,
'DT_OBITO' : dateDeathController.text,
'DECLARACAO_OBITO' : '',
'BLOQUEIO' : enableBlocked,
'ORIGEM' : '',
'ORIGEM' : 'A',
'DT_HORA_CADASTRO' : DateTime.now().toString(),
//aqui
'ID_USUARIO_CADASTRO' : '',
//aqui
'ID_DOMICILIO' : '',
//aqui
'ATENDIMENTOS' : '',
'SINCRONIZADO' : '',
'SINCRONIZADO' : 'N',
};
await DbSqliteSync().insertCidadaos(row,'update').then((value){
if(checkCNS != 'ok' || CNSController.text.isEmpty){
@@ -428,6 +462,24 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
});
}
loadLists(){
for(int i = 0; ConstVariable().itensCertificate.length > i; i++){
typeCertificate.add(ConstVariable().itensCertificate[i].title);
}
for(int i = 0; ConstVariable().itensDeficiency.length > i; i++){
listDeficiency.add(ConstVariable().itensDeficiency[i].title);
}
for(int i = 0; ConstVariable().listScooling.length > i; i++){
listScooling.add(ConstVariable().listScooling[i].title);
}
for(int i = 0; ConstVariable().listBreed.length > i; i++){
listBreed.add(ConstVariable().listBreed[i].title);
}
for(int i = 0; ConstVariable().listMaritalStatus.length > i; i++){
listMaritalStatus.add(ConstVariable().listMaritalStatus[i].title);
}
}
@override
void initState() {
super.initState();
@@ -438,6 +490,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
loadVillgeDB();
loadTypeStreetDB();
loadSubdivisionsDB();
loadLists();
setState(() {
cityBirthController.text = widget.select;
});
@@ -591,7 +644,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
),
date == 'Data de Nascimento'?ErrorDefault():Container(),
DropdownWithSubtitle(
list: ConstVariable().listMaritalStatus,
list: listMaritalStatus,
subtitle: 'Estado Civil',
hintDropdown: 'Estado Civil',
select: selectMaritalStatus,
@@ -601,6 +654,12 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
onChanged: (value){
setState(() {
selectMaritalStatus = value!;
for(int i = 0;ConstVariable().listMaritalStatus.length >i;i++){
if(ConstVariable().listMaritalStatus[i].title == selectMaritalStatus){
selectMaritalStatusCod = ConstVariable().listMaritalStatus[i].cod;
print(selectMaritalStatusCod);
}
}
if(selectMaritalStatus=='CASADO(A)'){
enableSpouse = true;
}else{
@@ -632,9 +691,15 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
setState(() {
selectNaturality = value!;
if(selectNaturality!='BRASILEIRO'){
if(selectNaturality=='ESTRANGEIRO'){
selectNaturalityCod = 2;
}else{
selectNaturalityCod = 3;
}
cityBirthController.text = 'MUNICIPIO IGNORADO - SP';
}else{
cityBirthController.text = '';
selectNaturalityCod = 1;
}
});
},
@@ -652,7 +717,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
scrollable: true,
content: StatefulBuilder(
builder: (context, setState) {
//aqui
return Column(
children: [
InputSearchText(
@@ -682,11 +747,18 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
width: width*0.8,
color: ColorPalette.white,
child: ListTile(
onTap: (){
onTap: ()async{
List splitted = [];
setState(() {
cityBirthController.text = showResultSearchCity[index];
splitted = cityBirthController.text.split(' - ');
print(splitted[0]);
Navigator.pop(context);
});
resultListNasc = await DBQuerys().buscaMunicipio(splitted[0]);
print(resultListNasc[0]['ID_MUNICIPIO'],);
print(resultListNasc[0]['NO_MUNICIPIO'],);
print(resultListNasc[0]['UF_ESTADO'],);
},
title: TextDefault(
color: ColorPalette.black54,
@@ -720,7 +792,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
),
),
DropdownWithSubtitle(
list: ConstVariable().listBreed,
list: listBreed,
subtitle: 'Raça/Cor',
hintDropdown: 'Raça/Cor',
select: selectBreed,
@@ -730,12 +802,18 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
onChanged: (value){
setState(() {
selectBreed = value!;
for(int i = 0;ConstVariable().listBreed.length >i;i++){
if(ConstVariable().listBreed[i].title == selectBreed){
selectBreedCod = ConstVariable().listBreed[i].cod;
print(selectBreedCod);
}
}
});
},
),
selectBreed==null?ErrorDefault():Container(),
DropdownWithSubtitle(
list: ConstVariable().listScooling,
list: listScooling,
subtitle: 'Escolaridade',
hintDropdown: 'Escolaridade',
select: selectScooling,
@@ -745,11 +823,17 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
onChanged: (value){
setState(() {
selectScooling = value!;
for(int i = 0;ConstVariable().listScooling.length >i;i++){
if(ConstVariable().listScooling[i].title == selectScooling){
selectScoolingCod = ConstVariable().listScooling[i].cod;
print(selectScoolingCod);
}
}
});
},
),
DropdownWithSubtitle(
list: ConstVariable().listDeficiency,
list: listDeficiency,
subtitle: 'Deficiência',
hintDropdown: 'Deficiência',
select: selectDeficiency,
@@ -759,6 +843,12 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
onChanged: (value){
setState(() {
selectDeficiency = value!;
for(int i = 0;ConstVariable().itensDeficiency.length >i;i++){
if(ConstVariable().itensDeficiency[i].title == selectDeficiency){
selectDeficiencyCod = ConstVariable().itensDeficiency[i].cod;
print(selectDeficiencyCod);
}
}
});
},
),
@@ -878,6 +968,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
setState(() {
selectClassification = value;
if(selectClassification=='OUTRO MUNICIPIO'){
selectClassificationCOD = 3;
cityController.clear();
codIBGEController.clear();
cepController.clear();
@@ -896,6 +987,11 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'OK'
);
}else{
if(selectClassification=='PROVISORIO'){
selectClassificationCOD = 2;
}else{
selectClassificationCOD = 1;
}
changedCity();
selectCountry = 'BRASIL';
}
@@ -954,6 +1050,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
selectCountry = value;
if(selectCountry=='OUTRO'){
cityController.text= 'MUNICIPIO IGNORADO - SP';
resultListResid = [{"ID_MUNICIPIO":1,"CODIGO_IBGE":"000000","NO_MUNICIPIO":"MUNICIPIO IGNORADO","UF_ESTADO":"--","ID_PAIS":33}];
codIBGEController.text = '000000';
numberController.clear();
selectVillage = null;
@@ -1022,13 +1119,19 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
width: width*0.8,
color: ColorPalette.white,
child: ListTile(
onTap: (){
onTap: ()async{
List splitted = [];
setState(() {
cityController.text = showResultSearchCity[index];
codIBGEController.text = showResultSearchIbge[index];
splitted = cityController.text.split(' - ');
// print("IBGE ${showResultSearchIbge[index]}");
Navigator.pop(context);
});
resultListResid = await DBQuerys().buscaMunicipio(splitted[0]);
print(resultListResid[0]['ID_MUNICIPIO'],);
print(resultListResid[0]['NO_MUNICIPIO'],);
print(resultListResid[0]['UF_ESTADO'],);
},
title: TextDefault(
color: ColorPalette.black54,
@@ -1089,7 +1192,6 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
});
idBairro = await DBQuerys().buscaBairro(selectVillage);
},
//aqui
list: villageDB
),
selectClassification!='OUTRO MUNICIPIO' && selectVillage == null?ErrorDefault():Container(),
@@ -1222,6 +1324,11 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
onChanged: (value){
setState(() {
selectZone = value;
if(selectZone == 'URBANA'){
selectZoneCod = 1;
}else{
selectZoneCod = 2;
}
});
},
list: ['URBANA','RURAL']
@@ -1520,18 +1627,15 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
onChanged: (value){
setState(() {
selectTypeCertificate = value;
for(int i = 0;ConstVariable().itensCertificate.length >i;i++){
if(ConstVariable().itensCertificate[i].title == selectTypeCertificate){
selectTypeCertificateCod = ConstVariable().itensCertificate[i].cod;
print(selectTypeCertificateCod);
}
}
});
},
list: [
'NASCIMENTO',
'CASAMENTO',
'DIVÓRCIO',
'ADMINISTRATIVA - ÍNDIO',
'NASCIMENTO - N',
'CASAMENTO - N',
'DIVÓRCIO - N',
'ADMINISTRATIVA - ÍNDIO - N',
]
list:typeCertificate
),
InputWithSubtitle(
controller: numberCertificateController,