ajustes envio das tabelas, criação e edição de cidadão

This commit is contained in:
Reginaldo
2023-04-19 19:26:57 -03:00
parent 9ea45caab6
commit 2e63d60e14
21 changed files with 932 additions and 267 deletions

View File

@@ -1,9 +1,9 @@
import 'package:flutter/material.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/service/db/db_querys.dart';
import 'package:rkm/widgets/button_default.dart';
import '../../config/color_palette.dart';
import '../../service/shared_preferences/shared_preferences_service.dart';
import '../../service/api/api_data_post.dart';
import '../../service/db/db_sqlite_load.dart';
import '../../widgets/text_default.dart';
class SincDataScreen extends StatefulWidget {
@@ -16,15 +16,200 @@ class SincDataScreen extends StatefulWidget {
class _SincDataScreenState extends State<SincDataScreen> {
String mode ='';
String urlAPI ='';
String nameCityApi ='';
List tableCIDADAOS = [];
List tableCIDADAO_DOMICILIO = [];
List tableDOMICILIOS_CIDADAOS = [];
List tableINNERJOINCIDADAO_DOMICILIO = [];
List tableCADASTROS_INDIVIDUAIS = [];
List tableATENDS_INDIV_COMPL = [];
List tableATENDS_INDIV_EXAMES = [];
List tableATENDS_INDIV_PROC = [];
List tableATENDS_INDIV_PROF = [];
List tableATENDS_INDIVIDUAIS = [];
List tablePROCEDIMENTOS_FICHAS = [];
List tablePROCEDIMENTOS_INDIV = [];
List tablePROCEDIMENTOS_INDIV_FICHA = [];
List tablePROCEDIMENTOS_INDIV_SIGTAP = [];
List tableVISITAS_DOMICILIARES = [];
List tableVISITAS_DOMICILIARES_COMPL = [];
List tableVISITAS_DOMICILIARES_PROC = [];
List tableFICHAS_COMPLEMENTARES = [];
List tableATENDIMENTOS_DOMICILIARES = [];
List tableATENDS_DOM_COMPL = [];
List tableATENDS_DOM_PROC = [];
List tableATENDS_DOM_SIGTAP = [];
List tableATENDS_ODONTOLOGICOS = [];
List tableATENDS_ODONTO_PROF = [];
List tableATENDS_ODONTO_PROC = [];
List tableATENDS_ODONTO_SIGTAP = [];
List tableATENDS_ODONTO_COMPL = [];
List tableMARCADORES_CON_QUEST = [];
List tableMARCADORES_CONSUMO = [];
List tableAVAL_ELEG_COND_AVAL = [];
List tableAVAL_ELEG_CONCL_INE = [];
List tableAVALIACOES_ELEGIBILIDADE = [];
String message = 'A Sincronização poderá demorar. Prosseguir?';
bool upload = false;
bool done = false;
dataSQLite()async{
final PrefService _preferences = PrefService();
_preferences.readCacheModel('user', 'password', 'city', 'mode').then((list){
setState(() {
mode = list[3];
updateTable()async{
setState(() {
upload = true;
message = 'Aguarde enquanto os dados são Sincronizados.';
});
await DBQuerys().cadCidadaos().then((response)async{
tableCIDADAOS = response;
// print(tableCIDADAOS);
await DBQuerys().cadDomiciliares().then((response)async{
tableCIDADAO_DOMICILIO = response;
// print(tableCIDADAO_DOMICILIO);
await DBQuerys().domCidadaos().then((response)async{
tableDOMICILIOS_CIDADAOS = response;
// print(tableDOMICILIOS_CIDADAOS);
await DBQuerys().logrDomicilios().then((response)async{
tableINNERJOINCIDADAO_DOMICILIO = response;
// print(tableINNERJOINCIDADAO_DOMICILIO);
await DBQuerys().cadIndividuais().then((response)async{
tableCADASTROS_INDIVIDUAIS = response;
// print(tableCADASTROS_INDIVIDUAIS);
await DBQuerys().atendsIndivCompl().then((response)async{
tableATENDS_INDIV_COMPL = response;
// print(tableATENDS_INDIV_COMPL);
await DBQuerys().atendsIndivExames().then((response)async{
tableATENDS_INDIV_EXAMES =response;
// print(tableATENDS_INDIV_EXAMES);
await DBQuerys().atendsIndivProc().then((response)async{
tableATENDS_INDIV_PROC = response;
// print(tableATENDS_INDIV_PROC);
await DBQuerys().atendsIndivProf().then((response)async{
tableATENDS_INDIV_PROF = response;
// print(tableATENDS_INDIV_PROF);
await DBQuerys().atendsIndividuais().then((response)async{
tableATENDS_INDIVIDUAIS = response;
// print(tableATENDS_INDIVIDUAIS);
await DBQuerys().procedimentosFichas().then((response)async{
tablePROCEDIMENTOS_FICHAS = response;
// print(tablePROCEDIMENTOS_FICHAS);
await DBQuerys().procedimentosIndiv().then((response)async{
tablePROCEDIMENTOS_INDIV = response;
// print(tablePROCEDIMENTOS_INDIV);
await DBQuerys().procedimentosIndivFicha().then((response)async{
tablePROCEDIMENTOS_INDIV_FICHA = response;
// print(tablePROCEDIMENTOS_INDIV_FICHA);
await DBQuerys().procedimentosIndivSigtap().then((response)async{
tablePROCEDIMENTOS_INDIV_SIGTAP = response;
// print(tablePROCEDIMENTOS_INDIV_SIGTAP);
await DBQuerys().visitasDomiciliares().then((response)async{
tableVISITAS_DOMICILIARES = response;
// print(tableVISITAS_DOMICILIARES);
await DBQuerys().visitasDomiciliaresCompl().then((response)async{
tableVISITAS_DOMICILIARES_COMPL = response;
// print(tableVISITAS_DOMICILIARES_COMPL);
await DBQuerys().visitasDomiciliaresProc().then((response)async{
tableVISITAS_DOMICILIARES_PROC = response;
// print(tableVISITAS_DOMICILIARES_PROC);
await DBQuerys().fichasComplementares().then((response)async{
tableFICHAS_COMPLEMENTARES = response;
// print(tableFICHAS_COMPLEMENTARES);
await DBQuerys().atendimentosDomiciliares().then((response)async{
tableATENDIMENTOS_DOMICILIARES = response;
// print(tableATENDIMENTOS_DOMICILIARES);
await DBQuerys().atendDomCompl().then((response)async{
tableATENDS_DOM_COMPL = response;
// print(tableATENDS_DOM_COMPL);
await DBQuerys().atendDomProcsFicha().then((response)async{
tableATENDS_DOM_PROC = response;
// print(tableATENDS_DOM_PROC);
await DBQuerys().atendDomProcsSigtap().then((response)async{
tableATENDS_DOM_SIGTAP = response;
// print(tableATENDS_DOM_SIGTAP);
await DBQuerys().atendsOdontologicos().then((response)async{
tableATENDS_ODONTOLOGICOS = response;
// print(tableATENDS_ODONTOLOGICOS);
await DBQuerys().atendsOdontoProf().then((response)async{
tableATENDS_ODONTO_PROF = response;
// print(tableATENDS_ODONTO_PROF);
await DBQuerys().atendsOdontoProc().then((response)async{
tableATENDS_ODONTO_PROC = response;
// print(tableATENDS_ODONTO_PROC);
await DBQuerys().atendsOdontoSigtap().then((response)async{
tableATENDS_ODONTO_SIGTAP = response;
// print(tableATENDS_ODONTO_SIGTAP);
await DBQuerys().atendsOdontoCompl().then((response)async{
tableATENDS_ODONTO_COMPL = response;
// print(tableATENDS_ODONTO_COMPL);
await DBQuerys().marcadoresConQuest().then((response)async{
tableMARCADORES_CON_QUEST = response;
// print(tableMARCADORES_CON_QUEST);
await DBQuerys().marcadoresConsumo().then((response)async{
tableMARCADORES_CONSUMO = response;
// print(tableMARCADORES_CONSUMO);
await DBQuerys().avalElegCondAval().then((response)async{
tableAVAL_ELEG_COND_AVAL = response;
// print(tableAVAL_ELEG_COND_AVAL);
await DBQuerys().avalElegConclIne().then((response)async{
tableAVAL_ELEG_CONCL_INE = response;
// print(tableAVAL_ELEG_CONCL_INE);
await DBQuerys().avaliacoesElegibilidade().then((response)async{
tableAVALIACOES_ELEGIBILIDADE = response;
// print(tableAVALIACOES_ELEGIBILIDADE);
// print('aqui2');
syncData();
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
}
syncData()async{
// ApiDataPost().sincronizacao(urlAPI, mode, nameCityApi).then((value){});
setState(() {
upload = false;
done = true;
message = '';
});
}
dataSQLite()async{
await DbSqliteLoad().intialDB().then((db)async {
List list = await db.query('ARGS');
urlAPI = list[0]['URLAPI'];
mode = list[0]['MODE'];
nameCityApi = list[0]['NAME_CITY_API'];
});
// print(urlAPI);
// print(mode);
// print(nameCityApi);
}
@override
void initState() {
@@ -35,6 +220,7 @@ class _SincDataScreenState extends State<SincDataScreen> {
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
return Scaffold(
bottomSheet: Container(
color: ColorPalette.appBar,
@@ -71,20 +257,126 @@ class _SincDataScreenState extends State<SincDataScreen> {
Padding(
padding: const EdgeInsets.symmetric(vertical: 5.0),
child: TextDefault(
text: 'A Sincronização poderá demorar. Prosseguir?',
text: message,
color: ColorPalette.black54,
fontSize: 22,
fontWeigth: FontWeight.bold,
),
),
ButtonDefault(
upload?Image.asset('assets/images/loading.gif',width: width*0.4):Container(),
done?Image.asset('assets/images/send-done.png',width: width*0.9):Container(),
!upload && !done?ButtonDefault(
title: 'Enviar informações',
width: width*0.9,
textColor: ColorPalette.white,
background: ColorPalette.appBar,
borderColor: ColorPalette.appBar,
onPressed: ()=>Navigator.pushReplacementNamed(context, '/home'),
)
onPressed: ()=>updateTable(),
):Container(),
SizedBox(height: 20,),
done?Container(
color: ColorPalette.white,
width: width,
height: height*0.3,
child: ListView(
children: [
TextDefault(
text: 'Atendimentos Domiciliares: ${tableATENDIMENTOS_DOMICILIARES.length}',
textAlign: TextAlign.center,
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
text: 'Atendimento Individuais: ${tableATENDS_INDIVIDUAIS.length}',
textAlign: TextAlign.center,
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
textAlign: TextAlign.center,
text: 'Atendimentos Odontológicos: ${tableATENDS_ODONTOLOGICOS.length}',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
textAlign: TextAlign.center,
text: 'Avaliação Elegibilidade: ${tableAVALIACOES_ELEGIBILIDADE.length}',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
textAlign: TextAlign.center,
text: 'Cadastros Cidadãos Realizados / Atualizados : ${tableCIDADAOS.length}',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
textAlign: TextAlign.center,
text: 'Fichas Complementares: ${tableFICHAS_COMPLEMENTARES.length}',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
textAlign: TextAlign.center,
text: 'Marcadores de Consumo : ${tableMARCADORES_CONSUMO.length}',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
textAlign: TextAlign.center,
//aqui verificar de qual tela seria esses dados
text: 'Procedimentos Consolidados: 0',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
textAlign: TextAlign.center,
text: 'Procedimentos Individuais : ${tablePROCEDIMENTOS_INDIV.length}',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
textAlign: TextAlign.center,
text: 'Visitas Domiciliares: ${tableVISITAS_DOMICILIARES.length}',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
],
)
):Container(),
SizedBox(height: 30,),
done?Padding(
padding: const EdgeInsets.symmetric(horizontal: 30.0),
child: ButtonDefault(
title: 'Continuar (Mantendo os Dados)',
width: width*0.9,
textColor: ColorPalette.white,
background: ColorPalette.appBar,
borderColor: ColorPalette.appBar,
onPressed: ()=>Navigator.pushNamedAndRemoveUntil(context, '/home', (Route<dynamic> route) => false),
),
):Container(),
done?Padding(
padding: const EdgeInsets.symmetric(horizontal: 30.0),
child: ButtonDefault(
title: 'Continuar (Limpando os Dados)',
width: width*0.9,
textColor: ColorPalette.white,
background: ColorPalette.red,
borderColor: ColorPalette.red,
onPressed: (){},
),
):Container(),
],
),
),

View File

@@ -1,7 +1,9 @@
import 'package:flutter/material.dart';
import 'package:line_icons/line_icons.dart';
import 'package:rkm/controllers/main_controllers.dart';
import 'package:rkm/screens/registers_citizen/register_citizen_screen.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/service/db/db_querys.dart';
import 'package:rkm/widgets/icon_button_default.dart';
import 'package:rkm/widgets/input_search_text.dart';
import '../service/db/db_sqlite_load.dart';
@@ -68,12 +70,12 @@ class _HomeScreenState extends State<HomeScreen> {
searchCitizen();
}
@override
void initState() {
super.initState();
loadCitizen();
inputSearch.addListener(_searchInit);
}
@override
void dispose() {
@@ -106,7 +108,7 @@ class _HomeScreenState extends State<HomeScreen> {
icon: Icons.person_add,
onPressed: ()=> Navigator.push(
context,
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(select: '')),
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(listData: [],)),
)
),
IconButtonDefault(
@@ -138,10 +140,15 @@ class _HomeScreenState extends State<HomeScreen> {
mother:'${showResults[index]['NOME_MAE']}',
numberCNS: '${showResults[index]['CNS']}'=='null'||'${showResults[index]['CNS']}'==''?'999999999999999':'${showResults[index]['CNS']}',
numberMedicalRecord: '${showResults[index]['NUM_PRONTUARIO']}'==''?'-----':'${showResults[index]['NUM_PRONTUARIO']}',
onTap: ()=> Navigator.push(
context,
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(select: '')),
),
onTap: ()async {
await DBQuerys().buscaCidadao(showResults[index]['NOME_CIDADAO']).then((list){
Navigator.push(
context,
MaterialPageRoute(builder:
(context) => RegisterCitizenScreen(listData: list,)),
);
});
}
);
}
)

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:rkm/controllers/main_controllers.dart';
import 'package:rkm/service/api/url_api_const.dart';
import 'package:rkm/config/color_palette.dart';
import 'package:rkm/config/const_variable.dart';
@@ -7,7 +8,6 @@ import 'package:rkm/widgets/dropdown_button_city.dart';
import 'package:rkm/widgets/input_text.dart';
import 'package:rkm/widgets/text_default.dart';
import '../../service/api/api_data_load.dart';
import '../../service/api/encrypt_password.dart';
import '../../service/db/db_sqlite_load.dart';
import '../../service/shared_preferences/shared_preferences_service.dart';
import '../load_init_screen.dart';
@@ -78,7 +78,7 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
error = '';
});
//verificar se a criptografia identificou se a senha está correta
if(EncryptPassword().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
if(MainControllers().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
// print(EncryptPassword().encrypt(inputPassword.text,response['userPass']));
setState(() {
loading = false;

View File

@@ -7,8 +7,8 @@ import 'package:rkm/config/const_variable.dart';
import 'package:rkm/widgets/button_default.dart';
import 'package:rkm/widgets/input_text.dart';
import 'package:rkm/widgets/text_default.dart';
import '../../controllers/main_controllers.dart';
import '../../service/api/api_data_load.dart';
import '../../service/api/encrypt_password.dart';
import '../../service/db/db_sqlite_load.dart';
class LoginSavedScreen extends StatefulWidget {
List listControl;
@@ -74,7 +74,7 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
error = '';
});
//verificar se a criptografia identificou se a senha está correta
if(EncryptPassword().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
if(MainControllers().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
// print(EncryptPassword().encrypt(inputPassword.text,response['userPass']));
DbSqliteLoad().updateArgs(mode, inputUser.text, inputPassword.text).then((value){
setState(() {

View File

@@ -7,8 +7,8 @@ import 'package:rkm/widgets/dropdown_button_default.dart';
import 'package:rkm/widgets/input_text.dart';
import 'package:rkm/widgets/text_default.dart';
import 'package:sqflite/sqflite.dart';
import '../../controllers/main_controllers.dart';
import '../../service/api/api_data_load.dart';
import '../../service/api/encrypt_password.dart';
import '../../service/db/db_sqlite_load.dart';
import '../../service/shared_preferences/shared_preferences_service.dart';
class SyncLoginScreen extends StatefulWidget {
@@ -74,7 +74,7 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
setState((){
error = '';
});
if(EncryptPassword().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
if(MainControllers().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
setState(() {
loading = false;
});

View File

@@ -1,4 +1,6 @@
import 'package:brasil_fields/brasil_fields.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
import 'package:rkm/config/color_palette.dart';
import 'package:rkm/config/const_variable.dart';
@@ -21,10 +23,8 @@ import '../../widgets/subtitle_appbar_citizen.dart';
import '../../widgets/switch_with_subtitle.dart';
import '../../widgets/text_default.dart';
class RegisterCitizenScreen extends StatefulWidget {
String select;
RegisterCitizenScreen({required this.select});
List listData;
RegisterCitizenScreen({required this.listData});
@override
State<RegisterCitizenScreen> createState() => _RegisterCitizenScreenState();
}
@@ -87,6 +87,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
String? selectTypeStreet;
String? selectStreet;
String? selectSubdivision;
int? selectSubdivisionCOD;
String? selectZone;
int? selectZoneCod;
String? selectVillage;
@@ -135,6 +136,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
List<String> listBreed = [];
List<String> listMaritalStatus = [];
String idUnidade = '';
String codSus = '';
escolherprazoInicio(BuildContext context,String type) async {
@@ -190,6 +192,9 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
cityController.text = '${listCity[0]['NAME_CITY_FRONT']} - ${listCity[0]['COD_STATE']}'.toUpperCase();
codIBGEController.text = listCity[0]['COD_IBGE'].toString();
});
String city = MainControllers().replaceDefaul(listCity[0]['NAME_CITY_FRONT']);
print(city);
resultListResid = await DBQuerys().buscaMunicipioporNome(city);
}
loadVillgeDB()async{
@@ -247,11 +252,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
}
getCity()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM MUNICIPIOS ORDER BY NO_MUNICIPIO";
List list = await db.rawQuery(query);
// print("SELECT * FROM UNIDADES");
// print(await db.rawQuery("SELECT * FROM UNIDADES"));
List list = await DBQuerys().buscaTodosMunicipios();
for(int i=0; list.length > i;i++){
cityDB.add('${list[i]['NO_MUNICIPIO']} - ${list[i]['UF_ESTADO']}');
ibgeDB.add('${list[i]['CODIGO_IBGE']}');
@@ -334,23 +335,20 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
});
}else{
print('passou');
saveCitizen();
if(widget.listData.length==0){
codSus = MainControllers().gerarCDUsuarioSus();
}else{
codSus = widget.listData[0]['CD_USUARIO_SUS'];
}
if(codSus!=''){
saveCitizen();
}
}
}
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',
'CD_USUARIO_SUS' : codSus,
'NOME_CIDADAO' : nameController.text,
'NOME_SOCIAL' : nameSocialController.text,
'SEXO' : selectGender=='MASCULINO'?'M':'F',
@@ -365,15 +363,14 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'ID_ESCOLARIDADE' : selectScoolingCod,
'ID_DEFICIENCIA' : selectDeficiencyCod,
'NOME_MAE' : nameMotherController.text,
'DESCONHECE_MAE' : '${!enableMother}',
'DESCONHECE_MAE' : enableMother?1:0,
'NOME_PAI' : nameFatherController.text,
'DESCONHECE_PAI' : '${!enableFather}',
'DESCONHECE_PAI' : enableFather?1:0,
'ID_UNIDADE' : idUnidade,
'NUM_PRONTUARIO' : medicalRecordController.text,
'NUM_PRONTUARIO_PROV' : medicalRecordProvController.text,
'CLASSIFICACAO' : selectClassificationCOD,
//aqui
'CLASSIFICACAO_SUB' : '',
'CLASSIFICACAO_SUB' : selectSubdivisionCOD,
'NUM_FAMILIA' : numberFamilyController.text,
'ID_PAIS_RESID' : selectCountry=='BRASIL'?33:0,
'ID_MUNICIPIO_RESID' : resultListResid[0]['ID_MUNICIPIO'],
@@ -425,11 +422,11 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'BLOQUEIO' : enableBlocked,
'ORIGEM' : 'A',
'DT_HORA_CADASTRO' : DateTime.now().toString(),
//aqui
//só depois de salvar o cidadão no banco
'ID_USUARIO_CADASTRO' : '',
//aqui
//só quando for feito o atendimento domicíliar
'ID_DOMICILIO' : '',
//aqui
//só quando for feito um atendimento
'ATENDIMENTOS' : '',
'SINCRONIZADO' : 'N',
};
@@ -480,6 +477,144 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
}
}
getData()async{
// print('passou');
// print(widget.listData);
codSus = widget.listData[0]['CD_USUARIO_SUS'];
nameController.text = widget.listData[0]['NOME_CIDADAO'];
nameSocialController.text = widget.listData[0]['NOME_SOCIAL'];
selectGender = widget.listData[0]['SEXO']=='M'?'MASCULINO':'FEMININO';
dateDB = widget.listData[0]['DT_NASCIMENTO'];
List splittedDate = dateDB.split('-');
date = '${splittedDate[2]}/${splittedDate[1]}/${splittedDate[0]}';
for(int i = 0;ConstVariable().listMaritalStatus.length >i;i++){
if(ConstVariable().listMaritalStatus[i].cod == widget.listData[0]['ID_ESTADO_CIVIL']){
selectMaritalStatusCod = ConstVariable().listMaritalStatus[i].cod;
selectMaritalStatus = ConstVariable().listMaritalStatus[i].title;
}
}
spouseController.text = widget.listData[0]['NOME_CONJUGE'];
selectNaturalityCod = widget.listData[0]['NACIONALIDADE'];
if(selectNaturalityCod==1){
selectNaturality = 'BRASILEIRO';
}
if(selectNaturalityCod==2){
selectNaturality = 'ESTRANGEIRO';
}
if(selectNaturalityCod==3){
selectNaturality = 'NATURALIZADO';
}
int codCityBirth = widget.listData[0]['ID_MUNICIPIO_NASC'];
List listCityBirth = await DBQuerys().buscaMunicipioporId(codCityBirth);
cityBirthController.text = listCityBirth[0]['NO_MUNICIPIO'];
resultListNasc = listCityBirth;
for(int i = 0;ConstVariable().listBreed.length >i;i++){
if(ConstVariable().listBreed[i].cod == widget.listData[0]['ID_ETNIA']){
selectBreedCod = ConstVariable().listBreed[i].cod;
selectBreed = ConstVariable().listBreed[i].title;
}
}
for(int i = 0;ConstVariable().listScooling.length >i;i++){
if(ConstVariable().listScooling[i].cod == widget.listData[0]['ID_ESCOLARIDADE']){
selectScoolingCod = ConstVariable().listScooling[i].cod;
selectScooling = ConstVariable().listScooling[i].title;
}
}
for(int i = 0;ConstVariable().itensDeficiency.length >i;i++){
if(ConstVariable().itensDeficiency[i].cod == widget.listData[0]['ID_DEFICIENCIA']){
selectDeficiencyCod = ConstVariable().itensDeficiency[i].cod;
selectDeficiency = ConstVariable().itensDeficiency[i].title;
}else{
selectDeficiencyCod = 3;
selectDeficiency = 'NENHUMA';
}
}
nameMotherController.text = widget.listData[0]['NOME_MAE'];
enableMother = widget.listData[0]['DESCONHECE_MAE']==0?false:true;
nameFatherController.text = widget.listData[0]['NOME_PAI'];
enableFather = widget.listData[0]['DESCONHECE_PAI']==0?false:true;
idUnidade = widget.listData[0]['ID_UNIDADE'].toString();
medicalRecordController.text = widget.listData[0]['NUM_PRONTUARIO'];
medicalRecordProvController.text = widget.listData[0]['NUM_PRONTUARIO_PROV'].toString();
selectClassificationCOD = widget.listData[0]['CLASSIFICACAO'];
if(selectClassificationCOD==1){
selectClassification = 'MUNICIPE';
}
if(selectClassificationCOD==2){
selectClassification = 'PROVISORIO';
}
if(selectClassificationCOD==3){
selectClassification = 'OUTRO MUNICIPIO';
}
changedCity();
print('sub');
if(widget.listData[0]['CLASSIFICACAO_SUB']!=null && widget.listData[0]['CLASSIFICACAO_SUB']!=''){
selectSubdivisionCOD = widget.listData[0]['CLASSIFICACAO_SUB']=='null'?0:widget.listData[0]['CLASSIFICACAO_SUB'];
selectSubdivision = await DBQuerys().buscaLoteamentoPorID(selectSubdivisionCOD!).toString();
subdivisionDB.add(selectSubdivision!);
}
// 'NUM_FAMILIA' : numberFamilyController.text,
// '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,
// 'NOME_LOGR' : selectStreet,
// 'CEP_LOGR' : cepController.text,
// 'NUMERO_LOGR' : numberController.text,
// 'LOTEAMENTO_LOGR' : selectSubdivision,
// 'COMPL_LOGR' : complementController.text,
// 'PONTO_REFERENCIA' : referencePointController.text,
// 'ZONA_LOGR' : selectZoneCod,
// 'DDD_TELEFONE' : foneDDDController.text,
// 'NUM_TELEFONE' : foneController.text,
// 'DDD_RECADO' : messageDDDController.text,
// 'NUM_RECADO' : messageController.text,
// 'EMAIL' : emailController.text,
// 'OBSERVACOES' : observationController.text,
// 'CPF' : CPFController.text,
// 'CNS' : checkCNS == 'ok'&& CNSController.text.isNotEmpty?CNSController.text:'999999999999999',
// 'TITULO_ELEITOR' : voterController.text,
// 'RG_NUMERO' : RGController.text,
// 'RG_COMPLEMENTO' : RGComplementController.text,
// 'RG_UF' : selectRGUF,
// 'RG_ORGAO' : RGOrganController.text,
// 'RG_DATA_EMISSAO' : RGDateController.text,
// 'TIPO_CERTIDAO' : selectTypeCertificateCod,
// 'NUM_CERTIDAO' : numberCertificateController.text,
// 'CARTORIO_CERTIDAO' : nameCertificateController.text,
// 'LIVRO_CERTIDAO' : bookCertificateController.text,
// 'FOLHA_CERTIDAO' : sheetCertificateController.text,
// 'TERMO_CERTIDAO' : termCertificateController.text,
// 'DT_EMISSAO_CERTIDAO' : dateCertificateController.text,
// 'NUM_CTPS' : CTPSController.text,
// 'NUM_SERIE_CTPS' : numberCTPSController.text,
// 'ESTADO_UF_CTPS' : selectCTPSUF,
// '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' : 'A',
// 'DT_HORA_CADASTRO' : DateTime.now().toString(),
// //só depois de salvar o cidadão no banco
// 'ID_USUARIO_CADASTRO' : '',
// //só quando for feito o atendimento domicíliar
// 'ID_DOMICILIO' : '',
// //só quando for feito um atendimento
// 'ATENDIMENTOS' : '',
// 'SINCRONIZADO' : 'N',
setState(() {});
}
@override
void initState() {
super.initState();
@@ -491,9 +626,9 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
loadTypeStreetDB();
loadSubdivisionsDB();
loadLists();
setState(() {
cityBirthController.text = widget.select;
});
if(widget.listData.length!=0){
getData();
}
}
@override
@@ -635,7 +770,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
child: TextDefault(
text: date,
color: ColorPalette.black54,
fontSize: 18,
fontSize: 16,
),
),
)
@@ -755,7 +890,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
print(splitted[0]);
Navigator.pop(context);
});
resultListNasc = await DBQuerys().buscaMunicipio(splitted[0]);
resultListNasc = await DBQuerys().buscaMunicipioporNome(splitted[0]);
print(resultListNasc[0]['ID_MUNICIPIO'],);
print(resultListNasc[0]['NO_MUNICIPIO'],);
print(resultListNasc[0]['UF_ESTADO'],);
@@ -964,8 +1099,8 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthDropdown: width*0.69,
widthContainerDropdown: width*0.6,
hintDropdown: 'Classificação',
onChanged: (value){
setState(() {
onChanged: (value)async{
selectClassification = value;
if(selectClassification=='OUTRO MUNICIPIO'){
selectClassificationCOD = 3;
@@ -995,7 +1130,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
changedCity();
selectCountry = 'BRASIL';
}
});
setState(() {});
},
list: [
'MUNICIPE',
@@ -1128,7 +1263,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
// print("IBGE ${showResultSearchIbge[index]}");
Navigator.pop(context);
});
resultListResid = await DBQuerys().buscaMunicipio(splitted[0]);
resultListResid = await DBQuerys().buscaMunicipioporNome(splitted[0]);
print(resultListResid[0]['ID_MUNICIPIO'],);
print(resultListResid[0]['NO_MUNICIPIO'],);
print(resultListResid[0]['UF_ESTADO'],);
@@ -1285,10 +1420,11 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthDropdown: width*0.69,
widthContainerDropdown: width*0.6,
hintDropdown: 'Loteamento/Subdistrito',
onChanged: (value){
onChanged: selectClassification=='OUTRO MUNICIPIO' || selectVillage == null?null:(value)async{
setState(() {
selectSubdivision = value;
});
selectSubdivisionCOD = await DBQuerys().buscaLoteamentoPorDesc(selectSubdivision!);
},
list: subdivisionDB
),
@@ -1613,7 +1749,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
child: TextDefault(
text: RGDateController.text,
color: ColorPalette.black54,
fontSize: 18,
fontSize: 16,
),
),
),
@@ -1709,7 +1845,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
child: TextDefault(
text: dateCertificateController.text,
color: ColorPalette.black54,
fontSize: 18,
fontSize: 16,
),
),
),
@@ -1805,16 +1941,46 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
InputWithSubtitle(
controller: incomeController,
subtitle: 'Renda Mensal',
errorInput: 'Campo Obrigatório',
labelInput: 'Renda Mensal',
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
mandatory: false,
onChanged: (v)=>setState((){}),
Container(
color: ColorPalette.white,
margin: EdgeInsets.only(top: 5),
width: width*0.7,
child: TextFormField(
keyboardType: TextInputType.number,
inputFormatters: [
FilteringTextInputFormatter.digitsOnly,
CentavosInputFormatter(moeda: true),
],
controller: incomeController,
style: TextStyle(
color: Colors.black,
fontSize: 16,
),
decoration: InputDecoration(
fillColor: ColorPalette.appBar,
labelText: 'Renda Mensal',
border: OutlineInputBorder(
borderSide: BorderSide(width: 1,color: ColorPalette.black54)
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(width: 1, color: ColorPalette.black54),
borderRadius: BorderRadius.circular(3),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(width: 1, color: ColorPalette.black54),
borderRadius: BorderRadius.circular(3),
),
disabledBorder: OutlineInputBorder(
borderSide: BorderSide(width: 1, color: ColorPalette.black54),
borderRadius: BorderRadius.circular(3),
),
hintText: 'Escreva aqui',
hintStyle: TextStyle(
color: ColorPalette.gray,
fontSize: 16,
)
)
),
),
InputWithSubtitle(
controller: professionalController,
@@ -1844,7 +2010,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
child: TextDefault(
text: dateDeathController.text,
color: ColorPalette.black54,
fontSize: 18,
fontSize: 16,
),
),
),