ajustes para salvar dados do cadastro de renda total, emprestimo, veiculo e financiamento.

This commit is contained in:
Reginaldo
2024-02-08 17:58:09 -03:00
parent 80ea18c486
commit a94bff8ebd
13 changed files with 465 additions and 85 deletions

View File

@@ -0,0 +1,23 @@
class EquipeModelo{
int ID_EQUIPE;
int ID_UNIDADE;
String INE;
int AREA;
int ID_ATB_MICROAREA;
int ID_ATB_AREA;
int MICROAREA;
int ID_PROFISSIONAL;
int ATIVO;
EquipeModelo({
required this.ID_EQUIPE,
required this.ID_UNIDADE,
required this.INE,
required this.AREA,
required this.ID_ATB_MICROAREA,
required this.ID_ATB_AREA,
required this.MICROAREA,
required this.ID_PROFISSIONAL,
required this.ATIVO,
});
}

View File

@@ -30,7 +30,8 @@ class _HomeScreenState extends State<HomeScreen> {
loadCitizen()async{
await DbSqliteLoad().intialDB().then((db)async {
dataCitizen = await db.query('CIDADAOS ORDER BY NOME_CIDADAO');
// print(await db.rawQuery("SELECT * FROM CIDADAOS WHERE NOME_PAI='REGINALDO OLIVEIRA'"));
print(dataCitizen.length);
// print(await db.rawQuery("SELECT * FROM CIDADAOS"));
});
searchCitizen();
return 'complete';

View File

@@ -8,10 +8,12 @@ import 'package:rkm/widgets/input_text.dart';
import 'package:rkm/widgets/text_default.dart';
import 'package:sqflite/sqflite.dart';
import '../../controllers/main_controllers.dart';
import '../../models/equipe_modelo.dart';
import '../../service/api/api_data_load.dart';
import '../../service/api/api_data_sync.dart';
import '../../service/db/db_sqlite_load.dart';
import '../../service/shared_preferences/shared_preferences_service.dart';
import '../../widgets/dropdown_equipe.dart';
import '../../widgets/title_input.dart';
class SyncLoginScreen extends StatefulWidget {
@@ -26,7 +28,7 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
String error = '';
String? now;
String? selectUnit;
String? selectTeam;
EquipeModelo? selectTeam;
bool validatorDropDown= false;
bool citizenOutArea = false;
int contLogo = 0;
@@ -36,9 +38,11 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
bool loading = false;
List<String> listUnit=[];
List searchUnitCodList=[];
List<String> listTeam = [];
List<EquipeModelo> listTeam = [];
String idUnidade ='';
int idUsuario =0;
int ID_ATB_AREA = 0;
int ID_ATB_MICROAREA = 0;
final PrefService _prefService = PrefService();
@@ -155,15 +159,29 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
var query = "SELECT * FROM EQUIPES JOIN PROFISSIONAIS_EQUIPE ON PROFISSIONAIS_EQUIPE.ID_EQUIPE = EQUIPES.ID_EQUIPE WHERE ID_UNIDADE = $idUnidade AND ID_PROFISSIONAL = $value";
List list = await db.rawQuery(query);
listTeam.clear();
print(list);
for(int i=0; list.length > i;i++){
listTeam.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']==null?'':list[i]['MICROAREA']}');
listTeam.add(
EquipeModelo(
AREA:list[i]['AREA'],
ID_EQUIPE:list[i]['ID_EQUIPE'],
INE:list[i]['INE'].toString(),
ID_ATB_AREA:list[i]['ID_ATB_AREA'],
ID_ATB_MICROAREA:list[i]['ID_ATB_MICROAREA'],
MICROAREA:list[i]['MICROAREA'],
ID_PROFISSIONAL:list[i]['ID_PROFISSIONAL'],
ATIVO:list[i]['ATIVO'],
ID_UNIDADE:list[i]['ID_UNIDADE'],
)
);
// listTeam.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']==null?'':list[i]['MICROAREA']}');
}
var query1 = "SELECT * FROM EQUIPES WHERE ID_EQUIPE = $idUnidade";
List list1 = await db.rawQuery(query1);
print(list1);
// print(list1);
var query2 = "SELECT * FROM PROFISSIONAIS_EQUIPE WHERE ID_PROFISSIONAL = $idUsuario";
List list2 = await db.rawQuery(query2);
print(list2);
// print(list2);
print(list2.length);
print('idUsuario');
print(idUsuario);
@@ -252,7 +270,7 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
},
),
TitleInput(title:'Equipe'),
DropDownButtonDefault(
DropDownEquipe(
width: width*0.7,
title: 'Equipe',
list: listTeam,
@@ -260,6 +278,7 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
onChanged: (value){
setState(() {
selectTeam = value!;
print(selectTeam!.ID_ATB_MICROAREA.toString());
});
},
),

View File

@@ -452,7 +452,6 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'NUM_PIS_PASEP' : PISController.text.isNotEmpty?int.parse(PISController.text):0,
'FL_RETIROU_CARTAO' : enableCityCard?'S':'N',
'NUM_NIS' : NISController.text.isNotEmpty?int.parse(NISController.text):0,
//aqui
'NUM_PROT_CROSS' : '',
'RENDA_MENSAL' : incomeController.text.isNotEmpty?double.parse(incomeController.text.replaceAll('R\$ ', '').replaceAll('.', '').replaceAll(',', '.')):0,
'PROFISSAO' : professionalController.text,
@@ -461,11 +460,6 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'BLOQUEIO' : enableBlocked?1:0,
'ORIGEM' : 'A',
'DT_HORA_CADASTRO' : DateTime.now().toString(),
// 'ID_USUARIO_CADASTRO' : '',
//só quando for feito o atendimento domicíliar
'ID_DOMICILIO' : '',
//só quando for feito um atendimento
'ATENDIMENTOS' : '',
'SINCRONIZADO' : 'N',
};
await DbSqliteSync().insertCidadaos(row,editing?'update':'new',codSus).then((value){
@@ -2062,7 +2056,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
mainAxisSize: MainAxisSize.min,
children: [
Container(
color: ColorPalette.white,
color: edit?Colors.grey[200]:ColorPalette.disable,
margin: EdgeInsets.only(top: 5),
width: width*0.7,
child: TextFormField(

View File

@@ -34,7 +34,17 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
var NOME_RESP_CADASTRO = TextEditingController();
var CNES_RESP_CADASTRO = TextEditingController();
var DT_CADASTRO = TextEditingController();
var RENDA_TOTAL_FAMILIAR = TextEditingController();
var RENDA_MENSAL = TextEditingController();
var ANO_VEICULO = TextEditingController();
var MODELO_VEICULO = TextEditingController();
var VALOR_PARCELA_FINANCIAMENTO = TextEditingController();
var VALOR_PARCELA_EMPRESTIMO = TextEditingController();
var PROFISSAO = TextEditingController();
bool POSSUI_FINANCIAMENTO = false;
bool POSSUI_EMPRESTIMO = false;
bool POSSUI_VEICULO = false;
bool FORA_AREA = false;
bool DISPONIBILIDADE_ENERGIA = false;
bool FL_ANIMAIS = false;
@@ -184,7 +194,28 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
}
loadRegisterHome()async{
ID_DOMICILIO = widget.listData[0]['ID_DOMICILIO']==null || widget.listData[0]['ID_DOMICILIO'] == ''?0:int.parse(widget.listData[0]['ID_DOMICILIO']);
//dados
PROFISSAO.text = widget.listData[0]['PROFISSAO']??'';
RENDA_TOTAL_FAMILIAR.text = widget.listData[0]['RENDA_TOTAL_FAMILIAR']==null?'0,00':'${widget.listData[0]['RENDA_TOTAL_FAMILIAR'].toString().replaceAll('.', ',')}';
MODELO_VEICULO.text = widget.listData[0]['MODELO_VEICULO'];
ANO_VEICULO.text = widget.listData[0]['ANO_VEICULO'].toString();
VALOR_PARCELA_FINANCIAMENTO.text = widget.listData[0]['VALOR_PARCELA_FINANCIAMENTO'].toString();
VALOR_PARCELA_EMPRESTIMO.text = widget.listData[0]['VALOR_PARCELA_EMPRESTIMO'].toString();
RENDA_MENSAL.text = widget.listData[0]['RENDA_MENSAL']==null?'0,00':'${widget.listData[0]['RENDA_MENSAL'].toString().replaceAll('.', ',')}';
POSSUI_VEICULO = widget.listData[0]['POSSUI_VEICULO']=='S'?true:false;
POSSUI_FINANCIAMENTO = widget.listData[0]['POSSUI_FINANCIAMENTO']=='S'?true:false;
POSSUI_EMPRESTIMO = widget.listData[0]['POSSUI_EMPRESTIMO']=='S'?true:false;
// print(RENDA_TOTAL_FAMILIAR.text);
// print(MODELO_VEICULO.text);
// print(ANO_VEICULO.text);
// print(VALOR_PARCELA_FINANCIAMENTO.text);
// print(VALOR_PARCELA_EMPRESTIMO.text);
// print(POSSUI_VEICULO);
// print(POSSUI_FINANCIAMENTO);
// print(POSSUI_EMPRESTIMO);
ID_DOMICILIO = widget.listData[0]['ID_DOMICILIO']==null || widget.listData[0]['ID_DOMICILIO'] == ''?0:widget.listData[0]['ID_DOMICILIO'];
ID_CIDADAO = widget.listData[0]['ID_CIDADAO'];
CD_USUARIO_SUS = widget.listData[0]['CD_USUARIO_SUS'];
DBQuerys().buscaCadDomiciliar(ID_DOMICILIO).then((dataHome)async{
@@ -290,20 +321,22 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
CBO_RESP_CADASTRO = list.length == 0?null:list[0]['CODIGO_CBO'].toString();
setState(() {});
});
await DBQuerys().buscaProfissionalCadInd(dataHome[0]['ID_RESP_CADASTRO']).then((list)async{
ID_RESP_CADASTRO = list['ID_PROFISSIONAL'];
NOME_RESP_CADASTRO.text = list['NOME_PROFISSIONAL'];
String CNS_PROFISSIONAL = list['CNS_PROFISSIONAL'];
CNES_RESP_CADASTRO.text = await DBQuerys().buscaNomeUnidade(list['ID_UNIDADE']);
print(list);
if(CNS_PROFISSIONAL == 999999999999999 || CNS_PROFISSIONAL == '999999999999999'){
CNS_VALIDO = true;
}
});
});
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
for(int i=0; list.length > i;i++){
INE_RESP_CADASTRO = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}';
listINEPROF.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}');
}
await DBQuerys().buscaProfissionalCadInd(idUsuario).then((list){
ID_RESP_CADASTRO = list['ID_PROFISSIONAL'];
NOME_RESP_CADASTRO.text = list['NOME_PROFISSIONAL'];
String CNS_PROFISSIONAL = list['CNS_PROFISSIONAL'];
if(CNS_PROFISSIONAL == 999999999999999 || CNS_PROFISSIONAL == '999999999999999'){
CNS_VALIDO = true;
}
});
setState(() {});
}
@@ -327,7 +360,21 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
}
saveCitizenHome()async{
Map<String, dynamic> row = {
//save
Map<String, dynamic> rowCitizen = {
'PROFISSAO' : PROFISSAO.text.trim(),
'RENDA_TOTAL_FAMILIAR' : double.parse(RENDA_TOTAL_FAMILIAR.text.trim().replaceAll('.','').replaceAll(',', '.')),
'MODELO_VEICULO' : MODELO_VEICULO.text.trim(),
'ANO_VEICULO' : int.parse(ANO_VEICULO.text.trim().replaceAll('.', '')),
'VALOR_PARCELA_FINANCIAMENTO' : double.parse(VALOR_PARCELA_FINANCIAMENTO.text.trim().replaceAll('.','').replaceAll(',', '.')),
'VALOR_PARCELA_EMPRESTIMO' : double.parse(VALOR_PARCELA_EMPRESTIMO.text.trim().replaceAll('.','').replaceAll(',', '.')),
'RENDA_MENSAL' : double.parse(RENDA_MENSAL.text.trim().replaceAll('.','').replaceAll(',', '.')),
'POSSUI_VEICULO' : POSSUI_VEICULO?'S':'N',
'POSSUI_FINANCIAMENTO' : POSSUI_FINANCIAMENTO?'S':'N',
'POSSUI_EMPRESTIMO' : POSSUI_EMPRESTIMO?'S':'N',
};
Map<String, dynamic> rowHome = {
'TIPO_IMOVEL' : TIPO_IMOVEL_COD,
'ID_AREA_DOMICILIO' : ID_AREA_DOMICILIO,
'ID_MICROAREA_DOMICILIO' : ID_MICROAREA_DOMICILIO,
@@ -365,17 +412,19 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
'CARGO_RESP_TECNICO_INST' : CARGO_RESP_TECNICO_INST,
'TEL_RESP_TECNICO_INST' : TEL_RESP_TECNICO_INST,
};
await DbSqliteSync().insertCadastrosDomiciliares(row,TIPO_SALVAR,ID_DOMICILIO,ID_CIDADAO,CD_USUARIO_SUS).then((value){
AlertDialogDefault().alert(
context,
'Aviso',
TIPO_SALVAR!='new'?
'Cadastro Domiciliar alterado com sucesso!':
'Cadastro Domiciliar realizado com sucesso!',
'OK'
);
Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (route) => false);
// print(value);
await DbSqliteSync().insertCadastrosDomiciliares(rowHome,TIPO_SALVAR,ID_DOMICILIO,ID_CIDADAO,CD_USUARIO_SUS).then((value)async{
await DbSqliteSync().insertCidadaos(rowCitizen,editing?'update':'new',widget.listData[0]['CD_USUARIO_SUS']).then((value){
AlertDialogDefault().alert(
context,
'Aviso',
TIPO_SALVAR!='new'?
'Cadastro Domiciliar alterado com sucesso!':
'Cadastro Domiciliar realizado com sucesso!',
'OK'
);
Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (route) => false);
// print(value);
});
});
}
@@ -761,7 +810,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
margin: EdgeInsets.all(10),
child: Column(
children: [
TitleContainers(title: 'Outros'),
TitleContainers(title: 'Profissional Responsável'),
Row(
children: [
Container(
@@ -845,6 +894,177 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
],
),
),
Card(
margin: EdgeInsets.all(10),
child: Column(
children: [
TitleContainers(title: 'Outros'),
Row(
children: [
Container(
height: heigth*0.4,
width: width*0.2,
child: Icon(Icons.tag,size: 80,),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 0.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: 'R\$',color: Colors.black87)),
InputWithSubtitle(
controller: RENDA_MENSAL,
subtitle: 'Renda Mensal',
errorInput: 'Campo Obrigatório',
labelInput: 'Renda Mensal',
widthInput: width*0.65,
widthSubtitle: width*0.65,
hintInput: 'Escreva aqui',
enabled: editing,
onChanged: (v)=>setState((){}),
),
],
),
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: '',color: Colors.black87)),
InputWithSubtitle(
controller: PROFISSAO,
subtitle: 'Profissão',
errorInput: 'Campo Obrigatório',
labelInput: 'Profissão',
widthInput: width*0.65,
widthSubtitle: width*0.65,
hintInput: 'Escreva aqui',
enabled: editing,
onChanged: (v)=>setState((){}),
),
],
),
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: 'R\$',color: Colors.black87)),
InputWithSubtitle(
textInputType: TextInputType.number,
controller: RENDA_TOTAL_FAMILIAR,
subtitle: 'Renda Total Familiar',
errorInput: 'Campo Obrigatório',
labelInput: 'Renda Total Familiar',
widthInput: width*0.65,
widthSubtitle: width*0.65,
hintInput: 'Escreva aqui',
enabled: editing,
onChanged: (v)=>setState((){}),
),
],
),
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: '',color: Colors.black87)),
SwitchWithSubtitle(
width: width*0.65,
title: 'Possui Veículo Próprio',
value: POSSUI_VEICULO,
onChanged: !editing?null: (value)=>setState(()=>POSSUI_VEICULO = value!),
),
],
),
Container(
width: width*0.7,
child: Row(
children: [
Container(width: width*0.05,child: TextDefault(text: '',color: Colors.black87)),
InputWithSubtitle(
controller: MODELO_VEICULO,
subtitle: 'Modelo Veículo',
errorInput: 'Campo Obrigatório',
labelInput: 'Modelo Veículo',
widthInput: width*0.53,
widthSubtitle: width*0.53,
hintInput: 'Escreva aqui',
enabled: editing && POSSUI_VEICULO,
onChanged: (v)=>setState((){}),
),
Spacer(),
InputWithSubtitle(
controller: ANO_VEICULO,
subtitle: 'Ano Veículo',
errorInput: 'Campo Obrigatório',
labelInput: 'Ano Veículo',
widthInput: width*0.1,
widthSubtitle: width*0.1,
hintInput: 'Escreva aqui',
enabled: editing && POSSUI_VEICULO,
onChanged: (v)=>setState((){}),
),
],
),
),
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: '',color: Colors.black87)),
SwitchWithSubtitle(
width: width*0.65,
title: 'Possui Financiamento',
value: POSSUI_FINANCIAMENTO,
onChanged: !editing?null: (value)=>setState(()=>POSSUI_FINANCIAMENTO = value!),
),
],
),
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: 'R\$',color: Colors.black87)),
InputWithSubtitle(
controller: VALOR_PARCELA_FINANCIAMENTO,
subtitle: 'Valor Parcela Financiamento',
errorInput: 'Campo Obrigatório',
labelInput: 'Valor Parcela Financiamento',
widthInput: width*0.65,
widthSubtitle: width*0.65,
hintInput: 'Escreva aqui',
enabled: editing && POSSUI_FINANCIAMENTO,
onChanged: (v)=>setState((){}),
),
],
),
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: '',color: Colors.black87)),
SwitchWithSubtitle(
width: width*0.65,
title: 'Possui Veículo Empréstimo',
value: POSSUI_EMPRESTIMO,
onChanged: !editing?null: (value)=>setState(()=>POSSUI_EMPRESTIMO = value!),
),
],
),
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: 'R\$',color: Colors.black87)),
InputWithSubtitle(
controller: VALOR_PARCELA_EMPRESTIMO,
subtitle: 'Valor Parcela Empréstimo',
errorInput: 'Campo Obrigatório',
labelInput: 'Valor Parcela Empréstimo',
widthInput: width*0.65,
widthSubtitle: width*0.65,
hintInput: 'Escreva aqui',
enabled: editing && POSSUI_EMPRESTIMO,
onChanged: (v)=>setState((){}),
),
],
),
],
),
),
]
),
],
),
),
CNS_VALIDO?Card(
margin: EdgeInsets.all(10),
child: Container(

View File

@@ -144,6 +144,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
int ID_AREA_CIDADAO = 0;
int ID_MICROAREA_CIDADAO = 0;
String TIPO_SALVAR = 'new';
int ID_PROFISSIONAL = 0;
var NOME_RESPONSAVEL_FAMILIAR = TextEditingController();
var NATURALIDADE = TextEditingController(text: 'BRASILEIRO');
@@ -158,7 +159,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
var OUTRAS_CONDICOES = TextEditingController();
var ACOMP_INTITUICAO_QUAL = TextEditingController();
var PARENTESCO_VISITA = TextEditingController();
var ID_RESP_CADASTRO = TextEditingController();
var USUARIO_RESP_CADASTRO = TextEditingController();
var CNES_RESP_CADASTRO = TextEditingController();
var DT_CADASTRO = TextEditingController();
final PrefService _prefService = PrefService();
@@ -223,21 +224,14 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
print(widget.listData[0]['ID_USUARIO_CADASTRO']);
Database db = await DbSqliteLoad().intialDB();
// print('ID_PROFISSIONAL');
// print(ID_PROFISSIONAL);
var query = "SELECT ID_PROFISSIONAL FROM PROFISSIONAIS";
// var query = "SELECT * FROM PROFISSIONAIS";
List list = await db.rawQuery(query);
print(list);
// if(widget.listData[0]['ID_USUARIO_CADASTRO']!='' && widget.listData[0]['ID_USUARIO_CADASTRO']!=null){
// await DBQuerys().buscaProfissionalCadInd(widget.listData[0]['ID_USUARIO_CADASTRO']).then((value){
// print(value);
// });
// }
await DBQuerys().buscaCadInvidual(ID_CIDADAO).then((dataCitizen)async{
// print(CD_USUARIO_SUS);
if(dataCitizen.length != 0) {
ID_PROFISSIONAL = dataCitizen[0]['ID_RESP_CADASTRO'];
print(dataCitizen[0]['ID_RESP_CADASTRO']);
// print(dataCitizen[0]['FIBROMIALGIA']);
// print(dataCitizen[0]['TRANSTORNO_ESPECTRO_AUTISTA']);
TIPO_SALVAR = 'update';
showTab = true;
FORA_AREA = dataCitizen[0]['FORA_AREA'] == 1 ? true : false;
@@ -404,7 +398,6 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
SANITARIO = dataCitizen[0]['SANITARIO'] == 1 ? true : false;
HIGIENE_BUCAL = dataCitizen[0]['HIGIENE_BUCAL'] == 1 ? true : false;
OUTROS_HIGIENE = dataCitizen[0]['OUTROS_HIGIENE'] == 1 ? true : false;
CNES_RESP_CADASTRO.text = await DBQuerys().buscaNomeUnidade(idUnidade);
CBO_RESP_CADASTRO = dataCitizen[0]['CBO_RESP_CADASTRO'].toString();
date_cad = dataCitizen[0]['DT_CADASTRO']??'';
// print('data $date_cad');
@@ -428,13 +421,13 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
}
}
await DBQuerys().buscaProfissionalCadInd(idUsuario).then((list){
ID_RESP_CADASTRO.text = list['NOME_PROFISSIONAL'];
USUARIO_RESP_CADASTRO.text = list['NOME_PROFISSIONAL'];
CNS_PROFISSIONAL = list['CNS_PROFISSIONAL'];
if(CNS_PROFISSIONAL == 999999999999999 || CNS_PROFISSIONAL == '999999999999999'){
CNS_VALIDO = true;
}
});
CNES_RESP_CADASTRO.text = await DBQuerys().buscaNomeUnidade(idUnidade);
// CNES_RESP_CADASTRO.text = await DBQuerys().buscaNomeUnidade(idUnidade);
await DBQuerys().buscaCBOProfissional(idUsuario).then((list){
if(list.length!=0){
for(int i = 0; list.length>i;i++){
@@ -443,6 +436,14 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
}
CBO_RESP_CADASTRO = list.length == 0?null:list[0]['CODIGO_CBO'].toString();
});
if(ID_PROFISSIONAL!=0){
await DBQuerys().buscaProfissionalCadInd(ID_PROFISSIONAL).then((value)async{
print(value);
USUARIO_RESP_CADASTRO.text = value['NOME_PROFISSIONAL'];
//aguardando unidade
CNES_RESP_CADASTRO.text = await DBQuerys().buscaNomeUnidade(value['ID_UNIDADE']);
});
}
});
setState(() {});
}
@@ -1495,7 +1496,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
mainAxisSize: MainAxisSize.min,
children: [
InputWithSubtitle(
controller: ID_RESP_CADASTRO,
controller: USUARIO_RESP_CADASTRO,
subtitle: 'Usuário responsável Pelo Cadastro',
errorInput: 'Campo Obrigatório!',
labelInput: 'Usuário responsável Pelo Cadastro',

View File

@@ -26,8 +26,8 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
String idUsuario = '';
String idUnidade = '';
String nomeUnidade = '';
String area = '';
String microarea = '';
int idArea = 0;
int idMicroarea = 0;
bool foraArea = false;
String urlAPI='';
String mode = '';
@@ -64,12 +64,12 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
dataUser()async{
_prefService.readCacheUnidade().then((listUnidade)async{
_prefService.readCacheSync('area', false).then((list){
foraArea = list[1];
List splited = list[0].split(': ');
area = splited[2].toString().substring(0,1);
microarea = splited[3];
idUnidade = listUnidade[0];
_prefService.readCacheSync().then((list){
print(list);
foraArea = list[8];
idArea = list[2];
idMicroarea = list[4];
idUnidade = listUnidade[0].toString();
nomeUnidade = listUnidade[1];
initSync();
});
@@ -133,7 +133,7 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
await DbSqliteSync().insertProfissionaisCBOs(value).then((value)async{
countProg = 0.7;
setState(() {});
await ApiDataSync().syncCidadaos(urlAPI,mode,nameCityApi,user,idUnidade,area,microarea,foraArea).then((value)async{
await ApiDataSync().syncCidadaos(urlAPI,mode,nameCityApi,user,idUnidade,idArea,idMicroarea,foraArea).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros dos Cidadãos - Por favor, tente novamente!");
}else{
@@ -141,7 +141,7 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
await DbSqliteSync().insertCidadaos(value,'sync','').then((value)async{
countProg = 0.8;
setState(() {});
await ApiDataSync().syncCadastrosDomiciliares(urlAPI,mode,nameCityApi,user,idUnidade,area,microarea,foraArea).then((value)async{
await ApiDataSync().syncCadastrosDomiciliares(urlAPI,mode,nameCityApi,user,idUnidade,idArea,idMicroarea,foraArea).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros Domiciliares - Por favor, tente novamente!");
}else{
@@ -149,13 +149,13 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
await DbSqliteSync().insertCadastrosDomiciliares(value,'sync',0,0,'').then((value)async{
countProg = 0.9;
setState(() {});
await ApiDataSync().syncCadastrosIndividuais(urlAPI,mode,nameCityApi,user,idUnidade,area,microarea,foraArea).then((value)async{
await ApiDataSync().syncCadastrosIndividuais(urlAPI,mode,nameCityApi,user,idUnidade,idArea,idMicroarea,foraArea).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros Individuais - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 10 de 10 - Gravando os Cadastros Individuais no Aplicativo");
await DbSqliteSync().insertCadastrosIndividuais(value,'sync',0).then((value)async{
await DbSqliteSync().saveSync(codCity,codState,urlAPI,mode,nameCityApi,nameCityFront,codCityIbge,user,idUnidade,nomeUnidade,area,microarea).then((value)async{
await DbSqliteSync().saveSync(codCity,codState,urlAPI,mode,nameCityApi,nameCityFront,codCityIbge,user,idUnidade,nomeUnidade,idArea,idMicroarea).then((value)async{
countProg = 1;
setState(() {});
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: user)));

View File

@@ -57,6 +57,7 @@ class ApiDataSync{
Future syncCidadaos(urlAPI,mode,nameCityApi,user,idUnidade,area,microarea,foraArea)async{
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/cidadaos/1/1/true
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/${idUnidade}/cidadaos/$area/$microarea/$foraArea';
print(url);
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
return map;

View File

@@ -54,28 +54,46 @@ class DBQuerys{
var query = "SELECT * FROM PROFISSIONAIS WHERE ID_PROFISSIONAL = $ID_PROFISSIONAL";
// var query = "SELECT * FROM PROFISSIONAIS";
List list = await db.rawQuery(query);
// print(list);
return list[0];
if(list.isEmpty){
return '';
}else{
// print(list);
return list[0];
}
}
buscaNomeUnidade(String ID_UNIDADE)async{
buscaNomeUnidade(int ID_UNIDADE)async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM UNIDADES WHERE ID_UNIDADE = $ID_UNIDADE";
List list = await db.rawQuery(query);
// print(list);
return list[0]['NOME_UNIDADE'];
if(list.isEmpty){
return '';
}else{
// print(list);
return list[0]['NOME_UNIDADE'];
}
}
buscaBairro(nomeBairro)async{
Database db = await DbSqliteLoad().intialDB();
List list = await db.rawQuery("SELECT * FROM BAIRROS WHERE NO_BAIRRO = '$nomeBairro'");
// print(await db.rawQuery('SELECT NO_BAIRRO FROM BAIRROS'));
// print(list[0]['ID_BAIRRO']);
return list[0]['ID_BAIRRO'].toString();
if(list.isEmpty){
return '';
}else{
// print(list);
return list[0]['ID_BAIRRO'].toString();
}
}
buscaTipoLogradouro(tipo)async{
Database db = await DbSqliteLoad().intialDB();
List list = await db.rawQuery("SELECT * FROM LOGRADOUROS_TIPOS WHERE NO_LOGR_TIPO = '$tipo'");
// print(list[0]['ID_LOGR_TIPO']);
return list[0]['ID_LOGR_TIPO'];
if(list.isEmpty){
return '';
}else{
// print(list);
return list[0]['ID_LOGR_TIPO'];
}
}
buscaprocedimento()async{
Database db = await DbSqliteLoad().intialDB();
@@ -130,7 +148,7 @@ class DBQuerys{
var query = 'SELECT * FROM LOGRADOUROS_LOTEAMENTOS WHERE DESC_LOGR_LOTEAMENTO = "$DESC_LOGR_LOTEAMENTO"';
List list = await db.rawQuery(query);
// print(list);
int result = list[0]['ID_LOGR_LOTEAMENTO'];
int result = list.length==0?0:list[0]['ID_LOGR_LOTEAMENTO'];
return result;
}
buscaLoteamentoPorID(int ID_LOGR_LOTEAMENTO)async{
@@ -138,7 +156,7 @@ class DBQuerys{
var query = 'SELECT * FROM LOGRADOUROS_LOTEAMENTOS WHERE ID_LOGR_LOTEAMENTO = $ID_LOGR_LOTEAMENTO';
List list = await db.rawQuery(query);
// print(list);
String result = list[0]['DESC_LOGR_LOTEAMENTO'];
String result = list.length==0?'':list[0]['DESC_LOGR_LOTEAMENTO'];
return result;
}
buscaTodosMunicipios()async{

View File

@@ -30,10 +30,10 @@ class DbSqliteLoad{
db.execute('CREATE TABLE IF NOT EXISTS AVAL_ELEG_CONCL_INE (ID_AVALIACAO_ELEGIBILIDADE INTEGER, AVALIACAO INTEGER);');
db.execute('CREATE TABLE IF NOT EXISTS AVAL_ELEG_COND_AVAL (ID_AVALIACAO_ELEGIBILIDADE INTEGER, AVALIACAO INTEGER);');
db.execute('CREATE TABLE IF NOT EXISTS BAIRROS (ID_BAIRRO INTEGER PRIMARY KEY AUTOINCREMENT, NO_BAIRRO TEXT);');
db.execute('CREATE TABLE IF NOT EXISTS CADASTROS_INDIVIDUAIS (ID_CAD_INDIVIDUAL INTEGER PRIMARY KEY AUTOINCREMENT, STATUS_CADASTRO INTEGER, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, ID_AREA_CIDADAO INTEGER, ID_MICROAREA_CIDADAO INTEGER, FORA_AREA INTEGER, RESPONSAVEL_FAMILIAR INTEGER, ID_RESPONSAVEL_FAMILIAR TEXT, NOME_RESPONSAVEL_FAMILIAR TEXT, PARENTESCO INTEGER, ESCOLARIDADE INTEGER, FREQ_ESCOLA_CRECHE INTEGER, SITUACAO_MERCADO INTEGER, CUIDADOR_TRADICIONAL INTEGER, GRUPO_COMUNITARIO INTEGER, PLANO_PRIVADO INTEGER, COMUNIDADE_TRADICIONAL INTEGER, COM_TRADI_QUAL TEXT, ORIENT_SEXUAL INTEGER, TEM_DEFICIENCIA INTEGER, DEF_AUDITIVA INTEGER, DEF_INTELECTUAL INTEGER, DEF_VISUAL INTEGER, DEF_FISICA INTEGER, DEF_OUTRAS INTEGER, SAIDA_CADASTRO INTEGER, DATA_SAIDA_CADASTRO TEXT, CADASTRO_RECUSADO INTEGER, GESTANTE INTEGER, MATERNIDADE_REFERENCIA TEXT, PESO INTEGER, FUMANTE INTEGER, USA_ALCOOL INTEGER, USA_DROGAS INTEGER, HIPERTENSAO INTEGER, DIABETES INTEGER, AVC_DERRAME INTEGER, INFARTO INTEGER, HANSENIASE INTEGER, TUBERCULOSE INTEGER, CANCER INTEGER, INTERNACAO INTEGER, MOTIVO TEXT, DOENCA_CARDIACA INTEGER, PROBLEMA_RINS INTEGER, DOENCA_PULMAO INTEGER, SAUDE_MENTAL INTEGER, ACAMADO INTEGER, DOMICILIADO INTEGER, PLANTAS_MED INTEGER, PLANTAS_MED_QUAIS TEXT, PIC INTEGER, OUTRAS_CONDICOES TEXT, TEMPO_SITUACAO_RUA INTEGER, ACOMP_INTITUICAO INTEGER, ACOMP_INTITUICAO_QUAL TEXT, BENEFICIO INTEGER, REF_FAMILIAR INTEGER, VISITA_FAMILIAR INTEGER, PARENTESCO_VISITA TEXT, ALIMENTACAO_DIARIA INTEGER, REST_POPULAR INTEGER, DOACAO_REST INTEGER, DOACAO_RELIGIOSO INTEGER, DOACAO_POPULAR INTEGER, OUTROS_ALIM INTEGER, ACESSO_HIGIENE INTEGER, BANHO INTEGER, SANITARIO INTEGER, HIGIENE_BUCAL INTEGER, OUTROS_HIGIENE INTEGER, FICHA_ALTERACAO INTEGER, ID_RESP_CADASTRO INTEGER, CNES_RESP_CADASTRO TEXT, CBO_RESP_CADASTRO TEXT, INE_RESP_CADASTRO TEXT, DT_CADASTRO TEXT, ID_EQUIPE INTEGER, ORIGEM TEXT, SINCRONIZADO TEXT, DT_ENTRADA_BRASIL TEXT, DT_NATURALIZACAO TEXT, PORTARIA_NATURALIZACAO TEXT, CRIANCAS_ADULTO INTEGER, CRIANCAS_OUTRAS_CRIANCAS INTEGER, CRIANCAS_ADOLESCENTE INTEGER, CRIANCAS_SOZINHA INTEGER, CRIANCAS_CRECHE INTEGER, CRIANCAS_OUTRO INTEGER, IDENTIDADE_GENERO INTEGER);');
db.execute('CREATE TABLE IF NOT EXISTS CADASTROS_INDIVIDUAIS (ID_CAD_INDIVIDUAL INTEGER PRIMARY KEY AUTOINCREMENT, STATUS_CADASTRO INTEGER, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, ID_AREA_CIDADAO INTEGER, ID_MICROAREA_CIDADAO INTEGER, FORA_AREA INTEGER, RESPONSAVEL_FAMILIAR INTEGER, ID_RESPONSAVEL_FAMILIAR TEXT, NOME_RESPONSAVEL_FAMILIAR TEXT, PARENTESCO INTEGER, ESCOLARIDADE INTEGER, FREQ_ESCOLA_CRECHE INTEGER, SITUACAO_MERCADO INTEGER, CUIDADOR_TRADICIONAL INTEGER, GRUPO_COMUNITARIO INTEGER, PLANO_PRIVADO INTEGER, COMUNIDADE_TRADICIONAL INTEGER, COM_TRADI_QUAL TEXT, ORIENT_SEXUAL INTEGER, TEM_DEFICIENCIA INTEGER, DEF_AUDITIVA INTEGER, DEF_INTELECTUAL INTEGER, DEF_VISUAL INTEGER, DEF_FISICA INTEGER, DEF_OUTRAS INTEGER, SAIDA_CADASTRO INTEGER, DATA_SAIDA_CADASTRO TEXT, CADASTRO_RECUSADO INTEGER, GESTANTE INTEGER, MATERNIDADE_REFERENCIA TEXT, PESO INTEGER, FUMANTE INTEGER, USA_ALCOOL INTEGER, USA_DROGAS INTEGER, HIPERTENSAO INTEGER, DIABETES INTEGER, AVC_DERRAME INTEGER, INFARTO INTEGER, HANSENIASE INTEGER, TUBERCULOSE INTEGER, CANCER INTEGER, INTERNACAO INTEGER, MOTIVO TEXT, DOENCA_CARDIACA INTEGER, PROBLEMA_RINS INTEGER, DOENCA_PULMAO INTEGER, SAUDE_MENTAL INTEGER, ACAMADO INTEGER, DOMICILIADO INTEGER, PLANTAS_MED INTEGER, PLANTAS_MED_QUAIS TEXT, PIC INTEGER, OUTRAS_CONDICOES TEXT, TEMPO_SITUACAO_RUA INTEGER, ACOMP_INTITUICAO INTEGER, ACOMP_INTITUICAO_QUAL TEXT, BENEFICIO INTEGER, REF_FAMILIAR INTEGER, VISITA_FAMILIAR INTEGER, PARENTESCO_VISITA TEXT, ALIMENTACAO_DIARIA INTEGER, REST_POPULAR INTEGER, DOACAO_REST INTEGER, DOACAO_RELIGIOSO INTEGER, DOACAO_POPULAR INTEGER, OUTROS_ALIM INTEGER, ACESSO_HIGIENE INTEGER, BANHO INTEGER, SANITARIO INTEGER, HIGIENE_BUCAL INTEGER, OUTROS_HIGIENE INTEGER, FICHA_ALTERACAO INTEGER, ID_RESP_CADASTRO INTEGER, CNES_RESP_CADASTRO TEXT, CBO_RESP_CADASTRO TEXT, INE_RESP_CADASTRO TEXT, DT_CADASTRO TEXT, ID_EQUIPE INTEGER, ORIGEM TEXT, SINCRONIZADO TEXT, DT_ENTRADA_BRASIL TEXT, DT_NATURALIZACAO TEXT, PORTARIA_NATURALIZACAO TEXT, CRIANCAS_ADULTO INTEGER, CRIANCAS_OUTRAS_CRIANCAS INTEGER, CRIANCAS_ADOLESCENTE INTEGER, CRIANCAS_SOZINHA INTEGER, CRIANCAS_CRECHE INTEGER, CRIANCAS_OUTRO INTEGER, IDENTIDADE_GENERO INTEGER, FIBROMIALGIA INTEGER, TRANSTORNO_ESPECTRO_AUTISTA INTEGER);');
db.execute('CREATE TABLE IF NOT EXISTS CBOS (CODIGO_CBO TEXT, DESCRICAO_CBO TEXT);');
db.execute('CREATE TABLE IF NOT EXISTS CIAPS (CODIGO_CIAP TEXT, DESC_CIAP TEXT, TIPO_CIAP 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 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, RENDA_TOTAL_FAMILIAR REAL , POSSUI_VEICULO TEXT , MODELO_VEICULO TEXT , ANO_VEICULO INTEGER , POSSUI_FINANCIAMENTO TEXT , VALOR_PARCELA_FINANCIAMENTO REAL , POSSUI_EMPRESTIMO TEXT , VALOR_PARCELA_EMPRESTIMO REAL);');
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, AREA INTEGER, MICROAREA INTEGER);');
@@ -55,7 +55,7 @@ class DbSqliteLoad{
db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_SIGTAP_CBO (COD_PROC_SIGTAP TEXT, CODIGO_CBO TEXT);');
db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_SIGTAP_CID (COD_PROC_SIGTAP TEXT, CODIGO_CID TEXT);');
db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_SIGTAP_REGISTRO (COD_PROC_SIGTAP TEXT, CODIGO_REGISTRO INTEGER);');
db.execute('CREATE TABLE IF NOT EXISTS PROFISSIONAIS (ID_PROFISSIONAL INTEGER PRIMARY KEY AUTOINCREMENT, NOME_PROFISSIONAL TEXT, CNS_PROFISSIONAL TEXT, USERNAME TEXT, SENHA TEXT, BLOQUEIO_ACESSO INTEGER);');
db.execute('CREATE TABLE IF NOT EXISTS PROFISSIONAIS (ID_PROFISSIONAL INTEGER PRIMARY KEY AUTOINCREMENT, NOME_PROFISSIONAL TEXT, CNS_PROFISSIONAL TEXT, USERNAME TEXT, SENHA TEXT, BLOQUEIO_ACESSO INTEGER, ID_UNIDADE INTEGER);');
db.execute('CREATE TABLE IF NOT EXISTS PROFISSIONAIS_CBOS (ID_PROFISSIONAL INTEGER, CODIGO_CBO TEXT);');
db.execute('CREATE TABLE IF NOT EXISTS PROFISSIONAIS_EQUIPE (ID_EQUIPE INTEGER, ID_PROFISSIONAL INTEGER, ATIVO INTEGER);');
db.execute('CREATE TABLE IF NOT EXISTS UNIDADES (ID_UNIDADE INTEGER PRIMARY KEY AUTOINCREMENT, NOME_UNIDADE TEXT, CNES_UNIDADE TEXT);');

View File

@@ -130,6 +130,7 @@ class DbSqliteSync{
'USERNAME' : value[i]['username'],
'SENHA' : value[i]['senha'],
'BLOQUEIO_ACESSO' : value[i]['bloqueioAcesso'],
'ID_UNIDADE' : value[i]['idUnidade'],
};
rows.add(row);
}
@@ -258,6 +259,14 @@ class DbSqliteSync{
'ID_USUARIO_CADASTRO' : value[i]['idUsuarioCadastro'],
'ID_DOMICILIO' : value[i]['cdDomicilio'],
'ATENDIMENTOS' : value[i]['atendimentos'],
'RENDA_TOTAL_FAMILIAR': value[i]['rendaTotalFamiliar'],
'POSSUI_VEICULO': value[i]['possuiVeiculo'],
'MODELO_VEICULO': value[i]['modeloVeiculo'] ,
'ANO_VEICULO': value[i]['anoVeiculo'],
'POSSUI_FINANCIAMENTO': value[i]['possuiFinanciamento'] ,
'VALOR_PARCELA_FINANCIAMENTO': value[i]['valorParcelaFinanciamento'] ,
'POSSUI_EMPRESTIMO': value[i]['possuiEmprestimo'] ,
'VALOR_PARCELA_EMPRESTIMO': value[i]['valorParcelaEmprestimo'],
'SINCRONIZADO' : '',
};
rows.add(row);
@@ -284,12 +293,13 @@ class DbSqliteSync{
return db;
}
Future insertCadastrosDomiciliares(var value,String type,int ID_DOMICILIO,int ID_CIDADAO,String CD_USUARIO_SUS)async{
List list = value;
List<Map<String, dynamic>> rows = [];
Database db = await DbSqliteLoad().intialDB();
Batch batch = db.batch();
if(type=='sync'){
List list = value;
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
'ID_DOMICILIO': value[i]['cdDomicilio'],
@@ -372,12 +382,13 @@ class DbSqliteSync{
return db;
}
Future insertCadastrosIndividuais(var value,String type,int ID_CIDADAO)async{
List list = value;
List<Map<String, dynamic>> rows = [];
Database db = await DbSqliteLoad().intialDB();
Batch batch = db.batch();
if(type=='sync'){
List list = value;
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
'ID_CAD_INDIVIDUAL': value[i]['idCadIndividual'],
@@ -470,6 +481,8 @@ class DbSqliteSync{
'CRIANCAS_CRECHE': value[i]['criancasCresce'],
'CRIANCAS_OUTRO': value[i]['criancasOutro'],
'IDENTIDADE_GENERO': value[i]['identidadeGenero'],
'FIBROMIALGIA': value[i]['fibromialgia'],
'TRANSTORNO_ESPECTRO_AUTISTA': value[i]['transtornoEspectroAutista'],
};
rows.add(row);
}
@@ -483,10 +496,12 @@ class DbSqliteSync{
List<Map<String, dynamic>> CADASTROS_INDIVIDUAIS = await db.query('CADASTROS_INDIVIDUAIS');
print('Total de CADASTROS_INDIVIDUAIS : ${CADASTROS_INDIVIDUAIS.length}');
}else if(type=='new'){
int id = await db.insert('CADASTROS_INDIVIDUAIS', value);
Map<String, dynamic> dataMap = value;
int id = await db.insert('CADASTROS_INDIVIDUAIS', dataMap);
// print('novo id $id');
}else if(type=='update'){
await db.update('CADASTROS_INDIVIDUAIS', value,where: "ID_CIDADAO = $ID_CIDADAO");
Map<String, dynamic> dataMap = value;
await db.update('CADASTROS_INDIVIDUAIS', dataMap ,where: "ID_CIDADAO = $ID_CIDADAO");
}
return db;
}

View File

@@ -1,5 +1,7 @@
import 'package:shared_preferences/shared_preferences.dart';
import '../../models/equipe_modelo.dart';
class PrefService{
Future createCacheidUsuario(String idUsuario)async{
@@ -20,10 +22,17 @@ class PrefService{
_preferences.setString('idUnidade', idUnidade);
_preferences.setString('nomeUnidade', nomeUnidade);
}
Future createCacheSync(String area,bool foraArea)async{
Future createCacheSync(EquipeModelo equipe,bool foraArea)async{
SharedPreferences _preferences = await SharedPreferences.getInstance();
_preferences.setString('area', area);
_preferences.setInt('idEquipe',equipe.ID_EQUIPE);
_preferences.setString('ine',equipe.INE);
_preferences.setInt('area',equipe.AREA);
_preferences.setInt('idAtbMicroarea',equipe.ID_ATB_MICROAREA);
_preferences.setInt('idAtbArea',equipe.ID_ATB_AREA);
_preferences.setInt('microarea',equipe.MICROAREA);
_preferences.setInt('idProfissional',equipe.ID_PROFISSIONAL);
_preferences.setInt('ativo',equipe.ATIVO);
_preferences.setBool('foraArea', foraArea);
}
@@ -65,12 +74,26 @@ class PrefService{
];
return list;
}
Future readCacheSync(String area,bool foraArea) async{
Future readCacheSync() async{
SharedPreferences _preferences = await SharedPreferences.getInstance();
String? area = _preferences.getString('area');
int? area = _preferences.getInt('area');
int? idEquipe = _preferences.getInt('idEquipe');
String? ine = _preferences.getString('ine');
int? idAtbMicroarea = _preferences.getInt('idAtbMicroarea');
int? idAtbArea = _preferences.getInt('idAtbArea');
int? microarea = _preferences.getInt('microarea');
int? idProfissional = _preferences.getInt('idProfissional');
int? ativo = _preferences.getInt('ativo');
bool? foraArea = _preferences.getBool('foraArea');
List list =[
idEquipe,
ine,
idAtbArea,
area,
idAtbMicroarea,
microarea,
idProfissional,
ativo,
foraArea
];
return list;

View File

@@ -0,0 +1,65 @@
import 'package:flutter/material.dart';
import 'package:rkm/widgets/text_default.dart';
import '../config/color_palette.dart';
import '../config/const_variable.dart';
import '../models/equipe_modelo.dart';
class DropDownEquipe extends StatelessWidget {
var onChanged;
EquipeModelo? select;
String title;
double fontSize;
List<EquipeModelo> list;
double width;
double widthContainer;
DropDownEquipe({
required this.onChanged,
required this.select,
required this.title,
required this.list,
required this.width,
this.fontSize = 15,
this.widthContainer = 300
});
@override
Widget build(BuildContext context) {
return Column(
children: [
Container(
width: width*0.95,
margin: ConstVariable().marginHightInput,
color: ColorPalette.white,
child: DropdownButtonHideUnderline(
child: DropdownButton(
hint: Padding(
padding: const EdgeInsets.symmetric(horizontal: 0.0),
child: TextDefault(text: title,fontSize: ConstVariable().fontSizeInput,textAlign: TextAlign.end,color: Colors.black,),
),
value: select,
items: list.map((value) => DropdownMenuItem<EquipeModelo>(
value: value,
child: Container(
width: widthContainer,
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 0.0),
child: TextDefault(
text: 'INE: ${value.INE} / Área: ${value.AREA} - Microárea : ${value.MICROAREA==null?'':value.MICROAREA}',
maxLines: 2,
fontSize: fontSize,
color: Colors.black,
),
),
),
)
).toList(),
onChanged:onChanged
),
),
),
],
);
}
}