Pular para o conteúdo principal

LOP012 — Layout LOP012

Visão Geral​

Layout de impressão da família LOP (Ordem de Serviço). Acionado via ExecLayout a partir das telas que imprimem este tipo de documento.

Descrição​

Consulta baseada em ORDEMPRODUCAO, com junção em ORDEMPRODUCAOPEDIDO, ITEM, EMPRESA, PEDIDO, ITEMPEDIDO, PESSOA (+2), filtrada por CD_EMPRESA, NR_LOTEPRODUCAO.

Chamada​

ExecLayout(Connection, [
// 0 - Nome do Layout
// 1 - Cod Empresa
// 2 - Nr Ordem Producao
// 3 - Path Servidor
// 4 - Visualiza -> V ou Imprime -> I
]);

SQL Base​

Producao #1​

SELECT O.CD_EMPRESA, E.NM_EMPRESA, O.NR_ORDEMPRODUCAO , O.CD_ITEM , I.DS_ITEM, O.QT_DESEJADA , O.NR_LOTEPRODUCAO, O.DT_INICIOPRODUCAO, I.SG_UNIDMED ,OPP.NR_PEDIDO, PD.CD_PESSOA ||' - '|| COALESCE ( PE.NM_PESSOA, EE.NM_PESSOA ) NM_PESSOA
FROM ORDEMPRODUCAO O
LEFT JOIN ORDEMPRODUCAOPEDIDO OPP ON (OPP.CD_EMPRESA = O.CD_EMPRESA
AND OPP.CD_EMPRPED = O.CD_EMPRPROD
AND OPP.NR_ORDEMPRODUCAO = O.NR_ORDEMPRODUCAO )
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM)
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA)
LEFT JOIN PEDIDO PD ON (PD.NR_PEDIDO = OPP.NR_PEDIDO
AND PD.CD_EMPRESA = OPP.CD_EMPRESA
AND PD.TP_PEDIDO = OPP.TP_PEDIDO)
LEFT JOIN ITEMPEDIDO IP ON (IP.CD_EMPRESA = PD.CD_EMPRESA
AND IP.NR_PEDIDO = PD.NR_PEDIDO
AND IP.TP_PEDIDO = PD.TP_PEDIDO
AND IP.CD_ITEM = O.CD_ITEM )
LEFT JOIN PESSOA PE ON (PE.CD_PESSOA = PD.CD_PESSOA)
LEFT JOIN PESSOA EE ON (EE.CD_PESSOA = E.CD_PESSOA)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_LOTEPRODUCAO = :NR_LOTEPRODUCAO
ORDER BY O.CD_ITEM CD_EMPRESA 1 NR_LOTEPRODUCAO
SELECT NR_LOTEPRODUCAO, CD_MATERIAPRIMA , DS_MATERIAPRIMA, SG_UNIDMED, QT_ITEMPRODUCAO ,SG_UNIDALT , PS_LIQUIDO, QTDE_NECESSARIA, TP_DESPESA, QTDE_ESTOQUE, QT_ESTOQUEMIN , CASE WHEN (((QT_ITEMPRODUCAO + coalesce (QT_ESTOQUEMIN, 0) )) - (QTDE_ESTOQUE)) > 0 then (( (QT_ITEMPRODUCAO + coalesce (QT_ESTOQUEMIN, 0) )) - (QTDE_ESTOQUE) ) else 0 end compras, ((QTDE_ESTOQUE) - QT_ITEMPRODUCAO ) QT_SALDO
FROM (
SELECT O.NR_LOTEPRODUCAO, IO.CD_MATERIAPRIMA, M.DS_ITEM DS_MATERIAPRIMA, m.SG_UNIDMED, SUM (IO.QT_ITEMPRODUCAO) QT_ITEMPRODUCAO ,M.SG_UNIDALT , M.PS_LIQUIDO, SUM (io.QT_ITEMPRODUCAO) QTDE_NECESSARIA, IO.TP_DESPESA , (rpc.O_QT_SALDO) QTDE_ESTOQUE, coalesce (M.QT_ESTOQUEMIN, 0) QT_ESTOQUEMIN
FROM ORDEMPRODUCAO O
INNER JOIN ITEMORDEMPROD IO ON (O.CD_EMPRESA = IO.CD_EMPRESA
AND O.NR_ORDEMPRODUCAO = IO.NR_ORDEMPRODUCAO)
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA)
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM)
INNER JOIN ITEM M ON (M.CD_ITEM = IO.CD_MATERIAPRIMA)
LEFT JOIN RETORNA_ESTOQUECOMPROMETIDO (o.CD_EMPRESA,io.CD_MATERIAPRIMA,null,null,null) RPC on (1=1)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_LOTEPRODUCAO = :NR_LOTEPRODUCAO
AND IO.TP_DESPESA = 'M'
GROUP BY O.NR_LOTEPRODUCAO, IO.CD_MATERIAPRIMA, M.DS_ITEM , m.SG_UNIDMED, M.SG_UNIDALT , M.PS_LIQUIDO,IO.TP_DESPESA, M.QT_ESTOQUEMIN ,rpc.O_QT_SALDO
ORDER BY IO.CD_MATERIAPRIMA)
ORDER BY CD_MATERIAPRIMA CD_EMPRESA 1 NR_LOTEPRODUCAO

Producao #2​

SELECT O.CD_EMPRESA, E.NM_EMPRESA, O.CD_ITEM , I.DS_ITEM, {#10} SUM (O.QT_DESEJADA ) QT_DESEJADA , O.NR_LOTEPRODUCAO, {#10} O.DT_INICIOPRODUCAO, I.SG_UNIDMED , PD.CD_PESSOA , {#10} COALESCE ( PE.NM_PESSOA, EE.NM_PESSOA ) NM_PESSOA {#10}
FROM ORDEMPRODUCAO O {#10}
LEFT JOIN ORDEMPRODUCAOPEDIDO OPP ON (OPP.CD_EMPRESA = O.CD_EMPRESA {#10}
AND OPP.CD_EMPRPED = O.CD_EMPRPROD {#10}
AND OPP.NR_ORDEMPRODUCAO = O.NR_ORDEMPRODUCAO ) {#10}
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM) {#10}
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA) {#10}
LEFT JOIN PEDIDO PD ON (PD.NR_PEDIDO = OPP.NR_PEDIDO {#10}
AND PD.CD_EMPRESA = OPP.CD_EMPRESA {#10}
AND PD.TP_PEDIDO = OPP.TP_PEDIDO) {#10}
LEFT JOIN ITEMPEDIDO IP ON (IP.CD_EMPRESA = PD.CD_EMPRESA {#10}
AND IP.NR_PEDIDO = PD.NR_PEDIDO {#10}
AND IP.TP_PEDIDO = PD.TP_PEDIDO {#10}
AND IP.CD_ITEM = O.CD_ITEM ) {#10}
LEFT JOIN PESSOA PE ON (PE.CD_PESSOA = PD.CD_PESSOA) {#10}
LEFT JOIN PESSOA EE ON (EE.CD_PESSOA = E.CD_PESSOA) {#10}
WHERE O.CD_EMPRLOTEPROD = {Resultado}

Materia #1​

SELECT NR_LOTEPRODUCAO, CD_MATERIAPRIMA , DS_MATERIAPRIMA, SG_UNIDMED,{#10} QT_ITEMPRODUCAO ,SG_UNIDALT , PS_LIQUIDO,{#10} QTDE_NECESSARIA, TP_DESPESA,{#10} QTDE_ESTOQUE,{#10} QT_ESTOQUEMIN{#10} , CASE WHEN (((QT_ITEMPRODUCAO + coalesce (QT_ESTOQUEMIN, 0) )) - (QTDE_ESTOQUE)){#10} > 0 then (( (QT_ITEMPRODUCAO + coalesce (QT_ESTOQUEMIN, 0) )) - (QTDE_ESTOQUE) ){#10} else 0 end compras,{#10} ((QTDE_ESTOQUE) - QT_ITEMPRODUCAO ) QT_SALDO{#10}
FROM ({#10}
SELECT O.NR_LOTEPRODUCAO,{#10} IO.CD_MATERIAPRIMA, M.DS_ITEM DS_MATERIAPRIMA, m.SG_UNIDMED,{#10} SUM (IO.QT_ITEMPRODUCAO) QT_ITEMPRODUCAO ,M.SG_UNIDALT , M.PS_LIQUIDO,{#10} SUM (io.QT_ITEMPRODUCAO) QTDE_NECESSARIA,{#10} IO.TP_DESPESA , (rpc.O_QT_SALDO) QTDE_ESTOQUE,{#10} coalesce (M.QT_ESTOQUEMIN, 0) QT_ESTOQUEMIN{#10}
FROM ORDEMPRODUCAO O{#10}
INNER JOIN ITEMORDEMPROD IO ON (O.CD_EMPRESA = IO.CD_EMPRESA{#10}
AND O.NR_ORDEMPRODUCAO = IO.NR_ORDEMPRODUCAO){#10}
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA){#10}
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM){#10}
INNER JOIN ITEM M ON (M.CD_ITEM = IO.CD_MATERIAPRIMA){#10}
LEFT JOIN RETORNA_ESTOQUECOMPROMETIDO (o.CD_EMPRESA,io.CD_MATERIAPRIMA,null,null,null) RPC on (1=1){#10}
WHERE O.CD_EMPRLOTEPROD = {RESULTADO}

Producao #3​

SELECT O.CD_EMPRESA, E.NM_EMPRESA, O.CD_ITEM , I.DS_ITEM, {#10} sum (O.QT_DESEJADA ) QT_DESEJADA , O.NR_LOTEPRODUCAO, O.DT_INICIOPRODUCAO, I.SG_UNIDMED {#10}
FROM ORDEMPRODUCAO O {#10}
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM) {#10}
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA)
WHERE O.CD_EMPRESA = {iParametros}

Materia #2​

SELECT NR_LOTEPRODUCAO, CD_MATERIAPRIMA , DS_MATERIAPRIMA, SG_UNIDMED,{#10} QT_ITEMPRODUCAO ,SG_UNIDALT , PS_LIQUIDO,{#10} QTDE_NECESSARIA, TP_DESPESA,{#10} QTDE_ESTOQUE,{#10} QT_ESTOQUEMIN{#10} , CASE WHEN (((QT_ITEMPRODUCAO + coalesce (QT_ESTOQUEMIN, 0) )) - (QTDE_ESTOQUE)){#10} > 0 then (( (QT_ITEMPRODUCAO + coalesce (QT_ESTOQUEMIN, 0) )) - (QTDE_ESTOQUE) ){#10} else 0 end compras,{#10} ((QTDE_ESTOQUE) - QT_ITEMPRODUCAO ) QT_SALDO{#10}
FROM ({#10}
SELECT O.NR_LOTEPRODUCAO,{#10} IO.CD_MATERIAPRIMA, M.DS_ITEM DS_MATERIAPRIMA, m.SG_UNIDMED,{#10} SUM (IO.QT_ITEMPRODUCAO) QT_ITEMPRODUCAO ,M.SG_UNIDALT , M.PS_LIQUIDO,{#10} SUM (io.QT_ITEMPRODUCAO) QTDE_NECESSARIA,{#10} IO.TP_DESPESA , (rpc.O_QT_SALDO) QTDE_ESTOQUE,{#10} coalesce (M.QT_ESTOQUEMIN, 0) QT_ESTOQUEMIN{#10}
FROM ORDEMPRODUCAO O{#10}
INNER JOIN ITEMORDEMPROD IO ON (O.CD_EMPRESA = IO.CD_EMPRESA{#10}
AND O.NR_ORDEMPRODUCAO = IO.NR_ORDEMPRODUCAO){#10}
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA){#10}
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM){#10}
INNER JOIN ITEM M ON (M.CD_ITEM = IO.CD_MATERIAPRIMA){#10}
LEFT JOIN RETORNA_ESTOQUECOMPROMETIDO (o.CD_EMPRESA,io.CD_MATERIAPRIMA,null,null,null) RPC on (1=1){#10}
WHERE O.CD_EMPRESA = {iParametros}

Consulta​

SELECT O.NR_LOTEPRODUCAO, O.CD_EMPRLOTEPROD
FROM ORDEMPRODUCAO O
WHERE O.CD_EMPRESA = {iParametros[1]}
AND O.NR_ORDEMPRODUCAO = {iParametros[2]}

Text #1​

SELECT O.CD_EMPRESA, E.NM_EMPRESA, O.CD_ITEM , I.DS_ITEM, {#10} SUM (O.QT_DESEJADA ) QT_DESEJADA , O.NR_LOTEPRODUCAO, {#10} O.DT_INICIOPRODUCAO, I.SG_UNIDMED , PD.CD_PESSOA , {#10} COALESCE ( PE.NM_PESSOA, EE.NM_PESSOA ) NM_PESSOA {#10}
FROM ORDEMPRODUCAO O {#10}
LEFT JOIN ORDEMPRODUCAOPEDIDO OPP ON (OPP.CD_EMPRESA = O.CD_EMPRESA {#10}
AND OPP.CD_EMPRPED = O.CD_EMPRPROD {#10}
AND OPP.NR_ORDEMPRODUCAO = O.NR_ORDEMPRODUCAO ) {#10}
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM) {#10}
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA) {#10}
LEFT JOIN PEDIDO PD ON (PD.NR_PEDIDO = OPP.NR_PEDIDO {#10}
AND PD.CD_EMPRESA = OPP.CD_EMPRESA {#10}
AND PD.TP_PEDIDO = OPP.TP_PEDIDO) {#10}
LEFT JOIN ITEMPEDIDO IP ON (IP.CD_EMPRESA = PD.CD_EMPRESA {#10}
AND IP.NR_PEDIDO = PD.NR_PEDIDO {#10}
AND IP.TP_PEDIDO = PD.TP_PEDIDO {#10}
AND IP.CD_ITEM = O.CD_ITEM ) {#10}
LEFT JOIN PESSOA PE ON (PE.CD_PESSOA = PD.CD_PESSOA) {#10}
LEFT JOIN PESSOA EE ON (EE.CD_PESSOA = E.CD_PESSOA) {#10}
WHERE O.CD_EMPRLOTEPROD = {Resultado[1] + #10}
AND O.NR_LOTEPRODUCAO = {Resultado[0] + #10}
GROUP BY O.CD_EMPRESA, E.NM_EMPRESA,O.NR_LOTEPRODUCAO , O.CD_ITEM , I.DS_ITEM, NM_PESSOA, {#10} O.DT_INICIOPRODUCAO, I.SG_UNIDMED , PD.CD_PESSOA, PD.CD_PESSOA {#10}
ORDER BY i.DS_ITEM, NM_PESSOA

Text #2​

SELECT NR_LOTEPRODUCAO, CD_MATERIAPRIMA , DS_MATERIAPRIMA, SG_UNIDMED,{#10} QT_ITEMPRODUCAO ,SG_UNIDALT , PS_LIQUIDO,{#10} QTDE_NECESSARIA, TP_DESPESA,{#10} QTDE_ESTOQUE,{#10} QT_ESTOQUEMIN{#10} , CASE WHEN (((QT_ITEMPRODUCAO + coalesce (QT_ESTOQUEMIN, 0) )) - (QTDE_ESTOQUE)){#10} > 0 then (( (QT_ITEMPRODUCAO + coalesce (QT_ESTOQUEMIN, 0) )) - (QTDE_ESTOQUE) ){#10} else 0 end compras,{#10} ((QTDE_ESTOQUE) - QT_ITEMPRODUCAO ) QT_SALDO{#10}
FROM ({#10}
SELECT O.NR_LOTEPRODUCAO,{#10} IO.CD_MATERIAPRIMA, M.DS_ITEM DS_MATERIAPRIMA, m.SG_UNIDMED,{#10} SUM (IO.QT_ITEMPRODUCAO) QT_ITEMPRODUCAO ,M.SG_UNIDALT , M.PS_LIQUIDO,{#10} SUM (io.QT_ITEMPRODUCAO) QTDE_NECESSARIA,{#10} IO.TP_DESPESA , (rpc.O_QT_SALDO) QTDE_ESTOQUE,{#10} coalesce (M.QT_ESTOQUEMIN, 0) QT_ESTOQUEMIN{#10}
FROM ORDEMPRODUCAO O{#10}
INNER JOIN ITEMORDEMPROD IO ON (O.CD_EMPRESA = IO.CD_EMPRESA{#10}
AND O.NR_ORDEMPRODUCAO = IO.NR_ORDEMPRODUCAO){#10}
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA){#10}
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM){#10}
INNER JOIN ITEM M ON (M.CD_ITEM = IO.CD_MATERIAPRIMA){#10}
LEFT JOIN RETORNA_ESTOQUECOMPROMETIDO (o.CD_EMPRESA,io.CD_MATERIAPRIMA,null,null,null) RPC on (1=1){#10}
WHERE O.CD_EMPRLOTEPROD = {RESULTADO[1] + #10}
AND O.NR_LOTEPRODUCAO = {RESULTADO[0] + #10}
AND IO.TP_DESPESA = 'M'{#10}
GROUP BY O.NR_LOTEPRODUCAO, IO.CD_MATERIAPRIMA, M.DS_ITEM , m.SG_UNIDMED,{#10} M.SG_UNIDALT , M.PS_LIQUIDO,IO.TP_DESPESA, M.QT_ESTOQUEMIN ,rpc.O_QT_SALDO{#10}
ORDER BY IO.CD_MATERIAPRIMA){#10}
ORDER BY CD_MATERIAPRIMA

Text #3​

SELECT O.CD_EMPRESA, E.NM_EMPRESA, O.CD_ITEM , I.DS_ITEM, {#10} sum (O.QT_DESEJADA ) QT_DESEJADA , O.NR_LOTEPRODUCAO, O.DT_INICIOPRODUCAO, I.SG_UNIDMED {#10}
FROM ORDEMPRODUCAO O {#10}
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM) {#10}
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA)
WHERE O.CD_EMPRESA = {iParametros[1] + #10}
AND O.NR_ORDEMPRODUCAO = {iParametros[2] + #10}
GROUP BY O.CD_EMPRESA, E.NM_EMPRESA, O.CD_ITEM , I.DS_ITEM, O.NR_LOTEPRODUCAO, O.DT_INICIOPRODUCAO, I.SG_UNIDMED
ORDER BY O.CD_ITEM

Text #4​

SELECT NR_LOTEPRODUCAO, CD_MATERIAPRIMA , DS_MATERIAPRIMA, SG_UNIDMED,{#10} QT_ITEMPRODUCAO ,SG_UNIDALT , PS_LIQUIDO,{#10} QTDE_NECESSARIA, TP_DESPESA,{#10} QTDE_ESTOQUE,{#10} QT_ESTOQUEMIN{#10} , CASE WHEN (((QT_ITEMPRODUCAO + coalesce (QT_ESTOQUEMIN, 0) )) - (QTDE_ESTOQUE)){#10} > 0 then (( (QT_ITEMPRODUCAO + coalesce (QT_ESTOQUEMIN, 0) )) - (QTDE_ESTOQUE) ){#10} else 0 end compras,{#10} ((QTDE_ESTOQUE) - QT_ITEMPRODUCAO ) QT_SALDO{#10}
FROM ({#10}
SELECT O.NR_LOTEPRODUCAO,{#10} IO.CD_MATERIAPRIMA, M.DS_ITEM DS_MATERIAPRIMA, m.SG_UNIDMED,{#10} SUM (IO.QT_ITEMPRODUCAO) QT_ITEMPRODUCAO ,M.SG_UNIDALT , M.PS_LIQUIDO,{#10} SUM (io.QT_ITEMPRODUCAO) QTDE_NECESSARIA,{#10} IO.TP_DESPESA , (rpc.O_QT_SALDO) QTDE_ESTOQUE,{#10} coalesce (M.QT_ESTOQUEMIN, 0) QT_ESTOQUEMIN{#10}
FROM ORDEMPRODUCAO O{#10}
INNER JOIN ITEMORDEMPROD IO ON (O.CD_EMPRESA = IO.CD_EMPRESA{#10}
AND O.NR_ORDEMPRODUCAO = IO.NR_ORDEMPRODUCAO){#10}
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA){#10}
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM){#10}
INNER JOIN ITEM M ON (M.CD_ITEM = IO.CD_MATERIAPRIMA){#10}
LEFT JOIN RETORNA_ESTOQUECOMPROMETIDO (o.CD_EMPRESA,io.CD_MATERIAPRIMA,null,null,null) RPC on (1=1){#10}
WHERE O.CD_EMPRESA = {iParametros[1] + #10}
AND O.NR_LOTEPRODUCAO = {iParametros[2] + #10}
AND IO.TP_DESPESA = 'M'{#10}
GROUP BY O.NR_LOTEPRODUCAO, IO.CD_MATERIAPRIMA, M.DS_ITEM , m.SG_UNIDMED,{#10} M.SG_UNIDALT , M.PS_LIQUIDO,IO.TP_DESPESA, M.QT_ESTOQUEMIN ,rpc.O_QT_SALDO{#10}
ORDER BY IO.CD_MATERIAPRIMA){#10}
ORDER BY CD_MATERIAPRIMA

Tabelas Utilizadas​

TabelaUso
EMPRESAreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMORDEMPRODreferenciada nas queries do layout
ITEMPEDIDOreferenciada nas queries do layout
ORDEMPRODUCAOreferenciada nas queries do layout
ORDEMPRODUCAOPEDIDOreferenciada nas queries do layout
PEDIDOreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
RETORNA_ESTOQUECOMPROMETIDOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOP012/ULOP012.pas
  • DFM: source/LOP012/ULOP012.dfm
  • Package: source/LOP012/LOP012.dpk