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"
package="com.ab.rkm.rkm">
<application
android:label="rkm"
android:label="RKMAB"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
<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{
String mode;
String city;
CityLoadModel model;
String user;
String password;
String urlAPI;
ArgsLoadInitModel({
required this.mode,
required this.city,
required this.model,
required this.user,
required this.password,
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:rkm/screens/sync_unit_screen.dart';
import 'package:rkm/utils/color_palette.dart';
import 'package:rkm/widgets/alert_dialog_default.dart';
import 'package:rkm/widgets/button_default.dart';
import 'package:rkm/widgets/text_default.dart';
import '../models/args_load_init_model.dart';
import '../service/api/api_data.dart';
import '../service/db/db_sqlite.dart';
import '../utils/const_variable.dart';
class LoadInitScreen extends StatefulWidget {
ArgsLoadInitModel args;
@@ -21,20 +22,12 @@ class LoadInitScreen extends StatefulWidget {
class _LoadInitScreenState extends State<LoadInitScreen> {
String messageSteps = 'Aguarde ...';
bool finish = false;
@override
void initState() {
super.initState();
// 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();
}
initLoading()async{
@@ -105,7 +98,10 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
print('loadEquipeComponentes');
await DbSqlite().saveTeamComponents(value).then((value)async{
print('finalizou saveTeamComponents');
finishLoad();
setState(() {
finish = true;
});
// Navigator.pushReplacementNamed(context, '/home');
});
});
});
@@ -147,12 +143,34 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
width: width,
height: height*0.05,
color: ColorPalette.appBar,
padding: EdgeInsets.all(10),
child: TextDefault(
text: messageSteps,
color: ColorPalette.white,
maxLines: 2,
),
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(
text: messageSteps,
color: ColorPalette.white,
maxLines: 2,
),
),
),
body: Container(
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: [
Image.asset('assets/images/logo.PNG',width: width*0.2,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: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';
@@ -9,17 +7,18 @@ import 'package:rkm/widgets/button_default.dart';
import 'package:rkm/widgets/dropdown_button_city.dart';
import 'package:rkm/widgets/input_text.dart';
import 'package:rkm/widgets/text_default.dart';
import '../models/city_load_model.dart';
import '../service/api/api_data.dart';
import '../service/api/encrypt_password.dart';
import 'load_init_screen.dart';
class LoginScreen extends StatefulWidget {
const LoginScreen({Key? key}) : super(key: key);
class LoginLoadScreen extends StatefulWidget {
const LoginLoadScreen({Key? key}) : super(key: key);
@override
State<LoginScreen> createState() => _LoginScreenState();
State<LoginLoadScreen> createState() => _LoginLoadScreenState();
}
class _LoginScreenState extends State<LoginScreen> {
class _LoginLoadScreenState extends State<LoginLoadScreen> {
var inputUser = TextEditingController();
var inputPassword = TextEditingController();
@@ -33,45 +32,56 @@ class _LoginScreenState extends State<LoginScreen> {
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;
});
ArgsLoadInitModel args = ArgsLoadInitModel(
mode: mode,
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)),
);
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';
@@ -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
Widget build(BuildContext context) {
@@ -103,15 +105,6 @@ class _LoginScreenState extends State<LoginScreen> {
centerTitle: true,
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(
child: Container(
padding: EdgeInsets.only(top: height*0.2),
@@ -148,8 +141,9 @@ class _LoginScreenState extends State<LoginScreen> {
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
CircularProgressIndicator(),
TextDefault(text: 'Carregando dados...',color: ColorPalette.black54,)
Image.asset('assets/images/loading.gif'),
SizedBox(height: 10),
TextDefault(text: 'Carregando dados...',color: ColorPalette.black54,fontSize: 20,fontWeigth: FontWeight.bold,)
],
),
):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(
onTap: (){
setState(() {
cityBirthController.text = ConstVariable().itensCity[index];
cityBirthController.text = ConstVariable().itensCity[index].nameCityFront;
Navigator.pop(context);
});
},
title: TextDefault(
color: ColorPalette.black54,
text: ConstVariable().itensCity[index],
text: ConstVariable().itensCity[index].nameCityFront,
fontSize: 16,
maxLines: 2,
),
@@ -572,14 +572,14 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
child: ListTile(
onTap: (){
setState(() {
cityController.text = ConstVariable().itensCity[index];
codIBGEController.text = '353870';
cityController.text = ConstVariable().itensCity[index].nameCityFront;
codIBGEController.text = ConstVariable().itensCity[index].codCityIbge.toString();
Navigator.pop(context);
});
},
title: TextDefault(
color: ColorPalette.black54,
text: ConstVariable().itensCity[index],
text: ConstVariable().itensCity[index].nameCityFront,
fontSize: 16,
maxLines: 2,
),

View File

@@ -1,8 +1,11 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:rkm/models/args_load_init_model.dart';
import 'package:rkm/models/city_load_model.dart';
import 'package:rkm/screens/sync_unit_screen.dart';
import 'package:rkm/utils/const_variable.dart';
import '../service/db/db_sqlite.dart';
import 'login_saved_screen.dart';
class SplashScreen extends StatefulWidget {
const SplashScreen({Key? key}) : super(key: key);
@@ -16,16 +19,33 @@ class _SplashScreenState extends State<SplashScreen> {
@override
void initState() {
super.initState();
DbSqlite().intialDB().then((value){
});
DbSqlite().intialDB();
timer();
}
timer()async{
Future.delayed(Duration(seconds: 3),(){
Navigator.pushReplacementNamed(context, '/login');
});
await DbSqlite().intialDB().then((db)async{
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

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 'package:http/http.dart' as http;
import 'package:rkm/utils/const_variable.dart';
import '../../models/args_load_init_model.dart';
class ApiData{
Future apiConect(ArgsLoadInitModel args)async{
String cityReplace = ConstVariable().replaceText(args.city);
final url = '${args.urlAPI}${args.mode}/$cityReplace/pass/${args.user}';
//http://192.168.0.42:8010/api/atb/desenvolvimento/cabreuva/load/pass/admin
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/pass/${args.user}';
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
return map;
}
Future loadPerm(ArgsLoadInitModel args)async{
//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}/$cityReplace/load/perm/${args.user}';
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/load/perm/${args.user}';
// final url = 'http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/load/perm/admin';
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
@@ -22,9 +20,9 @@ class ApiData{
return map;
}
Future loadUnidades(ArgsLoadInitModel args)async{
print('entrou aqui ${args.model.nameCityApi}');
// 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}/$cityReplace/${args.user}/load/unidades';
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/unidades';
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
// print(map);
@@ -32,8 +30,7 @@ class ApiData{
}
Future loadProcedimentos(ArgsLoadInitModel args)async{
// 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}/$cityReplace/${args.user}/load/procedimentos';
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentos';
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
// print(map);
@@ -41,8 +38,7 @@ class ApiData{
}
Future loadProcedimentosRegistros(ArgsLoadInitModel args)async{
// 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}/$cityReplace/${args.user}/load/procedimentosRegistros';
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentosRegistros';
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
// print(map);
@@ -50,8 +46,7 @@ class ApiData{
}
Future loadCID(ArgsLoadInitModel args)async{
// 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}/$cityReplace/${args.user}/load/cid';
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/cid';
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
// print(map);
@@ -59,8 +54,7 @@ class ApiData{
}
Future loadProcedimentosCID(ArgsLoadInitModel args)async{
// 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}/$cityReplace/${args.user}/load/procedimentosCID';
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentosCID';
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
// print(map);
@@ -68,8 +62,7 @@ class ApiData{
}
Future loadCBO(ArgsLoadInitModel args)async{
// 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}/$cityReplace/${args.user}/load/cbo';
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/cbo';
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
// print(map);
@@ -77,8 +70,7 @@ class ApiData{
}
Future loadProcedimentosCBO(ArgsLoadInitModel args)async{
// 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}/$cityReplace/${args.user}/load/procedimentosCBO';
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/procedimentosCBO';
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
// print(map);
@@ -86,8 +78,7 @@ class ApiData{
}
Future loadCIAP(ArgsLoadInitModel args)async{
// 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}/$cityReplace/${args.user}/load/ciap';
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/ciap';
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
// print(map);
@@ -95,8 +86,7 @@ class ApiData{
}
Future loadMunicipios(ArgsLoadInitModel args)async{
// 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}/$cityReplace/${args.user}/load/municipios';
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/municipios';
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
// print(map);
@@ -104,8 +94,8 @@ class ApiData{
}
Future loadEquipes(ArgsLoadInitModel args)async{
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/equipes
String cityReplace = ConstVariable().replaceText(args.city);
final url = '${args.urlAPI}${args.mode}/$cityReplace/${args.user}/load/equipes';
// https://app0.rkmsistemas.com.br/api/atb/homologacao/cabreuva/admin/load/equipes
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/equipes';
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
// print(map);
@@ -113,8 +103,7 @@ class ApiData{
}
Future loadEquipeComponentes(ArgsLoadInitModel args)async{
// 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}/$cityReplace/${args.user}/load/equipeComponentes';
final url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/equipeComponentes';
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
print(map);
@@ -122,47 +111,12 @@ class ApiData{
}
Future loadCompetencia(ArgsLoadInitModel args)async{
// 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';
'competencia sera dinamica com 4 meses para tras exemplo 042023/032023/022023/01/2023';
// <!-- 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 url = '${args.urlAPI}${args.mode}/${args.model.nameCityApi}/${args.user}/load/competencia';
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
print(map);
// print(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:path/path.dart';
import '../../utils/const_variable.dart';
class DbSqlite{
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 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 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 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);');
@@ -69,46 +67,45 @@ class DbSqlite{
return db;
}
Future deleteDB()async{
//testar com ; no final
var querys = [
'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_PROC',
'DELETE FROM ATENDS_DOM_SIGTAP',
'DELETE FROM ATENDIMENTOS_DOMICILIARES',
'DELETE FROM ATENDS_INDIV_PROC',
'DELETE FROM ATENDS_INDIV_PROF',
'DELETE FROM ATENDS_INDIVIDUAIS',
'DELETE FROM BAIRROS',
'DELETE FROM CADASTROS_INDIVIDUAIS',
'DELETE FROM CBOS',
'DELETE FROM CIAPS',
'DELETE FROM CIDADAOS',
'DELETE FROM CIDADAO_DOMICILIO',
'DELETE FROM CIDS',
'DELETE FROM CONTROLE_INTERNO',
'DELETE FROM DOMICILIOS_CIDADAOS',
'DELETE FROM EQUIPES',
'DELETE FROM FICHAS_COMPLEMENTARES',
'DELETE FROM LOGRADOUROS_ENDERECOS',
'DELETE FROM LOGRADOUROS_LOTEAMENTOS',
'DELETE FROM LOGRADOUROS_TIPOS',
'DELETE FROM MUNICIPIOS',
'DELETE FROM PROCEDIMENTOS_FICHAS',
'DELETE FROM PROCEDIMENTOS_INDIV',
'DELETE FROM PROCEDIMENTOS_INDIV_FICHA',
'DELETE FROM PROCEDIMENTOS_INDIV_SIGTAP',
'DELETE FROM PROCEDIMENTOS_SIGTAP',
'DELETE FROM PROCEDIMENTOS_SIGTAP_CBO',
'DELETE FROM PROCEDIMENTOS_SIGTAP_CID',
'DELETE FROM PROCEDIMENTOS_SIGTAP_REGISTRO',
'DELETE FROM PROFISSIONAIS',
'DELETE FROM PROFISSIONAIS_CBOS',
'DELETE FROM PROFISSIONAIS_EQUIPE',
'DELETE FROM UNIDADES',
'DELETE FROM VISITAS_DOMICILIARES',
'DELETE FROM VISITAS_DOMICILIARES_COMPL',
'DELETE FROM VISITAS_DOMICILIARES_PROC',
'DELETE FROM ATENDS_DOM_COMPL;',
'DELETE FROM ATENDS_DOM_PROC;',
'DELETE FROM ATENDS_DOM_SIGTAP;',
'DELETE FROM ATENDIMENTOS_DOMICILIARES;',
'DELETE FROM ATENDS_INDIV_PROC;',
'DELETE FROM ATENDS_INDIV_PROF;',
'DELETE FROM ATENDS_INDIVIDUAIS;',
'DELETE FROM BAIRROS;',
'DELETE FROM CADASTROS_INDIVIDUAIS;',
'DELETE FROM CBOS;',
'DELETE FROM CIAPS;',
'DELETE FROM CIDADAOS;',
'DELETE FROM CIDADAO_DOMICILIO;',
'DELETE FROM CIDS;',
'DELETE FROM CONTROLE_INTERNO;',
'DELETE FROM DOMICILIOS_CIDADAOS;',
'DELETE FROM EQUIPES;',
'DELETE FROM FICHAS_COMPLEMENTARES;',
'DELETE FROM LOGRADOUROS_ENDERECOS;',
'DELETE FROM LOGRADOUROS_LOTEAMENTOS;',
'DELETE FROM LOGRADOUROS_TIPOS;',
'DELETE FROM MUNICIPIOS;',
'DELETE FROM PROCEDIMENTOS_FICHAS;',
'DELETE FROM PROCEDIMENTOS_INDIV;',
'DELETE FROM PROCEDIMENTOS_INDIV_FICHA;',
'DELETE FROM PROCEDIMENTOS_INDIV_SIGTAP;',
'DELETE FROM PROCEDIMENTOS_SIGTAP;',
'DELETE FROM PROCEDIMENTOS_SIGTAP_CBO;',
'DELETE FROM PROCEDIMENTOS_SIGTAP_CID;',
'DELETE FROM PROCEDIMENTOS_SIGTAP_REGISTRO;',
'DELETE FROM PROFISSIONAIS;',
'DELETE FROM PROFISSIONAIS_CBOS;',
'DELETE FROM PROFISSIONAIS_EQUIPE;',
'DELETE FROM UNIDADES;',
'DELETE FROM VISITAS_DOMICILIARES;',
'DELETE FROM VISITAS_DOMICILIARES_COMPL;',
'DELETE FROM VISITAS_DOMICILIARES_PROC;',
];
Database db = await intialDB();
for(int i=0;querys.length>i;i++){
@@ -295,26 +292,24 @@ class DbSqlite{
print(await db.query('PROFISSIONAIS_EQUIPE'));
return db;
}
Future saveCompetence(var competence,ArgsLoadInitModel args)async{
Future saveCityInit(ArgsLoadInitModel args)async{
Database db = await intialDB();
String cityReplace = ConstVariable().replaceText(args.city);
print(competence);
//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, '')}]';
"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 = {
'CARGA_INICIAL' : 1,
'CIDADE_LOAD' : cityReplace,
'NOME_CIDADE' : args.city,
'ID_MUNICIPIO' : '',
'UF_ESTADO' : '',
'CODIGO_IBGE' : '',
'AMBIENTE' : args.mode,
'COMPETENCIA' : competence,
};
int id = await db.insert('CONTROLE_INTERNO', row);
print('id increment $id CONTROLE_INTERNO');
Map<String, dynamic> row = {
'CARGA_INICIAL' : 1,
'CIDADE_LOAD' : args.model.nameCityApi,
'NOME_CIDADE' : args.model.nameCityFront,
'ID_MUNICIPIO' : args.model.codCity,
'UF_ESTADO' : args.model.codState,
'CODIGO_IBGE' : args.model.codCityIbge,
'AMBIENTE' : args.mode,
'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(await db.query('CONTROLE_INTERNO'));
return db;
}

View File

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

View File

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

View File

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