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

Bloquear estoque insufisiente


Bruno Marques Conte

Pergunta

boa noite.

aqui estou eu mais uma vez para pedir ajuda.

no meu for puxo mais de um campo, na verdade 2 por cadastro para dar baixa em 2 produtos do estoque.

meu form:

<form action='recebe.php' method='post'>
Quantidade: <input type='text' name='qtd'>
<?php
            while ($vetor3=mysql_fetch_array($sql_prod)) {?>
            <input type="hidden" name="nome[]" value="<?php echo $vetor3[modelo]; ?>" />
            <input type="hidden" name="cor[]" value="<?php echo $vetor3[cor]; ?>" />
            <input type="hidden" name="tamanho[]" value="<?php echo $vetor3[tamanho]; ?>" />
<?php } ?>
Aqui ele puxa os 2 registros que pequei ajuda agora a pouco aqui no forum. quando eu digito a quantidade a ser baixada, se o estoque de 1 dos produtos for menor que a quantidade ele não pode dar baixa em nenhum dos 2, e desse jeito se um tiver estoque ele atualiza ele. codigo recebe.php:
$qtd = $_POST['qtd'];
        
            $nome = $_POST['nome'];
            $cor = $_POST['cor'];
            $tamanho = $_POST['tamanho'];
            
            $posicoes = count($nome);//pega a quantidade de itens
            for( $i = 0; $i < $posicoes; $i++){
        
            $anuncie_sql = mysql_query("select * from produto_final WHERE modelo = '$nome[$i]' AND cor='$cor[$i]' AND tamanho='$tamanho[$i]'") or die(mysql_error());
            $vetor = mysql_fetch_array($anuncie_sql);
        
            if($vetor[qtd] < $qtd) {
            echo"Estoque insuficiente<br>";
            }else{
...

se ele passar para o else ele já da baixa de estoque, como eu faço para ele comprar os 2 antes de atualizar, onde se 1 tiver com estoque invalido ele cancela toda operação???

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

A lógica seria algo do tipo.

$ok = true;

$qtd = $_POST['qtd'];
$nome = $_POST['nome'];
$cor = $_POST['cor'];
$tamanho = $_POST['tamanho'];
                        
$posicoes = count($nome);//pega a quantidade de itens
for( $i = 0; $i < $posicoes; $i++){
                
$anuncie_sql = mysql_query("select * from produto_final WHERE modelo = '$nome[$i]' AND cor='$cor[$i]' AND tamanho='$tamanho[$i]'") or die(mysql_error());
$vetor = mysql_fetch_array($anuncie_sql);
                
if($vetor[qtd] < $qtd) {
     echo"Estoque insuficiente<br>";
$ok = false;
}
}

if($ok == true){
//Faz a mesma coisa que antes, só que não precis mais validar, só dar baixa.
}

Na realidade existem várias formas de resolver este seu problema, essa é só uma delas.

Link para o comentário
Compartilhar em outros sites

  • 0

cara te o momento valeu.

o problema e que agora ele não atualiza o estoque.

<?php
    include"../includes/conecta.php";
    $id = $_GET['id'];
    $ok = true;
    $qtd = $_POST['qtd'];
        
            $nome = $_POST['nome'];
            $cor = $_POST['cor'];
            $tamanho = $_POST['tamanho'];
            
            $posicoes = count($nome);//pega a quantidade de itens
            for( $i = 0; $i < $posicoes; $i++){
        
            $anuncie_sql = mysql_query("select * from produto_final WHERE modelo = '$nome[$i]' AND cor='$cor[$i]' AND tamanho='$tamanho[$i]'") or die(mysql_error());
            $vetor = mysql_fetch_array($anuncie_sql);
                
            if($vetor[qtd] < $qtd) {
             echo"Estoque insuficiente<br>";
            $ok = false;
            }
            }
            if($ok == true){
            //monta a query
            $sql_up = "update produto_final SET qtd=(qtd - '{$qtd}') WHERE modelo='$nome' AND cor='$cor' AND tamanho='$tamanho'";
                                           
            $sql = mysql_query($sql_up) or die(mysql_error());//executa a query
            
            
            $anuncie_sql = mysql_query("select * from produtofim WHERE id = '$id'") or die(mysql_error());
            $vetor = mysql_fetch_array($anuncie_sql);
                        
            $sql_prodfim = "update produtofim SET qtd=(qtd + '{$qtd}') WHERE id='$id'";
            
            echo"Itens Atualizados com sucesso<br>";
            echo "estoque atualizado com sucesso";
            
            $sqlpf = mysql_query($sql_prodfim) or die(mysql_error());//executa a query
        
        }

    ?>

se eu colocar o for no final do codigo ele continua atualizando o produto que tem estoque.

att.

Link para o comentário
Compartilhar em outros sites

  • 0

eu fiz assim:

<?php

include"../includes/conecta.php";

$id = $_GET['id'];

$ok = true;

$qtd = $_POST['qtd'];

$nome = $_POST['nome'];

$cor = $_POST['cor'];

$tamanho = $_POST['tamanho'];

$posicoes = count($nome);//pega a quantidade de itens

for( $i = 0; $i < $posicoes; $i++){

$anuncie_sql = mysql_query("select * from produto_final WHERE modelo = '$nome[$i]' AND cor='$cor[$i]' AND tamanho='$tamanho[$i]'") or die(mysql_error());

$vetor = mysql_fetch_array($anuncie_sql);

if($vetor[qtd] < $qtd) {

echo"Estoque insuficiente<br>";

$ok = false;

}

if($ok == true){

//monta a query

$sql_up = "update produto_final SET qtd=(qtd - '{$qtd}') WHERE modelo='$nome' AND cor='$cor' AND tamanho='$tamanho'";

$sql = mysql_query($sql_up) or die(mysql_error());//executa a query

$anuncie_sql = mysql_query("select * from produtofim WHERE id = '$id'") or die(mysql_error());

$vetor = mysql_fetch_array($anuncie_sql);

$sql_prodfim = "update produtofim SET qtd=(qtd + '{$qtd}') WHERE id='$id'";

echo"Itens Atualizados com sucesso<br>";

echo "estoque atualizado com sucesso";

$sqlpf = mysql_query($sql_prodfim) or die(mysql_error());//executa a query

}

}

?>

e se um produto tiver estoque, ele atualiza.

Link para o comentário
Compartilhar em outros sites

  • 0

cara, tentei fazer assim.

mesmo tendo estoque da sempre no estoque insuficiente, sera porque em??

<?php

include"../includes/conecta.php";

$id = $_GET['id'];

$ok = true;

$finalizado = $_POST['finalizado'];

$produto = $_POST['produto'];

$qtd = $_POST['qtd'];

$posicoes = count($produto);//pega a quantidade de itens

for( $i = 0; $i < $posicoes; $i++){

$anuncie_sql1 = mysql_query("select * from produto WHERE nome = '$produto[$i]'") or die(mysql_error());

$vetor1 = mysql_fetch_array($anuncie_sql1);

if($vetor1[qtde] < $qtd) {

echo"Estoque insuficiente<br>";

$ok = false;

}

}

if($ok == true){

//monta a query

for( $i = 0; $i < $posicoes; $i++){

$sql_up = "update produto SET qtde=(qtde - '{$qtd}') WHERE nome='$produto[$i]''";

$sql = mysql_query($sql_up) or die(mysql_error());//executa a query

echo"Itens Atualizados com sucesso<br>";

}

$anuncie_sql = mysql_query("select * from os WHERE id = '$id'") or die(mysql_error());

$vetor = mysql_fetch_array($anuncie_sql);

$sql_prodfim = "update os SET finalizado='$finalizado' WHERE id='$id'";

echo "estoque atualizado com sucesso";

$sqlpf = mysql_query($sql_prodfim) or die(mysql_error());//executa a query

}

?>

Link para o comentário
Compartilhar em outros sites

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,2k
    • Posts
      652k
×
×
  • Criar Novo...