//valida produtos repitidos
var produtos_repetidos = false;
var produtos = [];
for (var i = 0; i < e.PaginaCandidatoVariacao.length; i++) {
produtos.push(e.PaginaCandidatoVariacao[i].IdProduto);
}
var produtos_filtrados = produtos.filter(function (este, i) {
return produtos.indexOf(este) == i;
});
produtos_repetidos = (produtos_filtrados.length == produtos.length);
if (!produtos_repetidos) {
strMensagemErro.push([Candidato.objetosHtml.txtBuscaVariacao.attr("id"), "Existem produtos repetidos."]);
}
//valida produtos repitidos
quarta-feira, 20 de agosto de 2014
Como fazer um SELECT em um XML no SQL SERVER
Como fazer um SELECT em um XML no SQL SERVER
DECLARE @CodigoReferencia VARCHAR(50),
@PrecoAnterior DECIMAL(10,2),
@PrecoVenda DECIMAL(10,2),
@PrecoCusto DECIMAL(10,2),
@IdSku INTEGER,
@skus AS XML
SET @skus = '<sku>
<CodigoReferencia>519871703</CodigoReferencia>
<PrecoAnterior>161.88</PrecoAnterior>
<PrecoVenda>171.88</PrecoVenda>
</sku>'
DECLARE cursor_xml_sku CURSOR FOR
SELECT
@skus.value('(/sku//CodigoReferencia/node())[1]', 'VARCHAR(50)') as CodigoReferencia,
@skus.value('(/sku//PrecoAnterior/node())[1]', 'DECIMAL(10,2)') as PrecoAnterior,
@skus.value('(/sku//PrecoVenda/node())[1]', 'DECIMAL(10,2)') as PrecoVenda
FROM @skus.nodes('/sku') as ParamValues(VALOR)
-- Abrindo Cursor para leitura - cursor_xml_sku
OPEN cursor_xml_sku
-- Lendo a próxima linha - cursor_xml_sku
FETCH NEXT FROM cursor_xml_sku INTO @CodigoReferencia, @PrecoAnterior, @PrecoVenda
-- Percorrendo linhas do cursor (enquanto houverem) - cursor_xml_sku
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE cursor_sku CURSOR FOR
SELECT IdSKU,PrecoCusto FROM Sku WHERE CodigoReferencia = @CodigoReferencia
-- Abrindo Cursor para leitura - cursor_sku
OPEN cursor_sku
-- Lendo a próxima linha - cursor_sku
FETCH NEXT FROM cursor_sku INTO @IdSKU, @PrecoCusto
-- Percorrendo linhas do cursor (enquanto houverem) - cursor_sku
WHILE @@FETCH_STATUS = 0
BEGIN
-- Validações
IF (@PrecoCusto < @PrecoAnterior AND @PrecoCusto < @PrecoVenda)
BEGIN
SELECT @PrecoCusto, @PrecoAnterior, @PrecoVenda, @IdSKU
-- Atualizar Preço de Venda e Preço Anterior
UPDATE Sku
SET PrecoAnterior = @PrecoAnterior,
PrecoVenda = @PrecoVenda
WHERE IdSKU = @IdSku
END
-- Lendo a próxima linha - cursor_sku
FETCH NEXT FROM cursor_sku INTO @IdSKU, @PrecoCusto
END
-- Fechando Cursor para leitura - cursor_sku
CLOSE cursor_sku
-- Desalocando o cursor - cursor_sku
DEALLOCATE cursor_sku
-- Lendo a próxima linha - cursor_xml_sku
FETCH NEXT FROM cursor_xml_sku INTO @CodigoReferencia, @PrecoAnterior, @PrecoVenda
END
-- Fechando Cursor para leitura - cursor_xml_sku
CLOSE cursor_xml_sku
-- Desalocando o cursor - cursor_xml_sku
DEALLOCATE cursor_xml_sku
DECLARE @CodigoReferencia VARCHAR(50),
@PrecoAnterior DECIMAL(10,2),
@PrecoVenda DECIMAL(10,2),
@PrecoCusto DECIMAL(10,2),
@IdSku INTEGER,
@skus AS XML
SET @skus = '<sku>
<CodigoReferencia>519871703</CodigoReferencia>
<PrecoAnterior>161.88</PrecoAnterior>
<PrecoVenda>171.88</PrecoVenda>
</sku>'
DECLARE cursor_xml_sku CURSOR FOR
SELECT
@skus.value('(/sku//CodigoReferencia/node())[1]', 'VARCHAR(50)') as CodigoReferencia,
@skus.value('(/sku//PrecoAnterior/node())[1]', 'DECIMAL(10,2)') as PrecoAnterior,
@skus.value('(/sku//PrecoVenda/node())[1]', 'DECIMAL(10,2)') as PrecoVenda
FROM @skus.nodes('/sku') as ParamValues(VALOR)
-- Abrindo Cursor para leitura - cursor_xml_sku
OPEN cursor_xml_sku
-- Lendo a próxima linha - cursor_xml_sku
FETCH NEXT FROM cursor_xml_sku INTO @CodigoReferencia, @PrecoAnterior, @PrecoVenda
-- Percorrendo linhas do cursor (enquanto houverem) - cursor_xml_sku
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE cursor_sku CURSOR FOR
SELECT IdSKU,PrecoCusto FROM Sku WHERE CodigoReferencia = @CodigoReferencia
-- Abrindo Cursor para leitura - cursor_sku
OPEN cursor_sku
-- Lendo a próxima linha - cursor_sku
FETCH NEXT FROM cursor_sku INTO @IdSKU, @PrecoCusto
-- Percorrendo linhas do cursor (enquanto houverem) - cursor_sku
WHILE @@FETCH_STATUS = 0
BEGIN
-- Validações
IF (@PrecoCusto < @PrecoAnterior AND @PrecoCusto < @PrecoVenda)
BEGIN
SELECT @PrecoCusto, @PrecoAnterior, @PrecoVenda, @IdSKU
-- Atualizar Preço de Venda e Preço Anterior
UPDATE Sku
SET PrecoAnterior = @PrecoAnterior,
PrecoVenda = @PrecoVenda
WHERE IdSKU = @IdSku
END
-- Lendo a próxima linha - cursor_sku
FETCH NEXT FROM cursor_sku INTO @IdSKU, @PrecoCusto
END
-- Fechando Cursor para leitura - cursor_sku
CLOSE cursor_sku
-- Desalocando o cursor - cursor_sku
DEALLOCATE cursor_sku
-- Lendo a próxima linha - cursor_xml_sku
FETCH NEXT FROM cursor_xml_sku INTO @CodigoReferencia, @PrecoAnterior, @PrecoVenda
END
-- Fechando Cursor para leitura - cursor_xml_sku
CLOSE cursor_xml_sku
-- Desalocando o cursor - cursor_xml_sku
DEALLOCATE cursor_xml_sku
Assinar:
Postagens (Atom)