ciada a tela sync_init_screen.dart com a api_data_sync.dart, shared_preferences_service.dart e db_sqlite_sync.dart
This commit is contained in:
@@ -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<LoadInitScreen> {
|
||||
|
||||
final PrefService _prefService = PrefService();
|
||||
String messageSteps = 'Aguarde ...';
|
||||
bool finish = false;
|
||||
String idUsuario = '';
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -31,77 +34,81 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
|
||||
}
|
||||
|
||||
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<LoadInitScreen> {
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}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<LoadInitScreen> {
|
||||
onPressed: (){
|
||||
Navigator.pushReplacement(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => SyncUnitScreen(args: widget.args)),
|
||||
MaterialPageRoute(builder: (context) => SyncLoginScreen(args: widget.args)),
|
||||
);
|
||||
},
|
||||
title: 'Continuar',
|
||||
|
||||
@@ -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<LoginLoadScreen> {
|
||||
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<LoginLoadScreen> {
|
||||
);
|
||||
}
|
||||
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';
|
||||
@@ -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<LoginSavedScreen> {
|
||||
);
|
||||
}
|
||||
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';
|
||||
@@ -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<SyncUnitScreen> createState() => _SyncUnitScreenState();
|
||||
State<SyncLoginScreen> createState() => _SyncLoginScreenState();
|
||||
}
|
||||
|
||||
class _SyncUnitScreenState extends State<SyncUnitScreen> {
|
||||
class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
||||
|
||||
var inputUser = TextEditingController();
|
||||
var inputPassword = TextEditingController();
|
||||
@@ -35,63 +37,60 @@ class _SyncUnitScreenState extends State<SyncUnitScreen> {
|
||||
String? selectUnit;
|
||||
String? selectTeam;
|
||||
bool validatorDropDown= false;
|
||||
bool citizenOutArea = false;
|
||||
int contLogo = 0;
|
||||
String mode = 'desenvolvimento';
|
||||
String urlAPI = UrlApiConst.ApiUrlDesenvolvimento;
|
||||
bool loading = false;
|
||||
List<String> listUnit=[];
|
||||
List searchUnitCodList=[];
|
||||
List listTeam = [];
|
||||
List<String> 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<SyncUnitScreen> {
|
||||
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<SyncUnitScreen> {
|
||||
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<SyncUnitScreen> {
|
||||
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<SyncUnitScreen> {
|
||||
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<SyncUnitScreen> {
|
||||
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<SyncUnitScreen> {
|
||||
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<SyncUnitScreen> {
|
||||
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),
|
||||
],
|
||||
),
|
||||
@@ -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<SplashScreen> {
|
||||
@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');
|
||||
|
||||
231
lib/screens/sync_init_screen.dart
Normal file
231
lib/screens/sync_init_screen.dart
Normal file
@@ -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<SyncInitScreen> createState() => _SyncInitScreenState();
|
||||
}
|
||||
|
||||
class _SyncInitScreenState extends State<SyncInitScreen> {
|
||||
|
||||
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,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user