Skip to content

Instantly share code, notes, and snippets.

@AndyDaSilva52
Last active August 4, 2020 18:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AndyDaSilva52/9b7a7e69f39062791e7e618cd5c6e3eb to your computer and use it in GitHub Desktop.
Save AndyDaSilva52/9b7a7e69f39062791e7e618cd5c6e3eb to your computer and use it in GitHub Desktop.
#MegaERP - View que mostra a Origem da Reserva de Estoque #Mega
CREATE OR REPLACE FORCE VIEW "MGCLI"."CLI_VW_EST_MOVSUM_RESERVA" ("RN", "FIL_IN_CODIGO", "PRO_IN_CODIGO", "MVS_IN_RESERVA", "MVS_RE_QUANTIDADE", "RSV_CH_ORIGEM", "RSV_CH_ORIGEMDESC", "RSV_ST_DOCUMENTO", "RSV_DT_DOCUMENTO", "RSV_DT_MOVIMENTO", "RSV_ST_SITUACAO") AS
SELECT
"RN",
"FIL_IN_CODIGO",
"PRO_IN_CODIGO",
"MVS_IN_RESERVA",
"MVS_RE_QUANTIDADE",
"RSV_CH_ORIGEM",
CASE rsv_ch_origem
WHEN 'B' THEN
rsv_ch_origem || ' - Baixa de Requisições'
WHEN 'P' THEN
rsv_ch_origem || ' - Produção/Manufatura'
WHEN 'D' THEN
rsv_ch_origem || ' - Distribuição'
WHEN 'R' THEN
rsv_ch_origem || ' - Recebimento de Mercadorias'
WHEN 'F' THEN
rsv_ch_origem || ' - Frota'
WHEN 'M' THEN
rsv_ch_origem || ' - Manual'
WHEN 'A' THEN
rsv_ch_origem || ' - Aviso de Recebimento'
WHEN 'L' THEN
rsv_ch_origem || ' - Aviso de Lançamento'
WHEN 'I' THEN
rsv_ch_origem || ' - Inventário'
WHEN 'T' THEN
rsv_ch_origem || ' - Ajuste de Nota de Terceiro'
WHEN 'G' THEN
rsv_ch_origem || ' - Agrícola'
WHEN 'C' THEN
rsv_ch_origem || ' - Balança'
WHEN 'E' THEN
rsv_ch_origem || ' - Desmontagem'
ELSE
rsv_ch_origem
END AS "RSV_CH_ORIGEMDESC",
"RSV_ST_DOCUMENTO",
"RSV_DT_DOCUMENTO",
"RSV_DT_MOVIMENTO",
CASE
WHEN rsv_ch_origem = 'P' THEN
(
SELECT
ord_st_situacao
FROM
mgman.pro_ordens ord
LEFT JOIN mgman.pro_demanda_dep dde ON dde.org_tab_in_codigo = ord.org_tab_in_codigo
AND dde.org_pad_in_codigo = ord.org_pad_in_codigo
AND dde.org_in_codigo = ord.org_in_codigo
AND dde.org_tau_st_codigo = ord.org_tau_st_codigo
AND dde.ord_tab_in_codigo = ord.ord_tab_in_codigo
AND dde.ord_seq_in_codigo = ord.ord_seq_in_codigo
AND dde.ord_in_codigo = ord.ord_in_codigo
WHERE
ord.org_in_codigo = m.org_in_codigo
AND dde.com_in_codigo = m.pro_in_codigo
AND dde.dde_in_reserva = m.mvs_in_reserva
)
ELSE
NULL
END "RSV_ST_SITUACAO"
FROM
(
SELECT
ROW_NUMBER() OVER(
PARTITION BY mvs.org_in_codigo, mvs.pro_in_codigo, mvs.mvs_in_reserva
ORDER BY
rsv.rsv_dt_movimento DESC
) rn,
mvs.org_in_codigo,
mvs.fil_in_codigo,
mvs.pro_in_codigo,
mvs.mvs_in_reserva,
rsv.rsv_ch_origem,
rsv.rsv_st_documento,
rsv.rsv_dt_documento,
rsv.rsv_dt_movimento,
mvs.mvs_re_quantidade
FROM
(
SELECT
m.org_in_codigo,
m.fil_in_codigo,
m.pro_in_codigo,
m.mvs_in_reserva,
SUM(m.mvs_re_quantidade) mvs_re_quantidade
FROM
mgadm.est_movsumarizado m
WHERE
m.mvs_in_reserva <> 0
GROUP BY
m.org_in_codigo,
m.fil_in_codigo,
m.pro_in_codigo,
m.mvs_in_reserva
) mvs
LEFT JOIN (
SELECT
p.*
FROM
(
SELECT
m.org_in_codigo,
m.mvt_st_numdoc rsv_st_documento,
m.mvt_dt_documento rsv_dt_documento,
m.mvt_dt_movimento rsv_dt_movimento,
m.mvt_ch_origem rsv_ch_origem,
m.pro_in_codigo,
lm.mvl_in_reserva rsv_in_reserva
FROM
mgadm.est_movimento m
INNER JOIN mgadm.est_lotesmovimento lm ON m.org_tab_in_codigo = lm.org_tab_in_codigo
AND m.org_pad_in_codigo = lm.org_pad_in_codigo
AND m.org_in_codigo = lm.org_in_codigo
AND m.org_tau_st_codigo = lm.org_tau_st_codigo
AND m.ser_tab_in_codigo = lm.ser_tab_in_codigo
AND m.ser_in_sequencia = lm.ser_in_sequencia
AND m.mvt_in_lancam = lm.mvt_in_lancam
) p
) rsv ON rsv.org_in_codigo = mvs.org_in_codigo
AND rsv.pro_in_codigo = mvs.pro_in_codigo
AND rsv.rsv_in_reserva = mvs.mvs_in_reserva
WHERE
mvs.mvs_in_reserva <> 0
) m
WHERE
m.rn <= 1;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment