criado o modelo city_load_model.dart a tela login_load_screen.dart e sync_unit_screen.dart
This commit is contained in:
@@ -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
BIN
assets/images/load-done.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 79 KiB |
@@ -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,
|
||||||
|
|||||||
15
lib/models/city_load_model.dart
Normal file
15
lib/models/city_load_model.dart
Normal 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,
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -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,12 +143,34 @@ 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
|
||||||
child: TextDefault(
|
?Row(
|
||||||
text: messageSteps,
|
children: [
|
||||||
color: ColorPalette.white,
|
Spacer(),
|
||||||
maxLines: 2,
|
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(
|
||||||
|
text: messageSteps,
|
||||||
|
color: ColorPalette.white,
|
||||||
|
maxLines: 2,
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
body: Container(
|
body: Container(
|
||||||
padding: EdgeInsets.all(50),
|
padding: EdgeInsets.all(50),
|
||||||
@@ -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),
|
||||||
|
|||||||
@@ -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,45 +32,56 @@ 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++){
|
||||||
ArgsLoadInitModel args = ArgsLoadInitModel(
|
if(ConstVariable().itensCity[i].nameCityFront == selectCity!){
|
||||||
mode: mode,
|
model = ConstVariable().itensCity[i];
|
||||||
city: selectCity!,
|
|
||||||
user: inputUser.text,
|
|
||||||
password: inputPassword.text,
|
|
||||||
urlAPI: urlAPI
|
|
||||||
);
|
|
||||||
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)),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
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{
|
}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(
|
||||||
235
lib/screens/login_saved_screen.dart
Normal file
235
lib/screens/login_saved_screen.dart
Normal 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,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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,16 +19,33 @@ 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');
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
263
lib/screens/sync_unit_screen.dart
Normal file
263
lib/screens/sync_unit_screen.dart
Normal 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),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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);
|
};
|
||||||
print('id increment $id CONTROLE_INTERNO');
|
int id = await db.insert('CONTROLE_INTERNO', row);
|
||||||
print(await db.query('CONTROLE_INTERNO'));
|
print(await db.query('CONTROLE_INTERNO'));
|
||||||
return db;
|
return db;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -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(),
|
||||||
|
|||||||
@@ -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(),
|
||||||
|
|||||||
@@ -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: TextDefault(
|
child: Padding(
|
||||||
text: value,
|
padding: EdgeInsets.symmetric(horizontal: 10.0),
|
||||||
fontSize: fontSize,
|
child: TextDefault(
|
||||||
|
text: value,
|
||||||
|
fontSize: fontSize,
|
||||||
|
color: Colors.black,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user