Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Matheus Augusto 07

Sistema de Cadastro de Despesas [Idéias]

Recommended Posts

Olá! Boa tarde! Primeiramente um Feliz Ano Novo para todos!

Amigos, eu tenho um sistema de despesas feito, em que usuario faz o calculo das despesas que ele mesmo cadastra. So que ai eu estava querendo fazer com que as depesas sejam cadastradas mes em mes! Para que depois ele consultasse o que ele gastou referente ao mes que ele cadastrou a despesa. Nao tenho ideia de como fazer isso entao recorri a voces. Estou no aguardo desde ja agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom não entendi muito bem, mas acredito que esteja utilizando banco de dados para salvar as informações cert?

mas é só fazer um filtro selecionando as despesas do Mes X...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom não entendi muito bem, mas acredito que esteja utilizando banco de dados para salvar as informações cert?

mas é só fazer um filtro selecionando as despesas do Mes X...

 

 

Certo, ficou um pouco subentendido mesmo. Mas as informações que estão sendo gravadas sao apenas as Despesas e o Tipo dela (Ex: Transporte, Educação etc)

 

Que tipo de filtro? Nao entendi.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi isso!

 

Meu banco tem as seguintes tabelas: tbdespesas > Id, Nome e Tipo(Esses TIPOS foram determinados por mim mesmo, e nao pelo usuario) // tbusuario > Id, Nome e Senha (apenas para um unico usuario)

 

Respondeu sua pergunta, Angelo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matheus Augusto 07, o problema é que em seu banco de dados não tem uma tabela que guarde a data da despesa. Teria que haver uma coluna na tabela tbdespesas referente a data da despesa assim a pesquisa se daria por essa coluna.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que você quer é conforme ele coloca as despesas vai cadastrando no banco de dados e quando ele querer ver ex: mês de janeiro os gastos ele faz uma consulta clicando num link do mês. É isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando fui fazer o fechamento dos meus gastos e receitas do ano passado (antes de ontem rsrs) no Excel pensei justamente em fazer na plataforma PHP, pro meu próprio uso. Já bolei tudo na minha mente, mas ainda não consegui colocar em prática.

Posso ajudar com algumas ideias se quiser.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matheus Augusto 07, o problema é que em seu banco de dados não tem uma tabela que guarde a data da despesa. Teria que haver uma coluna na tabela tbdespesas referente a data da despesa assim a pesquisa se daria por essa coluna.

 

Pode explicar? Realmente nao entendi assim o serviço do campo datadespesa. Obrigado

 

o que você quer é conforme ele coloca as despesas vai cadastrando no banco de dados e quando ele querer ver ex: mês de janeiro os gastos ele faz uma consulta clicando num link do mês. É isso ?

 

Correto! Isso mesmo

 

Quando fui fazer o fechamento dos meus gastos e receitas do ano passado (antes de ontem rsrs) no Excel pensei justamente em fazer na plataforma PHP, pro meu próprio uso. Já bolei tudo na minha mente, mas ainda não consegui colocar em prática.

Posso ajudar com algumas ideias se quiser.

 

 

Ideias sempre sao bem vindas cara!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo, não tem como o programa saber qual foi a data da despesa se esta data não existir e para existir é preciso estar no banco tendo assim uma coluna data.

 

tabelas:

tbdespesas > Id, Nome, Tipo e DataDespesa

tbusuario > Id, Nome e Senha

 

 

A partir disso você pode fazer a busca da despesa baseada na coluna DataDespesa que guardará a data em que a despesa for criada em formato americano YYYY-MM-DD(ano-mes-dia)

 

Com o conhecimento que tenho, como faria:

 

<?php
$ano = date("Y"); // Pega o ano atual
$mes = date("m"); // Neste caso o mês que será buscado, aqui ele busca o mês atual.
$query = @mysql_query("SELECT nome, tipo, dataDespesas as data FROM tbdespesas WHERE data LIKE '{$ano}-{$mes}-%'");
?>

 

O "%" no SELECT significa que qualquer dia tá valendo.

 

Uma dúvida, tem a tabela usuário, terá o registro de qual usuário fez qual despesa? Se caso for sim, mais uma coluna será implementada além de DataDespesa, seria ID_Usuario, assim quando uma despesa for pesquisada, através do ID_Usuario, em um SELECT usando INNER JOIN, saberá qual foi o usuário que gerou aquela despesa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo, não tem como o programa saber qual foi a data da despesa se esta data não existir e para existir é preciso estar no banco tendo assim uma coluna data.

 

tabelas:

tbdespesas > Id, Nome, Tipo e DataDespesa

tbusuario > Id, Nome e Senha

 

 

A partir disso você pode fazer a busca da despesa baseada na coluna DataDespesa que guardará a data em que a despesa for criada em formato americano YYYY-MM-DD(ano-mes-dia)

 

Com o conhecimento que tenho, como faria:

 

<?php
$ano = date("Y"); // Pega o ano atual
$mes = date("m"); // Neste caso o mês que será buscado, aqui ele busca o mês atual.
$query = @mysql_query("SELECT nome, tipo, dataDespesas as data FROM tbdespesas WHERE data LIKE '{$ano}-{$mes}-%'");
?>

 

O "%" no SELECT significa que qualquer dia tá valendo.

 

Uma dúvida, tem a tabela usuário, terá o registro de qual usuário fez qual despesa? Se caso for sim, mais uma coluna será implementada além de DataDespesa, seria ID_Usuario, assim quando uma despesa for pesquisada, através do ID_Usuario, em um SELECT usando INNER JOIN, saberá qual foi o usuário que gerou aquela despesa.

 

Entendi sim! Mas assim, para eu que vou usar um SELECT/OPTION para listar os meses certo?! Como o banco saberia que o mes que eu selecionei é um mes que está no banco cadastrado juntamente com a despesa, para que eu possa ta fazendo uma consulta?! Vou tentar essa ideia que voce me indicou e a noite eu respondo. Entendeu minha pergunta?

 

Bom dia,

 

Uma sugestão para a modelagem: Clique aqui

 

* Sugestões são bem-vindas.

 

Boa sugestão! Mas no meu caso, nao seria usado pois so existe apenas um usuario entende? Dai eu nao preciso saber, mas caso eu aprimore o sistema vou fazer isso ai tambem, mas temos que tentar fazer esta parte que to apresentando! Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas a questão é: se você não colocar uma referêrencia(chave estrangeira) do usuário nas despesas, como vai saber de quem é qual despesa depois?

 

*Pensei na modelagem assim, imaginando um futuro crescimento/melhoramento do sistema.

 

*Desculpe, agora que notei que é um controle pessoal, pensei que fosse algo para mais pessoas utilizarem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas a questão é: se você não colocar uma referêrencia(chave estrangeira) do usuário nas despesas, como vai saber de quem é qual despesa depois?

 

*Pensei na modelagem assim, imaginando um futuro crescimento/melhoramento do sistema.

 

*Desculpe, agora que notei que é um controle pessoal, pensei que fosse algo para mais pessoas utilizarem.

 

 

Uhum! Sem problemas. A principio é uso pessoal, digamos que um aprimoramento dos meus conhecimentos entende? Dai entao, quando ficar normalizado, podemos pensar nisso sim, porque nao? Otima ideia sua!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi sim! Mas assim, para eu que vou usar um SELECT/OPTION para listar os meses certo?! Como o banco saberia que o mes que eu selecionei é um mes que está no banco cadastrado juntamente com a despesa, para que eu possa ta fazendo uma consulta?! Vou tentar essa ideia que voce me indicou e a noite eu respondo. Entendeu minha pergunta?Boa sugestão! Mas no meu caso, nao seria usado pois so existe apenas um usuario entende? Dai eu nao preciso saber, mas caso eu aprimore o sistema vou fazer isso ai tambem, mas temos que tentar fazer esta parte que to apresentando! Obrigado

 

Bem, quando se faz a pesquisa ele retorna informações. Para saber se existe algo encontrado se utiliza mysql_num_rows

 

<?php
$ano = date("Y"); // Pega o ano atual
$mes = date("m"); // Neste caso o mês que será buscado, aqui ele busca o mês atual.
$query = @mysql_query("SELECT nome, tipo, dataDespesas as data FROM tbdespesas WHERE data LIKE '{$ano}-{$mes}-%'");

// A partir daqui ele irá validar se há mais de 0(zero) informações encontradas na pesquisa
if(mysql_num_rows($query) > 0){
echo "Encontrou informação";
}else{
echo "Não foi encontrado nada na pesquisa";
}

?>

 

PS: Ah sim, você fala sobre meses selecionados. Os exemplos que estou dando são muito simples, se quiser selecionar meses seguidos você passará informação de um jeito, se for meses não seguidos e sem padrão, tipo: Março, Maio, Agosto etc, é outro jeito, mas a idéia é a mesma, o que irá mudar é uma implementação de Loop(s), isso depende muito do resultado que deseja, pois a implementação de pegar meses do início do ano até o atual não precisa ser complexo como o de meses selecionados sem padrão entre um e outro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, quando se faz a pesquisa ele retorna informações. Para saber se existe algo encontrado se utiliza mysql_num_rows

 

<?php
$ano = date("Y"); // Pega o ano atual
$mes = date("m"); // Neste caso o mês que será buscado, aqui ele busca o mês atual.
$query = @mysql_query("SELECT nome, tipo, dataDespesas as data FROM tbdespesas WHERE data LIKE '{$ano}-{$mes}-%'");

// A partir daqui ele irá validar se há mais de 0(zero) informações encontradas na pesquisa
if(mysql_num_rows($query) > 0){
echo "Encontrou informação";
}else{
echo "Não foi encontrado nada na pesquisa";
}

?>

 

PS: Ah sim, você fala sobre meses selecionados. Os exemplos que estou dando são muito simples, se quiser selecionar meses seguidos você passará informação de um jeito, se for meses não seguidos e sem padrão, tipo: Março, Maio, Agosto etc, é outro jeito, mas a idéia é a mesma, o que irá mudar é uma implementação de Loop(s), isso depende muito do resultado que deseja, pois a implementação de pegar meses do início do ano até o atual não precisa ser complexo como o de meses selecionados sem padrão entre um e outro.

 

Eu tava pensando em adicionar cada mes entende? No campo que tu deu a ideia (Janeiro ate Dezembro) mas ai eu nao sei como, na hora de que eu for calcular, o sistema saberia qual mes que eu selecionei. Compreende? Fica subentendido pq to sem a estrutura do codigo aqui, mas acho que nem precisa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

Uma sugestão para a modelagem: Clique aqui

 

* Sugestões são bem-vindas.

 

valor de vez de varchar colocar double

 

Bom dia,

 

Uma sugestão para a modelagem: Clique aqui

 

* Sugestões são bem-vindas.

 

não é mais facil criar o campo despesa na tabela usuario, assim cada um tem suas despesas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tava pensando em adicionar cada mes entende? No campo que tu deu a ideia (Janeiro ate Dezembro) mas ai eu nao sei como, na hora de que eu for calcular, o sistema saberia qual mes que eu selecionei. Compreende? Fica subentendido pq to sem a estrutura do codigo aqui, mas acho que nem precisa!

 

Bem, sobre a passagem de valores, como estamos falando de algo em WEB a passagem deve vir do HTML via POST ou GET, independente de utilizar ou não AJAX. Caso os meses sejam selecionados sem padrão de ordem ou distancia entre eles a seleção de meses seria por CHECKBOX, caso seja selecionado um mês então um botão INPUT tá bom.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tabela de Despesa bem simples

id integer

tipo integer

valor float

data date

 

Registros

1 | 1 | 10.00 | 2012-12-15

2 | 1 | 13.00 | 2013-01-02

3 | 1 | 26.00 | 2013-01-03

 

Digamos que esses registros existam na tabela, e você quer saber todas as despesas do MÊS 01 do ANO 2013

 

SELECT * FROM despesas WHERE data >= '2013-01-01' AND data <= '2013-01-31'

 

OU

 

SELECT * FROM despesas WHERE MONTH(data) = '01' AND YEAR(data) <= '2013'  // alguns bancos podem não conter as funções MONTH e YEAR então verifique antes

 

OU ainda, se quiser somente o total

 

SELECT SUM(valor) FROM despesas WHERE data >= '2013-01-01' AND data <= '2013-01-31' // irá retornar a somatória de todos os registros

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o seguinte:

<select name="mes" size="1">
<option>Selecione o Mes</option>
     <option>Janeiro</option>
     <option>Fevereiro</option>
     <option>Março</option>
     <option>Abril</option>
     <option>Maio</option>
     <option>Junho</option>
      <option>Julho</option>
       <option>Agosto</option>
        <option>Setembro</option>
         <option>Outubro</option>
          <option>Novembro</option>
           <option>Dezembro</option> </select>
           </form>

 

Dai depois criei no meu menu o Consulta Mes, que vai pro arquivo consultames.php


<body>
<?php 
include("conectbd.php");
$mes = $_POST['mes'];
$sql=mysql_query("SELECT * FROM tbdespesa WHERE tipo='".$mes."'") or die (mysql_error());

while ($linha=mysql_fetch_array($sql)){ 
  echo "<tr><td>".$linha['meses']."</td>";
  }

?>

 

Deu pra entender o que eu quero fazer agora? So que ai da erro pq ele nao ta pegando o POST. Tentei usar o action mas nao deu certo!

 

Esta é a pagina de cadastrodespesas.php

 

<div>Cadastro de Despesas</div>
<form action = "recebecaddespesa.php" method ="post">
<table width="60%" border="1" align="center">
<tr><td>
     <p >Nome: </td><td><input type ="text" name = nome size="50" > <br></td></tr>
     <tr><td><p > Tipo: </td><td><select name="tipo" size="1">
     <option>Moradia</option>
     <option>Transporte</option>
     <option>Lazer/Informação</option>
     <option>Alimentação</option>
     <option>Educação</option>
     <option>Outros</option>



     </select>
      <tr><td><p > Mês </td><td><select name="mes" size="1">
     <option>Janeiro</option>
     <option>Fevereiro</option>
     <option>Março</option>
     <option>Abril</option>
     <option>Maio</option>
     <option>Junho</option>
      <option>Julho</option>
       <option>Agosto</option>
        <option>Setembro</option>
         <option>Outubro</option>
          <option>Novembro</option>
           <option>Dezembro</option>



     </select>



     <tr><td colspan="2"><center>
     <input type=submit value ="Cadastro" align="right" class="imp1">
     </p></td></tr>

</form>

Dai este é o recebecaddespesa.php:

 


<?php
include ("conectbd.php");
$nome = $_POST['nome'];
$tipo = $_POST['tipo'];
$mes = $_POST['mes'];

$sql1=mysql_query("SELECT * FROM tbdespesa WHERE nome='".$nome."' AND tipo='".$tipo."'") or die (mysql_error());
if(mysql_num_rows($sql1) >= 1){

echo "<script LANGUAGE='Javascript' TYPE='text/javascript'> alert ('Despesa Ja existente!')</SCRIPT>";
echo "<script language='Javascript'>window.location.href='caddespesa.php';</SCRIPT>";
}else{

$sql="INSERT INTO tbdespesa (`nome`,`tipo`,`meses`) VALUES ('$nome','$tipo','$mes')";
$result=mysql_query($sql) or die (mysql_error());

if($result==1){
echo "<font face='Calibri'>Cadastrado com sucesso!</font>";
echo '<meta HTTP-EQUIV="Refresh" CONTENT="2; URL=caddespesa.php">';

include("caddespesa.php");

}
}

?>

 

Entenderam? No banco eu criei apenas o campo MESES!

Pelo o que eu mostrei ai, num dava pra desenrrolar mais fácil não?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.