<% '-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# ' Loja Exemplo Locaweb ' Versão: 6.5 ' Data: 16/08/07 ' Arquivo: repositor_produtos.asp ' Versão do arquivo: 0.0 ' Data da ultima atualização: 21/09/07 ' '----------------------------------------------------------------------------- ' Licença Código Livre: http://comercio.Locaweb.com.br/gpl/gpl.txt '-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- %> <% 'Chamada de abertura do banco de dados Call abre_conexao(conexao) ' Seta o componente e carrega o diretório de pedidos Set ObjFSO = Server.CreateObject("Scripting.FileSystemObject") Set ObjFSODiretorio = ObjFSO.GetFolder(Application("DiretorioDados") &"pedidos_loja\") ' loop dos pedidos do diretório de pedidos For Each a In ObjFSODiretorio.Files ' Define variáveis em UnixTime inicio_transacao_UT = UnixTime(a.DateLastModified) hora_atual_UT = UnixTime(now) diferenca_UT = hora_atual_UT - inicio_transacao_UT ' Verifica se o tempo do pedido é superior a 3600 segundos If diferenca_UT > 3600 Then ' Pega o ID da transação Id_transacao = split(a.Name,".") ' Abre e define o XML do pedido Call abre_xmlpedido(Id_transacao(0), objXML, objRoot) Set raiz_dados_pedido = objRoot.selectSingleNode("dados_pedido[@id_transacao="&Id_transacao(0)&"]") ' Verifica se o pedido não foi finalizado If raiz_dados_pedido.getAttribute("status_pedido") <> "finalizado" Then Set node_dados_pedidos = objXML.getElementsByTagName("dados_pedido[@id_transacao="&Id_transacao(0)&"]/produto") n_node_dados_pedidos = node_dados_pedidos.length ' Loop de reposição dos produtos For i = 0 To (n_node_dados_pedidos - 1) Set item_dados_pedidos = node_dados_pedidos.item(i) 'Chamada para atualização do estoque Call Atualiza_Estoque(item_dados_pedidos.getAttribute("codigo_produto"),"delete",item_dados_pedidos.getAttribute("quantidade_produto"),"0") Set item_dados_pedidos = Nothing Next ' Destroi os componentes Set node_dados_pedidos = Nothing End If 'Apaga o arquivo XML do pedido não finalizado ObjFSO.DeleteFile Application("DiretorioDados") &"pedidos_loja\"&a.Name ' Destroi os componentes Set raiz_dados_pedido = Nothing Call fecha_xmlpedido(Id_transacao(0)) End If Next ' Destroi os componentes Set ObjFSODiretorio = Nothing Set ObjFSO = Nothing 'Chamada de fechamento do banco de dados Call fecha_conexao '######################################################################################################## 'FUNCTION UnixTime ' - Função para calcular o unixtime a partir do inicio da transação. '######################################################################################################## Function UnixTime(FctData) 'Data base para calculo do UnixTime timeStart = "1/1/1970 12:00:00 AM" UnixTime = datediff("s", timeStart, FctData) End Function '######################################################################################################## '--> FIM FUNCTION UnixTime '######################################################################################################## %>