feito o cadastro do cidadão
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.ab.rkm.rkm">
|
package="com.ab.rkm.rkm">
|
||||||
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<application
|
<application
|
||||||
|
android:usesCleartextTraffic="true"
|
||||||
android:label="RKMAB"
|
android:label="RKMAB"
|
||||||
android:name="${applicationName}"
|
android:name="${applicationName}"
|
||||||
android:icon="@mipmap/ic_launcher">
|
android:icon="@mipmap/ic_launcher">
|
||||||
|
|||||||
9
lib/controllers/format_txt.dart
Normal file
9
lib/controllers/format_txt.dart
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import 'package:flutter/services.dart';
|
||||||
|
|
||||||
|
class FormatText extends TextInputFormatter{
|
||||||
|
@override
|
||||||
|
TextEditingValue formatEditUpdate(
|
||||||
|
TextEditingValue txtOdl,TextEditingValue txtNew){
|
||||||
|
return txtNew.copyWith(text: txtNew.text.toUpperCase());
|
||||||
|
}
|
||||||
|
}
|
||||||
144
lib/controllers/main_controllers.dart
Normal file
144
lib/controllers/main_controllers.dart
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
import 'package:get/get.dart';
|
||||||
|
import 'package:rkm/service/db/db_querys.dart';
|
||||||
|
|
||||||
|
class MainControllers{
|
||||||
|
validaCNS(String cns)async{
|
||||||
|
//valido provisório 783107557570002
|
||||||
|
//cns valido def 187455333020009
|
||||||
|
String response = 'CNS inválido';
|
||||||
|
String type = cns.substring(0,1);
|
||||||
|
if(type == '7'|| type =='8' || type == '9'){
|
||||||
|
response = await validaCNSProv(cns);
|
||||||
|
}else{
|
||||||
|
response = validaCNSDef(cns);
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
validaCNSProv(String vlrCNS)async{
|
||||||
|
int resto;
|
||||||
|
int soma;
|
||||||
|
if(vlrCNS.length == 15){
|
||||||
|
// print('pis');
|
||||||
|
// print(vlrCNS);
|
||||||
|
soma = ((int.parse(vlrCNS.substring( 0, 1))) * 15)
|
||||||
|
+ ((int.parse(vlrCNS.substring( 1, 2))) * 14)
|
||||||
|
+ ((int.parse(vlrCNS.substring( 2, 3))) * 13)
|
||||||
|
+ ((int.parse(vlrCNS.substring( 3, 4))) * 12)
|
||||||
|
+ ((int.parse(vlrCNS.substring( 4, 5))) * 11)
|
||||||
|
+ ((int.parse(vlrCNS.substring( 5, 6))) * 10)
|
||||||
|
+ ((int.parse(vlrCNS.substring( 6, 7))) * 9)
|
||||||
|
+ ((int.parse(vlrCNS.substring( 7, 8))) * 8)
|
||||||
|
+ ((int.parse(vlrCNS.substring( 8, 9))) * 7)
|
||||||
|
+ ((int.parse(vlrCNS.substring( 9,10))) * 6)
|
||||||
|
+ ((int.parse(vlrCNS.substring(10,11))) * 5)
|
||||||
|
+ ((int.parse(vlrCNS.substring(11,12))) * 4)
|
||||||
|
+ ((int.parse(vlrCNS.substring(12,13))) * 3)
|
||||||
|
+ ((int.parse(vlrCNS.substring(13,14))) * 2)
|
||||||
|
+ ((int.parse(vlrCNS.substring(14,15))) * 1);
|
||||||
|
|
||||||
|
resto = soma % 11;
|
||||||
|
// print('soma');
|
||||||
|
// print(soma);
|
||||||
|
// print('resto');
|
||||||
|
// print(resto);
|
||||||
|
if (resto == 0)
|
||||||
|
{
|
||||||
|
// CNS provisório válido
|
||||||
|
List result = await DBQuerys().duplicidadeCNS(vlrCNS);
|
||||||
|
if(result.length==0){
|
||||||
|
return 'ok';
|
||||||
|
}else{
|
||||||
|
return 'CNS duplicado';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// CNS provisório inválido
|
||||||
|
return 'CNS provisório inválido';
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(vlrCNS.length< 15){
|
||||||
|
return 'CNS inválido! Faltando números';
|
||||||
|
}else{
|
||||||
|
return 'CNS inválido! Sobrando números';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
validaCNSDef(String vlrCNS){
|
||||||
|
int soma = 0;
|
||||||
|
int resto = 0;
|
||||||
|
int dv = 0;
|
||||||
|
String pis = '';
|
||||||
|
String resultado = '';
|
||||||
|
|
||||||
|
if(vlrCNS.length == 15){
|
||||||
|
pis = vlrCNS.substring(0,11);
|
||||||
|
soma = (int.parse(pis.substring(0,1)) * 15) +
|
||||||
|
((int.parse(pis.substring(1,2))) * 14) +
|
||||||
|
((int.parse(pis.substring(2,3))) * 13) +
|
||||||
|
((int.parse(pis.substring(3,4))) * 12) +
|
||||||
|
((int.parse(pis.substring(4,5))) * 11) +
|
||||||
|
((int.parse(pis.substring(5,6))) * 10) +
|
||||||
|
((int.parse(pis.substring(6,7))) * 9) +
|
||||||
|
((int.parse(pis.substring(7,8))) * 8) +
|
||||||
|
((int.parse(pis.substring(8,9))) * 7) +
|
||||||
|
((int.parse(pis.substring(9,10))) * 6) +
|
||||||
|
((int.parse(pis.substring(10,11))) * 5);
|
||||||
|
resto = soma % 11;
|
||||||
|
dv = 11 - resto;
|
||||||
|
if (dv == 11) {
|
||||||
|
dv = 0;
|
||||||
|
}
|
||||||
|
if (dv == 10) {
|
||||||
|
soma = (((int.parse(pis.substring(0,1))) * 15) +
|
||||||
|
((int.parse(pis.substring(1,2))) * 14) +
|
||||||
|
((int.parse(pis.substring(2,3))) * 13) +
|
||||||
|
((int.parse(pis.substring(3,4))) * 12) +
|
||||||
|
((int.parse(pis.substring(4,5))) * 11) +
|
||||||
|
((int.parse(pis.substring(5,6))) * 10) +
|
||||||
|
((int.parse(pis.substring(6,7))) * 9) +
|
||||||
|
((int.parse(pis.substring(7,8))) * 8) +
|
||||||
|
((int.parse(pis.substring(8,9))) * 7) +
|
||||||
|
((int.parse(pis.substring(9,10))) * 6) +
|
||||||
|
((int.parse(pis.substring(10,11))) * 5) + 2);
|
||||||
|
resto = soma % 11;
|
||||||
|
dv = 11 - resto;
|
||||||
|
resultado = pis + "001" + dv.toString();
|
||||||
|
} else {
|
||||||
|
resultado = pis + "000" + dv.toString();
|
||||||
|
}
|
||||||
|
if (vlrCNS != resultado) {
|
||||||
|
// CNS inválido
|
||||||
|
return 'CNS definitivo inválido';
|
||||||
|
} else {
|
||||||
|
// CNS válido
|
||||||
|
String result = DBQuerys().duplicidadeCNS(vlrCNS);
|
||||||
|
if(result==''){
|
||||||
|
return 'ok';
|
||||||
|
}else{
|
||||||
|
return 'CNS duplicado"';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(vlrCNS.length< 15){
|
||||||
|
return 'CNS inválido! Faltando números';
|
||||||
|
}else{
|
||||||
|
return 'CNS inválido! Sobrando números';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
validaCPF(String cpf)async{
|
||||||
|
// 60352523620 CPF VÁLIDO
|
||||||
|
if(GetUtils.isCpf(cpf)){
|
||||||
|
List result = await DBQuerys().duplicidadeCPF(cpf);
|
||||||
|
print(cpf);
|
||||||
|
if(result.length==0){
|
||||||
|
return 'ok';
|
||||||
|
}else{
|
||||||
|
return 'CPF duplicado';
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return 'CPF inválido';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
import 'city_load_model.dart';
|
|
||||||
|
|
||||||
class ArgsLoadInitModel{
|
|
||||||
String mode;
|
|
||||||
CityLoadModel model;
|
|
||||||
String user;
|
|
||||||
String password;
|
|
||||||
String urlAPI;
|
|
||||||
|
|
||||||
ArgsLoadInitModel({
|
|
||||||
required this.mode,
|
|
||||||
required this.model,
|
|
||||||
required this.user,
|
|
||||||
required this.password,
|
|
||||||
required this.urlAPI,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:line_icons/line_icons.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/utils/const_variable.dart';
|
||||||
import 'package:rkm/widgets/icon_button_default.dart';
|
import 'package:rkm/widgets/icon_button_default.dart';
|
||||||
import 'package:rkm/widgets/input_search_text.dart';
|
import 'package:rkm/widgets/input_search_text.dart';
|
||||||
import '../service/db/db_sqlite_load.dart';
|
import '../service/db/db_sqlite_load.dart';
|
||||||
import '../widgets/appbar_default.dart';
|
import '../widgets/appbar_default.dart';
|
||||||
import '../widgets/item_citizen.dart';
|
import '../widgets/item_citizen.dart';
|
||||||
import 'registers_citizen/main_register_citizen_screen.dart';
|
|
||||||
|
|
||||||
class HomeScreen extends StatefulWidget {
|
class HomeScreen extends StatefulWidget {
|
||||||
const HomeScreen({Key? key}) : super(key: key);
|
const HomeScreen({Key? key}) : super(key: key);
|
||||||
@@ -24,6 +24,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
|||||||
loadCitizen()async{
|
loadCitizen()async{
|
||||||
await DbSqliteLoad().intialDB().then((db)async {
|
await DbSqliteLoad().intialDB().then((db)async {
|
||||||
dataCitizen = await db.query('CIDADAOS ORDER BY NOME_CIDADAO');
|
dataCitizen = await db.query('CIDADAOS ORDER BY NOME_CIDADAO');
|
||||||
|
// print(await db.rawQuery("SELECT * FROM CIDADAOS WHERE NOME_PAI='REGINALDO OLIVEIRA'"));
|
||||||
});
|
});
|
||||||
searchCitizen();
|
searchCitizen();
|
||||||
return 'complete';
|
return 'complete';
|
||||||
@@ -34,24 +35,25 @@ class _HomeScreenState extends State<HomeScreen> {
|
|||||||
showResults =[];
|
showResults =[];
|
||||||
for (int i =0;dataCitizen.length>i;i++) {
|
for (int i =0;dataCitizen.length>i;i++) {
|
||||||
String NOME_CIDADAO = '${dataCitizen[i]['NOME_CIDADAO']}';
|
String NOME_CIDADAO = '${dataCitizen[i]['NOME_CIDADAO']}';
|
||||||
String CNS = '${dataCitizen[i]['CNS']}';
|
String CNS = '${dataCitizen[i]['CNS']}'==''?'999999':'${dataCitizen[i]['CNS']}';
|
||||||
String NUM_PRONTUARIO = '${dataCitizen[i]['NUM_PRONTUARIO']}';
|
String NUM_PRONTUARIO = '${dataCitizen[i]['NUM_PRONTUARIO']}'==''?'null':'${dataCitizen[i]['NUM_PRONTUARIO']}';
|
||||||
List splitted = '${dataCitizen[i]['DT_NASCIMENTO']}'.split('-');
|
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(
|
if(
|
||||||
NOME_CIDADAO.contains(inputSearch.text.toUpperCase()) ||
|
NOME_CIDADAO.contains(inputSearch.text.toUpperCase()) ||
|
||||||
NUM_PRONTUARIO.contains(inputSearch.text.toUpperCase()) ||
|
NUM_PRONTUARIO.contains(inputSearch.text.toUpperCase()) ||
|
||||||
DT_NASCIMENTO.contains(inputSearch.text.toUpperCase()) ||
|
DT_NASCIMENTO.contains(inputSearch.text.toUpperCase()) ||
|
||||||
CNS.contains(inputSearch.text.toUpperCase())
|
CNS.contains(inputSearch.text.toUpperCase())
|
||||||
){
|
){
|
||||||
print('ok $i');
|
|
||||||
if(showResults.length<10){
|
if(showResults.length<10){
|
||||||
showResults.add(dataCitizen[i]);
|
showResults.add(dataCitizen[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
setState(() {
|
setState(() {
|
||||||
print(showResults);
|
|
||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -71,6 +73,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
|||||||
super.initState();
|
super.initState();
|
||||||
loadCitizen();
|
loadCitizen();
|
||||||
inputSearch.addListener(_searchInit);
|
inputSearch.addListener(_searchInit);
|
||||||
|
|
||||||
}
|
}
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
@@ -103,7 +106,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
|||||||
icon: Icons.person_add,
|
icon: Icons.person_add,
|
||||||
onPressed: ()=> Navigator.push(
|
onPressed: ()=> Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(builder: (context) => MainRegisterCitizenScreen(screens: 1,)),
|
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(select: '')),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
IconButtonDefault(
|
IconButtonDefault(
|
||||||
@@ -124,16 +127,20 @@ class _HomeScreenState extends State<HomeScreen> {
|
|||||||
itemBuilder: (context,index){
|
itemBuilder: (context,index){
|
||||||
|
|
||||||
List splitted = '${showResults[index]['DT_NASCIMENTO']}'.split('-');
|
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(
|
return ItemCitizen(
|
||||||
date: '${splitted[2]}/${splitted[1]}/${splitted[0]}',
|
date: date,
|
||||||
name: '${showResults[index]['NOME_CIDADAO']}',
|
name: '${showResults[index]['NOME_CIDADAO']}',
|
||||||
mother:'${showResults[index]['NOME_MAE']}',
|
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']}',
|
numberMedicalRecord: '${showResults[index]['NUM_PRONTUARIO']}',
|
||||||
onTap: ()=> Navigator.push(
|
onTap: ()=> Navigator.push(
|
||||||
context,
|
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/alert_dialog_default.dart';
|
||||||
import 'package:rkm/widgets/button_default.dart';
|
import 'package:rkm/widgets/button_default.dart';
|
||||||
import 'package:rkm/widgets/text_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/api/api_data_load.dart';
|
||||||
import '../service/db/db_sqlite_load.dart';
|
import '../service/db/db_sqlite_load.dart';
|
||||||
import '../service/shared_preferences/shared_preferences_service.dart';
|
import '../service/shared_preferences/shared_preferences_service.dart';
|
||||||
|
|
||||||
class LoadInitScreen extends StatefulWidget {
|
class LoadInitScreen extends StatefulWidget {
|
||||||
ArgsLoadInitModel args;
|
|
||||||
|
|
||||||
LoadInitScreen({
|
|
||||||
required this.args,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<LoadInitScreen> createState() => _LoadInitScreenState();
|
State<LoadInitScreen> createState() => _LoadInitScreenState();
|
||||||
@@ -26,81 +20,97 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
|
|||||||
String messageSteps = 'Aguarde ...';
|
String messageSteps = 'Aguarde ...';
|
||||||
bool finish = false;
|
bool finish = false;
|
||||||
String idUsuario = '';
|
String idUsuario = '';
|
||||||
|
String mode = '';
|
||||||
|
String urlAPI = '';
|
||||||
|
bool loading = false;
|
||||||
|
String nameCityApi = '';
|
||||||
|
String user = '';
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.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{
|
initLoading()async{
|
||||||
await DbSqliteLoad().deleteLoad().then((_)async{
|
await ApiDataLoad().loadPerm(urlAPI,mode,nameCityApi,user).then((response)async{
|
||||||
await ApiDataLoad().loadPerm(widget.args).then((response)async{
|
|
||||||
if(response['status'] == 0){
|
if(response['status'] == 0){
|
||||||
AlertDialogDefault().alert(context, 'Erro', 'Permissão negada', 'Voltar');
|
AlertDialogDefault().alert(context, 'Erro', 'Permissão negada', 'Voltar');
|
||||||
} else if(response['status'] == 1 && response['load_perm'] == "S") {
|
} else if(response['status'] == 1 && response['load_perm'] == "S") {
|
||||||
idUsuario = response['idUsuario'].toString();
|
idUsuario = response['idUsuario'].toString();
|
||||||
print('idUsuario $idUsuario');
|
print('idUsuario $idUsuario');
|
||||||
_prefService.createCacheidUsuario(idUsuario).then((value)async{
|
_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){
|
if(value.length !=0){
|
||||||
setState(() {
|
setState(() {
|
||||||
messageSteps = "Etapa 1 de 7 - Gravando as Unidades no Aplicativo";
|
messageSteps = "Etapa 1 de 7 - Gravando as Unidades no Aplicativo";
|
||||||
});
|
});
|
||||||
await DbSqliteLoad().saveUnidadesDB(value).then((value)async{
|
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(() {
|
setState(() {
|
||||||
messageSteps = "Etapa 2 de 7 - Gravando os Procedimentos no Aplicativo";
|
messageSteps = "Etapa 2 de 7 - Gravando os Procedimentos no Aplicativo";
|
||||||
});
|
});
|
||||||
await DbSqliteLoad().saveProceduresDB(value).then((value)async{
|
await DbSqliteLoad().saveProceduresDB(value).then((value)async{
|
||||||
print('finalizou save Procedures');
|
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{
|
await DbSqliteLoad().saveProceduresRegisterDB(value).then((value)async{
|
||||||
print('finalizou saveProceduresRegisterDB');
|
print('finalizou saveProceduresRegisterDB');
|
||||||
await ApiDataLoad().loadCID(widget.args).then((value)async{
|
await ApiDataLoad().loadCID(urlAPI,mode,nameCityApi,user).then((value)async{
|
||||||
print('loadCID');
|
print('loadCID');
|
||||||
setState(() {
|
setState(() {
|
||||||
messageSteps = "Etapa 3 de 7 - Gravando os CIDs no Aplicativo";
|
messageSteps = "Etapa 3 de 7 - Gravando os CIDs no Aplicativo";
|
||||||
});
|
});
|
||||||
await DbSqliteLoad().saveCID(value).then((value)async{
|
await DbSqliteLoad().saveCID(value).then((value)async{
|
||||||
print('finalizou saveCID');
|
print('finalizou saveCID');
|
||||||
await ApiDataLoad().loadProcedimentosCID(widget.args).then((value)async{
|
await ApiDataLoad().loadProcedimentosCID(urlAPI,mode,nameCityApi,user).then((value)async{
|
||||||
print('loadProcedimentosCID');
|
print('loadProcedimentosCID');
|
||||||
await DbSqliteLoad().saveProceduresCID(value).then((value)async{
|
await DbSqliteLoad().saveProceduresCID(value).then((value)async{
|
||||||
print('finalizou saveProceduresCID');
|
print('finalizou saveProceduresCID');
|
||||||
await ApiDataLoad().loadCBO(widget.args).then((value)async{
|
await ApiDataLoad().loadCBO(urlAPI,mode,nameCityApi,user).then((value)async{
|
||||||
print('loadCBO');
|
print('loadCBO');
|
||||||
setState(() {
|
setState(() {
|
||||||
messageSteps = "Etapa 4 de 7 - Gravando os CBOs no Aplicativo";
|
messageSteps = "Etapa 4 de 7 - Gravando os CBOs no Aplicativo";
|
||||||
});
|
});
|
||||||
await DbSqliteLoad().saveCBO(value).then((value)async{
|
await DbSqliteLoad().saveCBO(value).then((value)async{
|
||||||
print('finalizou saveCBO');
|
print('finalizou saveCBO');
|
||||||
await ApiDataLoad().loadProcedimentosCBO(widget.args).then((value)async{
|
await ApiDataLoad().loadProcedimentosCBO(urlAPI,mode,nameCityApi,user).then((value)async{
|
||||||
print('loadProcedimentosCBO');
|
print('loadProcedimentosCBO');
|
||||||
await DbSqliteLoad().saveProceduresCBO(value).then((value)async{
|
await DbSqliteLoad().saveProceduresCBO(value).then((value)async{
|
||||||
print('finalizou saveProceduresCBO');
|
print('finalizou saveProceduresCBO');
|
||||||
await ApiDataLoad().loadCIAP(widget.args).then((value)async{
|
await ApiDataLoad().loadCIAP(urlAPI,mode,nameCityApi,user).then((value)async{
|
||||||
print('loadCIAP');
|
print('loadCIAP');
|
||||||
setState(() {
|
setState(() {
|
||||||
messageSteps = "Etapa 5 de 7 - Gravando os CIAPs no Aplicativo";
|
messageSteps = "Etapa 5 de 7 - Gravando os CIAPs no Aplicativo";
|
||||||
});
|
});
|
||||||
await DbSqliteLoad().saveCIAP(value).then((value)async{
|
await DbSqliteLoad().saveCIAP(value).then((value)async{
|
||||||
print('finalizou saveCIAP');
|
print('finalizou saveCIAP');
|
||||||
await ApiDataLoad().loadMunicipios(widget.args).then((value)async{
|
await ApiDataLoad().loadMunicipios(urlAPI,mode,nameCityApi,user).then((value)async{
|
||||||
print('loadMunicipios');
|
print('loadMunicipios');
|
||||||
setState(() {
|
setState(() {
|
||||||
messageSteps = "Etapa 6 de 7 - Gravando os Municípios no Aplicativo";
|
messageSteps = "Etapa 6 de 7 - Gravando os Municípios no Aplicativo";
|
||||||
});
|
});
|
||||||
await DbSqliteLoad().saveCity(value).then((value)async{
|
await DbSqliteLoad().saveCity(value).then((value)async{
|
||||||
print('finalizou saveCity');
|
print('finalizou saveCity');
|
||||||
await ApiDataLoad().loadEquipes(widget.args).then((value)async{
|
await ApiDataLoad().loadEquipes(urlAPI,mode,nameCityApi,user).then((value)async{
|
||||||
print('loadEquipes');
|
print('loadEquipes');
|
||||||
setState(() {
|
setState(() {
|
||||||
messageSteps = "Etapa 7 de 7 - Gravando as Equipes no Aplicativo";
|
messageSteps = "Etapa 7 de 7 - Gravando as Equipes no Aplicativo";
|
||||||
});
|
});
|
||||||
await DbSqliteLoad().saveTeam(value).then((value)async{
|
await DbSqliteLoad().saveTeam(value).then((value)async{
|
||||||
print('finalizou saveTeam');
|
print('finalizou saveTeam');
|
||||||
await ApiDataLoad().loadEquipeComponentes(widget.args).then((value)async{
|
await ApiDataLoad().loadEquipeComponentes(urlAPI,mode,nameCityApi,user).then((value)async{
|
||||||
print('loadEquipeComponentes');
|
print('loadEquipeComponentes');
|
||||||
await DbSqliteLoad().saveTeamComponents(value).then((value)async{
|
await DbSqliteLoad().saveTeamComponents(value).then((value)async{
|
||||||
print('finalizou saveTeamComponents');
|
print('finalizou saveTeamComponents');
|
||||||
@@ -135,7 +145,6 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -157,7 +166,7 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
|
|||||||
onPressed: (){
|
onPressed: (){
|
||||||
Navigator.pushReplacement(
|
Navigator.pushReplacement(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(builder: (context) => SyncLoginScreen(args: widget.args)),
|
MaterialPageRoute(builder: (context) => SyncLoginScreen()),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
title: 'Continuar',
|
title: 'Continuar',
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import 'package:flutter/material.dart';
|
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/service/api/url_api_const.dart';
|
||||||
import 'package:rkm/utils/color_palette.dart';
|
import 'package:rkm/utils/color_palette.dart';
|
||||||
import 'package:rkm/utils/const_variable.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/dropdown_button_city.dart';
|
||||||
import 'package:rkm/widgets/input_text.dart';
|
import 'package:rkm/widgets/input_text.dart';
|
||||||
import 'package:rkm/widgets/text_default.dart';
|
import 'package:rkm/widgets/text_default.dart';
|
||||||
import '../../models/city_load_model.dart';
|
|
||||||
import '../../service/api/api_data_load.dart';
|
import '../../service/api/api_data_load.dart';
|
||||||
import '../../service/api/encrypt_password.dart';
|
import '../../service/api/encrypt_password.dart';
|
||||||
|
import '../../service/db/db_sqlite_load.dart';
|
||||||
import '../../service/shared_preferences/shared_preferences_service.dart';
|
import '../../service/shared_preferences/shared_preferences_service.dart';
|
||||||
import '../load_init_screen.dart';
|
import '../load_init_screen.dart';
|
||||||
class LoginLoadScreen extends StatefulWidget {
|
class LoginLoadScreen extends StatefulWidget {
|
||||||
@@ -28,13 +27,17 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
|
|||||||
String? selectCity;
|
String? selectCity;
|
||||||
bool validatorDropDown= false;
|
bool validatorDropDown= false;
|
||||||
int contLogo = 0;
|
int contLogo = 0;
|
||||||
String mode = 'desenvolvimento';
|
String mode = 'homologacao';
|
||||||
String urlAPI = UrlApiConst.ApiUrlDesenvolvimento;
|
String urlAPI = UrlApiConst.ApiUrlHomologacao;
|
||||||
bool loading = false;
|
bool loading = false;
|
||||||
|
String nameCityApi = '';
|
||||||
|
String nameCityFront = '';
|
||||||
|
String codState = '';
|
||||||
|
int codCity = 0;
|
||||||
|
int codCityIbge = 0;
|
||||||
|
|
||||||
final PrefService _prefService = PrefService();
|
final PrefService _prefService = PrefService();
|
||||||
checkLogin()async{
|
checkLogin()async{
|
||||||
CityLoadModel? model;
|
|
||||||
ArgsLoadInitModel? args;
|
|
||||||
if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){
|
if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){
|
||||||
if(selectCity!=null){
|
if(selectCity!=null){
|
||||||
_prefService.createCacheModel(inputUser.text,inputPassword.text,selectCity!,mode);
|
_prefService.createCacheModel(inputUser.text,inputPassword.text,selectCity!,mode);
|
||||||
@@ -43,30 +46,34 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
|
|||||||
loading = true;
|
loading = true;
|
||||||
for(int i=0;ConstVariable().itensCity.length > i;i++){
|
for(int i=0;ConstVariable().itensCity.length > i;i++){
|
||||||
if(ConstVariable().itensCity[i].nameCityFront == selectCity!){
|
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){
|
await ApiDataLoad().apiConect(urlAPI,mode,nameCityApi,inputUser.text).then((response) async {
|
||||||
args = ArgsLoadInitModel(
|
print("erre : "+response.toString());
|
||||||
mode: mode,
|
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'){
|
||||||
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){
|
|
||||||
setState(() {
|
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) {
|
}else if(response['status']==0) {
|
||||||
setState(() {
|
setState(() {
|
||||||
|
loading = false;
|
||||||
error = 'Usuário não encontrado';
|
error = 'Usuário não encontrado';
|
||||||
});
|
});
|
||||||
}else if(response['status']==1) {
|
}else if(response['status']==1) {
|
||||||
|
print('aqui 1');
|
||||||
|
print(response);
|
||||||
setState((){
|
setState((){
|
||||||
error = '';
|
error = '';
|
||||||
});
|
});
|
||||||
@@ -76,14 +83,37 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
loading = false;
|
loading = false;
|
||||||
});
|
});
|
||||||
Navigator.push(
|
await DbSqliteLoad().deleteLoad().then((_)async {
|
||||||
context,
|
DbSqliteLoad().saveArgs(
|
||||||
MaterialPageRoute(builder: (context) => LoadInitScreen(args: args!)),
|
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{
|
}else{
|
||||||
setState(() {
|
setState(() {
|
||||||
error = 'Selecione sua cidade';
|
error = 'Selecione sua cidade';
|
||||||
@@ -158,7 +188,6 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
|
|||||||
InputText(
|
InputText(
|
||||||
hint: 'Usuário',
|
hint: 'Usuário',
|
||||||
label: inputUser.text.isNotEmpty?'':'Usuário',
|
label: inputUser.text.isNotEmpty?'':'Usuário',
|
||||||
error: 'Campo obrigatório',
|
|
||||||
controller: inputUser,
|
controller: inputUser,
|
||||||
width: width*0.6,
|
width: width*0.6,
|
||||||
colorBorder: Colors.white,
|
colorBorder: Colors.white,
|
||||||
@@ -167,7 +196,6 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
|
|||||||
InputText(
|
InputText(
|
||||||
hint: 'Senha',
|
hint: 'Senha',
|
||||||
label: inputPassword.text.isNotEmpty?'':'Senha',
|
label: inputPassword.text.isNotEmpty?'':'Senha',
|
||||||
error: 'Campo obrigatório',
|
|
||||||
obscure: true,
|
obscure: true,
|
||||||
controller: inputPassword,
|
controller: inputPassword,
|
||||||
width: width*0.6,
|
width: width*0.6,
|
||||||
@@ -195,7 +223,10 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
|
|||||||
width: width*0.6,
|
width: width*0.6,
|
||||||
),
|
),
|
||||||
SizedBox(height: 10),
|
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:flutter/material.dart';
|
||||||
import 'package:intl/intl.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/home_screen.dart';
|
||||||
import 'package:rkm/screens/login/sync_login_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/color_palette.dart';
|
||||||
import 'package:rkm/utils/const_variable.dart';
|
import 'package:rkm/utils/const_variable.dart';
|
||||||
import 'package:rkm/widgets/button_default.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/input_text.dart';
|
||||||
import 'package:rkm/widgets/text_default.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/api_data_load.dart';
|
||||||
import '../../service/api/encrypt_password.dart';
|
import '../../service/api/encrypt_password.dart';
|
||||||
import '../load_init_screen.dart';
|
import '../../service/db/db_sqlite_load.dart';
|
||||||
class LoginSavedScreen extends StatefulWidget {
|
class LoginSavedScreen extends StatefulWidget {
|
||||||
List listControl;
|
List listControl;
|
||||||
ArgsLoadInitModel args;
|
|
||||||
|
|
||||||
LoginSavedScreen({
|
LoginSavedScreen({
|
||||||
required this.listControl,
|
required this.listControl,
|
||||||
required this.args
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -39,23 +30,37 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
|||||||
bool validatorDropDown= false;
|
bool validatorDropDown= false;
|
||||||
int contLogo = 0;
|
int contLogo = 0;
|
||||||
bool loading = false;
|
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{
|
checkLogin()async{
|
||||||
ArgsLoadInitModel? args;
|
|
||||||
if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){
|
if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){
|
||||||
setState(() {
|
setState(() {
|
||||||
error = '';
|
error = '';
|
||||||
loading = true;
|
loading = true;
|
||||||
});
|
});
|
||||||
args = ArgsLoadInitModel(
|
await ApiDataLoad().apiConect(urlAPI,mode,nameCityApi,inputUser.text).then((response) async {
|
||||||
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 {
|
|
||||||
if(inputUser.text == inputPassword.text || response['bloqueio']==1){
|
if(inputUser.text == inputPassword.text || response['bloqueio']==1){
|
||||||
setState(() {
|
setState(() {
|
||||||
error = 'Usuário bloqueado/senha incorreta';
|
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
|
//verificar se a criptografia identificou se a senha está correta
|
||||||
if(EncryptPassword().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
|
if(EncryptPassword().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
|
||||||
// print(EncryptPassword().encrypt(inputPassword.text,response['userPass']));
|
// print(EncryptPassword().encrypt(inputPassword.text,response['userPass']));
|
||||||
setState(() {
|
DbSqliteLoad().updateArgs(mode, inputUser.text, inputPassword.text).then((value){
|
||||||
loading = false;
|
setState(() {
|
||||||
|
loading = false;
|
||||||
|
});
|
||||||
|
Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(builder: (context) => HomeScreen()),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
Navigator.push(
|
|
||||||
context,
|
|
||||||
MaterialPageRoute(builder: (context) => HomeScreen()),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
|
||||||
}else{
|
}else{
|
||||||
setState(() {
|
setState(() {
|
||||||
error = 'Usuário/senha inválido(s)';
|
error = 'Usuário/senha inválido(s)';
|
||||||
@@ -89,6 +95,12 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
recupDB();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|
||||||
@@ -108,7 +120,7 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
|||||||
onPressed: (){
|
onPressed: (){
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(builder: (context) => SyncLoginScreen(args: widget.args)),
|
MaterialPageRoute(builder: (context) => SyncLoginScreen()),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -125,8 +137,8 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
|||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Image.asset('assets/images/logo.PNG',width: width*0.4),
|
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(),
|
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 == 'desenvolvimento'?Image.asset('assets/images/desenvolvimento.png',width: width*0.4):Container(),
|
||||||
SizedBox(height: 10),
|
SizedBox(height: 10),
|
||||||
loading?Center(
|
loading?Center(
|
||||||
child: Column(
|
child: Column(
|
||||||
@@ -147,7 +159,6 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
|||||||
InputText(
|
InputText(
|
||||||
hint: 'Usuário',
|
hint: 'Usuário',
|
||||||
label: inputUser.text.isNotEmpty?'':'Usuário',
|
label: inputUser.text.isNotEmpty?'':'Usuário',
|
||||||
error: 'Campo obrigatório',
|
|
||||||
controller: inputUser,
|
controller: inputUser,
|
||||||
width: width*0.6,
|
width: width*0.6,
|
||||||
colorBorder: Colors.white,
|
colorBorder: Colors.white,
|
||||||
@@ -156,7 +167,6 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
|||||||
InputText(
|
InputText(
|
||||||
hint: 'Senha',
|
hint: 'Senha',
|
||||||
label: inputPassword.text.isNotEmpty?'':'Senha',
|
label: inputPassword.text.isNotEmpty?'':'Senha',
|
||||||
error: 'Campo obrigatório',
|
|
||||||
obscure: true,
|
obscure: true,
|
||||||
controller: inputPassword,
|
controller: inputPassword,
|
||||||
width: width*0.6,
|
width: width*0.6,
|
||||||
@@ -210,7 +220,7 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
|||||||
padding: EdgeInsets.symmetric(vertical: 5),
|
padding: EdgeInsets.symmetric(vertical: 5),
|
||||||
width: width*0.6,
|
width: width*0.6,
|
||||||
child: TextDefault(
|
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,
|
fontWeigth: FontWeight.bold,
|
||||||
color: Colors.black,
|
color: Colors.black,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
|
|||||||
@@ -1,28 +1,17 @@
|
|||||||
import 'package:flutter/material.dart';
|
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/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/color_palette.dart';
|
||||||
import 'package:rkm/utils/const_variable.dart';
|
import 'package:rkm/utils/const_variable.dart';
|
||||||
import 'package:rkm/widgets/button_default.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/dropdown_button_default.dart';
|
||||||
import 'package:rkm/widgets/input_text.dart';
|
import 'package:rkm/widgets/input_text.dart';
|
||||||
import 'package:rkm/widgets/text_default.dart';
|
import 'package:rkm/widgets/text_default.dart';
|
||||||
import 'package:sqflite/sqflite.dart';
|
import 'package:sqflite/sqflite.dart';
|
||||||
import '../../models/city_load_model.dart';
|
|
||||||
import '../../service/api/api_data_load.dart';
|
import '../../service/api/api_data_load.dart';
|
||||||
import '../../service/api/encrypt_password.dart';
|
import '../../service/api/encrypt_password.dart';
|
||||||
import '../../service/db/db_sqlite_load.dart';
|
import '../../service/db/db_sqlite_load.dart';
|
||||||
import '../../service/shared_preferences/shared_preferences_service.dart';
|
import '../../service/shared_preferences/shared_preferences_service.dart';
|
||||||
import '../load_init_screen.dart';
|
|
||||||
class SyncLoginScreen extends StatefulWidget {
|
class SyncLoginScreen extends StatefulWidget {
|
||||||
ArgsLoadInitModel args;
|
|
||||||
|
|
||||||
SyncLoginScreen({
|
|
||||||
required this.args
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<SyncLoginScreen> createState() => _SyncLoginScreenState();
|
State<SyncLoginScreen> createState() => _SyncLoginScreenState();
|
||||||
@@ -39,17 +28,30 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
|||||||
bool validatorDropDown= false;
|
bool validatorDropDown= false;
|
||||||
bool citizenOutArea = false;
|
bool citizenOutArea = false;
|
||||||
int contLogo = 0;
|
int contLogo = 0;
|
||||||
String mode = 'desenvolvimento';
|
String mode = '';
|
||||||
String urlAPI = UrlApiConst.ApiUrlDesenvolvimento;
|
String urlAPI = '';
|
||||||
|
String nameCityApi = '';
|
||||||
bool loading = false;
|
bool loading = false;
|
||||||
List<String> listUnit=[];
|
List<String> listUnit=[];
|
||||||
List searchUnitCodList=[];
|
List searchUnitCodList=[];
|
||||||
List<String> listTeam = [];
|
List<String> listTeam = [];
|
||||||
String idUnidade ='';
|
String idUnidade ='';
|
||||||
String idUsuario ='';
|
String idUsuario ='1';
|
||||||
|
|
||||||
final PrefService _prefService = PrefService();
|
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{
|
checkLogin()async{
|
||||||
if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){
|
if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){
|
||||||
if(selectUnit!=null){
|
if(selectUnit!=null){
|
||||||
@@ -58,7 +60,7 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
|||||||
loading = true;
|
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){
|
if(inputUser.text == inputPassword.text || response['bloqueio']==1){
|
||||||
setState(() {
|
setState(() {
|
||||||
error = 'Usuário bloqueado/senha incorreta';
|
error = 'Usuário bloqueado/senha incorreta';
|
||||||
@@ -75,18 +77,13 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
loading = false;
|
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){
|
_prefService.createCacheSync(selectTeam!, citizenOutArea).then((value){
|
||||||
Navigator.push(
|
DbSqliteLoad().updateArgs(mode, inputUser.text, inputPassword.text).then((value) {
|
||||||
context,
|
Navigator.push(
|
||||||
MaterialPageRoute(builder: (context) => SyncInitScreen(args: args)),
|
context,
|
||||||
);
|
MaterialPageRoute(builder: (context) => SyncInitScreen()),
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -106,13 +103,9 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
setState(() {
|
recupDB();
|
||||||
mode = widget.args.mode;
|
|
||||||
inputUser.text = widget.args.user;
|
|
||||||
inputPassword.text = widget.args.password;
|
|
||||||
});
|
|
||||||
getUnit();
|
getUnit();
|
||||||
getUser();
|
// getUser();
|
||||||
}
|
}
|
||||||
getUser(){
|
getUser(){
|
||||||
_prefService.readCacheIdUsuario('idUsuario').then((value){
|
_prefService.readCacheIdUsuario('idUsuario').then((value){
|
||||||
@@ -136,24 +129,28 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getTeam()async{
|
getTeam()async{
|
||||||
|
Database db = await DbSqliteLoad().intialDB();
|
||||||
for(int i=0; listUnit.length > i;i++){
|
for(int i=0; listUnit.length > i;i++){
|
||||||
if(listUnit[i] == selectUnit){
|
if(listUnit[i] == selectUnit){
|
||||||
idUnidade = searchUnitCodList[i].toString();
|
idUnidade = searchUnitCodList[i].toString();
|
||||||
_prefService.createCacheidUnidade(idUnidade);
|
_prefService.createCacheUnidade(idUnidade,selectUnit!);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(idUnidade!=''){
|
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";
|
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);
|
List list = await db.rawQuery(query);
|
||||||
listTeam.clear();
|
listTeam.clear();
|
||||||
for(int i=0; list.length > i;i++){
|
for(int i=0; list.length > i;i++){
|
||||||
listTeam.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}');
|
listTeam.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}');
|
||||||
}
|
}
|
||||||
// print('getEquipes');
|
|
||||||
// print(listTeam);
|
|
||||||
setState(() {});
|
setState(() {});
|
||||||
}
|
}
|
||||||
|
print('listTeam');
|
||||||
|
print(listTeam);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -200,7 +197,6 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
|||||||
InputText(
|
InputText(
|
||||||
hint: 'Usuário',
|
hint: 'Usuário',
|
||||||
label: inputUser.text.isNotEmpty?'':'Usuário',
|
label: inputUser.text.isNotEmpty?'':'Usuário',
|
||||||
error: 'Campo obrigatório',
|
|
||||||
controller: inputUser,
|
controller: inputUser,
|
||||||
width: width*0.6,
|
width: width*0.6,
|
||||||
colorBorder: Colors.white,
|
colorBorder: Colors.white,
|
||||||
@@ -209,7 +205,6 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
|||||||
InputText(
|
InputText(
|
||||||
hint: 'Senha',
|
hint: 'Senha',
|
||||||
label: inputPassword.text.isNotEmpty?'':'Senha',
|
label: inputPassword.text.isNotEmpty?'':'Senha',
|
||||||
error: 'Campo obrigatório',
|
|
||||||
obscure: true,
|
obscure: true,
|
||||||
controller: inputPassword,
|
controller: inputPassword,
|
||||||
width: width*0.6,
|
width: width*0.6,
|
||||||
@@ -266,7 +261,8 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
|||||||
padding: EdgeInsets.symmetric(vertical: 5),
|
padding: EdgeInsets.symmetric(vertical: 5),
|
||||||
width: width*0.6,
|
width: width*0.6,
|
||||||
child: TextDefault(
|
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,
|
fontWeigth: FontWeight.bold,
|
||||||
fontSize: 18,
|
fontSize: 18,
|
||||||
color: Colors.black,
|
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/alert_dialog_default.dart';
|
||||||
import 'package:rkm/widgets/button_default.dart';
|
import 'package:rkm/widgets/button_default.dart';
|
||||||
import 'package:rkm/widgets/title_containers.dart';
|
import 'package:rkm/widgets/title_containers.dart';
|
||||||
import '../widgets/dropdown_with_subtitle.dart';
|
import '../../widgets/appbar_default.dart';
|
||||||
import '../widgets/input_with_subtitle.dart';
|
import '../../widgets/dropdown_with_subtitle.dart';
|
||||||
import '../widgets/onbackbutton.dart';
|
import '../../widgets/input_with_subtitle.dart';
|
||||||
import '../widgets/switch_with_subtitle.dart';
|
import '../../widgets/onbackbutton.dart';
|
||||||
import '../widgets/text_default.dart';
|
import '../../widgets/subtitle_appbar_citizen.dart';
|
||||||
|
import '../../widgets/switch_with_subtitle.dart';
|
||||||
|
import '../../widgets/text_default.dart';
|
||||||
class RegisterHomeScreen extends StatefulWidget {
|
class RegisterHomeScreen extends StatefulWidget {
|
||||||
const RegisterHomeScreen({Key? key}) : super(key: key);
|
const RegisterHomeScreen({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@@ -162,12 +164,14 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
|||||||
return WillPopScope(
|
return WillPopScope(
|
||||||
onWillPop: ()=> OnBackButton().onBackButton(context),
|
onWillPop: ()=> OnBackButton().onBackButton(context),
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
|
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Domiciliar'),
|
||||||
body: Container(
|
body: Container(
|
||||||
height: double.infinity,
|
height: double.infinity,
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
decoration: ConstVariable().backgroundGradient,
|
decoration: ConstVariable().backgroundGradient,
|
||||||
child: ListView(
|
child: ListView(
|
||||||
children: [
|
children: [
|
||||||
|
SubtitleAppbarCitizen(title: 3,edit: true),
|
||||||
Card(
|
Card(
|
||||||
margin: EdgeInsets.all(10),
|
margin: EdgeInsets.all(10),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
@@ -295,7 +299,8 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
|||||||
labelInput: 'Moradores',
|
labelInput: 'Moradores',
|
||||||
widthSubtitle: width*0.4,
|
widthSubtitle: width*0.4,
|
||||||
widthInput: width*0.7,
|
widthInput: width*0.7,
|
||||||
controller: controllerResidents
|
controller: controllerResidents,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
InputWithSubtitle(
|
InputWithSubtitle(
|
||||||
subtitle: 'Cômodos',
|
subtitle: 'Cômodos',
|
||||||
@@ -304,7 +309,8 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
|||||||
labelInput: 'Cômodos',
|
labelInput: 'Cômodos',
|
||||||
widthSubtitle: width*0.4,
|
widthSubtitle: width*0.4,
|
||||||
widthInput: width*0.7,
|
widthInput: width*0.7,
|
||||||
controller: controllerComfortable
|
controller: controllerComfortable,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
DropdownWithSubtitle(
|
DropdownWithSubtitle(
|
||||||
list:[],
|
list:[],
|
||||||
@@ -419,7 +425,8 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
|||||||
labelInput: 'Quantidade',
|
labelInput: 'Quantidade',
|
||||||
widthSubtitle: width*0.4,
|
widthSubtitle: width*0.4,
|
||||||
widthInput: width*0.7,
|
widthInput: width*0.7,
|
||||||
controller: controllerAmount
|
controller: controllerAmount,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
@@ -454,6 +461,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
|||||||
widthInput: width*0.7,
|
widthInput: width*0.7,
|
||||||
widthSubtitle: width*0.7,
|
widthSubtitle: width*0.7,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
InputWithSubtitle(
|
InputWithSubtitle(
|
||||||
controller: unitProfessionalController,
|
controller: unitProfessionalController,
|
||||||
@@ -463,6 +471,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
|||||||
widthInput: width*0.7,
|
widthInput: width*0.7,
|
||||||
widthSubtitle: width*0.7,
|
widthSubtitle: width*0.7,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
DropdownWithSubtitle(
|
DropdownWithSubtitle(
|
||||||
subtitle: 'CBO',
|
subtitle: 'CBO',
|
||||||
@@ -501,6 +510,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
|||||||
widthSubtitle: width*0.7,
|
widthSubtitle: width*0.7,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: false,
|
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/alert_dialog_default.dart';
|
||||||
import 'package:rkm/widgets/button_default.dart';
|
import 'package:rkm/widgets/button_default.dart';
|
||||||
import 'package:rkm/widgets/title_containers.dart';
|
import 'package:rkm/widgets/title_containers.dart';
|
||||||
|
import '../../widgets/appbar_default.dart';
|
||||||
import '../../widgets/check_box_two_subtitle.dart';
|
import '../../widgets/check_box_two_subtitle.dart';
|
||||||
import '../../widgets/dropdown_with_subtitle.dart';
|
import '../../widgets/dropdown_with_subtitle.dart';
|
||||||
import '../../widgets/input_with_subtitle.dart';
|
import '../../widgets/input_with_subtitle.dart';
|
||||||
import '../../widgets/onbackbutton.dart';
|
import '../../widgets/onbackbutton.dart';
|
||||||
|
import '../../widgets/subtitle_appbar_citizen.dart';
|
||||||
import '../../widgets/switch_with_subtitle.dart';
|
import '../../widgets/switch_with_subtitle.dart';
|
||||||
import '../../widgets/text_default.dart';
|
import '../../widgets/text_default.dart';
|
||||||
class RegisterIndividualScreen extends StatefulWidget {
|
class RegisterIndividualScreen extends StatefulWidget {
|
||||||
@@ -145,12 +147,14 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
return WillPopScope(
|
return WillPopScope(
|
||||||
onWillPop: ()=> OnBackButton().onBackButton(context),
|
onWillPop: ()=> OnBackButton().onBackButton(context),
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
|
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Individual'),
|
||||||
body: Container(
|
body: Container(
|
||||||
height: double.infinity,
|
height: double.infinity,
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
decoration: ConstVariable().backgroundGradient,
|
decoration: ConstVariable().backgroundGradient,
|
||||||
child: ListView(
|
child: ListView(
|
||||||
children: [
|
children: [
|
||||||
|
SubtitleAppbarCitizen(title: 2,edit: true),
|
||||||
Card(
|
Card(
|
||||||
margin: EdgeInsets.all(10),
|
margin: EdgeInsets.all(10),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
@@ -255,6 +259,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthSubtitle: width*0.2,
|
widthSubtitle: width*0.2,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: enableSpouse,
|
enable: enableSpouse,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
DropdownWithSubtitle(
|
DropdownWithSubtitle(
|
||||||
list: [],
|
list: [],
|
||||||
@@ -279,6 +284,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthSubtitle: width*0.2,
|
widthSubtitle: width*0.2,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: enableSpouse,
|
enable: enableSpouse,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
InputWithSubtitle(
|
InputWithSubtitle(
|
||||||
controller: enterBrazilController,
|
controller: enterBrazilController,
|
||||||
@@ -289,6 +295,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthSubtitle: width*0.2,
|
widthSubtitle: width*0.2,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: enableSpouse,
|
enable: enableSpouse,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
InputWithSubtitle(
|
InputWithSubtitle(
|
||||||
controller: dateNaturalnessController,
|
controller: dateNaturalnessController,
|
||||||
@@ -299,6 +306,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthSubtitle: width*0.2,
|
widthSubtitle: width*0.2,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: enableSpouse,
|
enable: enableSpouse,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
InputWithSubtitle(
|
InputWithSubtitle(
|
||||||
controller: porterNaturalnessController,
|
controller: porterNaturalnessController,
|
||||||
@@ -309,6 +317,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthSubtitle: width*0.2,
|
widthSubtitle: width*0.2,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: enableSpouse,
|
enable: enableSpouse,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
DropdownWithSubtitle(
|
DropdownWithSubtitle(
|
||||||
list:['SUPERIOR, APERFEIÇAOMENTO,ESPECIAL'],
|
list:['SUPERIOR, APERFEIÇAOMENTO,ESPECIAL'],
|
||||||
@@ -440,6 +449,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthSubtitle: width*0.2,
|
widthSubtitle: width*0.2,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: enableSpouse,
|
enable: enableSpouse,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
DropdownWithSubtitle(
|
DropdownWithSubtitle(
|
||||||
list: ['NÃO DESEJA INFORMAR'],
|
list: ['NÃO DESEJA INFORMAR'],
|
||||||
@@ -560,6 +570,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthSubtitle: width*0.2,
|
widthSubtitle: width*0.2,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: enableSpouse,
|
enable: enableSpouse,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
SwitchWithSubtitle(
|
SwitchWithSubtitle(
|
||||||
width: width*0.7,
|
width: width*0.7,
|
||||||
@@ -621,6 +632,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthSubtitle: width*0.7,
|
widthSubtitle: width*0.7,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: false,
|
enable: false,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
DropdownWithSubtitle(
|
DropdownWithSubtitle(
|
||||||
list: [],
|
list: [],
|
||||||
@@ -789,6 +801,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthSubtitle: width*0.7,
|
widthSubtitle: width*0.7,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: false,
|
enable: false,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
DropdownWithSubtitle(
|
DropdownWithSubtitle(
|
||||||
subtitle: 'Doença Cardíaca',
|
subtitle: 'Doença Cardíaca',
|
||||||
@@ -899,6 +912,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthSubtitle: width*0.7,
|
widthSubtitle: width*0.7,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: false,
|
enable: false,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
InputWithSubtitle(
|
InputWithSubtitle(
|
||||||
controller: otherCondicionsController,
|
controller: otherCondicionsController,
|
||||||
@@ -909,6 +923,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthSubtitle: width*0.7,
|
widthSubtitle: width*0.7,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: false,
|
enable: false,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -974,6 +989,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthSubtitle: width*0.7,
|
widthSubtitle: width*0.7,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: false,
|
enable: false,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
SwitchWithSubtitle(
|
SwitchWithSubtitle(
|
||||||
width: width*0.7,
|
width: width*0.7,
|
||||||
@@ -1023,6 +1039,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthSubtitle: width*0.7,
|
widthSubtitle: width*0.7,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: false,
|
enable: false,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
DropdownWithSubtitle(
|
DropdownWithSubtitle(
|
||||||
subtitle: 'Alimentação Diária',
|
subtitle: 'Alimentação Diária',
|
||||||
@@ -1132,6 +1149,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthInput: width*0.7,
|
widthInput: width*0.7,
|
||||||
widthSubtitle: width*0.7,
|
widthSubtitle: width*0.7,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
InputWithSubtitle(
|
InputWithSubtitle(
|
||||||
controller: unitProfessionalController,
|
controller: unitProfessionalController,
|
||||||
@@ -1141,6 +1159,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthInput: width*0.7,
|
widthInput: width*0.7,
|
||||||
widthSubtitle: width*0.7,
|
widthSubtitle: width*0.7,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
DropdownWithSubtitle(
|
DropdownWithSubtitle(
|
||||||
subtitle: 'CBO',
|
subtitle: 'CBO',
|
||||||
@@ -1179,6 +1198,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
|||||||
widthSubtitle: width*0.7,
|
widthSubtitle: width*0.7,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: false,
|
enable: false,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
|
|||||||
widthSubtitle: width*0.7,
|
widthSubtitle: width*0.7,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: false,
|
enable: false,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
InputWithSubtitle(
|
InputWithSubtitle(
|
||||||
controller: unitController,
|
controller: unitController,
|
||||||
@@ -111,6 +112,7 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
|
|||||||
widthSubtitle: width*0.7,
|
widthSubtitle: width*0.7,
|
||||||
hintInput: 'Escreva aqui',
|
hintInput: 'Escreva aqui',
|
||||||
enable: false,
|
enable: false,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
DropdownWithSubtitle(
|
DropdownWithSubtitle(
|
||||||
list: [],
|
list: [],
|
||||||
|
|||||||
@@ -214,6 +214,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
|||||||
widthInput: width*0.7,
|
widthInput: width*0.7,
|
||||||
controller: weigthController,
|
controller: weigthController,
|
||||||
colorBorder: ColorPalette.white,
|
colorBorder: ColorPalette.white,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
InputWithSubtitle(
|
InputWithSubtitle(
|
||||||
subtitle: 'Altura (em metros - 0,00)',
|
subtitle: 'Altura (em metros - 0,00)',
|
||||||
@@ -224,6 +225,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
|||||||
widthInput: width*0.7,
|
widthInput: width*0.7,
|
||||||
controller: heightController,
|
controller: heightController,
|
||||||
colorBorder: ColorPalette.white,
|
colorBorder: ColorPalette.white,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
InputWithSubtitle(
|
InputWithSubtitle(
|
||||||
subtitle: 'Perímetro cefálico (em centímetros - 000,00)',
|
subtitle: 'Perímetro cefálico (em centímetros - 000,00)',
|
||||||
@@ -234,6 +236,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
|||||||
widthInput: width*0.7,
|
widthInput: width*0.7,
|
||||||
controller: cephalicPerimeterController,
|
controller: cephalicPerimeterController,
|
||||||
colorBorder: ColorPalette.white,
|
colorBorder: ColorPalette.white,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
SwitchWithSubtitle(
|
SwitchWithSubtitle(
|
||||||
width: width*0.7,
|
width: width*0.7,
|
||||||
@@ -285,6 +288,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
|||||||
controller: userResponsibleRegisterController,
|
controller: userResponsibleRegisterController,
|
||||||
colorBorder: ColorPalette.white,
|
colorBorder: ColorPalette.white,
|
||||||
enable: false,
|
enable: false,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
InputWithSubtitle(
|
InputWithSubtitle(
|
||||||
subtitle: 'Unidade do Profissional',
|
subtitle: 'Unidade do Profissional',
|
||||||
@@ -296,6 +300,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
|||||||
controller: userUnitController,
|
controller: userUnitController,
|
||||||
colorBorder: ColorPalette.white,
|
colorBorder: ColorPalette.white,
|
||||||
enable: false,
|
enable: false,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
DropdownWithSubtitle(
|
DropdownWithSubtitle(
|
||||||
list: [],
|
list: [],
|
||||||
@@ -356,6 +361,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
|||||||
controller: dumController,
|
controller: dumController,
|
||||||
colorBorder: ColorPalette.white,
|
colorBorder: ColorPalette.white,
|
||||||
enable: false,
|
enable: false,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
SwitchWithSubtitle(
|
SwitchWithSubtitle(
|
||||||
onChanged: (value){},
|
onChanged: (value){},
|
||||||
@@ -373,6 +379,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
|||||||
controller: oldPregnancyController,
|
controller: oldPregnancyController,
|
||||||
colorBorder: ColorPalette.white,
|
colorBorder: ColorPalette.white,
|
||||||
enable: false,
|
enable: false,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
InputWithSubtitle(
|
InputWithSubtitle(
|
||||||
subtitle: 'Partos',
|
subtitle: 'Partos',
|
||||||
@@ -384,6 +391,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
|
|||||||
controller: childBirthsController,
|
controller: childBirthsController,
|
||||||
colorBorder: ColorPalette.white,
|
colorBorder: ColorPalette.white,
|
||||||
enable: false,
|
enable: false,
|
||||||
|
onChanged: (v)=>setState((){}),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.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/screens/login/sync_login_screen.dart';
|
||||||
import 'package:rkm/service/api/url_api_const.dart';
|
import 'package:rkm/service/api/url_api_const.dart';
|
||||||
import 'package:rkm/utils/const_variable.dart';
|
import 'package:rkm/utils/const_variable.dart';
|
||||||
@@ -18,20 +16,19 @@ class SplashScreen extends StatefulWidget {
|
|||||||
|
|
||||||
class _SplashScreenState extends State<SplashScreen> {
|
class _SplashScreenState extends State<SplashScreen> {
|
||||||
|
|
||||||
CityLoadModel? model;
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
DbSqliteLoad().intialDB();
|
DbSqliteLoad().intialDB().then((value){
|
||||||
final PrefService _prefService = PrefService();
|
final PrefService _prefService = PrefService();
|
||||||
_prefService.readCacheModel('user', 'password', 'city', 'mode').then((list){
|
_prefService.readCacheModel('user', 'password', 'city', 'mode').then((list){
|
||||||
for(int i=0;ConstVariable().itensCity.length > i;i++){
|
if(list[0] == null){
|
||||||
if(ConstVariable().itensCity[i].nameCityFront == list[2]!){
|
Navigator.pushReplacementNamed(context, '/login_load');
|
||||||
model = ConstVariable().itensCity[i];
|
}else{
|
||||||
|
timer(list);
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
timer(list);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,39 +39,25 @@ class _SplashScreenState extends State<SplashScreen> {
|
|||||||
if(dataControl.length != 0){
|
if(dataControl.length != 0){
|
||||||
var query = "SELECT * FROM CONTROLE_INTERNO";
|
var query = "SELECT * FROM CONTROLE_INTERNO";
|
||||||
dataControl = await db.rawQuery(query);
|
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){
|
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(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(builder: (context) => LoginSavedScreen(listControl: dataControl,args: args,)),
|
MaterialPageRoute(builder: (context) => LoginSavedScreen(listControl: dataControl,)),
|
||||||
);
|
);
|
||||||
}else{
|
}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(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(builder: (context) => SyncLoginScreen(args: args)),
|
MaterialPageRoute(builder: (context) => SyncLoginScreen()),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}else{
|
}else{
|
||||||
Navigator.pushReplacementNamed(context, '/login_load');
|
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/alert_dialog_default.dart';
|
||||||
import 'package:rkm/widgets/button_default.dart';
|
import 'package:rkm/widgets/button_default.dart';
|
||||||
import 'package:rkm/widgets/text_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/db/db_sqlite_load.dart';
|
||||||
import '../service/shared_preferences/shared_preferences_service.dart';
|
import '../service/shared_preferences/shared_preferences_service.dart';
|
||||||
|
|
||||||
class SyncInitScreen extends StatefulWidget {
|
class SyncInitScreen extends StatefulWidget {
|
||||||
ArgsLoadInitModel args;
|
|
||||||
|
|
||||||
SyncInitScreen({
|
|
||||||
required this.args,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<SyncInitScreen> createState() => _SyncInitScreenState();
|
State<SyncInitScreen> createState() => _SyncInitScreenState();
|
||||||
@@ -29,24 +22,51 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
|
|||||||
bool finish = false;
|
bool finish = false;
|
||||||
String idUsuario = '';
|
String idUsuario = '';
|
||||||
String idUnidade = '';
|
String idUnidade = '';
|
||||||
|
String nomeUnidade = '';
|
||||||
String area = '';
|
String area = '';
|
||||||
String microarea = '';
|
String microarea = '';
|
||||||
bool foraArea = false;
|
bool foraArea = false;
|
||||||
|
String urlAPI='';
|
||||||
|
String mode = '';
|
||||||
|
String nameCityApi = '';
|
||||||
|
String nameCityFront = '';
|
||||||
|
String user = '';
|
||||||
|
int codCity = 0;
|
||||||
|
int codCityIbge = 0;
|
||||||
|
String codState = '';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.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{
|
dataUser()async{
|
||||||
_prefService.readCacheIdUnidade('idUnidade').then((id)async{
|
_prefService.readCacheUnidade('idUnidade').then((listUnidade)async{
|
||||||
_prefService.readCacheSync('area', false).then((list){
|
_prefService.readCacheSync('area', false).then((list){
|
||||||
foraArea = list[1];
|
foraArea = list[1];
|
||||||
List splited = list[0].split(': ');
|
List splited = list[0].split(': ');
|
||||||
area = splited[2].toString().substring(0,1);
|
area = splited[2].toString().substring(0,1);
|
||||||
microarea = splited[3];
|
microarea = splited[3];
|
||||||
idUnidade = id;
|
idUnidade = listUnidade[0];
|
||||||
|
nomeUnidade = listUnidade[1];
|
||||||
initSync();
|
initSync();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -54,75 +74,75 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
|
|||||||
|
|
||||||
initSync()async{
|
initSync()async{
|
||||||
await DbSqliteSync().deleteSync().then((_)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"){
|
if(response['status'] == 0 || response['sync_perm'] != "S"){
|
||||||
AlertDialogDefault().alert(context, 'Erro', 'Usuário sem permissão para Sincronização de Unidade!', 'Voltar');
|
AlertDialogDefault().alert(context, 'Erro', 'Usuário sem permissão para Sincronização de Unidade!', 'Voltar');
|
||||||
}else{
|
}else{
|
||||||
setState(()=> messageSteps = "Etapa 1 de 10 - Importando informações do CONECTASUS");
|
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){
|
if(value.length == 0){
|
||||||
setState(()=> messageSteps = "ERRO: Erro para carregar os Bairros - Por favor, tente novamente!");
|
setState(()=> messageSteps = "ERRO: Erro para carregar os Bairros - Por favor, tente novamente!");
|
||||||
}else{
|
}else{
|
||||||
setState(()=> messageSteps = "Etapa 2 de 10 - Gravando os Bairros no Aplicativo");
|
setState(()=> messageSteps = "Etapa 2 de 10 - Gravando os Bairros no Aplicativo");
|
||||||
}
|
}
|
||||||
await DbSqliteSync().insertBairros(value).then((value)async{
|
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){
|
if(value.length == 0){
|
||||||
setState(()=> messageSteps = "ERRO: Erro para carregar os Tipos de Logradouros - Por favor, tente novamente!");
|
setState(()=> messageSteps = "ERRO: Erro para carregar os Tipos de Logradouros - Por favor, tente novamente!");
|
||||||
}else{
|
}else{
|
||||||
setState(()=> messageSteps = "Etapa 3 de 10 - Gravando os Tipos de Logradouros no Aplicativo");
|
setState(()=> messageSteps = "Etapa 3 de 10 - Gravando os Tipos de Logradouros no Aplicativo");
|
||||||
}
|
}
|
||||||
await DbSqliteSync().insertTiposLogradouros(value).then((value)async{
|
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){
|
if(value.length == 0){
|
||||||
setState(()=> messageSteps = "ERRO: Erro para carregar os Logradouros - Por favor, tente novamente!");
|
setState(()=> messageSteps = "ERRO: Erro para carregar os Logradouros - Por favor, tente novamente!");
|
||||||
}else{
|
}else{
|
||||||
setState(()=> messageSteps = "Etapa 4 de 10 - Gravando os Logradouros no Aplicativo");
|
setState(()=> messageSteps = "Etapa 4 de 10 - Gravando os Logradouros no Aplicativo");
|
||||||
}
|
}
|
||||||
await DbSqliteSync().insertLogradouros(value).then((value)async{
|
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){
|
if(value.length == 0){
|
||||||
setState(()=> messageSteps = "ERRO: Erro para carregar os Loteamentos - Por favor, tente novamente!");
|
setState(()=> messageSteps = "ERRO: Erro para carregar os Loteamentos - Por favor, tente novamente!");
|
||||||
}else{
|
}else{
|
||||||
setState(()=> messageSteps = "Etapa 5 de 10 - Gravando os Loteamentos no Aplicativo");
|
setState(()=> messageSteps = "Etapa 5 de 10 - Gravando os Loteamentos no Aplicativo");
|
||||||
}
|
}
|
||||||
await DbSqliteSync().insertLoteamentos(value).then((value)async{
|
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){
|
if(value.length == 0){
|
||||||
setState(()=> messageSteps = "ERRO: Erro para carregar os Profissionais - Por favor, tente novamente!");
|
setState(()=> messageSteps = "ERRO: Erro para carregar os Profissionais - Por favor, tente novamente!");
|
||||||
}else{
|
}else{
|
||||||
setState(()=> messageSteps = "Etapa 6 de 10 - Gravando os Profissionais no Aplicativo");
|
setState(()=> messageSteps = "Etapa 6 de 10 - Gravando os Profissionais no Aplicativo");
|
||||||
}
|
}
|
||||||
await DbSqliteSync().insertProfissionais(value).then((value)async{
|
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){
|
if(value.length == 0){
|
||||||
setState(()=> messageSteps = "ERRO: Erro para carregar os CBOs dos Profissionais - Por favor, tente novamente!");
|
setState(()=> messageSteps = "ERRO: Erro para carregar os CBOs dos Profissionais - Por favor, tente novamente!");
|
||||||
}else{
|
}else{
|
||||||
setState(()=> messageSteps = "Etapa 7 de 10 - Gravando os CBO´s dos Profissionais no Aplicativo");
|
setState(()=> messageSteps = "Etapa 7 de 10 - Gravando os CBO´s dos Profissionais no Aplicativo");
|
||||||
}
|
}
|
||||||
await DbSqliteSync().insertProfissionaisCBOs(value).then((value)async{
|
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){
|
if(value.length == 0){
|
||||||
setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros dos Cidadãos - Por favor, tente novamente!");
|
setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros dos Cidadãos - Por favor, tente novamente!");
|
||||||
}else{
|
}else{
|
||||||
setState(()=> messageSteps = "Etapa 8 de 10 - Gravando os Cidadãos no Aplicativo");
|
setState(()=> messageSteps = "Etapa 8 de 10 - Gravando os Cidadãos no Aplicativo");
|
||||||
}
|
}
|
||||||
await DbSqliteSync().insertCidadaos(value).then((value)async{
|
await DbSqliteSync().insertCidadaos(value,'sync').then((value)async{
|
||||||
await ApiDataSync().syncCadastrosDomiciliares(widget.args,idUnidade,area,microarea,foraArea).then((value)async{
|
await ApiDataSync().syncCadastrosDomiciliares(urlAPI,mode,nameCityApi,user,idUnidade,area,microarea,foraArea).then((value)async{
|
||||||
if(value.length == 0){
|
if(value.length == 0){
|
||||||
setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros Domiciliares - Por favor, tente novamente!");
|
setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros Domiciliares - Por favor, tente novamente!");
|
||||||
}else{
|
}else{
|
||||||
setState(()=> messageSteps = "Etapa 9 de 10 - Gravando os Cadastros Domiciliares no Aplicativo");
|
setState(()=> messageSteps = "Etapa 9 de 10 - Gravando os Cadastros Domiciliares no Aplicativo");
|
||||||
}
|
}
|
||||||
await DbSqliteSync().insertCadastrosDomiciliares(value).then((value)async{
|
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){
|
if(value.length == 0){
|
||||||
setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros Individuais - Por favor, tente novamente!");
|
setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros Individuais - Por favor, tente novamente!");
|
||||||
}else{
|
}else{
|
||||||
setState(()=> messageSteps = "Etapa 10 de 10 - Gravando os Cadastros Individuais no Aplicativo");
|
setState(()=> messageSteps = "Etapa 10 de 10 - Gravando os Cadastros Individuais no Aplicativo");
|
||||||
}
|
}
|
||||||
await DbSqliteSync().insertCadastrosIndividuais(value).then((value)async{
|
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');
|
Navigator.pushNamed(context, '/home');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -167,7 +187,7 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
|
|||||||
onPressed: (){
|
onPressed: (){
|
||||||
Navigator.pushReplacement(
|
Navigator.pushReplacement(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(builder: (context) => SyncLoginScreen(args: widget.args)),
|
MaterialPageRoute(builder: (context) => SyncLoginScreen()),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
title: 'Continuar',
|
title: 'Continuar',
|
||||||
|
|||||||
@@ -1,106 +1,114 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
import '../../models/args_load_init_model.dart';
|
|
||||||
|
|
||||||
class ApiDataLoad{
|
class ApiDataLoad{
|
||||||
Future apiConect(ArgsLoadInitModel args)async{
|
Future apiConect(urlAPI,mode,nameCityApi,user)async{
|
||||||
//http://192.168.0.42:8010/api/atb/desenvolvimento/cabreuva/load/pass/admin
|
//http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/pass/admin
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/pass/${args.user}';
|
//https://app0.rkmsistemas.com.br/api/atb/homologacao/cabreuva/pass/admin
|
||||||
|
final url = '${urlAPI}${mode}/${nameCityApi}/pass/${user}';
|
||||||
|
print(url);
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
var map;
|
||||||
return map;
|
print(response.statusCode);
|
||||||
|
if(response.statusCode == 200){
|
||||||
|
return map = json.decode(response.body);
|
||||||
|
}else{
|
||||||
|
return map = 'Erro';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Future loadPerm(ArgsLoadInitModel args)async{
|
Future loadPerm(urlAPI,mode,nameCityApi,user)async{
|
||||||
|
//https://app0.rkmsistemas.com.br/api/atb/homologacao/cabreuva/load/perm/admin
|
||||||
//http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/load/perm/admin
|
//http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/load/perm/admin
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/load/perm/${args.user}';
|
final url = '${urlAPI}${mode}/${nameCityApi}/load/perm/${user}';
|
||||||
// final url = 'http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/load/perm/admin';
|
// final url = 'http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/load/perm/admin';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future loadUnidades(ArgsLoadInitModel args)async{
|
Future loadUnidades(urlAPI,mode,nameCityApi,user)async{
|
||||||
|
//https://app0.rkmsistemas.com.br/api/atb/homologacao/cabreuva/admin/load/unidades
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/unidades
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/unidades
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/unidades';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/load/unidades';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future loadProcedimentos(ArgsLoadInitModel args)async{
|
Future loadProcedimentos(urlAPI,mode,nameCityApi,user)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/procedimentos
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/procedimentos
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentos';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/load/procedimentos';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future loadProcedimentosRegistros(ArgsLoadInitModel args)async{
|
Future loadProcedimentosRegistros(urlAPI,mode,nameCityApi,user)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/procedimentosRegistros
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/procedimentosRegistros
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentosRegistros';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/load/procedimentosRegistros';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future loadCID(ArgsLoadInitModel args)async{
|
Future loadCID(urlAPI,mode,nameCityApi,user)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/cid
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/cid
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/cid';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/load/cid';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future loadProcedimentosCID(ArgsLoadInitModel args)async{
|
Future loadProcedimentosCID(urlAPI,mode,nameCityApi,user)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/procedimentosCID
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/procedimentosCID
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentosCID';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/load/procedimentosCID';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future loadCBO(ArgsLoadInitModel args)async{
|
Future loadCBO(urlAPI,mode,nameCityApi,user)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/cbo
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/cbo
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/cbo';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/load/cbo';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future loadProcedimentosCBO(ArgsLoadInitModel args)async{
|
Future loadProcedimentosCBO(urlAPI,mode,nameCityApi,user)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/procedimentosCBO
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/procedimentosCBO
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentosCBO';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/load/procedimentosCBO';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future loadCIAP(ArgsLoadInitModel args)async{
|
Future loadCIAP(urlAPI,mode,nameCityApi,user)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/ciap
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/ciap
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/ciap';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/load/ciap';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future loadMunicipios(ArgsLoadInitModel args)async{
|
Future loadMunicipios(urlAPI,mode,nameCityApi,user)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/municipios
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/municipios
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/municipios';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/load/municipios';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future loadEquipes(ArgsLoadInitModel args)async{
|
Future loadEquipes(urlAPI,mode,nameCityApi,user)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/equipes
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/equipes
|
||||||
// https://app0.rkmsistemas.com.br/api/atb/homologacao/cabreuva/admin/load/equipes
|
// https://app0.rkmsistemas.com.br/api/atb/homologacao/cabreuva/admin/load/equipes
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/equipes';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/load/equipes';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future loadEquipeComponentes(ArgsLoadInitModel args)async{
|
Future loadEquipeComponentes(urlAPI,mode,nameCityApi,user)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/equipeComponentes
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/equipeComponentes
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/equipeComponentes';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/load/equipeComponentes';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future loadCompetencia(ArgsLoadInitModel args)async{
|
Future loadCompetencia(urlAPI,mode,nameCityApi,user)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/competencia
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/competencia
|
||||||
'criar uma lista dentro do DB não usar essa api para competencia';
|
'criar uma lista dentro do DB não usar essa api para competencia';
|
||||||
'competencia sera dinamica com 4 meses para tras exemplo 042023/032023/022023/01/2023';
|
'competencia sera dinamica com 4 meses para tras exemplo 042023/032023/022023/01/2023';
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/competencia';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/load/competencia';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
|
|||||||
@@ -1,77 +1,75 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
import '../../models/args_load_init_model.dart';
|
|
||||||
import '../shared_preferences/shared_preferences_service.dart';
|
|
||||||
|
|
||||||
class ApiDataSync{
|
class ApiDataSync{
|
||||||
Future syncPerm(ArgsLoadInitModel args)async{
|
Future syncPerm(urlAPI,mode,nameCityApi,user)async{
|
||||||
//http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/sync/perm/admin
|
//http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/sync/perm/admin
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/sync/perm/${args.user}';
|
final url = '${urlAPI}${mode}/${nameCityApi}/sync/perm/${user}';
|
||||||
// final url = 'http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/load/perm/admin';
|
// final url = 'http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/load/perm/admin';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
// print(map);
|
// print(map);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future syncBairros(ArgsLoadInitModel args)async{
|
Future syncBairros(urlAPI,mode,nameCityApi,user)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/bairros
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/bairros
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/bairros';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/bairros';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future syncTiposLogradouros(ArgsLoadInitModel args)async{
|
Future syncTiposLogradouros(urlAPI,mode,nameCityApi,user)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/tiposLogradouros
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/tiposLogradouros
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/tiposLogradouros';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/tiposLogradouros';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future syncLogradouros(ArgsLoadInitModel args)async{
|
Future syncLogradouros(urlAPI,mode,nameCityApi,user)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/logradouros
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/logradouros
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/logradouros';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/logradouros';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future syncLoteamentos(ArgsLoadInitModel args)async{
|
Future syncLoteamentos(urlAPI,mode,nameCityApi,user)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/loteamentos
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/loteamentos
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/loteamentos';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/loteamentos';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future syncProfissionais(ArgsLoadInitModel args,String idUnidade)async{
|
Future syncProfissionais(urlAPI,mode,nameCityApi,user,idUnidade)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/profissionais
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/profissionais
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/${idUnidade}/profissionais';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/${idUnidade}/profissionais';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future syncProfissionaisCBOs(ArgsLoadInitModel args,String idUnidade)async{
|
Future syncProfissionaisCBOs(urlAPI,mode,nameCityApi,user,idUnidade)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/profissionaisCBOs
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/profissionaisCBOs
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/${idUnidade}/profissionaisCBOs';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/${idUnidade}/profissionaisCBOs';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future syncCidadaos(ArgsLoadInitModel args,String idUnidade,String area, String microarea, bool foraArea)async{
|
Future syncCidadaos(urlAPI,mode,nameCityApi,user,idUnidade,area,microarea,foraArea)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/cidadaos/1/1/true
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/cidadaos/1/1/true
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/${idUnidade}/cidadaos/$area/$microarea/$foraArea';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/${idUnidade}/cidadaos/$area/$microarea/$foraArea';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future syncCadastrosDomiciliares(ArgsLoadInitModel args,String idUnidade,String area, String microarea, bool foraArea)async{
|
Future syncCadastrosDomiciliares(urlAPI,mode,nameCityApi,user,idUnidade,area,microarea,foraArea)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/cadastrosDomiciliares/1/1/true
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/cadastrosDomiciliares/1/1/true
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/${idUnidade}/cadastrosDomiciliares/$area/$microarea/$foraArea';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/${idUnidade}/cadastrosDomiciliares/$area/$microarea/$foraArea';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
Future syncCadastrosIndividuais(ArgsLoadInitModel args,String idUnidade,String area, String microarea, bool foraArea)async{
|
Future syncCadastrosIndividuais(urlAPI,mode,nameCityApi,user,idUnidade,area,microarea,foraArea)async{
|
||||||
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/cadastrosIndividuais/1/1/true
|
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/cadastrosIndividuais/1/1/true
|
||||||
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/sync/${idUnidade}/cadastrosIndividuais/$area/$microarea/$foraArea';
|
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/${idUnidade}/cadastrosIndividuais/$area/$microarea/$foraArea';
|
||||||
final response = await http.get(Uri.parse(url));
|
final response = await http.get(Uri.parse(url));
|
||||||
final map = json.decode(response.body);
|
final map = json.decode(response.body);
|
||||||
return map;
|
return map;
|
||||||
|
|||||||
36
lib/service/db/db_querys.dart
Normal file
36
lib/service/db/db_querys.dart
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
import 'package:rkm/service/db/db_sqlite_load.dart';
|
||||||
|
import 'package:sqflite/sqflite.dart';
|
||||||
|
|
||||||
|
class DBQuerys{
|
||||||
|
duplicidadeCNS(String CNS)async{
|
||||||
|
// 707806656421614 JÁ EXISTE
|
||||||
|
// String teste = '707806656421614';
|
||||||
|
Database db = await DbSqliteLoad().intialDB();
|
||||||
|
// print(await db.rawQuery('SELECT * FROM CIDADAOS WHERE CNS=$teste'));
|
||||||
|
List list = await db.rawQuery('SELECT * FROM CIDADAOS WHERE CNS = $CNS');
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
duplicidadeCPF(numCPF)async{
|
||||||
|
// 11992420475 já existe
|
||||||
|
String teste = '11992420475';
|
||||||
|
Database db = await DbSqliteLoad().intialDB();
|
||||||
|
// print(await db.rawQuery('SELECT CPF FROM CIDADAOS'));
|
||||||
|
List list = await db.rawQuery("SELECT * FROM CIDADAOS WHERE CPF = $numCPF");
|
||||||
|
// List list = await db.rawQuery("SELECT * FROM CIDADAOS WHERE CPF = $teste");
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
buscaBairro(nomeBairro)async{
|
||||||
|
Database db = await DbSqliteLoad().intialDB();
|
||||||
|
List list = await db.rawQuery("SELECT * FROM BAIRROS WHERE NO_BAIRRO = '$nomeBairro'");
|
||||||
|
// print(await db.rawQuery('SELECT NO_BAIRRO FROM BAIRROS'));
|
||||||
|
// print(list[0]['ID_BAIRRO']);
|
||||||
|
return list[0]['ID_BAIRRO'].toString();
|
||||||
|
}
|
||||||
|
buscaTipoLogradouro(tipo)async{
|
||||||
|
Database db = await DbSqliteLoad().intialDB();
|
||||||
|
List list = await db.rawQuery("SELECT * FROM LOGRADOUROS_TIPOS WHERE NO_LOGR_TIPO = '$tipo'");
|
||||||
|
// print(await db.rawQuery('SELECT NO_BAIRRO FROM BAIRROS'));
|
||||||
|
print(list[0]['ID_LOGR_TIPO']);
|
||||||
|
return list[0]['ID_LOGR_TIPO'].toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
import 'package:rkm/models/args_load_init_model.dart';
|
|
||||||
import 'package:sqflite/sqflite.dart';
|
import 'package:sqflite/sqflite.dart';
|
||||||
import 'package:path/path.dart';
|
import 'package:path/path.dart';
|
||||||
|
|
||||||
@@ -61,6 +60,7 @@ class DbSqliteLoad{
|
|||||||
db.execute('CREATE TABLE IF NOT EXISTS VISITAS_DOMICILIARES (ID_VISITA_DOMICILIAR INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, DT_ATENDIMENTO TEXT, TURNO INTEGER, TIPO_IMOVEL INTEGER, VISITA_ACOMPANHADA INTEGER, DESFECHO INTEGER, PESO TEXT, ALTURA TEXT, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, COMPLEMENTO TEXT, SINCRONIZADO TEXT);');
|
db.execute('CREATE TABLE IF NOT EXISTS VISITAS_DOMICILIARES (ID_VISITA_DOMICILIAR INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, DT_ATENDIMENTO TEXT, TURNO INTEGER, TIPO_IMOVEL INTEGER, VISITA_ACOMPANHADA INTEGER, DESFECHO INTEGER, PESO TEXT, ALTURA TEXT, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, COMPLEMENTO TEXT, SINCRONIZADO TEXT);');
|
||||||
db.execute('CREATE TABLE IF NOT EXISTS VISITAS_DOMICILIARES_COMPL (ID_VISITA_DOMICILIAR INTEGER, ID_VISITA_DOM_TIPO INTEGER, ID_VISITA_COMPLEMENTO INTEGER);');
|
db.execute('CREATE TABLE IF NOT EXISTS VISITAS_DOMICILIARES_COMPL (ID_VISITA_DOMICILIAR INTEGER, ID_VISITA_DOM_TIPO INTEGER, ID_VISITA_COMPLEMENTO INTEGER);');
|
||||||
db.execute('CREATE TABLE IF NOT EXISTS VISITAS_DOMICILIARES_PROC (ID_VISITA_DOMICILIAR INTEGER, COD_PROC_SIGTAP TEXT);');
|
db.execute('CREATE TABLE IF NOT EXISTS VISITAS_DOMICILIARES_PROC (ID_VISITA_DOMICILIAR INTEGER, COD_PROC_SIGTAP TEXT);');
|
||||||
|
db.execute('CREATE TABLE IF NOT EXISTS ARGS (ID_USER INTEGER, MODE TEXT, USER TEXT, PASSWORD TEXT, URLAPI TEXT, COD_CITY INTEGER, NAME_CITY_API TEXT, NAME_CITY_FRONT TEXT, COD_STATE TEXT, COD_IBGE INTEGER);');
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
return db;
|
return db;
|
||||||
@@ -105,12 +105,42 @@ class DbSqliteLoad{
|
|||||||
'DELETE FROM VISITAS_DOMICILIARES;',
|
'DELETE FROM VISITAS_DOMICILIARES;',
|
||||||
'DELETE FROM VISITAS_DOMICILIARES_COMPL;',
|
'DELETE FROM VISITAS_DOMICILIARES_COMPL;',
|
||||||
'DELETE FROM VISITAS_DOMICILIARES_PROC;',
|
'DELETE FROM VISITAS_DOMICILIARES_PROC;',
|
||||||
|
'DELETE FROM ARGS;',
|
||||||
];
|
];
|
||||||
Database db = await intialDB();
|
Database db = await intialDB();
|
||||||
for(int i=0;querys.length>i;i++){
|
for(int i=0;querys.length>i;i++){
|
||||||
db.execute(querys[i]);
|
db.execute(querys[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future saveArgs(mode,user,password,urlAPI,codCity,nameCityApi,nameCityFront,codState,codCityIbge)async{
|
||||||
|
Database db = await intialDB();
|
||||||
|
Map<String, dynamic> row = {
|
||||||
|
'ID_USER' : 1,
|
||||||
|
'MODE' : mode,
|
||||||
|
'USER' : user,
|
||||||
|
'PASSWORD' : password,
|
||||||
|
'URLAPI' : urlAPI,
|
||||||
|
'COD_CITY' : codCity,
|
||||||
|
'NAME_CITY_API' : nameCityApi,
|
||||||
|
'NAME_CITY_FRONT': nameCityFront,
|
||||||
|
'COD_STATE' : codState,
|
||||||
|
'COD_IBGE' : codCityIbge,
|
||||||
|
};
|
||||||
|
int id = await db.insert('ARGS', row);
|
||||||
|
return db;
|
||||||
|
}
|
||||||
|
|
||||||
|
Future updateArgs(mode,user,password)async{
|
||||||
|
Database db = await intialDB();
|
||||||
|
var query = "UPDATE ARGS SET USER = '$user' WHERE ID_USER = 1;";
|
||||||
|
var query1 = "UPDATE ARGS SET PASSWORD = '$password' WHERE ID_USER = 1;";
|
||||||
|
await db.execute(query);
|
||||||
|
await db.execute(query1);
|
||||||
|
// print(await db.query('ARGS'));
|
||||||
|
return db;
|
||||||
|
}
|
||||||
|
|
||||||
Future saveUnidadesDB(var value)async{
|
Future saveUnidadesDB(var value)async{
|
||||||
Database db = await intialDB();
|
Database db = await intialDB();
|
||||||
for(int i=0;value.length > i;i++){
|
for(int i=0;value.length > i;i++){
|
||||||
@@ -289,7 +319,7 @@ class DbSqliteLoad{
|
|||||||
int id = await db.insert('PROFISSIONAIS_EQUIPE', row);
|
int id = await db.insert('PROFISSIONAIS_EQUIPE', row);
|
||||||
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
|
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
|
||||||
}
|
}
|
||||||
print(await db.query('PROFISSIONAIS_EQUIPE'));
|
// print(await db.query('PROFISSIONAIS_EQUIPE'));
|
||||||
return db;
|
return db;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,13 +1,11 @@
|
|||||||
import 'package:rkm/service/db/db_sqlite_load.dart';
|
import 'package:rkm/service/db/db_sqlite_load.dart';
|
||||||
import 'package:sqflite/sqflite.dart';
|
import 'package:sqflite/sqflite.dart';
|
||||||
|
|
||||||
import '../../models/args_load_init_model.dart';
|
|
||||||
|
|
||||||
class DbSqliteSync{
|
class DbSqliteSync{
|
||||||
|
|
||||||
Future deleteSync()async{
|
Future deleteSync()async{
|
||||||
var querys = [
|
var querys = [
|
||||||
"UPDATE CONTROLE_INTERNO SET SYNC_UNIDADE = NULL, UNIDADE_SYNC = NULL, NOME_UNIDADE = NULL WHERE rowid = 1;",
|
"DELETE FROM CONTROLE_INTERNO",
|
||||||
"DELETE FROM BAIRROS;",
|
"DELETE FROM BAIRROS;",
|
||||||
"DELETE FROM LOGRADOUROS_TIPOS;",
|
"DELETE FROM LOGRADOUROS_TIPOS;",
|
||||||
"DELETE FROM LOGRADOUROS_ENDERECOS;",
|
"DELETE FROM LOGRADOUROS_ENDERECOS;",
|
||||||
@@ -62,13 +60,13 @@ class DbSqliteSync{
|
|||||||
for(int i=0;value.length > i;i++){
|
for(int i=0;value.length > i;i++){
|
||||||
Map<String, dynamic> row = {
|
Map<String, dynamic> row = {
|
||||||
'ID_LOGR_ENDERECO' : value[i]['idLogradouro'],
|
'ID_LOGR_ENDERECO' : value[i]['idLogradouro'],
|
||||||
'ID_LOGR_TIPO' : value[i]['descLogradouro'],
|
'ID_LOGR_TIPO' : value[i]['idTipoLogradouro'],
|
||||||
'DESC_LOGR_ENDERECO' : value[i]['idTipoLogradouro'],
|
'DESC_LOGR_ENDERECO' : value[i]['descLogradouro'],
|
||||||
'ID_BAIRRO' : value[i]['idBairro'],
|
'ID_BAIRRO' : value[i]['idBairro'],
|
||||||
};
|
};
|
||||||
int id = await db.insert('LOGRADOUROS_ENDERECOS', row);
|
int id = await db.insert('LOGRADOUROS_ENDERECOS', row);
|
||||||
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
|
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
|
||||||
// print(await db.query('LOGRADOUROS_ENDERECOS'));
|
print(await db.query('LOGRADOUROS_ENDERECOS'));
|
||||||
}
|
}
|
||||||
return db;
|
return db;
|
||||||
}
|
}
|
||||||
@@ -121,7 +119,7 @@ class DbSqliteSync{
|
|||||||
}
|
}
|
||||||
return db;
|
return db;
|
||||||
}
|
}
|
||||||
Future insertCidadaos(var value)async{
|
Future insertCidadaos(var value,String type)async{
|
||||||
Database db = await DbSqliteLoad().intialDB();
|
Database db = await DbSqliteLoad().intialDB();
|
||||||
// CIDADAOS (ID_CIDADAO,CD_USUARIO_SUS,NOME_CIDADAO,NOME_SOCIAL,SEXO,DT_NASCIMENTO,ID_ESTADO_CIVIL,NOME_CONJUGE,NACIONALIDADE,ID_MUNICIPIO_NASC,NO_MUNICIPIO_NASC,ESTADO_UF_NASC
|
// CIDADAOS (ID_CIDADAO,CD_USUARIO_SUS,NOME_CIDADAO,NOME_SOCIAL,SEXO,DT_NASCIMENTO,ID_ESTADO_CIVIL,NOME_CONJUGE,NACIONALIDADE,ID_MUNICIPIO_NASC,NO_MUNICIPIO_NASC,ESTADO_UF_NASC
|
||||||
// ID_ETNIA,ID_ESCOLARIDADE,ID_DEFICIENCIA,NOME_MAE,DESCONHECE_MAE,NOME_PAI,DESCONHECE_PAI,ID_UNIDADE,NUM_PRONTUARIO,NUM_PRONTUARIO_PROV,CLASSIFICACAO,CLASSIFICACAO_SUB,
|
// ID_ETNIA,ID_ESCOLARIDADE,ID_DEFICIENCIA,NOME_MAE,DESCONHECE_MAE,NOME_PAI,DESCONHECE_PAI,ID_UNIDADE,NUM_PRONTUARIO,NUM_PRONTUARIO_PROV,CLASSIFICACAO,CLASSIFICACAO_SUB,
|
||||||
@@ -141,92 +139,97 @@ class DbSqliteSync{
|
|||||||
'"nrLivroCertidao":null,"nrFolhaCertidao":null,"noTermoCertidao":"","dtEmissaoCertidao":null,"nrCtps":null,"nrSerieCtps":null,"cdSiglaUfCtps":"--","nrPispasep":"",'
|
'"nrLivroCertidao":null,"nrFolhaCertidao":null,"noTermoCertidao":"","dtEmissaoCertidao":null,"nrCtps":null,"nrSerieCtps":null,"cdSiglaUfCtps":"--","nrPispasep":"",'
|
||||||
'"cartaoMunicipalRetirado":"N","nrNis":"","rendaMensal":null,"profissao":"","dtObito":null,"bloqueio":"0","origem":"S","cdDomicilio":1838,"atendimentos":0,'
|
'"cartaoMunicipalRetirado":"N","nrNis":"","rendaMensal":null,"profissao":"","dtObito":null,"bloqueio":"0","origem":"S","cdDomicilio":1838,"atendimentos":0,'
|
||||||
'"idUsuarioCadastro":null';
|
'"idUsuarioCadastro":null';
|
||||||
for(int i=0;value.length > i;i++){
|
|
||||||
Map<String, dynamic> row = {
|
if(type=='sync'){
|
||||||
'ID_CIDADAO' : value[i]['idCidadao'],
|
for(int i=0;value.length > i;i++){
|
||||||
'CD_USUARIO_SUS' : value[i]['cdUsuarioSus'],
|
Map<String, dynamic> row = {
|
||||||
'NOME_CIDADAO' : value[i]['noUsuario'],
|
'ID_CIDADAO' : value[i]['idCidadao'],
|
||||||
'NOME_SOCIAL' : value[i]['nomeSocial'],
|
'CD_USUARIO_SUS' : value[i]['cdUsuarioSus'],
|
||||||
'SEXO' : value[i]['inSexo'],
|
'NOME_CIDADAO' : value[i]['noUsuario'],
|
||||||
'DT_NASCIMENTO' : value[i]['dtNascimento'],
|
'NOME_SOCIAL' : value[i]['nomeSocial'],
|
||||||
'ID_ESTADO_CIVIL' : value[i]['inSituacaoConjugal'],
|
'SEXO' : value[i]['inSexo'],
|
||||||
'ID_ESTADO_CIVIL' : value[i]['inSituacaoConjugal'],
|
'DT_NASCIMENTO' : value[i]['dtNascimento'],
|
||||||
'NOME_CONJUGE' : value[i]['noConjugue'],
|
'ID_ESTADO_CIVIL' : value[i]['inSituacaoConjugal'],
|
||||||
'NACIONALIDADE' : value[i]['nacionalidade'],
|
'ID_ESTADO_CIVIL' : value[i]['inSituacaoConjugal'],
|
||||||
'ID_MUNICIPIO_NASC' : value[i]['cdMunicipioNasc'],
|
'NOME_CONJUGE' : value[i]['noConjugue'],
|
||||||
'NO_MUNICIPIO_NASC' : value[i]['noMunicipioNasc'],
|
'NACIONALIDADE' : value[i]['nacionalidade'],
|
||||||
'ESTADO_UF_NASC' : value[i]['cdEstado'],
|
'ID_MUNICIPIO_NASC' : value[i]['cdMunicipioNasc'],
|
||||||
'ID_ETNIA' : value[i]['cdEtnia'],
|
'NO_MUNICIPIO_NASC' : value[i]['noMunicipioNasc'],
|
||||||
'ID_ESCOLARIDADE' : value[i]['cdUsuarioEscolaridade'],
|
'ESTADO_UF_NASC' : value[i]['cdEstado'],
|
||||||
'ID_DEFICIENCIA' : value[i]['nrDeficiencia'],
|
'ID_ETNIA' : value[i]['cdEtnia'],
|
||||||
'NOME_MAE' : value[i]['noMae'],
|
'ID_ESCOLARIDADE' : value[i]['cdUsuarioEscolaridade'],
|
||||||
'DESCONHECE_MAE' : value[i]['desconheceMae'],
|
'ID_DEFICIENCIA' : value[i]['nrDeficiencia'],
|
||||||
'NOME_PAI' : value[i]['noPai'],
|
'NOME_MAE' : value[i]['noMae'],
|
||||||
'DESCONHECE_PAI' : value[i]['desconhecePai'],
|
'DESCONHECE_MAE' : value[i]['desconheceMae'],
|
||||||
'DESCONHECE_PAI' : value[i]['desconhecePai'],
|
'NOME_PAI' : value[i]['noPai'],
|
||||||
'ID_UNIDADE' : value[i]['nrUnidade'],
|
'DESCONHECE_PAI' : value[i]['desconhecePai'],
|
||||||
'NUM_PRONTUARIO' : value[i]['nrProntuario'],
|
'ID_UNIDADE' : value[i]['nrUnidade'],
|
||||||
'NUM_PRONTUARIO_PROV' : value[i]['nrProntuarioProvisorio'],
|
'NUM_PRONTUARIO' : value[i]['nrProntuario'],
|
||||||
'CLASSIFICACAO' : value[i]['classificacao'],
|
'NUM_PRONTUARIO_PROV' : value[i]['nrProntuarioProvisorio'],
|
||||||
'CLASSIFICACAO_SUB' : '',
|
'CLASSIFICACAO' : value[i]['classificacao'],
|
||||||
'NUM_FAMILIA' : value[i]['nrFamilia'],
|
'CLASSIFICACAO_SUB' : '',
|
||||||
'ID_PAIS_RESID' : value[i]['idPaisResid'],
|
'NUM_FAMILIA' : value[i]['nrFamilia'],
|
||||||
'ID_MUNICIPIO_RESID' : value[i]['cdMunicipioResid'],
|
'ID_PAIS_RESID' : value[i]['idPaisResid'],
|
||||||
'NO_MUNICIPIO_RESID' : value[i]['noMunicipioResid'],
|
'ID_MUNICIPIO_RESID' : value[i]['cdMunicipioResid'],
|
||||||
'ESTADO_UF_RESID' : value[i]['cdEstadoResid'],
|
'NO_MUNICIPIO_RESID' : value[i]['noMunicipioResid'],
|
||||||
'CODIGO_IBGE_RESID' : value[i]['muniCdCodIbgeResid'],
|
'ESTADO_UF_RESID' : value[i]['cdEstadoResid'],
|
||||||
'NO_BAIRRO_LOGR' : value[i]['noBairro'],
|
'CODIGO_IBGE_RESID' : value[i]['muniCdCodIbgeResid'],
|
||||||
'ID_LOGR_TIPO' : value[i]['idTipoLogradouro'],
|
'NO_BAIRRO_LOGR' : value[i]['noBairro'],
|
||||||
'NOME_LOGR' : value[i]['noLogradouro'],
|
'ID_LOGR_TIPO' : value[i]['idTipoLogradouro'],
|
||||||
'CEP_LOGR' : value[i]['cdCep'],
|
'NOME_LOGR' : value[i]['noLogradouro'],
|
||||||
'NUMERO_LOGR' : value[i]['nrLogradouro'],
|
'CEP_LOGR' : value[i]['cdCep'],
|
||||||
'LOTEAMENTO_LOGR' : value[i]['loteamento'],
|
'NUMERO_LOGR' : value[i]['nrLogradouro'],
|
||||||
'COMPL_LOGR' : value[i]['noComplLogradouro'],
|
'LOTEAMENTO_LOGR' : value[i]['loteamento'],
|
||||||
'PONTO_REFERENCIA' : value[i]['pontoReferencia'],
|
'COMPL_LOGR' : value[i]['noComplLogradouro'],
|
||||||
'ZONA_LOGR' : value[i]['zona'],
|
'PONTO_REFERENCIA' : value[i]['pontoReferencia'],
|
||||||
'DDD_TELEFONE' : value[i]['nrDddTelefone'],
|
'ZONA_LOGR' : value[i]['zona'],
|
||||||
'NUM_TELEFONE' : value[i]['nrCelular'],
|
'DDD_TELEFONE' : value[i]['nrDddTelefone'],
|
||||||
'DDD_RECADO' : value[i]['nrDddRecado'],
|
'NUM_TELEFONE' : value[i]['nrCelular'],
|
||||||
'NUM_RECADO' : value[i]['nrRecado'],
|
'DDD_RECADO' : value[i]['nrDddRecado'],
|
||||||
'EMAIL' : value[i]['email'],
|
'NUM_RECADO' : value[i]['nrRecado'],
|
||||||
'OBSERVACOES' : value[i]['observacao'],
|
'EMAIL' : value[i]['email'],
|
||||||
'CPF' : value[i]['nrCpf'],
|
'OBSERVACOES' : value[i]['observacao'],
|
||||||
'CNS' : value[i]['nrCns'],
|
'CPF' : value[i]['nrCpf'],
|
||||||
'TITULO_ELEITOR' : value[i]['tituloEleitor'],
|
'CNS' : value[i]['nrCns'],
|
||||||
'RG_NUMERO' : value[i]['nrIdentidade'],
|
'TITULO_ELEITOR' : value[i]['tituloEleitor'],
|
||||||
'RG_COMPLEMENTO' : value[i]['noComplIdentidade'],
|
'RG_NUMERO' : value[i]['nrIdentidade'],
|
||||||
'RG_UF' : value[i]['cdSiglaUfIdentidade'],
|
'RG_COMPLEMENTO' : value[i]['noComplIdentidade'],
|
||||||
'RG_ORGAO' : value[i]['cdOrgaoEmissorIdentidade'],
|
'RG_UF' : value[i]['cdSiglaUfIdentidade'],
|
||||||
'RG_DATA_EMISSAO' : value[i]['dtEmissaoIdentidade'],
|
'RG_ORGAO' : value[i]['cdOrgaoEmissorIdentidade'],
|
||||||
'TIPO_CERTIDAO' : value[i]['cdTipoCertidao'],
|
'RG_DATA_EMISSAO' : value[i]['dtEmissaoIdentidade'],
|
||||||
'NUM_CERTIDAO' : value[i]['nrCertidaoNova'],
|
'TIPO_CERTIDAO' : value[i]['cdTipoCertidao'],
|
||||||
'CARTORIO_CERTIDAO' : value[i]['noCartorioCertidao'],
|
'NUM_CERTIDAO' : value[i]['nrCertidaoNova'],
|
||||||
'LIVRO_CERTIDAO' : value[i]['nrLivroCertidao'],
|
'CARTORIO_CERTIDAO' : value[i]['noCartorioCertidao'],
|
||||||
'FOLHA_CERTIDAO' : value[i]['nrFolhaCertidao'],
|
'LIVRO_CERTIDAO' : value[i]['nrLivroCertidao'],
|
||||||
'TERMO_CERTIDAO' : value[i]['noTermoCertidao'],
|
'FOLHA_CERTIDAO' : value[i]['nrFolhaCertidao'],
|
||||||
'DT_EMISSAO_CERTIDAO' : value[i]['dtEmissaoCertidao'],
|
'TERMO_CERTIDAO' : value[i]['noTermoCertidao'],
|
||||||
'NUM_CTPS' : value[i]['nrCtps'],
|
'DT_EMISSAO_CERTIDAO' : value[i]['dtEmissaoCertidao'],
|
||||||
'NUM_SERIE_CTPS' : value[i]['nrSerieCtps'],
|
'NUM_CTPS' : value[i]['nrCtps'],
|
||||||
'ESTADO_UF_CTPS' : value[i]['cdSiglaUfCtps'],
|
'NUM_SERIE_CTPS' : value[i]['nrSerieCtps'],
|
||||||
'NUM_PIS_PASEP' : value[i]['nrPispasep'],
|
'ESTADO_UF_CTPS' : value[i]['cdSiglaUfCtps'],
|
||||||
'FL_RETIROU_CARTAO' : value[i]['cartaoMunicipalRetirado'],
|
'NUM_PIS_PASEP' : value[i]['nrPispasep'],
|
||||||
'NUM_NIS' : value[i]['nrNis'],
|
'FL_RETIROU_CARTAO' : value[i]['cartaoMunicipalRetirado'],
|
||||||
'NUM_PROT_CROSS' : '',
|
'NUM_NIS' : value[i]['nrNis'],
|
||||||
'RENDA_MENSAL' : value[i]['rendaMensal'],
|
'NUM_PROT_CROSS' : '',
|
||||||
'PROFISSAO' : value[i]['profissao'],
|
'RENDA_MENSAL' : value[i]['rendaMensal'],
|
||||||
'DT_OBITO' : value[i]['dtObito'],
|
'PROFISSAO' : value[i]['profissao'],
|
||||||
'DECLARACAO_OBITO' : '',
|
'DT_OBITO' : value[i]['dtObito'],
|
||||||
'BLOQUEIO' : value[i]['bloqueio'],
|
'DECLARACAO_OBITO' : '',
|
||||||
'ORIGEM' : value[i]['origem'],
|
'BLOQUEIO' : value[i]['bloqueio'],
|
||||||
'DT_HORA_CADASTRO' : value[i]['profissao'],
|
'ORIGEM' : value[i]['origem'],
|
||||||
'ID_USUARIO_CADASTRO' : value[i]['idUsuarioCadastro'],
|
'DT_HORA_CADASTRO' : value[i]['profissao'],
|
||||||
'ID_DOMICILIO' : value[i]['cdDomicilio'],
|
'ID_USUARIO_CADASTRO' : value[i]['idUsuarioCadastro'],
|
||||||
'ATENDIMENTOS' : value[i]['atendimentos'],
|
'ID_DOMICILIO' : value[i]['cdDomicilio'],
|
||||||
'SINCRONIZADO' : '',
|
'ATENDIMENTOS' : value[i]['atendimentos'],
|
||||||
};
|
'SINCRONIZADO' : '',
|
||||||
int id = await db.insert('CIDADAOS', row);
|
};
|
||||||
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
|
int id = await db.insert('CIDADAOS', row);
|
||||||
// print(await db.query('CIDADAOS'));
|
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
|
||||||
|
// print(await db.query('CIDADAOS'));
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
int id = await db.insert('CIDADAOS', value);
|
||||||
|
print('novo id $id');
|
||||||
}
|
}
|
||||||
return db;
|
return db;
|
||||||
}
|
}
|
||||||
@@ -414,7 +417,7 @@ class DbSqliteSync{
|
|||||||
}
|
}
|
||||||
return db;
|
return db;
|
||||||
}
|
}
|
||||||
Future saveSync(ArgsLoadInitModel args,idUnidade,area,microarea)async{
|
Future saveSync(codCity,codState,urlAPI,mode,nameCityApi,nameCityFront,codCityIbge,user,idUnidade,nomeUnidade,area,microarea)async{
|
||||||
Database db = await DbSqliteLoad().intialDB();
|
Database db = await DbSqliteLoad().intialDB();
|
||||||
//refatorar cidade_load e nome_cidade
|
//refatorar cidade_load e nome_cidade
|
||||||
'parameters = [{"carga_inicial": 1, "cidade_load": cidade, "nome_cidade": vm.nomeCidade[cidade], "cidade_id": cidadeID, "estado": estado, "ibge": ibge, "ambiente": ambiente, "competencia": competencia.replace(/\D/g, '')}]';
|
'parameters = [{"carga_inicial": 1, "cidade_load": cidade, "nome_cidade": vm.nomeCidade[cidade], "cidade_id": cidadeID, "estado": estado, "ibge": ibge, "ambiente": ambiente, "competencia": competencia.replace(/\D/g, '')}]';
|
||||||
@@ -422,21 +425,20 @@ class DbSqliteSync{
|
|||||||
|
|
||||||
Map<String, dynamic> row = {
|
Map<String, dynamic> row = {
|
||||||
'CARGA_INICIAL' : 1,
|
'CARGA_INICIAL' : 1,
|
||||||
'CIDADE_LOAD' : args.model.nameCityApi,
|
'CIDADE_LOAD' : nameCityApi,
|
||||||
'NOME_CIDADE' : args.model.nameCityFront,
|
'NOME_CIDADE' : nameCityFront,
|
||||||
'ID_MUNICIPIO' : args.model.codCity,
|
'ID_MUNICIPIO' : codCity,
|
||||||
'UF_ESTADO' : args.model.codState,
|
'UF_ESTADO' : codState,
|
||||||
'CODIGO_IBGE' : args.model.codCityIbge,
|
'CODIGO_IBGE' : codCityIbge,
|
||||||
'AMBIENTE' : args.mode,
|
'AMBIENTE' : mode,
|
||||||
'SYNC_UNIDADE' : idUnidade,
|
'SYNC_UNIDADE' : idUnidade,
|
||||||
'NOME_UNIDADE' : args.model.nameCityFront,
|
'NOME_UNIDADE' : nomeUnidade,
|
||||||
'AREA' : area,
|
'AREA' : area,
|
||||||
'MICROAREA' : microarea,
|
'MICROAREA' : microarea,
|
||||||
'ULTIMA_SINCRONIZACAO' : DateTime.now().toString(),
|
'ULTIMA_SINCRONIZACAO' : DateTime.now().toString(),
|
||||||
'COMPETENCIA' : '${DateTime.now().year}${DateTime.now().month<10?'0':''}${DateTime.now().month-1}',
|
'COMPETENCIA' : '${DateTime.now().year}${DateTime.now().month<10?'0':''}${DateTime.now().month-1}',
|
||||||
};
|
};
|
||||||
int id = await db.insert('CONTROLE_INTERNO', row);
|
int id = await db.insert('CONTROLE_INTERNO', row);
|
||||||
print(await db.query('CONTROLE_INTERNO'));
|
|
||||||
return db;
|
return db;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,10 +7,11 @@ class PrefService{
|
|||||||
SharedPreferences _preferences = await SharedPreferences.getInstance();
|
SharedPreferences _preferences = await SharedPreferences.getInstance();
|
||||||
_preferences.setString('idUsuario', idUsuario);
|
_preferences.setString('idUsuario', idUsuario);
|
||||||
}
|
}
|
||||||
Future createCacheidUnidade(String idUnidade)async{
|
Future createCacheUnidade(String idUnidade, String nomeUnidade)async{
|
||||||
|
|
||||||
SharedPreferences _preferences = await SharedPreferences.getInstance();
|
SharedPreferences _preferences = await SharedPreferences.getInstance();
|
||||||
_preferences.setString('idUnidade', idUnidade);
|
_preferences.setString('idUnidade', idUnidade);
|
||||||
|
_preferences.setString('nomeUnidade', nomeUnidade);
|
||||||
}
|
}
|
||||||
Future createCacheSync(String area,bool foraArea)async{
|
Future createCacheSync(String area,bool foraArea)async{
|
||||||
|
|
||||||
@@ -33,10 +34,15 @@ class PrefService{
|
|||||||
var idUsuario = _preferences.getString('idUsuario');
|
var idUsuario = _preferences.getString('idUsuario');
|
||||||
return idUsuario;
|
return idUsuario;
|
||||||
}
|
}
|
||||||
Future readCacheIdUnidade(String idUnidade) async{
|
Future readCacheUnidade(String idUnidade) async{
|
||||||
SharedPreferences _preferences = await SharedPreferences.getInstance();
|
SharedPreferences _preferences = await SharedPreferences.getInstance();
|
||||||
var idUnidade = _preferences.getString('idUnidade');
|
var idUnidade = _preferences.getString('idUnidade');
|
||||||
return idUnidade;
|
var nomeUnidade = _preferences.getString('nomeUnidade');
|
||||||
|
List list =[
|
||||||
|
idUnidade,
|
||||||
|
nomeUnidade,
|
||||||
|
];
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
Future readCacheModel(String user,String password,String city,String mode) async{
|
Future readCacheModel(String user,String password,String city,String mode) async{
|
||||||
SharedPreferences _preferences = await SharedPreferences.getInstance();
|
SharedPreferences _preferences = await SharedPreferences.getInstance();
|
||||||
|
|||||||
@@ -8,6 +8,10 @@ class ConstVariable{
|
|||||||
EdgeInsetsGeometry paddingWidth = EdgeInsets.symmetric(horizontal: 10);
|
EdgeInsetsGeometry paddingWidth = EdgeInsets.symmetric(horizontal: 10);
|
||||||
double fontSizeInput = 15;
|
double fontSizeInput = 15;
|
||||||
double fontSizeTitleAppBar = 20;
|
double fontSizeTitleAppBar = 20;
|
||||||
|
List<String> RGUF = ['AC','AI','AL','AM','AN','AP','AS','BA','BY','CA','CB','CE','CH','CN','CO','DC','DF','ES','GD','GO','GU',
|
||||||
|
'HU','IL','LA','LE','LI','LO','LT','MA','MG','MO','MS','MT','NB','NE','NW','NT','NY','OH','OU','PA','PB',
|
||||||
|
'PE','PI','PO','PR','QH','RJ','RM','RN','RO','RR','RN','RO','RR','RS','SC','SE','SF','SJ','SP','TA','TO',
|
||||||
|
'VC','XX','ZU'];
|
||||||
List<String> itensProceduresStart = [
|
List<String> itensProceduresStart = [
|
||||||
'ATENDIMENTO INDIVIDUAL',
|
'ATENDIMENTO INDIVIDUAL',
|
||||||
'VISTA DOMICILIAR'
|
'VISTA DOMICILIAR'
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import '../screens/sinc_data_screen.dart';
|
|||||||
var routes = {
|
var routes = {
|
||||||
'/home': (context) => HomeScreen(),
|
'/home': (context) => HomeScreen(),
|
||||||
'/login_load': (context) => LoginLoadScreen(),
|
'/login_load': (context) => LoginLoadScreen(),
|
||||||
'/register_citizen': (context) => RegisterCitizenScreen(),
|
'/register_citizen': (context) => RegisterCitizenScreen(select: '',),
|
||||||
'/attendance_list': (context) => AttendanceListScreen(),
|
'/attendance_list': (context) => AttendanceListScreen(),
|
||||||
'/about': (context) => AboutScreen(),
|
'/about': (context) => AboutScreen(),
|
||||||
'/main_procedures': (context) => MainProceduresScreen(),
|
'/main_procedures': (context) => MainProceduresScreen(),
|
||||||
|
|||||||
120
lib/widgets/alert_dialog_search_stateful.dart
Normal file
120
lib/widgets/alert_dialog_search_stateful.dart
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:rkm/widgets/text_default.dart';
|
||||||
|
import 'package:sqflite/sqflite.dart';
|
||||||
|
import '../screens/registers_citizen/register_citizen_screen.dart';
|
||||||
|
import '../service/db/db_sqlite_load.dart';
|
||||||
|
import '../utils/color_palette.dart';
|
||||||
|
import 'input_search_text.dart';
|
||||||
|
|
||||||
|
class AlertDialogSearchStateful extends StatefulWidget {
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<AlertDialogSearchStateful> createState() => _AlertDialogSearchStatefulState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _AlertDialogSearchStatefulState extends State<AlertDialogSearchStateful> {
|
||||||
|
|
||||||
|
List cityDB = [];
|
||||||
|
List showResultSearchCity = [];
|
||||||
|
var controller = TextEditingController();
|
||||||
|
|
||||||
|
_searchCityBirth(){
|
||||||
|
searchCity();
|
||||||
|
}
|
||||||
|
getCity()async{
|
||||||
|
Database db = await DbSqliteLoad().intialDB();
|
||||||
|
var query = "SELECT * FROM MUNICIPIOS ORDER BY NO_MUNICIPIO";
|
||||||
|
List list = await db.rawQuery(query);
|
||||||
|
// print("SELECT * FROM UNIDADES");
|
||||||
|
// print(await db.rawQuery("SELECT * FROM UNIDADES"));
|
||||||
|
for(int i=0; list.length > i;i++){
|
||||||
|
cityDB.add('${list[i]['NO_MUNICIPIO']} - ${list[i]['UF_ESTADO']}');
|
||||||
|
}
|
||||||
|
searchCity();
|
||||||
|
return 'complete';
|
||||||
|
}
|
||||||
|
|
||||||
|
searchCity()async{
|
||||||
|
if(controller.text.isNotEmpty){
|
||||||
|
showResultSearchCity =[];
|
||||||
|
for (int i =0;cityDB.length>i;i++) {
|
||||||
|
String CIDADE = '${cityDB[i]}';
|
||||||
|
|
||||||
|
if(CIDADE.contains(controller.text.toUpperCase())){
|
||||||
|
if(showResultSearchCity.length<10){
|
||||||
|
showResultSearchCity.add(cityDB[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setState(() {
|
||||||
|
print(showResultSearchCity);
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
setState(() {
|
||||||
|
for(int i = 0;i<10;i++){
|
||||||
|
showResultSearchCity.add(cityDB[i]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
getCity();
|
||||||
|
controller.addListener(_searchCityBirth);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
|
||||||
|
double width = MediaQuery.of(context).size.width;
|
||||||
|
double height = MediaQuery.of(context).size.height;
|
||||||
|
|
||||||
|
return AlertDialog(
|
||||||
|
title: InputSearchText(
|
||||||
|
controller: controller,
|
||||||
|
width: width*0.3,
|
||||||
|
hint: 'Buscar...',
|
||||||
|
color: ColorPalette.titleContainer,
|
||||||
|
border: false,
|
||||||
|
),
|
||||||
|
content: Container(
|
||||||
|
padding: EdgeInsets.symmetric(vertical: 10),
|
||||||
|
width: width*0.8,
|
||||||
|
child: Container(
|
||||||
|
width: width*0.8,
|
||||||
|
height: height*0.8,
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 10),
|
||||||
|
child: ListView.separated(
|
||||||
|
separatorBuilder:(context,index)=> Divider(color: ColorPalette.black54,height: 5,),
|
||||||
|
itemCount: showResultSearchCity.length,
|
||||||
|
itemBuilder: (context,index){
|
||||||
|
return Container(
|
||||||
|
width: width*0.8,
|
||||||
|
color: ColorPalette.white,
|
||||||
|
child: ListTile(
|
||||||
|
onTap: (){
|
||||||
|
setState(() {
|
||||||
|
controller.text = showResultSearchCity[index];
|
||||||
|
Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(select: controller.text,)),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
title: TextDefault(
|
||||||
|
color: ColorPalette.black54,
|
||||||
|
text: showResultSearchCity[index],
|
||||||
|
fontSize: 16,
|
||||||
|
maxLines: 2,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,14 +1,13 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:rkm/models/args_load_init_model.dart';
|
|
||||||
import 'package:rkm/widgets/alert_dialog_settings.dart';
|
import 'package:rkm/widgets/alert_dialog_settings.dart';
|
||||||
import '../screens/login/sync_login_screen.dart';
|
import '../screens/login/login_saved_screen.dart';
|
||||||
import '../utils/color_palette.dart';
|
import '../utils/color_palette.dart';
|
||||||
import 'icon_button_default.dart';
|
import 'icon_button_default.dart';
|
||||||
|
|
||||||
class AppBarDefault{
|
class AppBarDefault{
|
||||||
|
|
||||||
@override
|
@override
|
||||||
PreferredSize appbar(BuildContext context,String title,{ArgsLoadInitModel? args}) {
|
PreferredSize appbar(BuildContext context,String title) {
|
||||||
return PreferredSize(
|
return PreferredSize(
|
||||||
preferredSize: Size.fromHeight(50),
|
preferredSize: Size.fromHeight(50),
|
||||||
child: AppBar(
|
child: AppBar(
|
||||||
@@ -26,7 +25,7 @@ class AppBarDefault{
|
|||||||
onPressed: (){
|
onPressed: (){
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(builder: (context) => SyncLoginScreen(args: args!)),
|
MaterialPageRoute(builder: (context) => LoginSavedScreen(listControl: [])),
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
|
|||||||
33
lib/widgets/error_default.dart
Normal file
33
lib/widgets/error_default.dart
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:rkm/widgets/text_default.dart';
|
||||||
|
|
||||||
|
class ErrorDefault extends StatelessWidget {
|
||||||
|
double widthDefault;
|
||||||
|
String error;
|
||||||
|
|
||||||
|
ErrorDefault({
|
||||||
|
this.widthDefault = 0.7,
|
||||||
|
this.error = 'Esse campo é obrigatório!'
|
||||||
|
});
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
|
||||||
|
double height = MediaQuery.of(context).size.height;
|
||||||
|
double width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
|
return Container(
|
||||||
|
height: 20,
|
||||||
|
width: width*widthDefault,
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Divider(color: Colors.red,height: 2,thickness:2),
|
||||||
|
Container(
|
||||||
|
height: 15,
|
||||||
|
width: width*widthDefault,
|
||||||
|
child: TextDefault(text:error,color: Colors.red,fontSize: 12),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,6 +9,7 @@ class InputSearchText extends StatelessWidget {
|
|||||||
double width;
|
double width;
|
||||||
Color color;
|
Color color;
|
||||||
bool border;
|
bool border;
|
||||||
|
var onChanged;
|
||||||
|
|
||||||
InputSearchText({
|
InputSearchText({
|
||||||
required this.controller,
|
required this.controller,
|
||||||
@@ -17,6 +18,7 @@ class InputSearchText extends StatelessWidget {
|
|||||||
this.hint = '',
|
this.hint = '',
|
||||||
this.color = ColorPalette.white,
|
this.color = ColorPalette.white,
|
||||||
this.border = true,
|
this.border = true,
|
||||||
|
this.onChanged = null
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -26,9 +28,10 @@ class InputSearchText extends StatelessWidget {
|
|||||||
margin: ConstVariable().marginHightInput,
|
margin: ConstVariable().marginHightInput,
|
||||||
width: width,
|
width: width,
|
||||||
child: TextFormField(
|
child: TextFormField(
|
||||||
|
onChanged: onChanged,
|
||||||
controller: this.controller,
|
controller: this.controller,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: ColorPalette.gray,
|
color: Colors.black,
|
||||||
fontSize: this.fontSize,
|
fontSize: this.fontSize,
|
||||||
),
|
),
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
@@ -37,7 +40,7 @@ class InputSearchText extends StatelessWidget {
|
|||||||
border: border?OutlineInputBorder():null,
|
border: border?OutlineInputBorder():null,
|
||||||
hintText: this.hint,
|
hintText: this.hint,
|
||||||
hintStyle: TextStyle(
|
hintStyle: TextStyle(
|
||||||
color: ColorPalette.gray,
|
color: Colors.black,
|
||||||
fontSize: this.fontSize,
|
fontSize: this.fontSize,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:rkm/utils/color_palette.dart';
|
import 'package:rkm/utils/color_palette.dart';
|
||||||
|
import '../controllers/format_txt.dart';
|
||||||
import '../utils/const_variable.dart';
|
import '../utils/const_variable.dart';
|
||||||
|
|
||||||
class InputText extends StatelessWidget {
|
class InputText extends StatelessWidget {
|
||||||
@@ -9,7 +10,6 @@ class InputText extends StatelessWidget {
|
|||||||
String hint;
|
String hint;
|
||||||
double width;
|
double width;
|
||||||
String label;
|
String label;
|
||||||
String error;
|
|
||||||
bool enable;
|
bool enable;
|
||||||
TextInputType textInputType;
|
TextInputType textInputType;
|
||||||
int maxLines;
|
int maxLines;
|
||||||
@@ -23,7 +23,6 @@ class InputText extends StatelessWidget {
|
|||||||
this.fontSize = 15.0,
|
this.fontSize = 15.0,
|
||||||
this.hint = '',
|
this.hint = '',
|
||||||
this.label = '',
|
this.label = '',
|
||||||
this.error = '',
|
|
||||||
this.enable = true,
|
this.enable = true,
|
||||||
this.textInputType = TextInputType.text,
|
this.textInputType = TextInputType.text,
|
||||||
this.maxLines = 1,
|
this.maxLines = 1,
|
||||||
@@ -35,18 +34,15 @@ class InputText extends StatelessWidget {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Container(
|
return Container(
|
||||||
color: ColorPalette.white,
|
color: ColorPalette.white,
|
||||||
margin: ConstVariable().marginHightInput,
|
margin: EdgeInsets.only(top: 5),
|
||||||
width: width,
|
width: width,
|
||||||
child: TextFormField(
|
child: TextFormField(
|
||||||
keyboardType: textInputType,
|
keyboardType: textInputType,
|
||||||
maxLines: maxLines,
|
maxLines: maxLines,
|
||||||
onChanged: onChanged,
|
onChanged: onChanged,
|
||||||
validator: (value) {
|
inputFormatters: [
|
||||||
if (value!=null && value!.length==0) {
|
FormatText()
|
||||||
return error;
|
],
|
||||||
}
|
|
||||||
return null;
|
|
||||||
},
|
|
||||||
obscureText: this.obscure,
|
obscureText: this.obscure,
|
||||||
controller: this.controller,
|
controller: this.controller,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:rkm/widgets/text_default.dart';
|
import 'package:rkm/widgets/text_default.dart';
|
||||||
import '../utils/color_palette.dart';
|
import '../utils/color_palette.dart';
|
||||||
|
import 'error_default.dart';
|
||||||
import 'input_text.dart';
|
import 'input_text.dart';
|
||||||
|
|
||||||
class InputWithSubtitle extends StatelessWidget {
|
class InputWithSubtitle extends StatelessWidget {
|
||||||
@@ -10,8 +11,11 @@ class InputWithSubtitle extends StatelessWidget {
|
|||||||
String labelInput;
|
String labelInput;
|
||||||
double widthSubtitle;
|
double widthSubtitle;
|
||||||
double widthInput;
|
double widthInput;
|
||||||
|
double widthError;
|
||||||
var controller;
|
var controller;
|
||||||
|
var onChanged;
|
||||||
bool enable;
|
bool enable;
|
||||||
|
bool mandatory;
|
||||||
TextInputType textInputType;
|
TextInputType textInputType;
|
||||||
int maxLines;
|
int maxLines;
|
||||||
Color colorBorder;
|
Color colorBorder;
|
||||||
@@ -25,9 +29,12 @@ class InputWithSubtitle extends StatelessWidget {
|
|||||||
required this.widthInput,
|
required this.widthInput,
|
||||||
required this.controller,
|
required this.controller,
|
||||||
this.enable = true,
|
this.enable = true,
|
||||||
|
this.mandatory = true,
|
||||||
this.textInputType = TextInputType.text,
|
this.textInputType = TextInputType.text,
|
||||||
this.maxLines = 1,
|
this.maxLines = 1,
|
||||||
this.colorBorder = ColorPalette.black54
|
this.colorBorder = ColorPalette.black54,
|
||||||
|
required this.onChanged,
|
||||||
|
this.widthError = 0.7
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -49,13 +56,14 @@ class InputWithSubtitle extends StatelessWidget {
|
|||||||
controller: controller,
|
controller: controller,
|
||||||
width: widthInput,
|
width: widthInput,
|
||||||
hint: hintInput,
|
hint: hintInput,
|
||||||
error: errorInput,
|
|
||||||
label: labelInput,
|
label: labelInput,
|
||||||
enable: enable,
|
enable: enable,
|
||||||
textInputType: textInputType,
|
textInputType: textInputType,
|
||||||
maxLines:maxLines,
|
maxLines:maxLines,
|
||||||
colorBorder: colorBorder,
|
colorBorder: colorBorder,
|
||||||
|
onChanged: onChanged,
|
||||||
),
|
),
|
||||||
|
controller.text=='' &&(enable&&mandatory)?ErrorDefault(widthDefault: widthError,):Container(),
|
||||||
Divider(color: ColorPalette.black54,height: 5,endIndent: 10,)
|
Divider(color: ColorPalette.black54,height: 5,endIndent: 10,)
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|||||||
57
lib/widgets/subtitle_appbar_citizen.dart
Normal file
57
lib/widgets/subtitle_appbar_citizen.dart
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:rkm/widgets/text_default.dart';
|
||||||
|
import '../screens/registers_citizen/register_citizen_screen.dart';
|
||||||
|
import '../screens/registers_citizen/register_home_screen.dart';
|
||||||
|
import '../screens/registers_citizen/register_individual_screen.dart';
|
||||||
|
import '../utils/color_palette.dart';
|
||||||
|
|
||||||
|
class SubtitleAppbarCitizen extends StatelessWidget {
|
||||||
|
int title;
|
||||||
|
bool edit;
|
||||||
|
|
||||||
|
SubtitleAppbarCitizen({
|
||||||
|
required this.title,
|
||||||
|
this.edit = false
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
|
||||||
|
double heigth = MediaQuery.of(context).size.height;
|
||||||
|
double width = MediaQuery.of(context).size.width;
|
||||||
|
|
||||||
|
return Container(
|
||||||
|
color: ColorPalette.white,
|
||||||
|
width: width,
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
TextButton.icon(
|
||||||
|
onPressed:edit? ()=> Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(select: '',)),
|
||||||
|
):null,
|
||||||
|
icon: Icon(Icons.person,color: title==1?Colors.black:ColorPalette.gray,),
|
||||||
|
label: TextDefault(text: 'Cadastro Cidadão',fontSize: 14,color: title==1?Colors.black:ColorPalette.gray,)
|
||||||
|
),
|
||||||
|
TextButton.icon(
|
||||||
|
onPressed:edit? ()=> Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(builder: (context) => RegisterIndividualScreen()),
|
||||||
|
):null,
|
||||||
|
icon: Icon(Icons.assignment_outlined,color: title==2?Colors.black:ColorPalette.gray,),
|
||||||
|
label: TextDefault(text: 'Cadastro Individual',fontSize: 14,color: title==2?Colors.black:ColorPalette.gray,)
|
||||||
|
),
|
||||||
|
TextButton.icon(
|
||||||
|
onPressed:edit? ()=> Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(builder: (context) => RegisterHomeScreen()),
|
||||||
|
):null,
|
||||||
|
icon: Icon(Icons.home,color: title==3?Colors.black:ColorPalette.gray,),
|
||||||
|
label: TextDefault(text: 'Cadastro Domiciliar',fontSize: 14,color: title==3?Colors.black:ColorPalette.gray,)
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -128,6 +128,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.0.6"
|
version: "0.0.6"
|
||||||
|
get:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: get
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "4.6.5"
|
||||||
http:
|
http:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ dependencies:
|
|||||||
gainer_crypto: ^0.0.6
|
gainer_crypto: ^0.0.6
|
||||||
sqflite: ^2.0.0+3
|
sqflite: ^2.0.0+3
|
||||||
shared_preferences: ^2.0.15
|
shared_preferences: ^2.0.15
|
||||||
|
get:
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|||||||
Reference in New Issue
Block a user