Ontem eu decidi reescrever um código que eu fiz para a entrada no estoque, baseado no código do produto do fornecedor. Era do tempo que ainda não conhecia o método POST.
Para usar o método POST eu criei um formulário genérico no menu.php com id=frmg e um input genérico com o id=inpg.
O grande problema do POST é que não dá para mandar um vetor com um monte de variáveis, assim achei melhor trabalhar com um objeto para representar um produto.
O conceito de objeto é bacana, o problema é que ele desaparece assim que você usa o método POST.
Para salvar o máximo de informação dentro do objeto, eu utilizei o recurso do SESSION.
<?php
include("menu.php");//o menu.php abre uma nova sessãofunction df($data){$fmt = date('d/m/Y',strtotime($data));return $fmt;}function floatvalue($val){$val = str_replace(",",".",$val); $val = preg_replace('/\.(?=.*\.)/','', $val);return floatval($val);}
$mysqli=new mysqli("localhost","root","","diario");//criar objeto cProd se ele não existirif(!class_exists('cProd')){class cProd {public $docto;public $codp;public $pessoa;public $dia;public $id;public $codprodf;public $codprod;public $prod;public $qt;public $custoatual;public $custototal;public $custoanterior;publicfunction getDocto(){returnthis->docto;}publicfunction getCodp(){returnthis->codp;}publicfunction getPessoa(){returnthis->pessoa;}publicfunction getDia(){returnthis->dia;}publicfunction getId(){returnthis->id;}publicfunction getCodprodf(){returnthis->codprodf;}publicfunction getCodprod(){returnthis->codprod;}publicfunction getProd(){returnthis->prod;}publicfunction getQt(){returnthis->qt;}publicfunction getCustoAtual(){returnthis->custoatual;}publicfunction getCustoTotal(){returnthis->custototal;}publicfunction getCustoAnterior(){returnthis->custoanterior;}}
$cProd=new cProd();
$query=$mysqli->query("select * from tbsupervariavel");
$row=$query->fetch_assoc();
$cProd->docto=$row['docto'];
$cProd->codp=$row['codp'];
$cProd->pessoa=$row['pessoa'];
$cProd->dia=$row['dia'];}//excluir item na tbentraprodif(isset($_POST['excluir'])){
$id=$_POST['excluir'];
$query=$mysqli->query("delete from tbentraprod where id=$id");
echo "<script>window.replace('astudy.php')</script>";}//incluir novo item na tbentraprod, depois de selecionado o produtoif(isset($_POST['incluir'])){
$codprod=$_POST['incluir'];
$cProd=unserialize($_SESSION['cProd']);
$cProd->codprod=$codprod;
$query=$mysqli->query("select * from tbprod where codprod = $codprod");
$row=$query->fetch_assoc();
$cProd->prod=$row['prod'];
$cProd->custoanterior=$row['custo'];
$cProd->custoatual=round($cProd->custototal/$cProd->qt,2);
$sql="insert into tbentraprod (codprodf,codprod,prod,dia,docto,qt,codp,custototal,custoanterior,custoatual)
values ('$cProd->codprodf',$cProd->codprod,'$cProd->prod','$cProd->dia',$cProd->docto,$cProd->qt,$cProd->codp,
$cProd->custototal, $cProd->custoanterior, $cProd->custoatual)";
$query=$mysqli->query($sql);
echo "<script>location.replace('astudy.php')</script>";}//incluir novo item na tbentraprodif(isset($_POST['codprodf'])){
$cProd->codprodf=$_POST['codprodf'];
$cProd->qt=floatvalue($_POST['qt']);
$cProd->custototal=floatvalue($_POST['custototal']);
$query=$mysqli->query("select * from tbprod where codforn like '%$cProd->codprodf%' order by prod");
$num_rows=mysqli_num_rows($query);if($num_rows==1){
$row=$query->fetch_assoc();
$cProd->codprod=$row['codprod'];
$cProd->prod=$row['prod'];
$cProd->custoatual=round($cProd->custototal/$cProd->qt,2);
$cProd->custoanterior=$row['custo'];
$sql="insert into tbentraprod (codprodf,codprod,prod,dia,docto,qt,codp,custototal,custoanterior,custoatual)
values ('$cProd->codprodf',$cProd->codprod,'$cProd->prod','$cProd->dia',$cProd->docto,$cProd->qt,$cProd->codp,
$cProd->custototal, $cProd->custoanterior, $cProd->custoatual)";
$query=$mysqli->query($sql);
echo "<script>window.replace('astudy.php')</script>";}if($num_rows==0){
echo "<font color=red>Não há nenhum produto com o codprodf $cProd->codprodf.";
echo "<input type=submit value=Continuar onclick=location.replace('astudy.php')>";exit;}if($num_rows>1){
$_SESSION['cProd']=serialize($cProd);
echo "Há muitos produtos com codprodf $cProd->codprodf, escolha um<br><br>";
echo "<table>";while($row=$query->fetch_assoc()){
$codprod=$row['codprod'];
$prod=$row['prod'];
$lcodprod="<a onclick=inpg.value=$codprod;inpg.name='incluir';frmg.submit()>$codprod</a>";
echo "<tr><td>$lcodprod<td>$prod";}
echo "</table>";exit;}}//exibe a tbentraprod
$query=$mysqli->query("select * from tbentraprod");
echo "<br>Documento $cProd->docto de <a onclick=location.replace('diario.php')>".df($cProd->dia)."</a><br>
Fornecedor <a onclick=location.replace('pessoa.php')>$cProd->pessoa</a>
<table>
<tr><th>CodProdF<th>Produto<th>Qt<th>Total<th>Unitario<th>Anterior";while($linha = $query->fetch_assoc()){
$id=$linha['id'];
$codprodf = $linha['codprodf'];
$java='inpg.value='.$id.';inpg.name="excluir";frmg.submit()';
$codprodf="<a onclick='$java'>$codprodf</a>";
$prod=$linha['prod'];
$qt=dec($linha['qt']);
$custototal = dec($linha['custototal']);
$custoatual = $linha['custoatual'];
$custoanterior = $linha['custoanterior'];if($custoatual>$custoanterior){$custoatual="<font color=red>".dec($linha['custoatual']);}if($custoanterior>$custoatual){$custoanterior="<font color=red>".dec($linha['custoanterior']);}if($custoatual == $custoanterior){$custoatual = dec($custoatual); $custoanterior = dec($custoanterior);}
$custoatual=dec($custoatual);
$lcodprodf="<a onclick=inpg.value=$id;inpg.name='excluir';frmg.submit()>$codprodf</a>";
echo "<tr><td>$lcodprodf<td align='left'>$prod<td align=right>$qt<td align=right>$custototal
<td align=right>$custoatual<td align=right>$custoanterior";}//pega um novo item
$query = $mysqli->query("select sum(custototal) as soma from tbentraprod");
$row = $query->fetch_assoc();
$soma = dec(floatval($row['soma']));
echo "<form id=frmincluir method=post>
<tr><td><input id=codprodf name=codprodf size=5 autocomplete=off onchange=qt.focus() placeholder=codprodf>
<td></td><td><input name=qt id=qt size=2 autocomplete=off onchange=custototal.focus() placeholder=qt>
<td><input name=custototal id=custototal size=5 autocomplete=off onchange=frmincluir.submit() placeholder=custo></form>
<script>codprodf.focus()</script>
<tr><td><td><td><b>Total</b><td align=right><b>".$soma."</b><td>
<form method=post><input name='encerrar' type='submit' value='encerrar'></form></table>";
Pergunta
Frank K Hosaka
Ontem eu decidi reescrever um código que eu fiz para a entrada no estoque, baseado no código do produto do fornecedor. Era do tempo que ainda não conhecia o método POST.
Para usar o método POST eu criei um formulário genérico no menu.php com id=frmg e um input genérico com o id=inpg.
O grande problema do POST é que não dá para mandar um vetor com um monte de variáveis, assim achei melhor trabalhar com um objeto para representar um produto.
O conceito de objeto é bacana, o problema é que ele desaparece assim que você usa o método POST.
Para salvar o máximo de informação dentro do objeto, eu utilizei o recurso do SESSION.
Link para o comentário
Compartilhar em outros sites
0 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.