Ir para conteúdo
Fórum Script Brasil
  • 0

modelos, visões e controles: a soma de todos os débitos e créditos


Frank K Hosaka

Pergunta

Estou estudando a programação orientada a objetos (POO) na base da tentativa e erro.

Hoje eu queria criar um controle chamado diário, e dentro dele eu queria usar uma variável privada chamada diário. O PHP entrou num looping infinito, assim eu precisei mudar o nome da classe para controleDiário, e assim descobri porque os controladores tem o sufixo de Controller em seus nomes. Eu decidi usar o controle como prefixo.

Outra coisa bacana é a definição das variáveis utilizada dentro da classe como privada. Eu queria mudar para público, isso me pouparia de escrever pelo menos dois métodos. Mas veio um enorme peso na consciência e decidi não mexer no tipo das variáveis utilizadas dentro da classe, decidi mandar o resultado de três consultas dentro de um vetor. Enfim, o POO é chato, mas dá para fazer gambiarra.

arquivo mvc/controles/controleDiário.php
<?php
session_start();
require $_SERVER['DOCUMENT_ROOT'].'/mvc/modelos/diário.php';
require $_SERVER['DOCUMENT_ROOT'].'/mvc/modelos/funções.php';
class controleDiário {
    private $diário;
    public function __construct(){
        $this->diário=new diário();}
    public function início($dia){
        $consultas=$this->diário->consulta($dia);
        $lçtos=$consultas[0];
        $somaDébito=$consultas[1];
        $somaCrédito=$consultas[2];
        require $_SERVER['DOCUMENT_ROOT']."/mvc/visões/diário.php";exit;}}
$diário=new controleDiário();
if(isset($_POST['novaData'])){$diário->início($_POST['novaData']);}
if(isset($_GET)){$dia=date('Y-m-d');$diário->início($dia);}

arquivo mvc/modelos/diário.php
<?php
require $_SERVER['DOCUMENT_ROOT'].'/mvc/modelos/conexão.php';
class diário extends conexão {
    private $pdo;
    public function __construct(){
        $this->pdo=conexão::instância();}
    public function consulta($dia){
        $stmt=$this->pdo->query("select sum(valor) as somaDébito from diário 
            where contaD>0 and dia='$dia'");
        $somaDébito=$stmt->fetchAll(PDO::FETCH_ASSOC)[0]['somaDébito'];
        $stmt=$this->pdo->query("select sum(valor) as somaCrédito from diário 
            where contaC>0 and dia='$dia'");
        $somaCrédito=$stmt->fetchAll(PDO::FETCH_ASSOC)[0]['somaCrédito'];
        $stmt=$this->pdo->query("select * from diário where
            dia='$dia'");
        return [$stmt->fetchAll(PDO::FETCH_OBJ),$somaDébito,$somaCrédito];}}

arquivo mvc/visões/diário.php
<?php
include $_SERVER['DOCUMENT_ROOT']."/mvc/visões/menu.php"; ?>
<table class='table table-striped'>
Lançamentos do dia
<form method=post action='../controles/controleDiário.php'>
<input type=date name=novaData value=<?=$dia?> onchange=submit()>
</form>
<th>lçto<th>contad<th>contac<th>valor<th>hist
<?php foreach($lçtos as $lçto): ?>
<tr>
<td><?=$lçto->lçto?>
<td><?=$lçto->contad?>
<td><?=$lçto->contac?>
<td class=text-end><?=dec($lçto->valor)?>
<td><?=$lçto->hist?>
<?php endforeach; ?>
<tr><td><td><td><td><?=dec($somaDébito)?><td>Soma dos Débitos
<tr><td><td><td><td class=text-danger><?=dec($somaCrédito)?>
    <td class=text-danger>Soma dos Créditos

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...