I have a form that gets some variables and presents a table with the values selected, through the select it lists the information, all right.
My problem is that with this information I would like to perform an UPDATE depending on the condition, it even shows an echo that I left to observe, but does not perform the update in the database. PS: I did not develop this system, the old programmer was dismissed and I assumed, maybe it is a rough error, but I lack experience.
Select Code that lists:
<?php
include "menu.php";
include "../conexao.php";
?>
<!-- start: Content -->
<div id="content" class="span10">
<ul class="breadcrumb">
<li>
<i class="icon-home"></i>
<a href="index.html">Home</a>
<i class="icon-angle-right"></i>
</li>
<li><a href="#">Produtos/Vencimento</a></li>
</ul>
<div class="row-fluid sortable">
<div class="box span12">
<div class="box-header" data-original-title>
<h2><i class="halflings-icon user"></i><span class="break"></span>
<?php
// $loja = $_POST['loja'];
$comprador = $_POST['comprador'];
$comprador2 = $_POST['comprador'];
echo "$comprador";
//echo " <span class='label label-success'> LOJA: $loja </span>";
?>
</h2>
<div class="box-icon">
<a href="#" class="btn-minimize"><i class="halflings-icon chevron-up"></i></a>
<a href="#" class="btn-close"><i class="halflings-icon remove"></i></a>
</div>
</div>
<div class="box-content">
<table class="table table-striped table-bordered bootstrap-datatable datatable">
<thead>
<tr>
<th>EAN</th>
<th>Descrição</th>
<th>Loja</th>
<th>Estoque Atual</th>
<th>Quantidade</th>
<th>Valor</th>
<th>Vencimento</th>
<th>Registro</th>
<!-- <th>Categoria</th>-->
<th>Media de Venda</th>
<th>Dias Restantes</th>
<!-- <th>Loja</th>-->
<th>Ação</th>
</tr>
</thead>
<tbody>
<?php
// $loja = $_POST['loja'];
$comprador = $_POST['comprador'];
// ######################################################################
/* function formatarData($data){
$rData = implode("-", array_reverse(explode("/", trim($data))));
return $rData;
}
$data1 = formatarData($_POST['data1']);
function formatarData_a($data_a){
$rData_a = implode("-", array_reverse(explode("/", trim($data_a))));
return $rData_a;
}
$data2 = formatarData_a($_POST['data2']);*/
$data1 = $_POST['data1'];
$data2 = $_POST['data2'];
$stid = "SELECT b.id,
b.codigo,
a.codacesso,
a.seqproduto,
a.desccompleta,
b.quantidade,
b.data_vencimento,
b.data_atual,
b.observacao,
b.usuario,
b.estado,
b.loja as LOJA,
a.medvdiageral,
a.comprador,
a.preco,
c.estqloja+c.estqdeposito estoque
FROM master_datas_b a, master_coletores b , mrl_produtoempresa c
WHERE b.tipo_acao IS NULL
and a.comprador = : comprador
and a.nroempresa in (1,2,3,4,5,6,9,12,13,14,15,16,18,19,20)
and b.loja = a.nroempresa
and estado = 'Ativo'
and a.seqproduto=c.seqproduto
and a.nroempresa=c.nroempresa
and b.codigo = a.codacesso
AND b.data_vencimento BETWEEN to_date(:data1, 'YYYY/MM/DD') and
to_date(:data2, 'YYYY/MM/DD')
and b.quantidade > 0 and (c.estqloja+c.estqdeposito) > 0
/* and a.valor_inteiro > 10 or b.quantidade > 24 */
ORDER BY b.data_vencimento, b.codigo ASC";
$stmt = oci_parse($conexao, $stid);
oci_bind_by_name($stmt, ':data1', $data1);
oci_bind_by_name($stmt, ':data2', $data2);
//oci_bind_by_name($stmt, ':loja', $loja);
oci_bind_by_name($stmt, ':comprador', $comprador);
oci_execute($stmt);
$i = 0;
$aux = array();
while (($array = oci_fetch_array($stmt, OCI_BOTH)) != false) {
$id = $array["ID"];
$loja = $array["LOJA"];
$aux[$i] = $loja;
$i++;
?>
<tr>
<td> <?php echo $array['SEQPRODUTO']; ?></td>
<td><?php echo $array['DESCCOMPLETA']; ?></td>
<td><?php echo $loja; ?></td>
<td><?php echo $array['ESTOQUE']; ?> </td>
<td><?php echo $array['QUANTIDADE']; ?> </td>
<td>R$<?php echo $array['PRECO']; ?> </td>
<td> <?php echo $array['DATA_VENCIMENTO']; ?></td>
<td> <?php echo $array['DATA_ATUAL']; ?></td>
<!-- <td><?php // echo $array['COMPRADOR']; ?></td>-->
<td><span class="label label-important"><?php $media = $array['MEDVDIAGERAL']; echo round($media, 2) ?></span></td>
<td>
<?php
// ######################################################################
include ("../conexao.php");
//$usuario = $_SESSION['usuario'];
if(strtotime($array['DATA_VENCIMENTO']) == 0) echo '<b></b>';
else {
date_default_timezone_set('America/Sao_Paulo');
$dat1 = date('Y-m-d');
$dat2 = date('d-m-Y', strtotime($array['DATA_VENCIMENTO']));
$date1=date_create("$dat1");
$date2=date_create("$dat2");
$diff=date_diff($date1,$date2);
//echo $diff->format("%R%a dias");
if ($diff->format("%R%a dias") < 0) {
echo '<font style="color:#FF0206"> <b>';
echo $diff->format("%R%a");
echo '</b></font>';
} else {
echo '<font style="color:#0E008A"> <b>';
echo $diff->format("%R%a");
echo '</b></font>';
}
}
?>
</td>
<!-- <td><span class="label label-success"><?php // echo $array['LOJA']; ?></span></td>-->
<td class="center">
<!--<a class="btn btn-success" href="#">
<i class="halflings-icon white zoom-in"></i>
</a>-->
<?php echo"<a class='btn btn-info' href='acao_comercial.php?ID=$id&comprador=$comprador&data1=$data1&data2=$data2'>
<i class='halflings-icon white edit'></i>
</a>"; ?>
<!-- <a class="btn btn-danger" href="#">
<i class="halflings-icon white trash"></i>
</a>-->
</td>
</tr>
<?php
Update (Same file):
<?php
for($i=0 ; $i < count($aux);$i++)
{
$aux[$i];
if($aux[$i] == 1) {
$stac1 = "UPDATE MASTER_COLETORES c
SET
c.tipo_acao = 'Vende (AUTOMATICA)',
c.acao_comercial = 'Acao Automatica',
c.data_acao_comercial = (select TO_DATE(TO_CHAR(sysdate, 'MM/DD/YYYY'), 'MM/DD/YYYY') from dual),
c.usuario_comercial = $comprador2
WHERE EXISTS
(select b.codacesso,
b.desccompleta,
b.nroempresa,
a.quantidade,
b.medvdiageral,
a.data_vencimento,
a.data_atual,
a.estado,
a.acao_comercial,
a.tipo_acao,
a.data_acao_comercial,
a.usuario_comercial,
b.Valor_inteiro
from master_coletores a, master_datas_b b
where a.codigo = b.codacesso
and a.loja = b.nroempresa
and b.comprador = $comprador2
and a.loja = 1
and a.estado = 'Ativo'
and a.data_vencimento BETWEEN TO_DATE(sysdate,'YYYY-MM-DD') AND TO_DATE(sysdate,'YYYY-MM-DD') + 40
and a.tipo_acao is null
and b.medvdiageral > 0
and b.valor_inteiro < 10
and a.quantidade < 24
and a.id=c.id
union all
select b.codacesso,
b.desccompleta,
b.nroempresa,
a.quantidade,
b.medvdiageral,
a.data_vencimento,
a.data_atual,
a.estado,
a.acao_comercial,
a.tipo_acao,
a.data_acao_comercial,
a.usuario_comercial,
b.Valor_inteiro
from master_coletores a, master_datas_b b
where a.codigo = b.codacesso
and a.loja = b.nroempresa
and b.comprador = $comprador2
and a.loja = 1
and a.data_vencimento BETWEEN TO_DATE(sysdate,'YYYY-MM-DD') AND TO_DATE(sysdate,'YYYY-MM-DD') + 40
and a.estado = 'Ativo'
and a.tipo_acao is null
and b.medvdiageral > 0
and a.quantidade / b.medvdiageral < (a.data_vencimento - a.data_atual) - 3
and a.id=c.id)";
$stmt1 = oci_parse($conexao, $stac1);
oci_execute($stmt1);
$texto1 = 'Ação automática realizada com sucesso na loja 1';
}
if($aux[$i] == 2) {
$stac2 = "UPDATE MASTER_COLETORES c
SET
c.tipo_acao = 'Vende (AUTOMATICA)',
c.acao_comercial = 'Acao Automatica',
c.data_acao_comercial = (select TO_DATE(TO_CHAR(sysdate, 'MM/DD/YYYY'), 'MM/DD/YYYY') from dual),
c.usuario_comercial = $comprador2
WHERE EXISTS
(select b.codacesso,
b.desccompleta,
b.nroempresa,
a.quantidade,
b.medvdiageral,
a.data_vencimento,
a.data_atual,
a.estado,
a.acao_comercial,
a.tipo_acao,
a.data_acao_comercial,
a.usuario_comercial,
b.Valor_inteiro
from master_coletores a, master_datas_b b
where a.codigo = b.codacesso
and a.loja = b.nroempresa
and b.comprador = $comprador2
and a.loja = 2
and a.estado = 'Ativo'
and a.data_vencimento BETWEEN TO_DATE(sysdate,'YYYY-MM-DD') AND TO_DATE(sysdate,'YYYY-MM-DD') + 40
and a.tipo_acao is null
and b.medvdiageral > 0
and b.valor_inteiro < 10
and a.quantidade < 24
and a.id=c.id
union all
select b.codacesso,
b.desccompleta,
b.nroempresa,
a.quantidade,
b.medvdiageral,
a.data_vencimento,
a.data_atual,
a.estado,
a.acao_comercial,
a.tipo_acao,
a.data_acao_comercial,
a.usuario_comercial,
b.Valor_inteiro
from master_coletores a, master_datas_b b
where a.codigo = b.codacesso
and a.loja = b.nroempresa
and b.comprador = $comprador2
and a.loja = 2
and a.data_vencimento BETWEEN TO_DATE(sysdate,'YYYY-MM-DD') AND TO_DATE(sysdate,'YYYY-MM-DD') + 40
and a.estado = 'Ativo'
and a.tipo_acao is null
and b.medvdiageral > 0
and a.quantidade / b.medvdiageral < (a.data_vencimento - a.data_atual) - 3
and a.id=c.id)";
$stmt2 = oci_parse($conexao, $stac2);
oci_execute($stmt2);
$texto2 = 'Ação automática realizada com sucesso na loja 2';
}
if($aux[$i] == 4) {
$stac3 = "UPDATE MASTER_COLETORES c
SET
c.tipo_acao = 'Vende (AUTOMATICA)',
c.acao_comercial = 'Acao Automatica',
c.data_acao_comercial = (select TO_DATE(TO_CHAR(sysdate, 'MM/DD/YYYY'), 'MM/DD/YYYY') from dual),
c.usuario_comercial = $comprador2
WHERE EXISTS
(select b.codacesso,
b.desccompleta,
b.nroempresa,
a.quantidade,
b.medvdiageral,
a.data_vencimento,
a.data_atual,
a.estado,
a.acao_comercial,
a.tipo_acao,
a.data_acao_comercial,
a.usuario_comercial,
b.Valor_inteiro
from master_coletores a, master_datas_b b
where a.codigo = b.codacesso
and a.loja = b.nroempresa
and b.comprador = $comprador2
and a.loja = 4
and a.estado = 'Ativo'
and a.data_vencimento BETWEEN TO_DATE(sysdate,'YYYY-MM-DD') AND TO_DATE(sysdate,'YYYY-MM-DD') + 40
and a.tipo_acao is null
and b.medvdiageral > 0
and b.valor_inteiro < 10
and a.quantidade < 24
and a.id=c.id
union all
select b.codacesso,
b.desccompleta,
b.nroempresa,
a.quantidade,
b.medvdiageral,
a.data_vencimento,
a.data_atual,
a.estado,
a.acao_comercial,
a.tipo_acao,
a.data_acao_comercial,
a.usuario_comercial,
b.Valor_inteiro
from master_coletores a, master_datas_b b
where a.codigo = b.codacesso
and a.loja = b.nroempresa
and b.comprador = $comprador2
and a.loja = 4
and a.data_vencimento BETWEEN TO_DATE(sysdate,'YYYY-MM-DD') AND TO_DATE(sysdate,'YYYY-MM-DD') + 40
and a.estado = 'Ativo'
and a.tipo_acao is null
and b.medvdiageral > 0
and a.quantidade / b.medvdiageral < (a.data_vencimento - a.data_atual) - 3
and a.id=c.id)";
$stmt3 = oci_parse($conexao, $stac3);
oci_execute($stmt3);
$texto4 = 'Ação automática realizada com sucesso na loja 4';
}
so it confers store by store and performs the update by the stores that select list .. The echos appear with the message saying that the update was done in the store, but this does not happen.
I could not figure out the problem ...