Skip to content

Commit

Permalink
Merge pull request #8 from stdmedoth/funcionalidade_checar_tabelas
Browse files Browse the repository at this point in the history
funcionalidade adicionada - checar se tabelas estão instaladas
  • Loading branch information
stdmedoth authored Jul 7, 2021
2 parents 0bece82 + 1b316c3 commit 2aab803
Show file tree
Hide file tree
Showing 14 changed files with 234 additions and 2 deletions.
Binary file added Pedidos.o
Binary file not shown.
82 changes: 82 additions & 0 deletions data/db_tables_list
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
IcmsInterestadual
PessoasDistribuicao
Produto_Orcamento
agencia
baixas_titulos
bancos
caixas
cartao
cartoes_checklists
cfops
cheque
cheque_finan
cidade
compras
confs
contatos
contratos
cotacoes
cotacoes_participantes
credenciadoras
criador_relat
criticas
cst_cson
dados
datas_livres_tab
distribuicoes
emails_body
emails_footer
emails_header
emails_model
empresa
estados
estoques
eventos_caixa
faturamento
forma_pagamento
frete_vlrs
grupos
historico
itens_compras
itens_cotacoes
itens_ordens_compra
logradouro
logs
maquinas
meios_pagamento
movimento_estoque
movimentos_caixa
ncm
niveis_gerenciais
operadores
orc_datas_livres
orc_param
orcamentos
orcs_cheques
ordens_compra
pag_cond
parcelas_tab
pedidos
perfil_desktop
pis_cofins
preco_cliente
precos
prod_origem
prod_requisicoes
produtos
relat_tab_campos
relat_tabelas_id
saldo_max
saldo_min
servico_transporte
setores
suporte_posts
suporte_status
suporte_tipos
tecn_pers_elem
terceiros
tipo_movimentos
tipo_terceiros
titulos
unidades
wnd_logger
2 changes: 1 addition & 1 deletion data/sql_scripts/migrates/migrate_01.sql
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
-- versao base sem migrate

create table if not exists versao( versao varchar(30) not null, lancamento datetime not null );
create table if not exists versao( code int primary key auto_increment, versao varchar(30) not null, lancamento datetime not null );

create table if not exists migrate( code int primary key auto_increment, descricao varchar(300) not null, arquivo varchar(150) not null, versao varchar(30) not null,lancamento datetime not null);

Expand Down
Binary file added pedidos
Binary file not shown.
3 changes: 2 additions & 1 deletion src/Tecnico/Backup/init_backup.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,8 @@ int backup_iniciar_exportacao(){
char open_path[MAX_PATH_LEN];
sprintf(open_path, "file://%s",dir_filename);
if (!g_app_info_launch_default_for_uri (open_path , NULL, &error)) {
g_warning ("Failed to open uri: %s", error->message);
popup(NULL, "Não foi possível abrir diretório do backup");
file_logger(error->message);
}
}

Expand Down
41 changes: 41 additions & 0 deletions src/etc/check_db.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
int check_tables(){
MYSQL_RES *res;
MYSQL_ROW row;
char query[MAX_QUERY_LEN];
FILE *fp = fopen(DB_TABLES_LIST_FILE, "r");
if(!fp){
popup(NULL,"Não foi possível verificar tabelas");
return 1;
}
int pos_line = 0;
size_t line_buf_size = 0;
pedidos_db_tables = malloc(MAX_TABLE_LEN * MAX_TABLE_QNT);
pedidos_db_tables[pos_line] = malloc(MAX_TABLE_LEN);
sprintf(query, "SHOW TABLES");
if(!(res = consultar(query))){
popup(NULL,"Não foi possível verificar tabelas");
return 1;
}

while((getline(&pedidos_db_tables[pos_line], &line_buf_size, fp))>0){
remover_barra_n(pedidos_db_tables[pos_line]);
int table_exists = 0;

while((row = mysql_fetch_row(res))){
if( !strcmp(row[0], pedidos_db_tables[pos_line]) ){
table_exists = 1;
}
}
mysql_data_seek(res, 0);
if(!table_exists){
char msg[27 + strlen(pedidos_db_tables[pos_line])];
sprintf(msg, "Tabela %s ausente no sistema!", pedidos_db_tables[pos_line]);
popup(NULL,msg);
return 1;
}
pos_line++;
pedidos_db_tables[pos_line] = malloc(MAX_TABLE_LEN);
}

return 0;
}
3 changes: 3 additions & 0 deletions src/etc/check_db.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
int check_tables();

char **pedidos_db_tables=NULL;
4 changes: 4 additions & 0 deletions src/etc/defines.h
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@
#define INTEGR_PARAMS APP_DIRNAME "/files/integr_params.xml"
#define PRINT_SETTING_FILE APP_DIRNAME "/files/impressao/print.settings"
#define PRINT_SETUP_FILE APP_DIRNAME "/files/impressao/page_setup.settings"
#define DB_TABLES_LIST_FILE APP_DIRNAME "/files/db_tables_list"

#define CSS_ORC "orcamento.css"
#define IMG_IMP_CLI "imgs/cliente.png"
Expand Down Expand Up @@ -265,6 +266,9 @@
#define MAX_SUP_STATUS_LEN 50
#define MAX_SUP_TIPO_LEN 50

#define MAX_TABLE_LEN 20
#define MAX_TABLE_QNT 100

#define MAX_DIF_VLR 0.4

#define PAG_FAT 1
Expand Down
5 changes: 5 additions & 0 deletions src/etc/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,18 @@ int init(){
return 1;
}

if(check_tables()){
return 1;
}

sprintf(query,"select * from tecn_pers_elem");
if(!(res = consultar(query))){
person_tecn_prim = 1;
popup(NULL,"Falha ao receber dados técnicos personalizados");
return 1;
}


if(!(row = mysql_fetch_row(res))){
person_tecn_prim = 1;
strcpy(cad_emp_strc.init_image_path,"");
Expand Down
1 change: 1 addition & 0 deletions src/etc/libs.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include "./fechar.c"
#include "./pega_data.c"
#include "./update_version.c"
#include "./check_db.c"

#include "../Menu/iconview.c"
#include "../Menu/abas.c"
Expand Down
1 change: 1 addition & 0 deletions src/etc/libs.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include "./temas.h"
#include "./impressao.h"
#include "./vars.h"
#include "./check_db.h"

#include "./stoi.h"
#include "./css.h"
Expand Down
1 change: 1 addition & 0 deletions src/etc/sql_tools.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ int mysql_res_to_cvs_file(char *filename, MYSQL_RES *res){
file_logger(filename);
return 1;
}

int rows_qnt = mysql_num_rows(res);
int fields_qnt = mysql_num_fields(res);
while((field = mysql_fetch_field(res))){
Expand Down
8 changes: 8 additions & 0 deletions src/etc/tools.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
#include "sql_tools.c"

void remover_barra_n(char *string){
for(int cont=0;cont<strlen(string);cont++){
if(string[cont] == '\n'){
string[cont] = '\0';
}
}
}

size_t write_download_file(void *ptr, size_t size, size_t nmemb, FILE *stream) {
size_t written = fwrite(ptr, size, nmemb, stream);
return written;
Expand Down
85 changes: 85 additions & 0 deletions tabelas.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
Tables_in_contas;
IcmsInterestadual;
PessoasDistribuicao;
Produto_Orcamento;
agencia;
baixas_titulos;
bancos;
caixas;
cartao;
cartoes_checklists;
cfops;
cheque;
cheque_finan;
cidade;
compras;
confs;
contatos;
contratos;
cotacoes;
cotacoes_participantes;
credenciadoras;
criador_relat;
criticas;
cst_cson;
dados;
datas_livres_tab;
distribuicoes;
emails_body;
emails_footer;
emails_header;
emails_model;
empresa;
estados;
estoques;
eventos_caixa;
faturamento;
forma_pagamento;
frete_vlrs;
grupos;
historico;
itens_compras;
itens_cotacoes;
itens_ordens_compra;
logradouro;
logs;
maquinas;
meios_pagamento;
migrate;
movimento_estoque;
movimentos_caixa;
ncm;
niveis_gerenciais;
operadores;
orc_datas_livres;
orc_param;
orcamentos;
orcs_cheques;
ordens_compra;
pag_cond;
parcelas_tab;
pedidos;
perfil_desktop;
pis_cofins;
preco_cliente;
precos;
prod_origem;
prod_requisicoes;
produtos;
relat_tab_campos;
relat_tabelas_id;
saldo_max;
saldo_min;
servico_transporte;
setores;
suporte_posts;
suporte_status;
suporte_tipos;
tecn_pers_elem;
terceiros;
tipo_movimentos;
tipo_terceiros;
titulos;
unidades;
versao;
wnd_logger;

0 comments on commit 2aab803

Please sign in to comment.