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 |
CREATE OR REPLACE VIEW VIASOFTVTRINA.V_VT_CATEGORIAS ("erpId", "nome", "parent", "dtAlteracaoSinc") AS
SELECT
IDCATEG "erpId",
DESCRICAO "nome",
COALESCE(IDCATEGTOP, 0) "parent",
DTALTERACAOSINC "dtAlteracaoSinc"
FROM VIASOFTMCP.WECCATEG
ORDER BY
IDCATEG,
IDCATEGTOP;
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 |
CREATE OR REPLACE VIEW VIASOFTVTRINA.V_VT_MARCA ("erpId", "nome", "dtAlteracaoSinc") AS
SELECT
IDMARCA "erpId",
DESCRICAO "nome",
DTALTERACAOSINC "dtAlteracaoSinc"
FROM VIASOFTBASE.MARCA;
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 |
CREATE OR REPLACE VIEW VIASOFTVTRINA.V_VT_IMAGEM ("estabItem", "erpId", "imageId", "fileName", "image", "type", "label", "fileNameECommerce", "dtAlteracaoSinc", "nome") AS
SELECT
ITEEST.ESTAB "estabItem",
ITEIMA.IDITEM "erpId",
ITEIMA.IDITEMIMAGEM "imageId",
ITEIMA.FILENAME "fileName",
ITEIMA.IMAGEM "image",
ITEIMA.WETIPO "type",
ITEIMA.WEIMAGENAME "label",
ITEIMA.FILENAMEECOMMERCE "fileNameECommerce",
ITEIMA.DTALTERACAOSINC "dtAlteracaoSinc",
COALESCE(ITEECO.DESCRICAOECOM, ITE.DESCRICAO) "nome"
FROM VIASOFTMCP.ITEMIMAGEM ITEIMA
LEFT JOIN VIASOFTMCP.ITEMESTAB ITEEST
ON ITEEST.ESTABITEM = ITEIMA.ESTAB
AND ITEEST.IDITEM = ITEIMA.IDITEM
LEFT JOIN VIASOFTMCP.ITEMMCP ITEMCP
ON ITEMCP.ESTAB = ITEEST.ESTABITEM
AND ITEMCP.IDITEM = ITEEST.IDITEM
LEFT JOIN VIASOFTMCP.ITEMECOMMERCE ITEECO
ON ITEECO.IDITEM = ITEIMA.IDITEM
AND ITEECO.ESTAB = ITEIMA.ESTAB
JOIN VIASOFTBASE.ITEM ITE
ON ITE.IDITEM = ITEIMA.IDITEM
AND ITE.ESTAB = ITEIMA.ESTAB
WHERE COALESCE(ITEMCP.TINTA, 'X') <> 'P';