diff --git a/lib/screens/load_init_screen.dart b/lib/screens/load_init_screen.dart index 2bbfc38..771546f 100644 --- a/lib/screens/load_init_screen.dart +++ b/lib/screens/load_init_screen.dart @@ -1,12 +1,13 @@ import 'package:flutter/material.dart'; -import 'package:rkm/screens/sync_unit_screen.dart'; +import 'package:rkm/screens/login/sync_login_screen.dart'; import 'package:rkm/utils/color_palette.dart'; import 'package:rkm/widgets/alert_dialog_default.dart'; import 'package:rkm/widgets/button_default.dart'; import 'package:rkm/widgets/text_default.dart'; import '../models/args_load_init_model.dart'; -import '../service/api/api_data.dart'; -import '../service/db/db_sqlite.dart'; +import '../service/api/api_data_load.dart'; +import '../service/db/db_sqlite_load.dart'; +import '../service/shared_preferences/shared_preferences_service.dart'; class LoadInitScreen extends StatefulWidget { ArgsLoadInitModel args; @@ -21,8 +22,10 @@ class LoadInitScreen extends StatefulWidget { class _LoadInitScreenState extends State { + final PrefService _prefService = PrefService(); String messageSteps = 'Aguarde ...'; bool finish = false; + String idUsuario = ''; @override void initState() { @@ -31,77 +34,81 @@ class _LoadInitScreenState extends State { } initLoading()async{ - await DbSqlite().deleteDB().then((_)async{ - await ApiData().loadPerm(widget.args).then((response)async{ + await DbSqliteLoad().deleteLoad().then((_)async{ + await ApiDataLoad().loadPerm(widget.args).then((response)async{ if(response['status'] == 0){ - AlertDialogDefault().alert(context, 'Error', 'Permissão negada', 'Voltar'); + AlertDialogDefault().alert(context, 'Erro', 'Permissão negada', 'Voltar'); } else if(response['status'] == 1 && response['load_perm'] == "S") { - await ApiData().loadUnidades(widget.args).then((value)async{ - if(value.length !=0){ - setState(() { - messageSteps = "Etapa 1 de 7 - Gravando as Unidades no Aplicativo"; - }); - await DbSqlite().saveUnidadesDB(value).then((value)async{ - await ApiData().loadProcedimentos(widget.args).then((value)async{ - setState(() { - messageSteps = "Etapa 2 de 7 - Gravando os Procedimentos no Aplicativo"; - }); - await DbSqlite().saveProceduresDB(value).then((value)async{ - print('finalizou save Procedures'); - await ApiData().loadProcedimentosRegistros(widget.args).then((value)async{ - await DbSqlite().saveProceduresRegisterDB(value).then((value)async{ - print('finalizou saveProceduresRegisterDB'); - await ApiData().loadCID(widget.args).then((value)async{ - print('loadCID'); - setState(() { - messageSteps = "Etapa 3 de 7 - Gravando os CIDs no Aplicativo"; - }); - await DbSqlite().saveCID(value).then((value)async{ - print('finalizou saveCID'); - await ApiData().loadProcedimentosCID(widget.args).then((value)async{ - print('loadProcedimentosCID'); - await DbSqlite().saveProceduresCID(value).then((value)async{ - print('finalizou saveProceduresCID'); - await ApiData().loadCBO(widget.args).then((value)async{ - print('loadCBO'); - setState(() { - messageSteps = "Etapa 4 de 7 - Gravando os CBOs no Aplicativo"; - }); - await DbSqlite().saveCBO(value).then((value)async{ - print('finalizou saveCBO'); - await ApiData().loadProcedimentosCBO(widget.args).then((value)async{ - print('loadProcedimentosCBO'); - await DbSqlite().saveProceduresCBO(value).then((value)async{ - print('finalizou saveProceduresCBO'); - await ApiData().loadCIAP(widget.args).then((value)async{ - print('loadCIAP'); - setState(() { - messageSteps = "Etapa 5 de 7 - Gravando os CIAPs no Aplicativo"; - }); - await DbSqlite().saveCIAP(value).then((value)async{ - print('finalizou saveCIAP'); - await ApiData().loadMunicipios(widget.args).then((value)async{ - print('loadMunicipios'); - setState(() { - messageSteps = "Etapa 6 de 7 - Gravando os Municípios no Aplicativo"; - }); - await DbSqlite().saveCity(value).then((value)async{ - print('finalizou saveCity'); - await ApiData().loadEquipes(widget.args).then((value)async{ - print('loadEquipes'); - setState(() { - messageSteps = "Etapa 7 de 7 - Gravando as Equipes no Aplicativo"; - }); - await DbSqlite().saveTeam(value).then((value)async{ - print('finalizou saveTeam'); - await ApiData().loadEquipeComponentes(widget.args).then((value)async{ - print('loadEquipeComponentes'); - await DbSqlite().saveTeamComponents(value).then((value)async{ - print('finalizou saveTeamComponents'); - setState(() { - finish = true; + idUsuario = response['idUsuario'].toString(); + print('idUsuario $idUsuario'); + _prefService.createCacheidUsuario(idUsuario).then((value)async{ + await ApiDataLoad().loadUnidades(widget.args).then((value)async{ + if(value.length !=0){ + setState(() { + messageSteps = "Etapa 1 de 7 - Gravando as Unidades no Aplicativo"; + }); + await DbSqliteLoad().saveUnidadesDB(value).then((value)async{ + await ApiDataLoad().loadProcedimentos(widget.args).then((value)async{ + setState(() { + messageSteps = "Etapa 2 de 7 - Gravando os Procedimentos no Aplicativo"; + }); + await DbSqliteLoad().saveProceduresDB(value).then((value)async{ + print('finalizou save Procedures'); + await ApiDataLoad().loadProcedimentosRegistros(widget.args).then((value)async{ + await DbSqliteLoad().saveProceduresRegisterDB(value).then((value)async{ + print('finalizou saveProceduresRegisterDB'); + await ApiDataLoad().loadCID(widget.args).then((value)async{ + print('loadCID'); + setState(() { + messageSteps = "Etapa 3 de 7 - Gravando os CIDs no Aplicativo"; + }); + await DbSqliteLoad().saveCID(value).then((value)async{ + print('finalizou saveCID'); + await ApiDataLoad().loadProcedimentosCID(widget.args).then((value)async{ + print('loadProcedimentosCID'); + await DbSqliteLoad().saveProceduresCID(value).then((value)async{ + print('finalizou saveProceduresCID'); + await ApiDataLoad().loadCBO(widget.args).then((value)async{ + print('loadCBO'); + setState(() { + messageSteps = "Etapa 4 de 7 - Gravando os CBOs no Aplicativo"; + }); + await DbSqliteLoad().saveCBO(value).then((value)async{ + print('finalizou saveCBO'); + await ApiDataLoad().loadProcedimentosCBO(widget.args).then((value)async{ + print('loadProcedimentosCBO'); + await DbSqliteLoad().saveProceduresCBO(value).then((value)async{ + print('finalizou saveProceduresCBO'); + await ApiDataLoad().loadCIAP(widget.args).then((value)async{ + print('loadCIAP'); + setState(() { + messageSteps = "Etapa 5 de 7 - Gravando os CIAPs no Aplicativo"; + }); + await DbSqliteLoad().saveCIAP(value).then((value)async{ + print('finalizou saveCIAP'); + await ApiDataLoad().loadMunicipios(widget.args).then((value)async{ + print('loadMunicipios'); + setState(() { + messageSteps = "Etapa 6 de 7 - Gravando os Municípios no Aplicativo"; + }); + await DbSqliteLoad().saveCity(value).then((value)async{ + print('finalizou saveCity'); + await ApiDataLoad().loadEquipes(widget.args).then((value)async{ + print('loadEquipes'); + setState(() { + messageSteps = "Etapa 7 de 7 - Gravando as Equipes no Aplicativo"; + }); + await DbSqliteLoad().saveTeam(value).then((value)async{ + print('finalizou saveTeam'); + await ApiDataLoad().loadEquipeComponentes(widget.args).then((value)async{ + print('loadEquipeComponentes'); + await DbSqliteLoad().saveTeamComponents(value).then((value)async{ + print('finalizou saveTeamComponents'); + setState(() { + finish = true; + }); + // Navigator.pushReplacementNamed(context, '/home'); }); - // Navigator.pushReplacementNamed(context, '/home'); }); }); }); @@ -122,10 +129,10 @@ class _LoadInitScreenState extends State { }); }); }); - }); - }else{ - AlertDialogDefault().alert(context, 'Error', 'Unidades não carregada, tente novamente!', 'Voltar'); - } + }else{ + AlertDialogDefault().alert(context, 'Error', 'Unidades não carregada, tente novamente!', 'Voltar'); + } + }); }); } }); @@ -151,7 +158,7 @@ class _LoadInitScreenState extends State { onPressed: (){ Navigator.pushReplacement( context, - MaterialPageRoute(builder: (context) => SyncUnitScreen(args: widget.args)), + MaterialPageRoute(builder: (context) => SyncLoginScreen(args: widget.args)), ); }, title: 'Continuar', diff --git a/lib/screens/login_load_screen.dart b/lib/screens/login/login_load_screen.dart similarity index 94% rename from lib/screens/login_load_screen.dart rename to lib/screens/login/login_load_screen.dart index 0a7bf48..3a4a469 100644 --- a/lib/screens/login_load_screen.dart +++ b/lib/screens/login/login_load_screen.dart @@ -7,10 +7,11 @@ import 'package:rkm/widgets/button_default.dart'; import 'package:rkm/widgets/dropdown_button_city.dart'; import 'package:rkm/widgets/input_text.dart'; import 'package:rkm/widgets/text_default.dart'; -import '../models/city_load_model.dart'; -import '../service/api/api_data.dart'; -import '../service/api/encrypt_password.dart'; -import 'load_init_screen.dart'; +import '../../models/city_load_model.dart'; +import '../../service/api/api_data_load.dart'; +import '../../service/api/encrypt_password.dart'; +import '../../service/shared_preferences/shared_preferences_service.dart'; +import '../load_init_screen.dart'; class LoginLoadScreen extends StatefulWidget { const LoginLoadScreen({Key? key}) : super(key: key); @@ -30,12 +31,13 @@ class _LoginLoadScreenState extends State { String mode = 'desenvolvimento'; String urlAPI = UrlApiConst.ApiUrlDesenvolvimento; bool loading = false; - + final PrefService _prefService = PrefService(); checkLogin()async{ CityLoadModel? model; ArgsLoadInitModel? args; if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){ if(selectCity!=null){ + _prefService.createCacheModel(inputUser.text,inputPassword.text,selectCity!,mode); setState(() { error = ''; loading = true; @@ -55,7 +57,7 @@ class _LoginLoadScreenState extends State { ); } if(args!=null){ - await ApiData().apiConect(args!).then((response) async { + await ApiDataLoad().apiConect(args!).then((response) async { if(inputUser.text == inputPassword.text || response['bloqueio']==1){ setState(() { error = 'Usuário bloqueado/senha incorreta'; diff --git a/lib/screens/login_saved_screen.dart b/lib/screens/login/login_saved_screen.dart similarity index 96% rename from lib/screens/login_saved_screen.dart rename to lib/screens/login/login_saved_screen.dart index a6b9d26..f199fa1 100644 --- a/lib/screens/login_saved_screen.dart +++ b/lib/screens/login/login_saved_screen.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:rkm/models/args_load_init_model.dart'; import 'package:rkm/service/api/url_api_const.dart'; -import 'package:rkm/service/db/db_sqlite.dart'; +import 'package:rkm/service/db/db_sqlite_load.dart'; import 'package:rkm/utils/color_palette.dart'; import 'package:rkm/utils/const_variable.dart'; import 'package:rkm/widgets/button_default.dart'; @@ -11,10 +11,10 @@ import 'package:rkm/widgets/dropdown_button_city.dart'; import 'package:rkm/widgets/input_text.dart'; import 'package:rkm/widgets/text_default.dart'; import 'package:sqflite/sqflite.dart'; -import '../models/city_load_model.dart'; -import '../service/api/api_data.dart'; -import '../service/api/encrypt_password.dart'; -import 'load_init_screen.dart'; +import '../../models/city_load_model.dart'; +import '../../service/api/api_data_load.dart'; +import '../../service/api/encrypt_password.dart'; +import '../load_init_screen.dart'; class LoginSavedScreen extends StatefulWidget { List listControl; @@ -63,7 +63,7 @@ class _LoginSavedScreenState extends State { ); } if(args!=null){ - await ApiData().apiConect(args!).then((response) async { + await ApiDataLoad().apiConect(args!).then((response) async { if(inputUser.text == inputPassword.text || response['bloqueio']==1){ setState(() { error = 'Usuário bloqueado/senha incorreta'; diff --git a/lib/screens/sync_unit_screen.dart b/lib/screens/login/sync_login_screen.dart similarity index 58% rename from lib/screens/sync_unit_screen.dart rename to lib/screens/login/sync_login_screen.dart index c83a7e6..340d633 100644 --- a/lib/screens/sync_unit_screen.dart +++ b/lib/screens/login/sync_login_screen.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:rkm/models/args_load_init_model.dart'; +import 'package:rkm/screens/sync_init_screen.dart'; import 'package:rkm/service/api/url_api_const.dart'; import 'package:rkm/utils/color_palette.dart'; import 'package:rkm/utils/const_variable.dart'; @@ -10,23 +11,24 @@ 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 '../models/city_load_model.dart'; -import '../service/api/api_data.dart'; -import '../service/api/encrypt_password.dart'; -import '../service/db/db_sqlite.dart'; -import 'load_init_screen.dart'; -class SyncUnitScreen extends StatefulWidget { +import '../../models/city_load_model.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'; +class SyncLoginScreen extends StatefulWidget { ArgsLoadInitModel args; - SyncUnitScreen({ + SyncLoginScreen({ required this.args }); @override - State createState() => _SyncUnitScreenState(); + State createState() => _SyncLoginScreenState(); } -class _SyncUnitScreenState extends State { +class _SyncLoginScreenState extends State { var inputUser = TextEditingController(); var inputPassword = TextEditingController(); @@ -35,63 +37,60 @@ class _SyncUnitScreenState extends State { String? selectUnit; String? selectTeam; bool validatorDropDown= false; + bool citizenOutArea = false; int contLogo = 0; String mode = 'desenvolvimento'; String urlAPI = UrlApiConst.ApiUrlDesenvolvimento; bool loading = false; List listUnit=[]; List searchUnitCodList=[]; - List listTeam = []; + List listTeam = []; String idUnidade =''; + String idUsuario =''; + + final PrefService _prefService = PrefService(); + checkLogin()async{ - CityLoadModel? model; - ArgsLoadInitModel? args; if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){ if(selectUnit!=null){ setState(() { error = ''; loading = true; }); - await DbSqlite().saveCityInit(widget.args).then((value)async{ - }); - if(model!=null){ - args = ArgsLoadInitModel( - mode: mode, - model:model!, - user: inputUser.text, - password: inputPassword.text, - urlAPI: urlAPI - ); - } - if(args!=null){ - await ApiData().apiConect(args!).then((response) async { - if(inputUser.text == inputPassword.text || response['bloqueio']==1){ + await ApiDataLoad().apiConect(widget.args!).then((response) async { + if(inputUser.text == inputPassword.text || response['bloqueio']==1){ + setState(() { + error = 'Usuário bloqueado/senha incorreta'; + }); + }else if(response['status']==0) { + setState(() { + error = 'Usuário não encontrado'; + }); + }else if(response['status']==1) { + setState((){ + error = ''; + }); + if(EncryptPassword().encrypt(inputPassword.text,response['userPass']) == response['userPass']){ setState(() { - error = 'Usuário bloqueado/senha incorreta'; + loading = false; }); - }else if(response['status']==0) { - setState(() { - error = 'Usuário não encontrado'; - }); - }else if(response['status']==1) { - setState((){ - error = ''; - }); - //verificar se a criptografia identificou se a senha está correta - if(EncryptPassword().encrypt(inputPassword.text,response['userPass']) == response['userPass']){ - // print(EncryptPassword().encrypt(inputPassword.text,response['userPass'])); - setState(() { - loading = false; - }); + ArgsLoadInitModel?args = ArgsLoadInitModel( + mode: mode, + model:widget.args.model, + user: inputUser.text, + password: inputPassword.text, + urlAPI: urlAPI + ); + _prefService.createCacheSync(selectTeam!, citizenOutArea).then((value){ Navigator.push( context, - MaterialPageRoute(builder: (context) => LoadInitScreen(args: args!)), + MaterialPageRoute(builder: (context) => SyncInitScreen(args: args)), ); - } + }); } - }); - } + } + }); }else{ setState(() { error = 'Selecione sua cidade'; @@ -113,10 +112,18 @@ class _SyncUnitScreenState extends State { inputPassword.text = widget.args.password; }); getUnit(); + getUser(); + } + getUser(){ + _prefService.readCacheIdUsuario('idUsuario').then((value){ + if(value != null){ + idUsuario = value; + } + }); } getUnit()async{ - Database db = await DbSqlite().intialDB(); + Database db = await DbSqliteLoad().intialDB(); var query = "SELECT * FROM UNIDADES"; List list = await db.rawQuery(query); // print("SELECT * FROM UNIDADES"); @@ -125,8 +132,6 @@ class _SyncUnitScreenState extends State { listUnit.add(list[i]['NOME_UNIDADE']); searchUnitCodList.add(list[i]['ID_UNIDADE']); } - print('searchListUnit'); - print(searchUnitCodList); setState(() {}); } @@ -134,15 +139,19 @@ class _SyncUnitScreenState extends State { for(int i=0; listUnit.length > i;i++){ if(listUnit[i] == selectUnit){ idUnidade = searchUnitCodList[i].toString(); - print(searchUnitCodList[i]); + _prefService.createCacheidUnidade(idUnidade); } } if(idUnidade!=''){ - Database db = await DbSqlite().intialDB(); - var query = "SELECT * FROM EQUIPES WHERE ID_UNIDADE = $idUnidade"; - List list = await db!.rawQuery(query); - print('getEquipes'); - print(list); + Database db = await DbSqliteLoad().intialDB(); + var query = "SELECT * FROM EQUIPES JOIN PROFISSIONAIS_EQUIPE ON PROFISSIONAIS_EQUIPE.ID_EQUIPE = EQUIPES.ID_EQUIPE WHERE ID_UNIDADE = $idUnidade AND ID_PROFISSIONAL = $idUsuario"; + List list = await db.rawQuery(query); + listTeam.clear(); + for(int i=0; list.length > i;i++){ + listTeam.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}'); + } + // print('getEquipes'); + // print(listTeam); setState(() {}); } } @@ -168,25 +177,7 @@ class _SyncUnitScreenState extends State { mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.start, children: [ - GestureDetector( - onTap: loading?null:()=>setState((){ - contLogo++; - if(contLogo>=5 && contLogo<=10){ - mode = UrlApiConst.ModeHomologacao; - urlAPI = UrlApiConst.ApiUrlHomologacao; - } - if(contLogo>10){ - mode = UrlApiConst.ModeDesenvolvimento; - urlAPI = UrlApiConst.ApiUrlDesenvolvimento; - if(contLogo==15){ - contLogo=0; - mode = UrlApiConst.ModeOnline; - urlAPI = UrlApiConst.ApiUrlOnline; - } - } - }), - child: Image.asset('assets/images/logo.PNG',width: width*0.4) - ), + Image.asset('assets/images/logo.PNG',width: width*0.4), mode == 'homologacao'?Image.asset('assets/images/homologacao.png',width: width*0.4):Container(), mode == 'desenvolvimento'?Image.asset('assets/images/desenvolvimento.png',width: width*0.4):Container(), SizedBox(height: 10), @@ -203,7 +194,7 @@ class _SyncUnitScreenState extends State { autovalidateMode: AutovalidateMode.onUserInteraction, child: Container( width: width*0.6, - height: height*0.3, + height: height*0.35, child: ListView( children: [ InputText( @@ -231,18 +222,36 @@ class _SyncUnitScreenState extends State { list: listUnit, select: selectUnit, onChanged: (value){ - // for(int i=0;listUnit.length > i;i++){ - // if(listUnit[i] == selectUnit){ - // - // } - // } setState(() { selectUnit = value!; validatorDropDown = true; + selectTeam = null; }); getTeam(); }, ), + DropDownButtonDefault( + width: width*0.6, + title: 'Equipe', + list: listTeam, + select: selectTeam, + onChanged: (value){ + setState(() { + selectTeam = value!; + }); + }, + ), + Container( + margin: EdgeInsets.symmetric(vertical: 5), + color: ColorPalette.white, + width: width*0.6, + height: height*0.05, + child: SwitchListTile( + title: TextDefault(text: 'Sincronizar Cidadãos Fora de Área',fontSize: 15,color: Colors.black,), + onChanged:(v)=>setState(()=>citizenOutArea=v), + value: citizenOutArea, + ), + ), ], ), ), @@ -253,6 +262,18 @@ class _SyncUnitScreenState extends State { width: width*0.6, ), SizedBox(height: 10), + loading?Container():Container( + padding: EdgeInsets.symmetric(vertical: 5), + width: width*0.6, + child: TextDefault( + text: 'Cidade Sincronizada: ${widget.args.model.nameCityFront!=''?widget.args.model.nameCityFront:''}', + fontWeigth: FontWeight.bold, + fontSize: 18, + color: Colors.black, + textAlign: TextAlign.center, + maxLines: 2, + ), + ), TextDefault(text: error,color: ColorPalette.red), ], ), diff --git a/lib/screens/splash_screen.dart b/lib/screens/splash_screen.dart index ac615ac..559b8c6 100644 --- a/lib/screens/splash_screen.dart +++ b/lib/screens/splash_screen.dart @@ -2,10 +2,12 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:rkm/models/args_load_init_model.dart'; import 'package:rkm/models/city_load_model.dart'; -import 'package:rkm/screens/sync_unit_screen.dart'; +import 'package:rkm/screens/login/sync_login_screen.dart'; +import 'package:rkm/service/api/url_api_const.dart'; import 'package:rkm/utils/const_variable.dart'; -import '../service/db/db_sqlite.dart'; -import 'login_saved_screen.dart'; +import '../service/db/db_sqlite_load.dart'; +import '../service/shared_preferences/shared_preferences_service.dart'; +import 'login/login_saved_screen.dart'; class SplashScreen extends StatefulWidget { const SplashScreen({Key? key}) : super(key: key); @@ -19,28 +21,49 @@ class _SplashScreenState extends State { @override void initState() { super.initState(); - DbSqlite().intialDB(); + DbSqliteLoad().intialDB(); timer(); } timer()async{ - await DbSqlite().intialDB().then((db)async{ - List data = await db.query('MUNICIPIOS'); - if(data.length != 0){ + await DbSqliteLoad().intialDB().then((db)async{ + List dataControl = await db.query('MUNICIPIOS'); + List dataCitizen = await db.query('CIDADAOS'); + if(dataControl.length != 0){ var query = "SELECT * FROM CONTROLE_INTERNO"; - data = await db.rawQuery(query); - if(data.length != 0){ + dataControl = await db.rawQuery(query); + print(dataCitizen); + if(dataCitizen.length != 0){ Navigator.push( context, - MaterialPageRoute(builder: (context) => LoginSavedScreen(listControl: data)), + MaterialPageRoute(builder: (context) => LoginSavedScreen(listControl: dataControl)), ); }else{ - CityLoadModel model = CityLoadModel(codCity: 0, nameCityApi: '', nameCityFront: '', codState: '', codCityIbge: 0); - ArgsLoadInitModel args = ArgsLoadInitModel(mode: '', model: model, user: '', password: '', urlAPI: ''); - Navigator.push( - context, - MaterialPageRoute(builder: (context) => SyncUnitScreen(args: args)), - ); + CityLoadModel? model; + String? url; + final PrefService _prefService = PrefService(); + _prefService.readCacheModel('user', 'password', 'city', 'mode').then((list){ + print('list $list'); + for(int i=0;ConstVariable().itensCity.length > i;i++){ + if(ConstVariable().itensCity[i].nameCityFront == list[2]!){ + model = ConstVariable().itensCity[i]; + } + } + if(list[3]=='desenvolvimento'){ + url = UrlApiConst.ApiUrlDesenvolvimento; + }else if(list[3]=='online'){ + url = UrlApiConst.ApiUrlOnline; + }else if(list[3]=='homologacao'){ + url = UrlApiConst.ApiUrlHomologacao; + } + if(url!=null && model!=null){ + ArgsLoadInitModel args = ArgsLoadInitModel(mode: list[3], model: model!, user: list[0], password: list[1], urlAPI: url!); + Navigator.push( + context, + MaterialPageRoute(builder: (context) => SyncLoginScreen(args: args)), + ); + } + }); } }else{ Navigator.pushReplacementNamed(context, '/login_load'); diff --git a/lib/screens/sync_init_screen.dart b/lib/screens/sync_init_screen.dart new file mode 100644 index 0000000..1cd9ca2 --- /dev/null +++ b/lib/screens/sync_init_screen.dart @@ -0,0 +1,231 @@ +import 'package:flutter/material.dart'; +import 'package:rkm/screens/login/sync_login_screen.dart'; +import 'package:rkm/service/api/api_data_sync.dart'; +import 'package:rkm/service/db/db_sqlite_sync.dart'; +import 'package:rkm/utils/color_palette.dart'; +import 'package:rkm/widgets/alert_dialog_default.dart'; +import 'package:rkm/widgets/button_default.dart'; +import 'package:rkm/widgets/text_default.dart'; +import '../models/args_load_init_model.dart'; +import '../service/api/api_data_load.dart'; +import '../service/db/db_sqlite_load.dart'; +import '../service/shared_preferences/shared_preferences_service.dart'; + +class SyncInitScreen extends StatefulWidget { + ArgsLoadInitModel args; + + SyncInitScreen({ + required this.args, +}); + + @override + State createState() => _SyncInitScreenState(); +} + +class _SyncInitScreenState extends State { + + final PrefService _prefService = PrefService(); + String messageSteps = 'Aguarde ...'; + bool finish = false; + String idUsuario = ''; + String idUnidade = ''; + String area = ''; + String microarea = ''; + bool foraArea = false; + + @override + void initState() { + super.initState(); + dataUser(); + } + + dataUser()async{ + _prefService.readCacheIdUnidade('idUnidade').then((id)async{ + _prefService.readCacheSync('area', false).then((list){ + foraArea = list[1]; + List splited = list[0].split(': '); + area = splited[2].toString().substring(0,1); + microarea = splited[3]; + idUnidade = id; + initSync(); + }); + }); + } + + initSync()async{ + await DbSqliteSync().deleteSync().then((_)async{ + await ApiDataSync().syncPerm(widget.args).then((response)async{ + if(response['status'] == 0 || response['sync_perm'] != "S"){ + AlertDialogDefault().alert(context, 'Erro', 'Usuário sem permissão para Sincronização de Unidade!', 'Voltar'); + }else{ + setState(()=> messageSteps = "Etapa 1 de 10 - Importando informações do CONECTASUS"); + await ApiDataSync().syncBairros(widget.args).then((value)async{ + if(value.length == 0){ + setState(()=> messageSteps = "ERRO: Erro para carregar os Bairros - Por favor, tente novamente!"); + }else{ + setState(()=> messageSteps = "Etapa 2 de 10 - Gravando os Bairros no Aplicativo"); + } + await DbSqliteSync().insertBairros(value).then((value)async{ + await ApiDataSync().syncTiposLogradouros(widget.args).then((value)async{ + if(value.length == 0){ + setState(()=> messageSteps = "ERRO: Erro para carregar os Tipos de Logradouros - Por favor, tente novamente!"); + }else{ + setState(()=> messageSteps = "Etapa 3 de 10 - Gravando os Tipos de Logradouros no Aplicativo"); + } + await DbSqliteSync().insertTiposLogradouros(value).then((value)async{ + await ApiDataSync().syncLogradouros(widget.args).then((value)async{ + if(value.length == 0){ + setState(()=> messageSteps = "ERRO: Erro para carregar os Logradouros - Por favor, tente novamente!"); + }else{ + setState(()=> messageSteps = "Etapa 4 de 10 - Gravando os Logradouros no Aplicativo"); + } + await DbSqliteSync().insertLogradouros(value).then((value)async{ + await ApiDataSync().syncLoteamentos(widget.args).then((value)async{ + if(value.length == 0){ + setState(()=> messageSteps = "ERRO: Erro para carregar os Loteamentos - Por favor, tente novamente!"); + }else{ + setState(()=> messageSteps = "Etapa 5 de 10 - Gravando os Loteamentos no Aplicativo"); + } + await DbSqliteSync().insertLoteamentos(value).then((value)async{ + await ApiDataSync().syncProfissionais(widget.args,idUnidade).then((value)async{ + if(value.length == 0){ + setState(()=> messageSteps = "ERRO: Erro para carregar os Profissionais - Por favor, tente novamente!"); + }else{ + setState(()=> messageSteps = "Etapa 6 de 10 - Gravando os Profissionais no Aplicativo"); + } + await DbSqliteSync().insertProfissionais(value).then((value)async{ + await ApiDataSync().syncProfissionaisCBOs(widget.args,idUnidade).then((value)async{ + if(value.length == 0){ + setState(()=> messageSteps = "ERRO: Erro para carregar os CBOs dos Profissionais - Por favor, tente novamente!"); + }else{ + setState(()=> messageSteps = "Etapa 7 de 10 - Gravando os CBO´s dos Profissionais no Aplicativo"); + } + await DbSqliteSync().insertProfissionaisCBOs(value).then((value)async{ + await ApiDataSync().syncCidadaos(widget.args,idUnidade,area,microarea,foraArea).then((value)async{ + if(value.length == 0){ + setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros dos Cidadãos - Por favor, tente novamente!"); + }else{ + setState(()=> messageSteps = "Etapa 8 de 10 - Gravando os Cidadãos no Aplicativo"); + } + await DbSqliteSync().insertCidadaos(value).then((value)async{ + await ApiDataSync().syncCadastrosDomiciliares(widget.args,idUnidade,area,microarea,foraArea).then((value)async{ + if(value.length == 0){ + setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros Domiciliares - Por favor, tente novamente!"); + }else{ + setState(()=> messageSteps = "Etapa 9 de 10 - Gravando os Cadastros Domiciliares no Aplicativo"); + } + await DbSqliteSync().insertCadastrosDomiciliares(value).then((value)async{ + await ApiDataSync().syncCadastrosIndividuais(widget.args,idUnidade,area,microarea,foraArea).then((value)async{ + if(value.length == 0){ + setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros Individuais - Por favor, tente novamente!"); + }else{ + setState(()=> messageSteps = "Etapa 10 de 10 - Gravando os Cadastros Individuais no Aplicativo"); + } + await DbSqliteSync().insertCadastrosIndividuais(value).then((value)async{ + //agora salvar controle interno + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + } + }); + }); + } + + @override + Widget build(BuildContext context) { + + double width = MediaQuery.of(context).size.width; + double height = MediaQuery.of(context).size.height; + + return Scaffold( + bottomSheet: Container( + width: width, + height: height*0.05, + color: ColorPalette.appBar, + child: finish + ?Row( + children: [ + Spacer(), + ButtonDefault( + onPressed: (){ + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => SyncLoginScreen(args: widget.args)), + ); + }, + title: 'Continuar', + width: width*0.3, + height: height*0.1, + textColor: ColorPalette.white, + background: ColorPalette.appBar, + borderColor: ColorPalette.appBar, + ), + ], + ) + :Padding( + padding: const EdgeInsets.all(10.0), + child: TextDefault( + text: messageSteps, + color: ColorPalette.white, + maxLines: 2, + ), + ), + ), + body: Container( + padding: EdgeInsets.all(50), + width: width, + height: height, + decoration: BoxDecoration( + color: ColorPalette.grayBackground, + image: DecorationImage( + fit: BoxFit.fitHeight, + image: AssetImage('assets/images/load_image.png' + ), + ) + ), + child: finish?ListView( + children: [ + Image.asset('assets/images/logo.PNG',width: width*0.3,height: height*0.2,), + Image.asset('assets/images/load-done.png',width: width*0.9,height: height*0.2,), + ], + ):ListView( + children: [ + Image.asset('assets/images/logo.PNG',width: width*0.2,height: height*0.1,), + SizedBox(height: height*0.1), + Image.asset('assets/images/loading.gif',width: width*0.2,height: height*0.1,), + SizedBox(height: height*0.1), + TextDefault( + text: 'Aguarde enquanto a Sincronização da Unidade é realizada.\n', + textAlign: TextAlign.center, + maxLines: 2, + color: Colors.black, + fontWeigth: FontWeight.bold, + ), + TextDefault( + text: 'Esse processo pode levar vários minutos dependendo da sua conexão!', + color: Colors.black, + fontWeigth: FontWeight.bold, + textAlign: TextAlign.center, + maxLines: 3, + ) + ], + ), + ), + ); + } +} diff --git a/lib/service/api/api_data.dart b/lib/service/api/api_data_load.dart similarity index 94% rename from lib/service/api/api_data.dart rename to lib/service/api/api_data_load.dart index ca1703e..8ef8859 100644 --- a/lib/service/api/api_data.dart +++ b/lib/service/api/api_data_load.dart @@ -2,7 +2,7 @@ import 'dart:convert'; import 'package:http/http.dart' as http; import '../../models/args_load_init_model.dart'; -class ApiData{ +class ApiDataLoad{ Future apiConect(ArgsLoadInitModel args)async{ //http://192.168.0.42:8010/api/atb/desenvolvimento/cabreuva/load/pass/admin final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/pass/${args.user}'; @@ -16,16 +16,13 @@ class ApiData{ // final url = 'http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/load/perm/admin'; final response = await http.get(Uri.parse(url)); final map = json.decode(response.body); - // print(map); return map; } Future loadUnidades(ArgsLoadInitModel args)async{ - print('entrou aqui ${args.model.nameCityApi}'); // http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/unidades final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/unidades'; final response = await http.get(Uri.parse(url)); final map = json.decode(response.body); - // print(map); return map; } Future loadProcedimentos(ArgsLoadInitModel args)async{ @@ -33,7 +30,6 @@ class ApiData{ final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentos'; final response = await http.get(Uri.parse(url)); final map = json.decode(response.body); - // print(map); return map; } Future loadProcedimentosRegistros(ArgsLoadInitModel args)async{ @@ -41,7 +37,6 @@ class ApiData{ final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentosRegistros'; final response = await http.get(Uri.parse(url)); final map = json.decode(response.body); - // print(map); return map; } Future loadCID(ArgsLoadInitModel args)async{ @@ -49,7 +44,6 @@ class ApiData{ final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/cid'; final response = await http.get(Uri.parse(url)); final map = json.decode(response.body); - // print(map); return map; } Future loadProcedimentosCID(ArgsLoadInitModel args)async{ @@ -57,7 +51,6 @@ class ApiData{ final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentosCID'; final response = await http.get(Uri.parse(url)); final map = json.decode(response.body); - // print(map); return map; } Future loadCBO(ArgsLoadInitModel args)async{ @@ -65,7 +58,6 @@ class ApiData{ final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/cbo'; final response = await http.get(Uri.parse(url)); final map = json.decode(response.body); - // print(map); return map; } Future loadProcedimentosCBO(ArgsLoadInitModel args)async{ @@ -73,7 +65,6 @@ class ApiData{ final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentosCBO'; final response = await http.get(Uri.parse(url)); final map = json.decode(response.body); - // print(map); return map; } Future loadCIAP(ArgsLoadInitModel args)async{ @@ -81,7 +72,6 @@ class ApiData{ final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/ciap'; final response = await http.get(Uri.parse(url)); final map = json.decode(response.body); - // print(map); return map; } Future loadMunicipios(ArgsLoadInitModel args)async{ @@ -89,7 +79,6 @@ class ApiData{ final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/municipios'; final response = await http.get(Uri.parse(url)); final map = json.decode(response.body); - // print(map); return map; } Future loadEquipes(ArgsLoadInitModel args)async{ @@ -98,7 +87,6 @@ class ApiData{ final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/equipes'; final response = await http.get(Uri.parse(url)); final map = json.decode(response.body); - // print(map); return map; } Future loadEquipeComponentes(ArgsLoadInitModel args)async{ @@ -106,7 +94,6 @@ class ApiData{ final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/equipeComponentes'; final response = await http.get(Uri.parse(url)); final map = json.decode(response.body); - print(map); return map; } Future loadCompetencia(ArgsLoadInitModel args)async{ @@ -116,7 +103,6 @@ class ApiData{ final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/competencia'; final response = await http.get(Uri.parse(url)); final map = json.decode(response.body); - // print(map); return map; } } \ No newline at end of file diff --git a/lib/service/api/api_data_sync.dart b/lib/service/api/api_data_sync.dart new file mode 100644 index 0000000..41c17bb --- /dev/null +++ b/lib/service/api/api_data_sync.dart @@ -0,0 +1,79 @@ +import 'dart:convert'; +import 'package:http/http.dart' as http; +import '../../models/args_load_init_model.dart'; +import '../shared_preferences/shared_preferences_service.dart'; + +class ApiDataSync{ + Future syncPerm(ArgsLoadInitModel args)async{ + //http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/sync/perm/admin + final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/sync/perm/${args.user}'; + // final url = 'http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/load/perm/admin'; + final response = await http.get(Uri.parse(url)); + final map = json.decode(response.body); + // print(map); + return map; + } + Future syncBairros(ArgsLoadInitModel args)async{ + // http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/bairros + final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/bairros'; + final response = await http.get(Uri.parse(url)); + final map = json.decode(response.body); + return map; + } + Future syncTiposLogradouros(ArgsLoadInitModel args)async{ + // http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/tiposLogradouros + final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/tiposLogradouros'; + final response = await http.get(Uri.parse(url)); + final map = json.decode(response.body); + return map; + } + Future syncLogradouros(ArgsLoadInitModel args)async{ + // http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/logradouros + final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/logradouros'; + final response = await http.get(Uri.parse(url)); + final map = json.decode(response.body); + return map; + } + Future syncLoteamentos(ArgsLoadInitModel args)async{ + // http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/loteamentos + final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/loteamentos'; + final response = await http.get(Uri.parse(url)); + final map = json.decode(response.body); + return map; + } + Future syncProfissionais(ArgsLoadInitModel args,String idUnidade)async{ + // http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/profissionais + final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/${idUnidade}/profissionais'; + final response = await http.get(Uri.parse(url)); + final map = json.decode(response.body); + return map; + } + Future syncProfissionaisCBOs(ArgsLoadInitModel args,String idUnidade)async{ + // http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/profissionaisCBOs + final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/${idUnidade}/profissionaisCBOs'; + final response = await http.get(Uri.parse(url)); + final map = json.decode(response.body); + return map; + } + Future syncCidadaos(ArgsLoadInitModel args,String idUnidade,String area, String microarea, bool foraArea)async{ + // http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/cidadaos/1/1/true + final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/${idUnidade}/cidadaos/$area/$microarea/$foraArea'; + final response = await http.get(Uri.parse(url)); + final map = json.decode(response.body); + return map; + } + Future syncCadastrosDomiciliares(ArgsLoadInitModel args,String idUnidade,String area, String microarea, bool foraArea)async{ + // http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/cadastrosDomiciliares/1/1/true + final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/${idUnidade}/cadastrosDomiciliares/$area/$microarea/$foraArea'; + final response = await http.get(Uri.parse(url)); + final map = json.decode(response.body); + return map; + } + Future syncCadastrosIndividuais(ArgsLoadInitModel args,String idUnidade,String area, String microarea, bool foraArea)async{ + // http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/cadastrosIndividuais/1/1/true + final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/${idUnidade}/cadastrosIndividuais/$area/$microarea/$foraArea'; + final response = await http.get(Uri.parse(url)); + final map = json.decode(response.body); + return map; + } +} \ No newline at end of file diff --git a/lib/service/db/db_sqlite.dart b/lib/service/db/db_sqlite_load.dart similarity index 99% rename from lib/service/db/db_sqlite.dart rename to lib/service/db/db_sqlite_load.dart index c32274f..945c88b 100644 --- a/lib/service/db/db_sqlite.dart +++ b/lib/service/db/db_sqlite_load.dart @@ -2,8 +2,7 @@ import 'package:rkm/models/args_load_init_model.dart'; import 'package:sqflite/sqflite.dart'; import 'package:path/path.dart'; -class DbSqlite{ - +class DbSqliteLoad{ Future intialDB()async{ final path = await getDatabasesPath(); final local = join(path,'rkmab.db'); @@ -66,7 +65,7 @@ class DbSqlite{ ); return db; } - Future deleteDB()async{ + Future deleteLoad()async{ var querys = [ 'UPDATE CONTROLE_INTERNO SET SYNC_UNIDADE = NULL, UNIDADE_SYNC = NULL, NOME_UNIDADE = NULL WHERE rowid = 1;', 'DELETE FROM ATENDS_DOM_COMPL;', @@ -116,6 +115,7 @@ class DbSqlite{ Database db = await intialDB(); for(int i=0;value.length > i;i++){ Map row = { + 'ID_UNIDADE' : value[i]['idUnidade'], 'NOME_UNIDADE' : value[i]['nomeFantasia'], 'CNES_UNIDADE' : value[i]['nrCNES'] }; diff --git a/lib/service/db/db_sqlite_sync.dart b/lib/service/db/db_sqlite_sync.dart new file mode 100644 index 0000000..9da45cb --- /dev/null +++ b/lib/service/db/db_sqlite_sync.dart @@ -0,0 +1,415 @@ +import 'package:rkm/service/db/db_sqlite_load.dart'; +import 'package:sqflite/sqflite.dart'; + +class DbSqliteSync{ + + Future deleteSync()async{ + var querys = [ + "UPDATE CONTROLE_INTERNO SET SYNC_UNIDADE = NULL, UNIDADE_SYNC = NULL, NOME_UNIDADE = NULL WHERE rowid = 1;", + "DELETE FROM BAIRROS;", + "DELETE FROM LOGRADOUROS_TIPOS;", + "DELETE FROM LOGRADOUROS_ENDERECOS;", + "DELETE FROM LOGRADOUROS_LOTEAMENTOS;", + "DELETE FROM PROFISSIONAIS;", + "DELETE FROM PROFISSIONAIS_CBOS;", + "DELETE FROM CIDADAOS;", + "DELETE FROM CIDADAO_DOMICILIO;", + "DELETE FROM CADASTROS_INDIVIDUAIS;", + "DELETE FROM DOMICILIOS_CIDADAOS;" + ]; + Database db = await DbSqliteLoad().intialDB(); + for(int i=0;querys.length>i;i++){ + db.execute(querys[i]); + } + } + Future insertBairros(var value)async{ + Database db = await DbSqliteLoad().intialDB(); + //"idBairro":2,"nomeBairro":"RURAL" + // BAIRROS (ID_BAIRRO INTEGER PRIMARY KEY AUTOINCREMENT, NO_BAIRRO TEXT);'); + for(int i=0;value.length > i;i++){ + Map row = { + 'ID_BAIRRO' : value[i]['idBairro'], + 'NO_BAIRRO' : value[i]['nomeBairro'], + }; + int id = await db.insert('BAIRROS', row); + // print('id increment $id'); + } + // print(await db.query('BAIRROS')); + return db; + } + Future insertTiposLogradouros(var value)async{ + Database db = await DbSqliteLoad().intialDB(); + + // LOGRADOUROS_TIPOS (ID_LOGR_TIPO INTEGER PRIMARY KEY AUTOINCREMENT, NO_LOGR_TIPO TEXT); + // {"idTipoLogradouro":0,"nomeTipoLogradouro":"NAO DEFINIDO"} + for(int i=0;value.length > i;i++){ + Map row = { + 'ID_LOGR_TIPO' : value[i]['idTipoLogradouro'], + 'NO_LOGR_TIPO' : value[i]['nomeTipoLogradouro'], + }; + int id = await db.insert('LOGRADOUROS_TIPOS', row); + // print('id increment $id'); + // print(await db.query('LOGRADOUROS_TIPOS')); + } + return db; + } + Future insertLogradouros(var value)async{ + Database db = await DbSqliteLoad().intialDB(); + // LOGRADOUROS_ENDERECOS (ID_LOGR_ENDERECO INTEGER, ID_LOGR_TIPO INTEGER, DESC_LOGR_ENDERECO TEXT, ID_BAIRRO INTEGER); + // "idLogradouro":7,"descLogradouro":"1A","idTipoLogradouro":6,"idBairro":65 + for(int i=0;value.length > i;i++){ + Map row = { + 'ID_LOGR_ENDERECO' : value[i]['idLogradouro'], + 'ID_LOGR_TIPO' : value[i]['descLogradouro'], + 'DESC_LOGR_ENDERECO' : value[i]['idTipoLogradouro'], + 'ID_BAIRRO' : value[i]['idBairro'], + }; + int id = await db.insert('LOGRADOUROS_ENDERECOS', row); + // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO'); + // print(await db.query('LOGRADOUROS_ENDERECOS')); + } + return db; + } + Future insertLoteamentos(var value)async{ + Database db = await DbSqliteLoad().intialDB(); + // LOGRADOUROS_LOTEAMENTOS (ID_LOGR_LOTEAMENTO INTEGER PRIMARY KEY AUTOINCREMENT, DESC_LOGR_LOTEAMENTO TEXT); + // "idLoteamento":1,"descLoteamento":"ASSENTAMENTO MARINEL" + for(int i=0;value.length > i;i++){ + Map row = { + 'ID_LOGR_LOTEAMENTO' : value[i]['idLoteamento'], + 'DESC_LOGR_LOTEAMENTO' : value[i]['descLoteamento'], + }; + int id = await db.insert('LOGRADOUROS_LOTEAMENTOS', row); + // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO'); + // print(await db.query('LOGRADOUROS_LOTEAMENTOS')); + } + return db; + } + Future insertProfissionais(var value)async{ + Database db = await DbSqliteLoad().intialDB(); + // PROFISSIONAIS (ID_PROFISSIONAL INTEGER PRIMARY KEY AUTOINCREMENT, NOME_PROFISSIONAL TEXT, CNS_PROFISSIONAL TEXT, USERNAME TEXT, SENHA TEXT, BLOQUEIO_ACESSO INTEGER);'); + // "idProfissional":1,"nomeProfissional":"ADMINISTRADOR","CNSProfissional":"999999999999999","username":"ADMIN","senha":"1$c124af0fb0b0941b907a9ddf3d5fb3c921d64e7d","bloqueioAcesso":0 + for(int i=0;value.length > i;i++){ + Map row = { + 'ID_PROFISSIONAL' : value[i]['idProfissional'], + 'NOME_PROFISSIONAL': value[i]['nomeProfissional'], + 'CNS_PROFISSIONAL' : value[i]['CNSProfissional'], + 'USERNAME' : value[i]['username'], + 'SENHA' : value[i]['senha'], + 'BLOQUEIO_ACESSO' : value[i]['bloqueioAcesso'], + }; + int id = await db.insert('PROFISSIONAIS', row); + // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO'); + // print(await db.query('PROFISSIONAIS')); + } + return db; + } + Future insertProfissionaisCBOs(var value)async{ + Database db = await DbSqliteLoad().intialDB(); + // PROFISSIONAIS_CBOS (ID_PROFISSIONAL INTEGER, CODIGO_CBO TEXT);'); + // "idProfissional":1,"codCBO":"225125" + for(int i=0;value.length > i;i++){ + Map row = { + 'ID_PROFISSIONAL' : value[i]['idProfissional'], + 'CODIGO_CBO' : value[i]['codCBO'], + }; + int id = await db.insert('PROFISSIONAIS_CBOS', row); + // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO'); + // print(await db.query('PROFISSIONAIS_CBOS')); + } + return db; + } + Future insertCidadaos(var value)async{ + Database db = await DbSqliteLoad().intialDB(); + // CIDADAOS (ID_CIDADAO,CD_USUARIO_SUS,NOME_CIDADAO,NOME_SOCIAL,SEXO,DT_NASCIMENTO,ID_ESTADO_CIVIL,NOME_CONJUGE,NACIONALIDADE,ID_MUNICIPIO_NASC,NO_MUNICIPIO_NASC,ESTADO_UF_NASC + // ID_ETNIA,ID_ESCOLARIDADE,ID_DEFICIENCIA,NOME_MAE,DESCONHECE_MAE,NOME_PAI,DESCONHECE_PAI,ID_UNIDADE,NUM_PRONTUARIO,NUM_PRONTUARIO_PROV,CLASSIFICACAO,CLASSIFICACAO_SUB, + // NUM_FAMILIA,ID_PAIS_RESID,ID_MUNICIPIO_RESID,NO_MUNICIPIO_RESID,ESTADO_UF_RESID,CODIGO_IBGE_RESID,NO_BAIRRO_LOGR,ID_LOGR_TIPO,NOME_LOGR,CEP_LOGR,NUMERO_LOGR,LOTEAMENTO_LOGR + // COMPL_LOGR,PONTO_REFERENCIA,ZONA_LOGR,DDD_TELEFONE,NUM_TELEFONE,DDD_CELULAR,NUM_CELULAR,DDD_RECADO,NUM_RECADO,EMAIL,OBSERVACOES,CPF,CNS,TITULO_ELEITOR,RG_NUMERO, + // RG_COMPLEMENTO,RG_UF,RG_ORGAO,RG_DATA_EMISSAO,TIPO_CERTIDAO,NUM_CERTIDAO,CARTORIO_CERTIDAO,LIVRO_CERTIDAO,FOLHA_CERTIDAO,TERMO_CERTIDAO,DT_EMISSAO_CERTIDAO,NUM_CTPS, + // NUM_SERIE_CTPS,ESTADO_UF_CTPS,NUM_PIS_PASEP,FL_RETIROU_CARTAO,NUM_NIS,NUM_PROT_CROSS,RENDA_MENSAL,PROFISSAO,DT_OBITO,DECLARACAO_OBITO,BLOQUEIO,ORIGEM,DT_HORA_CADASTRO, + // ID_USUARIO_CADASTRO,ID_DOMICILIO,ATENDIMENTOS,SINCRONIZADO);'); + '"idCidadao":3,"cdUsuarioSus":"571A22D79C24526537C7E4CE8C0D4046","noUsuario":"REBECA MARIA DE MELO RIBEIRO DOS SANTOS","nomeSocial":"","inSexo":"F",' + '"dtNascimento":"2007-01-20","inSituacaoConjugal":null,"noConjugue":"","nacionalidade":1,"cdMunicipioNasc":1523,"noMunicipioNasc":"CORUMBATAI","cdEstado":"SP","cdEtnia":1,' + '"cdUsuarioEscolaridade":4,"nrDeficiencia":null,"noMae":"JOELMA MARIA DE MELO","desconheceMae":0,"noPai":"AILTON JOSE RIBEIRO DOS SANTOS","desconhecePai":0,"nrUnidade":3,' + '"nrProntuario":"000004","nrProntuarioProvisorio":null,"classificacao":1,"nrFamilia":"","idPaisResid":33,"cdMunicipioResid":3427,"noMunicipioResid":"CORUMBATAI",' + '"cdEstadoResid":"SP","muniCdCodIbgeResid":"351270","noBairro":"RURAL","idTipoLogradouro":6,"noLogradouro":"NAO INFORMADO","cdCep":"13540000","nrLogradouro":"0",' + '"loteamento":"","noComplLogradouro":"WASHIGNTON LUIZ","pontoReferencia":"","zona":2,"nrDddTelefone":"","nrTelefone":"","nrDddCelular":"11","nrCelular":"976399671",' + '"nrDddRecado":"","nrRecado":"","email":"","observacao":"","nrCpf":"57459957852","nrCns":"702309150758010","tituloEleitor":null,"nrIdentidade":"","noComplIdentidade":"",' + '"cdSiglaUfIdentidade":"--","cdOrgaoEmissorIdentidade":null,"dtEmissaoIdentidade":null,"cdTipoCertidao":null,"nrCertidaoNova":"","noCartorioCertidao":"",' + '"nrLivroCertidao":null,"nrFolhaCertidao":null,"noTermoCertidao":"","dtEmissaoCertidao":null,"nrCtps":null,"nrSerieCtps":null,"cdSiglaUfCtps":"--","nrPispasep":"",' + '"cartaoMunicipalRetirado":"N","nrNis":"","rendaMensal":null,"profissao":"","dtObito":null,"bloqueio":"0","origem":"S","cdDomicilio":1838,"atendimentos":0,' + '"idUsuarioCadastro":null'; + for(int i=0;value.length > i;i++){ + Map row = { + 'ID_CIDADAO' : value[i]['idCidadao'], + 'CD_USUARIO_SUS' : value[i]['cdUsuarioSus'], + 'NOME_CIDADAO' : value[i]['noUsuario'], + 'NOME_SOCIAL' : value[i]['nomeSocial'], + 'SEXO' : value[i]['inSexo'], + 'DT_NASCIMENTO' : value[i]['dtNascimento'], + 'ID_ESTADO_CIVIL' : value[i]['inSituacaoConjugal'], + 'ID_ESTADO_CIVIL' : value[i]['inSituacaoConjugal'], + 'NOME_CONJUGE' : value[i]['noConjugue'], + 'NACIONALIDADE' : value[i]['nacionalidade'], + 'ID_MUNICIPIO_NASC' : value[i]['cdMunicipioNasc'], + 'NO_MUNICIPIO_NASC' : value[i]['noMunicipioNasc'], + 'ESTADO_UF_NASC' : value[i]['cdEstado'], + 'ID_ETNIA' : value[i]['cdEtnia'], + 'ID_ESCOLARIDADE' : value[i]['cdUsuarioEscolaridade'], + 'ID_DEFICIENCIA' : value[i]['nrDeficiencia'], + 'NOME_MAE' : value[i]['noMae'], + 'DESCONHECE_MAE' : value[i]['desconheceMae'], + 'NOME_PAI' : value[i]['noPai'], + 'DESCONHECE_PAI' : value[i]['desconhecePai'], + 'DESCONHECE_PAI' : value[i]['desconhecePai'], + 'ID_UNIDADE' : value[i]['nrUnidade'], + 'NUM_PRONTUARIO' : value[i]['nrProntuario'], + 'NUM_PRONTUARIO_PROV' : value[i]['nrProntuarioProvisorio'], + 'CLASSIFICACAO' : value[i]['classificacao'], + 'CLASSIFICACAO_SUB' : '', + 'NUM_FAMILIA' : value[i]['nrFamilia'], + 'ID_PAIS_RESID' : value[i]['idPaisResid'], + 'ID_MUNICIPIO_RESID' : value[i]['cdMunicipioResid'], + 'NO_MUNICIPIO_RESID' : value[i]['noMunicipioResid'], + 'ESTADO_UF_RESID' : value[i]['cdEstadoResid'], + 'CODIGO_IBGE_RESID' : value[i]['muniCdCodIbgeResid'], + 'NO_BAIRRO_LOGR' : value[i]['noBairro'], + 'ID_LOGR_TIPO' : value[i]['idTipoLogradouro'], + 'NOME_LOGR' : value[i]['noLogradouro'], + 'CEP_LOGR' : value[i]['cdCep'], + 'NUMERO_LOGR' : value[i]['nrLogradouro'], + 'LOTEAMENTO_LOGR' : value[i]['loteamento'], + 'COMPL_LOGR' : value[i]['noComplLogradouro'], + 'PONTO_REFERENCIA' : value[i]['pontoReferencia'], + 'ZONA_LOGR' : value[i]['zona'], + 'DDD_TELEFONE' : value[i]['nrDddTelefone'], + 'NUM_TELEFONE' : value[i]['nrCelular'], + 'DDD_RECADO' : value[i]['nrDddRecado'], + 'NUM_RECADO' : value[i]['nrRecado'], + 'EMAIL' : value[i]['email'], + 'OBSERVACOES' : value[i]['observacao'], + 'CPF' : value[i]['nrCpf'], + 'CNS' : value[i]['nrCns'], + 'TITULO_ELEITOR' : value[i]['tituloEleitor'], + 'RG_NUMERO' : value[i]['nrIdentidade'], + 'RG_COMPLEMENTO' : value[i]['noComplIdentidade'], + 'RG_UF' : value[i]['cdSiglaUfIdentidade'], + 'RG_ORGAO' : value[i]['cdOrgaoEmissorIdentidade'], + 'RG_DATA_EMISSAO' : value[i]['dtEmissaoIdentidade'], + 'TIPO_CERTIDAO' : value[i]['cdTipoCertidao'], + 'NUM_CERTIDAO' : value[i]['nrCertidaoNova'], + 'CARTORIO_CERTIDAO' : value[i]['noCartorioCertidao'], + 'LIVRO_CERTIDAO' : value[i]['nrLivroCertidao'], + 'FOLHA_CERTIDAO' : value[i]['nrFolhaCertidao'], + 'TERMO_CERTIDAO' : value[i]['noTermoCertidao'], + 'DT_EMISSAO_CERTIDAO' : value[i]['dtEmissaoCertidao'], + 'NUM_CTPS' : value[i]['nrCtps'], + 'NUM_SERIE_CTPS' : value[i]['nrSerieCtps'], + 'ESTADO_UF_CTPS' : value[i]['cdSiglaUfCtps'], + 'NUM_PIS_PASEP' : value[i]['nrPispasep'], + 'FL_RETIROU_CARTAO' : value[i]['cartaoMunicipalRetirado'], + 'NUM_NIS' : value[i]['nrNis'], + 'NUM_PROT_CROSS' : '', + 'RENDA_MENSAL' : value[i]['rendaMensal'], + 'PROFISSAO' : value[i]['profissao'], + 'DT_OBITO' : value[i]['dtObito'], + 'DECLARACAO_OBITO' : '', + 'BLOQUEIO' : value[i]['bloqueio'], + 'ORIGEM' : value[i]['origem'], + 'DT_HORA_CADASTRO' : value[i]['profissao'], + 'ID_USUARIO_CADASTRO' : value[i]['idUsuarioCadastro'], + 'ID_DOMICILIO' : value[i]['cdDomicilio'], + 'ATENDIMENTOS' : value[i]['atendimentos'], + 'SINCRONIZADO' : '', + }; + int id = await db.insert('CIDADAOS', row); + // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO'); + // print(await db.query('CIDADAOS')); + } + return db; + } + Future insertCadastrosDomiciliares(var value)async{ + Database db = await DbSqliteLoad().intialDB(); + // CIDADAO_DOMICILIO (ID_DOMICILIO,TIPO_IMOVEL,ID_AREA_DOMICILIO,ID_MICROAREA_DOMICILIO,FORA_AREA,SITUACAO_MORADIA,TIPO_LOCALIDADE,TIPO_DOMICILIO,NUM_MORADORES, + // NUM_COMODOS,SITUACAO_RURAL,TIPO_ACESSO,MAT_PREDOMINANTE,DISPONIBILIDADE_ENERGIA,TIPO_ABASTECIMENTO,TRATAMENTO_AGUA,DESTINO_LIXO,ESCOAMENTO,FL_ANIMAIS, + // ANIMAIS_GATO,ANIMAIS_CACHORRO,ANIMAIS_PASSARO,ANIMAIS_OUTROS,QTDE_ANIMAIS,CBO_RESP_CADASTRO,ID_RESP_CADASTRO,CNES_RESP_CADASTRO,INE_RESP_CADASTRO,DT_CADASTRO, + // ID_EQUIPE,ORIGEM,SINCRONIZADO,NOME_INSTITUICAO_PERMANENCIA,PROFISSIONAIS_VINCULADOS_INST,RESPONSAVEL_TECNICO_INST,CNS_RESP_TECNICO_INST,CARGO_RESP_TECNICO_INST, + // TEL_RESP_TECNICO_INST) + + // "cdDomicilio":16,"cdTipoImovel":1,"cdAreaDomicilio":null,"cdMicroareaDomicilio":null,"foraArea":1,"cdSituacao":2,"cdTipoLocalidade":1,"cdTipoDomicilio":1, + // "nrMoradores":6,"nrComodo":7,"situacaoProducaoRural":0,"tipoAcesso":1,"materialParedesExternas":1,"dispEnergiaEletrica":1,"cdTipoAbastecimento":1,"cdTratamentoAgua":4, + // "cdDestinoLixo":1,"cdEscoamento":1,"animais":0,"animaisGato":0,"animaisCachorro":0,"animaisPassaro":0,"animaisOutros":0,"animaisQtde":null,"respCadastro":68, + // "cnesUnidade":"9372253","cboRespCadastro":"515105","ine":"0001485628","dtCadastro":"2021-11-10","cdEquipe":5,"noInstPermanencia":null,"outrosProfissionaisInst":null, + // "noResponsavelInst":null,"cnsResponsavelInst":null,"gargoResponsavelInst":null,"telefoneResponsavelInst":null + for(int i=0;value.length > i;i++){ + Map row = { + 'ID_DOMICILIO' : value[i]['cdDomicilio'], + 'TIPO_IMOVEL' : value[i]['cdTipoImovel'], + 'ID_AREA_DOMICILIO' : value[i]['cdAreaDomicilio'], + 'ID_MICROAREA_DOMICILIO' : value[i]['cdMicroareaDomicilio'], + 'FORA_AREA' : value[i]['foraArea'], + 'SITUACAO_MORADIA' : value[i]['cdSituacao'], + 'TIPO_LOCALIDADE' : value[i]['cdTipoLocalidade'], + 'TIPO_DOMICILIO' : value[i]['cdTipoDomicilio'], + 'NUM_MORADORES' : value[i]['nrMoradores'], + 'NUM_COMODOS' : value[i]['nrComodo'], + 'SITUACAO_RURAL' : value[i]['situacaoProducaoRural'], + 'TIPO_ACESSO' : value[i]['tipoAcesso'], + 'MAT_PREDOMINANTE' : value[i]['materialParedesExternas'], + 'DISPONIBILIDADE_ENERGIA' : value[i]['dispEnergiaEletrica'], + 'TIPO_ABASTECIMENTO' : value[i]['cdTipoAbastecimento'], + 'TRATAMENTO_AGUA' : value[i]['cdTratamentoAgua'], + 'DESTINO_LIXO' : value[i]['cdDestinoLixo'], + 'ESCOAMENTO' : value[i]['cdEscoamento'], + 'FL_ANIMAIS' : value[i]['animais'], + 'ANIMAIS_GATO' : value[i]['animaisGato'], + 'ANIMAIS_CACHORRO' : value[i]['animaisCachorro'], + 'ANIMAIS_PASSARO' : value[i]['animaisPassaro'], + 'ANIMAIS_OUTROS' : value[i]['animaisOutros'], + 'QTDE_ANIMAIS' : value[i]['animaisQtde'], + 'CBO_RESP_CADASTRO' : value[i]['cboRespCadastro'], + 'ID_RESP_CADASTRO' : value[i]['respCadastro'], + 'CNES_RESP_CADASTRO' : value[i]['cnesUnidade'], + 'INE_RESP_CADASTRO' : value[i]['ine'], + 'DT_CADASTRO' : value[i]['dtCadastro'], + 'ID_EQUIPE' : value[i]['cdEquipe'], + 'ORIGEM' : '', + 'SINCRONIZADO' : '', + 'NOME_INSTITUICAO_PERMANENCIA': value[i]['noInstPermanencia'], + 'PROFISSIONAIS_VINCULADOS_INST': value[i]['outrosProfissionaisInst'], + 'RESPONSAVEL_TECNICO_INST' : value[i]['noResponsavelInst'], + 'PROFISSIONAIS_VINCULADOS_INST': value[i]['gargoResponsavelInst'], + 'TEL_RESP_TECNICO_INST' : value[i]['telefoneResponsavelInst'], + }; + int id = await db.insert('CIDADAO_DOMICILIO', row); + // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO'); + // print(await db.query('CIDADAO_DOMICILIO')); + } + return db; + } + Future insertCadastrosIndividuais(var value)async{ + Database db = await DbSqliteLoad().intialDB(); + // CADASTROS_INDIVIDUAIS (ID_CAD_INDIVIDUAL,STATUS_CADASTRO,ID_CIDADAO,CD_USUARIO_SUS,ID_AREA_CIDADAO,ID_MICROAREA_CIDADAO,FORA_AREA,RESPONSAVEL_FAMILIAR, + // ID_RESPONSAVEL_FAMILIAR,NOME_RESPONSAVEL_FAMILIAR,PARENTESCO,ESCOLARIDADE,FREQ_ESCOLA_CRECHE,SITUACAO_MERCADO,CUIDADOR_TRADICIONAL,GRUPO_COMUNITARIO,PLANO_PRIVADO, + // COMUNIDADE_TRADICIONAL,COM_TRADI_QUAL,ORIENT_SEXUAL,TEM_DEFICIENCIA,DEF_AUDITIVA,DEF_INTELECTUAL,DEF_VISUAL,DEF_FISICA,DEF_OUTRAS,SAIDA_CADASTRO,DATA_SAIDA_CADASTRO, + // CADASTRO_RECUSADO,GESTANTE,MATERNIDADE_REFERENCIA,PESO,FUMANTE,USA_ALCOOL,USA_DROGAS,HIPERTENSAO,DIABETES,AVC_DERRAME,INFARTO,HANSENIASE,TUBERCULOSE,CANCER, + // INTERNACAO,MOTIVO,DOENCA_CARDIACA,PROBLEMA_RINS,DOENCA_PULMAO,SAUDE_MENTAL,ACAMADO,DOMICILIADO,PLANTAS_MED,PLANTAS_MED_QUAIS,PIC,OUTRAS_CONDICOES,TEMPO_SITUACAO_RUA + // ACOMP_INTITUICAO,ACOMP_INTITUICAO_QUAL,BENEFICIO,REF_FAMILIAR,VISITA_FAMILIAR,PARENTESCO_VISITA,ALIMENTACAO_DIARIA,REST_POPULAR,DOACAO_REST,DOACAO_RELIGIOSO, + // DOACAO_POPULAR,OUTROS_ALIM,ACESSO_HIGIENE,BANHO,SANITARIO,HIGIENE_BUCAL,OUTROS_HIGIENE,FICHA_ALTERACAO,ID_RESP_CADASTRO,CNES_RESP_CADASTRO,CBO_RESP_CADASTRO, + // INE_RESP_CADASTRO,DT_CADASTRO,ID_EQUIPE,ORIGEM,SINCRONIZADO,DT_ENTRADA_BRASIL,DT_NATURALIZACAO,PORTARIA_NATURALIZACAO,CRIANCAS_ADULTO,CRIANCAS_OUTRAS_CRIANCAS, + // CRIANCAS_ADOLESCENTE,CRIANCAS_SOZINHA,CRIANCAS_CRECHE,CRIANCAS_OUTRO,IDENTIDADE_GENERO) + + // "idCadIndividual":5,"idCidadao":6,"cdUsuarioSUS":"4576021578C044ACF57CF5582356B697","idAreaCidadao":null,"idMicroAreaCidadao":null,"foraArea":1,"flResponsavelFamiliar":1, + // "cdResponsavelFamiliar":"4576021578C044ACF57CF5582356B697","nomeResponsavelFamiliar":"MARIA CLEIDIANA DE OLIVEIRA CRUZ","parentesco":null,"curso":11,"frequentaEscola":null, + // "situacaoMercado":2,"cuidadorTrad":2,"grupoComunitario":2,"plSaudePrivado":2,"comunidadeTradicional":2,"comunidadeTradicionalEspec":"","orientacaoSexual":2, + // "temDeficiencia":2,"defAuditiva":2,"defIntelectual":2,"defVisual":2,"defFisica":2,"defOutros":2,"saidaMotivo":null,"saidaData":null,"recusado":null,"gestante":null, + // "maternidadeReferencia":"","peso":2,"fumante":null,"usaAlcool":1,"outrasDrogas":2,"hipertensao":2,"diabetes":2,"avcDerrame":2,"infarto":2,"hanseniase":2,"tuberculose":2, + // "cancer":2,"internacao12Meses":2,"motivo":"","doencaCardiaca":1,"problemasRins":1,"doencaRespiratoriaPulmao":1,"tratamInternacaoPsiquiatrica":2,"acamado":2, + // "domiciliado":2,"plantasMedicinais":2,"plantasQuais":"","praticasIntegrativasComplem":null,"outrasCondSaude":"","tempoSituacaoRua":1,"acompanhadoInstituicao":null, + // "instituicaoQual":"","recebeBeneficio":null,"referenciaFamiliar":null,"visitaFamiliarFrequente":null,"visitaFamiliarParentesco":"","alimentacaoDiaria":null, + // "alimentecaoRestaurantePop":2,"alimentacaoDoacaoRestaurante":2,"alimentacaoDoacaoGrupoRel":2,"alimentacaoDoacaoPop":2,"alimentacaoOutros":2,"higienePessoal":2, + // "higieneBanho":2,"higieneSanitario":2,"higieneBucal":2,"higieneOutros":2,"fichaAlteracao":null,"idProfissionalResponsavel":68,"cnesUnidade":"9372253", + // "cboProfissional":"515105", "ine":"0001485628","dtCadastro":"2022-04-05","cdEquipe":5,"dtEntradaBrasil":null,"dtNaturalizado":null,"portariaNaturalizacao":"", + // "criancasAdulto":2,"criancasOutrasCriancas":2,"criancasAdolescente":2,"criancasSozinha":2,"criancasCresce":2,"criancasOutro":2,"identidadeGenero":null,"statusCadastro":null} + + for(int i=0;value.length > i;i++){ + Map row = { + 'ID_CAD_INDIVIDUAL' : value[i]['idCadIndividual'], + 'STATUS_CADASTRO' : value[i]['statusCadastro'], + 'ID_CIDADAO' : value[i]['idCidadao'], + 'CD_USUARIO_SUS' : value[i]['cdUsuarioSUS'], + 'ID_AREA_CIDADAO' : value[i]['idAreaCidadao'], + 'ID_MICROAREA_CIDADAO' : value[i]['idMicroAreaCidadao'], + 'FORA_AREA' : value[i]['foraArea'], + 'RESPONSAVEL_FAMILIAR' : value[i]['flResponsavelFamiliar'], + 'ID_RESPONSAVEL_FAMILIAR' : value[i]['cdResponsavelFamiliar'], + 'NOME_RESPONSAVEL_FAMILIAR' : value[i]['nomeResponsavelFamiliar'], + 'PARENTESCO' : value[i]['parentesco'], + 'ESCOLARIDADE' : value[i]['curso'], + 'FREQ_ESCOLA_CRECHE' : value[i]['frequentaEscola'], + 'SITUACAO_MERCADO' : value[i]['situacaoMercado'], + 'CUIDADOR_TRADICIONAL' : value[i]['cuidadorTrad'], + 'GRUPO_COMUNITARIO' : value[i]['grupoComunitario'], + 'PLANO_PRIVADO' : value[i]['plSaudePrivado'], + 'COMUNIDADE_TRADICIONAL' : value[i]['comunidadeTradicional'], + 'COM_TRADI_QUAL' : value[i]['comunidadeTradicionalEspec'], + 'ORIENT_SEXUAL' : value[i]['orientacaoSexual'], + 'TEM_DEFICIENCIA' : value[i]['temDeficiencia'], + 'DEF_AUDITIVA' : value[i]['defAuditiva'], + 'DEF_INTELECTUAL' : value[i]['defIntelectual'], + 'DEF_VISUAL' : value[i]['defVisual'], + 'DEF_FISICA' : value[i]['defFisica'], + 'DEF_OUTRAS' : value[i]['defOutros'], + 'SAIDA_CADASTRO' : value[i]['saidaMotivo'], + 'DATA_SAIDA_CADASTRO' : value[i]['saidaData'], + 'CADASTRO_RECUSADO' : value[i]['recusado'], + 'GESTANTE' : value[i]['gestante'], + 'MATERNIDADE_REFERENCIA' : value[i]['maternidadeReferencia'], + 'PESO' : value[i]['peso'], + 'FUMANTE' : value[i]['fumante'], + 'USA_ALCOOL' : value[i]['usaAlcool'], + 'USA_DROGAS' : value[i]['outrasDrogas'], + 'HIPERTENSAO' : value[i]['hipertensao'], + 'DIABETES' : value[i]['diabetes'], + 'AVC_DERRAME' : value[i]['avcDerrame'], + 'INFARTO' : value[i]['infarto'], + 'HANSENIASE' : value[i]['hanseniase'], + 'TUBERCULOSE' : value[i]['tuberculose'], + 'CANCER' : value[i]['cancer'], + 'INTERNACAO' : value[i]['internacao12Meses'], + 'MOTIVO' : value[i]['motivo'], + 'DOENCA_CARDIACA' : value[i]['doencaCardiaca'], + 'PROBLEMA_RINS' : value[i]['problemasRins'], + 'DOENCA_PULMAO' : value[i]['doencaRespiratoriaPulmao'], + 'SAUDE_MENTAL' : value[i]['tratamInternacaoPsiquiatrica'], + 'ACAMADO' : value[i]['acamado'], + 'DOMICILIADO' : value[i]['domiciliado'], + 'PLANTAS_MED' : value[i]['plantasMedicinais'], + 'PLANTAS_MED_QUAIS' : value[i]['plantasQuais'], + 'PIC' : value[i]['praticasIntegrativasComplem'], + 'OUTRAS_CONDICOES' : value[i]['outrasCondSaude'], + 'TEMPO_SITUACAO_RUA' : value[i]['tempoSituacaoRua'], + 'ACOMP_INTITUICAO' : value[i]['acompanhadoInstituicao'], + 'ACOMP_INTITUICAO_QUAL' : value[i]['instituicaoQual'], + 'BENEFICIO' : value[i]['recebeBeneficio'], + 'REF_FAMILIAR' : value[i]['referenciaFamiliar'], + 'PARENTESCO_VISITA' : value[i]['visitaFamiliarParentesco'], + 'ALIMENTACAO_DIARIA' : value[i]['alimentacaoDiaria'], + 'REST_POPULAR' : value[i]['alimentecaoRestaurantePop'], + 'DOACAO_REST' : value[i]['alimentacaoDoacaoRestaurante'], + 'DOACAO_RELIGIOSO' : value[i]['alimentacaoDoacaoGrupoRel'], + 'DOACAO_POPULAR' : value[i]['alimentacaoDoacaoPop'], + 'OUTROS_ALIM' : value[i]['alimentacaoOutros'], + 'ACESSO_HIGIENE' : value[i]['higienePessoal'], + 'BANHO' : value[i]['higieneBanho'], + 'SANITARIO' : value[i]['higieneSanitario'], + 'HIGIENE_BUCAL' : value[i]['higieneBucal'], + 'OUTROS_HIGIENE' : value[i]['higieneOutros'], + 'FICHA_ALTERACAO' : value[i]['fichaAlteracao'], + 'ID_RESP_CADASTRO' : value[i]['idProfissionalResponsavel'], + 'CNES_RESP_CADASTRO' : value[i]['cnesUnidade'], + 'CBO_RESP_CADASTRO' : value[i]['cboProfissional'], + 'INE_RESP_CADASTRO' : value[i]['ine'], + 'DT_CADASTRO' : value[i]['dtCadastro'], + 'ID_EQUIPE' : value[i]['cdEquipe'], + 'ORIGEM' : '', + 'SINCRONIZADO' : '', + 'DT_ENTRADA_BRASIL' : value[i]['dtEntradaBrasil'], + 'DT_NATURALIZACAO' : value[i]['dtNaturalizado'], + 'PORTARIA_NATURALIZACAO' : value[i]['portariaNaturalizacao'], + 'CRIANCAS_ADULTO' : value[i]['criancasAdulto'], + 'CRIANCAS_OUTRAS_CRIANCAS' : value[i]['criancasOutrasCriancas'], + 'CRIANCAS_ADOLESCENTE' : value[i]['criancasAdolescente'], + 'CRIANCAS_SOZINHA' : value[i]['criancasSozinha'], + 'CRIANCAS_CRECHE' : value[i]['criancasCresce'], + 'CRIANCAS_OUTRO' : value[i]['criancasOutro'], + 'IDENTIDADE_GENERO' : value[i]['identidadeGenero'], + + }; + int id = await db.insert('CADASTROS_INDIVIDUAIS', row); + // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO'); + print(await db.query('CADASTROS_INDIVIDUAIS')); + } + return db; + } +} \ No newline at end of file diff --git a/lib/service/shared_preferences/shared_preferences_service.dart b/lib/service/shared_preferences/shared_preferences_service.dart new file mode 100644 index 0000000..9b47fe5 --- /dev/null +++ b/lib/service/shared_preferences/shared_preferences_service.dart @@ -0,0 +1,70 @@ +import 'package:shared_preferences/shared_preferences.dart'; + +class PrefService{ + + Future createCacheidUsuario(String idUsuario)async{ + + SharedPreferences _preferences = await SharedPreferences.getInstance(); + _preferences.setString('idUsuario', idUsuario); + } + Future createCacheidUnidade(String idUnidade)async{ + + SharedPreferences _preferences = await SharedPreferences.getInstance(); + _preferences.setString('idUnidade', idUnidade); + } + Future createCacheSync(String area,bool foraArea)async{ + + SharedPreferences _preferences = await SharedPreferences.getInstance(); + _preferences.setString('area', area); + _preferences.setBool('foraArea', foraArea); + } + + Future createCacheModel(String user,String password,String city,String mode)async{ + + SharedPreferences _preferences = await SharedPreferences.getInstance(); + _preferences.setString('user', user); + _preferences.setString('password', password); + _preferences.setString('city', city); + _preferences.setString('mode', mode); + } + + Future readCacheIdUsuario(String idUsuario) async{ + SharedPreferences _preferences = await SharedPreferences.getInstance(); + var idUsuario = _preferences.getString('idUsuario'); + return idUsuario; + } + Future readCacheIdUnidade(String idUnidade) async{ + SharedPreferences _preferences = await SharedPreferences.getInstance(); + var idUnidade = _preferences.getString('idUnidade'); + return idUnidade; + } + Future readCacheModel(String user,String password,String city,String mode) async{ + SharedPreferences _preferences = await SharedPreferences.getInstance(); + String? user = _preferences.getString('user'); + String? password = _preferences.getString('password'); + String? city = _preferences.getString('city'); + String? mode = _preferences.getString('mode'); + List list =[ + user, + password, + city, + mode + ]; + return list; + } + Future readCacheSync(String area,bool foraArea) async{ + SharedPreferences _preferences = await SharedPreferences.getInstance(); + String? area = _preferences.getString('area'); + bool? foraArea = _preferences.getBool('foraArea'); + List list =[ + area, + foraArea + ]; + return list; + } + + Future removeCache(String idUsuario) async{ + SharedPreferences _preferences = await SharedPreferences.getInstance(); + _preferences.remove('idUsuario'); + } +} \ No newline at end of file diff --git a/lib/utils/routes.dart b/lib/utils/routes.dart index 07070f8..74bf88a 100644 --- a/lib/utils/routes.dart +++ b/lib/utils/routes.dart @@ -1,13 +1,12 @@ import 'package:rkm/screens/about_screen.dart'; import 'package:rkm/screens/attendance_list_screen.dart'; import 'package:rkm/screens/home_screen.dart'; -import 'package:rkm/screens/load_init_screen.dart'; -import 'package:rkm/screens/login_load_screen.dart'; import 'package:rkm/screens/select_service/eligibility_assessment_screen.dart'; import 'package:rkm/screens/splash_screen.dart'; import '../screens/clear_data_screen.dart'; import '../screens/edit_procedures_screen.dart'; import '../screens/import_sigtap_screen.dart'; +import '../screens/login/login_load_screen.dart'; import '../screens/main_procedures_screen.dart'; import '../screens/registers_citizen/register_citizen_screen.dart'; import '../screens/select_service/complementary_sheet_screen.dart'; diff --git a/lib/widgets/input_text.dart b/lib/widgets/input_text.dart index 8ef936e..bfccace 100644 --- a/lib/widgets/input_text.dart +++ b/lib/widgets/input_text.dart @@ -50,7 +50,7 @@ class InputText extends StatelessWidget { obscureText: this.obscure, controller: this.controller, style: TextStyle( - color: ColorPalette.gray, + color: Colors.black, fontSize: this.fontSize, ), decoration: InputDecoration( diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index c6f4066..ef3cc5e 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -6,9 +6,11 @@ import FlutterMacOS import Foundation import package_info_plus +import shared_preferences_foundation import sqflite func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin")) + SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) } diff --git a/pubspec.lock b/pubspec.lock index 1a833c8..b5bb256 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -92,6 +92,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.1" + file: + dependency: transitive + description: + name: file + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.4" flutter: dependency: "direct main" description: flutter @@ -205,6 +212,34 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.8.2" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.10" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.6" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.5" + platform: + dependency: transitive + description: + name: platform + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.0" plugin_platform_interface: dependency: transitive description: @@ -219,6 +254,62 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.7.2" + process: + dependency: transitive + description: + name: process + url: "https://pub.dartlang.org" + source: hosted + version: "4.2.4" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0" sky_engine: dependency: transitive description: flutter @@ -307,7 +398,14 @@ packages: name: win32 url: "https://pub.dartlang.org" source: hosted - version: "4.1.1" + version: "3.1.3" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" sdks: dart: ">=2.18.6 <3.0.0" flutter: ">=3.3.0" diff --git a/pubspec.yaml b/pubspec.yaml index 036a5d3..b7dc655 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -18,6 +18,7 @@ dependencies: http: gainer_crypto: ^0.0.6 sqflite: ^2.0.0+3 + shared_preferences: ^2.0.15 dev_dependencies: flutter_test: