From 7ab1fa5ebddd4dae972dead7882cb45bd4b4dc53 Mon Sep 17 00:00:00 2001 From: Reginaldo Date: Wed, 3 May 2023 15:49:31 -0300 Subject: [PATCH] ajustes no front e finalizado o salvamento dos dados no DB --- lib/screens/home_screen.dart | 3 +- lib/screens/login/login_load_screen.dart | 16 +- .../register_citizen_screen.dart | 81 ++++++--- .../register_home_screen.dart | 161 +++++++++++++++--- .../register_individual_screen.dart | 26 ++- lib/screens/sync_init_screen.dart | 4 +- lib/service/db/db_querys.dart | 14 +- lib/service/db/db_sqlite_sync.dart | 106 +++++++----- lib/widgets/dropdown_button_city.dart | 5 +- lib/widgets/dropdown_with_subtitle.dart | 21 ++- lib/widgets/input_search_text.dart | 4 +- 11 files changed, 309 insertions(+), 132 deletions(-) diff --git a/lib/screens/home_screen.dart b/lib/screens/home_screen.dart index 549e525..df71228 100644 --- a/lib/screens/home_screen.dart +++ b/lib/screens/home_screen.dart @@ -100,7 +100,8 @@ class _HomeScreenState extends State { children: [ InputSearchText( hint: 'Busca cidadão (Por NOME ou CNS ou PRONTUÁRIO ou DATA NASCIMENTO)', - fontSize: 10, + fontSize: 20, + fontSizeHint: 11, controller: inputSearch, width: width*0.72, ), diff --git a/lib/screens/login/login_load_screen.dart b/lib/screens/login/login_load_screen.dart index 7270eac..a927e9e 100644 --- a/lib/screens/login/login_load_screen.dart +++ b/lib/screens/login/login_load_screen.dart @@ -25,7 +25,6 @@ class _LoginLoadScreenState extends State { String error = ''; String? now; String? selectCity; - bool validatorDropDown= false; int contLogo = 0; String mode = 'desenvolvimento'; String urlAPI = UrlApiConst.ApiUrlDesenvolvimento; @@ -35,6 +34,7 @@ class _LoginLoadScreenState extends State { String codState = ''; int codCity = 0; int codCityIbge = 0; + bool mandatory = false; final PrefService _prefService = PrefService(); checkLogin()async{ @@ -115,9 +115,9 @@ class _LoginLoadScreenState extends State { } }); }else{ - setState(() { - error = 'Selecione sua cidade'; - }); + error = 'Selecione sua cidade'; + mandatory = true; + setState(() {}); } }else{ setState(() { @@ -187,7 +187,7 @@ class _LoginLoadScreenState extends State { children: [ InputText( hint: 'Usuário', - label: inputUser.text.isNotEmpty?'':'Usuário', + label: 'Usuário', controller: inputUser, width: width*0.6, colorBorder: Colors.white, @@ -195,7 +195,7 @@ class _LoginLoadScreenState extends State { ), InputText( hint: 'Senha', - label: inputPassword.text.isNotEmpty?'':'Senha', + label: 'Senha', obscure: true, controller: inputPassword, width: width*0.6, @@ -204,12 +204,12 @@ class _LoginLoadScreenState extends State { ), DropDownButtonCity( error: 'Campo obrigatório', - validator: validatorDropDown, + validator: mandatory, select: selectCity, onChanged: (value){ setState(() { selectCity = value!; - validatorDropDown = true; + mandatory = false; }); }, ), diff --git a/lib/screens/registers_citizen/register_citizen_screen.dart b/lib/screens/registers_citizen/register_citizen_screen.dart index 48f0611..41f121d 100644 --- a/lib/screens/registers_citizen/register_citizen_screen.dart +++ b/lib/screens/registers_citizen/register_citizen_screen.dart @@ -585,7 +585,7 @@ class _RegisterCitizenScreenState extends State { selectCountry = widget.listData[0]['ID_PAIS_RESID']==33?'BRASIL':'OUTRO'; int codCity = widget.listData[0]['ID_MUNICIPIO_RESID']; List listCity = await DBQuerys().buscaMunicipioporId(codCity); - cityController.text = listCity[0]['NO_MUNICIPIO']; + cityController.text = listCity[0]['NO_MUNICIPIO']+listCity.length!=0?' - SP':''; resultListResid = listCity; codIBGEController.text = listCity[0]['CODIGO_IBGE']; selectVillage = widget.listData[0]['NO_BAIRRO_LOGR']; @@ -800,31 +800,33 @@ class _RegisterCitizenScreenState extends State { ), selectGender==null && mandatory?ErrorDefault():Container(), Container( - width: width*0.75, - child: Row( - children: [ - GestureDetector( - onTap:edit?null: ()=>escolherprazoInicio(context,'birth'), - child: Container( - alignment: Alignment.centerLeft, - height: 58, - margin: EdgeInsets.symmetric(horizontal: 15,vertical: 5), - padding: EdgeInsets.symmetric(horizontal: 8,vertical: 10), - decoration: BoxDecoration( - border: Border.all(color: ColorPalette.white), - borderRadius: BorderRadius.all( - Radius.circular(5.0) - ), - ), - width: width*0.7, - child: TextDefault( - text: date, - color: Colors.black, - fontSize: 16, - ), - ), - ) - ], + width: width*0.7, + child: TextDefault( + textAlign: TextAlign.start, + text: 'Data de Nascimento', + color: ColorPalette.black54, + fontSize: 12, + ), + ), + GestureDetector( + onTap:edit?null: ()=>escolherprazoInicio(context,'birth'), + child: Container( + alignment: Alignment.centerLeft, + height: 58, + margin: EdgeInsets.symmetric(horizontal: 15,vertical: 5), + padding: EdgeInsets.symmetric(horizontal: 8,vertical: 10), + decoration: BoxDecoration( + border: Border.all(color: ColorPalette.white), + borderRadius: BorderRadius.all( + Radius.circular(5.0) + ), + ), + width: width*0.7, + child: TextDefault( + text: date, + color: Colors.black, + fontSize: 16, + ), ), ), date == 'Data de Nascimento'&& mandatory?ErrorDefault():Container(), @@ -1804,6 +1806,15 @@ class _RegisterCitizenScreenState extends State { mandatory: false, onChanged: (v)=>setState((){}), ), + Container( + width: width*0.7, + child: TextDefault( + textAlign: TextAlign.start, + text: 'RG - Data de Emissão', + color: ColorPalette.black54, + fontSize: 12, + ), + ), GestureDetector( onTap:edit?null: ()=>escolherprazoInicio(context,'rg'), child: Container( @@ -1905,6 +1916,15 @@ class _RegisterCitizenScreenState extends State { enabled: !edit, onChanged: (v)=>setState((){}), ), + Container( + width: width*0.7, + child: TextDefault( + textAlign: TextAlign.start, + text: 'Data de Emissão da Certidão', + color: ColorPalette.black54, + fontSize: 12, + ), + ), GestureDetector( onTap:edit?null: ()=>escolherprazoInicio(context,'cert'), child: Container( @@ -2076,6 +2096,15 @@ class _RegisterCitizenScreenState extends State { enabled: !edit, onChanged: (v)=>setState((){}), ), + Container( + width: width*0.7, + child: TextDefault( + textAlign: TextAlign.start, + text: 'Data Óbito', + color: ColorPalette.black54, + fontSize: 12, + ), + ), GestureDetector( onTap:edit?null: ()=>escolherprazoInicio(context,'death'), child: Container( diff --git a/lib/screens/registers_citizen/register_home_screen.dart b/lib/screens/registers_citizen/register_home_screen.dart index 82aa744..85bf5ec 100644 --- a/lib/screens/registers_citizen/register_home_screen.dart +++ b/lib/screens/registers_citizen/register_home_screen.dart @@ -5,9 +5,12 @@ import 'package:rkm/config/const_variable.dart'; import 'package:rkm/service/db/db_querys.dart'; import 'package:rkm/widgets/button_default.dart'; import 'package:rkm/widgets/title_containers.dart'; +import '../../service/db/db_sqlite_sync.dart'; import '../../service/shared_preferences/shared_preferences_service.dart'; +import '../../widgets/alert_dialog_default.dart'; import '../../widgets/appbar_default.dart'; import '../../widgets/dropdown_with_subtitle.dart'; +import '../../widgets/error_default.dart'; import '../../widgets/input_with_subtitle.dart'; import '../../widgets/onbackbutton.dart'; import '../../widgets/subtitle_appbar_citizen.dart'; @@ -26,7 +29,7 @@ class _RegisterHomeScreenState extends State { var QTDE_ANIMAIS = TextEditingController(); var NUM_COMODOS = TextEditingController(); var NUM_MORADORES = TextEditingController(); - var ID_RESP_CADASTRO = TextEditingController(); + var NOME_RESP_CADASTRO = TextEditingController(); var CNES_RESP_CADASTRO = TextEditingController(); var DT_CADASTRO = TextEditingController(); @@ -41,6 +44,7 @@ class _RegisterHomeScreenState extends State { bool editing = false; bool mandatory = false; bool CNS_VALIDO = false; + bool showCheckError = false; List listTypeHome = []; List listINE = []; @@ -75,8 +79,17 @@ class _RegisterHomeScreenState extends State { String? ESCOAMENTO; String? CBO_RESP_CADASTRO; String? INE_RESP_CADASTRO; + String? NOME_INSTITUICAO_PERMANENCIA; + String? PROFISSIONAIS_VINCULADOS_INST; + String? RESPONSAVEL_TECNICO_INST; + String? CARGO_RESP_TECNICO_INST; + String? TEL_RESP_TECNICO_INST; + int ID_CIDADAO=0; String date_cad = ''; + String TIPO_SALVAR = 'new'; + int ID_RESP_CADASTRO=0; + int ID_DOMICILIO=0; int ID_AREA_DOMICILIO=0; int ID_MICROAREA_DOMICILIO=0; int TIPO_IMOVEL_COD = 0; @@ -90,6 +103,7 @@ class _RegisterHomeScreenState extends State { int TRATAMENTO_AGUA_COD = 0; int DESTINO_LIXO_COD = 0; int ESCOAMENTO_COD = 0; + int ID_EQUIPE = 0; escolherprazoInicio(BuildContext context) async { var pickDate = await showDatePicker( @@ -165,9 +179,13 @@ class _RegisterHomeScreenState extends State { } loadRegisterHome()async{ - int ID_DOMICILIO = widget.listData[0]['ID_DOMICILIO']; + ID_DOMICILIO = widget.listData[0]['ID_DOMICILIO']; + ID_CIDADAO = widget.listData[0]['ID_CIDADAO']; DBQuerys().buscaCadDomiciliar(ID_DOMICILIO).then((dataHome)async{ TIPO_IMOVEL_COD = dataHome[0]['TIPO_IMOVEL']??0; + if(dataHome.length!=0){ + TIPO_SALVAR = 'update'; + } for (int i = 0; ConstVariable().listTypeHome.length > i; i++) { if (ConstVariable().listTypeHome[i].cod == TIPO_IMOVEL_COD) { TIPO_IMOVEL = ConstVariable().listTypeHome[i].title; @@ -251,6 +269,13 @@ class _RegisterHomeScreenState extends State { date_cad = dataHome[0]['DT_CADASTRO']??''; List splitted = date_cad.toString().split('-'); DT_CADASTRO.text = splitted.length<2?'':'${splitted[2]}/${splitted[1]}/${splitted[0]}'; + print(DT_CADASTRO.text); + ID_EQUIPE = dataHome[0]['ID_EQUIPE']??0; + NOME_INSTITUICAO_PERMANENCIA = dataHome[0]['NOME_INSTITUICAO_PERMANENCIA']; + PROFISSIONAIS_VINCULADOS_INST = dataHome[0]['PROFISSIONAIS_VINCULADOS_INST']; + RESPONSAVEL_TECNICO_INST = dataHome[0]['RESPONSAVEL_TECNICO_INST']; + CARGO_RESP_TECNICO_INST = dataHome[0]['CARGO_RESP_TECNICO_INST']; + TEL_RESP_TECNICO_INST = dataHome[0]['TEL_RESP_TECNICO_INST']; await DBQuerys().buscaCBOProfissional(idUsuario).then((list){ if(list.length!=0){ for(int i = 0; list.length>i;i++){ @@ -261,17 +286,14 @@ class _RegisterHomeScreenState extends State { setState(() {}); }); }); - await DBQuerys().buscaProfissionalCadInd(idUsuario).then((list)async{ - ID_RESP_CADASTRO.text = list['NOME_PROFISSIONAL']; - CNES_RESP_CADASTRO.text = await DBQuerys().buscaNomeUnidade(idUnidade); - }); List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario); for(int i=0; list.length > i;i++){ INE_RESP_CADASTRO = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}'; listINEPROF.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}'); } await DBQuerys().buscaProfissionalCadInd(idUsuario).then((list){ - ID_RESP_CADASTRO.text = list['NOME_PROFISSIONAL']; + ID_RESP_CADASTRO = list['ID_PROFISSIONAL']; + NOME_RESP_CADASTRO.text = list['NOME_PROFISSIONAL']; String CNS_PROFISSIONAL = list['CNS_PROFISSIONAL']; if(CNS_PROFISSIONAL == 999999999999999 || CNS_PROFISSIONAL == '999999999999999'){ CNS_VALIDO = true; @@ -280,6 +302,77 @@ class _RegisterHomeScreenState extends State { setState(() {}); } + checkSave()async{ + // adicionar depois e usar um usuário real + // CBO_RESP_CADASTRO + //ok + if(TIPO_IMOVEL==null || DT_CADASTRO.text.isEmpty ){ + print('erro'); + setState(() { + showCheckError = true; + mandatory = true; + }); + }else{ + print('passou'); + mandatory = false; + showCheckError = false; + setState(() {}); + saveCitizenHome(); + } + } + + saveCitizenHome()async{ + Map row = { + 'TIPO_IMOVEL' : TIPO_IMOVEL_COD, + 'ID_AREA_DOMICILIO' : ID_AREA_DOMICILIO, + 'ID_MICROAREA_DOMICILIO' : ID_MICROAREA_DOMICILIO, + 'FORA_AREA' : FORA_AREA?1:2, + 'SITUACAO_MORADIA' : SITUACAO_MORADIA_COD, + 'TIPO_LOCALIDADE' : TIPO_LOCALIDADE_COD, + 'TIPO_DOMICILIO' : TIPO_DOMICILIO_COD, + 'NUM_MORADORES' : int.parse(NUM_MORADORES.text), + 'NUM_COMODOS' : int.parse(NUM_COMODOS.text), + 'SITUACAO_RURAL' : SITUACAO_RURAL_COD, + 'TIPO_ACESSO' : TIPO_ACESSO_COD, + 'MAT_PREDOMINANTE' : MAT_PREDOMINANTE_COD, + 'DISPONIBILIDADE_ENERGIA' : DISPONIBILIDADE_ENERGIA?1:2, + 'TIPO_ABASTECIMENTO' : TIPO_ABASTECIMENTO_COD, + 'TRATAMENTO_AGUA' : TRATAMENTO_AGUA_COD, + 'DESTINO_LIXO' : DESTINO_LIXO_COD, + 'ESCOAMENTO' : ESCOAMENTO_COD, + 'FL_ANIMAIS' : FL_ANIMAIS?1:2, + 'ANIMAIS_GATO' : ANIMAIS_GATO?1:2, + 'ANIMAIS_CACHORRO' : ANIMAIS_CACHORRO?1:2, + 'ANIMAIS_PASSARO' : ANIMAIS_PASSARO?1:2, + 'ANIMAIS_OUTROS' : ANIMAIS_OUTROS?1:2, + 'QTDE_ANIMAIS' : QTDE_ANIMAIS.text.isEmpty?0:int.parse(QTDE_ANIMAIS.text), + 'CBO_RESP_CADASTRO' : CBO_RESP_CADASTRO, + 'ID_RESP_CADASTRO' : ID_RESP_CADASTRO, + 'CNES_RESP_CADASTRO' : CNES_RESP_CADASTRO.text, + 'INE_RESP_CADASTRO' : INE, + 'DT_CADASTRO' : date_cad, + 'ID_EQUIPE' : ID_EQUIPE, + 'ORIGEM' : 'A', + 'SINCRONIZADO' : 'N', + 'NOME_INSTITUICAO_PERMANENCIA': NOME_INSTITUICAO_PERMANENCIA, + 'PROFISSIONAIS_VINCULADOS_INST': PROFISSIONAIS_VINCULADOS_INST, + 'RESPONSAVEL_TECNICO_INST' : RESPONSAVEL_TECNICO_INST, + 'CARGO_RESP_TECNICO_INST' : CARGO_RESP_TECNICO_INST, + 'TEL_RESP_TECNICO_INST' : TEL_RESP_TECNICO_INST, + }; + await DbSqliteSync().insertCadastrosDomiciliares(row,TIPO_SALVAR,ID_DOMICILIO,ID_CIDADAO).then((value){ + AlertDialogDefault().alert( + context, + 'Aviso', + TIPO_SALVAR!='new'? + 'Cadastro Domiciliar alterado com sucesso!': + 'Cadastro Domiciliar realizado com sucesso!', + 'OK' + ); + // print(value); + }); + } + @override void initState() { super.initState(); @@ -303,6 +396,19 @@ class _RegisterHomeScreenState extends State { child: ListView( children: [ SubtitleAppbarCitizen(title: 3,edit: true,listData: widget.listData), + showCheckError?Card( + margin: EdgeInsets.all(10), + child: Container( + padding: EdgeInsets.all(10), + child: Row( + children: [ + Icon(Icons.warning,color: Colors.red,), + TextDefault(text: 'Existem campos obrigatórios não preenchidos.',color: ColorPalette.red,fontSize: 15,) + ], + ), + ), + color: ColorPalette.white, + ):Container(), Card( margin: EdgeInsets.all(10), child: Padding( @@ -314,7 +420,6 @@ class _RegisterHomeScreenState extends State { setState(() { edit = true; editing = true; - mandatory = true; }); }, title: 'Alterar', @@ -323,10 +428,7 @@ class _RegisterHomeScreenState extends State { textColor: ColorPalette.white, width: double.infinity, ):ButtonDefault( - onPressed: ()=>setState((){ - edit=false; - editing = false; - }), + onPressed: ()=>checkSave(), title: 'Salvar', borderColor: ColorPalette.appBar, background: ColorPalette.appBar, @@ -378,6 +480,7 @@ class _RegisterHomeScreenState extends State { } }, ), + TIPO_IMOVEL==null&& mandatory?ErrorDefault():Container(), DropdownWithSubtitle( list:listINE, widthSubtitle: width*0.7, @@ -392,7 +495,12 @@ class _RegisterHomeScreenState extends State { width: width*0.7, title: 'Fora de área', value: FORA_AREA, - onChanged: !editing?null: (value)=>setState(()=>FORA_AREA=value), + onChanged: !editing?null: (value){ + if(value){ + INE = null; + } + setState(()=>FORA_AREA=value); + }, ), DropdownWithSubtitle( list:listSituationHome, @@ -662,7 +770,7 @@ class _RegisterHomeScreenState extends State { mainAxisSize: MainAxisSize.min, children: [ InputWithSubtitle( - controller: ID_RESP_CADASTRO, + controller: NOME_RESP_CADASTRO, subtitle: 'Usuário responsável Pelo Cadastro', errorInput: 'Campo Obrigatório', labelInput: 'Usuário responsável Pelo Cadastro', @@ -707,17 +815,22 @@ class _RegisterHomeScreenState extends State { }, list: listINEPROF ), - InputWithSubtitle( - controller: DT_CADASTRO, - subtitle: 'Data do Cadastro', - errorInput: 'Campo Obrigatório', - labelInput: 'Data do Cadastro', - widthInput: width*0.7, - widthSubtitle: width*0.7, - hintInput: 'Escreva aqui', - enabled: false, - onChanged: (v)=>setState((){}), + GestureDetector( + onTap:!edit?null: ()=>escolherprazoInicio(context), + child: InputWithSubtitle( + controller: DT_CADASTRO, + subtitle: 'Data do Cadastro', + errorInput: 'Campo Obrigatório!', + labelInput: 'Data do Cadastro', + widthInput: width*0.7, + widthSubtitle: width*0.7, + hintInput: 'Escreva aqui', + enabled: false, + mandatory: mandatory, + onChanged: (v)=>setState((){}), + ), ), + DT_CADASTRO.text.isEmpty&& mandatory?ErrorDefault():Container(), ], ), ), diff --git a/lib/screens/registers_citizen/register_individual_screen.dart b/lib/screens/registers_citizen/register_individual_screen.dart index 74ea193..b2d6eff 100644 --- a/lib/screens/registers_citizen/register_individual_screen.dart +++ b/lib/screens/registers_citizen/register_individual_screen.dart @@ -115,7 +115,7 @@ class _RegisterIndividualScreenState extends State { int ALIMENTACAO_DIARIA_COD = 0; int IDENTIDADE_GENERO_COD = 0; int ID_EQUIPE = 0; - String CD_USUARIO_SUS = ''; + int ID_CIDADAO = 0; String? INE; String? INE_DB; String? ESCOLARIDADE; @@ -216,9 +216,9 @@ class _RegisterIndividualScreenState extends State { } loadCadIndividual()async{ - CD_USUARIO_SUS = widget.listData[0]['CD_USUARIO_SUS']; + ID_CIDADAO = widget.listData[0]['ID_CIDADAO']; - await DBQuerys().buscaCadInvidual(CD_USUARIO_SUS).then((dataCitizen)async{ + await DBQuerys().buscaCadInvidual(ID_CIDADAO).then((dataCitizen)async{ // print(CD_USUARIO_SUS); if(dataCitizen.length != 0) { TIPO_SALVAR = 'update'; @@ -545,7 +545,7 @@ class _RegisterIndividualScreenState extends State { 'CRIANCAS_OUTRO' : CRIANCAS_OUTRO?1:2, 'IDENTIDADE_GENERO' : IDENTIDADE_GENERO_COD, }; - await DbSqliteSync().insertCadastrosIndividuais(row,TIPO_SALVAR,CD_USUARIO_SUS).then((value){ + await DbSqliteSync().insertCadastrosIndividuais(row,TIPO_SALVAR,ID_CIDADAO).then((value){ AlertDialogDefault().alert( context, 'Aviso', @@ -1003,6 +1003,15 @@ class _RegisterIndividualScreenState extends State { onTapDelete: ()=>setState(()=>SAIDA_CADASTRO=null), showDelete: true, ), + Container( + width: width*0.7, + child: TextDefault( + textAlign: TextAlign.start, + text: 'Data', + color: ColorPalette.black54, + fontSize: 12, + ), + ), GestureDetector( onTap:!edit?null: ()=>escolherprazoInicio(context,'data_saida'), child: InputWithSubtitle( @@ -1508,6 +1517,15 @@ class _RegisterIndividualScreenState extends State { onChanged: !editing?null: (value)=>setState(()=>INE_RESP_CADASTRO = value), list: listINEPROF ), + Container( + width: width*0.7, + child: TextDefault( + textAlign: TextAlign.start, + text: 'Data do Cadastro', + color: ColorPalette.black54, + fontSize: 12, + ), + ), GestureDetector( onTap:!edit?null: ()=>escolherprazoInicio(context,'cadastro'), child: InputWithSubtitle( diff --git a/lib/screens/sync_init_screen.dart b/lib/screens/sync_init_screen.dart index 2e8b06f..ed0c3cf 100644 --- a/lib/screens/sync_init_screen.dart +++ b/lib/screens/sync_init_screen.dart @@ -134,14 +134,14 @@ class _SyncInitScreenState extends State { }else{ setState(()=> messageSteps = "Etapa 9 de 10 - Gravando os Cadastros Domiciliares no Aplicativo"); } - await DbSqliteSync().insertCadastrosDomiciliares(value).then((value)async{ + await DbSqliteSync().insertCadastrosDomiciliares(value,'sync',0,0).then((value)async{ await ApiDataSync().syncCadastrosIndividuais(urlAPI,mode,nameCityApi,user,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,'sync','').then((value)async{ + await DbSqliteSync().insertCadastrosIndividuais(value,'sync',0).then((value)async{ await DbSqliteSync().saveSync(codCity,codState,urlAPI,mode,nameCityApi,nameCityFront,codCityIbge,user,idUnidade,nomeUnidade,area,microarea).then((value)async{ Navigator.pushNamed(context, '/home'); }); diff --git a/lib/service/db/db_querys.dart b/lib/service/db/db_querys.dart index 9128f7f..091d557 100644 --- a/lib/service/db/db_querys.dart +++ b/lib/service/db/db_querys.dart @@ -23,7 +23,6 @@ class DBQuerys{ 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); - // print(await db.rawQuery('SELECT NO_BAIRRO FROM BAIRROS')); // print(list); return list; } @@ -31,7 +30,6 @@ class DBQuerys{ Database db = await DbSqliteLoad().intialDB(); var query = "SELECT * FROM PROFISSIONAIS WHERE ID_PROFISSIONAL = $ID_PROFISSIONAL"; List list = await db.rawQuery(query); - // print(await db.rawQuery('SELECT NO_BAIRRO FROM BAIRROS')); // print(list); return list[0]; } @@ -39,7 +37,6 @@ class DBQuerys{ Database db = await DbSqliteLoad().intialDB(); var query = "SELECT * FROM UNIDADES WHERE ID_UNIDADE = $ID_UNIDADE"; List list = await db.rawQuery(query); - // print(await db.rawQuery('SELECT NO_BAIRRO FROM BAIRROS')); // print(list); return list[0]['NOME_UNIDADE']; } @@ -53,7 +50,6 @@ class DBQuerys{ buscaTipoLogradouro(tipo)async{ Database db = await DbSqliteLoad().intialDB(); List list = await db.rawQuery("SELECT * FROM LOGRADOUROS_TIPOS WHERE NO_LOGR_TIPO = '$tipo'"); - // print(await db.rawQuery('SELECT NO_BAIRRO FROM BAIRROS')); // print(list[0]['ID_LOGR_TIPO']); return list[0]['ID_LOGR_TIPO']; } @@ -128,19 +124,19 @@ class DBQuerys{ // print(list); return list; } - Future buscaCadInvidual(String CD_USUARIO_SUS)async{ + Future buscaCadInvidual(int ID_CIDADAO)async{ Database db = await DbSqliteLoad().intialDB(); - var query = 'SELECT * FROM CADASTROS_INDIVIDUAIS WHERE CD_USUARIO_SUS = "$CD_USUARIO_SUS"'; + var query = 'SELECT * FROM CADASTROS_INDIVIDUAIS WHERE ID_CIDADAO = $ID_CIDADAO'; List list = await db.rawQuery(query); // print(list); return list; } Future buscaCadDomiciliar(int ID_DOMICILIO)async{ Database db = await DbSqliteLoad().intialDB(); - var query = 'SELECT * FROM CIDADAO_DOMICILIO WHERE ID_DOMICILIO = "$ID_DOMICILIO"'; + var query = 'SELECT * FROM CIDADAO_DOMICILIO WHERE ID_DOMICILIO = $ID_DOMICILIO'; // var query = 'SELECT * FROM DOMICILIOS_CIDADAOS'; List list = await db.rawQuery(query); - print(list); + // print(list); return list; } Future buscaCidadao(NOME_CIDADAO)async{ @@ -469,7 +465,7 @@ class DBQuerys{ } Future updateCadastroIndividuais()async{ Map row = { - 'SINCRONIZADO' : 'S', + 'SINCRONIZADO': 'S', }; Database db = await DbSqliteLoad().intialDB(); await db.update('CADASTROS_INDIVIDUAIS', row,where: "SINCRONIZADO = 'N'"); diff --git a/lib/service/db/db_sqlite_sync.dart b/lib/service/db/db_sqlite_sync.dart index 4a8e8ac..c8d23f9 100644 --- a/lib/service/db/db_sqlite_sync.dart +++ b/lib/service/db/db_sqlite_sync.dart @@ -237,7 +237,7 @@ class DbSqliteSync{ } return db; } - Future insertCadastrosDomiciliares(var value)async{ + Future insertCadastrosDomiciliares(var value,String type,int ID_DOMICILIO,int ID_CIDADAO)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, @@ -250,53 +250,71 @@ class DbSqliteSync{ // "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++){ + if(type=='sync'){ + 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'], + 'CARGO_RESP_TECNICO_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')); + } + }else if(type=='new'){ + int id = await db.insert('CIDADAO_DOMICILIO', value); + print('novo id $id'); 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'], + 'ORIGEM' : 'A', + 'SINCRONIZADO': 'N' }; - int id = await db.insert('CIDADAO_DOMICILIO', row); - // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO'); - // print(await db.query('CIDADAO_DOMICILIO')); + await db.update('CIDADAOS', row,where: "ID_CIDADAO = $ID_CIDADAO"); + }else if(type=='update'){ + await db.update('CIDADAO_DOMICILIO', value,where: "ID_DOMICILIO = '$ID_DOMICILIO'"); + Map row = { + 'ORIGEM' : 'A', + 'SINCRONIZADO': 'N' + }; + await db.update('CIDADAOS', row,where: "ID_CIDADAO = $ID_CIDADAO"); } + return db; } - Future insertCadastrosIndividuais(var value,String type,String CD_USUARIO_SUS)async{ + Future insertCadastrosIndividuais(var value,String type,int ID_CIDADAO)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, @@ -423,7 +441,7 @@ class DbSqliteSync{ int id = await db.insert('CADASTROS_INDIVIDUAIS', value); // print('novo id $id'); }else if(type=='update'){ - await db.update('CADASTROS_INDIVIDUAIS', value,where: "CD_USUARIO_SUS = '$CD_USUARIO_SUS'"); + await db.update('CADASTROS_INDIVIDUAIS', value,where: "ID_CIDADAO = $ID_CIDADAO"); } return db; } diff --git a/lib/widgets/dropdown_button_city.dart b/lib/widgets/dropdown_button_city.dart index 632e732..01a279f 100644 --- a/lib/widgets/dropdown_button_city.dart +++ b/lib/widgets/dropdown_button_city.dart @@ -30,7 +30,7 @@ class DropDownButtonCity extends StatelessWidget { decoration: BoxDecoration( borderRadius: BorderRadius.circular(ConstVariable().radiusBorderInput), border: Border.all( - color: validator?ColorPalette.white:ColorPalette.red + color: validator?ColorPalette.red:ColorPalette.white ), color: ColorPalette.white ), @@ -42,6 +42,7 @@ class DropDownButtonCity extends StatelessWidget { value: value.nameCityFront, child: TextDefault( text: value.nameCityFront, + color: Colors.black54, ), ) ).toList(), @@ -53,7 +54,7 @@ class DropDownButtonCity extends StatelessWidget { alignment: Alignment.centerLeft, padding: EdgeInsets.symmetric(horizontal: 15), child: TextDefault( - text: validator?'':error, + text: validator?error:'', color: ColorPalette.red, fontSize: 12 ) diff --git a/lib/widgets/dropdown_with_subtitle.dart b/lib/widgets/dropdown_with_subtitle.dart index a4452d0..48b0f3c 100644 --- a/lib/widgets/dropdown_with_subtitle.dart +++ b/lib/widgets/dropdown_with_subtitle.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:rkm/widgets/text_default.dart'; import '../config/color_palette.dart'; import 'dropdown_button_default.dart'; @@ -36,17 +37,15 @@ class DropdownWithSubtitle extends StatelessWidget { padding: const EdgeInsets.symmetric(vertical: 5.0), child: Column( children: [ - // Container( - // width: widthSubtitle, - // height: 40, - // padding: const EdgeInsets.all(8.0), - // child: TextDefault( - // text: subtitle, - // color: ColorPalette.black54, - // fontSize: 18, - // fontWeigth: FontWeight.bold, - // ), - // ), + Container( + width: widthDropdown, + child: TextDefault( + textAlign: TextAlign.start, + text: subtitle, + color: ColorPalette.black54, + fontSize: 12, + ), + ), Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(5), diff --git a/lib/widgets/input_search_text.dart b/lib/widgets/input_search_text.dart index 7180048..c2dc91e 100644 --- a/lib/widgets/input_search_text.dart +++ b/lib/widgets/input_search_text.dart @@ -5,6 +5,7 @@ import '../config/const_variable.dart'; class InputSearchText extends StatelessWidget { var controller; double fontSize; + double fontSizeHint; String hint; double width; Color color; @@ -15,6 +16,7 @@ class InputSearchText extends StatelessWidget { required this.controller, required this.width, this.fontSize = 15.0, + this.fontSizeHint = 15.0, this.hint = '', this.color = ColorPalette.white, this.border = true, @@ -41,7 +43,7 @@ class InputSearchText extends StatelessWidget { hintText: this.hint, hintStyle: TextStyle( color: Colors.black, - fontSize: this.fontSize, + fontSize: this.fontSizeHint, ) ) ),