MCP - View de Produtos
1. Introdução
Nessa seção de produtos será abordado como é a criação e as informações que retornarão de três Views principais acerca de informações do produto, sendo elas:
V_VT_PRODUTOS - Informações do Cadastro do Produto
V_VT_CATEGORIAS - Informações de Categoria do Produto
V_VT_MARCA - Informações da Marca dos Produtos
V_VT_IMAGEM - Informações da Imagem do Produto
2. Informações do Cadastro do Produto
Os produtos serão obtidos a partir da View V_VT_PRODUTOS, V_VT_PRODUTOSTOT, V_VT_PRODUTOSMULT para que sejam disponibilizados a venda nos canais de vendas. Ela consiste nas seguintes informações:
Campo | Tipo | Obr. | Informação |
---|---|---|---|
categs | VARCHAR2(200) | S | Categoria do Item no Ecommerce |
codigo | VARCHAR2(20 CHAR) | S | Código interno do Item no Construshow |
descricao | CLOB | S | Descrição detalhada Ecommerce (HTML) |
descricaoResumida | VARCHAR2(4000) | S | Descrição resumida Ecommerce (HTML) |
erpId | NUMBER(38) | S | Código interno do Item no Construshow |
quantidade | NUMBER | S | Saldo do Item |
quantidadeMinima | NUMBER | S | Quantidade mínima de estoque |
inativo | NUMBER | S | Produto inativo ou ativo |
nome | VARCHAR2(120) | S | Nome do Produto |
peso | NUMBER | N | Altura do Produto |
dataInicio | DATE | N | Largura do Produto |
dataFim | DATE | N | Tempo de Espera do Produto |
valorPrecoPromocional | NUMBER | N | Preço da Promoção |
referencia | VARCHAR2(60) | S | Código referencial do Produto |
valorPreco | NUMBER | S | Preço do Produto |
volume_length | VARCHAR2(200) | N | Comprimento do Produto |
volume_height | VARCHAR2(200) | N | Altura do Produto |
volume_width | VARCHAR2(200) | N | Largura do Produto |
leadtime | VARCHAR2(200) | N | Tempo de Espera do Produto |
fabricanteId | NUMBER(38) | S | Código da Marca do Produto |
marca | VARCHAR2(80 CHAR) | S | Descrição da Marca do Produto |
url_video | VARCHAR2(200) | N | URL de Vídeo do Produto |
codigoBarras | VARCHAR2(30 CHAR) | S | Código de barras do Produto |
atributos | VARCHAR2(4000) | N | Características do produto |
dtAlteracaoSinc | TIMESTAMP(6) | S | Data da ultima de Sincronização do Produto |
dtAlteracaoSincEstoque | TIMESTAMP(6) | S | Data da ultima de Sincronização do Estoque |
dtAlteracaoSincPreco | TIMESTAMP(6) | S | Data da ultima de Sincronização do Preço |
estabItem | NUMBER(38) | S | Estabelecimento do Item |
keyWords | VARCHAR2(250 CHAR) | N | Palavras Chaves do Produto |
idBandeiraPreco | NUMBER(38) | S | Código da Bandeira de Preço do Produto |
ncm | VARCHAR2(8 CHAR) | S | NCM do Produto |
visibilidade | NUMBER | N | Tipo de Visibilidade do Produto |
unidade | VARCHAR2(6 CHAR) | S | Unidade do Produto |
multiploVenda | NUMBER | S | Múltiplo de Venda do Produto |
custoAquis | NUMBER | N | Custo da última Aquisição |
custoMedio | NUMBER | N | Custo Médio |
prodAgregados | TEXT | N | Produtos Agregados |
prodSimilares | TEXT | N | Produtos Similares |
V_VT_PRODUTOS
CREATE OR REPLACE VIEW VIASOFTVTRINA.V_VT_PRODUTOS ("categs", "codigo", "descricao", "descricaoResumida", "erpId", "quantidade", "quantidadeMinima", "inativo", "nome", "peso", "dataInicio", "dataFim", "valorPrecoPromocional", "referencia", "valorPreco", "volume_length", "volume_height", "volume_width", "leadtime", "fabricanteId", "marca", "url_video", "codigoBarras", "atributos", "dtAlteracaoSinc", "dtAlteracaoSincEstoque", "dtAlteracaoSincPreco", "estabItem", "keyWords", "idBandeiraPreco", "ncm", "visibilidade", "unidade", "multiploVenda", "custoAquis", "custoMedio", "prodAgregados", "prodSimilares") AS
SELECT
ITEECO.CATEGS "categs",
ITEEST.IDITEM "codigo",
ITEECO.HTML "descricao",
COALESCE(TO_CHAR(ITEECO.HTMLRESUMIDO),ITE.INFOADIC) "descricaoResumida",
CAST(ITEEST.IDITEM AS INTEGER) "erpId",
CASE
WHEN VIASOFTMCP.GETSALDOITEMCARR(ITEEST.ESTAB,ITEEST.ESTABITEM,ITEEST.IDITEM,ITEEST.IDESTOQUELOCAL,2,DECODE(COALESCE(ITEREP.ESTABLOCALRET,0),0,ITEEST.ESTAB,ITEREP.ESTABLOCALRET),DECODE(COALESCE(LOCRET.IDESTOQUELOCAL,0),0,ITEEST.IDESTOQUELOCAL,LOCRET.IDESTOQUELOCAL),null,null,COALESCE(WECCON.SDOPRODLOCALRET,'N') ) - COALESCE(ITEECO.QTDEESGOTA,0) < 0 THEN 0
ELSE VIASOFTMCP.GETSALDOITEMCARR(ITEEST.ESTAB,ITEEST.ESTABITEM,ITEEST.IDITEM,ITEEST.IDESTOQUELOCAL,2,DECODE(COALESCE(ITEREP.ESTABLOCALRET,0),0,ITEEST.ESTAB,ITEREP.ESTABLOCALRET),DECODE(COALESCE(LOCRET.IDESTOQUELOCAL,0),0,ITEEST.IDESTOQUELOCAL,LOCRET.IDESTOQUELOCAL),null,null,COALESCE(WECCON.SDOPRODLOCALRET,'N') ) - COALESCE(ITEECO.QTDEESGOTA,0)
END "quantidade",
ITEECO.QTDEESGOTA "quantidadeMinima",
CASE
WHEN ITEEST.USAMIX = 'N' THEN 1
WHEN ITEEST.USAECOMMERCE = 'N' THEN 1
WHEN COALESCE(WECCON.ENVPRODINAT,'N') = 'N' AND COALESCE(ITEREP.INATIVO,' ') IN ('S','A','T') THEN 1
WHEN
CASE
WHEN COALESCE(ITEPRV.WECPRECONORMAL,0) > 0 THEN ITEPRV.WECPRECONORMAL
ELSE VIASOFTSYS.ARREDONDAR(ITEPRV.PRECO * ( COALESCE(ITEPRV.WECPERCPRECO,100) /100),2)
END > 0 THEN 0
ELSE 1
END "inativo",
COALESCE(ITEECO.DESCRICAOECOM,ITE.DESCRICAO) "nome",
COALESCE(ITE.PESOBRUTO,ITE.PESOLIQUIDO,0) "peso",
ITEPRV.WECPROMODTINI "dataInicio",
CASE WHEN COALESCE(ITEPRV.WECTIPOPRESP,'0') = '0' AND ITEPRV.WECPRECOESPECIAL = 0 THEN NULL
WHEN COALESCE(ITEPRV.WECTIPOPRESP,'0') = '1' AND (ITEPRV.OFERTA = 0 OR ITEPRV.WECPERCPRECOESP = 0) THEN NULL
WHEN COALESCE(ITEPRV.WECTIPOPRESP,'0') = '2' AND COALESCE(ITEPRV.WECPRECONORMAL,0) = 0 AND ITEPRV.WECPERCPRECO = 0 THEN NULL
ELSE ITEPRV.WECPROMODTFIN
END "dataFim",
CASE WHEN ITEPRV.WECPROMODTINI IS NOT NULL AND ITEPRV.WECPROMODTFIN IS NOT NULL THEN
CASE COALESCE(ITEPRV.WECTIPOPRESP,'0')
WHEN '0' THEN ITEPRV.WECPRECOESPECIAL
WHEN '1' THEN VIASOFTSYS.ARREDONDAR(ITEPRV.OFERTA * (ITEPRV.WECPERCPRECOESP /100),2)
WHEN '2' THEN VIASOFTSYS.ARREDONDAR(
CASE
WHEN ITEPRV.WECPERCPRECOESP = 0 THEN 0
WHEN COALESCE(ITEPRV.WECPRECONORMAL,0) > 0 THEN ITEPRV.WECPRECONORMAL
ELSE VIASOFTSYS.ARREDONDAR(ITEPRV.PRECO * ( COALESCE(ITEPRV.WECPERCPRECO,100) /100),2)
END * (ITEPRV.WECPERCPRECOESP /100),2)
END
ELSE 0
END "valorPrecoPromocional",
COALESCE(ITEEMP.CODREF,CAST(ITEEST.IDITEM AS VARCHAR2(60))) "referencia",
CASE
WHEN COALESCE(ITEPRV.WECPRECONORMAL,0) > 0 THEN ITEPRV.WECPRECONORMAL
ELSE VIASOFTSYS.ARREDONDAR(ITEPRV.PRECO * ( COALESCE(ITEPRV.WECPERCPRECO,100) /100),2)
END "valorPreco",
CAST(ITE.COMPRIMENTO AS VARCHAR2(200)) "volume_length",
CAST(ITE.ALTURA AS VARCHAR2(200)) "volume_height",
CAST(ITE.LARGURA AS VARCHAR2(200)) "volume_width",
CAST(ITEECO.LEADTIME AS VARCHAR2(200)) "leadtime",
MAR.IDMARCA "fabricanteId",
MAR.DESCRICAO "marca",
ITEECO.URLVIDEO "url_video",
COALESCE(ITE.NROCODBARR,ITE.NROCODBARR1,ITE.NROCODBARR2) "codigoBarras",
(SELECT LISTAGG(C2.ATRIBUTOWEC||'|'||IC2.OPCAO,';') WITHIN GROUP
(ORDER BY IC2.IDCARACTER)
FROM VIASOFTMCP.ITEMCARACTER IC2
INNER JOIN VIASOFTMCP.CARACTER C2
ON C2.IDCARACTER = IC2.IDCARACTER
WHERE C2.ATRIBUTOWEC IS NOT NULL
AND IC2.ESTAB = ITEEST.ESTABITEM
AND IC2.IDITEM = ITEEST.IDITEM) "atributos",
ITE.DTALTERACAOSINC "dtAlteracaoSinc",
ITEEST.DTALTERACAOSINC "dtAlteracaoSincEstoque",
ITEPRV.DTALTERACAOSINC "dtAlteracaoSincPreco",
ITEEST.ESTAB "estabItem",
ITEECO.KEYWORDS "keyWords",
ITEPRV.IDBANDEIRA "idBandeiraPreco",
ITE.NCM "ncm",
CASE
WHEN COALESCE(ITEEST.USAECOMMERCE, 'N') = 'N' THEN 1
ELSE DECODE(COALESCE(ITEECO.VISIBILIDADE, 4), 0, 4, COALESCE(ITEECO.VISIBILIDADE, 4))
END "visibilidade",
CASE
WHEN IT.UNIDADE = 'M2' THEN IT.UNIDADE
ELSE 'UN'
END "unidade",
ITEEMP.MULTIPLOVDA "multiploVenda",
IAQ.CUSTOAQUIS "custoAquis",
VIASOFTMCP.RETORNACUSTOMEDIO(ITEEST.ESTABITEM,ITEEST.IDITEM,SYSDATE) "custoMedio",
(SELECT LISTAGG(IDAGREGADO,',') WITHIN GROUP (ORDER BY IDAGREGADO) "agredados"
FROM VIASOFTMCP.ITEMAGREGADOS IAG
WHERE IAG.IDITEM = ITEEST.IDITEM
AND IAG.ESTAB = ITEEST.ESTABITEM) "prodAgregados",
(SELECT LISTAGG(IDITEM,',') WITHIN GROUP (ORDER BY IDITEM) "similar"
FROM VIASOFTMCP.ITEMCATEGORIA ITCAT
WHERE ITCAT.ESTAB = ITEEST.ESTAB
AND ITCAT.IDSIMILAR = ITECAT.IDSIMILAR
AND ITCAT.IDITEM <> ITEEST.IDITEM) "prodSimilares"
FROM VIASOFTMCP.ITEMESTAB ITEEST
INNER JOIN VIASOFTBASE.ITEM ITE
ON ITE.ESTAB = ITEEST.ESTABITEM
AND ITE.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTBASE.ITEM IT
ON IT.ESTAB = ITEEST.ESTABITEM
AND IT.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTMCP.ITEMCATEGORIA ITECAT
ON ITECAT.ESTAB = ITE.ESTAB
AND ITECAT.IDITEM = ITE.IDITEM
LEFT JOIN VIASOFTBASE.MARCA MAR
ON MAR.IDMARCA = ITECAT.IDMARCA
LEFT JOIN VIASOFTMCP.WECCONFIG WECCON
ON WECCON.ESTABEC = ITEEST.ESTAB
LEFT JOIN VIASOFTMCP.ITEMREPOSICAO ITEREP
ON ITEREP.ESTAB = ITEEST.ESTAB
AND ITEREP.ESTABITEM = ITEEST.ESTABITEM
AND ITEREP.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTMCP.LOCALRETIRADA LOCRET
ON LOCRET.ESTAB = ITEREP.ESTABLOCALRET
AND LOCRET.IDLOCALRETIRADA = ITEREP.IDLOCALRETIRADA
LEFT JOIN VIASOFTBASE.ESTOQUELOCAL ESTLOC
ON ESTLOC.IDESTOQUELOCAL = LOCRET.IDESTOQUELOCAL
AND ESTLOC.ESTAB = ITEREP.ESTABLOCALRET
LEFT JOIN VIASOFTMCP.ITEMMCP ITEMCP
ON ITEMCP.ESTAB = ITEEST.ESTABITEM
AND ITEMCP.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTSYS.FILIAL FIL
ON FIL.ESTAB = ITEEST.ESTAB
LEFT JOIN VIASOFTMCP.ITEMECOMMERCE ITEECO
ON ITEECO.ESTAB = ITE.ESTAB
AND ITEECO.IDITEM = ITE.IDITEM
LEFT JOIN VIASOFTMCP.FILIALCONFCAD FILCON
ON FILCON.ESTAB = ITEEST.ESTAB
LEFT JOIN VIASOFTMCP.ITEMPRVDA ITEPRV
ON ITEPRV.IDBANDEIRA = FILCON.IDBANPRECO
AND ITEPRV.ESTAB = ITE.ESTAB
AND ITEPRV.IDITEM = ITE.IDITEM
LEFT JOIN VIASOFTMCP.ITEMEMP ITEEMP
ON ITEEMP.EMPRESA = FIL.EMPRESA
AND ITEEMP.ESTABITEM = ITEEST.ESTABITEM
AND ITEEMP.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTMCP.FILIALCONFCAD FILCAD
ON FILCAD.ESTAB = ITEEST.ESTAB
LEFT JOIN VIASOFTBASE.ITEMAQUIS IAQ
ON IAQ.ESTAB = ITEEST.ESTABITEM
AND IAQ.IDITEM = ITEEST.IDITEM
AND IAQ.IDBANDEIRA = FILCAD.IDBANCUSTO
WHERE COALESCE(ITEMCP.TINTA, 'X') <> 'P'
ORDER BY ITE.IDITEM;
V_VT_PRODUTOSTOT
CREATE OR REPLACE VIEW VIASOFTVTRINA.V_VT_PRODUTOSTOT AS
SELECT
ITEECO.CATEGS "categs",
ITEEST.IDITEM "codigo",
ITEECO.HTML "descricao",
COALESCE(TO_CHAR(ITEECO.HTMLRESUMIDO),ITE.INFOADIC) "descricaoResumida",
CAST(ITEEST.IDITEM AS INTEGER) "erpId",
CASE
WHEN ITEREP.IDLOCALRETIRADA IS NOT NULL AND (ITEEMP.MULTIPLOVDA > 0 OR ITEEMP.MULTIPLOVDA IS NOT NULL) AND ITE.UNIDADE = 'M2' THEN
COALESCE((SELECT SUM(ES.SALDO)
FROM VIASOFTMCP.ESTOQUESALDO ES
WHERE ES.ESTAB = ITEEST.ESTAB
AND ES.IDITEM = ITEEST.IDITEM
AND ES.IDESTOQUETIPO = 2
AND ES.IDESTOQUELOCAL NOT IN (6,7)), 0)
ELSE
COALESCE((SELECT SUM(ES.SALDO)
FROM VIASOFTMCP.ESTOQUESALDO ES
WHERE ES.ESTAB = ITEEST.ESTAB
AND ES.IDITEM = ITEEST.IDITEM
AND ES.IDESTOQUETIPO = 2), 0)
END "quantidade",
ITEECO.QTDEESGOTA "quantidadeMinima",
CASE
WHEN ITEEST.USAMIX = 'N' THEN 1
WHEN ITEEST.USAECOMMERCE = 'N' THEN 1
WHEN COALESCE(WECCON.ENVPRODINAT,'N') = 'N' AND COALESCE(ITEREP.INATIVO,' ') IN ('S','A','T') THEN 1
WHEN
CASE
WHEN COALESCE(ITEPRV.WECPRECONORMAL,0) > 0 THEN ITEPRV.WECPRECONORMAL
ELSE VIASOFTSYS.ARREDONDAR(ITEPRV.PRECO * ( COALESCE(ITEPRV.WECPERCPRECO,100) /100),2)
END > 0 THEN 0
ELSE 1
END "inativo",
COALESCE(ITEECO.DESCRICAOECOM,ITE.DESCRICAO) "nome",
COALESCE(ITE.PESOBRUTO,ITE.PESOLIQUIDO,0) "peso",
ITEPRV.WECPROMODTINI "dataInicio",
CASE WHEN COALESCE(ITEPRV.WECTIPOPRESP,'0') = '0' AND ITEPRV.WECPRECOESPECIAL = 0 THEN NULL
WHEN COALESCE(ITEPRV.WECTIPOPRESP,'0') = '1' AND (ITEPRV.OFERTA = 0 OR ITEPRV.WECPERCPRECOESP = 0) THEN NULL
WHEN COALESCE(ITEPRV.WECTIPOPRESP,'0') = '2' AND COALESCE(ITEPRV.WECPRECONORMAL,0) = 0 AND ITEPRV.WECPERCPRECO = 0 THEN NULL
ELSE ITEPRV.WECPROMODTFIN
END "dataFim",
CASE WHEN ITEPRV.WECPROMODTINI IS NOT NULL AND ITEPRV.WECPROMODTFIN IS NOT NULL THEN
CASE COALESCE(ITEPRV.WECTIPOPRESP,'0')
WHEN '0' THEN ITEPRV.WECPRECOESPECIAL
WHEN '1' THEN VIASOFTSYS.ARREDONDAR(ITEPRV.OFERTA * (ITEPRV.WECPERCPRECOESP /100),2)
WHEN '2' THEN VIASOFTSYS.ARREDONDAR(
CASE
WHEN ITEPRV.WECPERCPRECOESP = 0 THEN 0
WHEN COALESCE(ITEPRV.WECPRECONORMAL,0) > 0 THEN ITEPRV.WECPRECONORMAL
ELSE VIASOFTSYS.ARREDONDAR(ITEPRV.PRECO * ( COALESCE(ITEPRV.WECPERCPRECO,100) /100),2)
END * (ITEPRV.WECPERCPRECOESP /100),2)
END
ELSE 0
END "valorPrecoPromocional",
COALESCE(ITEEMP.CODREF,CAST(ITEEST.IDITEM AS VARCHAR2(60))) "referencia",
CASE
WHEN COALESCE(ITEPRV.WECPRECONORMAL,0) > 0 THEN ITEPRV.WECPRECONORMAL
ELSE VIASOFTSYS.ARREDONDAR(ITEPRV.PRECO * ( COALESCE(ITEPRV.WECPERCPRECO,100) /100),2)
END "valorPreco",
CAST(ITE.COMPRIMENTO AS VARCHAR2(200)) "volume_length",
CAST(ITE.ALTURA AS VARCHAR2(200)) "volume_height",
CAST(ITE.LARGURA AS VARCHAR2(200)) "volume_width",
CAST(ITEECO.LEADTIME AS VARCHAR2(200)) "leadtime",
MAR.IDMARCA "fabricanteId",
MAR.DESCRICAO "marca",
ITEECO.URLVIDEO "url_video",
COALESCE(ITE.NROCODBARR,ITE.NROCODBARR1,ITE.NROCODBARR2) "codigoBarras",
(SELECT LISTAGG(C2.ATRIBUTOWEC||'|'||IC2.OPCAO,';') WITHIN GROUP
(ORDER BY IC2.IDCARACTER)
FROM VIASOFTMCP.ITEMCARACTER IC2, VIASOFTMCP.CARACTER C2
WHERE C2.IDCARACTER = IC2.IDCARACTER
AND C2.ATRIBUTOWEC IS NOT NULL
AND IC2.ESTAB = ITEEST.ESTABITEM
AND IC2.IDITEM = ITEEST.IDITEM) "atributos",
ITE.DTALTERACAOSINC "dtAlteracaoSinc",
ITEEST.DTALTERACAOSINC "dtAlteracaoSincEstoque",
ITEPRV.DTALTERACAOSINC "dtAlteracaoSincPreco",
ITEEST.ESTAB "estabItem",
ITEECO.KEYWORDS "keyWords",
ITEPRV.IDBANDEIRA "idBandeiraPreco",
ITE.NCM "ncm",
CASE
WHEN COALESCE(ITEEST.USAECOMMERCE, 'N') = 'N' THEN 1
ELSE DECODE(COALESCE(ITEECO.VISIBILIDADE, 4), 0, 4, COALESCE(ITEECO.VISIBILIDADE, 4))
END "visibilidade",
CASE
WHEN IT.UNIDADE = 'M2' THEN IT.UNIDADE
ELSE 'UN'
END "unidade",
ITEEMP.MULTIPLOVDA "multiploVenda",
IAQ.CUSTOAQUIS "custoAquis",
VIASOFTMCP.RETORNACUSTOMEDIO(ITEEST.ESTABITEM,ITEEST.IDITEM,SYSDATE) "custoMedio",
(SELECT LISTAGG(IDAGREGADO,',') WITHIN GROUP (ORDER BY IDAGREGADO) "agredados"
FROM VIASOFTMCP.ITEMAGREGADOS IAG
WHERE IAG.IDITEM = ITEEST.IDITEM
AND IAG.ESTAB = ITEEST.ESTABITEM) "prodAgregados",
(SELECT LISTAGG(IDITEM,',') WITHIN GROUP (ORDER BY IDITEM) "similar"
FROM VIASOFTMCP.ITEMCATEGORIA ITCAT
WHERE ITCAT.ESTAB = ITEEST.ESTAB
AND ITCAT.IDSIMILAR = ITECAT.IDSIMILAR
AND ITCAT.IDITEM <> ITEEST.IDITEM) "prodSimilares"
FROM VIASOFTMCP.ITEMESTAB ITEEST
INNER JOIN VIASOFTBASE.ITEM ITE
ON ITE.ESTAB = ITEEST.ESTABITEM
AND ITE.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTBASE.ITEM IT
ON IT.ESTAB = ITEEST.ESTABITEM
AND IT.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTMCP.ITEMCATEGORIA ITECAT
ON ITECAT.ESTAB = ITE.ESTAB
AND ITECAT.IDITEM = ITE.IDITEM
LEFT JOIN VIASOFTBASE.MARCA MAR
ON MAR.IDMARCA = ITECAT.IDMARCA
LEFT JOIN VIASOFTMCP.WECCONFIG WECCON
ON WECCON.ESTABEC = ITEEST.ESTAB
LEFT JOIN VIASOFTMCP.ITEMREPOSICAO ITEREP
ON ITEREP.ESTAB = ITEEST.ESTAB
AND ITEREP.ESTABITEM = ITEEST.ESTABITEM
AND ITEREP.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTMCP.LOCALRETIRADA LOCRET
ON LOCRET.ESTAB = ITEREP.ESTABLOCALRET
AND LOCRET.IDLOCALRETIRADA = ITEREP.IDLOCALRETIRADA
LEFT JOIN VIASOFTBASE.ESTOQUELOCAL ESTLOC
ON ESTLOC.IDESTOQUELOCAL = LOCRET.IDESTOQUELOCAL
AND ESTLOC.ESTAB = ITEREP.ESTABLOCALRET
LEFT JOIN VIASOFTMCP.ITEMMCP ITEMCP
ON ITEMCP.ESTAB = ITEEST.ESTABITEM
AND ITEMCP.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTSYS.FILIAL FIL
ON FIL.ESTAB = ITEEST.ESTAB
LEFT JOIN VIASOFTMCP.ITEMECOMMERCE ITEECO
ON ITEECO.ESTAB = ITE.ESTAB
AND ITEECO.IDITEM = ITE.IDITEM
LEFT JOIN VIASOFTMCP.FILIALCONFCAD FILCON
ON FILCON.ESTAB = ITEEST.ESTAB
LEFT JOIN VIASOFTMCP.ITEMPRVDA ITEPRV
ON ITEPRV.IDBANDEIRA = FILCON.IDBANPRECO
AND ITEPRV.ESTAB = ITE.ESTAB
AND ITEPRV.IDITEM = ITE.IDITEM
LEFT JOIN VIASOFTMCP.ITEMEMP ITEEMP
ON ITEEMP.EMPRESA = FIL.EMPRESA
AND ITEEMP.ESTABITEM = ITEEST.ESTABITEM
AND ITEEMP.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTMCP.FILIALCONFCAD FILCAD
ON FILCAD.ESTAB = ITEEST.ESTAB
LEFT JOIN VIASOFTBASE.ITEMAQUIS IAQ
ON IAQ.ESTAB = ITEEST.ESTABITEM
AND IAQ.IDITEM = ITEEST.IDITEM
AND IAQ.IDBANDEIRA = FILCAD.IDBANCUSTO
WHERE COALESCE(ITEMCP.TINTA, 'X') <> 'P'
ORDER BY ITE.IDITEM;
V_VT_PRODUTOSMULT
CREATE OR REPLACE VIEW VIASOFTVTRINA.V_VT_PRODUTOSMULT AS
SELECT
ITEECO.CATEGS "categs",
ITEEST.IDITEM "codigo",
ITEECO.HTML "descricao",
COALESCE(TO_CHAR(ITEECO.HTMLRESUMIDO),ITE.INFOADIC) "descricaoResumida",
CAST(ITEEST.IDITEM AS INTEGER) "erpId",
CASE
WHEN ITEREP.IDLOCALRETIRADA IS NOT NULL AND ITEEMP.MULTIPLOVDA > 0 AND IT.UNIDADE = 'M2' THEN
(VIASOFTMCP.GETSALDOITEMCARR (ESTLOC.ESTAB, ITEEST.ESTABITEM, ITEEST.IDITEM, ESTLOC.IDESTOQUELOCAL,3,DECODE(COALESCE(ITEREP.ESTABLOCALRET,0), 0, ITEEST.ESTAB,ITEREP.ESTABLOCALRET),
DECODE(COALESCE(LOCRET.IDESTOQUELOCAL,0), 0, ITEEST.IDESTOQUELOCAL, LOCRET.IDESTOQUELOCAL), null, null, COALESCE(WECCON.SDOPRODLOCALRET, 'N')) - DECODE(WECCON.PLATAFORMA, 1, COALESCE(ITEECO.QTDEESGOTA,0), 0))/ITEEMP.MULTIPLOVDA
WHEN ITEREP.IDLOCALRETIRADA IS NOT NULL THEN
VIASOFTMCP.GETSALDOITEMCARR (ESTLOC.ESTAB, ITEEST.ESTABITEM, ITEEST.IDITEM, ESTLOC.IDESTOQUELOCAL,3,DECODE(COALESCE(ITEREP.ESTABLOCALRET,0), 0, ITEEST.ESTAB,ITEREP.ESTABLOCALRET),
DECODE(COALESCE(LOCRET.IDESTOQUELOCAL,0), 0, ITEEST.IDESTOQUELOCAL, LOCRET.IDESTOQUELOCAL), null, null, COALESCE(WECCON.SDOPRODLOCALRET, 'N')) - DECODE(WECCON.PLATAFORMA, 1, COALESCE(ITEECO.QTDEESGOTA,0), 0)
ELSE
VIASOFTMCP.GETSALDOITEMCARR (ITEEST.ESTAB, ITEEST.ESTABITEM, ITEEST.IDITEM, ITEEST.IDESTOQUELOCAL,3,DECODE(COALESCE(ITEREP.ESTABLOCALRET,0), 0, ITEEST.ESTAB,ITEREP.ESTABLOCALRET),
DECODE(COALESCE(LOCRET.IDESTOQUELOCAL,0), 0, ITEEST.IDESTOQUELOCAL, LOCRET.IDESTOQUELOCAL), null, null, COALESCE(WECCON.SDOPRODLOCALRET, 'N')) - DECODE(WECCON.PLATAFORMA, 1, COALESCE(ITEECO.QTDEESGOTA,0), 0)
END "quantidade",
ITEECO.QTDEESGOTA "quantidadeMinima",
CASE
WHEN ITEEST.USAMIX = 'N' THEN 1
WHEN ITEEST.USAECOMMERCE = 'N' THEN 1
WHEN COALESCE(WECCON.ENVPRODINAT,'N') = 'N' AND COALESCE(ITEREP.INATIVO,' ') IN ('S','A','T') THEN 1
WHEN
CASE
WHEN COALESCE(ITEPRV.WECPRECONORMAL,0) > 0 THEN ITEPRV.WECPRECONORMAL
ELSE VIASOFTSYS.ARREDONDAR(ITEPRV.PRECO * ( COALESCE(ITEPRV.WECPERCPRECO,100) /100),2)
END > 0 THEN 0
ELSE 1
END "inativo",
COALESCE(ITEECO.DESCRICAOECOM,ITE.DESCRICAO) "nome",
COALESCE(ITE.PESOBRUTO,ITE.PESOLIQUIDO,0) "peso",
ITEPRV.WECPROMODTINI "dataInicio",
CASE WHEN COALESCE(ITEPRV.WECTIPOPRESP,'0') = '0' AND ITEPRV.WECPRECOESPECIAL = 0 THEN NULL
WHEN COALESCE(ITEPRV.WECTIPOPRESP,'0') = '1' AND (ITEPRV.OFERTA = 0 OR ITEPRV.WECPERCPRECOESP = 0) THEN NULL
WHEN COALESCE(ITEPRV.WECTIPOPRESP,'0') = '2' AND COALESCE(ITEPRV.WECPRECONORMAL,0) = 0 AND ITEPRV.WECPERCPRECO = 0 THEN NULL
ELSE ITEPRV.WECPROMODTFIN
END "dataFim",
CASE WHEN ITEPRV.WECPROMODTINI IS NOT NULL AND ITEPRV.WECPROMODTFIN IS NOT NULL THEN
CASE COALESCE(ITEPRV.WECTIPOPRESP,'0')
WHEN '0' THEN ITEPRV.WECPRECOESPECIAL
WHEN '1' THEN VIASOFTSYS.ARREDONDAR(ITEPRV.OFERTA * (ITEPRV.WECPERCPRECOESP /100),2)
WHEN '2' THEN VIASOFTSYS.ARREDONDAR(
CASE
WHEN ITEPRV.WECPERCPRECOESP = 0 THEN 0
WHEN COALESCE(ITEPRV.WECPRECONORMAL,0) > 0 THEN ITEPRV.WECPRECONORMAL
ELSE VIASOFTSYS.ARREDONDAR(ITEPRV.PRECO * ( COALESCE(ITEPRV.WECPERCPRECO,100) /100),2)
END * (ITEPRV.WECPERCPRECOESP /100),2)
END
ELSE 0
END "valorPrecoPromocional",
COALESCE(ITEEMP.CODREF,CAST(ITEEST.IDITEM AS VARCHAR2(60))) "referencia",
CASE
WHEN COALESCE(ITEPRV.WECPRECONORMAL,0) > 0 THEN ITEPRV.WECPRECONORMAL
ELSE VIASOFTSYS.ARREDONDAR(ITEPRV.PRECO * ( COALESCE(ITEPRV.WECPERCPRECO,100) /100),2)
END "valorPreco",
CAST(ITE.COMPRIMENTO AS VARCHAR2(200)) "volume_length",
CAST(ITE.ALTURA AS VARCHAR2(200)) "volume_height",
CAST(ITE.LARGURA AS VARCHAR2(200)) "volume_width",
CAST(ITEECO.LEADTIME AS VARCHAR2(200)) "leadtime",
MAR.IDMARCA "fabricanteId",
MAR.DESCRICAO "marca",
ITEECO.URLVIDEO "url_video",
COALESCE(ITE.NROCODBARR,ITE.NROCODBARR1,ITE.NROCODBARR2) "codigoBarras",
(SELECT LISTAGG(C2.ATRIBUTOWEC||'|'||IC2.OPCAO,';') WITHIN GROUP
(ORDER BY IC2.IDCARACTER)
FROM VIASOFTMCP.ITEMCARACTER IC2, VIASOFTMCP.CARACTER C2
WHERE C2.IDCARACTER = IC2.IDCARACTER
AND C2.ATRIBUTOWEC IS NOT NULL
AND IC2.ESTAB = ITEEST.ESTABITEM
AND IC2.IDITEM = ITEEST.IDITEM) "atributos",
ITE.DTALTERACAOSINC "dtAlteracaoSinc",
ITEEST.DTALTERACAOSINC "dtAlteracaoSincEstoque",
ITEPRV.DTALTERACAOSINC "dtAlteracaoSincPreco",
ITEEST.ESTAB "estabItem",
ITEECO.KEYWORDS "keyWords",
ITEPRV.IDBANDEIRA "idBandeiraPreco",
ITE.NCM "ncm",
CASE
WHEN COALESCE(ITEEST.USAECOMMERCE, 'N') = 'N' THEN 1
ELSE DECODE(COALESCE(ITEECO.VISIBILIDADE, 4), 0, 4, COALESCE(ITEECO.VISIBILIDADE, 4))
END "visibilidade",
CASE
WHEN IT.UNIDADE = 'M2' THEN IT.UNIDADE
ELSE 'UN'
END "unidade",
ITEEMP.MULTIPLOVDA "multiploVenda",
IAQ.CUSTOAQUIS "custoAquis",
VIASOFTMCP.RETORNACUSTOMEDIO(ITEEST.ESTABITEM,ITEEST.IDITEM,SYSDATE) "custoMedio",
(SELECT LISTAGG(IDAGREGADO,',') WITHIN GROUP (ORDER BY IDAGREGADO) "agredados"
FROM VIASOFTMCP.ITEMAGREGADOS IAG
WHERE IAG.IDITEM = ITEEST.IDITEM
AND IAG.ESTAB = ITEEST.ESTABITEM) "prodAgregados",
(SELECT LISTAGG(IDITEM,',') WITHIN GROUP (ORDER BY IDITEM) "similar"
FROM VIASOFTMCP.ITEMCATEGORIA ITCAT
WHERE ITCAT.ESTAB = ITEEST.ESTAB
AND ITCAT.IDSIMILAR = ITECAT.IDSIMILAR
AND ITCAT.IDITEM <> ITEEST.IDITEM) "prodSimilares"
FROM VIASOFTMCP.ITEMESTAB ITEEST
INNER JOIN VIASOFTBASE.ITEM ITE
ON ITE.ESTAB = ITEEST.ESTABITEM
AND ITE.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTBASE.ITEM IT
ON IT.ESTAB = ITEEST.ESTABITEM
AND IT.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTMCP.ITEMCATEGORIA ITECAT
ON ITECAT.ESTAB = ITE.ESTAB
AND ITECAT.IDITEM = ITE.IDITEM
LEFT JOIN VIASOFTBASE.MARCA MAR
ON MAR.IDMARCA = ITECAT.IDMARCA
LEFT JOIN VIASOFTMCP.WECCONFIG WECCON
ON WECCON.ESTABEC = ITEEST.ESTAB
LEFT JOIN VIASOFTMCP.ITEMREPOSICAO ITEREP
ON ITEREP.ESTAB = ITEEST.ESTAB
AND ITEREP.ESTABITEM = ITEEST.ESTABITEM
AND ITEREP.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTMCP.LOCALRETIRADA LOCRET
ON LOCRET.ESTAB = ITEREP.ESTABLOCALRET
AND LOCRET.IDLOCALRETIRADA = ITEREP.IDLOCALRETIRADA
LEFT JOIN VIASOFTBASE.ESTOQUELOCAL ESTLOC
ON ESTLOC.IDESTOQUELOCAL = LOCRET.IDESTOQUELOCAL
AND ESTLOC.ESTAB = ITEREP.ESTABLOCALRET
LEFT JOIN VIASOFTMCP.ITEMMCP ITEMCP
ON ITEMCP.ESTAB = ITEEST.ESTABITEM
AND ITEMCP.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTSYS.FILIAL FIL
ON FIL.ESTAB = ITEEST.ESTAB
LEFT JOIN VIASOFTMCP.ITEMECOMMERCE ITEECO
ON ITEECO.ESTAB = ITE.ESTAB
AND ITEECO.IDITEM = ITE.IDITEM
LEFT JOIN VIASOFTMCP.FILIALCONFCAD FILCON
ON FILCON.ESTAB = ITEEST.ESTAB
LEFT JOIN VIASOFTMCP.ITEMPRVDA ITEPRV
ON ITEPRV.IDBANDEIRA = FILCON.IDBANPRECO
AND ITEPRV.ESTAB = ITE.ESTAB
AND ITEPRV.IDITEM = ITE.IDITEM
LEFT JOIN VIASOFTMCP.ITEMEMP ITEEMP
ON ITEEMP.EMPRESA = FIL.EMPRESA
AND ITEEMP.ESTABITEM = ITEEST.ESTABITEM
AND ITEEMP.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTMCP.FILIALCONFCAD FILCAD
ON FILCAD.ESTAB = ITEEST.ESTAB
LEFT JOIN VIASOFTBASE.ITEMAQUIS IAQ
ON IAQ.ESTAB = ITEEST.ESTABITEM
AND IAQ.IDITEM = ITEEST.IDITEM
AND IAQ.IDBANDEIRA = FILCAD.IDBANCUSTO
WHERE COALESCE(ITEMCP.TINTA, 'X') <> 'P'
ORDER BY ITE.IDITEM;
3. Informações de Categoria do Produto
As categorias dos produtos serão obtidos a partir da View V_VT_CATEGORIAS. Ela consiste nas seguintes informações:
Campo | Tipo | Obr. | Informação |
---|---|---|---|
erpId | NUMBER(38) | S | Código da Categoria |
nome | VARCHAR2(40) | S | Descrição da Categoria |
parent | NUMBER | S | Nó Pai |
dtAlteracaoSinc | TIMESTAMP(6) | S | Data da ultima Sincronização |
4. Informações da Marca dos Produtos
As categorias dos produtos serão obtidos a partir da View V_VT_MARCA. Ela consiste nas seguintes informações:
Campo | Tipo | Obr. | Informação |
---|---|---|---|
erpId | NUMBER(38) | S | Código da Marca |
nome | VARCHAR2(80 CHAR) | S | Descrição da Marca |
dtAlteracaoSinc | TIMESTAMP(6) | S | Data da última Sincronização |
5. Informações da Imagem do Produto
As categorias dos produtos serão obtidos a partir da View V_VT_IMAGEM. Ela consiste nas seguintes informações:
Campo | Tipo | Obr. | Informação |
---|---|---|---|
estabItem | NUMBER(38) | S | Estabelecimento do Item |
erpId | VARCHAR2(20 CHAR) | S | Código do Item no ERP |
imageId | NUMBER(38) | S | Código da Imagem |
fileName | VARCHAR2(500 CHAR) | S | Nome do arquivo |
image | BLOB | S | Imagem |
type | VARCHAR2(10 CHAR) | S | Tipo |
label | VARCHAR2(255) | S | Nome da Imagem |
fileNameECommerce | VARCHAR2(500 CHAR) | S | Nome do arquivo no Ecommerce |
dtAlteracaoSinc | TIMESTAMP(6) | S | Data da ultima sincronização |
nome | VARCHAR2(120) | S | Nome |