%
'-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
' Loja Exemplo Locaweb
' Versão: 6.5
' Data: 12/09/06
' Arquivo: produtos_descricao.asp
' Versão do arquivo: 0.0
' Data da ultima atualização: 16/10/08
'
'-----------------------------------------------------------------------------
' Licença Código Livre: http://comercio.Locaweb.com.br/gpl/gpl.txt
'-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-
%>
<%
rodape = "no"
%>
<%
'Validação de dados postados por GET e/ou Post
Call Valida_Request()
'passado na selação do produto
codigo_produto = Request("codigo_produto")
' Abre tabela de produtos usando a conexao aberta acima.
Set RS_Produto = Server.CreateObject("ADODB.Recordset")
Set RS_Produto.ActiveConnection = Conexao
RS_Produto.CursorLocation = 3
RS_Produto.CursorType = 0
RS_Produto.LockType = 1
'Seleciona dados do produto indicado
RS_Produto.Open "SELECT Produtos.codigo_produto, Produtos.codigo_categoria, Produtos.codigo_subcategoria, Produtos.codigo_marca, Produtos.codigo_produto_loja, Produtos.nome_produto, Produtos.descricao_produto, Produtos.autor, Produtos.codigo_isbn, Produtos.tamanhos, Produtos.cores, Produtos.preco_base, Produtos.preco_unitario, Produtos.desconto, Produtos.moeda, Produtos.quantidade_produto, Produtos.img_produtoPQN, Produtos.img_produtoGRD, Produtos.img_produto_adic01PQN, Produtos.img_produto_adic01GRD, Produtos.img_produto_adic02PQN, Produtos.img_produto_adic02GRD, Produtos.img_produto_adic03PQN, Produtos.img_produto_adic03GRD, Produtos.peso, Produtos.destaque_vitrine, Produtos.promocao, Produtos.data_inicio, Produtos.data_fim, Produtos.disponivel, Produtos.sigla_idioma, Categorias.nome_categoria FROM Categorias INNER JOIN Produtos ON Categorias.codigo_categoria = Produtos.codigo_categoria WHERE Codigo_produto = "&Request("codigo_produto")&" AND Produtos.sigla_idioma = '" & varLang & "' AND Categorias.sigla_idioma = '" & varLang & "'", Conexao
'Converte para o cambio cadastrado conforme idioma selecionado.
'Criação do objeto de recordset para captura do valor do cambio
Set DadosCambio = Server.CreateObject("ADODB.Recordset")
Set DadosCambio.ActiveConnection = Conexao
DadosCambio.CursorLocation = 3
DadosCambio.CursorType = 0
DadosCambio.LockType = 1
'Consulta a tabela IdiomaseCambios
DadosCambio.Open "SELECT simbolo_moeda, valor_moeda FROM IdiomaseCambios WHERE sigla_idioma='"&varLang&"'", Conexao
'Captura valor da moeda e seu simbolo
vlcambio = DadosCambio("valor_moeda")
abvmoeda = DadosCambio("simbolo_moeda")
'Fecha conexão com o Recordset
DadosCambio.close
'Destroi o objeto do recordset
Set DadosCambio = Nothing
If VerificaExistenciaDado("codigo_subcategoria","Subcategorias","codigo_subcategoria",RS_Produto("codigo_subcategoria")) Then
'Captura a subcategoria se existir
Set RS_Subcateogria = Server.CreateObject("ADODB.Recordset")
RS_Subcateogria.CursorLocation = 3
RS_Subcateogria.CursorType = 0
RS_Subcateogria.LockType = 1
RS_Subcateogria.Open "SELECT codigo_subcategoria, nome_subcategoria FROM Subcategorias WHERE sigla_idioma='"&varLang&"' AND codigo_subcategoria = "&RS_Produto("codigo_subcategoria")&"" , Conexao
nome_subcategoria = RS_Subcateogria("nome_subcategoria")
RS_Subcateogria.close
Set RS_Subcateogria = Nothing
End If
If VerificaExistenciaDado("codigo_marca","Marcas","codigo_marca",RS_Produto("codigo_marca")) Then
'Captura a subcategoria se existir
Set RS_Marca = Server.CreateObject("ADODB.Recordset")
RS_Marca.CursorLocation = 3
RS_Marca.CursorType = 0
RS_Marca.LockType = 1
RS_Marca.Open "SELECT codigo_marca, nome_marca FROM Marcas WHERE codigo_marca = "&RS_Produto("codigo_marca")&"" , Conexao
nome_marca = RS_Marca("nome_marca")
RS_Marca.close
Set RS_Marca = Nothing
End If
'Calcula o valor bruto do produto conforma cambio selecionado
valor_produto = FormatNumber(RS_Produto("preco_unitario")/(vlcambio),2)
'Verifica se existe alguma promoção de desconto para o produto e calcula o valor final.
If pegavalor_promocao(valor_produto,RS_Produto) < FormatCurrency(valor_produto) Then
valor_produto = pegavalor_promocao(valor_produto,RS_Produto)
End If
'Se não existir registro e valor promocional o produto assume o valor cadastrado.
If valor_produto = "" Then
valor_produto = FormatNumber(RS_Produto("preco_unitario")/(vlcambio),2)
End if
' Exibe o produto apenas se o mesmo estiver disponível
If RS_Produto("disponivel") = 1 Then
%>
ISBN: <%= RS_Produto("codigo_isbn") %>
<% End If %>
<%If RS_Produto("preco_unitario") > 0 then%>
<%=Application("middleTxtPagtoAvista")%>
<%
'Leitura do arquivo de configuração dos meios de pagamento
Call abre_ArquivoXML(Application("XMLMeiosPagamentos"),FctobjXML,FctobjRoot)
'Set objeto de leitura do Nó
Set configuracao = FctobjRoot.selectSingleNode("configuracao")
'Set objeto de leitura dos atributos
Set itens = configuracao.getElementsByTagName("pagto[@disponivel='sim']")
'Identifica número itens para o Loop
n_itens = itens.length
'Loop das formas de pagamentos disponíveis
for i = 0 to (n_itens - 1)
'Set obeto de leitura de atributos configurados
Set pagto = itens.item(i)
'Lista primeiro as formas de pagamentos a vista
If pagto.getAttribute("permite_parcelamento") = "não" Then
'### Pagamentos a vista
%>
<%=pagto.getAttribute("nome_visualizacao")%>
<%=abvmoeda%> <%= FormatNumber(valor_produto)%>
<% 'Define quais meios de pagamentos permitem o parcelamento
ElseIf pagto.getAttribute("permite_parcelamento") = "sim" Then
permite_parcelamento = "sim"
End If
'Destroi o objeto de leitura do XML
Set pagto = Nothing
Next
'### Fim dos Pagamentos a vista
'### Pagamentos parcelados
'Lista apenas os pagamentos que permitem parcelamentos e suas parcalas.
If permite_parcelamento="sim" Then
%>
<%=Application("middleTxtPagtoParcelado")%>
<%
'Identifica número itens para o Loop
n_itens = itens.length
'Loop das formas de pagamentos disponíveis
for i = 0 to (n_itens - 1)
'Set obeto de leitura de atributos configurados
Set pagto = itens.item(i)
'Lista primeiro as formas de pagamentos a vista
If pagto.getAttribute("permite_parcelamento") = "sim" Then
' Resgata dados do parcelamento
taxaJuros = pagto.getAttribute("taxa_juros")
taxaDesconto = pagto.getAttribute("taxa_desconto")
nValorMinParcela = FormatNumber(pagto.getAttribute("valormin_parcela"))
sJuros = pagto.getAttribute("juros")
%>
<%
' Zera a trava de parcelas
sTrava = False
' Loop da primeira etapa de parcelas
For num_parcela = 1 To 6
' Verifica o tipo de juros é do lojista
If sJuros = "lojista" Then
' Tipo de calculo da parcela
sTipoCalc = pagto.getAttribute("parc"&num_parcela)
' Calcula o valor total com Desconto
If sTipoCalc = "Desconto" Then
currValorCalc = calculaValorTaxa(valor_produto,taxaDesconto,"Desconto")
' Calcula o valor total com juros definido
Elseif sTipoCalc = "Com juros" Then
currValorCalc = calculaValorTaxa(valor_produto,taxaJuros,"Acrescimo")
' Calcula o valor total sem juros
Else
currValorCalc = valor_produto
End If
' Para juros do emissor
Else
currValorCalc = valor_produto
End If
' Verifica o valor da parcela do pedido
nValorParcelaPedido = FormatNumber(currValorCalc / num_parcela)
' Monta a exibição do 'Desconto'
If sTipoCalc = "Desconto" And sJuros = "lojista" Then
sMeioPagto_Adicional = " X " & abvmoeda & " " & nValorParcelaPedido & " - Desconto de " & taxaDesconto &"%"
' Monta a exibição do 'Com Juros'
Elseif sTipoCalc = "Com juros" And sJuros = "lojista" Then
sMeioPagto_Adicional = " X " & abvmoeda & " " & nValorParcelaPedido & " - Juros de " & taxaJuros &"%"
' Monta a exibição do 'Sem Juros'
Elseif sTipoCalc = "Sem juros" And sJuros = "lojista" Then
sMeioPagto_Adicional = " X " & abvmoeda & " " & nValorParcelaPedido & " - Sem Juros"
Else
sMeioPagto_Adicional = " X " & abvmoeda & " " & nValorParcelaPedido
End If
' Ajusta o número de parcelas para dois dígitos
If (num_parcela < 10) Then
num_parcela = "0" & num_parcela
End If
' Verifica o valor mínimo da parcela e a quantidade maxima de parcelas
If Cdbl(nValorMinParcela) > Cdbl(nValorParcelaPedido) And num_parcela <> 1 Or CDbl(num_parcela) > CDbl(pagto.getAttribute("num_parcelas")) Then
' Ativa a trava de parcelas
sTrava = True
Exit For
End If
' Monta as cores da tabela
If strColor = "class=""FUNDOoptpagproduto3""" Then
strColor = "class=""FUNDOoptpagproduto4"""
Else
strColor = "class=""FUNDOoptpagproduto3"""
End If
%>
<%
' Verifica se o valor minimo da parcela já não foi atingido e o número máximo de parcelas é maior que 6
If sTrava = False And pagto.getAttribute("num_parcelas") > 6 Then
' Loop para segunda etapa de parcelas
For num_parcela = 7 To 12
' Verifica o tipo de juros é do lojista
If sJuros = "lojista" Then
' Tipo de calculo da parcela
sTipoCalc = pagto.getAttribute("parc"&num_parcela)
' Calcula o valor total com Desconto
If sTipoCalc = "Desconto" Then
currValorCalc = calculaValorTaxa(valor_produto,taxaDesconto,"Desconto")
' Calcula o valor total com juros definido
Elseif sTipoCalc = "Com juros" Then
currValorCalc = calculaValorTaxa(valor_produto,taxaJuros,"Acrescimo")
' Calcula o valor total sem juros
Else
currValorCalc = valor_produto
End If
' Para juros do emissor
Else
currValorCalc = valor_produto
End If
' Verifica o valor da parcela do pedido
nValorParcelaPedido = FormatNumber(currValorCalc / num_parcela)
' Monta a exibição do 'Desconto'
If sTipoCalc = "Desconto" And sJuros = "lojista" Then
sMeioPagto_Adicional = " X " & abvmoeda & " " & nValorParcelaPedido & " - Desconto de " & taxaDesconto &"%"
' Monta a exibição do 'Com Juros'
Elseif sTipoCalc = "Com juros" And sJuros = "lojista" Then
sMeioPagto_Adicional = " X " & abvmoeda & " " & nValorParcelaPedido & " - Juros de " & taxaJuros &"%"
' Monta a exibição do 'Sem Juros'
Elseif sTipoCalc = "Sem juros" And sJuros = "lojista" Then
sMeioPagto_Adicional = " X " & abvmoeda & " " & nValorParcelaPedido & " - Sem Juros"
Else
sMeioPagto_Adicional = " X " & abvmoeda & " " & nValorParcelaPedido
End If
' Ajusta o número de parcelas para dois dígitos
If (num_parcela < 10) Then
num_parcela = "0" & num_parcela
End If
' Verifica o valor mínimo da parcela e a quantidade maxima de parcelas
If Cdbl(nValorMinParcela) > Cdbl(nValorParcelaPedido) And num_parcela <> 1 Or CDbl(num_parcela) > CDbl(pagto.getAttribute("num_parcelas")) Then
' Ativa a trava de parcelas
sTrava = True
Exit For
End If
' Monta as cores da tabela
If strColor = "class=""FUNDOoptpagproduto3""" Then
strColor = "class=""FUNDOoptpagproduto4"""
Else
strColor = "class=""FUNDOoptpagproduto3"""
End If
%>