Skip to content

Commit

Permalink
correcao valores na exportação de planilha
Browse files Browse the repository at this point in the history
  • Loading branch information
stdmedoth committed Jul 10, 2021
1 parent 1bc4548 commit 1402a34
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 5 deletions.
6 changes: 3 additions & 3 deletions src/Relatorios/planilhas/init_export.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,15 +80,15 @@ int planilha_init_export(int module){

planilhas_gerar_querys[PLANL_MOD_FINAN_REC] = malloc(MAX_QUERY_LEN);
sprintf(planilhas_gerar_querys[PLANL_MOD_FINAN_REC],
"SELECT * FROM titulos t INNER JOIN parcelas_tab pt ON t.code = pt.parcelas_id where t.tipo_titulo = 0");
"SELECT t.code as 'Código Título',pt.posicao as 'Parcela',t2.razao as 'Cliente/Fornecedor',CASE WHEN status = 0 THEN 'Baixado'WHEN status = 1 THEN 'Parciamente Baixado'WHEN status = 2 THEN 'Pendente'END as 'Situação do Título',t.qnt_parcelas as 'Qnt. Parcelas',CASE WHEN t.tipo_titulo = 0 THEN 'Receber'WHEN t.tipo_titulo = 1 THEN 'Pagar'END as 'Tipo Título',b.nome ,DATE_FORMAT(pt.data_criacao, '%%d/%%m/%%Y') as 'Criado em',DATE_FORMAT(pt.data_vencimento , '%%d/%%m/%%Y') as 'Vence em', REPLACE(valor, '.', ',') as 'Valor' FROM titulos t INNER JOIN terceiros t2 ON t2.code = t.cliente INNER JOIN parcelas_tab pt ON t.code = pt.parcelas_id LEFT JOIN bancos b ON b.code = pt.banco WHERE t.tipo_titulo = 0");

planilhas_gerar_querys[PLANL_MOD_FINAN_PAG] = malloc(MAX_QUERY_LEN);
sprintf(planilhas_gerar_querys[PLANL_MOD_FINAN_PAG],
"SELECT * FROM titulos t INNER JOIN parcelas_tab pt ON t.code = pt.parcelas_id where t.tipo_titulo = 1");
"SELECT t.code as 'Código Título',pt.posicao as 'Parcela',t2.razao as 'Cliente/Fornecedor',CASE WHEN status = 0 THEN 'Baixado'WHEN status = 1 THEN 'Parciamente Baixado'WHEN status = 2 THEN 'Pendente'END as 'Situação do Título',t.qnt_parcelas as 'Qnt. Parcelas',CASE WHEN t.tipo_titulo = 0 THEN 'Receber'WHEN t.tipo_titulo = 1 THEN 'Pagar'END as 'Tipo Título' ,b.nome ,DATE_FORMAT(pt.data_criacao, '%%d/%%m/%%Y') as 'Criado em',DATE_FORMAT(pt.data_vencimento , '%%d/%%m/%%Y') as 'Vence em', REPLACE(valor, '.', ',') as 'Valor' FROM titulos t INNER JOIN terceiros t2 ON t2.code = t.cliente INNER JOIN parcelas_tab pt ON t.code = pt.parcelas_id LEFT JOIN bancos b ON b.code = pt.banco WHERE t.tipo_titulo = 1");

planilhas_gerar_querys[PLANL_MOD_FINAN_FLUXO] = malloc(MAX_QUERY_LEN);
sprintf(planilhas_gerar_querys[PLANL_MOD_FINAN_FLUXO],
"SELECT * FROM titulos t INNER JOIN parcelas_tab pt ON t.code = pt.parcelas_id");
"SELECT t.code as 'Código Título', pt.posicao as 'Parcela', t2.razao as 'Cliente/Fornecedor', CASE WHEN status = 0 THEN 'Baixado' WHEN status = 1 THEN 'Parciamente Baixado' WHEN status = 2 THEN 'Pendente' END as 'Situação do Título', t.qnt_parcelas as 'Qnt. Parcelas', CASE WHEN t.tipo_titulo = 0 THEN 'Receber' WHEN t.tipo_titulo = 1 THEN 'Pagar' END as 'Tipo Título' , b.nome , DATE_FORMAT(pt.data_criacao, '%%d/%%m/%%Y') as 'Criado em', DATE_FORMAT(pt.data_vencimento , '%%d/%%m/%%Y') as 'Vence em', CASE WHEN t.tipo_titulo = 0 THEN REPLACE(valor, '.', ',') WHEN t.tipo_titulo = 1 THEN REPLACE(concat('-',valor), '.', ',') END as 'Valor' FROM titulos t INNER JOIN terceiros t2 ON t2.code = t.cliente INNER JOIN parcelas_tab pt ON t.code = pt.parcelas_id LEFT JOIN bancos b ON b.code = pt.banco;");

g_signal_connect(planilha_export_path_button,"file-set",G_CALLBACK(get_filename_to_entry),planilha_export_path_entry);
g_signal_connect(planilha_export_conf_wnd,"destroy",G_CALLBACK(ger_janela_fechada),&janelas_gerenciadas.vetor_janelas[REG_PLANL_CONF_ICONS_WIN]);
Expand Down
26 changes: 24 additions & 2 deletions src/etc/sql_tools.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,42 @@ 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);
int types[fields_qnt];
int field_pos=0;
while((field = mysql_fetch_field(res))){
fprintf(fp,"%s;", field->name);
types[field_pos] = field->type;
field_pos++;
}
fprintf(fp,"\n");

char *oldLocale = setlocale(LC_NUMERIC, NULL);
setlocale(LC_NUMERIC, "pt_BR");
while((row = mysql_fetch_row(res))){
for (int i = 0; i < fields_qnt; ++i){
fprintf(fp,"%s;", row[i]);
if(!row[i]){
fprintf(fp,";");
}else{
char value[strlen(row[i]) + 12];
switch(types[i]){
case MYSQL_TYPE_DECIMAL:
case MYSQL_TYPE_FLOAT:
sprintf(value, "%.2f", atof(row[i]));
break;
default:
sprintf(value, "%s", row[i]);
break;
}
fprintf(fp,"%s;", row[i]);
}

}
fprintf(fp,"\n");
}
setlocale(LC_NUMERIC, oldLocale);
fclose(fp);
return 0;
}
Expand Down

0 comments on commit 1402a34

Please sign in to comment.