ajustes envio das tabelas, criação e edição de cidadão
This commit is contained in:
BIN
assets/images/error.png
Normal file
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
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
BIN
assets/images/sync-done.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 67 KiB |
@@ -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(),
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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(),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -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,)),
|
||||
);
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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(() {
|
||||
|
||||
@@ -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;
|
||||
});
|
||||
|
||||
@@ -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,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
12
lib/service/api/api_data_post.dart
Normal file
12
lib/service/api/api_data_post.dart
Normal 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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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,)
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -20,6 +20,7 @@ dependencies:
|
||||
sqflite: ^2.0.0+3
|
||||
shared_preferences: ^2.0.15
|
||||
get:
|
||||
brasil_fields:
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
||||
Reference in New Issue
Block a user