criado o modelo city_load_model.dart a tela login_load_screen.dart e sync_unit_screen.dart

This commit is contained in:
Reginaldo
2023-04-04 22:45:08 -03:00
parent 60e69684ae
commit 17f0fa7bcb
16 changed files with 763 additions and 265 deletions

View File

@@ -1,7 +1,7 @@
<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">
<application <application
android:label="rkm" android:label="RKMAB"
android:name="${applicationName}" android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"> android:icon="@mipmap/ic_launcher">
<activity <activity

BIN
assets/images/load-done.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

View File

@@ -1,13 +1,15 @@
import 'city_load_model.dart';
class ArgsLoadInitModel{ class ArgsLoadInitModel{
String mode; String mode;
String city; CityLoadModel model;
String user; String user;
String password; String password;
String urlAPI; String urlAPI;
ArgsLoadInitModel({ ArgsLoadInitModel({
required this.mode, required this.mode,
required this.city, required this.model,
required this.user, required this.user,
required this.password, required this.password,
required this.urlAPI, required this.urlAPI,

View File

@@ -0,0 +1,15 @@
class CityLoadModel{
int codCity;
String nameCityApi;
String nameCityFront;
String codState;
int codCityIbge;
CityLoadModel({
required this.codCity,
required this.nameCityApi,
required this.nameCityFront,
required this.codState,
required this.codCityIbge,
});
}

View File

@@ -1,11 +1,12 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:rkm/screens/sync_unit_screen.dart';
import 'package:rkm/utils/color_palette.dart'; 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/text_default.dart'; import 'package:rkm/widgets/text_default.dart';
import '../models/args_load_init_model.dart'; import '../models/args_load_init_model.dart';
import '../service/api/api_data.dart'; import '../service/api/api_data.dart';
import '../service/db/db_sqlite.dart'; import '../service/db/db_sqlite.dart';
import '../utils/const_variable.dart';
class LoadInitScreen extends StatefulWidget { class LoadInitScreen extends StatefulWidget {
ArgsLoadInitModel args; ArgsLoadInitModel args;
@@ -21,20 +22,12 @@ class LoadInitScreen extends StatefulWidget {
class _LoadInitScreenState extends State<LoadInitScreen> { class _LoadInitScreenState extends State<LoadInitScreen> {
String messageSteps = 'Aguarde ...'; String messageSteps = 'Aguarde ...';
bool finish = false;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
// initLoading(); initLoading();
finishLoad();
}
finishLoad()async{
await ApiData().loadCompetencia(widget.args).then((value)async{
await DbSqlite().saveCompetence(value,widget.args).then((value)async{
Navigator.pushReplacementNamed(context, '/home');
});
});
} }
initLoading()async{ initLoading()async{
@@ -105,7 +98,10 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
print('loadEquipeComponentes'); print('loadEquipeComponentes');
await DbSqlite().saveTeamComponents(value).then((value)async{ await DbSqlite().saveTeamComponents(value).then((value)async{
print('finalizou saveTeamComponents'); print('finalizou saveTeamComponents');
finishLoad(); setState(() {
finish = true;
});
// Navigator.pushReplacementNamed(context, '/home');
}); });
}); });
}); });
@@ -147,13 +143,35 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
width: width, width: width,
height: height*0.05, height: height*0.05,
color: ColorPalette.appBar, color: ColorPalette.appBar,
padding: EdgeInsets.all(10), child: finish
?Row(
children: [
Spacer(),
ButtonDefault(
onPressed: (){
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => SyncUnitScreen(args: widget.args)),
);
},
title: 'Continuar',
width: width*0.3,
height: height*0.1,
textColor: ColorPalette.white,
background: ColorPalette.appBar,
borderColor: ColorPalette.appBar,
),
],
)
:Padding(
padding: const EdgeInsets.all(10.0),
child: TextDefault( child: TextDefault(
text: messageSteps, text: messageSteps,
color: ColorPalette.white, color: ColorPalette.white,
maxLines: 2, maxLines: 2,
), ),
), ),
),
body: Container( body: Container(
padding: EdgeInsets.all(50), padding: EdgeInsets.all(50),
width: width, width: width,
@@ -166,7 +184,12 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
), ),
) )
), ),
child: ListView( child: finish?ListView(
children: [
Image.asset('assets/images/logo.PNG',width: width*0.3,height: height*0.2,),
Image.asset('assets/images/load-done.png',width: width*0.9,height: height*0.2,),
],
):ListView(
children: [ children: [
Image.asset('assets/images/logo.PNG',width: width*0.2,height: height*0.1,), Image.asset('assets/images/logo.PNG',width: width*0.2,height: height*0.1,),
SizedBox(height: height*0.1), SizedBox(height: height*0.1),

View File

@@ -1,6 +1,4 @@
import 'dart:convert';
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/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';
@@ -9,17 +7,18 @@ 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.dart'; import '../service/api/api_data.dart';
import '../service/api/encrypt_password.dart'; import '../service/api/encrypt_password.dart';
import 'load_init_screen.dart'; import 'load_init_screen.dart';
class LoginScreen extends StatefulWidget { class LoginLoadScreen extends StatefulWidget {
const LoginScreen({Key? key}) : super(key: key); const LoginLoadScreen({Key? key}) : super(key: key);
@override @override
State<LoginScreen> createState() => _LoginScreenState(); State<LoginLoadScreen> createState() => _LoginLoadScreenState();
} }
class _LoginScreenState extends State<LoginScreen> { class _LoginLoadScreenState extends State<LoginLoadScreen> {
var inputUser = TextEditingController(); var inputUser = TextEditingController();
var inputPassword = TextEditingController(); var inputPassword = TextEditingController();
@@ -33,20 +32,30 @@ class _LoginScreenState extends State<LoginScreen> {
bool loading = false; bool loading = false;
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){
setState(() { setState(() {
error = ''; error = '';
loading = true; loading = true;
for(int i=0;ConstVariable().itensCity.length > i;i++){
if(ConstVariable().itensCity[i].nameCityFront == selectCity!){
model = ConstVariable().itensCity[i];
}
}
}); });
ArgsLoadInitModel args = ArgsLoadInitModel( if(model!=null){
args = ArgsLoadInitModel(
mode: mode, mode: mode,
city: selectCity!, model:model!,
user: inputUser.text, user: inputUser.text,
password: inputPassword.text, password: inputPassword.text,
urlAPI: urlAPI urlAPI: urlAPI
); );
await ApiData().apiConect(args).then((response) async { }
if(args!=null){
await ApiData().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';
@@ -67,11 +76,12 @@ class _LoginScreenState extends State<LoginScreen> {
}); });
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute(builder: (context) => LoadInitScreen(args: args)), MaterialPageRoute(builder: (context) => LoadInitScreen(args: args!)),
); );
} }
} }
}); });
}
}else{ }else{
setState(() { setState(() {
error = 'Selecione sua cidade'; error = 'Selecione sua cidade';
@@ -84,14 +94,6 @@ class _LoginScreenState extends State<LoginScreen> {
} }
} }
@override
void initState() {
super.initState();
setState(() {
now = DateFormat('dd/MM/yyyy kk:mm:ss').format(DateTime.now());
});
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@@ -103,15 +105,6 @@ class _LoginScreenState extends State<LoginScreen> {
centerTitle: true, centerTitle: true,
title: TextDefault(text: 'RKM AB - Carga Inicial',fontSize: ConstVariable().fontSizeTitleAppBar,color: ColorPalette.white), title: TextDefault(text: 'RKM AB - Carga Inicial',fontSize: ConstVariable().fontSizeTitleAppBar,color: ColorPalette.white),
), ),
// bottomSheet: Container(
// color: ColorPalette.secundary,
// padding: EdgeInsets.all(8.0),
// child: TextDefault(
// text: 'Última sincronização $now',
// fontSize: 15,
// color: ColorPalette.gray,
// ),
// ),
body: SingleChildScrollView( body: SingleChildScrollView(
child: Container( child: Container(
padding: EdgeInsets.only(top: height*0.2), padding: EdgeInsets.only(top: height*0.2),
@@ -148,8 +141,9 @@ class _LoginScreenState extends State<LoginScreen> {
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
CircularProgressIndicator(), Image.asset('assets/images/loading.gif'),
TextDefault(text: 'Carregando dados...',color: ColorPalette.black54,) SizedBox(height: 10),
TextDefault(text: 'Carregando dados...',color: ColorPalette.black54,fontSize: 20,fontWeigth: FontWeight.bold,)
], ],
), ),
):Form( ):Form(

View File

@@ -0,0 +1,235 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:rkm/models/args_load_init_model.dart';
import 'package:rkm/service/api/url_api_const.dart';
import 'package:rkm/service/db/db_sqlite.dart';
import 'package:rkm/utils/color_palette.dart';
import 'package:rkm/utils/const_variable.dart';
import 'package:rkm/widgets/button_default.dart';
import 'package:rkm/widgets/dropdown_button_city.dart';
import 'package:rkm/widgets/input_text.dart';
import 'package:rkm/widgets/text_default.dart';
import 'package:sqflite/sqflite.dart';
import '../models/city_load_model.dart';
import '../service/api/api_data.dart';
import '../service/api/encrypt_password.dart';
import 'load_init_screen.dart';
class LoginSavedScreen extends StatefulWidget {
List listControl;
LoginSavedScreen({
required this.listControl
});
@override
State<LoginSavedScreen> createState() => _LoginSavedScreenState();
}
class _LoginSavedScreenState extends State<LoginSavedScreen> {
var inputUser = TextEditingController();
var inputPassword = TextEditingController();
String error = '';
String? now;
String? selectCity;
bool validatorDropDown= false;
int contLogo = 0;
String mode = 'homologacao';
String urlAPI = UrlApiConst.ModeHomologacao;
bool loading = false;
checkLogin()async{
CityLoadModel? model;
ArgsLoadInitModel? args;
if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){
if(selectCity!=null){
setState(() {
error = '';
loading = true;
for(int i=0;ConstVariable().itensCity.length > i;i++){
if(ConstVariable().itensCity[i].nameCityFront == selectCity!){
model = ConstVariable().itensCity[i];
}
}
});
if(model!=null){
args = ArgsLoadInitModel(
mode: mode,
model:model!,
user: inputUser.text,
password: inputPassword.text,
urlAPI: urlAPI
);
}
if(args!=null){
await ApiData().apiConect(args!).then((response) async {
if(inputUser.text == inputPassword.text || response['bloqueio']==1){
setState(() {
error = 'Usuário bloqueado/senha incorreta';
});
}else if(response['status']==0) {
setState(() {
error = 'Usuário não encontrado';
});
}else if(response['status']==1) {
setState((){
error = '';
});
//verificar se a criptografia identificou se a senha está correta
if(EncryptPassword().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
// print(EncryptPassword().encrypt(inputPassword.text,response['userPass']));
setState(() {
loading = false;
});
Navigator.push(
context,
MaterialPageRoute(builder: (context) => LoadInitScreen(args: args!)),
);
}
}
});
}
}else{
setState(() {
error = 'Selecione sua cidade';
});
}
}else{
setState(() {
error = 'Usuário/senha inválido(s)';
});
}
}
@override
void initState() {
super.initState();
setState(() {
if(widget.listControl.length!=0){
mode = widget.listControl[0]['AMBIENTE'];
}
});
}
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
return Scaffold(
appBar: AppBar(
centerTitle: true,
title: TextDefault(text: 'RKM AB - Carga Inicial',fontSize: ConstVariable().fontSizeTitleAppBar,color: ColorPalette.white),
),
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(top: height*0.1),
width: width,
height: height,
decoration: ConstVariable().backgroundGradient,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Image.asset('assets/images/logo.PNG',width: width*0.4),
mode == 'homologacao'?Image.asset('assets/images/homologacao.png',width: width*0.4):Container(),
mode == 'desenvolvimento'?Image.asset('assets/images/desenvolvimento.png',width: width*0.4):Container(),
SizedBox(height: 10),
loading?Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Image.asset('assets/images/loading.gif'),
SizedBox(height: 10),
TextDefault(text: 'Carregando dados...',color: ColorPalette.black54,fontSize: 20,fontWeigth: FontWeight.bold,)
],
),
):Form(
autovalidateMode: AutovalidateMode.onUserInteraction,
child: Container(
width: width*0.6,
height: height*0.2,
child: ListView(
children: [
InputText(
hint: 'Usuário',
label: inputUser.text.isNotEmpty?'':'Usuário',
error: 'Campo obrigatório',
controller: inputUser,
width: width*0.6,
colorBorder: Colors.white,
onChanged: (v)=>setState((){}),
),
InputText(
hint: 'Senha',
label: inputPassword.text.isNotEmpty?'':'Senha',
error: 'Campo obrigatório',
obscure: true,
controller: inputPassword,
width: width*0.6,
colorBorder: Colors.white,
onChanged: (v)=>setState((){}),
),
],
),
),
),
loading?Container():ButtonDefault(
onPressed: ()=>checkLogin(),
title: 'Entrar',
width: width*0.6,
),
SizedBox(height: 10),
TextDefault(text: error,color: ColorPalette.red),
widget.listControl.length==0?Container():Container(
width: width*0.6,
child: TextDefault(
text: 'Última sincronização: '+DateFormat('dd/MM/yyyy kk:mm:ss').format(DateTime.parse(widget.listControl[0]['ULTIMA_SINCRONIZACAO'])),
fontWeigth: FontWeight.bold,
color: Colors.black,
textAlign: TextAlign.center,
maxLines: 2,
),
),
widget.listControl.length==0?Container():Container(
padding: EdgeInsets.symmetric(vertical: 5),
width: width*0.6,
child: TextDefault(
text: 'Unidade: '+widget.listControl[0]['UNIDADE'].toString(),
fontWeigth: FontWeight.bold,
color: Colors.black,
textAlign: TextAlign.center,
maxLines: 2,
),
),
widget.listControl.length==0?Container():Container(
padding: EdgeInsets.symmetric(vertical: 5),
width: width*0.6,
child: TextDefault(
text: 'Competência: '+widget.listControl[0]['COMPETENCIA'].toString(),
fontWeigth: FontWeight.bold,
color: Colors.black,
textAlign: TextAlign.center,
maxLines: 2,
),
),
widget.listControl.length==0?Container():Container(
padding: EdgeInsets.symmetric(vertical: 5),
width: width*0.6,
child: TextDefault(
text: 'Área: '+widget.listControl[0]['AREA'].toString(),
fontWeigth: FontWeight.bold,
color: Colors.black,
textAlign: TextAlign.center,
maxLines: 2,
),
),
],
),
),
),
);
}
}

View File

@@ -297,13 +297,13 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
child: ListTile( child: ListTile(
onTap: (){ onTap: (){
setState(() { setState(() {
cityBirthController.text = ConstVariable().itensCity[index]; cityBirthController.text = ConstVariable().itensCity[index].nameCityFront;
Navigator.pop(context); Navigator.pop(context);
}); });
}, },
title: TextDefault( title: TextDefault(
color: ColorPalette.black54, color: ColorPalette.black54,
text: ConstVariable().itensCity[index], text: ConstVariable().itensCity[index].nameCityFront,
fontSize: 16, fontSize: 16,
maxLines: 2, maxLines: 2,
), ),
@@ -572,14 +572,14 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
child: ListTile( child: ListTile(
onTap: (){ onTap: (){
setState(() { setState(() {
cityController.text = ConstVariable().itensCity[index]; cityController.text = ConstVariable().itensCity[index].nameCityFront;
codIBGEController.text = '353870'; codIBGEController.text = ConstVariable().itensCity[index].codCityIbge.toString();
Navigator.pop(context); Navigator.pop(context);
}); });
}, },
title: TextDefault( title: TextDefault(
color: ColorPalette.black54, color: ColorPalette.black54,
text: ConstVariable().itensCity[index], text: ConstVariable().itensCity[index].nameCityFront,
fontSize: 16, fontSize: 16,
maxLines: 2, maxLines: 2,
), ),

View File

@@ -1,8 +1,11 @@
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/sync_unit_screen.dart';
import 'package:rkm/utils/const_variable.dart'; import 'package:rkm/utils/const_variable.dart';
import '../service/db/db_sqlite.dart'; import '../service/db/db_sqlite.dart';
import 'login_saved_screen.dart';
class SplashScreen extends StatefulWidget { class SplashScreen extends StatefulWidget {
const SplashScreen({Key? key}) : super(key: key); const SplashScreen({Key? key}) : super(key: key);
@@ -16,15 +19,32 @@ class _SplashScreenState extends State<SplashScreen> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
DbSqlite().intialDB().then((value){ DbSqlite().intialDB();
});
timer(); timer();
} }
timer()async{ timer()async{
Future.delayed(Duration(seconds: 3),(){ await DbSqlite().intialDB().then((db)async{
Navigator.pushReplacementNamed(context, '/login'); List data = await db.query('MUNICIPIOS');
if(data.length != 0){
var query = "SELECT * FROM CONTROLE_INTERNO";
data = await db.rawQuery(query);
if(data.length != 0){
Navigator.push(
context,
MaterialPageRoute(builder: (context) => LoginSavedScreen(listControl: data)),
);
}else{
CityLoadModel model = CityLoadModel(codCity: 0, nameCityApi: '', nameCityFront: '', codState: '', codCityIbge: 0);
ArgsLoadInitModel args = ArgsLoadInitModel(mode: '', model: model, user: '', password: '', urlAPI: '');
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SyncUnitScreen(args: args)),
);
}
}else{
Navigator.pushReplacementNamed(context, '/login_load');
}
}); });
} }

View File

@@ -0,0 +1,263 @@
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:rkm/models/args_load_init_model.dart';
import 'package:rkm/service/api/url_api_const.dart';
import 'package:rkm/utils/color_palette.dart';
import 'package:rkm/utils/const_variable.dart';
import 'package:rkm/widgets/button_default.dart';
import 'package:rkm/widgets/dropdown_button_city.dart';
import 'package:rkm/widgets/dropdown_button_default.dart';
import 'package:rkm/widgets/input_text.dart';
import 'package:rkm/widgets/text_default.dart';
import 'package:sqflite/sqflite.dart';
import '../models/city_load_model.dart';
import '../service/api/api_data.dart';
import '../service/api/encrypt_password.dart';
import '../service/db/db_sqlite.dart';
import 'load_init_screen.dart';
class SyncUnitScreen extends StatefulWidget {
ArgsLoadInitModel args;
SyncUnitScreen({
required this.args
});
@override
State<SyncUnitScreen> createState() => _SyncUnitScreenState();
}
class _SyncUnitScreenState extends State<SyncUnitScreen> {
var inputUser = TextEditingController();
var inputPassword = TextEditingController();
String error = '';
String? now;
String? selectUnit;
String? selectTeam;
bool validatorDropDown= false;
int contLogo = 0;
String mode = 'desenvolvimento';
String urlAPI = UrlApiConst.ApiUrlDesenvolvimento;
bool loading = false;
List<String> listUnit=[];
List searchUnitCodList=[];
List listTeam = [];
String idUnidade ='';
checkLogin()async{
CityLoadModel? model;
ArgsLoadInitModel? args;
if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){
if(selectUnit!=null){
setState(() {
error = '';
loading = true;
});
await DbSqlite().saveCityInit(widget.args).then((value)async{
});
if(model!=null){
args = ArgsLoadInitModel(
mode: mode,
model:model!,
user: inputUser.text,
password: inputPassword.text,
urlAPI: urlAPI
);
}
if(args!=null){
await ApiData().apiConect(args!).then((response) async {
if(inputUser.text == inputPassword.text || response['bloqueio']==1){
setState(() {
error = 'Usuário bloqueado/senha incorreta';
});
}else if(response['status']==0) {
setState(() {
error = 'Usuário não encontrado';
});
}else if(response['status']==1) {
setState((){
error = '';
});
//verificar se a criptografia identificou se a senha está correta
if(EncryptPassword().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
// print(EncryptPassword().encrypt(inputPassword.text,response['userPass']));
setState(() {
loading = false;
});
Navigator.push(
context,
MaterialPageRoute(builder: (context) => LoadInitScreen(args: args!)),
);
}
}
});
}
}else{
setState(() {
error = 'Selecione sua cidade';
});
}
}else{
setState(() {
error = 'Usuário/senha inválido(s)';
});
}
}
@override
void initState() {
super.initState();
setState(() {
mode = widget.args.mode;
inputUser.text = widget.args.user;
inputPassword.text = widget.args.password;
});
getUnit();
}
getUnit()async{
Database db = await DbSqlite().intialDB();
var query = "SELECT * FROM UNIDADES";
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++){
listUnit.add(list[i]['NOME_UNIDADE']);
searchUnitCodList.add(list[i]['ID_UNIDADE']);
}
print('searchListUnit');
print(searchUnitCodList);
setState(() {});
}
getTeam()async{
for(int i=0; listUnit.length > i;i++){
if(listUnit[i] == selectUnit){
idUnidade = searchUnitCodList[i].toString();
print(searchUnitCodList[i]);
}
}
if(idUnidade!=''){
Database db = await DbSqlite().intialDB();
var query = "SELECT * FROM EQUIPES WHERE ID_UNIDADE = $idUnidade";
List list = await db!.rawQuery(query);
print('getEquipes');
print(list);
setState(() {});
}
}
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
return Scaffold(
appBar: AppBar(
centerTitle: true,
title: TextDefault(text: 'RKM AB - Sincronização de Unidade',fontSize: ConstVariable().fontSizeTitleAppBar,color: ColorPalette.white),
),
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(top: height*0.2),
width: width,
height: height,
decoration: ConstVariable().backgroundGradient,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
children: [
GestureDetector(
onTap: loading?null:()=>setState((){
contLogo++;
if(contLogo>=5 && contLogo<=10){
mode = UrlApiConst.ModeHomologacao;
urlAPI = UrlApiConst.ApiUrlHomologacao;
}
if(contLogo>10){
mode = UrlApiConst.ModeDesenvolvimento;
urlAPI = UrlApiConst.ApiUrlDesenvolvimento;
if(contLogo==15){
contLogo=0;
mode = UrlApiConst.ModeOnline;
urlAPI = UrlApiConst.ApiUrlOnline;
}
}
}),
child: Image.asset('assets/images/logo.PNG',width: width*0.4)
),
mode == 'homologacao'?Image.asset('assets/images/homologacao.png',width: width*0.4):Container(),
mode == 'desenvolvimento'?Image.asset('assets/images/desenvolvimento.png',width: width*0.4):Container(),
SizedBox(height: 10),
loading?Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Image.asset('assets/images/loading.gif'),
SizedBox(height: 10),
TextDefault(text: 'Carregando dados...',color: ColorPalette.black54,fontSize: 20,fontWeigth: FontWeight.bold,)
],
),
):Form(
autovalidateMode: AutovalidateMode.onUserInteraction,
child: Container(
width: width*0.6,
height: height*0.3,
child: ListView(
children: [
InputText(
hint: 'Usuário',
label: inputUser.text.isNotEmpty?'':'Usuário',
error: 'Campo obrigatório',
controller: inputUser,
width: width*0.6,
colorBorder: Colors.white,
onChanged: (v)=>setState((){}),
),
InputText(
hint: 'Senha',
label: inputPassword.text.isNotEmpty?'':'Senha',
error: 'Campo obrigatório',
obscure: true,
controller: inputPassword,
width: width*0.6,
colorBorder: Colors.white,
onChanged: (v)=>setState((){}),
),
DropDownButtonDefault(
width: width*0.6,
title: 'Unidade',
list: listUnit,
select: selectUnit,
onChanged: (value){
// for(int i=0;listUnit.length > i;i++){
// if(listUnit[i] == selectUnit){
//
// }
// }
setState(() {
selectUnit = value!;
validatorDropDown = true;
});
getTeam();
},
),
],
),
),
),
loading?Container():ButtonDefault(
onPressed: ()=>checkLogin(),
title: 'Sincronizar',
width: width*0.6,
),
SizedBox(height: 10),
TextDefault(text: error,color: ColorPalette.red),
],
),
),
),
);
}
}

View File

@@ -1,20 +1,18 @@
import 'dart:convert'; import 'dart:convert';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:rkm/utils/const_variable.dart';
import '../../models/args_load_init_model.dart'; import '../../models/args_load_init_model.dart';
class ApiData{ class ApiData{
Future apiConect(ArgsLoadInitModel args)async{ Future apiConect(ArgsLoadInitModel args)async{
String cityReplace = ConstVariable().replaceText(args.city); //http://192.168.0.42:8010/api/atb/desenvolvimento/cabreuva/load/pass/admin
final url = '${args.urlAPI}${args.mode}/$cityReplace/pass/${args.user}'; final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/pass/${args.user}';
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 loadPerm(ArgsLoadInitModel args)async{ Future loadPerm(ArgsLoadInitModel args)async{
//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
String cityReplace = ConstVariable().replaceText(args.city); final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/load/perm/${args.user}';
final url = '${args.urlAPI}${args.mode}/$cityReplace/load/perm/${args.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);
@@ -22,9 +20,9 @@ class ApiData{
return map; return map;
} }
Future loadUnidades(ArgsLoadInitModel args)async{ Future loadUnidades(ArgsLoadInitModel args)async{
print('entrou aqui ${args.model.nameCityApi}');
// 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
String cityReplace = ConstVariable().replaceText(args.city); final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/unidades';
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.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);
// print(map); // print(map);
@@ -32,8 +30,7 @@ class ApiData{
} }
Future loadProcedimentos(ArgsLoadInitModel args)async{ Future loadProcedimentos(ArgsLoadInitModel args)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
String cityReplace = ConstVariable().replaceText(args.city); final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentos';
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.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);
// print(map); // print(map);
@@ -41,8 +38,7 @@ class ApiData{
} }
Future loadProcedimentosRegistros(ArgsLoadInitModel args)async{ Future loadProcedimentosRegistros(ArgsLoadInitModel args)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
String cityReplace = ConstVariable().replaceText(args.city); final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentosRegistros';
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.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);
// print(map); // print(map);
@@ -50,8 +46,7 @@ class ApiData{
} }
Future loadCID(ArgsLoadInitModel args)async{ Future loadCID(ArgsLoadInitModel args)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
String cityReplace = ConstVariable().replaceText(args.city); final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/cid';
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.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);
// print(map); // print(map);
@@ -59,8 +54,7 @@ class ApiData{
} }
Future loadProcedimentosCID(ArgsLoadInitModel args)async{ Future loadProcedimentosCID(ArgsLoadInitModel args)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
String cityReplace = ConstVariable().replaceText(args.city); final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentosCID';
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.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);
// print(map); // print(map);
@@ -68,8 +62,7 @@ class ApiData{
} }
Future loadCBO(ArgsLoadInitModel args)async{ Future loadCBO(ArgsLoadInitModel args)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
String cityReplace = ConstVariable().replaceText(args.city); final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/cbo';
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.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);
// print(map); // print(map);
@@ -77,8 +70,7 @@ class ApiData{
} }
Future loadProcedimentosCBO(ArgsLoadInitModel args)async{ Future loadProcedimentosCBO(ArgsLoadInitModel args)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
String cityReplace = ConstVariable().replaceText(args.city); final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentosCBO';
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.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);
// print(map); // print(map);
@@ -86,8 +78,7 @@ class ApiData{
} }
Future loadCIAP(ArgsLoadInitModel args)async{ Future loadCIAP(ArgsLoadInitModel args)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
String cityReplace = ConstVariable().replaceText(args.city); final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/ciap';
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.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);
// print(map); // print(map);
@@ -95,8 +86,7 @@ class ApiData{
} }
Future loadMunicipios(ArgsLoadInitModel args)async{ Future loadMunicipios(ArgsLoadInitModel args)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
String cityReplace = ConstVariable().replaceText(args.city); final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/municipios';
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.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);
// print(map); // print(map);
@@ -104,8 +94,8 @@ class ApiData{
} }
Future loadEquipes(ArgsLoadInitModel args)async{ Future loadEquipes(ArgsLoadInitModel args)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
String cityReplace = ConstVariable().replaceText(args.city); // https://app0.rkmsistemas.com.br/api/atb/homologacao/cabreuva/admin/load/equipes
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.user}/load/equipes'; final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.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);
// print(map); // print(map);
@@ -113,8 +103,7 @@ class ApiData{
} }
Future loadEquipeComponentes(ArgsLoadInitModel args)async{ Future loadEquipeComponentes(ArgsLoadInitModel args)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
String cityReplace = ConstVariable().replaceText(args.city); final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/equipeComponentes';
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.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);
print(map); print(map);
@@ -122,47 +111,12 @@ class ApiData{
} }
Future loadCompetencia(ArgsLoadInitModel args)async{ Future loadCompetencia(ArgsLoadInitModel args)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';
// <!-- value = [MUNICIPIO.CD_MUNICIPIO]|[nomemunicipio]|[MUNICIPIO.CD_ESTADO][MUNICIPIO.CD_IBGE] -->
// <option value="3311|anhembi|SP|350230">Anhembi</option>
// <option value="3313|aparecida|SP|350250">Aparecida</option>
// <option value="3352|batatais|SP|350590">Batatais</option>
// <option value="3360|biritiba|SP|350660">Biritiba Mirim</option>
// <option value="3381|cabreuva|SP|350840">Cabreúva</option>
// <option value="1903|cachoeira|BA|290490">Cachoeira Paulista</option>
// <option value="3384|caconde|SP|350870">Caconde</option>
// <option value="3409|casabranca|SP|351080">Casa Branca</option>
// <option value="3427|corumbatai|SP|351270">Corumbataí</option>
// <option value="3437|descalvado|SP|351370">Descalvado</option>
// <option value="2539|extrema|MG|312510">Extrema</option>
// <option value="3473|francodarocha|SP|351640">Franco da Rocha</option>
// <option value="3514|igaracudotiete|SP|352000">Igaraçu do Tietê</option>
// <option value="3531|iracemapolis|SP|352140">Iracemápolis</option>
// <option value="3546|itapolis|SP|352270">Itápolis</option>
// <option value="3555|itirapina|SP|352360">Itirapina</option>
// <option value="3560|ituverava|SP|352410">Ituverava</option>
// <option value="3570|jardinopolis|SP|352510">Jardinópolis</option>
// <option value="3584|laranjal|SP|352640">Laranjal Paulista</option>
// <option value="3601|macatuba|SP|352800">Macatuba</option>
// <option value="3606|mairipora|SP|352850">Mairiporã</option>
// <option value="3628|mococa|SP|353050">Mococa</option>
// <option value="3642|morroagudo|SP|353190">Morro Agudo</option>
// <option value="3691|pardinho|SP|353610">Pardinho</option>
// <option value="3699|pederneiras|SP|353670">Pederneiras</option>
// <option value="3719|piracicaba|SP|353870">Piracicaba</option>
// <option value="3740|portoferreira|SP|354070">Porto Ferreira</option>
// <option value="3816|santarita|SP|354750">Santa Rita</option>
// <option value="3821|stoantoniodaalegria|SP|354790">Santo Antônio da Alegria</option>
// <option value="3853|ssgrama|SP|355080">São Sebastião da Grama</option>
// <option value="3882|tapiratiba|SP|355360">Tapiratiba</option>
String cityReplace = ConstVariable().replaceText(args.city);
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.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);
print(map); // print(map);
return map; return map;
} }
} }

View File

@@ -2,8 +2,6 @@ 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';
import '../../utils/const_variable.dart';
class DbSqlite{ class DbSqlite{
Future intialDB()async{ Future intialDB()async{
@@ -38,7 +36,7 @@ class DbSqlite{
db.execute('CREATE TABLE IF NOT EXISTS CIDADAOS (ID_CIDADAO INTEGER PRIMARY KEY AUTOINCREMENT, CD_USUARIO_SUS TEXT, NOME_CIDADAO TEXT, NOME_SOCIAL TEXT, SEXO TEXT, DT_NASCIMENTO TEXT, ID_ESTADO_CIVIL INTEGER, NOME_CONJUGE TEXT, NACIONALIDADE INTEGER, ID_MUNICIPIO_NASC INTEGER, NO_MUNICIPIO_NASC TEXT, ESTADO_UF_NASC TEXT, ID_ETNIA INTEGER, ID_ESCOLARIDADE INTEGER, ID_DEFICIENCIA INTEGER, NOME_MAE TEXT, DESCONHECE_MAE INTEGER, NOME_PAI TEXT, DESCONHECE_PAI INTEGER, ID_UNIDADE INTEGER, NUM_PRONTUARIO TEXT, NUM_PRONTUARIO_PROV TEXT, CLASSIFICACAO INTEGER, CLASSIFICACAO_SUB INTEGER, NUM_FAMILIA INTEGER, ID_PAIS_RESID INTEGER, ID_MUNICIPIO_RESID INTEGER, NO_MUNICIPIO_RESID TEXT, ESTADO_UF_RESID TEXT, CODIGO_IBGE_RESID INTEGER, NO_BAIRRO_LOGR TEXT, ID_LOGR_TIPO INTEGER, NOME_LOGR TEXT, CEP_LOGR INTEGER, NUMERO_LOGR INTEGER, LOTEAMENTO_LOGR INTEGER, COMPL_LOGR TEXT, PONTO_REFERENCIA TEXT, ZONA_LOGR INTEGER, DDD_TELEFONE INTEGER, NUM_TELEFONE INTEGER, DDD_CELULAR INTEGER, NUM_CELULAR INTEGER, DDD_RECADO INTEGER, NUM_RECADO INTEGER, EMAIL TEXT, OBSERVACOES TEXT, CPF INTEGER, CNS TEXT, TITULO_ELEITOR INTEGER, RG_NUMERO INTEGER, RG_COMPLEMENTO TEXT, RG_UF TEXT, RG_ORGAO TEXT, RG_DATA_EMISSAO TEXT, TIPO_CERTIDAO INTEGER, NUM_CERTIDAO TEXT, CARTORIO_CERTIDAO TEXT, LIVRO_CERTIDAO TEXT, FOLHA_CERTIDAO TEXT, TERMO_CERTIDAO TEXT, DT_EMISSAO_CERTIDAO TEXT, NUM_CTPS TEXT, NUM_SERIE_CTPS TEXT, ESTADO_UF_CTPS TEXT, NUM_PIS_PASEP TEXT, FL_RETIROU_CARTAO INTEGER, NUM_NIS TEXT, NUM_PROT_CROSS TEXT, RENDA_MENSAL REAL, PROFISSAO TEXT, DT_OBITO TEXT, DECLARACAO_OBITO TEXT, BLOQUEIO INTEGER, ORIGEM INTEGER, DT_HORA_CADASTRO TEXT, ID_USUARIO_CADASTRO INTEGER, ID_DOMICILIO INTEGER, ATENDIMENTOS INTEGER, SINCRONIZADO TEXT);'); db.execute('CREATE TABLE IF NOT EXISTS CIDADAOS (ID_CIDADAO INTEGER PRIMARY KEY AUTOINCREMENT, CD_USUARIO_SUS TEXT, NOME_CIDADAO TEXT, NOME_SOCIAL TEXT, SEXO TEXT, DT_NASCIMENTO TEXT, ID_ESTADO_CIVIL INTEGER, NOME_CONJUGE TEXT, NACIONALIDADE INTEGER, ID_MUNICIPIO_NASC INTEGER, NO_MUNICIPIO_NASC TEXT, ESTADO_UF_NASC TEXT, ID_ETNIA INTEGER, ID_ESCOLARIDADE INTEGER, ID_DEFICIENCIA INTEGER, NOME_MAE TEXT, DESCONHECE_MAE INTEGER, NOME_PAI TEXT, DESCONHECE_PAI INTEGER, ID_UNIDADE INTEGER, NUM_PRONTUARIO TEXT, NUM_PRONTUARIO_PROV TEXT, CLASSIFICACAO INTEGER, CLASSIFICACAO_SUB INTEGER, NUM_FAMILIA INTEGER, ID_PAIS_RESID INTEGER, ID_MUNICIPIO_RESID INTEGER, NO_MUNICIPIO_RESID TEXT, ESTADO_UF_RESID TEXT, CODIGO_IBGE_RESID INTEGER, NO_BAIRRO_LOGR TEXT, ID_LOGR_TIPO INTEGER, NOME_LOGR TEXT, CEP_LOGR INTEGER, NUMERO_LOGR INTEGER, LOTEAMENTO_LOGR INTEGER, COMPL_LOGR TEXT, PONTO_REFERENCIA TEXT, ZONA_LOGR INTEGER, DDD_TELEFONE INTEGER, NUM_TELEFONE INTEGER, DDD_CELULAR INTEGER, NUM_CELULAR INTEGER, DDD_RECADO INTEGER, NUM_RECADO INTEGER, EMAIL TEXT, OBSERVACOES TEXT, CPF INTEGER, CNS TEXT, TITULO_ELEITOR INTEGER, RG_NUMERO INTEGER, RG_COMPLEMENTO TEXT, RG_UF TEXT, RG_ORGAO TEXT, RG_DATA_EMISSAO TEXT, TIPO_CERTIDAO INTEGER, NUM_CERTIDAO TEXT, CARTORIO_CERTIDAO TEXT, LIVRO_CERTIDAO TEXT, FOLHA_CERTIDAO TEXT, TERMO_CERTIDAO TEXT, DT_EMISSAO_CERTIDAO TEXT, NUM_CTPS TEXT, NUM_SERIE_CTPS TEXT, ESTADO_UF_CTPS TEXT, NUM_PIS_PASEP TEXT, FL_RETIROU_CARTAO INTEGER, NUM_NIS TEXT, NUM_PROT_CROSS TEXT, RENDA_MENSAL REAL, PROFISSAO TEXT, DT_OBITO TEXT, DECLARACAO_OBITO TEXT, BLOQUEIO INTEGER, ORIGEM INTEGER, DT_HORA_CADASTRO TEXT, ID_USUARIO_CADASTRO INTEGER, ID_DOMICILIO INTEGER, ATENDIMENTOS INTEGER, SINCRONIZADO TEXT);');
db.execute('CREATE TABLE IF NOT EXISTS CIDADAO_DOMICILIO (ID_DOMICILIO INTEGER PRIMARY KEY AUTOINCREMENT, TIPO_IMOVEL INTEGER, ID_AREA_DOMICILIO INTEGER, ID_MICROAREA_DOMICILIO INTEGER, FORA_AREA INTEGER, SITUACAO_MORADIA INTEGER, TIPO_LOCALIDADE INTEGER, TIPO_DOMICILIO INTEGER, NUM_MORADORES INTEGER, NUM_COMODOS INTEGER, SITUACAO_RURAL INTEGER, TIPO_ACESSO INTEGER, MAT_PREDOMINANTE INTEGER, DISPONIBILIDADE_ENERGIA INTEGER, TIPO_ABASTECIMENTO INTEGER, TRATAMENTO_AGUA INTEGER, DESTINO_LIXO INTEGER, ESCOAMENTO INTEGER, FL_ANIMAIS INTEGER, ANIMAIS_GATO INTEGER, ANIMAIS_CACHORRO INTEGER, ANIMAIS_PASSARO INTEGER, ANIMAIS_OUTROS INTEGER, QTDE_ANIMAIS INTEGER, CBO_RESP_CADASTRO TEXT, ID_RESP_CADASTRO INTEGER, CNES_RESP_CADASTRO TEXT, INE_RESP_CADASTRO TEXT, DT_CADASTRO TEXT, ID_EQUIPE INTEGER, ORIGEM TEXT, SINCRONIZADO TEXT, NOME_INSTITUICAO_PERMANENCIA TEXT, PROFISSIONAIS_VINCULADOS_INST INTEGER, RESPONSAVEL_TECNICO_INST TEXT, CNS_RESP_TECNICO_INST TEXT, CARGO_RESP_TECNICO_INST TEXT, TEL_RESP_TECNICO_INST TEXT);'); db.execute('CREATE TABLE IF NOT EXISTS CIDADAO_DOMICILIO (ID_DOMICILIO INTEGER PRIMARY KEY AUTOINCREMENT, TIPO_IMOVEL INTEGER, ID_AREA_DOMICILIO INTEGER, ID_MICROAREA_DOMICILIO INTEGER, FORA_AREA INTEGER, SITUACAO_MORADIA INTEGER, TIPO_LOCALIDADE INTEGER, TIPO_DOMICILIO INTEGER, NUM_MORADORES INTEGER, NUM_COMODOS INTEGER, SITUACAO_RURAL INTEGER, TIPO_ACESSO INTEGER, MAT_PREDOMINANTE INTEGER, DISPONIBILIDADE_ENERGIA INTEGER, TIPO_ABASTECIMENTO INTEGER, TRATAMENTO_AGUA INTEGER, DESTINO_LIXO INTEGER, ESCOAMENTO INTEGER, FL_ANIMAIS INTEGER, ANIMAIS_GATO INTEGER, ANIMAIS_CACHORRO INTEGER, ANIMAIS_PASSARO INTEGER, ANIMAIS_OUTROS INTEGER, QTDE_ANIMAIS INTEGER, CBO_RESP_CADASTRO TEXT, ID_RESP_CADASTRO INTEGER, CNES_RESP_CADASTRO TEXT, INE_RESP_CADASTRO TEXT, DT_CADASTRO TEXT, ID_EQUIPE INTEGER, ORIGEM TEXT, SINCRONIZADO TEXT, NOME_INSTITUICAO_PERMANENCIA TEXT, PROFISSIONAIS_VINCULADOS_INST INTEGER, RESPONSAVEL_TECNICO_INST TEXT, CNS_RESP_TECNICO_INST TEXT, CARGO_RESP_TECNICO_INST TEXT, TEL_RESP_TECNICO_INST TEXT);');
db.execute('CREATE TABLE IF NOT EXISTS CIDS (CODIGO_CID TEXT, DESCRICAO_CID TEXT, RESTRICAO_SEXO INTEGER);'); db.execute('CREATE TABLE IF NOT EXISTS CIDS (CODIGO_CID TEXT, DESCRICAO_CID TEXT, RESTRICAO_SEXO INTEGER);');
db.execute('CREATE TABLE IF NOT EXISTS CONTROLE_INTERNO (CARGA_INICIAL INTEGER, SYNC_UNIDADE INTEGER, CIDADE_LOAD TEXT, NOME_CIDADE TEXT, ID_MUNICIPIO INTEGER, UF_ESTADO TEXT, UNIDADE_SYNC TEXT, CODIGO_IBGE INTEGER, NOME_UNIDADE TEXT, AMBIENTE TEXT, ULTIMA_SINCRONIZACAO TEXT, COMPETENCIA TEXT, ID_AREA INTEGER, AREA INTEGER, ID_MICROAREA INTEGER, MICROAREA INTEGER);'); db.execute( 'CREATE TABLE IF NOT EXISTS CONTROLE_INTERNO (CARGA_INICIAL INTEGER, SYNC_UNIDADE INTEGER, CIDADE_LOAD TEXT, NOME_CIDADE TEXT, ID_MUNICIPIO INTEGER, UF_ESTADO TEXT, UNIDADE_SYNC TEXT, CODIGO_IBGE INTEGER, NOME_UNIDADE TEXT, AMBIENTE TEXT, ULTIMA_SINCRONIZACAO TEXT, COMPETENCIA TEXT, AREA INTEGER, MICROAREA INTEGER);');
db.execute('CREATE TABLE IF NOT EXISTS DOMICILIOS_CIDADAOS (ID_DOMICILIO INTEGER, CD_USUARIO_SUS TEXT);'); db.execute('CREATE TABLE IF NOT EXISTS DOMICILIOS_CIDADAOS (ID_DOMICILIO INTEGER, CD_USUARIO_SUS TEXT);');
db.execute('CREATE TABLE IF NOT EXISTS EQUIPES (ID_EQUIPE INTEGER PRIMARY KEY AUTOINCREMENT, ID_UNIDADE INTEGER, INE TEXT, ID_ATB_AREA INTEGER, AREA INTEGER, ID_ATB_MICROAREA INTEGER, MICROAREA INTEGER);'); db.execute('CREATE TABLE IF NOT EXISTS EQUIPES (ID_EQUIPE INTEGER PRIMARY KEY AUTOINCREMENT, ID_UNIDADE INTEGER, INE TEXT, ID_ATB_AREA INTEGER, AREA INTEGER, ID_ATB_MICROAREA INTEGER, MICROAREA INTEGER);');
db.execute('CREATE TABLE IF NOT EXISTS FICHAS_COMPLEMENTARES (ID_FICHA_COMPLEMENTAR INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, DATA_ATENDIMENTO TEXT, TURNO INTEGER, DATA_OLHINHO TEXT, RESULTADO_OLHINHO INTEGER, DATA_FUNDO_OLHO TEXT, RESULTADO_FUNDO_OLHO INTEGER, DATA_ORELHINHA TEXT, RESULTADO_ORELHINHA INTEGER, DATA_TRANSFONTANELA TEXT, RESULTADO_TRANSFONTANELA INTEGER, DATA_TOMOGRAFIA TEXT, RESULTADO_TOMOGRAFIA INTEGER, DATA_RESSONANCIA TEXT, RESULTADO_RESSONANCIA INTEGER, SINCRONIZADO TEXT);'); db.execute('CREATE TABLE IF NOT EXISTS FICHAS_COMPLEMENTARES (ID_FICHA_COMPLEMENTAR INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, DATA_ATENDIMENTO TEXT, TURNO INTEGER, DATA_OLHINHO TEXT, RESULTADO_OLHINHO INTEGER, DATA_FUNDO_OLHO TEXT, RESULTADO_FUNDO_OLHO INTEGER, DATA_ORELHINHA TEXT, RESULTADO_ORELHINHA INTEGER, DATA_TRANSFONTANELA TEXT, RESULTADO_TRANSFONTANELA INTEGER, DATA_TOMOGRAFIA TEXT, RESULTADO_TOMOGRAFIA INTEGER, DATA_RESSONANCIA TEXT, RESULTADO_RESSONANCIA INTEGER, SINCRONIZADO TEXT);');
@@ -69,46 +67,45 @@ class DbSqlite{
return db; return db;
} }
Future deleteDB()async{ Future deleteDB()async{
//testar com ; no final
var querys = [ var querys = [
'UPDATE CONTROLE_INTERNO SET SYNC_UNIDADE = NULL, UNIDADE_SYNC = NULL, NOME_UNIDADE = NULL WHERE rowid = 1;', 'UPDATE CONTROLE_INTERNO SET SYNC_UNIDADE = NULL, UNIDADE_SYNC = NULL, NOME_UNIDADE = NULL WHERE rowid = 1;',
'DELETE FROM ATENDS_DOM_COMPL', 'DELETE FROM ATENDS_DOM_COMPL;',
'DELETE FROM ATENDS_DOM_PROC', 'DELETE FROM ATENDS_DOM_PROC;',
'DELETE FROM ATENDS_DOM_SIGTAP', 'DELETE FROM ATENDS_DOM_SIGTAP;',
'DELETE FROM ATENDIMENTOS_DOMICILIARES', 'DELETE FROM ATENDIMENTOS_DOMICILIARES;',
'DELETE FROM ATENDS_INDIV_PROC', 'DELETE FROM ATENDS_INDIV_PROC;',
'DELETE FROM ATENDS_INDIV_PROF', 'DELETE FROM ATENDS_INDIV_PROF;',
'DELETE FROM ATENDS_INDIVIDUAIS', 'DELETE FROM ATENDS_INDIVIDUAIS;',
'DELETE FROM BAIRROS', 'DELETE FROM BAIRROS;',
'DELETE FROM CADASTROS_INDIVIDUAIS', 'DELETE FROM CADASTROS_INDIVIDUAIS;',
'DELETE FROM CBOS', 'DELETE FROM CBOS;',
'DELETE FROM CIAPS', 'DELETE FROM CIAPS;',
'DELETE FROM CIDADAOS', 'DELETE FROM CIDADAOS;',
'DELETE FROM CIDADAO_DOMICILIO', 'DELETE FROM CIDADAO_DOMICILIO;',
'DELETE FROM CIDS', 'DELETE FROM CIDS;',
'DELETE FROM CONTROLE_INTERNO', 'DELETE FROM CONTROLE_INTERNO;',
'DELETE FROM DOMICILIOS_CIDADAOS', 'DELETE FROM DOMICILIOS_CIDADAOS;',
'DELETE FROM EQUIPES', 'DELETE FROM EQUIPES;',
'DELETE FROM FICHAS_COMPLEMENTARES', 'DELETE FROM FICHAS_COMPLEMENTARES;',
'DELETE FROM LOGRADOUROS_ENDERECOS', 'DELETE FROM LOGRADOUROS_ENDERECOS;',
'DELETE FROM LOGRADOUROS_LOTEAMENTOS', 'DELETE FROM LOGRADOUROS_LOTEAMENTOS;',
'DELETE FROM LOGRADOUROS_TIPOS', 'DELETE FROM LOGRADOUROS_TIPOS;',
'DELETE FROM MUNICIPIOS', 'DELETE FROM MUNICIPIOS;',
'DELETE FROM PROCEDIMENTOS_FICHAS', 'DELETE FROM PROCEDIMENTOS_FICHAS;',
'DELETE FROM PROCEDIMENTOS_INDIV', 'DELETE FROM PROCEDIMENTOS_INDIV;',
'DELETE FROM PROCEDIMENTOS_INDIV_FICHA', 'DELETE FROM PROCEDIMENTOS_INDIV_FICHA;',
'DELETE FROM PROCEDIMENTOS_INDIV_SIGTAP', 'DELETE FROM PROCEDIMENTOS_INDIV_SIGTAP;',
'DELETE FROM PROCEDIMENTOS_SIGTAP', 'DELETE FROM PROCEDIMENTOS_SIGTAP;',
'DELETE FROM PROCEDIMENTOS_SIGTAP_CBO', 'DELETE FROM PROCEDIMENTOS_SIGTAP_CBO;',
'DELETE FROM PROCEDIMENTOS_SIGTAP_CID', 'DELETE FROM PROCEDIMENTOS_SIGTAP_CID;',
'DELETE FROM PROCEDIMENTOS_SIGTAP_REGISTRO', 'DELETE FROM PROCEDIMENTOS_SIGTAP_REGISTRO;',
'DELETE FROM PROFISSIONAIS', 'DELETE FROM PROFISSIONAIS;',
'DELETE FROM PROFISSIONAIS_CBOS', 'DELETE FROM PROFISSIONAIS_CBOS;',
'DELETE FROM PROFISSIONAIS_EQUIPE', 'DELETE FROM PROFISSIONAIS_EQUIPE;',
'DELETE FROM UNIDADES', 'DELETE FROM UNIDADES;',
'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;',
]; ];
Database db = await intialDB(); Database db = await intialDB();
for(int i=0;querys.length>i;i++){ for(int i=0;querys.length>i;i++){
@@ -295,26 +292,24 @@ class DbSqlite{
print(await db.query('PROFISSIONAIS_EQUIPE')); print(await db.query('PROFISSIONAIS_EQUIPE'));
return db; return db;
} }
Future saveCompetence(var competence,ArgsLoadInitModel args)async{ Future saveCityInit(ArgsLoadInitModel args)async{
Database db = await intialDB(); Database db = await intialDB();
String cityReplace = ConstVariable().replaceText(args.city);
print(competence);
//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, '')}]';
"INSERT OR REPLACE INTO CONTROLE_INTERNO (rowid, CARGA_INICIAL, CIDADE_LOAD, NOME_CIDADE, ID_MUNICIPIO, UF_ESTADO, CODIGO_IBGE, AMBIENTE, COMPETENCIA) VALUES (1,?,?,?,?,?,?,?,?)"; "INSERT OR REPLACE INTO CONTROLE_INTERNO (rowid, CARGA_INICIAL, CIDADE_LOAD, NOME_CIDADE, ID_MUNICIPIO, UF_ESTADO, CODIGO_IBGE, AMBIENTE, COMPETENCIA) VALUES (1,?,?,?,?,?,?,?,?)";
Map<String, dynamic> row = { Map<String, dynamic> row = {
'CARGA_INICIAL' : 1, 'CARGA_INICIAL' : 1,
'CIDADE_LOAD' : cityReplace, 'CIDADE_LOAD' : args.model.nameCityApi,
'NOME_CIDADE' : args.city, 'NOME_CIDADE' : args.model.nameCityFront,
'ID_MUNICIPIO' : '', 'ID_MUNICIPIO' : args.model.codCity,
'UF_ESTADO' : '', 'UF_ESTADO' : args.model.codState,
'CODIGO_IBGE' : '', 'CODIGO_IBGE' : args.model.codCityIbge,
'AMBIENTE' : args.mode, 'AMBIENTE' : args.mode,
'COMPETENCIA' : competence, 'ULTIMA_SINCRONIZACAO' : DateTime.now().toString(),
'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('id increment $id CONTROLE_INTERNO');
print(await db.query('CONTROLE_INTERNO')); print(await db.query('CONTROLE_INTERNO'));
return db; return db;
} }

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:rkm/models/city_load_model.dart';
import 'color_palette.dart'; import 'color_palette.dart';
class ConstVariable{ class ConstVariable{
@@ -217,39 +218,38 @@ class ConstVariable{
'225124 - Médico pediatra', '225124 - Médico pediatra',
'225125 - Médico clínico', '225125 - Médico clínico',
]; ];
List<String> itensCity = [ List<CityLoadModel> itensCity = [
'Anhembi', CityLoadModel(codCity: 3311, nameCityApi: 'anhembi', nameCityFront: 'Anhembi', codState: 'SP', codCityIbge: 350230),
'Aparecida', CityLoadModel(codCity: 3313, nameCityApi: 'aparecida', nameCityFront: 'Aparecida', codState: 'SP', codCityIbge: 350250),
'Batatais', CityLoadModel(codCity: 3352, nameCityApi: 'batatais', nameCityFront: 'Batatais', codState: 'SP', codCityIbge: 350590),
'Biritiba Mirim', CityLoadModel(codCity: 3360, nameCityApi: 'biritiba', nameCityFront: 'Biritiba Mirim', codState: 'SP', codCityIbge: 350660),
'Cabreúva', CityLoadModel(codCity: 3381, nameCityApi: 'cabreuva', nameCityFront: 'Cabreúva', codState: 'SP', codCityIbge: 350840),
'Cachoeira Paulista', CityLoadModel(codCity: 1903, nameCityApi: 'cachoeira', nameCityFront: 'Cachoeira Paulista', codState: 'SP', codCityIbge: 290490),
'Caconde', CityLoadModel(codCity: 3384, nameCityApi: 'caconde', nameCityFront: 'Caconde', codState: 'SP', codCityIbge: 350870),
'Casa Branca', CityLoadModel(codCity: 3409, nameCityApi: 'casabranca', nameCityFront: 'Casa Branca', codState: 'SP', codCityIbge: 351080),
'Corumbataí', CityLoadModel(codCity: 3427, nameCityApi: 'corumbatai', nameCityFront: 'Corumbataí', codState: 'SP', codCityIbge: 351270),
'Descalvado', CityLoadModel(codCity: 3437, nameCityApi: 'descalvado', nameCityFront: 'Descalvado', codState: 'SP', codCityIbge: 351370),
'Extrema', CityLoadModel(codCity: 2539, nameCityApi: 'extrema', nameCityFront: 'Extrema', codState: 'MG', codCityIbge: 312510),
'Franco da Rocha', CityLoadModel(codCity: 3473, nameCityApi: 'francodarocha', nameCityFront: 'Franco da Rocha', codState: 'SP', codCityIbge: 351640),
'Igaraçu do Tiete', CityLoadModel(codCity: 3514, nameCityApi: 'igaracudotiete', nameCityFront: 'Igaraçu do Tietê', codState: 'SP', codCityIbge: 352000),
'Iracemápolis', CityLoadModel(codCity: 3531, nameCityApi: 'iracemapolis', nameCityFront: 'Iracemápolis', codState: 'SP', codCityIbge: 352140),
'Itapeva', CityLoadModel(codCity: 3546, nameCityApi: 'itapolis', nameCityFront: 'Itápolis', codState: 'SP', codCityIbge: 352270),
'Itápolis', CityLoadModel(codCity: 3555, nameCityApi: 'itirapina', nameCityFront: 'Itirapina', codState: 'SP', codCityIbge: 352360),
'Itirapina', CityLoadModel(codCity: 3560, nameCityApi: 'ituverava', nameCityFront: 'Ituverava', codState: 'SP', codCityIbge: 352410),
'Ituverava', CityLoadModel(codCity: 3570, nameCityApi: 'jardinopolis', nameCityFront: 'Jardinópolis', codState: 'SP', codCityIbge: 352510),
'Jardinópolis', CityLoadModel(codCity: 3584, nameCityApi: 'laranjal', nameCityFront: 'Laranjal Paulista', codState: 'SP', codCityIbge: 352640),
'Laranjal Paulista', CityLoadModel(codCity: 3601, nameCityApi: 'macatuba', nameCityFront: 'Macatuba', codState: 'SP', codCityIbge: 352800),
'Macatuba', CityLoadModel(codCity: 3606, nameCityApi: 'mairipora', nameCityFront: 'Mairiporã', codState: 'SP', codCityIbge: 352850),
'Mairiporã', CityLoadModel(codCity: 3628, nameCityApi: 'mococa', nameCityFront: 'Mococa', codState: 'SP', codCityIbge: 353050),
'Mococa', CityLoadModel(codCity: 3642, nameCityApi: 'morroagudo', nameCityFront: 'Morro Agudo', codState: 'SP', codCityIbge: 353190),
'Morro Agudo', CityLoadModel(codCity: 3691, nameCityApi: 'pardinho', nameCityFront: 'Pardinho', codState: 'SP', codCityIbge: 353610),
'Pardinho', CityLoadModel(codCity: 3699, nameCityApi: 'pederneiras', nameCityFront: 'Pederneiras', codState: 'SP', codCityIbge: 353670),
'Pederneiras', CityLoadModel(codCity: 3719, nameCityApi: 'piracicaba', nameCityFront: 'Piracicaba', codState: 'SP', codCityIbge: 353870),
'Piracicaba', CityLoadModel(codCity: 3740, nameCityApi: 'portoferreira', nameCityFront: 'Porto Ferreira', codState: 'SP', codCityIbge: 354070),
'Porto Ferreira', CityLoadModel(codCity: 3816, nameCityApi: 'santarita', nameCityFront: 'Santa Rita', codState: 'SP', codCityIbge: 354750),
'Santa Rita', CityLoadModel(codCity: 3821, nameCityApi: 'stoantoniodaalegria',nameCityFront: 'Santo Antônio da Alegria', codState: 'SP', codCityIbge: 354790),
'Santo Antônio da Alegria', CityLoadModel(codCity: 3853, nameCityApi: 'ssgrama', nameCityFront: 'São Sebastião da Grama', codState: 'SP', codCityIbge: 355080),
'São Sabastião da Grama', CityLoadModel(codCity: 3882, nameCityApi: 'tapiratiba', nameCityFront: 'Tapiratiba', codState: 'SP', codCityIbge: 355360),
'Tapiratiba'
]; ];
var backgroundGradient = BoxDecoration( var backgroundGradient = BoxDecoration(
gradient: LinearGradient( gradient: LinearGradient(
@@ -261,15 +261,4 @@ class ConstVariable{
], ],
) )
); );
replaceText(String text){
String replace= text.toLowerCase()
.replaceAll('ú', 'u')
.replaceAll('ç', 'c')
.replaceAll('ó', 'o')
.replaceAll('ô', 'o')
.replaceAll('í', 'i')
.replaceAll('ã','a');
return replace;
}
} }

View File

@@ -2,7 +2,7 @@ import 'package:rkm/screens/about_screen.dart';
import 'package:rkm/screens/attendance_list_screen.dart'; import 'package:rkm/screens/attendance_list_screen.dart';
import 'package:rkm/screens/home_screen.dart'; import 'package:rkm/screens/home_screen.dart';
import 'package:rkm/screens/load_init_screen.dart'; import 'package:rkm/screens/load_init_screen.dart';
import 'package:rkm/screens/login_screen.dart'; import 'package:rkm/screens/login_load_screen.dart';
import 'package:rkm/screens/select_service/eligibility_assessment_screen.dart'; import 'package:rkm/screens/select_service/eligibility_assessment_screen.dart';
import 'package:rkm/screens/splash_screen.dart'; import 'package:rkm/screens/splash_screen.dart';
import '../screens/clear_data_screen.dart'; import '../screens/clear_data_screen.dart';
@@ -21,7 +21,7 @@ import '../screens/sinc_data_screen.dart';
var routes = { var routes = {
'/home': (context) => HomeScreen(), '/home': (context) => HomeScreen(),
'/login': (context) => LoginScreen(), '/login_load': (context) => LoginLoadScreen(),
'/register_citizen': (context) => RegisterCitizenScreen(), '/register_citizen': (context) => RegisterCitizenScreen(),
'/attendance_list': (context) => AttendanceListScreen(), '/attendance_list': (context) => AttendanceListScreen(),
'/about': (context) => AboutScreen(), '/about': (context) => AboutScreen(),

View File

@@ -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 '../models/city_load_model.dart';
import '../utils/color_palette.dart'; import '../utils/color_palette.dart';
import '../utils/const_variable.dart'; import '../utils/const_variable.dart';
@@ -36,13 +37,13 @@ class DropDownButtonCity extends StatelessWidget {
color: ColorPalette.white color: ColorPalette.white
), ),
child: DropdownButtonHideUnderline( child: DropdownButtonHideUnderline(
child: DropdownButton<String>( child: DropdownButton(
hint: TextDefault(text: 'Cidade',fontSize: ConstVariable().fontSizeInput), hint: TextDefault(text: 'Cidade',fontSize: ConstVariable().fontSizeInput),
value: select, value: select,
items: ConstVariable().itensCity.map((value) => DropdownMenuItem( items: ConstVariable().itensCity.map((value) => DropdownMenuItem(
value: value, value: value.nameCityFront,
child: TextDefault( child: TextDefault(
text: value, text: value.nameCityFront,
), ),
) )
).toList(), ).toList(),

View File

@@ -9,7 +9,7 @@ class DropDownButtonDefault extends StatelessWidget {
String? select; String? select;
String title; String title;
double fontSize; double fontSize;
List<String> list; List list;
double width; double width;
double widthContainer; double widthContainer;
@@ -33,16 +33,23 @@ class DropDownButtonDefault extends StatelessWidget {
margin: ConstVariable().marginHightInput, margin: ConstVariable().marginHightInput,
color: ColorPalette.white, color: ColorPalette.white,
child: DropdownButtonHideUnderline( child: DropdownButtonHideUnderline(
child: DropdownButton<String>( child: DropdownButton(
hint: TextDefault(text: title,fontSize: ConstVariable().fontSizeInput,textAlign: TextAlign.end), hint: Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: TextDefault(text: title,fontSize: ConstVariable().fontSizeInput,textAlign: TextAlign.end),
),
value: select, value: select,
items: list.map((value) => DropdownMenuItem( items: list.map((value) => DropdownMenuItem(
value: value, value: value,
child: Container( child: Container(
width: widthContainer, width: widthContainer,
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0),
child: TextDefault( child: TextDefault(
text: value, text: value,
fontSize: fontSize, fontSize: fontSize,
color: Colors.black,
),
), ),
), ),
) )