Ir para conteúdo

POWERED BY:

Arquivado

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

Bruno Conte

[Resolvido] Movimentação de estoque

Recommended Posts

Fala ai galerinha!!!!

Estou com uma duvida aqui e queria uma ajuda. O Sistema que fiz para a empresa de cadastro de veiculos que passam pela revisão, agora vai ser abastecidos no tanque de combustivel que a empresa alugou.

E precisamos fazer um controle pelo sistema. Então o que pensei:

 

Ja tenho a tabela veiculos com todos os dados da revisão e no final iremos colocar a quantidade de litros de gasolina colocados. Fiz a tabela estoque de combustivel, onde tem os seguintes campos:

 

id

combustivel (aqui sabemos se e diesel ou gasolina)

quantidade (quantidade de diesel ou gasolina)

 

na tabela veiculos coloquei o campo litros, que o usuario cadastra quantos litros foram colocados no veículo.

Minha duvida e como fazer essa movimentação no estoque.

se eu abasteci 20 litros de gasolina e no estoque tinha 100, quando for visualizar o estoque de gasolina tera apenas 80. Alquem sabe como posso fazer meu codigo nessa parte de controle de estoque????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer atualizar a quantidade da tabela ou o que?

Se for a quantidade da tabela é só fazer um UPDATE:

$gasto = $_POST['gasto'];
mysql_query("UPDATE tabela SET quantidade=quantidade-$gasto WHERE id='$id'");

Mas se você quiser algo mais elaborado, usando histórico e exibição por dia, usando a quantidade da tabela como sendo um "total", você terá que relacionar mais tabelas, para na hora de exibição pegar esse total e subtrair com o gasto em determinado dia.

Ou você pode adicionar um campo "gasto" e atualizar ele sem alterar a "quantidade" em si e subtrair ambos na hora de capturar exibir isso ao usuário.

Não entendi muito bem sua dúvida, se não for isso só falar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer atualizar a quantidade da tabela ou o que?

Se for a quantidade da tabela é só fazer um UPDATE:

$gasto = $_POST['gasto'];
mysql_query("UPDATE tabela SET qtd=qtd-$gasto WHERE id='$id'");
na parte da query e tranquilo assim, o que gostaria de saber, e pelo fato de na tabela combustivel quando eu for cadastrar existem 2 tipos de combustivel, entao ele teria que diminuir no estoque para este combustivel, entende????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tinha lido que havia outra tabela "combustivel", enfim, não tem como o sistema adivinhar, você tem que passar essa informação, ou usando condição ou estruturando sua tabela de modo que os tipos possam ser conferidos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tinha lido que havia outra tabela "combustivel", enfim, não tem como o sistema adivinhar, você tem que passar essa informação, ou usando condição ou estruturando sua tabela de modo que os tipos possam ser conferidos.

 

minha duvida e essa, como fazer para ele conferir. E a primeira vez que faço um sistema que precisa verificar estoque

 

você tem que colocar, na tabela veículos, o tipo de combustível também. Assim você sabe de qual tabela de estoque deverá subtrair o combustível abastecido num veículo.

 

entao na tabela veiculos alem dos dados do veiculo colocaria

 

tipocomb que seria o tipo gasolina ou diesel

litros que seria a quantidade abastecida

 

minha duvida e quando eu quardar os valores na tabela veiculos como vai ter a subtração do estoque na tabela estoque

Compartilhar este post


Link para o post
Compartilhar em outros sites


$q1 = mysql_query("select...");

while($dado = mysql_fetch_array($q1))

{

$tipocomb = ($dado["tipocomb"]);

$litros = ($dado["litros"]);

$q2 = mysql_query("update...");

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipos_combustivel

id  | nome
1   | gasolina
2   | diesel

estoque_combustivel

id | id_combustivel | estoque
1  |     1          |  100
2  |     2          |  90

veiculos

id | ... | tipo_combustivel | tanque
 1 | ... |      1           | 20

 

Aqui, abastecemos 20 litros de gasolina no veículo 1. Basta subtrairmos 20 da tabela estoque, onde o id_combustivel é igual a 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipos_combustivel

id  | nome
1   | gasolina
2   | diesel

estoque_combustivel

id | id_combustivel | estoque
1  |     1          |  100
2  |     2          |  90

veiculos

id | ... | tipo_combustivel | tanque
 1 | ... |      1           | 20

 

Aqui, abastecemos 20 litros de gasolina no veículo 1. Basta subtrairmos 20 da tabela estoque, onde o id_combustivel é igual a 1

 

entao ficaria interessante eu usar o campo enum no mysql ne???

 

id_combustivel enum('1','2') default null, onde o 1 e gasolina e 2 diesel ou nao??? faria o cadastro msm e ele gerasse o id de cada um

Compartilhar este post


Link para o post
Compartilhar em outros sites

não gosto de enum por causa desse problema de modelagem. Se adicionar um combustível, terá de mudar a estrutura da tabela para enum(1, 2, 3).

No caso de combustível isso pode ser raro de acontecer, mas para outros tipos de valores pode ser ruim.

Prefiro usar int mesmo.

Aliás, tendo o mesmo tipo de campo, pode-se fazer integridade referencial, com chaves estrangeiras.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não gosto de enum por causa desse problema de modelagem. Se adicionar um combustível, terá de mudar a estrutura da tabela para enum(1, 2, 3).

No caso de combustível isso pode ser raro de acontecer, mas para outros tipos de valores pode ser ruim.

Prefiro usar int mesmo.

Aliás, tendo o mesmo tipo de campo, pode-se fazer integridade referencial, com chaves estrangeiras.

 

ok, entao vo montar aqui agora com

id_combustivel int(11) not null auto_increment,

nome varchar(255) default null,

primary key(id_combustivel)

);

 

e ja adicionei na tabela veiculos id_combustivel e litros

 

a parte de cadastro esta ok.

como faço para subtrair o que coloquei no tanque???

 

ficou assim meu bd:

 

veiculos

....

id_combustivel

litros

 

estoque_combustivel

id

id_combustivel

qtd

 

tipo_combustivel

id_combustivel

nome

 

agora preciso subtrair a qtd na tabela estoque_combustivel com o litros na tabela veículos, como farei isso???

 

opa, ja quebrei a cabeça aqui procurando. como fazer para o estoque diminuir puxando os dados de outro banco de dados.

alquem sabe onde arrumo falando como fazer isso ou me da uma ajudinha.

 

como pegar o valor total em litros na tabela estoque e diminuir puxando pelo valor de litros da tabela veiculos

 

fiz o codigo assim so que nao funciona:

 

<?php 
	include"../includes/conecta.php";
	$busca1 = mysql_query("select * from veiculos");
	$quantreg = mysql_num_rows($sql_conta); // Quantidade de registros
	
	while ($res1 = mysql_fetch_array($quantreg)) {
	
	$busca2 = mysql_query("select * from estoque_combustivel where id_combustivel=$res1[id_combustivel]");
	$res2 = mysql_fetch_array($busca2);
	
	$resultado = $res2[qtd]-$res1[litros]; //Calcula Resultado
	
	if(!empty($resultado)) {
	$update = mysql_query("update estoque_combustivel SET qtd = '$resultado'"); or die (mysql_error());
	echo "<p align=\"center\">Estoque alterado com sucesso.</p>";
	}
	}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando você abastecer o carro

update veiculos set litros = {$litros} where id_veiculo = {$id_veiculo}
você atualiza a tabela estoque_combustivel

update estoque_combustivel set qtd = (qtd - {$litros}) 
where id_combustivel = (select id_combustivel from veiculos where id_veiculo = {$id_veiculo})  

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando você abastecer o carro

update veiculos set litros = {$litros} where id_veiculo = {$id_veiculo}
você atualiza a tabela estoque_combustivel

update estoque_combustivel set qtd = (qtd - {$litros}) 
where id_combustivel = (select id_combustivel from veiculos where id_veiculo = {$id_veiculo})  

quando atualizo a tabela veiculos esta assim:

 

<?php 
$id = $_GET['id'];
$id_combustivel = $_POST['id_combustivel'];
$litros = $_POST['litros'];
$botaoalterar = mysql_query("Select * From veiculos WHERE id = '$id'") or die(mysql_error());
$vetor = mysql_fetch_array($botaoalterar);
if(!empty($id_combustivel)) //testar campos obrigatorios
	  {
$sql = mysql_query("update veiculos SET id_combustivel='$id_combustivel', litros='$litros' WHERE id='$id'") or die (mysql_error());
echo "<p align=\"center\">Gasolina do Veículo cadastrada com sucesso.</p>";
}
?

agora meu problema esta atualizar o estoque

 

uma outra coisa que esqueci de falar e a questao do tipo de combustivel.

 

temos gasolina e diesel.

 

entao cada um tem um estoque, e quando cadastrar gasolina, diesel temos que abaixar o estoque de cada um separado

Compartilhar este post


Link para o post
Compartilhar em outros sites

do jeito q você fez, fica mais fácil ainda,testa ae

<?php
$id = $_GET['id'];
$id_combustivel = $_POST['id_combustivel'];
$litros = $_POST['litros'];
if(!empty($id_combustivel)){ //testar campos obrigatorios 
   $sql = mysql_query("update veiculos SET id_combustivel='$id_combustivel', litros='$litros' WHERE id='$id'") or die (mysql_error());
   echo "<p align=\"center\">Gasolina do Veículo cadastrada com sucesso.</p>";
   $sql_estoque = mysql_query("update estoque_combustivel set qtd = (qtd - {$litros}) where id_combustivel = {$id_combustivel}") or die (mysql_error());
?>

edit: do jeito q eu fiz vai atualizar o estoque de acordo com o combustivel, tomando como base a sua variável $id_combustivel

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.