feito o cadastro do cidadão
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:line_icons/line_icons.dart';
|
||||
import 'package:rkm/screens/registers_citizen/register_citizen_screen.dart';
|
||||
import 'package:rkm/utils/const_variable.dart';
|
||||
import 'package:rkm/widgets/icon_button_default.dart';
|
||||
import 'package:rkm/widgets/input_search_text.dart';
|
||||
import '../service/db/db_sqlite_load.dart';
|
||||
import '../widgets/appbar_default.dart';
|
||||
import '../widgets/item_citizen.dart';
|
||||
import 'registers_citizen/main_register_citizen_screen.dart';
|
||||
|
||||
class HomeScreen extends StatefulWidget {
|
||||
const HomeScreen({Key? key}) : super(key: key);
|
||||
@@ -24,6 +24,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
loadCitizen()async{
|
||||
await DbSqliteLoad().intialDB().then((db)async {
|
||||
dataCitizen = await db.query('CIDADAOS ORDER BY NOME_CIDADAO');
|
||||
// print(await db.rawQuery("SELECT * FROM CIDADAOS WHERE NOME_PAI='REGINALDO OLIVEIRA'"));
|
||||
});
|
||||
searchCitizen();
|
||||
return 'complete';
|
||||
@@ -34,24 +35,25 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
showResults =[];
|
||||
for (int i =0;dataCitizen.length>i;i++) {
|
||||
String NOME_CIDADAO = '${dataCitizen[i]['NOME_CIDADAO']}';
|
||||
String CNS = '${dataCitizen[i]['CNS']}';
|
||||
String NUM_PRONTUARIO = '${dataCitizen[i]['NUM_PRONTUARIO']}';
|
||||
String CNS = '${dataCitizen[i]['CNS']}'==''?'999999':'${dataCitizen[i]['CNS']}';
|
||||
String NUM_PRONTUARIO = '${dataCitizen[i]['NUM_PRONTUARIO']}'==''?'null':'${dataCitizen[i]['NUM_PRONTUARIO']}';
|
||||
List splitted = '${dataCitizen[i]['DT_NASCIMENTO']}'.split('-');
|
||||
String DT_NASCIMENTO = '${splitted[2]}/${splitted[1]}/${splitted[0]}';
|
||||
String DT_NASCIMENTO = '00/00/0000';
|
||||
if( splitted.length==3){
|
||||
DT_NASCIMENTO = '${splitted[2]}/${splitted[1]}/${splitted[0]}';
|
||||
}
|
||||
if(
|
||||
NOME_CIDADAO.contains(inputSearch.text.toUpperCase()) ||
|
||||
NUM_PRONTUARIO.contains(inputSearch.text.toUpperCase()) ||
|
||||
DT_NASCIMENTO.contains(inputSearch.text.toUpperCase()) ||
|
||||
CNS.contains(inputSearch.text.toUpperCase())
|
||||
){
|
||||
print('ok $i');
|
||||
if(showResults.length<10){
|
||||
showResults.add(dataCitizen[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
setState(() {
|
||||
print(showResults);
|
||||
});
|
||||
}else{
|
||||
setState(() {
|
||||
@@ -71,6 +73,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
super.initState();
|
||||
loadCitizen();
|
||||
inputSearch.addListener(_searchInit);
|
||||
|
||||
}
|
||||
@override
|
||||
void dispose() {
|
||||
@@ -103,7 +106,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
icon: Icons.person_add,
|
||||
onPressed: ()=> Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => MainRegisterCitizenScreen(screens: 1,)),
|
||||
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(select: '')),
|
||||
)
|
||||
),
|
||||
IconButtonDefault(
|
||||
@@ -124,16 +127,20 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
itemBuilder: (context,index){
|
||||
|
||||
List splitted = '${showResults[index]['DT_NASCIMENTO']}'.split('-');
|
||||
String date='00/00/0000';
|
||||
if(splitted.length==3){
|
||||
date = '${splitted[2]}/${splitted[1]}/${splitted[0]}';
|
||||
}
|
||||
|
||||
return ItemCitizen(
|
||||
date: '${splitted[2]}/${splitted[1]}/${splitted[0]}',
|
||||
date: date,
|
||||
name: '${showResults[index]['NOME_CIDADAO']}',
|
||||
mother:'${showResults[index]['NOME_MAE']}',
|
||||
numberCNS: '${showResults[index]['CNS']}'=='null'?'999999999999999':'${showResults[index]['CNS']}',
|
||||
numberCNS: '${showResults[index]['CNS']}'=='null'||'${showResults[index]['CNS']}'==''?'999999999999999':'${showResults[index]['CNS']}',
|
||||
numberMedicalRecord: '${showResults[index]['NUM_PRONTUARIO']}',
|
||||
onTap: ()=> Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => MainRegisterCitizenScreen(screens: 3,)),
|
||||
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(select: '')),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -4,17 +4,11 @@ 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 LoadInitScreen extends StatefulWidget {
|
||||
ArgsLoadInitModel args;
|
||||
|
||||
LoadInitScreen({
|
||||
required this.args,
|
||||
});
|
||||
|
||||
@override
|
||||
State<LoadInitScreen> createState() => _LoadInitScreenState();
|
||||
@@ -26,81 +20,97 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
|
||||
String messageSteps = 'Aguarde ...';
|
||||
bool finish = false;
|
||||
String idUsuario = '';
|
||||
|
||||
String mode = '';
|
||||
String urlAPI = '';
|
||||
bool loading = false;
|
||||
String nameCityApi = '';
|
||||
String user = '';
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
initLoading();
|
||||
recupDB();
|
||||
}
|
||||
|
||||
recupDB()async{
|
||||
await DbSqliteLoad().intialDB().then((db)async{
|
||||
List list = await db.query('ARGS');
|
||||
urlAPI = list[0]['URLAPI'];
|
||||
mode = list[0]['MODE'];
|
||||
nameCityApi = list[0]['NAME_CITY_API'];
|
||||
user = list[0]['USER'];
|
||||
if(urlAPI!=''){
|
||||
initLoading();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
initLoading()async{
|
||||
await DbSqliteLoad().deleteLoad().then((_)async{
|
||||
await ApiDataLoad().loadPerm(widget.args).then((response)async{
|
||||
await ApiDataLoad().loadPerm(urlAPI,mode,nameCityApi,user).then((response)async{
|
||||
if(response['status'] == 0){
|
||||
AlertDialogDefault().alert(context, 'Erro', 'Permissão negada', 'Voltar');
|
||||
} else if(response['status'] == 1 && response['load_perm'] == "S") {
|
||||
idUsuario = response['idUsuario'].toString();
|
||||
print('idUsuario $idUsuario');
|
||||
_prefService.createCacheidUsuario(idUsuario).then((value)async{
|
||||
await ApiDataLoad().loadUnidades(widget.args).then((value)async{
|
||||
await ApiDataLoad().loadUnidades(urlAPI,mode,nameCityApi,user).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{
|
||||
await ApiDataLoad().loadProcedimentos(urlAPI,mode,nameCityApi,user).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 ApiDataLoad().loadProcedimentosRegistros(urlAPI,mode,nameCityApi,user).then((value)async{
|
||||
await DbSqliteLoad().saveProceduresRegisterDB(value).then((value)async{
|
||||
print('finalizou saveProceduresRegisterDB');
|
||||
await ApiDataLoad().loadCID(widget.args).then((value)async{
|
||||
await ApiDataLoad().loadCID(urlAPI,mode,nameCityApi,user).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{
|
||||
await ApiDataLoad().loadProcedimentosCID(urlAPI,mode,nameCityApi,user).then((value)async{
|
||||
print('loadProcedimentosCID');
|
||||
await DbSqliteLoad().saveProceduresCID(value).then((value)async{
|
||||
print('finalizou saveProceduresCID');
|
||||
await ApiDataLoad().loadCBO(widget.args).then((value)async{
|
||||
await ApiDataLoad().loadCBO(urlAPI,mode,nameCityApi,user).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{
|
||||
await ApiDataLoad().loadProcedimentosCBO(urlAPI,mode,nameCityApi,user).then((value)async{
|
||||
print('loadProcedimentosCBO');
|
||||
await DbSqliteLoad().saveProceduresCBO(value).then((value)async{
|
||||
print('finalizou saveProceduresCBO');
|
||||
await ApiDataLoad().loadCIAP(widget.args).then((value)async{
|
||||
await ApiDataLoad().loadCIAP(urlAPI,mode,nameCityApi,user).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{
|
||||
await ApiDataLoad().loadMunicipios(urlAPI,mode,nameCityApi,user).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{
|
||||
await ApiDataLoad().loadEquipes(urlAPI,mode,nameCityApi,user).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{
|
||||
await ApiDataLoad().loadEquipeComponentes(urlAPI,mode,nameCityApi,user).then((value)async{
|
||||
print('loadEquipeComponentes');
|
||||
await DbSqliteLoad().saveTeamComponents(value).then((value)async{
|
||||
print('finalizou saveTeamComponents');
|
||||
@@ -135,7 +145,6 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -157,7 +166,7 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
|
||||
onPressed: (){
|
||||
Navigator.pushReplacement(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => SyncLoginScreen(args: widget.args)),
|
||||
MaterialPageRoute(builder: (context) => SyncLoginScreen()),
|
||||
);
|
||||
},
|
||||
title: 'Continuar',
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:rkm/models/args_load_init_model.dart';
|
||||
import 'package:rkm/service/api/url_api_const.dart';
|
||||
import 'package:rkm/utils/color_palette.dart';
|
||||
import 'package:rkm/utils/const_variable.dart';
|
||||
@@ -7,9 +6,9 @@ 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_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 LoginLoadScreen extends StatefulWidget {
|
||||
@@ -28,13 +27,17 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
|
||||
String? selectCity;
|
||||
bool validatorDropDown= false;
|
||||
int contLogo = 0;
|
||||
String mode = 'desenvolvimento';
|
||||
String urlAPI = UrlApiConst.ApiUrlDesenvolvimento;
|
||||
String mode = 'homologacao';
|
||||
String urlAPI = UrlApiConst.ApiUrlHomologacao;
|
||||
bool loading = false;
|
||||
String nameCityApi = '';
|
||||
String nameCityFront = '';
|
||||
String codState = '';
|
||||
int codCity = 0;
|
||||
int codCityIbge = 0;
|
||||
|
||||
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);
|
||||
@@ -43,30 +46,34 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
|
||||
loading = true;
|
||||
for(int i=0;ConstVariable().itensCity.length > i;i++){
|
||||
if(ConstVariable().itensCity[i].nameCityFront == selectCity!){
|
||||
model = ConstVariable().itensCity[i];
|
||||
nameCityApi = ConstVariable().itensCity[i].nameCityApi;
|
||||
nameCityFront = ConstVariable().itensCity[i].nameCityFront;
|
||||
codCityIbge = ConstVariable().itensCity[i].codCityIbge;
|
||||
codCity = ConstVariable().itensCity[i].codCity;
|
||||
codState = ConstVariable().itensCity[i].codState;
|
||||
}
|
||||
}
|
||||
});
|
||||
if(model!=null){
|
||||
args = ArgsLoadInitModel(
|
||||
mode: mode,
|
||||
model:model!,
|
||||
user: inputUser.text,
|
||||
password: inputPassword.text,
|
||||
urlAPI: urlAPI
|
||||
);
|
||||
}
|
||||
if(args!=null){
|
||||
await ApiDataLoad().apiConect(args!).then((response) async {
|
||||
if(inputUser.text == inputPassword.text || response['bloqueio']==1){
|
||||
await ApiDataLoad().apiConect(urlAPI,mode,nameCityApi,inputUser.text).then((response) async {
|
||||
print("erre : "+response.toString());
|
||||
if(response == 'Erro' || response.toString() == 'Error: -902 - I/O error during "open" operation for file "/bases/conectasus/extrema/SISTEMA.FDB" Error while trying to open file No such file or directory'){
|
||||
setState(() {
|
||||
error = 'Usuário bloqueado/senha incorreta';
|
||||
loading = false;
|
||||
error = 'Erro na conexão!Verifique sua internet\n ou a cidade que está selecionada!';
|
||||
});
|
||||
}else if(inputUser.text == inputPassword.text || response['bloqueio']==1){
|
||||
setState(() {
|
||||
loading = false;
|
||||
error = 'Usuário bloqueado/usuário e/ou senha incorreta';
|
||||
});
|
||||
}else if(response['status']==0) {
|
||||
setState(() {
|
||||
loading = false;
|
||||
error = 'Usuário não encontrado';
|
||||
});
|
||||
}else if(response['status']==1) {
|
||||
print('aqui 1');
|
||||
print(response);
|
||||
setState((){
|
||||
error = '';
|
||||
});
|
||||
@@ -76,14 +83,37 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
|
||||
setState(() {
|
||||
loading = false;
|
||||
});
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => LoadInitScreen(args: args!)),
|
||||
);
|
||||
await DbSqliteLoad().deleteLoad().then((_)async {
|
||||
DbSqliteLoad().saveArgs(
|
||||
mode,
|
||||
inputUser.text,
|
||||
inputPassword.text,
|
||||
urlAPI,
|
||||
codCity,
|
||||
nameCityApi,
|
||||
nameCityFront,
|
||||
codState,
|
||||
codCityIbge).then((value) {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => LoadInitScreen()),
|
||||
);
|
||||
});
|
||||
});
|
||||
}else{
|
||||
setState(() {
|
||||
loading = false;
|
||||
error = 'Usuário bloqueado/senha incorreta';
|
||||
});
|
||||
}
|
||||
}else{
|
||||
setState(() {
|
||||
loading = false;
|
||||
error = 'Falha de conexão com API';
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}else{
|
||||
setState(() {
|
||||
error = 'Selecione sua cidade';
|
||||
@@ -158,7 +188,6 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
|
||||
InputText(
|
||||
hint: 'Usuário',
|
||||
label: inputUser.text.isNotEmpty?'':'Usuário',
|
||||
error: 'Campo obrigatório',
|
||||
controller: inputUser,
|
||||
width: width*0.6,
|
||||
colorBorder: Colors.white,
|
||||
@@ -167,7 +196,6 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
|
||||
InputText(
|
||||
hint: 'Senha',
|
||||
label: inputPassword.text.isNotEmpty?'':'Senha',
|
||||
error: 'Campo obrigatório',
|
||||
obscure: true,
|
||||
controller: inputPassword,
|
||||
width: width*0.6,
|
||||
@@ -195,7 +223,10 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
|
||||
width: width*0.6,
|
||||
),
|
||||
SizedBox(height: 10),
|
||||
TextDefault(text: error,color: ColorPalette.red),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 20.0),
|
||||
child: TextDefault(text: error,color: ColorPalette.red,maxLines: 3),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -1,29 +1,20 @@
|
||||
import 'dart:convert';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:rkm/models/args_load_init_model.dart';
|
||||
import 'package:rkm/screens/home_screen.dart';
|
||||
import 'package:rkm/screens/login/sync_login_screen.dart';
|
||||
import 'package:rkm/service/api/url_api_const.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';
|
||||
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_load.dart';
|
||||
import '../../service/api/encrypt_password.dart';
|
||||
import '../load_init_screen.dart';
|
||||
import '../../service/db/db_sqlite_load.dart';
|
||||
class LoginSavedScreen extends StatefulWidget {
|
||||
List listControl;
|
||||
ArgsLoadInitModel args;
|
||||
|
||||
LoginSavedScreen({
|
||||
required this.listControl,
|
||||
required this.args
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -39,23 +30,37 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
||||
bool validatorDropDown= false;
|
||||
int contLogo = 0;
|
||||
bool loading = false;
|
||||
String urlAPI='';
|
||||
String mode = '';
|
||||
String nameCityApi = '';
|
||||
String nameCityFront = '';
|
||||
int codCity = 0;
|
||||
int codCityIbge = 0;
|
||||
String codState = '';
|
||||
|
||||
recupDB()async{
|
||||
await DbSqliteLoad().intialDB().then((db)async{
|
||||
List list = await db.query('ARGS');
|
||||
urlAPI = list[0]['URLAPI'];
|
||||
mode = list[0]['MODE'];
|
||||
nameCityApi = list[0]['NAME_CITY_API'];
|
||||
nameCityFront = list[0]['NAME_CITY_FRONT'];
|
||||
inputUser.text = list[0]['USER'];
|
||||
inputPassword.text = list[0]['PASSWORD'];
|
||||
codCity = list[0]['COD_CITY'];
|
||||
codState = list[0]['COD_STATE'];
|
||||
codCityIbge = list[0]['COD_IBGE'];
|
||||
});
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
checkLogin()async{
|
||||
ArgsLoadInitModel? args;
|
||||
if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){
|
||||
setState(() {
|
||||
error = '';
|
||||
loading = true;
|
||||
});
|
||||
args = ArgsLoadInitModel(
|
||||
mode: widget.args.mode,
|
||||
model:widget.args.model,
|
||||
user: inputUser.text,
|
||||
password: inputPassword.text,
|
||||
urlAPI: widget.args.urlAPI
|
||||
);
|
||||
if(args!=null){
|
||||
await ApiDataLoad().apiConect(args!).then((response) async {
|
||||
await ApiDataLoad().apiConect(urlAPI,mode,nameCityApi,inputUser.text).then((response) async {
|
||||
if(inputUser.text == inputPassword.text || response['bloqueio']==1){
|
||||
setState(() {
|
||||
error = 'Usuário bloqueado/senha incorreta';
|
||||
@@ -71,17 +76,18 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
||||
//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;
|
||||
DbSqliteLoad().updateArgs(mode, inputUser.text, inputPassword.text).then((value){
|
||||
setState(() {
|
||||
loading = false;
|
||||
});
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => HomeScreen()),
|
||||
);
|
||||
});
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => HomeScreen()),
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}else{
|
||||
setState(() {
|
||||
error = 'Usuário/senha inválido(s)';
|
||||
@@ -89,6 +95,12 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
recupDB();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
@@ -108,7 +120,7 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
||||
onPressed: (){
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => SyncLoginScreen(args: widget.args)),
|
||||
MaterialPageRoute(builder: (context) => SyncLoginScreen()),
|
||||
);
|
||||
}
|
||||
)
|
||||
@@ -125,8 +137,8 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Image.asset('assets/images/logo.PNG',width: width*0.4),
|
||||
widget.args.mode == 'homologacao'?Image.asset('assets/images/homologacao.png',width: width*0.4):Container(),
|
||||
widget.args.mode == 'desenvolvimento'?Image.asset('assets/images/desenvolvimento.png',width: width*0.4):Container(),
|
||||
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),
|
||||
loading?Center(
|
||||
child: Column(
|
||||
@@ -147,7 +159,6 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
||||
InputText(
|
||||
hint: 'Usuário',
|
||||
label: inputUser.text.isNotEmpty?'':'Usuário',
|
||||
error: 'Campo obrigatório',
|
||||
controller: inputUser,
|
||||
width: width*0.6,
|
||||
colorBorder: Colors.white,
|
||||
@@ -156,7 +167,6 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
||||
InputText(
|
||||
hint: 'Senha',
|
||||
label: inputPassword.text.isNotEmpty?'':'Senha',
|
||||
error: 'Campo obrigatório',
|
||||
obscure: true,
|
||||
controller: inputPassword,
|
||||
width: width*0.6,
|
||||
@@ -210,7 +220,7 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
||||
padding: EdgeInsets.symmetric(vertical: 5),
|
||||
width: width*0.6,
|
||||
child: TextDefault(
|
||||
text: 'Área: '+widget.listControl[0]['AREA'].toString(),
|
||||
text: 'Área: '+widget.listControl[0]['AREA'].toString()+' - Microárea: '+widget.listControl[0]['MICROAREA'].toString(),
|
||||
fontWeigth: FontWeight.bold,
|
||||
color: Colors.black,
|
||||
textAlign: TextAlign.center,
|
||||
|
||||
@@ -1,28 +1,17 @@
|
||||
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';
|
||||
import 'package:rkm/widgets/button_default.dart';
|
||||
import 'package:rkm/widgets/dropdown_button_city.dart';
|
||||
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_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;
|
||||
|
||||
SyncLoginScreen({
|
||||
required this.args
|
||||
});
|
||||
|
||||
@override
|
||||
State<SyncLoginScreen> createState() => _SyncLoginScreenState();
|
||||
@@ -39,17 +28,30 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
||||
bool validatorDropDown= false;
|
||||
bool citizenOutArea = false;
|
||||
int contLogo = 0;
|
||||
String mode = 'desenvolvimento';
|
||||
String urlAPI = UrlApiConst.ApiUrlDesenvolvimento;
|
||||
String mode = '';
|
||||
String urlAPI = '';
|
||||
String nameCityApi = '';
|
||||
bool loading = false;
|
||||
List<String> listUnit=[];
|
||||
List searchUnitCodList=[];
|
||||
List<String> listTeam = [];
|
||||
String idUnidade ='';
|
||||
String idUsuario ='';
|
||||
String idUsuario ='1';
|
||||
|
||||
final PrefService _prefService = PrefService();
|
||||
|
||||
recupDB()async{
|
||||
await DbSqliteLoad().intialDB().then((db)async{
|
||||
List list = await db.query('ARGS');
|
||||
urlAPI = list[0]['URLAPI'];
|
||||
mode = list[0]['MODE'];
|
||||
nameCityApi = list[0]['NAME_CITY_API'];
|
||||
inputUser.text = list[0]['USER'];
|
||||
inputPassword.text = list[0]['PASSWORD'];
|
||||
});
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
checkLogin()async{
|
||||
if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){
|
||||
if(selectUnit!=null){
|
||||
@@ -58,7 +60,7 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
||||
loading = true;
|
||||
});
|
||||
|
||||
await ApiDataLoad().apiConect(widget.args!).then((response) async {
|
||||
await ApiDataLoad().apiConect(urlAPI,mode,nameCityApi,inputUser.text).then((response) async {
|
||||
if(inputUser.text == inputPassword.text || response['bloqueio']==1){
|
||||
setState(() {
|
||||
error = 'Usuário bloqueado/senha incorreta';
|
||||
@@ -75,18 +77,13 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
||||
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) => SyncInitScreen(args: args)),
|
||||
);
|
||||
DbSqliteLoad().updateArgs(mode, inputUser.text, inputPassword.text).then((value) {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => SyncInitScreen()),
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -106,13 +103,9 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
setState(() {
|
||||
mode = widget.args.mode;
|
||||
inputUser.text = widget.args.user;
|
||||
inputPassword.text = widget.args.password;
|
||||
});
|
||||
recupDB();
|
||||
getUnit();
|
||||
getUser();
|
||||
// getUser();
|
||||
}
|
||||
getUser(){
|
||||
_prefService.readCacheIdUsuario('idUsuario').then((value){
|
||||
@@ -136,24 +129,28 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
||||
}
|
||||
|
||||
getTeam()async{
|
||||
Database db = await DbSqliteLoad().intialDB();
|
||||
for(int i=0; listUnit.length > i;i++){
|
||||
if(listUnit[i] == selectUnit){
|
||||
idUnidade = searchUnitCodList[i].toString();
|
||||
_prefService.createCacheidUnidade(idUnidade);
|
||||
_prefService.createCacheUnidade(idUnidade,selectUnit!);
|
||||
}
|
||||
}
|
||||
if(idUnidade!=''){
|
||||
Database db = await DbSqliteLoad().intialDB();
|
||||
print('idUnidade');
|
||||
print(idUnidade);
|
||||
print('idUsuario');
|
||||
print(idUsuario);
|
||||
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(() {});
|
||||
}
|
||||
print('listTeam');
|
||||
print(listTeam);
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -200,7 +197,6 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
||||
InputText(
|
||||
hint: 'Usuário',
|
||||
label: inputUser.text.isNotEmpty?'':'Usuário',
|
||||
error: 'Campo obrigatório',
|
||||
controller: inputUser,
|
||||
width: width*0.6,
|
||||
colorBorder: Colors.white,
|
||||
@@ -209,7 +205,6 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
||||
InputText(
|
||||
hint: 'Senha',
|
||||
label: inputPassword.text.isNotEmpty?'':'Senha',
|
||||
error: 'Campo obrigatório',
|
||||
obscure: true,
|
||||
controller: inputPassword,
|
||||
width: width*0.6,
|
||||
@@ -266,7 +261,8 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
||||
padding: EdgeInsets.symmetric(vertical: 5),
|
||||
width: width*0.6,
|
||||
child: TextDefault(
|
||||
text: 'Cidade Sincronizada: ${widget.args.model.nameCityFront!=''?widget.args.model.nameCityFront:''}',
|
||||
text: '',
|
||||
// text: 'Cidade Sincronizada: ${widget.args!.model.nameCityFront!=''?widget.args!.model.nameCityFront:''}',
|
||||
fontWeigth: FontWeight.bold,
|
||||
fontSize: 18,
|
||||
color: Colors.black,
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:rkm/screens/registers_citizen/register_citizen_screen.dart';
|
||||
import 'package:rkm/screens/register_home_screen.dart';
|
||||
import 'package:rkm/screens/registers_citizen/register_individual_screen.dart';
|
||||
import 'package:rkm/utils/color_palette.dart';
|
||||
import 'package:rkm/widgets/text_default.dart';
|
||||
import '../../widgets/alert_dialog_settings.dart';
|
||||
import '../../widgets/icon_button_default.dart';
|
||||
|
||||
class MainRegisterCitizenScreen extends StatefulWidget {
|
||||
int screens;
|
||||
MainRegisterCitizenScreen({
|
||||
required this.screens
|
||||
});
|
||||
|
||||
@override
|
||||
State<MainRegisterCitizenScreen> createState() => _MainRegisterCitizenScreenState();
|
||||
}
|
||||
|
||||
class _MainRegisterCitizenScreenState extends State<MainRegisterCitizenScreen> {
|
||||
|
||||
int index = 1;
|
||||
|
||||
TabBar get _tabBar => TabBar(
|
||||
labelColor: index==1?ColorPalette.gray:ColorPalette.blackButton,
|
||||
unselectedLabelColor: ColorPalette.gray,
|
||||
indicatorColor: ColorPalette.white,
|
||||
tabs: [
|
||||
Tab(text: 'Cadastro Cidadão',icon: Icon(Icons.person),iconMargin: EdgeInsets.zero,height: 50,),
|
||||
Tab(text: 'Cadastro Individual',icon: Icon(Icons.article),iconMargin: EdgeInsets.zero,height: 40,),
|
||||
Tab(text: 'Cadastro Domiciliar',icon: Icon(Icons.home),iconMargin: EdgeInsets.zero,height: 40,)
|
||||
],
|
||||
);
|
||||
|
||||
updateIndex(){
|
||||
setState(() {
|
||||
index = widget.screens;
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
updateIndex();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) =>DefaultTabController(
|
||||
length: index,
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: TextDefault(text: 'RKM AB - Cadastro Cidadão',color: ColorPalette.white,),
|
||||
centerTitle: true,
|
||||
actions: [
|
||||
IconButtonDefault(
|
||||
icon: Icons.settings,
|
||||
color: ColorPalette.white,
|
||||
onPressed: ()=>AlertDialogSettings().alert(context)
|
||||
),
|
||||
IconButtonDefault(
|
||||
icon: Icons.logout,
|
||||
color: ColorPalette.white,
|
||||
onPressed: ()=>Navigator.pushNamedAndRemoveUntil(context, '/login',(Route<dynamic> route) => false)),
|
||||
],
|
||||
bottom: PreferredSize(
|
||||
preferredSize: _tabBar.preferredSize,
|
||||
child: Material(
|
||||
color: ColorPalette.white, //<-- SEE HERE
|
||||
child: _tabBar,
|
||||
),
|
||||
),
|
||||
),
|
||||
body:index==1 ?
|
||||
TabBarView(
|
||||
children: [
|
||||
RegisterCitizenScreen(),
|
||||
],
|
||||
):TabBarView(
|
||||
children: [
|
||||
RegisterCitizenScreen(),
|
||||
RegisterIndividualScreen(),
|
||||
RegisterHomeScreen(),
|
||||
],
|
||||
),
|
||||
)
|
||||
);
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,11 +5,13 @@ import 'package:rkm/utils/const_variable.dart';
|
||||
import 'package:rkm/widgets/alert_dialog_default.dart';
|
||||
import 'package:rkm/widgets/button_default.dart';
|
||||
import 'package:rkm/widgets/title_containers.dart';
|
||||
import '../widgets/dropdown_with_subtitle.dart';
|
||||
import '../widgets/input_with_subtitle.dart';
|
||||
import '../widgets/onbackbutton.dart';
|
||||
import '../widgets/switch_with_subtitle.dart';
|
||||
import '../widgets/text_default.dart';
|
||||
import '../../widgets/appbar_default.dart';
|
||||
import '../../widgets/dropdown_with_subtitle.dart';
|
||||
import '../../widgets/input_with_subtitle.dart';
|
||||
import '../../widgets/onbackbutton.dart';
|
||||
import '../../widgets/subtitle_appbar_citizen.dart';
|
||||
import '../../widgets/switch_with_subtitle.dart';
|
||||
import '../../widgets/text_default.dart';
|
||||
class RegisterHomeScreen extends StatefulWidget {
|
||||
const RegisterHomeScreen({Key? key}) : super(key: key);
|
||||
|
||||
@@ -162,12 +164,14 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
return WillPopScope(
|
||||
onWillPop: ()=> OnBackButton().onBackButton(context),
|
||||
child: Scaffold(
|
||||
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Domiciliar'),
|
||||
body: Container(
|
||||
height: double.infinity,
|
||||
width: double.infinity,
|
||||
decoration: ConstVariable().backgroundGradient,
|
||||
child: ListView(
|
||||
children: [
|
||||
SubtitleAppbarCitizen(title: 3,edit: true),
|
||||
Card(
|
||||
margin: EdgeInsets.all(10),
|
||||
child: Padding(
|
||||
@@ -295,7 +299,8 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
labelInput: 'Moradores',
|
||||
widthSubtitle: width*0.4,
|
||||
widthInput: width*0.7,
|
||||
controller: controllerResidents
|
||||
controller: controllerResidents,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
InputWithSubtitle(
|
||||
subtitle: 'Cômodos',
|
||||
@@ -304,7 +309,8 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
labelInput: 'Cômodos',
|
||||
widthSubtitle: width*0.4,
|
||||
widthInput: width*0.7,
|
||||
controller: controllerComfortable
|
||||
controller: controllerComfortable,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
DropdownWithSubtitle(
|
||||
list:[],
|
||||
@@ -419,7 +425,8 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
labelInput: 'Quantidade',
|
||||
widthSubtitle: width*0.4,
|
||||
widthInput: width*0.7,
|
||||
controller: controllerAmount
|
||||
controller: controllerAmount,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
],
|
||||
)
|
||||
@@ -454,6 +461,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
widthInput: width*0.7,
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
InputWithSubtitle(
|
||||
controller: unitProfessionalController,
|
||||
@@ -463,6 +471,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
widthInput: width*0.7,
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
DropdownWithSubtitle(
|
||||
subtitle: 'CBO',
|
||||
@@ -501,6 +510,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: false,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -6,10 +6,12 @@ import 'package:rkm/utils/const_variable.dart';
|
||||
import 'package:rkm/widgets/alert_dialog_default.dart';
|
||||
import 'package:rkm/widgets/button_default.dart';
|
||||
import 'package:rkm/widgets/title_containers.dart';
|
||||
import '../../widgets/appbar_default.dart';
|
||||
import '../../widgets/check_box_two_subtitle.dart';
|
||||
import '../../widgets/dropdown_with_subtitle.dart';
|
||||
import '../../widgets/input_with_subtitle.dart';
|
||||
import '../../widgets/onbackbutton.dart';
|
||||
import '../../widgets/subtitle_appbar_citizen.dart';
|
||||
import '../../widgets/switch_with_subtitle.dart';
|
||||
import '../../widgets/text_default.dart';
|
||||
class RegisterIndividualScreen extends StatefulWidget {
|
||||
@@ -145,12 +147,14 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
return WillPopScope(
|
||||
onWillPop: ()=> OnBackButton().onBackButton(context),
|
||||
child: Scaffold(
|
||||
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Individual'),
|
||||
body: Container(
|
||||
height: double.infinity,
|
||||
width: double.infinity,
|
||||
decoration: ConstVariable().backgroundGradient,
|
||||
child: ListView(
|
||||
children: [
|
||||
SubtitleAppbarCitizen(title: 2,edit: true),
|
||||
Card(
|
||||
margin: EdgeInsets.all(10),
|
||||
child: Padding(
|
||||
@@ -255,6 +259,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthSubtitle: width*0.2,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: enableSpouse,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
DropdownWithSubtitle(
|
||||
list: [],
|
||||
@@ -279,6 +284,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthSubtitle: width*0.2,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: enableSpouse,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
InputWithSubtitle(
|
||||
controller: enterBrazilController,
|
||||
@@ -289,6 +295,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthSubtitle: width*0.2,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: enableSpouse,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
InputWithSubtitle(
|
||||
controller: dateNaturalnessController,
|
||||
@@ -299,6 +306,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthSubtitle: width*0.2,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: enableSpouse,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
InputWithSubtitle(
|
||||
controller: porterNaturalnessController,
|
||||
@@ -309,6 +317,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthSubtitle: width*0.2,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: enableSpouse,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
DropdownWithSubtitle(
|
||||
list:['SUPERIOR, APERFEIÇAOMENTO,ESPECIAL'],
|
||||
@@ -440,6 +449,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthSubtitle: width*0.2,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: enableSpouse,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
DropdownWithSubtitle(
|
||||
list: ['NÃO DESEJA INFORMAR'],
|
||||
@@ -560,6 +570,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthSubtitle: width*0.2,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: enableSpouse,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
SwitchWithSubtitle(
|
||||
width: width*0.7,
|
||||
@@ -621,6 +632,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: false,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
DropdownWithSubtitle(
|
||||
list: [],
|
||||
@@ -789,6 +801,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: false,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
DropdownWithSubtitle(
|
||||
subtitle: 'Doença Cardíaca',
|
||||
@@ -899,6 +912,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: false,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
InputWithSubtitle(
|
||||
controller: otherCondicionsController,
|
||||
@@ -909,6 +923,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: false,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -974,6 +989,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: false,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
SwitchWithSubtitle(
|
||||
width: width*0.7,
|
||||
@@ -1023,6 +1039,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: false,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
DropdownWithSubtitle(
|
||||
subtitle: 'Alimentação Diária',
|
||||
@@ -1132,6 +1149,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthInput: width*0.7,
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
InputWithSubtitle(
|
||||
controller: unitProfessionalController,
|
||||
@@ -1141,6 +1159,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthInput: width*0.7,
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
DropdownWithSubtitle(
|
||||
subtitle: 'CBO',
|
||||
@@ -1179,6 +1198,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: false,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -101,6 +101,7 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: false,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
InputWithSubtitle(
|
||||
controller: unitController,
|
||||
@@ -111,6 +112,7 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
enable: false,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
DropdownWithSubtitle(
|
||||
list: [],
|
||||
|
||||
@@ -214,6 +214,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
||||
widthInput: width*0.7,
|
||||
controller: weigthController,
|
||||
colorBorder: ColorPalette.white,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
InputWithSubtitle(
|
||||
subtitle: 'Altura (em metros - 0,00)',
|
||||
@@ -224,6 +225,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
||||
widthInput: width*0.7,
|
||||
controller: heightController,
|
||||
colorBorder: ColorPalette.white,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
InputWithSubtitle(
|
||||
subtitle: 'Perímetro cefálico (em centímetros - 000,00)',
|
||||
@@ -234,6 +236,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
||||
widthInput: width*0.7,
|
||||
controller: cephalicPerimeterController,
|
||||
colorBorder: ColorPalette.white,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
SwitchWithSubtitle(
|
||||
width: width*0.7,
|
||||
@@ -285,6 +288,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
||||
controller: userResponsibleRegisterController,
|
||||
colorBorder: ColorPalette.white,
|
||||
enable: false,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
InputWithSubtitle(
|
||||
subtitle: 'Unidade do Profissional',
|
||||
@@ -296,6 +300,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
||||
controller: userUnitController,
|
||||
colorBorder: ColorPalette.white,
|
||||
enable: false,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
DropdownWithSubtitle(
|
||||
list: [],
|
||||
@@ -356,6 +361,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
||||
controller: dumController,
|
||||
colorBorder: ColorPalette.white,
|
||||
enable: false,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
SwitchWithSubtitle(
|
||||
onChanged: (value){},
|
||||
@@ -373,6 +379,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
||||
controller: oldPregnancyController,
|
||||
colorBorder: ColorPalette.white,
|
||||
enable: false,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
InputWithSubtitle(
|
||||
subtitle: 'Partos',
|
||||
@@ -384,6 +391,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
||||
controller: childBirthsController,
|
||||
colorBorder: ColorPalette.white,
|
||||
enable: false,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
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/login/sync_login_screen.dart';
|
||||
import 'package:rkm/service/api/url_api_const.dart';
|
||||
import 'package:rkm/utils/const_variable.dart';
|
||||
@@ -18,20 +16,19 @@ class SplashScreen extends StatefulWidget {
|
||||
|
||||
class _SplashScreenState extends State<SplashScreen> {
|
||||
|
||||
CityLoadModel? model;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
DbSqliteLoad().intialDB();
|
||||
final PrefService _prefService = PrefService();
|
||||
_prefService.readCacheModel('user', 'password', 'city', 'mode').then((list){
|
||||
for(int i=0;ConstVariable().itensCity.length > i;i++){
|
||||
if(ConstVariable().itensCity[i].nameCityFront == list[2]!){
|
||||
model = ConstVariable().itensCity[i];
|
||||
DbSqliteLoad().intialDB().then((value){
|
||||
final PrefService _prefService = PrefService();
|
||||
_prefService.readCacheModel('user', 'password', 'city', 'mode').then((list){
|
||||
if(list[0] == null){
|
||||
Navigator.pushReplacementNamed(context, '/login_load');
|
||||
}else{
|
||||
timer(list);
|
||||
}
|
||||
}
|
||||
timer(list);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -42,39 +39,25 @@ class _SplashScreenState extends State<SplashScreen> {
|
||||
if(dataControl.length != 0){
|
||||
var query = "SELECT * FROM CONTROLE_INTERNO";
|
||||
dataControl = await db.rawQuery(query);
|
||||
// print(dataCitizen);
|
||||
String? url;
|
||||
if(list[3]=='desenvolvimento'){
|
||||
url = UrlApiConst.ApiUrlDesenvolvimento;
|
||||
}else if(list[3]=='homologacao'){
|
||||
url = UrlApiConst.ApiUrlHomologacao;
|
||||
}else{
|
||||
url = UrlApiConst.ApiUrlOnline;
|
||||
}
|
||||
if(dataCitizen.length != 0){
|
||||
String? url;
|
||||
if(list[3]=='desenvolvimento'){
|
||||
url = UrlApiConst.ApiUrlDesenvolvimento;
|
||||
}else if(list[3]=='online'){
|
||||
url = UrlApiConst.ApiUrlOnline;
|
||||
}else if(list[3]=='homologacao'){
|
||||
url = UrlApiConst.ApiUrlHomologacao;
|
||||
}
|
||||
ArgsLoadInitModel args = ArgsLoadInitModel(mode: list[3], model: model!, user: list[0], password: list[1], urlAPI: url!);
|
||||
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => LoginSavedScreen(listControl: dataControl,args: args,)),
|
||||
MaterialPageRoute(builder: (context) => LoginSavedScreen(listControl: dataControl,)),
|
||||
);
|
||||
}else{
|
||||
String? url;
|
||||
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)),
|
||||
MaterialPageRoute(builder: (context) => SyncLoginScreen()),
|
||||
);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
Navigator.pushReplacementNamed(context, '/login_load');
|
||||
}
|
||||
|
||||
@@ -6,17 +6,10 @@ 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<SyncInitScreen> createState() => _SyncInitScreenState();
|
||||
@@ -29,24 +22,51 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
|
||||
bool finish = false;
|
||||
String idUsuario = '';
|
||||
String idUnidade = '';
|
||||
String nomeUnidade = '';
|
||||
String area = '';
|
||||
String microarea = '';
|
||||
bool foraArea = false;
|
||||
String urlAPI='';
|
||||
String mode = '';
|
||||
String nameCityApi = '';
|
||||
String nameCityFront = '';
|
||||
String user = '';
|
||||
int codCity = 0;
|
||||
int codCityIbge = 0;
|
||||
String codState = '';
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
dataUser();
|
||||
recupDB();
|
||||
}
|
||||
|
||||
recupDB()async{
|
||||
await DbSqliteLoad().intialDB().then((db)async{
|
||||
List list = await db.query('ARGS');
|
||||
urlAPI = list[0]['URLAPI'];
|
||||
mode = list[0]['MODE'];
|
||||
nameCityApi = list[0]['NAME_CITY_API'];
|
||||
nameCityFront = list[0]['NAME_CITY_FRONT'];
|
||||
user = list[0]['USER'];
|
||||
codCity = list[0]['COD_CITY'];
|
||||
codState = list[0]['COD_STATE'];
|
||||
codCityIbge = list[0]['COD_IBGE'];
|
||||
if(urlAPI!=''){
|
||||
dataUser();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
dataUser()async{
|
||||
_prefService.readCacheIdUnidade('idUnidade').then((id)async{
|
||||
_prefService.readCacheUnidade('idUnidade').then((listUnidade)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;
|
||||
idUnidade = listUnidade[0];
|
||||
nomeUnidade = listUnidade[1];
|
||||
initSync();
|
||||
});
|
||||
});
|
||||
@@ -54,75 +74,75 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
|
||||
|
||||
initSync()async{
|
||||
await DbSqliteSync().deleteSync().then((_)async{
|
||||
await ApiDataSync().syncPerm(widget.args).then((response)async{
|
||||
await ApiDataSync().syncPerm(urlAPI,mode,nameCityApi,user).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{
|
||||
await ApiDataSync().syncBairros(urlAPI,mode,nameCityApi,user).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{
|
||||
await ApiDataSync().syncTiposLogradouros(urlAPI,mode,nameCityApi,user).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{
|
||||
await ApiDataSync().syncLogradouros(urlAPI,mode,nameCityApi,user).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{
|
||||
await ApiDataSync().syncLoteamentos(urlAPI,mode,nameCityApi,user).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{
|
||||
await ApiDataSync().syncProfissionais(urlAPI,mode,nameCityApi,user,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{
|
||||
await ApiDataSync().syncProfissionaisCBOs(urlAPI,mode,nameCityApi,user,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{
|
||||
await ApiDataSync().syncCidadaos(urlAPI,mode,nameCityApi,user,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{
|
||||
await DbSqliteSync().insertCidadaos(value,'sync').then((value)async{
|
||||
await ApiDataSync().syncCadastrosDomiciliares(urlAPI,mode,nameCityApi,user,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{
|
||||
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).then((value)async{
|
||||
await DbSqliteSync().saveSync(widget.args,idUnidade,area,microarea).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');
|
||||
});
|
||||
});
|
||||
@@ -167,7 +187,7 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
|
||||
onPressed: (){
|
||||
Navigator.pushReplacement(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => SyncLoginScreen(args: widget.args)),
|
||||
MaterialPageRoute(builder: (context) => SyncLoginScreen()),
|
||||
);
|
||||
},
|
||||
title: 'Continuar',
|
||||
|
||||
Reference in New Issue
Block a user