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

Alterar preço no carrinho


Carlos Rocha

Pergunta

Alterar preço no carrinho.

Ola pessoal.

Gostaria que voces entrassem nesse link:

http://www.carcleo.com/sistema/

admin

usuario: caca

senha:aa

No menu listas de produtos -> cadastrar, vai aparecer uma lista de fornecedores e opçao para lista de seus produtos e a opção de adiciona-los ao carrinho.

Tudo funciona bem. Porem, há a nescessidade de que, no carrinho, eu possa alterar o preço do produto.

Eu criei um campo texto, porem, quando altero e volto para pegar outro produto, ou atualizo, o preço volta ao que era antes.

alguém tem alguma ideia de como fazer isso?

Segue o carrinho.php

<?php
//Verificando se a variavel de sessão foi criada
if (!session_is_registered("MeuCarrinho")){
    session_register("MeuCarrinho");
    $MeuCarrinho = new TCarrinho();
    $_SESSION[MeuCarrinho] = serialize($MeuCarrinho);
    $MeuCarrinho = unserialize($_SESSION[MeuCarrinho]);    
}
    $_SESSION[MeuCarrinho] = serialize($MeuCarrinho);
    $MeuCarrinho = unserialize($_SESSION[MeuCarrinho]);    

if (!empty($op)){
    switch ($op) {
    case "adicionar":
        if (!empty($id_prod)){
            $Query = "select id from produtos where id = $id_prod";
            $R_Query = $MySQL->query($Query);
            if (mysql_num_rows($R_Query)>0){
                $MeuCarrinho->AdicionarItem($id_prod,1,0);
            }
        }
        break;
    case "excluir":
        $id_fornece=$_GET['id_fornece'];
        $MeuCarrinho->RemoverItem($id_prod);
        break;
    case "atualizar":
        $id_fornece=$_GET['id_fornece'];
        $MeuCarrinho->AtualizarCarrinho($_POST);
        break;
    case "finalizar":
        if ($MeuCarrinho->QuantosItens()>0) {
        echo "<script>document.location='CarrinhoFinal.php?acao=gravar'</script>";
        }
    break;
    }
}
if ($MeuCarrinho->QuantosItens()==0) {
 echo "<table align='center'>
         <tr><td align=center><p><p><h2>Lista Vazia</h2><p><p></td></tr>       
         <tr><td align=center><p><p><a href=produto_lista_cadastrar.php?acao=mostra_fornecedores><h2>Mostrar Fornecedores</h2></a><p><p></td></tr>
       </table>";
        }
else {
$QuerySQL = "
             select 
               p.id, p.foto, p.nome, p.preço, p.quantidadecaixa, p.grupo, g.nome, p.fornecedor
             from 
               produtos p inner join grupos g on p.grupo = g.id_grupo
               " . $MeuCarrinho->QuerySQL_ObtemListaDeItens(). ")";
$Resultado = $MySQL->query($QuerySQL);
?>

<form method="POST" action="carrinho.php?op=atualizar&id_fornece=<?=$id_fornece;?>">
<table BORDER=0 CELLSPACING=2 CELLPADDING=4 WIDTH="100%">
<tr BGCOLOR="#0080C0"><td align="center" colspan="8"><b><font color="#FFFFFF">Lista</font></b></td></tr>
<tr BGCOLOR="#004080">
<td align="center"><b><font color="#FFFF99">Foto</font></b></td>
<td align="center"><b><font color="#FFFF99">Produto</font></b></td>
<td align="center"><b><font color="#FFFF99">Grupo</font></b></td>
<td align="center"><b><font color="#FFFF99">QTD na Caixa</font></b></td>
<td align="center"><b><font color="#FFFF99">PRE&Ccedil;O UNIT&Aacute;RIO</font></b></td>
<td align="center"><b><font color="#FFFF99">% Desconto</font></b></td>
<td align="center"><b><font color="#FFFF99">PRE&Ccedil;O Alterado</font></b></td>
<td align="center"><b><font color="#FFFF99">Exluir</font></b></td>
</tr>


<?
$preco_total = 0.00;
while(list($id, $foto, $nome, $preço, $quantidadecaixa, $grupo, $nome_grupo, $fornecedor) = mysql_fetch_row($Resultado)) {
//Computando preço total
    $preco_total = $preco_total + $MeuCarrinho->ObtemPrecoAlteradoDeUmItem($id,$preço);
    $peso_medio = $peso_medio + $MeuCarrinho->ObtemSubTotalDeUmItem($id,$peso);

    session_register("preco_total");
    session_register("peso_medio");
          if($foto==""){ $foto2 = "<img src='figuras/Next.png' alt='Sem foto' border=0 width=35>"; } 
      else {
             if(file_exists("../img/foto_produto/mini/$foto")) 
              {
                 $foto1 = "<img src='../img/foto_produto/mini/$foto'  alt='Foto' border=0 width=35>";
                 list($width,$height) = getimagesize("../img/foto_produto/normal/$foto");
                 $foto2 = "<a href=java script:AbreImagemGrande('produtos_conteudo_foto.php?foto_url=$foto','ImpNot','$width','$height')>

$foto1</a>";
              }
            else {
                     $foto2 = "<img src='figuras/Next.png' alt='Sem foto' border=0 width=35>"; 
                 }
      }

    echo "
        <tr>
          <td align='center'><font size=-1>". $foto2 ."</font></td>
          <td align='left'><font size=-1>". $nome ."</font></td>
          <td align='left'><font size=-1>". $nome_grupo ."</font></td>
          <td align='center'><font size=-1>". $quantidadecaixa ."</font></td>
          <td align='right'><font size=-1>". $preço ."</font></td>
          <td align='center'>% <input type=TEXT name=". $id ." size='2' value=". $MeuCarrinho->ObtemPorcentagemItem($id) ." onkeypress='BloqueiaLetras();' ></td>
          <td align='center'><b>R$ <input type='text' name='preco_alter' size='5' readonly='readonly'
                    value=". number_format($MeuCarrinho->ObtemPrecoAlteradoDeUmItem($id,$preço), 2, '.', '') ."></b>
          </td>
          <td align='center'><b><font face=Tahoma><font size=-2><a href=carrinho.php?op=excluir&id_prod=$id&id_fornece=$fornecedor>Excluir</a></font></font></b></td>
        </tr>
    ";
}
?>

<tr><td align="center" colspan="8">
<input type="hidden" value="<?=$id_fornece;?>"  name="id_fornece"/>
<input type="submit" value="Atualizar" name="Atualizar" WIDTH="78" HEIGHT="20" style="background-color: rgb(0,111,55); color: rgb(255,255,0)">
</td></tr>
</table>
</form>

<TABLE align="center">
<TR>
    <TD align="center">
        <form method="post" action="produto_lista_cadastrar.php?acao=mostra_produtos&id_fornece=<?=$id_fornece;?>">
          <input type="submit" name="Atualizar" value="<< Voltar as Compras"  WIDTH="78" HEIGHT="20" style="background-color: rgb(0,111,55); color: rgb(255,255,0)">
        </form>
    </TD>
    <TD>
        <form method="post" action="carrinho.php?op=finalizar">
          <input type="hidden" name="preco_total" value="<?=number_format($preco_total, 2, '.', ''); ?>">
          <input type="hidden" name="peso_medio" value="<?=number_format($peso_medio, 2, '.', ''); ?>">
          <input type="submit" name="Atualizar" value="Finalizar Compra >>"  WIDTH="78" HEIGHT="20" style="background-color: rgb(0,111,55); color: rgb(255,255,0)">
        </form>    
    </TD>
</TR>
</TABLE>
<? } ?>

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Pessoal, resolvi colocar os calculos no form da pagina anterior para que os valores cheguem limpos à pagina do carrinho.

Só que eu mexi tanto que agora, quando eu adiciono um item ao carrinho, ou volto e pego outro, ou ainda excluo um item, funciona certo. Porem, quando eu cliko no botão atualizar, ai os valores das funções não são executados e zero os campos que chamam as funções.

Segue meu carrinho.php

<?php
$id_fornece=$_POST['id_fornece'];
$novopreco=$_POST['novo_preco'];
$imposto=$_POST['imposto'];
$novo_preco=(($novopreco * $imposto)/100) + $novopreco;
//Verificando se a variavel de sessão foi criada
if (!session_is_registered("MeuCarrinho")){
    session_register("MeuCarrinho");
    $MeuCarrinho = new TCarrinho();
    $_SESSION[MeuCarrinho] = serialize($MeuCarrinho);
    $MeuCarrinho = unserialize($_SESSION[MeuCarrinho]);    
}
    $_SESSION[MeuCarrinho] = serialize($MeuCarrinho);
    $MeuCarrinho = unserialize($_SESSION[MeuCarrinho]);    

if (!empty($op)){
    switch ($op) {
    case "adicionar":
        if (!empty($id_prod)){
            $Query = "select id from produtos where id = $id_prod";
            $R_Query = $MySQL->query($Query);
            if (mysql_num_rows($R_Query)>0){
                $MeuCarrinho->AdicionarItem($id_prod,1,$imposto,$novo_preco);
            }
        }
        break;
    case "excluir":
         $id_fornece=$_GET['id_fornece'];
        $MeuCarrinho->RemoverItem($id_prod);
        break;
    case "atualizar":
         $id_fornece=$_GET['id_fornece'];
        $MeuCarrinho->AtualizarCarrinho($_POST);
        break;
    case "finalizar":
        if ($MeuCarrinho->QuantosItens()>0) {
        echo "<script>document.location='CarrinhoFinal.php?acao=gravar'</script>";
        }
    break;
    }
}
if ($MeuCarrinho->QuantosItens()==0) {
 echo "<table align='center'>
         <tr><td align=center><p><p><h2>Lista Vazia</h2><p><p></td></tr>       
         <tr><td align=center><p><p><a href=produto_lista_cadastrar.php?acao=mostra_fornecedores><h2>Mostrar Fornecedores</h2></a><p><p></td></tr>
       </table>";
        }
else {
$QuerySQL = "
             select 
               p.id, p.foto, p.nome, p.preço, p.quantidadecaixa, p.grupo, g.nome, p.fornecedor
             from 
               produtos p inner join grupos g on p.grupo = g.id_grupo
               " . $MeuCarrinho->QuerySQL_ObtemListaDeItens(). ")";
$Resultado = $MySQL->query($QuerySQL);
?>

<form method="post" action="carrinho.php?op=atualizar&id_fornece=<?=$id_fornece;?>">
<table BORDER=0 CELLSPACING=2 CELLPADDING=4 WIDTH="100%">
<tr BGCOLOR="#0080C0"><td align="center" colspan="8"><b><font color="#FFFFFF">Lista</font></b></td></tr>
<tr BGCOLOR="#004080">
<td align="center"><b><font color="#FFFF99">Foto</font></b></td>
<td align="center"><b><font color="#FFFF99">Produto</font></b></td>
<td align="center"><b><font color="#FFFF99">Grupo</font></b></td>
<td align="center"><b><font color="#FFFF99">QTD na Caixa</font></b></td>
<td align="center"><b><font color="#FFFF99">Preço Unitário</font></b></td>
<td align="center"><b><font color="#FFFF99">Imposto já<br />Aplicado (%)</font></b></td>
<td align="center"><b><font color="#FFFF99">Exluir</font></b></td>
</tr>


<?
while(list($id, $foto, $nome, $preço, $quantidadecaixa, $grupo, $nome_grupo, $fornecedor) = mysql_fetch_row($Resultado)) {
          if($foto==""){ $foto2 = "<img src='figuras/Next.png' alt='Sem foto' border=0 width=35>"; } 
      else {
             if(file_exists("../img/foto_produto/mini/$foto")) 
              {
                 $foto1 = "<img src='../img/foto_produto/mini/$foto'  alt='Foto' border=0 width=35>";
                 list($width,$height) = getimagesize("../img/foto_produto/normal/$foto");
                 $foto2 = "<a href=java script:AbreImagemGrande('produtos_conteudo_foto.php?foto_url=$foto','ImpNot','$width','$height')>

$foto1</a>";
              }
            else {
                     $foto2 = "<img src='figuras/Next.png' alt='Sem foto' border=0 width=35>"; 
                 }
      }

    echo "
        <tr>
          <td align='center'><font size=-1>". $foto2 ."</font></td>
          <td align='left'><font size=-1>". $nome ."</font></td>
          <td align='left'><font size=-1>". $nome_grupo ."</font></td>
          <td align='center'><font size=-1>". $quantidadecaixa ."</font></td>
          <td align='right'><font size=-1>R$ ".  number_format($MeuCarrinho->ObtemNovoPrecoItem($id), 2, '.', '') ."</font></td>
          <td align='center'>". $MeuCarrinho->ObtemImpostoItem($id) ." % </td>
          <td align='center'><b><font face=Tahoma><font size=-2><a href=carrinho.php?op=excluir&id_prod=$id&id_fornece=$fornecedor>Excluir</a></font></font></b></td>
        </tr>
    ";
}
?>

<tr><td align="center" colspan="8">
<input type="hidden" value="<?=$id_fornece;?>"  name="id_fornece"/>
<input type="hidden" value="<?=$MeuCarrinho->ObtemQuantidadeItem($id);?>"  name="<?=$id;?>"/>
<input type="submit" value="Atualizar" name="Atualizar" WIDTH="78" HEIGHT="20" style="background-color: rgb(0,111,55); color: rgb(255,255,0)">
</td></tr>
</table>
</form>

<TABLE align="center">
<TR>
    <TD align="center">
        <form method="post" action="produto_lista_cadastrar.php?acao=mostra_produtos&id_fornece=<?=$id_fornece;?>">
          <input type="submit" name="Atualizar" value="<< Voltar as Compras"  WIDTH="78" HEIGHT="20" style="background-color: rgb(0,111,55); color: rgb(255,255,0)">
        </form>
    </TD>
    <TD>
        <form method="post" action="carrinho.php?op=finalizar">
          <input type="submit" name="Atualizar" value="Finalizar Compra >>"  WIDTH="78" HEIGHT="20" style="background-color: rgb(0,111,55); color: rgb(255,255,0)">
        </form>    
    </TD>
</TR>
</TABLE>
<? } ?>
e, a classe TMysql.php
<?php
/*
    Classe TCarrinho
*/
class TCarrinho {
var $item_codigo = array();
var $item_quantidade = array();
var $item_imposto = array();
var $item_novopreco = array();

    /*
        AdicinarItem
        Este metodo adiciona um item no carrinho
    */
    function AdicionarItem($codigo,$quantidade,$imposto,$novo_preco) 
    {
        //Inicializando parametro
        $posicao = -1; 
        $achou = $this->ObtemPosicao($codigo,$posicao);
        if (!$achou){
            $this->item_codigo[] = $codigo;
            $this->item_quantidade[] = $quantidade;
            $this->item_imposto[] = $imposto;    
            $this->item_novopreco[] = $novo_preco;                
                        }
    } /* AdicionarItem() */

    /*
        QuerySQL_ObtemListaDeItens
        Este metodo gera uma parte do codigo SQL que sera usado para buscar os dados
        do carrinho de compra (id, NOME e PREÇO). O comando SQL final tera como finalidade
        de buscar no banco de dados apenas os dados dos itens incluidos no carrinho.
    */
    function QuerySQL_ObtemListaDeItens(){
        $itens = "where ( ";
        $STR = "";
        if ($this->QuantosItens()>0) {
            $fixo = " id =";
            for ($i=0;$i<$this->QuantosItens();$i++){
                $STR = $STR . $fixo . " " . $this->item_codigo[$i];
                if ($i+1<$this->QuantosItens()) {
                    $STR = $STR . " or ";
                }
            }
        }
        if (!$STR == "") {
            return $itens . $STR;
        }else{
            //Caso não exista nenhum item no carrinho o codigo final SQL, procurara por um item que não existe na tabela de produtos, neste caso  -1.
            return "where id = -1";
        }
    } /* QuerySQL_ObtemListaDeItens() */

    

    /*
        RemoverItem
        Este metodo remove um item do carrinho de compra, passando o codigo do produto
    */
    function RemoverItem($codigo) 
    {
        //Inicializando parametro
        $posicao = -1; 
        $achou = $this->ObtemPosicao($codigo,$posicao);
        if ($achou){
            //Removendo o elemento do vetor
            array_splice($this->item_codigo, $posicao, 1);
            array_splice($this->item_quantidade, $posicao, 1);
            array_splice($this->item_imposto, $posicao, 1);
            array_splice($this->item_novopreco, $posicao, 1);                    
        }
            
    } /* RemoveItem() */


    /*
        AtualizarCarrinho
        Este metodo coleta todos as variaveis enviadas pelo FORMULARO (method="POST") 
        e atualiza as quantidades dos itens.
    */
    function AtualizarCarrinho(&$VAR_ENVIADAS_PELO_BROWSER){
        //Percorrendo a lista de itens e atualizando suas quantidades
        for ($i=0;$i<$this->QuantosItens();$i++){
            $this->item_quantidade[$i] = $VAR_ENVIADAS_PELO_BROWSER[$this->item_codigo[$i]];
            $this->item_imposto[$i] = $VAR_ENVIADAS_PELO_BROWSER[$this->item_codigo[$i]];
            $this->item_novopreco[$i] = $VAR_ENVIADAS_PELO_BROWSER[$this->item_codigo[$i]];            
            
     }
    } /* AtualizarCarrinho() */


    
    /*
        ObtemPosicao
        Este metodo obtem a posicao de um item mediante ao seu codigo, retornando um valor booleano e gravando a posicao na variavel de referencia $posicao, caso o codigo do item esteja no carrinho.
    */
    function ObtemPosicao($codigo,&$posicao){
        //Percorrendo o vetor
        for($i=0;$i<count($this->item_codigo);$i++) {
            if ($this->item_codigo[$i] == $codigo) {
                $posicao = $i;
                return TRUE;
           }
         }

    }/* ObtemPosicao() */
    
    
    /*
        ObtemNovoPrecoItem
        Este metodo obtem o novo preço do ítem baseado no preço calculado antes do carrinho
    */
    function ObtemNovoPrecoItem($codigo){
        $posicao = -1;
        $achou = $this->ObtemPosicao($codigo,$posicao);
        if ($achou) {
            return $this->item_novopreco[$posicao];
        }else{
            return "erro ao obter Novo Preço do item";
        }
        
    } /* ObtemNovoPrecoItem() */

    /*
        ObtemImpostoItem
        Este metodo o imposto do ítem baseado no id
    */
    function ObtemImpostoItem($codigo){
        $posicao = -1;
        $achou = $this->ObtemPosicao($codigo,$posicao);
        if ($achou) {
            return $this->item_imposto[$posicao];
        }else{
            return "erro ao obter o imposto do item";
        }
        
    } /* ObtemImpostoItem() */


    /*
        QuantosItens
        Este metodo retorna a quantidade de itens incluidas no carrinho de compras
    */
    function QuantosItens() {
        return
          count($this->item_quantidade);
          count($this->item_imposto);
          count($this->item_novopreco);      
    } /* QuantosItens() */


    /*
        ObtemQuantidadeItem
        Este metodo obtem a quantidade de um Item
    */
    function ObtemQuantidadeItem($codigo){
        $posicao = -1;
        $achou = $this->ObtemPosicao($codigo,$posicao);
        if ($achou) {
            return $this->item_quantidade[$posicao];
                   $this->item_imposto[$posicao];
                   $this->item_novopreco[$posicao];  
        }else{
            return "erro ao obter quantidade do item";
        }
        
    } /* ObtemQuantidaItem() */



} /* Classe TCarrinho */
?>

Onde será que estará esse erro?

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, descobri que, quando coloco a função para trabalhar dentreo de um input type=text e dou um name para ele igual ao id do produto em questão, a função funciona.

O problema é que preciso fazer isso com 2 campos, o novo_preco e o imposto e ambos vão ganhar o mesmo name. Daí, da conflito os dois recebem o mesmo valor.

<td align='center'>R$ <input type=\"texto\" name=\"$id\" value=". number_format($MeuCarrinho->ObtemNovoPrecoItem($id), 2, '.', '') ."> </td>
          <td align='center'><input type=\"texto\" name=\"$id\" value=". $MeuCarrinho->ObtemImpostoItem($id) ."> %</td>

Como contornar isso agora?

Link para o comentário
Compartilhar em outros sites

  • 0

Outra observação:

Esse código esta dentro de um while:

<?
while(list($id, $foto, $nome, $preço, $quantidadecaixa, $grupo, $nome_grupo, $fornecedor) = mysql_fetch_row($Resultado)) {
          if($foto==""){ $foto2 = "<img src='figuras/Next.png' alt='Sem foto' border=0 width=35>"; } 
      else {
             if(file_exists("../img/foto_produto/mini/$foto")) 
              {
                 $foto1 = "<img src='../img/foto_produto/mini/$foto'  alt='Foto' border=0 width=35>";
                 list($width,$height) = getimagesize("../img/foto_produto/normal/$foto");
                 $foto2 = "<a href=java script:AbreImagemGrande('produtos_conteudo_foto.php?foto_url=$foto','ImpNot','$width','$height')>

$foto1</a>";
              }
            else {
                     $foto2 = "<img src='figuras/Next.png' alt='Sem foto' border=0 width=35>"; 
                 }
      }

    echo "
        <tr>
          <td align='center'><font size=-1>". $foto2 ."</font></td>
          <td align='left'><font size=-1>". $nome ."</font></td>
          <td align='left'><font size=-1>". $nome_grupo ."</font></td>
          <td align='center'><font size=-1>". $quantidadecaixa ."</font></td>
          <td align='center'>R$ <input type=\"texto\" name=\"$id\" value=". number_format($MeuCarrinho->ObtemNovoPrecoItem($id), 2, '.', '') ."> </td>
          <td align='center'><input type=\"texto\" name=\"$id\" value=". $MeuCarrinho->ObtemImpostoItem($id) ."> %</td>          
          <td align='center'><b><font face=Tahoma><font size=-2><a href=carrinho.php?op=excluir&id_prod=$id&id_fornece=$fornecedor>Excluir</a></font></font></b></td>
        </tr>
    ";
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Descobri o problema.

Se observarem na minha classe TCarrinho.php, na função remover item

function RemoverItem($codigo) 
        {
                //Inicializando parametro
                $posicao = -1; 
                $achou = $this->ObtemPosicao($codigo,$posicao);
                if ($achou){
                        //Removendo o elemento do vetor
                        array_splice($this->item_codigo, $posicao, 1);
                        array_splice($this->item_quantidade, $posicao, 1);
                        array_splice($this->item_imposto, $posicao, 1);
                        array_splice($this->item_novopreco, $posicao, 1);                                       
                }
                        
        } /* RemoveItem() */
Coloquei os itens todos na função: $this->item_codigo, $this->item_quantidade, $this->item_imposto, $this->item_novopreco. Na verdade, a unica função onde os 4 devem ser inseridos, é na função de adicionar item por ser usada apenas na primeira vez que o item entra no carrinho. Após isso, só as funções de atualizar e concluir o carrinho, e, nessas funções, apenas precisamos do $this->item_quantidade. Colocando os outros $this->, o script, não me perguntem o porque, entra em conflito. Vale lembrar que esse script é para o caso de apenas um unidade de cada mercadoria no carrinho. Segue a classe novamente:
<?php
/*
    Classe TCarrinho
*/
class TCarrinho {
var $item_codigo = array();
var $item_quantidade = array();
var $item_imposto = array();
var $item_novopreco = array();

    /*
        AdicinarItem
        Este metodo adiciona um item no carrinho
    */
    function AdicionarItem($codigo,$quantidade,$imposto,$novo_preco) 
    {
        //Inicializando parametro
        $posicao = -1; 
        $achou = $this->ObtemPosicao($codigo,$posicao);
        if (!$achou){
            $this->item_codigo[] = $codigo;
            $this->item_quantidade[] = $quantidade;
            $this->item_imposto[] = $imposto;    
            $this->item_novopreco[] = $novo_preco;                
                        }
    } /* AdicionarItem() */

    /*
        QuerySQL_ObtemListaDeItens
        Este metodo gera uma parte do codigo SQL que sera usado para buscar os dados
        do carrinho de compra (id, NOME e PREÇO). O comando SQL final tera como finalidade
        de buscar no banco de dados apenas os dados dos itens incluidos no carrinho.
    */
    function QuerySQL_ObtemListaDeItens(){
        $itens = "where ( ";
        $STR = "";
        if ($this->QuantosItens()>0) {
            $fixo = " id =";
            for ($i=0;$i<$this->QuantosItens();$i++){
                $STR = $STR . $fixo . " " . $this->item_codigo[$i];
                if ($i+1<$this->QuantosItens()) {
                    $STR = $STR . " or ";
                }
            }
        }
        if (!$STR == "") {
            return $itens . $STR;
        }else{
            //Caso não exista nenhum item no carrinho o codigo final SQL, procurara por um item que não existe na tabela de produtos, neste caso  -1.
            return "where id = -1";
        }
    } /* QuerySQL_ObtemListaDeItens() */

    

    /*
        RemoverItem
        Este metodo remove um item do carrinho de compra, passando o codigo do produto
    */
    function RemoverItem($codigo) 
    {
        //Inicializando parametro
        $posicao = -1; 
        $achou = $this->ObtemPosicao($codigo,$posicao);
        if ($achou){
            //Removendo o elemento do vetor
            array_splice($this->item_quantidade, $posicao, 1);
        }
            
    } /* RemoveItem() */


    /*
        AtualizarCarrinho
        Este metodo coleta todos as variaveis enviadas pelo FORMULARO (method="POST") 
        e atualiza as quantidades dos itens.
    */
    function AtualizarCarrinho(&$VAR_ENVIADAS_PELO_BROWSER){
        //Percorrendo a lista de itens e atualizando suas quantidades
        for ($i=0;$i<$this->QuantosItens();$i++){
            $this->item_quantidade[$i] = $VAR_ENVIADAS_PELO_BROWSER[$this->item_codigo[$i]];        
            
     }
    } /* AtualizarCarrinho() */


    
    /*
        ObtemPosicao
        Este metodo obtem a posicao de um item mediante ao seu codigo, retornando um valor booleano e gravando a posicao na variavel de referencia $posicao, caso o codigo do item esteja no carrinho.
    */
    function ObtemPosicao($codigo,&$posicao){
        //Percorrendo o vetor
        for($i=0;$i<count($this->item_codigo);$i++) {
            if ($this->item_codigo[$i] == $codigo) {
                $posicao = $i;
                return TRUE;
           }
         }

    }/* ObtemPosicao() */
    
    
    /*
        ObtemNovoPrecoItem
        Este metodo obtem o novo preço do ítem baseado no preço calculado antes do carrinho
    */
    function ObtemNovoPrecoItem($codigo){
        $posicao = -1;
        $achou = $this->ObtemPosicao($codigo,$posicao);
        if ($achou) {
            return $this->item_novopreco[$posicao];
        }else{
            return "erro ao obter Novo Preço do item";
        }
        
    } /* ObtemNovoPrecoItem() */

    /*
        ObtemImpostoItem
        Este metodo o imposto do ítem baseado no id
    */
    function ObtemImpostoItem($codigo){
        $posicao = -1;
        $achou = $this->ObtemPosicao($codigo,$posicao);
        if ($achou) {
            return $this->item_imposto[$posicao];
        }else{
            return "erro ao obter o imposto do item";
        }
        
    } /* ObtemImpostoItem() */


    /*
        QuantosItens
        Este metodo retorna a quantidade de itens incluidas no carrinho de compras
    */
    function QuantosItens() {
        return
          count($this->item_quantidade);
    } /* QuantosItens() */


    /*
        ObtemQuantidadeItem
        Este metodo obtem a quantidade de um Item
    */
    function ObtemQuantidadeItem($codigo){
        $posicao = -1;
        $achou = $this->ObtemPosicao($codigo,$posicao);
        if ($achou) {
            return $this->item_quantidade[$posicao];
        }else{
            return "erro ao obter quantidade do item";
        }
        
    } /* ObtemQuantidaItem() */



} /* Classe TCarrinho */
?>

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
      651,9k
×
×
  • Criar Novo...