Pular para o conteúdo principal

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​

TabelaUso
COLUNAGRADEreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
GRUPOreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMORDEMPRODreferenciada nas queries do layout
ITEMPEDIDOreferenciada nas queries do layout
LINHAGRADEreferenciada nas queries do layout
LOCALESTOQUEreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
ORDEMPRODUCAOreferenciada nas queries do layout
ORDEMPRODUCAOGRADEreferenciada nas queries do layout
ORDEMPRODUCAOPEDIDOreferenciada nas queries do layout
PEDIDOreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
PRODUCAOreferenciada nas queries do layout
RETORNA_SALDOESTOQUEreferenciada nas queries do layout
SECAOreferenciada nas queries do layout
SUBGRUPOreferenciada nas queries do layout
TIPOLOCALreferenciada nas queries do layout
USUARIOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOP023/ULOP023.pas
  • DFM: source/LOP023/ULOP023.dfm
  • Package: source/LOP023/LOP023.dpk