Histórico da Página
...
Essa rotina permite ajustar o saldo do produto e seu Kardex, de acordo com a opção de processamento selecionada. Cada opção tem uma finalidade e ocasionará resultados diferentes. Deve ser selecionada apenas a opção que atenda a sua necessidade:
Opção 1 - Ajuste de Kardex Endereço
...
Essa opção pode ser utilizada quando o saldo por endereço WMS (D14) está correto, porém, o Kardex encontra-se com divergência.
Opção 2 - Ajuste de Estoque Endereço
Objetivo
Realizar o ajuste do saldo por endereço WMS (D14) e do Kardex (D13), com base no saldo em estoque (SB2 ou SB8).
...
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
DECLARE @DataFechamento DATE; SET @DataFechamento = '20191218'; DECLARE @Produto VARCHAR(15); SET @Produto = 'PC'; DECLARE @Armazem VARCHAR(2); SET @Armazem = '02'; SELECT TOT.TOT_LOCAL ,TOT.TOT_ENDER ,TOT.TOT_PRDORI ,TOT.TOT_PRODUT ,TOT.TOT_LOTECT ,TOT.TOT_NUMLOT ,TOT.TOT_NUMSER ,TOT.TOT_IDUNIT ,TOT.TOT_QTDEST - ((TOT.TOT_QTDINI + TOT.TOT_QTDENT) - TOT.TOT_QTDSAI) DIFERENCA_D14_D13 FROM ( SELECT TOT_LOCAL ,TOT_ENDER ,TOT_PRDORI ,TOT_PRODUT ,TOT_LOTECT ,TOT_NUMLOT ,TOT_NUMSER ,TOT_IDUNIT ,CASE WHEN FCH.FCH_DATA IS NULL THEN '19800101' ELSE FCH.FCH_DATA END TOT_DATA ,CAST (( CASE WHEN SLD_QTDEST IS NULL THEN 0 ELSE SLD_QTDEST END ) AS DECIMAL(12, 3)) TOT_QTDEST ,CAST (( CASE WHEN FCH.FCH_SALDO IS NULL THEN 0 ELSE FCH.FCH_SALDO END ) AS DECIMAL(12, 3)) TOT_QTDINI ,CAST (( CASE WHEN ENT.ENT_SALDO IS NULL THEN 0 ELSE ENT.ENT_SALDO END ) AS DECIMAL(12, 3)) TOT_QTDENT ,CAST (( CASE WHEN SAI.SAI_SALDO IS NULL THEN 0 ELSE SAI.SAI_SALDO END ) AS DECIMAL(12, 3)) TOT_QTDSAI FROM ( SELECT D14.D14_LOCAL TOT_LOCAL ,D14.D14_ENDER TOT_ENDER ,D14.D14_PRDORI TOT_PRDORI ,D14.D14_PRODUT TOT_PRODUT ,D14.D14_LOTECT TOT_LOTECT ,D14.D14_NUMLOT TOT_NUMLOT ,D14.D14_NUMSER TOT_NUMSER ,D14.D14_IDUNIT TOT_IDUNIT FROM D14990 D14 WHERE D14.D14_FILIAL = '01' AND D14.D_E_L_E_T_ = ' ' UNION ALL SELECT D13.D13_LOCAL TOT_LOCAL ,D13.D13_ENDER TOT_ENDER ,D13.D13_PRDORI TOT_PRDORI ,D13.D13_PRODUT TOT_PRODUT ,D13.D13_LOTECT TOT_LOTECT ,D13.D13_NUMLOT TOT_NUMLOT ,D13.D13_NUMSER TOT_NUMSER ,D13.D13_IDUNIT TOT_IDUNIT FROM D13990 D13 WHERE D13.D13_FILIAL = '01' AND D13.D_E_L_E_T_ = ' ' ) TOT LEFT JOIN ( SELECT D14.D14_LOCAL SLD_LOCAL ,D14.D14_ENDER SLD_ENDER ,D14.D14_PRDORI SLD_PRDORI ,D14.D14_PRODUT SLD_PRODUT ,D14.D14_LOTECT SLD_LOTECT ,D14.D14_NUMLOT SLD_NUMLOT ,D14.D14_NUMSER SLD_NUMSER ,D14.D14_IDUNIT SLD_IDUNIT ,D14.D14_QTDEST SLD_QTDEST FROM D14990 D14 WHERE D14.D14_FILIAL = '01' AND D14.D_E_L_E_T_ = ' ' ) SLD ON SLD.SLD_LOCAL = TOT.TOT_LOCAL AND SLD.SLD_ENDER = TOT.TOT_ENDER AND SLD.SLD_PRDORI = TOT.TOT_PRDORI AND SLD.SLD_PRODUT = TOT.TOT_PRODUT AND SLD.SLD_LOTECT = TOT.TOT_LOTECT AND SLD.SLD_NUMLOT = TOT.TOT_NUMLOT AND SLD.SLD_NUMSER = TOT.TOT_NUMSER AND SLD.SLD_IDUNIT = TOT.TOT_IDUNIT LEFT JOIN ( SELECT MAX(D15.D15_DATA) FCH_DATA, , D15.D15_LOCAL FCH_LOCAL, , D15.D15_ENDER FCH_ENDER, , D15.D15_PRDORI FCH_PRDORI, , D15.D15_PRODUT FCH_PRODUT, , D15.D15_LOTECT FCH_LOTECT, , D15.D15_NUMLOT FCH_NUMLOT, , D15.D15_NUMSER FCH_NUMSER, , D15.D15_IDUNIT FCH_IDUNIT, , D15.D15_QINI FCH_SALDO FROM D15990 FROM D15990 D15 WHERE D15.D15_FILIAL = '01' AND D15.D15_DATA = @DataFechamento AND D15.D_E_L_E_T_ = ' ' GROUP BY D15.D15_LOCAL ,D15.D15_ENDER ,D15.D15_PRDORI ,D15.D15_PRODUT ,D15.D15_LOTECT ,D15.D15_NUMLOT ,D15.D15_NUMSER ,D15.D15_IDUNIT ,D15.D15_QINI ) FCH ON FCH.FCH_LOCAL = TOT.TOT_LOCAL AND FCH.FCH_ENDER = TOT.TOT_ENDER AND FCH.FCH_PRDORI = TOT.TOT_PRDORI AND FCH.FCH_PRODUT = TOT.TOT_PRODUT AND FCH.FCH_LOTECT = TOT.TOT_LOTECT AND FCH.FCH_NUMLOT = TOT.TOT_NUMLOT AND FCH.FCH_NUMSER = TOT.TOT_NUMSER AND FCH.FCH_IDUNIT = TOT.TOT_IDUNIT LEFT JOIN ( SELECT D13.D13_LOCAL ENT_LOCAL ,D13.D13_ENDER ENT_ENDER ,D13.D13_PRDORI ENT_PRDORI ,D13.D13_PRODUT ENT_PRODUT ,D13.D13_LOTECT ENT_LOTECT ,D13.D13_NUMLOT ENT_NUMLOT ,D13.D13_NUMSER ENT_NUMSER ,D13.D13_IDUNIT ENT_IDUNIT ,SUM(D13.D13_QTDEST) ENT_SALDO FROM D13990 D13 WHERE D13.D13_FILIAL = '01' AND D13.D13_DTESTO > @DataFechamento AND D13.D13_TM = '499' AND D13.D13_USACAL <> '2' AND D13.D_E_L_E_T_ = ' ' GROUP BY D13.D13_LOCAL ,D13.D13_ENDER ,D13.D13_PRDORI ,D13.D13_PRODUT ,D13.D13_LOTECT ,D13.D13_NUMLOT ,D13.D13_NUMSER ,D13.D13_IDUNIT ) ENT ON ENT.ENT_LOCAL = TOT.TOT_LOCAL AND ENT.ENT INNER JOIN (SELECT MAX(D15_DATA) D15_DATA, D15_LOCAL, D15_ENDER, D15_PRDORI, D15_PRODUT, D15_LOTECT, D15_NUMLOT, D15_NUMSER, D15_IDUNIT FROM D15990 D153 WHERE D153.D15_FILIAL = '01' AND D153.D15_DATA <= @DataFechamento AND D153.D_E_L_E_T_ = ' ' GROUP BY D153.D15_LOCAL, D153.D15_ENDER, D153.D15_PRDORI, D153.D15_PRODUT, D153.D15_LOTECT, D153.D15_NUMLOT, D153.D15_NUMSER, D153.D15_IDUNIT) D15MAX ON D15MAX.D15_LOCAL = D15.D15_LOCAL AND D15MAX.D15_ENDER = D15.D15_ENDER AND D15MAX.D15_PRDORI = D15.D15_PRDORI AND D15MAX.D15_PRODUT = D15.D15_PRODUT AND D15MAX.D15_LOTECT = D15.D15_LOTECT AND D15MAX.D15_NUMLOT = D15.D15_NUMLOT AND D15MAX.D15_NUMSER = D15.D15_NUMSER AND D15MAX.D15_IDUNIT = D15.D15_IDUNIT AND D15MAX.D15_DATA = D15.D15_DATA WHERE D15.D15_FILIAL = '01' AND D15.D_E_L_E_T_ = ' ' ) FCH ON FCH.FCH_LOCAL = TOT.TOT_LOCAL AND FCH.FCH_ENDER = TOT.TOT_ENDER AND ENTFCH.ENTFCH_PRDORI = TOT.TOT_PRDORI AND ENTFCH.ENTFCH_PRODUT = TOT.TOT_PRODUT AND ENTFCH.ENTFCH_LOTECT = TOT.TOT_LOTECT AND ENTFCH.ENTFCH_NUMLOT = TOT.TOT_NUMLOT AND ENTFCH.ENTFCH_NUMSER = TOT.TOT_NUMSER AND ENTFCH.ENTFCH_IDUNIT = TOT.TOT_IDUNIT LEFT JOIN ( SELECT D13.D13_LOCAL SAIENT_LOCAL ,D13.D13_ENDER SAIENT_ENDER ,D13.D13_PRDORI SAIENT_PRDORI ,D13.D13_PRODUT SAIENT_PRODUT ,D13.D13_LOTECT SAIENT_LOTECT ,D13.D13_NUMLOT SAIENT_NUMLOT ,D13.D13_NUMSER SAIENT_NUMSER ,D13.D13_IDUNIT SAIENT_IDUNIT ,SUM(D13.D13_QTDEST) SAIENT_SALDO FROM D13990 D13 WHERE D13.D13_FILIAL = '01' AND D13.D13_DTESTO > @DataFechamento (SELECT COALESCE(MAX(D151.D15_DATA),' ') AND D13.D13_TM = '999' FROM D15990 D151 AND D13.D13_USACAL <> '2' ANDWHERE D13D151.D_E_L_E_T_D15_FILIAL = ' 01' GROUP BY D13.D13_LOCAL AND D151.D15_DATA <= @DataFechamento ,D13.D13_ENDER ,D13.D13_PRDORI ,D13.D13_PRODUT ,D13.D13_LOTECT ,D13.D13_NUMLOT ,AND D151.D_E_L_E_T_ = ' ' AND D151.D15_ENDER = D13.D13_NUMSERENDER ,D13.D13_IDUNIT ) SAI ON SAI.SAI_LOCALAND D151.D15_PRDORI = TOTD13.TOTD13_LOCALPRDORI AND SAID151.SAID15_ENDERPRODUT = TOTD13.TOTD13_ENDERPRODUT AND SAID151.SAID15_PRDORILOTECT = TOTD13.TOTD13_PRDORILOTECT AND SAI.SAI_PRODUT = TOT.TOT_PRODUT AND SAI.SAI_LOTECT = TOT.TOT_LOTECT AND SAID151.SAID15_NUMLOT = TOTD13.TOTD13_NUMLOT AND SAID151.SAID15_NUMSER = TOTD13.TOTD13_NUMSER AND SAID151.SAID15_IDUNIT = TOTD13.TOTD13_IDUNIT) GROUP BY TOT.TOT_LOCAL ,TOT.TOT_ENDER ,TOT.TOT_PRDORI ,TOT.TOT_PRODUT ,TOT.TOT_LOTECT ,TOT.TOT_NUMLOT ,TOT.TOT_NUMSER ,TOT.TOT_IDUNIT ,FCH.FCH_DATA ,SLD.SLD_QTDEST ,FCH.FCH_SALDO ,ENT.ENT_SALDO ,SAI.SAI_SALDO ) TOT WHERE (TOT.TOT_QTDEST - ((TOT.TOT_QTDINI + TOT.TOT_QTDENT) - TOT.TOT_QTDSAI)) <> 0 AND TOT.TOT_LOCAL = @Armazem AND TOT.TOT_PRDORI = @Produto |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
DECLARE @Produto VARCHAR(15);
SET @Produto = 'PC';
SELECT SUM(D14.D14_QTDEST) D14_QTDEST
,SB2.B2_QATU
,D14.D14_LOCAL
,D14.D14_PRODUT
FROM D14990 D14
INNER JOIN SB2990 SB2 ON SB2.B2_FILIAL = '01'
AND SB2.B2_COD = D14.D14_PRODUT
AND SB2.B2_LOCAL = D14.D14_LOCAL
AND SB2.D_E_L_E_T_ = ' '
WHERE D14.D_E_L_E_T_ = ' '
AND D14.D14_PRODUT = @Produto
GROUP BY D14.D14_PRODUT
,D14.D14_LOCAL
,B2_QATU
HAVING CAST (SUM(D14.D14_QTDEST) AS DECIMAL(12, 3)) <> CAST (SB2.B2_QATU AS DECIMAL(12, 3))
|
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
DECLARE @Produto VARCHAR(15); SET @Produto = 'PC'; SELECT SUM(D14.D14_QTDEST) D14_QTDEST ,SB8.B8_SALDO ,D14.D14_LOCAL ,D14.D14_PRODUT FROM D14990 D14 INNER JOIN ( SELECT SUM(SB8.B8_SALDO) B8_SALDO ,SB8.B8_PRODUTO ,SB8.B8_LOCAL FROM SB8990 SB8 WHERE SB8.B8_FILIAL = '01' AND SB8.D_E_L_E_T_ = ' ' GROUP BY SB8.B8_PRODUTO ,SB8.B8_LOCAL ) SB8 ON SB8.B8_PRODUTO = D14.D14_PRDORI AND SB8.B8_LOCAL = D14.D14_LOCAL WHERE D14.D14_PRODUT = @Produto AND D14.D_ AND D13.D13_TM = '499' AND D13.D13_USACAL <> '2' AND D13.D_E_L_E_T_ = ' ' GROUP BY D13.D13_LOCAL ,D13.D13_ENDER ,D13.D13_PRDORI ,D13.D13_PRODUT ,D13.D13_LOTECT ,D13.D13_NUMLOT ,D13.D13_NUMSER ,D13.D13_IDUNIT ) ENT ON ENT.ENT_LOCAL = TOT.TOT_LOCAL AND ENT.ENT_ENDER = TOT.TOT_ENDER AND ENT.ENT_PRDORI = TOT.TOT_PRDORI AND ENT.ENT_PRODUT = TOT.TOT_PRODUT AND ENT.ENT_LOTECT = TOT.TOT_LOTECT AND ENT.ENT_NUMLOT = TOT.TOT_NUMLOT AND ENT.ENT_NUMSER = TOT.TOT_NUMSER AND ENT.ENT_IDUNIT = TOT.TOT_IDUNIT LEFT JOIN ( SELECT D13.D13_LOCAL SAI_LOCAL ,D13.D13_ENDER SAI_ENDER ,D13.D13_PRDORI SAI_PRDORI ,D13.D13_PRODUT SAI_PRODUT ,D13.D13_LOTECT SAI_LOTECT ,D13.D13_NUMLOT SAI_NUMLOT ,D13.D13_NUMSER SAI_NUMSER ,D13.D13_IDUNIT SAI_IDUNIT ,SUM(D13.D13_QTDEST) SAI_SALDO FROM D13990 D13 WHERE D13.D13_FILIAL = '01' AND D13.D13_DTESTO > (SELECT COALESCE(MAX(D151.D15_DATA),' ') FROM D15990 D151 WHERE D151.D15_FILIAL = '01' AND D151.D15_DATA <= @DataFechamento AND D151.D_E_L_E_T_ = ' ' AND D151.D15_ENDER = D13.D13_ENDER AND D151.D15_PRDORI = D13.D13_PRDORI AND D151.D15_PRODUT = D13.D13_PRODUT AND D151.D15_LOTECT = D13.D13_LOTECT AND D151.D15_NUMLOT = D13.D13_NUMLOT AND D151.D15_NUMSER = D13.D13_NUMSER AND D151.D15_IDUNIT = D13.D13_IDUNIT) AND D13.D13_TM = '999' AND D13.D13_USACAL <> '2' AND D13.D_E_L_E_T_ = ' ' GROUP BY D14D13.D14D13_PRODUTLOCAL ,D14D13.D14D13_LOCALENDER ,SB8D13.B8D13_SALDO HAVING CAST (SUM(D14.D14_QTDEST) AS DECIMAL(12, 3)) <> CAST (SB8.B8_SALDO AS DECIMAL(12, 3)) |
03. TELA PARÂMETROS
Principais Campos e Parâmetros
PRDORI
,D13.D13_PRODUT
,D13.D13_LOTECT
,D13.D13_NUMLOT
,D13.D13_NUMSER
,D13.D13_IDUNIT
) SAI ON SAI.SAI_LOCAL = TOT.TOT_LOCAL
AND SAI.SAI_ENDER = TOT.TOT_ENDER
AND SAI.SAI_PRDORI = TOT.TOT_PRDORI
AND SAI.SAI_PRODUT = TOT.TOT_PRODUT
AND SAI.SAI_LOTECT = TOT.TOT_LOTECT
AND SAI.SAI_NUMLOT = TOT.TOT_NUMLOT
AND SAI.SAI_NUMSER = TOT.TOT_NUMSER
AND SAI.SAI_IDUNIT = TOT.TOT_IDUNIT
GROUP BY TOT.TOT_LOCAL
,TOT.TOT_ENDER
,TOT.TOT_PRDORI
,TOT.TOT_PRODUT
,TOT.TOT_LOTECT
,TOT.TOT_NUMLOT
,TOT.TOT_NUMSER
,TOT.TOT_IDUNIT
,FCH.FCH_DATA
,SLD.SLD_QTDEST
,FCH.FCH_SALDO
,ENT.ENT_SALDO
,SAI.SAI_SALDO
) TOT
WHERE (TOT.TOT_QTDEST - ((TOT.TOT_QTDINI + TOT.TOT_QTDENT) - TOT.TOT_QTDSAI)) <> 0
AND TOT.TOT_LOCAL = @Armazem
AND TOT.TOT_PRDORI = @Produto
|
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
DECLARE @Produto VARCHAR(15);
SET @Produto = 'PC';
SELECT SUM(D14.D14_QTDEST) D14_QTDEST
,SB2.B2_QATU
,D14.D14_LOCAL
,D14.D14_PRODUT
FROM D14990 D14
INNER JOIN SB2990 SB2 ON SB2.B2_FILIAL = '01'
AND SB2.B2_COD = D14.D14_PRODUT
AND SB2.B2_LOCAL = D14.D14_LOCAL
AND SB2.D_E_L_E_T_ = ' '
WHERE D14.D_E_L_E_T_ = ' '
AND D14.D14_PRODUT = @Produto
GROUP BY D14.D14_PRODUT
,D14.D14_LOCAL
,B2_QATU
HAVING CAST (SUM(D14.D14_QTDEST) AS DECIMAL(12, 3)) <> CAST (SB2.B2_QATU AS DECIMAL(12, 3))
|
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
DECLARE @Produto VARCHAR(15);
SET @Produto = 'PC';
SELECT SUM(D14.D14_QTDEST) D14_QTDEST
,SB8.B8_SALDO
,D14.D14_LOCAL
,D14.D14_PRODUT
FROM D14990 D14
INNER JOIN (
SELECT SUM(SB8.B8_SALDO) B8_SALDO
,SB8.B8_PRODUTO
,SB8.B8_LOCAL
FROM SB8990 SB8
WHERE SB8.B8_FILIAL = '01'
AND SB8.D_E_L_E_T_ = ' '
GROUP BY SB8.B8_PRODUTO
,SB8.B8_LOCAL
) SB8 ON SB8.B8_PRODUTO = D14.D14_PRDORI
AND SB8.B8_LOCAL = D14.D14_LOCAL
WHERE D14.D14_PRODUT = @Produto
AND D14.D_E_L_E_T_ = ' '
GROUP BY D14.D14_PRODUT
,D14.D14_LOCAL
,SB8.B8_SALDO
HAVING CAST (SUM(D14.D14_QTDEST) AS DECIMAL(12, 3)) <> CAST (SB8.B8_SALDO AS DECIMAL(12, 3)) |
03. TELA PARÂMETROS
Principais Campos e Parâmetros
Campo | Descrição | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Armazém de? Armazém até? | Armazéns que deverão ser considerados na seleção para a análise do Kardex | ||||||||||
Campo | Descrição | ||||||||||
Armazém de? Armazém até? | Armazéns que deverão ser considerados na seleção para a análise do Kardex por endereço.
| ||||||||||
Produto de? | Produtos origem que deverão ser considerados na análise do Kardex por endereço.
| ||||||||||
Análise / ajuste? | Forma como deverá ser efetuada a análise ou o ajuste:
| ||||||||||
Lote? | Código do lote do produto que deverá ser considerado na análise do Kardex por endereço.
| ||||||||||
Sublote? | Código do sublote do produto que deverá ser considerado na análise do kardexpor endereço.
| este campo permanecer
| lotes
| Número de série? | Número de série que deverá ser considerado|||||||
Produto de? | Produtos origem que deverão ser considerados na análise do Kardex por endereço.
| este campo permanecer
| números de série.Unitizador? | ||||||||
Informações | |||||||||||
|
| ||||||||||
Análise / ajuste? | Forma como deverá ser efetuada a análise ou o ajuste:
|
04. TABELAS UTILIZADAS
- D14 - Estoque por Endereço WMS
- D13 - Movto Estoque por Endereço WMS
- D12 - Movimentos Internos WMS
- DCF - Ordem de Serviço
HTML |
---|
<!-- esconder o menu --> <style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } </style> |
05. ASSUNTOS RELACIONADOS
- Ajustes de quantidades de entradas e saídas previstas: Análise das Quantidades Reservadas WMS (WMSA585 - SIGAWMS)