Jump to content


Photo

Orçamento On-line (via Web)


  • Faça o login para participar
2 replies to this topic

#1 kohler

kohler

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Não informado

Posted 12/11/2007, 15:42

Caros amigos do fórum,

Estou com em um beco sem saída, trabalhando a semanas encima de um sistema de orçamento on-line via web para um cliente, mas não estou conseguindo entregar o projeto no prazo prometido, por isso venho aqui pedir humildemente à ajuda dos colegas e profissionais na área.

Como vocês podem ver pela imagem em anexo abaixo, a estrutura web se compõe da seguinte maneira:

Nome do computador (cadastrado na tabela "micros")
Descrição do computador (também cadastrado na tabela "micros")
Foto (também cadastrado na tabela "micros")


e, é claro o padrão "cod_micro" (auto_increment) para gerar uma nova id à cada computador novo cadastrado.

Após o cadastro do computador, temos as seguintes opções de cotação para orçamento:

- Valor (Valor TOTAL da soma das peças padrões que compõe o micro, peças padrões são as primeiras selecionadas/marcadas em cada categoria).

Categorias distintas onde dentro de cada categoria há os produtos e valor de cada produto daquela categoria.

Para isto, tenho uma segunda tabela, chamada: "produtos_site" com os seguintes campos:

- id (auto_increment) - código automáticamente gerado a cada produto cadastrado
- cod_micro - código do computador que aquelas peças pertencem
- produto - nome do produto, ex: HD Samsung 250GB Sata2 7200RPM
- valor - valor do produto
- primeiro - se o produto será o primeiro da categoria a qual ele pertence, no caso, se ele será o padrão utilizado no orçamento
- categoria - categoria a qual o produto pertence (EX: PROCESSADORES, MEMÓRIAS, etc..)


Estou utilizando ajax pra gerar o valor a cada produto clicado, com o cálculo de:

VALOR TOTAL DO COMPUTADOR ( - ) O VALOR DO PRIMEIRO PRODUTO DA CATEGORIA ( + ) O VALOR DO PRODUTO CLICADO

Consigo calcular a soma, porém somente para uma categoria, ele não guarda/armazena/grava das outras categorias, somente 1 categoria fica gravado/somado.

O código utilizado para gerar o valor é o seguinte:

<?include("setup.php");$id         =  $_GET['id'];         // Pega o código do produto clicado$categoria  =  $_GET['categoria'];  // Pega a categoria do produto clicado$cod_micro  =  $_GET['cod_micro'];  // Pega o código do computador#procedimentos#1. somar o valor total do computador pegando apenas o primeiro de cada categoria$pega_total_primeiro   =  mysql_query("SELECT SUM(valor) as total FROM produtos_site WHERE cod_micro = '$cod_micro' AND primeiro = '1'",$conexao) or die(mysql_error());$row1                  =  mysql_fetch_array($pega_total_primeiro);$valor_total_primeiro  =  $row1['total'];#2. se o id e a categoria estiverem preenchidos:if($id !== "" AND $categoria !== "") { #Valor do clicado$pega_valor_clicado    =  mysql_query("SELECT valor FROM produtos_site WHERE id = '$id'",$conexao) or die(mysql_error());$row2                  =  mysql_fetch_array($pega_valor_clicado);$valor_clicado         =  $row2['valor'];#valor do primeiro$pega_valor_primeiro   =  mysql_query("SELECT valor FROM produtos_site WHERE cod_micro = '$cod_micro' AND categoria = '$categoria' AND primeiro = '1'",$conexao) or die(mysql_error());$row3                  =  mysql_fetch_array($pega_valor_primeiro);$valor_categoria       =  $row3['valor'];} #declaração de variáveis$valor_total_micro     =  $row1['total'];$valor_clicado         =  $row2['valor'];$_SESSION['valor']     =  $valor_clicado;$valor_categoria       =  $row3['valor'];if($id !== "" AND $categoria !== "") {$valor_final = $valor_total_micro-$valor_categoria+$valor_clicado;$valor_final = number_format($valor_final, 2, ',', '.');} else { $valor_final = $valor_total_micro;$valor_final = number_format($valor_final, 2, ',', '.');}echo $valor_final;?>

O código para gerar a página de categorias e produtos é:

<?$cod_micro = $_GET['cod_micro'];$pega_categorias = mysql_query("SELECT * FROM produtos_site WHERE site = '1' AND cod_micro = '$cod_micro' group by categoria",$conexao) or die(mysql_error());while($line = mysql_fetch_array($pega_categorias)) { ?>                            <form action="" method="post" name="orcamento" id="orcamento">                              <table width="100%" border="0" cellspacing="0" cellpadding="1">                                <tr>                                  <td colspan="2" bgcolor="#F8F8F8" class="style4 style5">&nbsp;&nbsp;<? echo $line['categoria']; ?></td>                                </tr><?$cod_micro = $_GET['cod_micro'];$pega_produtos = mysql_query("SELECT * FROM produtos_site WHERE site = '1' AND categoria = '$line[categoria]' AND cod_micro = '$cod_micro' order by primeiro desc",$conexao) or die(mysql_error());while($row = mysql_fetch_array($pega_produtos)) {$valor_primeiro = mysql_query("SELECT * FROM produtos_site WHERE primeiro = '1' AND cod_micro = '$row[cod_micro]' AND categoria = '$row[categoria]'",$conexao) or die(mysql_error());$line           = mysql_fetch_array($valor_primeiro);$valor_primeiro = $line['valor'];	?>                                <tr><td width="67%"><input name="id" id="id" type="radio" value="<? echo $row['id']; ?>" onClick="getvalor('<? echo $row['id']; ?>','<? echo $row['categoria']; ?>','<? echo $row['cod_micro']; ?>')" <? if($row['primeiro'] == 1) { echo "checked"; } ?> /><font color="#333333" size="1" face="Tahoma, Arial, sans-serif"><? echo $row['produto']; ?></font></td>                                  <td width="33%"><div align="left"><strong><font color="#333333" size="1" face="Tahoma, Arial, sans-serif"><? $valor = $row['valor']-$valor_primeiro; if($row['primeiro'] != 1 AND $valor != 0) {						?>(+ R$ <? echo $valor ?>.00)<? } else { ?>(<? echo $row['valor']; ?>)<? } ?>                                  </font></strong></div></td>                                </tr>                                <? } ?>                              </table>                            </form>                          <? echo "\n<br>"; } ?>

Se quiserem testar, disponibilizo este link para entenderem melhor o meu problema:

http://www.bjnet.com...hp?cod_micro=12

Se vocês tiverem idéia sobre como posso resolver este problema ficaria muitíssimo grato.

Desde já agradeço a atenção de todos! :)

Attached Files


Edição feita por: kohler, 12/11/2007, 16:03.


#2 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 12/11/2007, 19:07

Confesso que não entendi muito bem, mas, você deveria guardar as escolhas em uma sessão e sempre que a pessoa decidir adicionar mais itens você retorna os valores da sessão e manipula com os novos valores que a pessoa escolher...

Somente quando ele confirmar o pedido você salva informações no banco de dados, isso irá economizar processamento do servidor MySQL, mas, irá ocupar o processador do sistema de arquivos...

Falopa!

#3 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 13/11/2007, 09:48

Para fins de processamento, acho que deveria enviar tudo para o cliente e não usar AJAX.

Gerar a página toda com as informações de preço de todos os itens e usar somente JS para calcular. Salvar no banco de dados somente quando o usuário enviar o orçamento. Você poderia usar AJAX para outra coisa interessante, como de tempos em tempos que o usuário estiver na página você enviar os dados do formulário e salvar em uma tabela no bancos. Assim você pode acompanhar o que o usuário anda fazendo na página, por exemplo, você viu que ele mudou diversas vezes entre 2 itens e acabou escolhendo um deles porque era mais barato. No orçamento poderia enviar a opção do outro item com um desconto. Também pode criar uma meta de conversão, e ver quantos usuários chegam até sua página e completam o pedido de orçamento ou deixam a página no meio do preenchimento.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq