LOP023 — Layout LOP023
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, SECAO, GRUPO, SUBGRUPO (+12), filtrada por CD_EMPRLOTEPROD, NR_LOTEPRODUCAO, 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.NR_LOTEPRODUCAO, O.CD_EMPRPROD, O.CD_ITEM, O.TP_PRODUCAO, O.NR_VERSAO, lo.DS_LOCAL, tl.DS_TIPOLOCAL, lom.DS_LOCAL DS_LOCALMP, tlm.DS_TIPOLOCAL DS_TIPOLOCALMP, O.CD_LOCAL, O.CD_TIPOLOCAL, IO.CD_LOCAL CD_LOCALMP, IO.CD_TIPOLOCAL CD_TIPOLOCALMP, O.CD_ITEM CD_ITEMACABADO, I.CD_ITEM||' - '||I.DS_ITEM DS_ITEM, I.DS_ITEM DS_ITEMACABADO ,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, COALESCE(I.CD_FORNECEDOR1,I.CD_FORNECEDOR2) CD_FORNECEDOR, I.DS_ESPECIFICACAO, PROD.DS_RECEITA, U.CD_USUARIO, U.NM_USUARIO, O.DS_OBSERVACAO, IP.DS_OBSERVACAO DS_OBSITEM, M.CD_SECAO, SECAO.DS_SECAO, GRUPO.DS_GRUPO, SUBGRUPO.DS_SUBGRUPO
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 SECAO ON (SECAO.CD_SECAO = M.CD_SECAO)
INNER JOIN GRUPO ON (GRUPO.CD_GRUPO = I.CD_GRUPO)
LEFT JOIN SUBGRUPO ON (SUBGRUPO.CD_GRUPO = I.CD_GRUPO
AND SUBGRUPO.CD_SUBGRUPO = I.CD_SUBGRUPO)
LEFT JOIN PRODUCAO PROD ON (PROD.CD_EMPRESA = O.CD_EMPRPROD
AND PROD.CD_ITEM = O.CD_ITEM
AND PROD.TP_PRODUCAO = O.TP_PRODUCAO
AND PROD.NR_VERSAO = O.NR_VERSAO)
LEFT JOIN USUARIO U ON (U.CD_USUARIO = 'admin')
LEFT JOIN LOCALESTOQUE lo on (lo.CD_LOCAL = o.CD_LOCAL
AND LO.CD_TIPOLOCAL = O.CD_TIPOLOCAL)
LEFT JOIN TIPOLOCAL TL ON (TL.CD_TIPOLOCAL = O.CD_TIPOLOCAL)
LEFT JOIN LOCALESTOQUE LOM ON (LOM.CD_LOCAL = IO.CD_LOCAL
AND LOM.CD_TIPOLOCAL = IO.CD_TIPOLOCAL)
LEFT JOIN TIPOLOCAL tlm on (tlm.CD_TIPOLOCAL = io.CD_TIPOLOCAL)
LEFT JOIN ORDEMPRODUCAOPEDIDO OP ON (OP.CD_EMPRESA = O.CD_EMPRESA
AND OP.NR_ORDEMPRODUCAO = O.NR_ORDEMPRODUCAO)
LEFT JOIN ITEMPEDIDO IP ON (IP.CD_EMPRESA = OP.CD_EMPRPED
AND IP.NR_PEDIDO = OP.NR_PEDIDO
AND IP.TP_PEDIDO = OP.TP_PEDIDO
AND IP.CD_ITEM = OP.CD_ITEM)
WHERE O.CD_EMPRLOTEPROD = 1
AND O.NR_LOTEPRODUCAO = 1037
AND IO.TP_DESPESA = 'M'
ORDER BY O.NR_ORDEMPRODUCAO
SELECT L.DS_LINHA||' '||C.DS_COLUNA DS_LINHA, N.QT_GRADE
FROM ORDEMPRODUCAOGRADE N
INNER JOIN LINHAGRADE L ON (L.CD_GRADE = N.CD_GRADE
AND L.NR_LINHA = N.NR_LINHA)
INNER JOIN COLUNAGRADE C ON (C.CD_GRADE = N.CD_GRADE
AND C.NR_COLUNA = N.NR_COLUNA)
WHERE N.CD_EMPRESA = :CD_EMPRESA
AND N.NR_ORDEMPRODUCAO = :NR_ORDEMPRODUCAO
AND N.CD_ITEM = :CD_ITEM
ORDER BY L.NR_ORDEM, L.NR_LINHA, C.NR_ORDEM, C.NR_COLUNA CD_EMPRESA 1 NR_ORDEMPRODUCAO CD_ITEM
SELECT P.NR_PEDIDO, S.CD_PESSOA||' - '||S.NM_PESSOA||COALESCE(' - '||S.NM_FANTASIA,'') NM_PESSOA, SE.DS_ENDERECO||COALESCE(', '||SE.NR_ENDERECO,'')||COALESCE(' '||SE.DS_BAIRRO,'') DS_ENDERECO, SM.DS_MUNICIPIO||' - '||SM.SG_ESTADO DS_MUNICIPIO, P.DS_OBSERVACAO, COALESCE(SE.NR_FONE, SE.NR_FAX) NR_FONE, P.DT_ENTREGA, P.NR_PEDIDOFOR
FROM ORDEMPRODUCAOPEDIDO OP
INNER JOIN PEDIDO P ON (P.CD_EMPRESA = OP.CD_EMPRPED
AND P.TP_PEDIDO = OP.TP_PEDIDO
AND P.NR_PEDIDO = OP.NR_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)
WHERE OP.CD_EMPRESA = :CD_EMPRESA
AND OP.NR_ORDEMPRODUCAO = :NR_ORDEMPRODUCAO CD_EMPRESA 1 NR_ORDEMPRODUCAO
Producao #2
SELECT -1 NR_ORDEMPRODUCAO, -1 CD_ITEM, O.CD_EMPRESA, E.NM_EMPRESA, O.CD_EMPRPROD, O.TP_PRODUCAO, M.SG_UNIDMED, {#10} IO.CD_MATERIAPRIMA, M.DS_ITEM DS_MATERIAPRIMA, {#10} M.CD_SECAO||' - '||SECAO.DS_SECAO DS_SECAO, {#10} M.CD_GRUPO||' - '||GRUPO.DS_GRUPO DS_GRUPO, {#10} COALESCE(M.CD_SUBGRUPO||' - '||SUBGRUPO.DS_SUBGRUPO,'Sem SubGrupo')DS_SUBGRUPO, {#10} SUM(IO.QT_ITEMPRODUCAO) QT_ITEMPRODUCAO, {#10} RSE.O_QT_SALDO QT_ESTOQUE, {#10} RSE.O_QT_SALDO - SUM(IO.QT_ITEMPRODUCAO) QT_SALDO, O.CD_ITEM CD_ITEMACABADO, I.DS_ITEM DS_ITEMACABADO {#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 M ON (M.CD_ITEM = IO.CD_MATERIAPRIMA) {#10}
INNER JOIN ITEM I ON (I.CD_ITEM = O.CD_ITEM) {#10}
LEFT JOIN SECAO ON (SECAO.CD_SECAO = M.CD_SECAO) {#10}
INNER JOIN GRUPO ON (GRUPO.CD_GRUPO = M.CD_GRUPO) {#10}
LEFT JOIN SUBGRUPO ON (SUBGRUPO.CD_SUBGRUPO = M.CD_SUBGRUPO) {#10}
LEFT JOIN PRODUCAO PROD ON (PROD.CD_EMPRESA = O.CD_EMPRPROD {#10}
AND PROD.CD_ITEM = O.CD_ITEM {#10}
AND PROD.TP_PRODUCAO = O.TP_PRODUCAO {#10}
AND PROD.NR_VERSAO = O.NR_VERSAO) {#10}
LEFT JOIN RETORNA_SALDOESTOQUE(O.CD_EMPRESA, IO.CD_MATERIAPRIMA, IO.CD_TIPOLOCAL, IO.CD_LOCAL, NULL) RSE ON (1=1) {#10+ iWhere +#10}
AND IO.TP_DESPESA = 'M' {#10}
GROUP BY O.CD_EMPRESA, E.NM_EMPRESA, O.CD_EMPRPROD, O.TP_PRODUCAO, M.SG_UNIDMED, {#10} IO.CD_MATERIAPRIMA, M.DS_ITEM, M.CD_SECAO, SECAO.DS_SECAO, M.CD_GRUPO, GRUPO.DS_GRUPO, {#10} M.CD_SUBGRUPO, SUBGRUPO.DS_SUBGRUPO, RSE.O_QT_SALDO, O.CD_ITEM, I.DS_ITEM {#10}
ORDER BY O.CD_ITEM, M.CD_SECAO, M.CD_GRUPO, M.CD_SUBGRUPO, IO.CD_MATERIAPRIMA
Consulta
SELECT NR_LOTEPRODUCAO, CD_EMPRLOTEPROD
FROM ORDEMPRODUCAO
WHERE CD_EMPRESA = {iParametros[1]}
AND NR_ORDEMPRODUCAO = {iParametros[2]}
Text
SELECT -1 NR_ORDEMPRODUCAO, -1 CD_ITEM, O.CD_EMPRESA, E.NM_EMPRESA, O.CD_EMPRPROD, O.TP_PRODUCAO, M.SG_UNIDMED, {#10} IO.CD_MATERIAPRIMA, M.DS_ITEM DS_MATERIAPRIMA, {#10} M.CD_SECAO||' - '||SECAO.DS_SECAO DS_SECAO, {#10} M.CD_GRUPO||' - '||GRUPO.DS_GRUPO DS_GRUPO, {#10} COALESCE(M.CD_SUBGRUPO||' - '||SUBGRUPO.DS_SUBGRUPO,'Sem SubGrupo')DS_SUBGRUPO, {#10} SUM(IO.QT_ITEMPRODUCAO) QT_ITEMPRODUCAO, {#10} RSE.O_QT_SALDO QT_ESTOQUE, {#10} RSE.O_QT_SALDO - SUM(IO.QT_ITEMPRODUCAO) QT_SALDO, O.CD_ITEM CD_ITEMACABADO, I.DS_ITEM DS_ITEMACABADO {#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 M ON (M.CD_ITEM = IO.CD_MATERIAPRIMA) {#10}
INNER JOIN ITEM I ON (I.CD_ITEM = O.CD_ITEM) {#10}
LEFT JOIN SECAO ON (SECAO.CD_SECAO = M.CD_SECAO) {#10}
INNER JOIN GRUPO ON (GRUPO.CD_GRUPO = M.CD_GRUPO) {#10}
LEFT JOIN SUBGRUPO ON (SUBGRUPO.CD_SUBGRUPO = M.CD_SUBGRUPO) {#10}
LEFT JOIN PRODUCAO PROD ON (PROD.CD_EMPRESA = O.CD_EMPRPROD {#10}
AND PROD.CD_ITEM = O.CD_ITEM {#10}
AND PROD.TP_PRODUCAO = O.TP_PRODUCAO {#10}
AND PROD.NR_VERSAO = O.NR_VERSAO) {#10}
LEFT JOIN RETORNA_SALDOESTOQUE(O.CD_EMPRESA, IO.CD_MATERIAPRIMA, IO.CD_TIPOLOCAL, IO.CD_LOCAL, NULL) RSE ON (1=1) {#10+ iWhere +#10}
AND IO.TP_DESPESA = 'M' {#10}
GROUP BY O.CD_EMPRESA, E.NM_EMPRESA, O.CD_EMPRPROD, O.TP_PRODUCAO, M.SG_UNIDMED, {#10} IO.CD_MATERIAPRIMA, M.DS_ITEM, M.CD_SECAO, SECAO.DS_SECAO, M.CD_GRUPO, GRUPO.DS_GRUPO, {#10} M.CD_SUBGRUPO, SUBGRUPO.DS_SUBGRUPO, RSE.O_QT_SALDO, O.CD_ITEM, I.DS_ITEM {#10}
ORDER BY O.CD_ITEM, M.CD_SECAO, M.CD_GRUPO, M.CD_SUBGRUPO, IO.CD_MATERIAPRIMA
Tabelas Utilizadas
| Tabela | Uso |
|---|---|
COLUNAGRADE | referenciada nas queries do layout |
EMPRESA | referenciada nas queries do layout |
ENDERECOPESSOA | referenciada nas queries do layout |
GRUPO | referenciada nas queries do layout |
ITEM | referenciada nas queries do layout |
ITEMORDEMPROD | referenciada nas queries do layout |
ITEMPEDIDO | referenciada nas queries do layout |
LINHAGRADE | referenciada nas queries do layout |
LOCALESTOQUE | referenciada nas queries do layout |
MUNICIPIO | referenciada nas queries do layout |
ORDEMPRODUCAO | referenciada nas queries do layout |
ORDEMPRODUCAOGRADE | referenciada nas queries do layout |
ORDEMPRODUCAOPEDIDO | referenciada nas queries do layout |
PEDIDO | referenciada nas queries do layout |
PESSOA | referenciada nas queries do layout |
PRODUCAO | referenciada nas queries do layout |
RETORNA_SALDOESTOQUE | referenciada nas queries do layout |
SECAO | referenciada nas queries do layout |
SUBGRUPO | referenciada nas queries do layout |
TIPOLOCAL | referenciada nas queries do layout |
USUARIO | referenciada nas queries do layout |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LOP023/ULOP023.pas - DFM:
source/LOP023/ULOP023.dfm - Package:
source/LOP023/LOP023.dpk