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

@@ -1,5 +1,9 @@
import 'package:flutter/material.dart';
import 'package:rkm/models/city_load_model.dart';
import 'package:rkm/models/type_breed_model.dart';
import 'package:rkm/models/type_certificate_model.dart';
import '../models/type_marital_model.dart';
import '../models/type_scooling_model.dart';
import 'color_palette.dart';
class ConstVariable{
@@ -149,44 +153,33 @@ class ConstVariable{
'DEMANDA ESPONTÂNEA - CONSULTA NO DIA',
'DEMANDA ESPONTÂNEA - ATENDIMENTO DE EMERGÊNCIA',
];
List<String> listBreed = [
'AMARELA',
'BRANCA',
'INDIGENA',
'NEGRA',
'PARDA',
List<TypeBreedModel> listBreed = [
TypeBreedModel(cod: 4, title: 'AMARELA'),
TypeBreedModel(cod: 1, title: 'BRANCA'),
TypeBreedModel(cod: 5, title: 'INDIGENA'),
TypeBreedModel(cod: 2, title: 'NEGRA'),
TypeBreedModel(cod: 3, title: 'PARDA'),
];
List<String> listScooling = [
'ENSINO FUNDAMENTAL',
'ENSINO MEDIO',
'ENSINO MEDIO INCOMPLETO',
'NAO DEFINIDO',
'SUPERIOR',
'SUPERIOR INCOMPLETO',
];
List<String> listDeficiency = [
'AFONICA',
'AUDITIVA',
'FISICA',
'IGNORADO',
'INTELECTUAL',
'MOTORA',
'MULTIPLA',
'NENHUMA',
'VISUAL',
List<TypeScoolingModel> listScooling = [
TypeScoolingModel(cod: 4, title: 'ENSINO FUNDAMENTAL'),
TypeScoolingModel(cod: 3, title: 'ENSINO MEDIO'),
TypeScoolingModel(cod: 5, title: 'ENSINO MEDIO INCOMPLETO'),
TypeScoolingModel(cod: 0, title: 'NAO DEFINIDO'),
TypeScoolingModel(cod: 1, title: 'SUPERIOR'),
TypeScoolingModel(cod: 2, title: 'SUPERIOR INCOMPLETO'),
];
List<String> listTeam = [
'INE: 0001558536 / Área: 4 - Microárea: --'
];
List<String> listMaritalStatus = [
'CASADO(A)',
'DESQUITADO(A)',
'DIVORCIADO(A)',
'NAO DEFINIDO',
'SEPARADO(A)',
'SOLTEIRO(A)',
'UNIAO ESTAVEL',
'VIUVO(A)',
List<TypeMaritalModel> listMaritalStatus = [
TypeMaritalModel(cod: 2,title: 'CASADO(A)'),
TypeMaritalModel(cod: 6,title: 'DESQUITADO(A)'),
TypeMaritalModel(cod: 4,title: 'DIVORCIADO(A)'),
TypeMaritalModel(cod: 99,title: 'NAO DEFINIDO'),
TypeMaritalModel(cod: 7,title: 'SEPARADO(A)'),
TypeMaritalModel(cod: 1,title: 'SOLTEIRO(A)'),
TypeMaritalModel(cod: 5,title: 'UNIAO ESTAVEL'),
TypeMaritalModel(cod: 3,title: 'VIUVO(A)'),
];
List<String> listGender = [
'FEMININO','MASCULINO'
@@ -222,6 +215,30 @@ class ConstVariable{
'225124 - Médico pediatra',
'225125 - Médico clínico',
];
List<TypeCertificateModel> itensDeficiency = [
TypeCertificateModel(cod: 4, title: 'AFONICA'),
TypeCertificateModel(cod: 5, title: 'AUDITIVA'),
TypeCertificateModel(cod:10, title: 'FISICA'),
TypeCertificateModel(cod: 2, title: 'IGNORADO'),
TypeCertificateModel(cod: 6, title: 'INTELECTUAL'),
TypeCertificateModel(cod: 7, title: 'MOTORA'),
TypeCertificateModel(cod: 8, title: 'MULTIPLA'),
TypeCertificateModel(cod: 3, title: 'NENHUMA'),
TypeCertificateModel(cod: 9, title: 'VISUAL'),
];
List<TypeCertificateModel> itensCertificate = [
TypeCertificateModel(cod: 91, title: 'NASCIMENTO'),
TypeCertificateModel(cod: 92, title: 'CASAMENTO'),
TypeCertificateModel(cod: 93, title: 'DIVÓRCIO'),
TypeCertificateModel(cod: 95, title: 'ADMINISTRATIVA - ÍNDIO'),
TypeCertificateModel(cod: 91, title: 'NASCIMENTO - N'),
TypeCertificateModel(cod: 92, title: 'CASAMENTO - N'),
TypeCertificateModel(cod: 93, title: 'DIVÓRCIO - N'),
TypeCertificateModel(cod: 95, title: 'ADMINISTRATIVA - ÍNDIO - N'),
];
List<CityLoadModel> itensCity = [
CityLoadModel(codCity: 3311, nameCityApi: 'anhembi', nameCityFront: 'Anhembi', codState: 'SP', codCityIbge: 350230),
CityLoadModel(codCity: 3313, nameCityApi: 'aparecida', nameCityFront: 'Aparecida', codState: 'SP', codCityIbge: 350250),

View File

@@ -0,0 +1,10 @@
class TypeBreedModel{
int cod;
String title;
TypeBreedModel({
required this.cod,
required this.title
});
}

View File

@@ -0,0 +1,10 @@
class TypeCertificateModel{
int cod;
String title;
TypeCertificateModel({
required this.cod,
required this.title
});
}

View File

@@ -0,0 +1,10 @@
class TypeDeficiencyModel{
int cod;
String title;
TypeDeficiencyModel({
required this.cod,
required this.title
});
}

View File

@@ -0,0 +1,10 @@
class TypeMaritalModel{
int cod;
String title;
TypeMaritalModel({
required this.cod,
required this.title
});
}

View File

@@ -0,0 +1,10 @@
class TypeScoolingModel{
int cod;
String title;
TypeScoolingModel({
required this.cod,
required this.title
});
}

View File

@@ -1,10 +1,14 @@
import 'package:flutter/material.dart';
import 'package:line_icons/line_icons.dart';
import 'package:rkm/config/color_palette.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/widgets/alert_dialog_default.dart';
import 'package:rkm/service/db/db_querys.dart';
import 'package:rkm/service/db/db_sqlite_load.dart';
import 'package:rkm/widgets/appbar_default.dart';
import 'package:rkm/widgets/button_default.dart';
import '../../widgets/alert_dialog_default.dart';
import '../../widgets/dropdown_button_default.dart';
import '../../widgets/input_search_text.dart';
import '../../widgets/subtitle_containers.dart';
import '../../widgets/text_default.dart';
import '../../widgets/title_containers.dart';
@@ -21,14 +25,158 @@ class _MainProceduresScreenState extends State<MainProceduresScreen> {
String? selectService;
String? selectProcedure;
String? selectCBO;
String COD_PROC_SIGTAP = '';
String CODIGO_CBO = '';
bool disableButton = true;
var controllerProceduresSearch = TextEditingController();
var controllerCBOSearch = TextEditingController();
List listProcedures = [];
List listProcInit = [];
List listCBOS = [];
List showResultSearchProcedures = [];
List showResultSearchCBO = [];
@override
void initState() {
super.initState();
loadProcedures();
loadCBOS();
loadProceduresInit();
controllerProceduresSearch.addListener(_searchProceduresInit);
controllerCBOSearch.addListener(_searchCBOSInit);
}
_searchProceduresInit(){
searchProcedures();
}
_searchCBOSInit(){
searchCBOS();
}
searchProcedures()async{
showResultSearchProcedures =[];
if(controllerProceduresSearch.text.isNotEmpty){
for (int i =0;listProcedures.length>i;i++) {
String procedure = '${listProcedures[i]}';
if(procedure.contains(controllerProceduresSearch.text.toUpperCase())){
if(showResultSearchProcedures.length<10){
showResultSearchProcedures.add(listProcedures[i]);
}
}
}
setState(() {});
}else{
if(listProcedures.length>9){
for(int i = 0;i<10;i++){
showResultSearchProcedures.add(listProcedures[i]);
}
}else{
for(int i = 0;i<listProcedures.length;i++){
showResultSearchProcedures.add(listProcedures[i]);
}
}
setState(() {});
}
}
searchCBOS()async{
showResultSearchCBO =[];
if(controllerCBOSearch.text.isNotEmpty){
for (int i =0;listCBOS.length>i;i++) {
String cbo = '${listCBOS[i]}';
if(cbo.contains(controllerCBOSearch.text)){
if(showResultSearchCBO.length<10){
showResultSearchCBO.add(listCBOS[i]);
}
}
}
setState(() {});
}else{
if(listCBOS.length>9){
for(int i = 0;i<10;i++){
showResultSearchCBO.add(listCBOS[i]);
}
}else{
for(int i = 0;i<listCBOS.length;i++){
showResultSearchCBO.add(listCBOS[i]);
}
}
setState(() {});
}
}
loadProcedures()async{
// [{COD_PROC_SIGTAP: 0101010010,
// DESC_PROC_SIGTAP: ATIVIDADE EDUCATIVA / ORIENTAÇÃO EM GRUPO NA ATENÇÃO PRIMÁRIA,
// GRUPO_PROC_SIGTAP: 01, QTDE_MAXIMA: 9999, IDADE_MIN: 833, IDADE_MAX: 833, SEXO: N}]
List list = await DBQuerys().buscaprocedimento();
if(list.length != 0){
for(int i = 0; list.length > i;i++){
listProcedures.add('${list[i]['COD_PROC_SIGTAP']} - ${list[i]['DESC_PROC_SIGTAP']}');
}
setState(() {});
}
}
loadCBOS()async{
// [{CODIGO_CBO: 223208, DESCRICAO_CBO: Cirurgião dentista - clínico geral}]
List list = await DBQuerys().buscaCBOS();
if(list.length != 0){
for(int i = 0; list.length > i;i++){
listCBOS.add('${list[i]['CODIGO_CBO']} - ${list[i]['DESCRICAO_CBO']}');
}
// print(listCBOS);
setState(() {});
}
}
loadProceduresInit()async{
listProcInit = [];
// [{CODIGO_CBO: 223208, DESCRICAO_CBO: Cirurgião dentista - clínico geral}]
listProcInit = await DBQuerys().buscaProcIniciais();
// print(listProcInit);
setState(() {});
}
saveProcedures()async{
List splittedCODProc = selectProcedure!.split(' ');
List splittedCODCBO = selectCBO!.split(' ');
List check = await DBQuerys().buscaProceduresCBO(splittedCODProc[0], splittedCODCBO[0]);
if(check.length!=0){
Map<String, dynamic> row = {
'ATENDIMENTO' : selectService=='ATENDIMENTO INDIVIDUAL'?1:2,
'COD_PROC_SIGTAP' : splittedCODProc[0],
'CODIGO_CBO' : splittedCODCBO[0],
};
await DbSqliteLoad().saveProceduresInit(row).then((value){
loadProceduresInit();
});
}else{
AlertDialogDefault().alert(context, 'Aviso', 'Procedimento não permitido para o CBO informado!', 'OK');
}
}
deleteProcedures(int ATENDIMENTO,String CODIGO_CBO,String COD_PROC_SIGTAP)async{
// [{ATENDIMENTO: 1, COD_PROC_SIGTAP: 0101010010, CODIGO_CBO: 223208}, {ATENDIMENTO: 2, COD_PROC_SIGTAP: 0101010010, CODIGO_CBO: 223208}]
await DbSqliteLoad().deleteProceduresInit(ATENDIMENTO,CODIGO_CBO,COD_PROC_SIGTAP).then((value){
loadProceduresInit();
});
}
updateContext(){
Navigator.pop(context);
if(selectProcedure!= null && selectCBO!= null && selectService!=null){
disableButton = false;
}
setState(() {});
}
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Procedimentos Iniciais'),
@@ -53,7 +201,7 @@ class _MainProceduresScreenState extends State<MainProceduresScreen> {
widthContainer: width*0.35,
title: '',
width: width*0.4,
list: ConstVariable().itensProceduresStart,
list: ['ATENDIMENTO INDIVIDUAL','VISITA DOMICILIAR'],
select: selectService,
onChanged: (value){
setState(() {
@@ -69,37 +217,69 @@ class _MainProceduresScreenState extends State<MainProceduresScreen> {
),
Divider(color: ColorPalette.black54,endIndent: 10,indent: 10,height: 1),
GestureDetector(
onTap: ()=>AlertDialogDefault().alert_with_search(
context,
controllerProceduresSearch,
ListView.separated(
separatorBuilder:(context,index)=> Divider(color: ColorPalette.black54,height: 5,),
itemCount: ConstVariable().itensProcedures.length,
itemBuilder: (context,index){
return Container(
width: width*0.8,
color: ColorPalette.white,
child: ListTile(
onTap: (){
setState(() {
selectProcedure = ConstVariable().itensProcedures[index];
Navigator.pop(context);
if(selectProcedure!= null && selectCBO!= null && selectService!=null){
disableButton = false;
}
});
},
title: TextDefault(
color: ColorPalette.black54,
text: ConstVariable().itensProcedures[index],
fontSize: 16,
maxLines: 2,
),
),
onTap: (){
controllerProceduresSearch.text = '';
searchProcedures();
showDialog(
context: context,
builder: (context){
return AlertDialog(
scrollable: true,
content: StatefulBuilder(
builder: (context, setState) {
//aqui
return Column(
children: [
InputSearchText(
onChanged: (v){
setState((){
searchProcedures();
});
},
controller: controllerProceduresSearch,
width: width*0.8,
hint: 'Buscar...',
color: ColorPalette.titleContainer,
border: false,
),
Container(
padding: EdgeInsets.symmetric(vertical: 10),
width: width*0.8,
child: Container(
width: width*0.8,
height: height*0.6,
padding: EdgeInsets.symmetric(horizontal: 10),
child: ListView.separated(
separatorBuilder:(context,index)=> Divider(color: ColorPalette.black54,height: 5,),
itemCount: showResultSearchProcedures.length,
itemBuilder: (context,index){
return Container(
width: width*0.8,
color: ColorPalette.white,
child: ListTile(
onTap: (){
selectProcedure = showResultSearchProcedures[index];
updateContext();
},
title: TextDefault(
color: ColorPalette.black54,
text: showResultSearchProcedures[index],
fontSize: 16,
maxLines: 2,
),
),
);
}
),
),
),
],
);
}),
);
}
),
),
},
);
},
child: selectProcedure!=null?
Container(
width: width,
@@ -123,37 +303,69 @@ class _MainProceduresScreenState extends State<MainProceduresScreen> {
SubtitleContainers(title: 'Procedimento')
),
GestureDetector(
onTap: ()=>AlertDialogDefault().alert_with_search(
context,
controllerCBOSearch,
ListView.separated(
separatorBuilder:(context,index)=> Divider(color: ColorPalette.black54,height: 5,),
itemCount: ConstVariable().itensCBO.length,
itemBuilder: (context,index){
return Container(
width: width*0.8,
color: ColorPalette.white,
child: ListTile(
onTap: (){
setState(() {
selectCBO = ConstVariable().itensCBO[index];
Navigator.pop(context);
if(selectProcedure!= null && selectCBO!= null && selectService!=null){
disableButton = false;
}
});
},
title: TextDefault(
color: ColorPalette.black54,
text: ConstVariable().itensCBO[index],
fontSize: 16,
maxLines: 2,
),
),
);
}
),
),
onTap: (){
controllerCBOSearch.text = '';
searchCBOS();
showDialog(
context: context,
builder: (context){
return AlertDialog(
scrollable: true,
content: StatefulBuilder(
builder: (context, setState) {
//aqui
return Column(
children: [
InputSearchText(
onChanged: (v){
setState((){
searchCBOS();
});
},
controller: controllerCBOSearch,
width: width*0.8,
hint: 'Buscar...',
color: ColorPalette.titleContainer,
border: false,
),
Container(
padding: EdgeInsets.symmetric(vertical: 10),
width: width*0.8,
child: Container(
width: width*0.8,
height: height*0.6,
padding: EdgeInsets.symmetric(horizontal: 10),
child: ListView.separated(
separatorBuilder:(context,index)=> Divider(color: ColorPalette.black54,height: 5,),
itemCount: showResultSearchCBO.length,
itemBuilder: (context,index){
return Container(
width: width*0.8,
color: ColorPalette.white,
child: ListTile(
onTap: (){
selectCBO = showResultSearchCBO[index];
updateContext();
},
title: TextDefault(
color: ColorPalette.black54,
text: showResultSearchCBO[index],
fontSize: 16,
maxLines: 2,
),
),
);
}
),
),
),
],
);
}),
);
},
);
},
child: selectCBO!=null?
Container(
width: width,
@@ -184,7 +396,11 @@ class _MainProceduresScreenState extends State<MainProceduresScreen> {
background: ColorPalette.appBar,
disableColor: ColorPalette.buttonDisable,
textColor: ColorPalette.white,
onPressed: disableButton?null:()=>Navigator.pushReplacementNamed(context, '/home'),
onPressed: disableButton?null:(){
if(selectProcedure!= null && selectCBO!= null && selectService!=null){
saveProcedures();
}
},
width: double.infinity,
),
)
@@ -194,8 +410,39 @@ class _MainProceduresScreenState extends State<MainProceduresScreen> {
Padding(
padding: const EdgeInsets.symmetric(vertical: 10.0,horizontal: 2),
child: Card(
child: TitleContainers(
title: 'Procedimentos',
child: Column(
children: [
TitleContainers(
title: 'Procedimentos',
),
Container(
height: height*listProcInit.length*0.08,
child: ListView.builder(
itemCount: listProcInit.length,
itemBuilder: (context,index){
return Padding(
padding: const EdgeInsets.all(10.0),
child: Row(
children: [
TextDefault(
text: '${listProcInit[index]['ATENDIMENTO']==1?'ATENDIMENTO INDIVIDUAL':'VISITA DOMICILIAR'} - ${listProcInit[index]['COD_PROC_SIGTAP']} - ${listProcInit[index]['CODIGO_CBO']}',
fontSize: 15,
color: ColorPalette.black54,
),
Spacer(),
IconButton(
icon: Icon(LineIcons.trash),
onPressed: (){
deleteProcedures(listProcInit[index]['ATENDIMENTO'],listProcInit[index]['CODIGO_CBO'],listProcInit[index]['COD_PROC_SIGTAP']);
},
)
],
),
);
},
),
)
],
)
),
),

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,

View File

@@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:rkm/config/color_palette.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/widgets/alert_dialog_default.dart';
import 'package:rkm/widgets/button_default.dart';
import 'package:rkm/widgets/title_containers.dart';
import '../../widgets/appbar_default.dart';
@@ -11,7 +10,6 @@ import '../../widgets/input_with_subtitle.dart';
import '../../widgets/onbackbutton.dart';
import '../../widgets/subtitle_appbar_citizen.dart';
import '../../widgets/switch_with_subtitle.dart';
import '../../widgets/text_default.dart';
class RegisterHomeScreen extends StatefulWidget {
const RegisterHomeScreen({Key? key}) : super(key: key);

View File

@@ -33,4 +33,38 @@ class DBQuerys{
print(list[0]['ID_LOGR_TIPO']);
return list[0]['ID_LOGR_TIPO'].toString();
}
buscaprocedimento()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM PROCEDIMENTOS_SIGTAP";
List list = await db.rawQuery(query);
// print(list);
return list;
}
buscaCBOS()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM CBOS ORDER BY DESCRICAO_CBO";
List list = await db.rawQuery(query);
// print(list);
return list;
}
buscaProcIniciais()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT DISTINCT ATENDIMENTO, COD_PROC_SIGTAP, CODIGO_CBO FROM PROCEDIMENTOS_INICIAIS ORDER BY ATENDIMENTO, COD_PROC_SIGTAP, CODIGO_CBO";
List list = await db.rawQuery(query);
// print(list);
return list;
}
buscaProceduresCBO(String COD_PROC_SIGTAP,String CODIGO_CBO)async{
Database db = await DbSqliteLoad().intialDB();
var query = 'SELECT * FROM PROCEDIMENTOS_SIGTAP_CBO WHERE COD_PROC_SIGTAP = "$COD_PROC_SIGTAP" AND CODIGO_CBO = "$CODIGO_CBO"';
List list = await db.rawQuery(query);
return list;
}
buscaMunicipio(String NO_MUNICIPIO)async{
Database db = await DbSqliteLoad().intialDB();
var query = 'SELECT * FROM MUNICIPIOS WHERE NO_MUNICIPIO = "$NO_MUNICIPIO"';
List list = await db.rawQuery(query);
print(list);
return list;
}
}

View File

@@ -322,4 +322,19 @@ class DbSqliteLoad{
// print(await db.query('PROFISSIONAIS_EQUIPE'));
return db;
}
Future saveProceduresInit(var value)async{
Database db = await intialDB();
int id = await db.insert('PROCEDIMENTOS_INICIAIS', value);
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
print(await db.query('PROCEDIMENTOS_INICIAIS'));
return db;
}
Future deleteProceduresInit(int ATENDIMENTO,String CODIGO_CBO,String COD_PROC_SIGTAP)async{
Database db = await intialDB();
await db.rawDelete('DELETE FROM PROCEDIMENTOS_INICIAIS WHERE ATENDIMENTO = $ATENDIMENTO AND CODIGO_CBO = "$CODIGO_CBO" AND COD_PROC_SIGTAP = "$COD_PROC_SIGTAP"');
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
print(await db.query('PROCEDIMENTOS_INICIAIS'));
return db;
}
}