MCP - View de Estoques

1. Introdução

Nessa seção de estoque será abordado como é a criação e as informações que retornarão de três Views principais acerca de informações dos saldos dos produtos, sendo que possuímos alguns cenários diferentes de estoque que podem ser utilizados. Sendo elas:

  • V_VT_ESTOQUE - Retorna o estoque de um tipo de saldo e o local de estoque padrão do produto sem fazer a conversão do múltiplo de venda;

  • V_VT_ESTOQUETOT - Retorna o estoque de um tipo de saldo e soma o saldo de todos os locais e faz a conversão do múltiplo de venda;

  • V_VT_ESTOQUEMULT - Retorna o estoque de um tipo de saldo e o local de estoque padrão do produto fazendo a conversão do múltiplo de venda;

 

2. Informações de Estoque

Apensa de ter mais que um View de Estoque as colunas que retornam são as mesmas, conforme pode ser verificado abaixo:

Campo

Tipo

Obr.

Informação

Campo

Tipo

Obr.

Informação

erpId

NUMBER(38)

S

Código do Item

quantidade

NUMBER

S

Quantidade em estoque

quantidadeMinima

NUMBER

N

Quantidade mínima de estoque

estabItem

NUMBER(38)

S

Estabelecimento do Item

dtAlteracaoSinc

TIMESTAMP(6)

S

Data da última sincronização

 

3. Views

Abaixo segue o SQL de cada View de Estoque

V_VT_ESTOQUE

CREATE OR REPLACE VIEW VIASOFTVTRINA.V_VT_ESTOQUE ("erpId", "quantidade", "quantidadeMinima", "estabItem", "dtAlteracaoSinc") AS SELECT CAST(ITEEST.IDITEM AS INTEGER) "erpId", 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')) - DECODE(WECCON.PLATAFORMA, 1, COALESCE(ITEECO.QTDEESGOTA,0), 0) "quantidade", ITEECO.QTDEESGOTA "quantidadeMinima", ITEEST.ESTAB "estabItem", ITEEST.DTALTERACAOSINC "dtAlteracaoSinc" FROM VIASOFTMCP.ITEMESTAB ITEEST LEFT JOIN VIASOFTMCP.ITEMMCP ITEMCP ON ITEMCP.ESTAB = ITEEST.ESTABITEM AND ITEMCP.IDITEM = ITEEST.IDITEM 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 VIASOFTMCP.ITEMECOMMERCE ITEECO ON ITEECO.ESTAB = ITEEST.ESTABITEM AND ITEECO.IDITEM = ITEEST.IDITEM WHERE COALESCE(ITEMCP.TINTA, 'X') <> 'P';

 

V_VT_ESTOQUETOT

CREATE OR REPLACE VIEW VIASOFTVTRINA.V_VT_ESTOQUETOT ("erpId", "quantidade", "quantidadeMinima", "estabItem", "dtAlteracaoSinc") AS SELECT CAST(ITEEST.IDITEM AS INTEGER) "erpId", CASE WHEN ITEREP.IDLOCALRETIRADA IS NOT NULL AND (ITEEMP.MULTIPLOVDA > 0 OR ITEEMP.MULTIPLOVDA IS NOT NULL) AND IT.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), 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 AND ES.IDESTOQUELOCAL NOT IN (6,7)), 0) END "quantidade", ITEECO.QTDEESGOTA "quantidadeMinima", ITEEST.ESTAB "estabItem", ITEEST.DTALTERACAOSINC "dtAlteracaoSinc" FROM VIASOFTMCP.ITEMESTAB ITEEST LEFT JOIN VIASOFTMCP.ITEMMCP ITEMCP ON ITEMCP.ESTAB = ITEEST.ESTABITEM AND ITEMCP.IDITEM = ITEEST.IDITEM LEFT JOIN VIASOFTBASE.ITEM IT ON IT.ESTAB = ITEEST.ESTABITEM AND IT.IDITEM = ITEEST.IDITEM 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 VIASOFTMCP.ITEMECOMMERCE ITEECO ON ITEECO.ESTAB = ITEEST.ESTABITEM AND ITEECO.IDITEM = ITEEST.IDITEM LEFT JOIN VIASOFTSYS.FILIAL FIL ON FIL.ESTAB = ITEEST.ESTAB LEFT JOIN VIASOFTMCP.ITEMEMP ITEEMP ON ITEEMP.EMPRESA = FIL.EMPRESA AND ITEEMP.ESTABITEM = ITEEST.ESTABITEM AND ITEEMP.IDITEM = ITEEST.IDITEM WHERE COALESCE(ITEMCP.TINTA, 'X') <> 'P';

 

V_VT_ESTOQUEMULT

CREATE OR REPLACE VIEW VIASOFTVTRINA.V_VT_ESTOQUEMULT ("erpId", "quantidade", "quantidadeMinima", "estabItem", "dtAlteracaoSinc") AS SELECT 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", ITEEST.ESTAB "estabItem", ITEEST.DTALTERACAOSINC "dtAlteracaoSinc" FROM VIASOFTMCP.ITEMESTAB ITEEST LEFT JOIN VIASOFTMCP.ITEMMCP ITEMCP ON ITEMCP.ESTAB = ITEEST.ESTABITEM AND ITEMCP.IDITEM = ITEEST.IDITEM LEFT JOIN VIASOFTBASE.ITEM IT ON IT.ESTAB = ITEEST.ESTABITEM AND IT.IDITEM = ITEEST.IDITEM 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.ITEMECOMMERCE ITEECO ON ITEECO.ESTAB = ITEEST.ESTABITEM AND ITEECO.IDITEM = ITEEST.IDITEM LEFT JOIN VIASOFTSYS.FILIAL FIL ON FIL.ESTAB = ITEEST.ESTAB LEFT JOIN VIASOFTMCP.ITEMEMP ITEEMP ON ITEEMP.EMPRESA = FIL.EMPRESA AND ITEEMP.ESTABITEM = ITEEST.ESTABITEM AND ITEEMP.IDITEM = ITEEST.IDITEM WHERE COALESCE(ITEMCP.TINTA, 'X') <> 'P';