Em 2020 eu criei uma planilha que faz auditoria no MySQL usando um view chamado vw_balancete. No código PHP, eu também usei o vw_balancete para montar o demonstrativo contábil, só que eu percebi que é mais rápido usar os recursos do PHP para montar o demonstrativo do que utilizar o recurso do MySQL.
Em 2024, eu decidi não trabalhar mais com o view do MySQL. O problema é saber como a planilha iria fazer a auditoria. A minha ideia foi pedir para o PHP montar o demonstrativo dentro de uma tabela que eu chamei de tbw. Para a minha alegria, agora a planilha não demora mais cinco minutos para fazer a auditoria, ela é instantânea!
Mas eu ainda não sei se é possível conectar a planilha à tabela tbw hospedado no VPS do Hostinger. Primeiro eu tenho que baixar uma cópia do banco de dados do servidor, depois atualizo o meu banco de dados no meu PC, e finalmente eu peço para a planilha fazer a auditoria.
Isso é muita burocracia, mas eu pedi para o PHP pelo menos abrir o banco de dados, assim que ele terminar de montar a tabela tbw, e de lá eu começo o serviço de exportação.
Arquivo Modelos / Config.php
<?php
function apuracao($dia){
$ano=date('Y',strtotime($dia));
$mes=date('m',strtotime($dia));
$mesVetor=['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'];
$apuracao=$mesVetor[$mes-1]." de $ano";
$primeiroDia="$ano-$mes-01";
$ultimoDia=date('Y-m-t',strtotime($primeiroDia));return json_decode(json_encode(['apuracao'=>$apuracao,'primeiroDia'=>$primeiroDia,'ultimoDia'=>$ultimoDia]));}ArquivoControles/ControleDiario.php
<?php
classControleDiarioextendsControle{publicfunction balancete(){
$receita=0;
$despesa=0;
$anterior=0;
$balancete=[];
$contas=$this->Conexao->select("* from tbconta");if(!isset($_SESSION['dia'])){$_SESSION['dia']=date('Y-m-d');}
$apuracao=apuracao($_SESSION['dia']);
$primeiroDia=$apuracao->primeiroDia;
$ultimoDia=$apuracao->ultimoDia;foreach($contas as $conta){
$debitoAnterior=$this->Conexao->select("sum(valor) as soma from
tbdiario where contad=$conta->conta and dia<'$primeiroDia'")[0]->soma;
$creditoAnterior=$this->Conexao->select("sum(valor) as soma from
tbdiario where contac=$conta->conta and dia<'$primeiroDia'")[0]->soma;
$inicio=$debitoAnterior-$creditoAnterior;
$anterior+=$inicio;
$debito=$this->Conexao->select("sum(valor) as soma from
tbdiario where contad=$conta->conta and
dia between '$primeiroDia' and '$ultimoDia'")[0]->soma;
$credito=$this->Conexao->select("sum(valor) as soma from
tbdiario where contac=$conta->conta and
dia between '$primeiroDia' and '$ultimoDia'")[0]->soma;
$debitoFim=$this->Conexao->select("sum(valor) as soma from
tbdiario where contad=$conta->conta and dia<='$ultimoDia'")[0]->soma;
$creditoFim=$this->Conexao->select("sum(valor) as soma from
tbdiario where contac=$conta->conta and dia<='$ultimoDia'")[0]->soma;
$fim=$debitoFim-$creditoFim;if($conta->conta>=301and $conta->conta<=304){
$receita+=$fim;}if($conta->conta>304){
$despesa+=$fim;}
array_push($balancete,['conta'=>$conta->conta,'descricao'=>$conta->descricao,'inicio'=>$inicio,'debito'=>$debito,'credito'=>$credito,'fim'=>$fim]);}
$resultado=$receita+$despesa;if($resultado<0){$nota="Lucro";}else{$nota="Prejuízo";}
$balancete=json_decode(json_encode($balancete));return json_decode(json_encode(['balancete'=>$balancete,'apuracao'=>$apuracao,'anterior'=>$anterior,'despesa'=>$despesa,'receita'=>$receita,'resultado'=>$resultado,'nota'=>$nota]));}publicfunction tbw(){
$ultimoDia=$this->Conexao->select("dia from tbdiario order by dia desc")[0]->dia;
$_SESSION['dia']=$ultimoDia;
$balancete=$this->balancete()->balancete;
$this->Conexao->exec("drop table if exists tbw");
$this->Conexao->exec("create table tbw (conta int not null,
descricao varchar(45) default null, inicio decimal(13,2) default null,
debito decimal(13,2) default null, credito decimal(13,2) default null,
fim decimal(13,2) default null, primary key (conta))
engine=InnoDB default charset=utf8mb4 collate=utf8mb4_0900_ai_ci");foreach($balancete as $conta){
$inicio=$conta->inicio;
$debito=$conta->debito;
$credito=$conta->credito;
$fim=$conta->fim;if($inicio==null){
$inicio='null';}if($debito==null){
$debito='null';}if($credito==null){
$credito='null';}if($fim==null){
$fim='null';}
$this->Conexao->insert("tbw values ($conta->conta,'$conta->descricao',
$inicio,$debito,$credito,$fim)");}return header("location:https://123.123.123.123:8443/phpmyadmin/index.php?route=/database/export&db=Diario");}}
Pergunta
Frank K Hosaka
Em 2020 eu criei uma planilha que faz auditoria no MySQL usando um view chamado vw_balancete. No código PHP, eu também usei o vw_balancete para montar o demonstrativo contábil, só que eu percebi que é mais rápido usar os recursos do PHP para montar o demonstrativo do que utilizar o recurso do MySQL.
Em 2024, eu decidi não trabalhar mais com o view do MySQL. O problema é saber como a planilha iria fazer a auditoria. A minha ideia foi pedir para o PHP montar o demonstrativo dentro de uma tabela que eu chamei de tbw. Para a minha alegria, agora a planilha não demora mais cinco minutos para fazer a auditoria, ela é instantânea!
Mas eu ainda não sei se é possível conectar a planilha à tabela tbw hospedado no VPS do Hostinger. Primeiro eu tenho que baixar uma cópia do banco de dados do servidor, depois atualizo o meu banco de dados no meu PC, e finalmente eu peço para a planilha fazer a auditoria.
Isso é muita burocracia, mas eu pedi para o PHP pelo menos abrir o banco de dados, assim que ele terminar de montar a tabela tbw, e de lá eu começo o serviço de exportação.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.