Pular para o conteúdo principal

LOP003 — Layout LOP003

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 ITEMORDEMPROD, EMPRESA, ITEM, filtrada por CD_EMPRESA, NR_ORDEMPRODUCAO, TP_DESPESA.

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, M.SG_UNIDMED, O.QT_PRODUZIDA, O.DT_INICIOPRODUCAO, O.DT_FIMPRODUCAO, O.TP_ORDEMPRODUCAO, IO.CD_MATERIAPRIMA, M.DS_ITEM DS_MATERIAPRIMA, IO.QT_ITEMPRODUCAO, IO.TP_DESPESA
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)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORDEMPRODUCAO = :NR_ORDEMPRODUCAO
AND IO.TP_DESPESA = 'M' CD_EMPRESA 1 NR_ORDEMPRODUCAO

Producao #2​

SELECT O.CD_EMPRESA, E.NM_EMPRESA, O.NR_ORDEMPRODUCAO, O.NR_LOTEPRODUCAO, O.CD_EMPRPROD, O.CD_ITEM, O.TP_PRODUCAO, O.NR_VERSAO, O.CD_ITEM, I.DS_ITEM, M.SG_UNIDMED, O.QT_PRODUZIDA, O.DT_INICIOPRODUCAO, O.DT_FIMPRODUCAO, O.TP_ORDEMPRODUCAO, IO.CD_MATERIAPRIMA, M.DS_ITEM DS_MATERIAPRIMA, IO.QT_ITEMPRODUCAO, IO.TP_DESPESA, M.SG_UNIDALT, CASE WHEN COALESCE(M.PS_LIQUIDO,0) <= 0 THEN NULL ELSE CAST(IO.QT_ITEMPRODUCAO AS NUMERIC(15,5)) / M.PS_LIQUIDO END QTDE, CAST(CASE WHEN I.SG_UNIDMED = M.SG_UNIDMED THEN (IO.QT_ITEMPRODUCAO * 100) / O.QT_PRODUZIDA ELSE ((IO.QT_ITEMPRODUCAO * M.PS_LIQUIDO) * 100) / O.QT_PRODUZIDA END AS NUMERIC(15,2)) PC_PARTICIPACAO, P.NR_PEDIDO, S.NM_PESSOA||COALESCE(' - '||S.NM_FANTASIA,'') NM_PESSOA, COALESCE(I.CD_FORNECEDOR1,I.CD_FORNECEDOR2) CD_FORNECEDOR, I.DS_ESPECIFICACAO, P.DS_OBSERVACAO, SM.DS_MUNICIPIO||' - '||SM.SG_ESTADO DS_MUNICIPIO, SE.DS_ENDERECO||COALESCE(', '||SE.NR_ENDERECO,'')||COALESCE(' '||SE.DS_BAIRRO,'') DS_ENDERECO, COALESCE(SE.NR_FONE, SE.NR_FAX) NR_FONE, T.DS_TAREFA
FROM ORDEMPRODUCAO O
LEFT JOIN TAREFAPRODUCAO TP ON (TP.CD_EMPRESA = O.CD_EMPRPROD
AND TP.CD_ITEM = O.CD_ITEM
AND TP.NR_VERSAO = O.NR_VERSAO
AND TP.TP_PRODUCAO = O.TP_PRODUCAO)
LEFT JOIN TAREFAITEM T ON (T.NR_TAREFA = TP.NR_TAREFA)
INNER JOIN ORDEMPRODUCAOPEDIDO D ON (D.CD_EMPRESA = O.CD_EMPRESA
AND D.NR_ORDEMPRODUCAO = O.NR_ORDEMPRODUCAO)
INNER JOIN PEDIDO P ON (P.CD_EMPRESA = D.CD_EMPRPED
AND P.NR_PEDIDO = D.NR_PEDIDO
AND P.TP_PEDIDO = D.TP_PEDIDO)
INNER JOIN PESSOA S ON (S.CD_PESSOA = P.CD_PESSOA)
INNER JOIN ENDERECOPESSOA SE ON (SE.CD_PESSOA = P.CD_PESSOA
AND SE.CD_ENDERECO = P.CD_ENDERECO)
INNER JOIN MUNICIPIO SM ON (SM.CD_MUNICIPIO = SE.CD_MUNICIPIO)
INNER JOIN ITEMPEDIDO IP ON (IP.CD_EMPRESA = D.CD_EMPRESA
AND IP.NR_PEDIDO = D.NR_PEDIDO
AND IP.TP_PEDIDO = D.TP_PEDIDO
AND IP.CD_ITEM = O.CD_ITEM)
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA)
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM)
LEFT JOIN ITEMORDEMPROD IO ON (O.CD_EMPRESA = IO.CD_EMPRESA
AND O.NR_ORDEMPRODUCAO = IO.NR_ORDEMPRODUCAO
AND IO.TP_DESPESA = 'M'
AND IO.CD_MATERIAPRIMA = (
SELECT X.CD_ITEM
FROM ITEM X
WHERE X.CD_ITEM = IO.CD_MATERIAPRIMA
AND X.TP_ITEM = 'I'))
LEFT JOIN ITEM M ON (M.CD_ITEM = IO.CD_MATERIAPRIMA)

Producao #3​

{frmLOP003}

Producao #4​

{frmLOP003}

Text​

SELECT O.CD_EMPRESA, E.NM_EMPRESA, O.NR_ORDEMPRODUCAO, O.NR_LOTEPRODUCAO, O.CD_EMPRPROD, O.CD_ITEM, O.TP_PRODUCAO, O.NR_VERSAO, O.CD_ITEM, I.DS_ITEM, M.SG_UNIDMED, O.QT_PRODUZIDA, O.DT_INICIOPRODUCAO, O.DT_FIMPRODUCAO, O.TP_ORDEMPRODUCAO, IO.CD_MATERIAPRIMA, M.DS_ITEM DS_MATERIAPRIMA, IO.QT_ITEMPRODUCAO, IO.TP_DESPESA, M.SG_UNIDALT, CASE WHEN COALESCE(M.PS_LIQUIDO,0) <= 0 THEN NULL ELSE CAST(IO.QT_ITEMPRODUCAO AS NUMERIC(15,5)) / M.PS_LIQUIDO END QTDE, CAST(CASE WHEN I.SG_UNIDMED = M.SG_UNIDMED THEN (IO.QT_ITEMPRODUCAO * 100) / O.QT_PRODUZIDA ELSE ((IO.QT_ITEMPRODUCAO * M.PS_LIQUIDO) * 100) / O.QT_PRODUZIDA END AS NUMERIC(15,2)) PC_PARTICIPACAO, P.NR_PEDIDO, S.NM_PESSOA||COALESCE(' - '||S.NM_FANTASIA,'') NM_PESSOA, COALESCE(I.CD_FORNECEDOR1,I.CD_FORNECEDOR2) CD_FORNECEDOR, I.DS_ESPECIFICACAO, P.DS_OBSERVACAO, SM.DS_MUNICIPIO||' - '||SM.SG_ESTADO DS_MUNICIPIO, SE.DS_ENDERECO||COALESCE(', '||SE.NR_ENDERECO,'')||COALESCE(' '||SE.DS_BAIRRO,'') DS_ENDERECO, COALESCE(SE.NR_FONE, SE.NR_FAX) NR_FONE, T.DS_TAREFA
FROM ORDEMPRODUCAO O
LEFT JOIN TAREFAPRODUCAO TP ON (TP.CD_EMPRESA = O.CD_EMPRPROD
AND TP.CD_ITEM = O.CD_ITEM
AND TP.NR_VERSAO = O.NR_VERSAO
AND TP.TP_PRODUCAO = O.TP_PRODUCAO)
LEFT JOIN TAREFAITEM T ON (T.NR_TAREFA = TP.NR_TAREFA)
INNER JOIN ORDEMPRODUCAOPEDIDO D ON (D.CD_EMPRESA = O.CD_EMPRESA
AND D.NR_ORDEMPRODUCAO = O.NR_ORDEMPRODUCAO)
INNER JOIN PEDIDO P ON (P.CD_EMPRESA = D.CD_EMPRPED
AND P.NR_PEDIDO = D.NR_PEDIDO
AND P.TP_PEDIDO = D.TP_PEDIDO)
INNER JOIN PESSOA S ON (S.CD_PESSOA = P.CD_PESSOA)
INNER JOIN ENDERECOPESSOA SE ON (SE.CD_PESSOA = P.CD_PESSOA
AND SE.CD_ENDERECO = P.CD_ENDERECO)
INNER JOIN MUNICIPIO SM ON (SM.CD_MUNICIPIO = SE.CD_MUNICIPIO)
INNER JOIN ITEMPEDIDO IP ON (IP.CD_EMPRESA = D.CD_EMPRESA
AND IP.NR_PEDIDO = D.NR_PEDIDO
AND IP.TP_PEDIDO = D.TP_PEDIDO
AND IP.CD_ITEM = O.CD_ITEM)
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA)
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM)
LEFT JOIN ITEMORDEMPROD IO ON (O.CD_EMPRESA = IO.CD_EMPRESA
AND O.NR_ORDEMPRODUCAO = IO.NR_ORDEMPRODUCAO
AND IO.TP_DESPESA = 'M'
AND IO.CD_MATERIAPRIMA = (
SELECT X.CD_ITEM
FROM ITEM X
WHERE X.CD_ITEM = IO.CD_MATERIAPRIMA
AND X.TP_ITEM = 'I'))
LEFT JOIN ITEM M ON (M.CD_ITEM = IO.CD_MATERIAPRIMA)

Consulta​

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

Tabelas Utilizadas​

TabelaUso
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMORDEMPRODreferenciada nas queries do layout
ITEMPEDIDOreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
ORDEMPRODUCAOreferenciada nas queries do layout
ORDEMPRODUCAOPEDIDOreferenciada nas queries do layout
PEDIDOreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
TAREFAITEMreferenciada nas queries do layout
TAREFAPRODUCAOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOP003/ULOP003.pas
  • DFM: source/LOP003/ULOP003.dfm
  • Package: source/LOP003/LOP003.dpk