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
| Tabela | Uso |
|---|---|
EMPRESA | referenciada nas queries do layout |
ITEM | referenciada nas queries do layout |
ITEMORDEMPROD | referenciada nas queries do layout |
ITEMPEDIDO | referenciada nas queries do layout |
ORDEMPRODUCAO | referenciada nas queries do layout |
ORDEMPRODUCAOPEDIDO | referenciada nas queries do layout |
PEDIDO | referenciada nas queries do layout |
PESSOA | referenciada nas queries do layout |
RETORNA_ESTOQUECOMPROMETIDO | referenciada nas queries do layout |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LOP012/ULOP012.pas - DFM:
source/LOP012/ULOP012.dfm - Package:
source/LOP012/LOP012.dpk