Fale galera, meu probleminha é um pouco complicado (pelo menos para mim que estou começando) é o seguinte estou criando um sistema para a minha empresa em php onde terei controle de contas a pagar a receber cadastro de funcionarios chamados de serviços e peças eles estão todos funcionando legal e resolvi da um incrementada na area de peças.
Minha ideia é a seguinte clico em "listar peças" ae me aparece a lista de todas as peças e um campo em cima aonde posso entrar com o mês é o centro de custo desta peça para me gerar um relatorio (isto tambem esta funcionando) quando este relatorio for criado ira aparecer cinco campos que são Nome, centro de custo, quantidade comprada no mês, valor unitario, valor total e no final do todo o registro o valor total de quanto já foi comprado de todos os produtos do referente mês, ae que eu to batendo. como fazer isso?eu sei que para somar valor posso usar a SUM(Tabela) AS xxx so que eu tenho um historico de cada peça e eu teria que somar o valor que esta no historico pois nem sempre a mesma peça e comprada no mesmo preço.
Meu banco de dados esta assim:
Tabela pecas:
`pecas` (
`id_peca` int(11) NOT NULL AUTO_INCREMENT,
`nome_peca` varchar(140) NOT NULL,
`preço` varchar(140) NOT NULL,
`preco_total` varchar(140) NOT NULL,
`qtd` varchar(140) NOT NULL,
`id_fornecedor` smallint(5) NOT NULL,
`custo_cad` smallint(5) NOT NULL,
`data_comprada` date NOT NULL,
PRIMARY KEY (`id_peca`)
)
e a historico_pecas
`historico_pecas` (
`id_historico` int(11) NOT NULL AUTO_INCREMENT,
`cod_produto` smallint(5) NOT NULL,
`data_compra` date NOT NULL,
`fornecedor_compra` smallint(5) NOT NULL,
`qtd_compra` varchar(140) NOT NULL,
`valor_compra` varchar(140) NOT NULL,
PRIMARY KEY (`id_historico`)
Bem eu já imaginei na hipótese de fazer um while para poder somar o total de cada produto já que não é o mesmo preço sempre, mais n faço ideia em como fazer =D e o total geral como irei fazer tambem? :S
$re = mysql_query("SELECT * FROM pecas INNER JOIN custo ON pecas.custo_cad = custo.id_custo where MONTH (data_comprada) = '$mes_selecionado' ORDER BY nome_peca ASC");
}else{
Abre_Conexao();
$re = mysql_query("SELECT * FROM pecas INNER JOIN custo ON pecas.custo_cad = custo.id_custo where MONTH (data_comprada) = '$mes_selecionado' and '$custo_cad' = id_custo ORDER BY nome_peca ASC");
<td width="15%"><topic><strong>Quantidade comprado no mês</strong></topic></td>
<td width="19%"><strong>
<topic>Valor total</topic></strong></td>
</tr>
</table>
<?php
while($result = mysql_fetch_array($re)) {
$id = $result["id_peca];
$nome_peca = $result["nome_peca"];
$preço = $result["preço"];
$preco_total = $result["preco_total"];
$custo = $result["custo"];
$resultado = mysql_query("SELECT COUNT(id_historico) as total_comp FROM historico_pecas INNER JOIN pecas ON historico_pecas.cod_produto = pecas.id_peca WHERE MONTH (data_compra) = '$mes_selecionado' AND '$id' = cod_produto");
$soma = mysql_query("select sum(preco_total) as total from pecas where MONTH (data_comprada) = '$mes_selecionado' ");
}else{
$soma = mysql_query("select sum(preco_total) as total from pecas INNER JOIN custo ON pecas.custo_cad = custo.id_custo where MONTH (data_comprada) = '$mes_selecionado' and '$custo_cad' = id_custo");
Pergunta
valdercunha
Fale galera, meu probleminha é um pouco complicado (pelo menos para mim que estou começando) é o seguinte estou criando um sistema para a minha empresa em php onde terei controle de contas a pagar a receber cadastro de funcionarios chamados de serviços e peças eles estão todos funcionando legal e resolvi da um incrementada na area de peças.
Minha ideia é a seguinte clico em "listar peças" ae me aparece a lista de todas as peças e um campo em cima aonde posso entrar com o mês é o centro de custo desta peça para me gerar um relatorio (isto tambem esta funcionando) quando este relatorio for criado ira aparecer cinco campos que são Nome, centro de custo, quantidade comprada no mês, valor unitario, valor total e no final do todo o registro o valor total de quanto já foi comprado de todos os produtos do referente mês, ae que eu to batendo. como fazer isso?eu sei que para somar valor posso usar a SUM(Tabela) AS xxx so que eu tenho um historico de cada peça e eu teria que somar o valor que esta no historico pois nem sempre a mesma peça e comprada no mesmo preço.
Meu banco de dados esta assim:
Tabela pecas:
`pecas` (
`id_peca` int(11) NOT NULL AUTO_INCREMENT,
`nome_peca` varchar(140) NOT NULL,
`preço` varchar(140) NOT NULL,
`preco_total` varchar(140) NOT NULL,
`qtd` varchar(140) NOT NULL,
`id_fornecedor` smallint(5) NOT NULL,
`custo_cad` smallint(5) NOT NULL,
`data_comprada` date NOT NULL,
PRIMARY KEY (`id_peca`)
)
e a historico_pecas
`historico_pecas` (
`id_historico` int(11) NOT NULL AUTO_INCREMENT,
`cod_produto` smallint(5) NOT NULL,
`data_compra` date NOT NULL,
`fornecedor_compra` smallint(5) NOT NULL,
`qtd_compra` varchar(140) NOT NULL,
`valor_compra` varchar(140) NOT NULL,
PRIMARY KEY (`id_historico`)
Bem eu já imaginei na hipótese de fazer um while para poder somar o total de cada produto já que não é o mesmo preço sempre, mais n faço ideia em como fazer =D e o total geral como irei fazer tambem? :S
Alguma luz por favor
Ah o codigo desta pagina hoje esta assim:
<?php
include ('../config/intro.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>SERVCOM</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="../style.css" rel="stylesheet" type="text/css" media="screen" />
<script src="../SpryAssets/SpryMenusBar.js" type="text/javascript"></script>
<link href="../SpryAssets/SpryMenusBarHorizontal.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
<h1><?php include ("topo.html"); ?> </h1>
</div>
<div id="menu">
<?php include ("../menufunc.html"); ?>
</div>
<div id="page-conteudo">
<div id="page-conteudo-top">
<div id="page-conteudo-bottom">
<div>
<div id="conteudo">
<h1 align="center"><br />
Relatório de Peças</h1>
<p align="center"> </p>
<?php
$_SERVER["REQUEST_METHOD"] == "POST";
$mes_selecionado = $_POST["mes_selecionado"];
$custo_cad = $_POST["custo_cad"];
if ($custo_cad == 0){
Abre_Conexao();
$re = mysql_query("SELECT * FROM pecas INNER JOIN custo ON pecas.custo_cad = custo.id_custo where MONTH (data_comprada) = '$mes_selecionado' ORDER BY nome_peca ASC");
}else{
Abre_Conexao();
$re = mysql_query("SELECT * FROM pecas INNER JOIN custo ON pecas.custo_cad = custo.id_custo where MONTH (data_comprada) = '$mes_selecionado' and '$custo_cad' = id_custo ORDER BY nome_peca ASC");
}?>
<table width=90%" border="1" align="center" cellpadding="0" cellspacing="0" class="tabela">
<tr>
<td width="39%"> <strong>
<topic>Nome</topic>
</strong></td>
<td width="13%"><topic><strong>Custo</strong></topic></td>
<td width="14%"><topic><strong>Valor Unitário</strong></topic></td>
<td width="15%"><topic><strong>Quantidade comprado no mês</strong></topic></td>
<td width="19%"><strong>
<topic>Valor total</topic></strong></td>
</tr>
</table>
<?php
while($result = mysql_fetch_array($re)) {
$id = $result["id_peca];
$nome_peca = $result["nome_peca"];
$preço = $result["preço"];
$preco_total = $result["preco_total"];
$custo = $result["custo"];
$resultado = mysql_query("SELECT COUNT(id_historico) as total_comp FROM historico_pecas INNER JOIN pecas ON historico_pecas.cod_produto = pecas.id_peca WHERE MONTH (data_compra) = '$mes_selecionado' AND '$id' = cod_produto");
$res = mysql_fetch_array($resultado);
$qtd_total = $res["total_comp"];
?>
<table width=90%" border="1" align="center" cellpadding="0" cellspacing="0" class="retornosimples">
<tr>
<td width="39%"> <?php echo "<a href=\"visualizar.php?id=$id\">$nome_peca</a>"; ?></td>
<td width="13%" align="center"> <?php echo "<a href=\"visualizar.php?id=$id\">$custo</a>"; ?></td>
<td width="14%"> R$ <?php echo "$preço"; ?></td>
<td width="15%"> <?php echo "$qtd_total"; ?></td>
<td width="19%"> R$ <?php $preco_total2 = "$qtd_total" * "$preço"; echo "$preco_total2"; ?></td>
</tr>
</table>
<?php }
if ($custo_cad == 0){
$soma = mysql_query("select sum(preco_total) as total from pecas where MONTH (data_comprada) = '$mes_selecionado' ");
}else{
$soma = mysql_query("select sum(preco_total) as total from pecas INNER JOIN custo ON pecas.custo_cad = custo.id_custo where MONTH (data_comprada) = '$mes_selecionado' and '$custo_cad' = id_custo");
}
$l = mysql_fetch_array($soma);
$total = $l["total];
?>
<table width="90%" align="center" border="1" cellpadding="0" cellspacing="0" class="retornosimples">
<tr>
<td width="81%"><strong> Valor total</strong></td>
<td width="19%"><strong> R$ <?php echo"$total"; ?></strong></td>
</tr>
</table>
<p>
</p>
<p> <a href="../index.php">Voltar</a>
</p>
</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</div>
</div>
<div style="clear: both;"> </div>
</div>
</div>
</div>
<div id="footer">
<p>Copyright © 2009 Servcom. </p>
</div>
</body>
</html>
Editado por valdercunhaLink para o comentário
Compartilhar em outros sites
2 respostass 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.