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:flutter/material.dart';
import 'package:rkm/models/city_load_model.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'; import 'color_palette.dart';
class ConstVariable{ class ConstVariable{
@@ -149,44 +153,33 @@ class ConstVariable{
'DEMANDA ESPONTÂNEA - CONSULTA NO DIA', 'DEMANDA ESPONTÂNEA - CONSULTA NO DIA',
'DEMANDA ESPONTÂNEA - ATENDIMENTO DE EMERGÊNCIA', 'DEMANDA ESPONTÂNEA - ATENDIMENTO DE EMERGÊNCIA',
]; ];
List<String> listBreed = [ List<TypeBreedModel> listBreed = [
'AMARELA', TypeBreedModel(cod: 4, title: 'AMARELA'),
'BRANCA', TypeBreedModel(cod: 1, title: 'BRANCA'),
'INDIGENA', TypeBreedModel(cod: 5, title: 'INDIGENA'),
'NEGRA', TypeBreedModel(cod: 2, title: 'NEGRA'),
'PARDA', TypeBreedModel(cod: 3, title: 'PARDA'),
]; ];
List<String> listScooling = [ List<TypeScoolingModel> listScooling = [
'ENSINO FUNDAMENTAL', TypeScoolingModel(cod: 4, title: 'ENSINO FUNDAMENTAL'),
'ENSINO MEDIO', TypeScoolingModel(cod: 3, title: 'ENSINO MEDIO'),
'ENSINO MEDIO INCOMPLETO', TypeScoolingModel(cod: 5, title: 'ENSINO MEDIO INCOMPLETO'),
'NAO DEFINIDO', TypeScoolingModel(cod: 0, title: 'NAO DEFINIDO'),
'SUPERIOR', TypeScoolingModel(cod: 1, title: 'SUPERIOR'),
'SUPERIOR INCOMPLETO', TypeScoolingModel(cod: 2, title: 'SUPERIOR INCOMPLETO'),
];
List<String> listDeficiency = [
'AFONICA',
'AUDITIVA',
'FISICA',
'IGNORADO',
'INTELECTUAL',
'MOTORA',
'MULTIPLA',
'NENHUMA',
'VISUAL',
]; ];
List<String> listTeam = [ List<String> listTeam = [
'INE: 0001558536 / Área: 4 - Microárea: --' 'INE: 0001558536 / Área: 4 - Microárea: --'
]; ];
List<String> listMaritalStatus = [ List<TypeMaritalModel> listMaritalStatus = [
'CASADO(A)', TypeMaritalModel(cod: 2,title: 'CASADO(A)'),
'DESQUITADO(A)', TypeMaritalModel(cod: 6,title: 'DESQUITADO(A)'),
'DIVORCIADO(A)', TypeMaritalModel(cod: 4,title: 'DIVORCIADO(A)'),
'NAO DEFINIDO', TypeMaritalModel(cod: 99,title: 'NAO DEFINIDO'),
'SEPARADO(A)', TypeMaritalModel(cod: 7,title: 'SEPARADO(A)'),
'SOLTEIRO(A)', TypeMaritalModel(cod: 1,title: 'SOLTEIRO(A)'),
'UNIAO ESTAVEL', TypeMaritalModel(cod: 5,title: 'UNIAO ESTAVEL'),
'VIUVO(A)', TypeMaritalModel(cod: 3,title: 'VIUVO(A)'),
]; ];
List<String> listGender = [ List<String> listGender = [
'FEMININO','MASCULINO' 'FEMININO','MASCULINO'
@@ -222,6 +215,30 @@ class ConstVariable{
'225124 - Médico pediatra', '225124 - Médico pediatra',
'225125 - Médico clínico', '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 = [ List<CityLoadModel> itensCity = [
CityLoadModel(codCity: 3311, nameCityApi: 'anhembi', nameCityFront: 'Anhembi', codState: 'SP', codCityIbge: 350230), CityLoadModel(codCity: 3311, nameCityApi: 'anhembi', nameCityFront: 'Anhembi', codState: 'SP', codCityIbge: 350230),
CityLoadModel(codCity: 3313, nameCityApi: 'aparecida', nameCityFront: 'Aparecida', codState: 'SP', codCityIbge: 350250), 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:flutter/material.dart';
import 'package:line_icons/line_icons.dart';
import 'package:rkm/config/color_palette.dart'; import 'package:rkm/config/color_palette.dart';
import 'package:rkm/config/const_variable.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/appbar_default.dart';
import 'package:rkm/widgets/button_default.dart'; import 'package:rkm/widgets/button_default.dart';
import '../../widgets/alert_dialog_default.dart';
import '../../widgets/dropdown_button_default.dart'; import '../../widgets/dropdown_button_default.dart';
import '../../widgets/input_search_text.dart';
import '../../widgets/subtitle_containers.dart'; import '../../widgets/subtitle_containers.dart';
import '../../widgets/text_default.dart'; import '../../widgets/text_default.dart';
import '../../widgets/title_containers.dart'; import '../../widgets/title_containers.dart';
@@ -21,14 +25,158 @@ class _MainProceduresScreenState extends State<MainProceduresScreen> {
String? selectService; String? selectService;
String? selectProcedure; String? selectProcedure;
String? selectCBO; String? selectCBO;
String COD_PROC_SIGTAP = '';
String CODIGO_CBO = '';
bool disableButton = true; bool disableButton = true;
var controllerProceduresSearch = TextEditingController(); var controllerProceduresSearch = TextEditingController();
var controllerCBOSearch = 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 @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width; double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
return Scaffold( return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Procedimentos Iniciais'), appBar: AppBarDefault().appbar(context, 'RKM AB - Procedimentos Iniciais'),
@@ -53,7 +201,7 @@ class _MainProceduresScreenState extends State<MainProceduresScreen> {
widthContainer: width*0.35, widthContainer: width*0.35,
title: '', title: '',
width: width*0.4, width: width*0.4,
list: ConstVariable().itensProceduresStart, list: ['ATENDIMENTO INDIVIDUAL','VISITA DOMICILIAR'],
select: selectService, select: selectService,
onChanged: (value){ onChanged: (value){
setState(() { setState(() {
@@ -69,37 +217,69 @@ class _MainProceduresScreenState extends State<MainProceduresScreen> {
), ),
Divider(color: ColorPalette.black54,endIndent: 10,indent: 10,height: 1), Divider(color: ColorPalette.black54,endIndent: 10,indent: 10,height: 1),
GestureDetector( GestureDetector(
onTap: ()=>AlertDialogDefault().alert_with_search( onTap: (){
context, controllerProceduresSearch.text = '';
controllerProceduresSearch, searchProcedures();
ListView.separated( showDialog(
separatorBuilder:(context,index)=> Divider(color: ColorPalette.black54,height: 5,), context: context,
itemCount: ConstVariable().itensProcedures.length, builder: (context){
itemBuilder: (context,index){ return AlertDialog(
return Container( scrollable: true,
width: width*0.8, content: StatefulBuilder(
color: ColorPalette.white, builder: (context, setState) {
child: ListTile( //aqui
onTap: (){ return Column(
setState(() { children: [
selectProcedure = ConstVariable().itensProcedures[index]; InputSearchText(
Navigator.pop(context); onChanged: (v){
if(selectProcedure!= null && selectCBO!= null && selectService!=null){ setState((){
disableButton = false; searchProcedures();
} });
}); },
}, controller: controllerProceduresSearch,
title: TextDefault( width: width*0.8,
color: ColorPalette.black54, hint: 'Buscar...',
text: ConstVariable().itensProcedures[index], color: ColorPalette.titleContainer,
fontSize: 16, border: false,
maxLines: 2, ),
), 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? child: selectProcedure!=null?
Container( Container(
width: width, width: width,
@@ -123,37 +303,69 @@ class _MainProceduresScreenState extends State<MainProceduresScreen> {
SubtitleContainers(title: 'Procedimento') SubtitleContainers(title: 'Procedimento')
), ),
GestureDetector( GestureDetector(
onTap: ()=>AlertDialogDefault().alert_with_search( onTap: (){
context, controllerCBOSearch.text = '';
controllerCBOSearch, searchCBOS();
ListView.separated( showDialog(
separatorBuilder:(context,index)=> Divider(color: ColorPalette.black54,height: 5,), context: context,
itemCount: ConstVariable().itensCBO.length, builder: (context){
itemBuilder: (context,index){ return AlertDialog(
return Container( scrollable: true,
width: width*0.8, content: StatefulBuilder(
color: ColorPalette.white, builder: (context, setState) {
child: ListTile( //aqui
onTap: (){ return Column(
setState(() { children: [
selectCBO = ConstVariable().itensCBO[index]; InputSearchText(
Navigator.pop(context); onChanged: (v){
if(selectProcedure!= null && selectCBO!= null && selectService!=null){ setState((){
disableButton = false; searchCBOS();
} });
}); },
}, controller: controllerCBOSearch,
title: TextDefault( width: width*0.8,
color: ColorPalette.black54, hint: 'Buscar...',
text: ConstVariable().itensCBO[index], color: ColorPalette.titleContainer,
fontSize: 16, border: false,
maxLines: 2, ),
), 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? child: selectCBO!=null?
Container( Container(
width: width, width: width,
@@ -184,7 +396,11 @@ class _MainProceduresScreenState extends State<MainProceduresScreen> {
background: ColorPalette.appBar, background: ColorPalette.appBar,
disableColor: ColorPalette.buttonDisable, disableColor: ColorPalette.buttonDisable,
textColor: ColorPalette.white, textColor: ColorPalette.white,
onPressed: disableButton?null:()=>Navigator.pushReplacementNamed(context, '/home'), onPressed: disableButton?null:(){
if(selectProcedure!= null && selectCBO!= null && selectService!=null){
saveProcedures();
}
},
width: double.infinity, width: double.infinity,
), ),
) )
@@ -194,8 +410,39 @@ class _MainProceduresScreenState extends State<MainProceduresScreen> {
Padding( Padding(
padding: const EdgeInsets.symmetric(vertical: 10.0,horizontal: 2), padding: const EdgeInsets.symmetric(vertical: 10.0,horizontal: 2),
child: Card( child: Card(
child: TitleContainers( child: Column(
title: 'Procedimentos', 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_querys.dart';
import '../../service/db/db_sqlite_load.dart'; import '../../service/db/db_sqlite_load.dart';
import '../../service/db/db_sqlite_sync.dart'; import '../../service/db/db_sqlite_sync.dart';
import '../../service/shared_preferences/shared_preferences_service.dart';
import '../../widgets/appbar_default.dart'; import '../../widgets/appbar_default.dart';
import '../../widgets/dropdown_with_subtitle.dart'; import '../../widgets/dropdown_with_subtitle.dart';
import '../../widgets/error_default.dart'; import '../../widgets/error_default.dart';
@@ -80,21 +81,30 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
String checkCNS = ''; String checkCNS = '';
String checkCPF = ''; String checkCPF = '';
String? selectTypeCertificate; String? selectTypeCertificate;
int? selectTypeCertificateCod;
String? selectCTPSUF; String? selectCTPSUF;
String? selectRGUF; String? selectRGUF;
String? selectTypeStreet; String? selectTypeStreet;
String? selectStreet; String? selectStreet;
String? selectSubdivision; String? selectSubdivision;
String? selectZone; String? selectZone;
int? selectZoneCod;
String? selectVillage; String? selectVillage;
String? selectCountry; String? selectCountry;
String? selectClassification; String? selectClassification;
int? selectClassificationCOD;
String? selectGender; String? selectGender;
String? selectMaritalStatus; String? selectMaritalStatus;
int? selectMaritalStatusCod;
String? selectBreed; String? selectBreed;
int? selectBreedCod;
String? selectScooling; String? selectScooling;
int? selectScoolingCod;
String? selectDeficiency; String? selectDeficiency;
int? selectDeficiencyCod;
String? selectNaturality; String? selectNaturality;
int? selectNaturalityCod;
int? cityBirthCod;
bool enableSpouse = false; bool enableSpouse = false;
bool enableMother = false; bool enableMother = false;
bool enableFather = false; bool enableFather = false;
@@ -112,11 +122,19 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
List showResultSearchCity = []; List showResultSearchCity = [];
List showResultSearchIbge = []; List showResultSearchIbge = [];
List listVillageDB =[]; List listVillageDB =[];
List resultListNasc =[];
List resultListResid =[];
String idBairro=''; String idBairro='';
String idTipo=''; String idTipo='';
bool showCheckError = false; bool showCheckError = false;
bool showTab = false; bool showTab = false;
String errorTopo = 'Existem campos obrigatórios não preenchidos.'; 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 { escolherprazoInicio(BuildContext context,String type) async {
@@ -154,7 +172,10 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
Database db = await DbSqliteLoad().intialDB(); Database db = await DbSqliteLoad().intialDB();
var queryControl = "SELECT * FROM CONTROLE_INTERNO"; var queryControl = "SELECT * FROM CONTROLE_INTERNO";
List listControl = await db.rawQuery(queryControl); List listControl = await db.rawQuery(queryControl);
final PrefService _prefService = PrefService();
_prefService.readCacheUnidade('idUnidade').then((listUnidade)async{
idUnidade =listUnidade[0];
});
setState(() { setState(() {
unitController.text = listControl[0]['NOME_UNIDADE']; 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{ saveCitizen()async{
Map<String, dynamic> row = { Map<String, dynamic> row = {
'CD_USUARIO_SUS' : '0', 'CD_USUARIO_SUS' : '0',
'NOME_CIDADAO' : nameController.text, 'NOME_CIDADAO' : nameController.text,
'NOME_SOCIAL' : nameSocialController.text, 'NOME_SOCIAL' : nameSocialController.text,
'SEXO' : selectGender, 'SEXO' : selectGender=='MASCULINO'?'M':'F',
'DT_NASCIMENTO' : dateDB, 'DT_NASCIMENTO' : dateDB,
'ID_ESTADO_CIVIL' : '', 'ID_ESTADO_CIVIL' : selectMaritalStatusCod,
'ID_ESTADO_CIVIL' : '',
'NOME_CONJUGE' : spouseController.text, 'NOME_CONJUGE' : spouseController.text,
'NACIONALIDADE' : selectNaturality, 'NACIONALIDADE' : selectNaturalityCod,
'ID_MUNICIPIO_NASC' : '', 'ID_MUNICIPIO_NASC' : resultListNasc[0]['ID_MUNICIPIO'],
'NO_MUNICIPIO_NASC' : cityBirthController.text, 'NO_MUNICIPIO_NASC' : resultListNasc[0]['NO_MUNICIPIO'],
'ESTADO_UF_NASC' : '', 'ESTADO_UF_NASC' : resultListNasc[0]['UF_ESTADO'],
'ID_ETNIA' : '', 'ID_ETNIA' : selectBreedCod,
'ID_ESCOLARIDADE' : '', 'ID_ESCOLARIDADE' : selectScoolingCod,
'ID_DEFICIENCIA' : '', 'ID_DEFICIENCIA' : selectDeficiencyCod,
'NOME_MAE' : nameMotherController.text, 'NOME_MAE' : nameMotherController.text,
'DESCONHECE_MAE' : '${!enableMother}', 'DESCONHECE_MAE' : '${!enableMother}',
'NOME_PAI' : nameFatherController.text, 'NOME_PAI' : nameFatherController.text,
'DESCONHECE_PAI' : '${!enableFather}', 'DESCONHECE_PAI' : '${!enableFather}',
'ID_UNIDADE' : '', 'ID_UNIDADE' : idUnidade,
'NUM_PRONTUARIO' : medicalRecordController.text, 'NUM_PRONTUARIO' : medicalRecordController.text,
'NUM_PRONTUARIO_PROV' : medicalRecordProvController.text, 'NUM_PRONTUARIO_PROV' : medicalRecordProvController.text,
'CLASSIFICACAO' : selectClassification, 'CLASSIFICACAO' : selectClassificationCOD,
//aqui
'CLASSIFICACAO_SUB' : '', 'CLASSIFICACAO_SUB' : '',
'NUM_FAMILIA' : numberFamilyController.text, 'NUM_FAMILIA' : numberFamilyController.text,
'ID_PAIS_RESID' : '', 'ID_PAIS_RESID' : selectCountry=='BRASIL'?33:0,
'ID_MUNICIPIO_RESID' : '', 'ID_MUNICIPIO_RESID' : resultListResid[0]['ID_MUNICIPIO'],
'NO_MUNICIPIO_RESID' : cityController.text, 'NO_MUNICIPIO_RESID' : resultListResid[0]['NO_MUNICIPIO'],
'ESTADO_UF_RESID' : '', 'ESTADO_UF_RESID' : resultListResid[0]['UF_ESTADO'],
'CODIGO_IBGE_RESID' : codIBGEController.text, 'CODIGO_IBGE_RESID' : codIBGEController.text,
'NO_BAIRRO_LOGR' : selectVillage, 'NO_BAIRRO_LOGR' : selectVillage,
'ID_LOGR_TIPO' : idTipo, 'ID_LOGR_TIPO' : idTipo,
@@ -358,7 +388,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'LOTEAMENTO_LOGR' : selectSubdivision, 'LOTEAMENTO_LOGR' : selectSubdivision,
'COMPL_LOGR' : complementController.text, 'COMPL_LOGR' : complementController.text,
'PONTO_REFERENCIA' : referencePointController.text, 'PONTO_REFERENCIA' : referencePointController.text,
'ZONA_LOGR' : selectZone, 'ZONA_LOGR' : selectZoneCod,
'DDD_TELEFONE' : foneDDDController.text, 'DDD_TELEFONE' : foneDDDController.text,
'NUM_TELEFONE' : foneController.text, 'NUM_TELEFONE' : foneController.text,
'DDD_RECADO' : messageDDDController.text, 'DDD_RECADO' : messageDDDController.text,
@@ -373,7 +403,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'RG_UF' : selectRGUF, 'RG_UF' : selectRGUF,
'RG_ORGAO' : RGOrganController.text, 'RG_ORGAO' : RGOrganController.text,
'RG_DATA_EMISSAO' : RGDateController.text, 'RG_DATA_EMISSAO' : RGDateController.text,
'TIPO_CERTIDAO' : selectTypeCertificate, 'TIPO_CERTIDAO' : selectTypeCertificateCod,
'NUM_CERTIDAO' : numberCertificateController.text, 'NUM_CERTIDAO' : numberCertificateController.text,
'CARTORIO_CERTIDAO' : nameCertificateController.text, 'CARTORIO_CERTIDAO' : nameCertificateController.text,
'LIVRO_CERTIDAO' : bookCertificateController.text, 'LIVRO_CERTIDAO' : bookCertificateController.text,
@@ -386,18 +416,22 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'NUM_PIS_PASEP' : PISController.text, 'NUM_PIS_PASEP' : PISController.text,
'FL_RETIROU_CARTAO' : enableCityCard, 'FL_RETIROU_CARTAO' : enableCityCard,
'NUM_NIS' : NISController.text, 'NUM_NIS' : NISController.text,
//aqui
'NUM_PROT_CROSS' : '', 'NUM_PROT_CROSS' : '',
'RENDA_MENSAL' : incomeController.text, 'RENDA_MENSAL' : incomeController.text,
'PROFISSAO' : professionalController.text, 'PROFISSAO' : professionalController.text,
'DT_OBITO' : dateDeathController.text, 'DT_OBITO' : dateDeathController.text,
'DECLARACAO_OBITO' : '', 'DECLARACAO_OBITO' : '',
'BLOQUEIO' : enableBlocked, 'BLOQUEIO' : enableBlocked,
'ORIGEM' : '', 'ORIGEM' : 'A',
'DT_HORA_CADASTRO' : DateTime.now().toString(), 'DT_HORA_CADASTRO' : DateTime.now().toString(),
//aqui
'ID_USUARIO_CADASTRO' : '', 'ID_USUARIO_CADASTRO' : '',
//aqui
'ID_DOMICILIO' : '', 'ID_DOMICILIO' : '',
//aqui
'ATENDIMENTOS' : '', 'ATENDIMENTOS' : '',
'SINCRONIZADO' : '', 'SINCRONIZADO' : 'N',
}; };
await DbSqliteSync().insertCidadaos(row,'update').then((value){ await DbSqliteSync().insertCidadaos(row,'update').then((value){
if(checkCNS != 'ok' || CNSController.text.isEmpty){ 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 @override
void initState() { void initState() {
super.initState(); super.initState();
@@ -438,6 +490,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
loadVillgeDB(); loadVillgeDB();
loadTypeStreetDB(); loadTypeStreetDB();
loadSubdivisionsDB(); loadSubdivisionsDB();
loadLists();
setState(() { setState(() {
cityBirthController.text = widget.select; cityBirthController.text = widget.select;
}); });
@@ -591,7 +644,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
), ),
date == 'Data de Nascimento'?ErrorDefault():Container(), date == 'Data de Nascimento'?ErrorDefault():Container(),
DropdownWithSubtitle( DropdownWithSubtitle(
list: ConstVariable().listMaritalStatus, list: listMaritalStatus,
subtitle: 'Estado Civil', subtitle: 'Estado Civil',
hintDropdown: 'Estado Civil', hintDropdown: 'Estado Civil',
select: selectMaritalStatus, select: selectMaritalStatus,
@@ -601,6 +654,12 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
onChanged: (value){ onChanged: (value){
setState(() { setState(() {
selectMaritalStatus = value!; 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)'){ if(selectMaritalStatus=='CASADO(A)'){
enableSpouse = true; enableSpouse = true;
}else{ }else{
@@ -632,9 +691,15 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
setState(() { setState(() {
selectNaturality = value!; selectNaturality = value!;
if(selectNaturality!='BRASILEIRO'){ if(selectNaturality!='BRASILEIRO'){
if(selectNaturality=='ESTRANGEIRO'){
selectNaturalityCod = 2;
}else{
selectNaturalityCod = 3;
}
cityBirthController.text = 'MUNICIPIO IGNORADO - SP'; cityBirthController.text = 'MUNICIPIO IGNORADO - SP';
}else{ }else{
cityBirthController.text = ''; cityBirthController.text = '';
selectNaturalityCod = 1;
} }
}); });
}, },
@@ -652,7 +717,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
scrollable: true, scrollable: true,
content: StatefulBuilder( content: StatefulBuilder(
builder: (context, setState) { builder: (context, setState) {
//aqui
return Column( return Column(
children: [ children: [
InputSearchText( InputSearchText(
@@ -682,11 +747,18 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
width: width*0.8, width: width*0.8,
color: ColorPalette.white, color: ColorPalette.white,
child: ListTile( child: ListTile(
onTap: (){ onTap: ()async{
List splitted = [];
setState(() { setState(() {
cityBirthController.text = showResultSearchCity[index]; cityBirthController.text = showResultSearchCity[index];
splitted = cityBirthController.text.split(' - ');
print(splitted[0]);
Navigator.pop(context); 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( title: TextDefault(
color: ColorPalette.black54, color: ColorPalette.black54,
@@ -720,7 +792,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
), ),
), ),
DropdownWithSubtitle( DropdownWithSubtitle(
list: ConstVariable().listBreed, list: listBreed,
subtitle: 'Raça/Cor', subtitle: 'Raça/Cor',
hintDropdown: 'Raça/Cor', hintDropdown: 'Raça/Cor',
select: selectBreed, select: selectBreed,
@@ -730,12 +802,18 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
onChanged: (value){ onChanged: (value){
setState(() { setState(() {
selectBreed = value!; 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(), selectBreed==null?ErrorDefault():Container(),
DropdownWithSubtitle( DropdownWithSubtitle(
list: ConstVariable().listScooling, list: listScooling,
subtitle: 'Escolaridade', subtitle: 'Escolaridade',
hintDropdown: 'Escolaridade', hintDropdown: 'Escolaridade',
select: selectScooling, select: selectScooling,
@@ -745,11 +823,17 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
onChanged: (value){ onChanged: (value){
setState(() { setState(() {
selectScooling = value!; 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( DropdownWithSubtitle(
list: ConstVariable().listDeficiency, list: listDeficiency,
subtitle: 'Deficiência', subtitle: 'Deficiência',
hintDropdown: 'Deficiência', hintDropdown: 'Deficiência',
select: selectDeficiency, select: selectDeficiency,
@@ -759,6 +843,12 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
onChanged: (value){ onChanged: (value){
setState(() { setState(() {
selectDeficiency = value!; 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(() { setState(() {
selectClassification = value; selectClassification = value;
if(selectClassification=='OUTRO MUNICIPIO'){ if(selectClassification=='OUTRO MUNICIPIO'){
selectClassificationCOD = 3;
cityController.clear(); cityController.clear();
codIBGEController.clear(); codIBGEController.clear();
cepController.clear(); cepController.clear();
@@ -896,6 +987,11 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'OK' 'OK'
); );
}else{ }else{
if(selectClassification=='PROVISORIO'){
selectClassificationCOD = 2;
}else{
selectClassificationCOD = 1;
}
changedCity(); changedCity();
selectCountry = 'BRASIL'; selectCountry = 'BRASIL';
} }
@@ -954,6 +1050,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
selectCountry = value; selectCountry = value;
if(selectCountry=='OUTRO'){ if(selectCountry=='OUTRO'){
cityController.text= 'MUNICIPIO IGNORADO - SP'; cityController.text= 'MUNICIPIO IGNORADO - SP';
resultListResid = [{"ID_MUNICIPIO":1,"CODIGO_IBGE":"000000","NO_MUNICIPIO":"MUNICIPIO IGNORADO","UF_ESTADO":"--","ID_PAIS":33}];
codIBGEController.text = '000000'; codIBGEController.text = '000000';
numberController.clear(); numberController.clear();
selectVillage = null; selectVillage = null;
@@ -1022,13 +1119,19 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
width: width*0.8, width: width*0.8,
color: ColorPalette.white, color: ColorPalette.white,
child: ListTile( child: ListTile(
onTap: (){ onTap: ()async{
List splitted = [];
setState(() { setState(() {
cityController.text = showResultSearchCity[index]; cityController.text = showResultSearchCity[index];
codIBGEController.text = showResultSearchIbge[index]; codIBGEController.text = showResultSearchIbge[index];
splitted = cityController.text.split(' - ');
// print("IBGE ${showResultSearchIbge[index]}"); // print("IBGE ${showResultSearchIbge[index]}");
Navigator.pop(context); 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( title: TextDefault(
color: ColorPalette.black54, color: ColorPalette.black54,
@@ -1089,7 +1192,6 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
}); });
idBairro = await DBQuerys().buscaBairro(selectVillage); idBairro = await DBQuerys().buscaBairro(selectVillage);
}, },
//aqui
list: villageDB list: villageDB
), ),
selectClassification!='OUTRO MUNICIPIO' && selectVillage == null?ErrorDefault():Container(), selectClassification!='OUTRO MUNICIPIO' && selectVillage == null?ErrorDefault():Container(),
@@ -1222,6 +1324,11 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
onChanged: (value){ onChanged: (value){
setState(() { setState(() {
selectZone = value; selectZone = value;
if(selectZone == 'URBANA'){
selectZoneCod = 1;
}else{
selectZoneCod = 2;
}
}); });
}, },
list: ['URBANA','RURAL'] list: ['URBANA','RURAL']
@@ -1520,18 +1627,15 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
onChanged: (value){ onChanged: (value){
setState(() { setState(() {
selectTypeCertificate = value; 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: [ list:typeCertificate
'NASCIMENTO',
'CASAMENTO',
'DIVÓRCIO',
'ADMINISTRATIVA - ÍNDIO',
'NASCIMENTO - N',
'CASAMENTO - N',
'DIVÓRCIO - N',
'ADMINISTRATIVA - ÍNDIO - N',
]
), ),
InputWithSubtitle( InputWithSubtitle(
controller: numberCertificateController, controller: numberCertificateController,

View File

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

View File

@@ -33,4 +33,38 @@ class DBQuerys{
print(list[0]['ID_LOGR_TIPO']); print(list[0]['ID_LOGR_TIPO']);
return list[0]['ID_LOGR_TIPO'].toString(); 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')); // print(await db.query('PROFISSIONAIS_EQUIPE'));
return db; 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;
}
} }