Pular para o conteúdo principal

LOP031 — Layout LOP031

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 PRODUCAO, com junção em EMPRESA, PARMFATUR, PESSOA, RETORNA_DADOSCADASTRAIS, MUNICIPIO, ITEMORDEMPROD (+6), filtrada por CD_EMPRESA, CD_ITEM, TP_PRODUCAO, O, JO, CD_PESSOA (+9).

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​

tabProducao​

SELECT DISTINCT O.NR_ORDEMPRODUCAO, (
SELECT FIRST 1 P.DS_RECEITA
FROM PRODUCAO P
WHERE P.CD_EMPRESA = O.CD_EMPRESA
AND P.CD_ITEM = O.CD_ITEM
AND P.TP_PRODUCAO = 'C') DS_RECEITA, I.CD_FORNECEDOR1, ITPMP.CD_FORNECEDOR1 CD_FORNECEDOR1MP, S.CD_SECAO, S.DS_SECAO, O.DT_FIMPRODUCAO, I.CD_FORNECEDOR2 CD_FORNECEDOR2, I.DS_ESPECIFICACAO DS_ESPECIFICACAO, O.NR_LOTEPRODUCAO, MA.DS_MARCA DS_MARCA, I.CD_ITEM,I.DS_ITEM, I.DS_OBSERVACAO, ITPMP.DS_OBSERVACAO DS_OBSERVACAOMP, ITPMP.CD_ITEM CD_ITEMMP, ITPMP.DS_ITEM DS_ITEMMP, ITPMP.CD_GRUPO, PRF.DS_LOGOTIPO, C.NM_PESSOA NM_CLIENTE, EC.DS_ENDCOMPLETO ENDERECO_CLIENTE, EC.NR_TELEFONE TELEFONE_CLIENTE, OD.NR_PEDIDO
FROM ORDEMPRODUCAO O
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA)
INNER JOIN PARMFATUR PRF ON (PRF.CD_EMPRESA = O.CD_EMPRESA)
INNER JOIN PESSOA PE ON (PE.CD_PESSOA = E.CD_PESSOA)
LEFT JOIN RETORNA_DADOSCADASTRAIS (PE.CD_PESSOA, NULL) EE ON (1=1)
LEFT JOIN MUNICIPIO ME ON (ME.CD_MUNICIPIO = EE.CD_MUNICIPIO)
INNER JOIN ITEMORDEMPROD IO ON (O.CD_EMPRESA = IO.CD_EMPRESA
AND O.NR_ORDEMPRODUCAO = IO.NR_ORDEMPRODUCAO)
INNER JOIN ITEM ITPMP ON (ITPMP.CD_ITEM = IO.CD_MATERIAPRIMA) --ITEM MATERIA PRIMA
INNER JOIN GRUPO GRPMP ON (GRPMP.CD_GRUPO = ITPMP.CD_GRUPO)
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM) --ITEM PRODUTO ACABADO
INNER JOIN MARCA MA ON (MA.CD_MARCA = I.CD_MARCA)
LEFT JOIN SECAO S ON (S.CD_SECAO = I.CD_SECAO)
LEFT JOIN ORDEMPRODUCAOPEDIDO OD ON(OD.CD_EMPRESA = O.CD_EMPRESA
AND OD.NR_ORDEMPRODUCAO = O.NR_ORDEMPRODUCAO)
LEFT JOIN PEDIDO PP ON (PP.CD_EMPRESA = OD.CD_EMPRPED
AND PP.NR_PEDIDO = OD.NR_PEDIDO
AND PP.TP_PEDIDO = OD.TP_PEDIDO)
LEFT JOIN PESSOA C ON (C.CD_PESSOA = PP.CD_PESSOA)
LEFT JOIN RETORNA_DADOSCADASTRAIS (C.CD_PESSOA, NULL, pp.CD_ENDERECO) EC ON (1=1)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORDEMPRODUCAO = :NR_ORDEMPRODUCAO
AND ITPMP.CD_GRUPO = 20 --VALOR FIXADO PELA ÁNALISE CD_EMPRESA NR_ORDEMPRODUCAO

Consulta #1​

SELECT DISTINCT {#10}O.NR_LOTEPRODUCAO, COALESCE(ORP.NR_ORDEMPRODUCAO, O.NR_ORDEMPRODUCAO) NR_ORDEMLOTE, {#10+ //EMPRESA}O.CD_EMPRESA, PE.NM_PESSOA NM_EMPRESA, PE.NM_FANTASIA, {#10}PE.NR_CNPJCPF NR_CNPJEMPRESA, EE.NR_INSCEST NR_INSCESTEMPRESA, {#10}EE.NR_INSCMUN NR_INSCMUNEMPRESA, PE.DS_SITE DS_SITEEMPRESA, PE.DS_EMAIL DS_EMAILEMPRESA, {#10}EE.DS_ENDERECO DS_ENDEMPRESA, EE.NR_ENDERECO NR_ENDEMPRESA, EE.NR_CEP NR_CEPEMPRESA, {#10}EE.DS_BAIRRO DS_BAIRROEMPRESA, EE.DS_COMPLEMENTO DS_COMPEMPRESA, {#10}ME.DS_MUNICIPIO DS_MUNEMPRESA, EE.NR_FONE NR_FONEEMPRESA, EE.NR_FAX NR_FAXEMPRESA, PARM.DS_LOGOTIPO, {#10+ //PRODUTO}COALESCE(IOR.CD_ITEM,I.CD_ITEM) CD_ITEM, {#10}COALESCE(IOR.DS_ITEM,I.DS_ITEM) DS_ITEM, {#10}COALESCE(IOR.SG_UNIDMED, I.SG_UNIDMED) SG_UNIDMED, {#10}(
SELECT FIRST 1 P.DS_RECEITA {#10}
FROM PRODUCAO P {#10}
WHERE P.CD_EMPRESA = O.CD_EMPRESA {#10}
AND P.CD_ITEM = O.CD_ITEM {#10}
AND P.TP_PRODUCAO = 'C') DS_RECEITA, {#10}COALESCE(MAO.DS_MARCA, MA.DS_MARCA)DS_MARCA, {#10}COALESCE(IOR.CD_GRADE,I.CD_GRADE) CD_GRADE, {#10} COALESCE(GAO.DS_GRADE, GA.DS_GRADE) DS_GRADE, {#10}COALESCE(ORP.QT_PRODUZIDA, O.QT_PRODUZIDA) QT_ITEM , {#10}MO.DS_ESPECIFICACAO DS_OBSERVACAOPROD, {#10}COALESCE(IOR.CD_CODIGOBARRA, I.CD_CODIGOBARRA) CD_CODIGOBARRA, {#10}COALESCE(IOR.CD_FORNECEDOR1, I.CD_FORNECEDOR1) CD_FORNECEDOR1, {#10}COALESCE(COALESCE(IOR.PS_LIQUIDOEMB,0) + COALESCE(IOR.PS_EMBALAGEM,0), {#10}COALESCE(I.PS_LIQUIDOEMB,0) + COALESCE(I.PS_EMBALAGEM,0)) PS_ITEM, {#10}(COALESCE(ORP.QT_PRODUZIDA, O.QT_PRODUZIDA) * COALESCE(COALESCE(IOR.PS_LIQUIDOEMB,0) + COALESCE(IOR.PS_EMBALAGEM,0), {#10}COALESCE(I.PS_LIQUIDOEMB,0) + COALESCE(I.PS_EMBALAGEM,0))) PS_TOTITEM, {#10}COALESCE(IOR.DS_ESPECIFICACAO, I.DS_ESPECIFICACAO) DS_OBSERVACAO, {#10}PP.NR_PEDIDO, CASE PP.TP_PAGTOFRETE WHEN '1' THEN 'REMETENTE - CIF' WHEN '2' THEN 'DESTINATÁRIO - FOB' WHEN '3' THEN 'OUTROS' END TP_PAGTOFRETE, {#10}PPP.NM_PESSOA NM_PESSOAPED, PPP.CD_PESSOA CD_PESSOAPED, PPP.NR_CNPJCPF NR_CNPJCPFPED, {#10}PPP.DS_EMAIL DS_EMAILPED, {#10}EPP.DS_ENDERECO DS_ENDPESPED, EPP.NR_ENDERECO NR_ENDPESPED, EPP.NR_CEP NR_CEPPESPED, {#10}EPP.DS_BAIRRO DS_BAIRROPESPED, EPP.DS_COMPLEMENTO DS_COMPPESPED, {#10}MPP.DS_MUNICIPIO DS_MUNPESPED, EPP.NR_FONE NR_FONEPESPED, EPP.NR_FAX NR_FAXPESPED, {#10}PP.NR_PEDIDO NR_PEDIDO, PPV.CD_PESSOA||' - '||PPV.NM_PESSOA NM_VENDPED, {#10}ORP.NR_ORDEMPRODUCAO NR_ORDEMPED, MPP.SG_ESTADO, {#10}PP.CD_CONDPAGTO CD_CONDPAGTOPED, CAP.DS_CONDPAGTO DS_CONDPAGTOPED, PARM.DS_MSGPEDIDO DS_MENSAGEMPED, {#10}RDCP.DS_ENDCOMPLETO DS_ENDCOBRANCAPED, RDEP.DS_ENDCOMPLETO DS_ENDENTREGAPED, {#10}FPP.DS_FORMAPAGTO DS_FORMAPAGTOPED, {#10}cast((
SELECT COUNT (OPPP.NR_PEDIDO) {#10}
FROM ORDEMPRODUCAO ORPP {#10}
LEFT JOIN ORDEMPRODUCAOPEDIDO OPPP ON (OPPP.CD_EMPRESA = ORPP.CD_EMPRESA {#10}
AND OPPP.NR_ORDEMPRODUCAO = ORPP.NR_ORDEMPRODUCAO) {#10}
WHERE ORPP.CD_EMPRESA = ORP.CD_EMPRESA {#10}
AND ORPP.NR_ORDEMPRODUCAO = ORP.NR_ORDEMPRODUCAO) as integer) QT_PEDIDOS, {#10}O.CD_USUARIO||' - '||US.NM_USUARIO CD_USUARIO, {#10}O.DT_REGISTRO, O.DT_INICIOPRODUCAO, cast(ipp.DS_OBSERVACAO as varchar(32000)) ds_obsitempedido {#10}--DISTINCT O.* {#10}
FROM ORDEMPRODUCAO O {#10}
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA) {#10}
INNER JOIN PESSOA PE ON (PE.CD_PESSOA = E.CD_PESSOA) {#10}
LEFT JOIN RETORNA_DADOSCADASTRAIS (PE.CD_PESSOA, NULL) EE ON (1=1) {#10}
LEFT JOIN MUNICIPIO ME ON (ME.CD_MUNICIPIO = EE.CD_MUNICIPIO) {#10}
INNER JOIN ITEMORDEMPROD IO ON (O.CD_EMPRESA = IO.CD_EMPRESA {#10}
AND O.NR_ORDEMPRODUCAO = IO.NR_ORDEMPRODUCAO) {#10}
LEFT JOIN USUARIO US ON (US.CD_USUARIO = O.CD_USUARIO) {#10+ //ORCAMENTO--}
LEFT JOIN MAQUINAORCAMENTO MO ON (MO.CD_EMPRESA = O.CD_EMPRESA {#10}
AND MO.NR_ORDEMPRODUCAO = O.NR_ORDEMPRODUCAO) {#10+ //PEDIDOS DO LOTE DE PRODUCAO--}
LEFT JOIN ORDEMPRODUCAO ORP ON (ORP.CD_EMPRESA = O.CD_EMPRESA
AND {#10} ORP.NR_LOTEPRODUCAO = O.NR_LOTEPRODUCAO) {#10}
LEFT JOIN ORDEMPRODUCAOPEDIDO OPP ON (OPP.CD_EMPRESA = ORP.CD_EMPRESA {#10}
AND OPP.NR_ORDEMPRODUCAO = ORP.NR_ORDEMPRODUCAO) {#10}
LEFT JOIN PEDIDO PP ON (PP.CD_EMPRESA = OPP.CD_EMPRPED {#10}
AND PP.NR_PEDIDO = OPP.NR_PEDIDO {#10}
AND PP.TP_PEDIDO = OPP.TP_PEDIDO) {#10}
LEFT JOIN ITEMPEDIDO IPP ON (IPP.CD_EMPRESA = PP.CD_EMPRESA {#10}
AND IPP.NR_PEDIDO = PP.NR_PEDIDO {#10}
AND IPP.CD_ITEM = ORP.CD_ITEM) {#10}
LEFT JOIN PESSOA PPP ON (PPP.CD_PESSOA = PP.CD_PESSOA) {#10}
LEFT JOIN ENDERECOPESSOA EPP ON (PP.CD_PESSOA = EPP.CD_PESSOA {#10}
AND PP.CD_ENDERECO = EPP.CD_ENDERECO) {#10}
LEFT JOIN MUNICIPIO MPP ON (MPP.CD_MUNICIPIO = EPP.CD_MUNICIPIO) {#10}
LEFT JOIN PESSOA PPV ON (PPV.CD_PESSOA = PP.CD_VENDEDOR) {#10}
LEFT JOIN CONDPAGTO CAP ON (CAP.CD_CONDPAGTO = PP.CD_CONDPAGTO) {#10}
LEFT JOIN FORMAPAGTO FPP ON (FPP.CD_FORMAPAGTO = PP.CD_FORMAPAGTO) {#10}
LEFT JOIN RETORNA_DADOSCADASTRAIS(PP.CD_PESSOA,'B') RDCP ON (1 = 1) {#10}
LEFT JOIN RETORNA_DADOSCADASTRAIS(PP.CD_PESSOA,'E') RDEP ON (1 = 1) {#10}
INNER JOIN PARMFATUR PARM ON (PARM.CD_EMPRESA = O.CD_EMPRESA) {#10+ //ITEM ORDEM PRODUCAO--}
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM) {#10}
INNER JOIN MARCA MA ON (MA.CD_MARCA = I.CD_MARCA) {#10}
LEFT JOIN GRADE GA ON (GA.CD_GRADE = I.CD_GRADE) {#10+ //ITEM ORDEM PRODUCAO DO LOTE--}
LEFT JOIN ITEM IOR ON (ORP.CD_ITEM = IOR.CD_ITEM) {#10}
LEFT JOIN MARCA MAO ON (MAO.CD_MARCA = IOR.CD_MARCA) {#10}
LEFT JOIN GRADE GAO ON (GAO.CD_GRADE = IOR.CD_GRADE) {#10}
WHERE O.CD_EMPRESA = {codigo} {#10}
AND O.NR_ORDEMPRODUCAO = {ordem} {#10}
AND IO.TP_DESPESA = 'M' {#10}
ORDER BY PP.NR_PEDIDO,ORP.NR_ORDEMPRODUCAO, PP.NR_PEDIDO DESC

Consulta #2​

SELECT O.CD_MATERIAPRIMA, I.DS_ITEM DS_MATPRIMA, O.QT_ITEMPRODUCAO, I.SG_UNIDMED, I.CD_FORNECEDOR1, I.CD_FORNECEDOR2 {#10}
FROM ITEMORDEMPROD O {#10}
INNER JOIN ITEM I ON (I.CD_ITEM = O.CD_MATERIAPRIMA) {#10}
WHERE O.CD_EMPRESA = {codigo} {#10}
AND O.NR_ORDEMPRODUCAO = {ordem}

Consulta #3​

SELECT O.CD_ITEM, O.QT_GRADE, L.DS_LINHA, C.DS_COLUNA, G.DS_GRADE {#10}
FROM ORDEMPRODUCAOGRADE O {#10}
INNER JOIN GRADE G ON (G.CD_GRADE = O.CD_GRADE) {#10}
INNER JOIN LINHAGRADE L ON (L.CD_GRADE = G.CD_GRADE {#10}
AND L.NR_LINHA = O.NR_LINHA) {#10}
INNER JOIN COLUNAGRADE C ON (C.CD_GRADE = G.CD_GRADE {#10}
AND C.NR_COLUNA = O.NR_COLUNA) {#10}
WHERE O.CD_EMPRESA = {codigo} {#10}AND O.NR_ORDEMPRODUCAO = {ordem}

Tabelas Utilizadas​

TabelaUso
COLUNAGRADEreferenciada nas queries do layout
CONDPAGTOreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
FORMAPAGTOreferenciada nas queries do layout
GRADEreferenciada 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
MAQUINAORCAMENTOreferenciada nas queries do layout
MARCAreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
ORDEMPRODUCAOreferenciada nas queries do layout
ORDEMPRODUCAOGRADEreferenciada nas queries do layout
ORDEMPRODUCAOPEDIDOreferenciada nas queries do layout
PARMFATURreferenciada nas queries do layout
PEDIDOreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
PRODUCAOreferenciada nas queries do layout
RETORNA_DADOSCADASTRAISreferenciada nas queries do layout
SECAOreferenciada nas queries do layout
USUARIOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOP031/ULOP031.pas
  • DFM: source/LOP031/ULOP031.dfm
  • Package: source/LOP031/LOP031.dpk