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

BIN
assets/images/error.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
assets/images/send-done.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

BIN
assets/images/sync-done.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@@ -21,7 +21,6 @@ import '../screens/configurations/sinc_data_screen.dart';
var routes = {
'/home': (context) => HomeScreen(),
'/login_load': (context) => LoginLoadScreen(),
'/register_citizen': (context) => RegisterCitizenScreen(select: '',),
'/attendance_list': (context) => AttendanceListScreen(),
'/about': (context) => AboutScreen(),
'/main_procedures': (context) => MainProceduresScreen(),

View File

@@ -1,7 +1,48 @@
import 'dart:math';
import 'package:gainer_crypto/crypto.dart';
import 'package:get/get.dart';
import 'package:rkm/service/db/db_querys.dart';
class MainControllers{
encrypt(String senhaDigitada,String senhaUsuario) {
// Deixa e senha digitada em maiuscula
var senha = senhaDigitada.toUpperCase();
// Faz a criptografia da senha inserida
String senhaMD5 = grHashString(GRCryptoType.md5, senha);
// Retira o tipo (1, 2 ou 3) da senha do Usuário
int tipo = int.parse(senhaUsuario.substring(0, 1));
// Define a possição inicial da quebra da senha
int posicaoInicialMin = 0;
int posicaoInicialMax= 0;
int posicaoFinalMin = 0;
int posicaoFinalMax = 0;
// Pra cada tipo (1, 2 ou 3) define a posição inicial da quebra da senha
if(tipo == 1){
posicaoInicialMin = 0;
posicaoInicialMax = 16;
posicaoFinalMin = 16;
posicaoFinalMax = 32;
} else if(tipo == 2){
posicaoInicialMin = 16;
posicaoInicialMax = 32;
posicaoFinalMin = 0;
posicaoFinalMax = 16;
} else if(tipo == 3){
posicaoInicialMin = 0;
posicaoInicialMax = 1;
posicaoFinalMin = 31;
posicaoFinalMax = 32;
}
String inicio = senhaMD5.substring(posicaoInicialMin, posicaoInicialMax);
String fim = senhaMD5.substring(posicaoFinalMin, posicaoFinalMax);
// Faz a criptografia e concatena ela com sha1 e md5
String senhaCriptogradafa = tipo.toString() + '\$'+ grHashString(GRCryptoType.sha1, inicio + senha + fim);
// Retorna a senha criptografada
return senhaCriptogradafa;
}
validaCNS(String cns)async{
//valido provisório 783107557570002
//cns valido def 187455333020009
@@ -141,4 +182,38 @@ class MainControllers{
return 'CPF inválido';
}
}
gerarCDUsuarioSus(){
String mkTime = ((DateTime.now().millisecond)).toString();
String seqID = ((Random().nextInt(10)*100).floor() + ((Random().nextInt(10) * 5).floor() + 1)).toString() + '00000';
String cdUsuarioSUS = (grHashString(GRCryptoType.md5, mkTime) + seqID).toUpperCase();
var codSize = cdUsuarioSUS.length;
cdUsuarioSUS = cdUsuarioSUS.substring(0,32);
'cod sus recuperado api';
// 571A22D79C24526537C7E4CE8C0D4046
'cod gerado para teste';
// CA8155F4D27F205953F9D3D7974BDD70
// 571A22D79C24526537C7E4CE8C0D4046
// C73F93513A57571D2C7B6384A34AD22F
return cdUsuarioSUS;
}
replaceDefaul(String text){
String newText = text.toUpperCase()
.replaceAll('Ã', 'A')
.replaceAll('Á', 'A')
.replaceAll('À', 'A')
.replaceAll('Â', 'A')
.replaceAll('Ç', 'C')
.replaceAll('È', 'E')
.replaceAll('É', 'E')
.replaceAll('Ê', 'E')
.replaceAll('Í', 'I')
.replaceAll('Ô', 'O')
.replaceAll('Õ', 'O')
.replaceAll('Ó', 'O')
.replaceAll('Ú', 'U')
.replaceAll('Û', 'U')
;
return newText;
}
}

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,14 +16,199 @@ 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;
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{
final PrefService _preferences = PrefService();
_preferences.readCacheModel('user', 'password', 'city', 'mode').then((list){
setState(() {
mode = list[3];
});
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
@@ -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(
onTap: ()async {
await DBQuerys().buscaCidadao(showResults[index]['NOME_CIDADAO']).then((list){
Navigator.push(
context,
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(select: '')),
),
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');
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(
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,
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((){}),
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,
),
),
),

View File

@@ -0,0 +1,12 @@
import 'dart:convert';
import 'package:http/http.dart' as http;
class ApiDataPost{
Future sincronizacao(urlAPI,mode,nameCityApi)async{
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/sincronizacao
final url = '${urlAPI}${mode}/${nameCityApi}/sincronizacao';
final response = await http.post(Uri.parse(url));
final map = json.decode(response.body);
return map;
}
}

View File

@@ -1,42 +0,0 @@
import 'package:gainer_crypto/crypto.dart';
class EncryptPassword{
encrypt(String senhaDigitada,String senhaUsuario) {
// Deixa e senha digitada em maiuscula
var senha = senhaDigitada.toUpperCase();
// Faz a criptografia da senha inserida
String senhaMD5 = grHashString(GRCryptoType.md5, senha);
// Retira o tipo (1, 2 ou 3) da senha do Usuário
int tipo = int.parse(senhaUsuario.substring(0, 1));
// Define a possição inicial da quebra da senha
int posicaoInicialMin = 0;
int posicaoInicialMax= 0;
int posicaoFinalMin = 0;
int posicaoFinalMax = 0;
// Pra cada tipo (1, 2 ou 3) define a posição inicial da quebra da senha
if(tipo == 1){
posicaoInicialMin = 0;
posicaoInicialMax = 16;
posicaoFinalMin = 16;
posicaoFinalMax = 32;
} else if(tipo == 2){
posicaoInicialMin = 16;
posicaoInicialMax = 32;
posicaoFinalMin = 0;
posicaoFinalMax = 16;
} else if(tipo == 3){
posicaoInicialMin = 0;
posicaoInicialMax = 1;
posicaoFinalMin = 31;
posicaoFinalMax = 32;
}
String inicio = senhaMD5.substring(posicaoInicialMin, posicaoInicialMax);
String fim = senhaMD5.substring(posicaoFinalMin, posicaoFinalMax);
// Faz a criptografia e concatena ela com sha1 e md5
String senhaCriptogradafa = tipo.toString() + '\$'+ grHashString(GRCryptoType.sha1, inicio + senha + fim);
// Retorna a senha criptografada
return senhaCriptogradafa;
}
}

View File

@@ -60,11 +60,278 @@ class DBQuerys{
List list = await db.rawQuery(query);
return list;
}
buscaMunicipio(String NO_MUNICIPIO)async{
buscaMunicipioporNome(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;
}
buscaMunicipioporId(int ID_MUNICIPIO)async{
Database db = await DbSqliteLoad().intialDB();
var query = 'SELECT * FROM MUNICIPIOS WHERE ID_MUNICIPIO = $ID_MUNICIPIO';
List list = await db.rawQuery(query);
// print(list);
return list;
}
buscaLoteamentoPorDesc(String DESC_LOGR_LOTEAMENTO)async{
Database db = await DbSqliteLoad().intialDB();
var query = 'SELECT * FROM LOGRADOUROS_LOTEAMENTOS WHERE DESC_LOGR_LOTEAMENTO = "$DESC_LOGR_LOTEAMENTO"';
List list = await db.rawQuery(query);
// print(list);
int result = list[0]['ID_LOGR_LOTEAMENTO'];
return result;
}
buscaLoteamentoPorID(int ID_LOGR_LOTEAMENTO)async{
Database db = await DbSqliteLoad().intialDB();
var query = 'SELECT * FROM LOGRADOUROS_LOTEAMENTOS WHERE ID_LOGR_LOTEAMENTO = $ID_LOGR_LOTEAMENTO';
List list = await db.rawQuery(query);
print(list);
String result = list[0]['DESC_LOGR_LOTEAMENTO'];
return result;
}
buscaTodosMunicipios()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM MUNICIPIOS ORDER BY NO_MUNICIPIO";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future buscaCidadao(NOME_CIDADAO)async{
Database db = await DbSqliteLoad().intialDB();
var query = 'SELECT * FROM CIDADAOS WHERE NOME_CIDADAO = "$NOME_CIDADAO"';
List list = await db.rawQuery(query);
// print(list);
return list;
}
///////INICIO CIDADAO/////
Future cadCidadaos()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM CIDADAOS WHERE ORIGEM = 'A' AND SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future cadDomiciliares()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM CIDADAO_DOMICILIO WHERE ORIGEM = 'A' AND SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future domCidadaos()async{
Database db = await DbSqliteLoad().intialDB();
// Busca a relação de Domicilio e Cidadao
var query = "SELECT CC.* FROM DOMICILIOS_CIDADAOS CC INNER JOIN CIDADAO_DOMICILIO CD ON CD.ID_DOMICILIO = CC.ID_DOMICILIO WHERE CD.ORIGEM = 'A' AND CD.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future logrDomicilios()async{
Database db = await DbSqliteLoad().intialDB();
// Busca os Endereços de cada Domicilio
var query = "SELECT DISTINCT CD.ID_DOMICILIO, C.NO_BAIRRO_LOGR, C.ID_LOGR_TIPO, C.NOME_LOGR, C.NUMERO_LOGR, C.COMPL_LOGR, C.LOTEAMENTO_LOGR FROM CIDADAO_DOMICILIO CD INNER JOIN CIDADAOS C ON CD.ID_DOMICILIO = C.ID_DOMICILIO WHERE C.ORIGEM = 'A' AND CD.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future cadIndividuais()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM CADASTROS_INDIVIDUAIS WHERE ORIGEM = 'A' AND SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
///////FIM CIDADAO/////
///////ATENDIMENTOS - TODOS REGISTROS/////
Future atendsIndivCompl()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT AIC.* FROM ATENDS_INDIV_COMPL AIC INNER JOIN ATENDS_INDIVIDUAIS AI ON AI.ID_ATEND_INDIVIDUAL = AIC.ID_ATEND_INDIVIDUAL WHERE AI.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future atendsIndivExames()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT AIE.* FROM ATENDS_INDIV_EXAMES AIE INNER JOIN ATENDS_INDIVIDUAIS AI ON AI.ID_ATEND_INDIVIDUAL = AIE.ID_ATEND_INDIVIDUAL WHERE AI.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future atendsIndivProc()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT AIP.* FROM ATENDS_INDIV_PROC AIP INNER JOIN ATENDS_INDIVIDUAIS AI ON AI.ID_ATEND_INDIVIDUAL = AIP.ID_ATEND_INDIVIDUAL WHERE AI.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future atendsIndivProf()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT AIPR.* FROM ATENDS_INDIV_PROF AIPR INNER JOIN ATENDS_INDIVIDUAIS AI ON AI.ID_ATEND_INDIVIDUAL = AIPR.ID_ATEND_INDIVIDUAL WHERE AI.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future atendsIndividuais()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT AI.*, CI.ID_AREA_CIDADAO, CI.ID_MICROAREA_CIDADAO FROM ATENDS_INDIVIDUAIS AI LEFT JOIN CADASTROS_INDIVIDUAIS CI ON AI.ID_CIDADAO = CI.ID_CIDADAO WHERE AI.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future procedimentosFichas()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT PF.* FROM PROCEDIMENTOS_FICHAS PF WHERE PF.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future procedimentosIndiv()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT PI.* FROM PROCEDIMENTOS_INDIV PI WHERE PI.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future procedimentosIndivFicha()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT PIF.* FROM PROCEDIMENTOS_INDIV_FICHA PIF INNER JOIN PROCEDIMENTOS_INDIV PI ON PI.ID_PROCEDIMENTOS_INDIV = PIF.ID_PROCEDIMENTOS_INDIV WHERE PI.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future procedimentosIndivSigtap()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT PIS.* FROM PROCEDIMENTOS_INDIV_SIGTAP PIS INNER JOIN PROCEDIMENTOS_INDIV PI ON PI.ID_PROCEDIMENTOS_INDIV = PIS.ID_PROCEDIMENTOS_INDIV WHERE PI.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future visitasDomiciliares()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT VD.* FROM VISITAS_DOMICILIARES VD WHERE VD.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future visitasDomiciliaresCompl()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT VDC.* FROM VISITAS_DOMICILIARES_COMPL VDC INNER JOIN VISITAS_DOMICILIARES VD ON VD.ID_VISITA_DOMICILIAR = VDC.ID_VISITA_DOMICILIAR WHERE VD.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future visitasDomiciliaresProc()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT VDP.* FROM VISITAS_DOMICILIARES_PROC VDP INNER JOIN VISITAS_DOMICILIARES VD ON VD.ID_VISITA_DOMICILIAR = VDP.ID_VISITA_DOMICILIAR WHERE VD.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future fichasComplementares()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT FC.* FROM FICHAS_COMPLEMENTARES FC WHERE FC.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future atendimentosDomiciliares()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT AD.* FROM ATENDIMENTOS_DOMICILIARES AD WHERE AD.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future atendDomCompl()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT ADC.* FROM ATENDS_DOM_COMPL ADC INNER JOIN ATENDIMENTOS_DOMICILIARES AD ON AD.ID_ATENDIMENTO_DOMICILIAR = ADC.ID_ATENDIMENTO_DOMICILIAR WHERE AD.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future atendDomProcsFicha()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT ADP.* FROM ATENDS_DOM_PROC ADP INNER JOIN ATENDIMENTOS_DOMICILIARES AD ON AD.ID_ATENDIMENTO_DOMICILIAR = ADP.ID_ATENDIMENTO_DOMICILIAR WHERE AD.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future atendDomProcsSigtap()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT ADS.* FROM ATENDS_DOM_SIGTAP ADS INNER JOIN ATENDIMENTOS_DOMICILIARES AD ON AD.ID_ATENDIMENTO_DOMICILIAR = ADS.ID_ATENDIMENTO_DOMICILIAR WHERE AD.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future atendsOdontologicos()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT AO.* FROM ATENDS_ODONTOLOGICOS AO WHERE AO.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future atendsOdontoProf()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT AOC.* FROM ATENDS_ODONTO_PROF AOC INNER JOIN ATENDS_ODONTOLOGICOS AO ON AO.ID_ATENDIMENTO_ODONTOLOGICO = AOC.ID_ATENDIMENTO_ODONTOLOGICO WHERE AO.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future atendsOdontoProc()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT AOC.* FROM ATENDS_ODONTO_PROC AOC INNER JOIN ATENDS_ODONTOLOGICOS AO ON AO.ID_ATENDIMENTO_ODONTOLOGICO = AOC.ID_ATENDIMENTO_ODONTOLOGICO WHERE AO.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future atendsOdontoSigtap()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT AOC.* FROM ATENDS_ODONTO_SIGTAP AOC INNER JOIN ATENDS_ODONTOLOGICOS AO ON AO.ID_ATENDIMENTO_ODONTOLOGICO = AOC.ID_ATENDIMENTO_ODONTOLOGICO WHERE AO.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future atendsOdontoCompl()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT AOC.* FROM ATENDS_ODONTO_COMPL AOC INNER JOIN ATENDS_ODONTOLOGICOS AO ON AO.ID_ATENDIMENTO_ODONTOLOGICO = AOC.ID_ATENDIMENTO_ODONTOLOGICO WHERE AO.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future marcadoresConQuest()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT MCQ.* FROM MARCADORES_CON_QUEST MCQ INNER JOIN MARCADORES_CONSUMO MC ON MC.ID_MARCADOR_CONSUMO = MCQ.ID_MARCADOR_CONSUMO WHERE MC.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future marcadoresConsumo()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT MC.* FROM MARCADORES_CONSUMO MC WHERE MC.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future avalElegCondAval()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT AECA.* FROM AVAL_ELEG_COND_AVAL AECA INNER JOIN AVALIACOES_ELEGIBILIDADE AA ON AA.ID_AVALIACAO_ELEGIBILIDADE = AECA.ID_AVALIACAO_ELEGIBILIDADE WHERE AA.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future avalElegConclIne()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT AECI.* FROM AVAL_ELEG_CONCL_INE AECI INNER JOIN AVALIACOES_ELEGIBILIDADE AA ON AA.ID_AVALIACAO_ELEGIBILIDADE = AECI.ID_AVALIACAO_ELEGIBILIDADE WHERE AA.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future avaliacoesElegibilidade()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT AA.* FROM AVALIACOES_ELEGIBILIDADE AA WHERE AA.SINCRONIZADO = 'N'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
}

View File

@@ -66,7 +66,7 @@ class DbSqliteSync{
};
int id = await db.insert('LOGRADOUROS_ENDERECOS', row);
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
print(await db.query('LOGRADOUROS_ENDERECOS'));
// print(await db.query('LOGRADOUROS_ENDERECOS'));
}
return db;
}
@@ -229,7 +229,7 @@ class DbSqliteSync{
}
}else{
int id = await db.insert('CIDADAOS', value);
print('novo id $id');
// print('novo id $id');
}
return db;
}

View File

@@ -1,120 +0,0 @@
import 'package:flutter/material.dart';
import 'package:rkm/widgets/text_default.dart';
import 'package:sqflite/sqflite.dart';
import '../screens/registers_citizen/register_citizen_screen.dart';
import '../service/db/db_sqlite_load.dart';
import '../config/color_palette.dart';
import 'input_search_text.dart';
class AlertDialogSearchStateful extends StatefulWidget {
@override
State<AlertDialogSearchStateful> createState() => _AlertDialogSearchStatefulState();
}
class _AlertDialogSearchStatefulState extends State<AlertDialogSearchStateful> {
List cityDB = [];
List showResultSearchCity = [];
var controller = TextEditingController();
_searchCityBirth(){
searchCity();
}
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"));
for(int i=0; list.length > i;i++){
cityDB.add('${list[i]['NO_MUNICIPIO']} - ${list[i]['UF_ESTADO']}');
}
searchCity();
return 'complete';
}
searchCity()async{
if(controller.text.isNotEmpty){
showResultSearchCity =[];
for (int i =0;cityDB.length>i;i++) {
String CIDADE = '${cityDB[i]}';
if(CIDADE.contains(controller.text.toUpperCase())){
if(showResultSearchCity.length<10){
showResultSearchCity.add(cityDB[i]);
}
}
}
setState(() {
print(showResultSearchCity);
});
}else{
setState(() {
for(int i = 0;i<10;i++){
showResultSearchCity.add(cityDB[i]);
}
});
}
}
@override
void initState() {
super.initState();
getCity();
controller.addListener(_searchCityBirth);
}
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
return AlertDialog(
title: InputSearchText(
controller: controller,
width: width*0.3,
hint: 'Buscar...',
color: ColorPalette.titleContainer,
border: false,
),
content: Container(
padding: EdgeInsets.symmetric(vertical: 10),
width: width*0.8,
child: Container(
width: width*0.8,
height: height*0.8,
padding: EdgeInsets.symmetric(horizontal: 10),
child: ListView.separated(
separatorBuilder:(context,index)=> Divider(color: ColorPalette.black54,height: 5,),
itemCount: showResultSearchCity.length,
itemBuilder: (context,index){
return Container(
width: width*0.8,
color: ColorPalette.white,
child: ListTile(
onTap: (){
setState(() {
controller.text = showResultSearchCity[index];
Navigator.push(
context,
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(select: controller.text,)),
);
});
},
title: TextDefault(
color: ColorPalette.black54,
text: showResultSearchCity[index],
fontSize: 16,
maxLines: 2,
),
),
);
}
),
),
),
);
}
}

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:rkm/config/color_palette.dart';
import '../controllers/format_txt.dart';
@@ -26,7 +27,7 @@ class InputText extends StatelessWidget {
this.textInputType = TextInputType.text,
this.maxLines = 1,
this.colorBorder = ColorPalette.black54,
this.onChanged = null
this.onChanged = null,
});
@override

View File

@@ -5,7 +5,7 @@ import 'button_default.dart';
class OnBackButton{
onBackButton(context)async {
bool exiApp = await showDialog(
await showDialog(
context: context,
builder: (context){
return AlertDialog(

View File

@@ -29,7 +29,7 @@ class SubtitleAppbarCitizen extends StatelessWidget {
TextButton.icon(
onPressed:edit? ()=> Navigator.push(
context,
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(select: '',)),
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(listData: [],)),
):null,
icon: Icon(Icons.person,color: title==1?Colors.black:ColorPalette.gray,),
label: TextDefault(text: 'Cadastro Cidadão',fontSize: 14,color: title==1?Colors.black:ColorPalette.gray,)

View File

@@ -29,6 +29,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
brasil_fields:
dependency: "direct main"
description:
name: brasil_fields
url: "https://pub.dartlang.org"
source: hosted
version: "1.11.0"
characters:
dependency: transitive
description:

View File

@@ -20,6 +20,7 @@ dependencies:
sqflite: ^2.0.0+3
shared_preferences: ^2.0.15
get:
brasil_fields:
dev_dependencies:
flutter_test: