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
| Tabela | Uso |
|---|---|
EMPRESA | referenciada nas queries do layout |
ENDERECOPESSOA | referenciada nas queries do layout |
ITEM | referenciada nas queries do layout |
ITEMORDEMPROD | referenciada nas queries do layout |
ITEMPEDIDO | referenciada nas queries do layout |
MUNICIPIO | 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 |
TAREFAITEM | referenciada nas queries do layout |
TAREFAPRODUCAO | referenciada nas queries do layout |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LOP003/ULOP003.pas - DFM:
source/LOP003/ULOP003.dfm - Package:
source/LOP003/LOP003.dpk