LPD056 — Listagem LPD056
Visão Geral
Layout de impressão da família LPD (Pedido). Acionado via ExecLayout a partir das telas que imprimem este tipo de documento.
Descrição
Consulta baseada em HABILITA_PESOQTDE, com junção em ITEMPEDIDO, PESSOA, ENDERECOPESSOA, MUNICIPIO, EMPRESA, ITEM (+8), filtrada por CD_ITEM, TP_ITEM, JO, CD_EMPRESA, NR_PEDIDO, TP_PEDIDO (+8).
Chamada
ExecLayout(Connection, [
// 0 - Nome do Layout
// 1 - Cod Empresa
// 2 - Nr Pedido
// 3 - Tp Pedido
// 4 - Path Servidor
// 5 - Visualiza -> V ou Imprime -> I
]);
SQL Base
Pedido
SELECT O.CD_EMPRESA, E.NM_EMPRESA, IP.CD_ITEM, CASE WHEN IP.DS_OBSERVACAO <> '' THEN IP.DS_OBSERVACAO ELSE I.DS_ITEM END DS_ITEM, COALESCE(IP.QT_PEDIDA,IP.PS_PEDIDO) QT_PRODUZIDA, CASE WHEN (
SELECT V_TIPO
FROM HABILITA_PESOQTDE (I.CD_ITEM)) <> 'Q' THEN I.SG_UNIDMED END SG_UNIDADE, CASE (
SELECT V_TIPO
FROM HABILITA_PESOQTDE (I.CD_ITEM)) WHEN 'Q' THEN I.SG_UNIDMED ELSE I.SG_UNIDALT END SG_UNIDADEALT, P.DT_PEDIDO DT_INICIOPRODUCAO, IO.CD_MATERIAPRIMA, M.DS_ITEM DS_MATERIAPRIMA, cast((COALESCE(IP.QT_PEDIDA,IP.PS_PEDIDO) * IO.QT_PARTICIPACAO) / O.QT_MINPRODUCAO as numeric(15,5)) QT_ITEMPRODUCAO, IO.TP_DESPESA, M.SG_UNIDMED, M.SG_UNIDALT, CASE WHEN COALESCE(M.PS_LIQUIDO,0) <= 0 THEN NULL ELSE CAST((COALESCE(IP.QT_PEDIDA,IP.PS_PEDIDO) * IO.QT_PARTICIPACAO) / O.QT_MINPRODUCAO AS NUMERIC(15,5)) / M.PS_LIQUIDO END QTDE, CAST(CASE WHEN I.SG_UNIDMED = M.SG_UNIDMED THEN (cast((COALESCE(IP.QT_PEDIDA,IP.PS_PEDIDO) * IO.QT_PARTICIPACAO) / O.QT_MINPRODUCAO as numeric(15,5)) * 100) / COALESCE(IP.QT_PEDIDA,IP.PS_PEDIDO) ELSE ((CAST((COALESCE(IP.QT_PEDIDA,IP.PS_PEDIDO) * IO.QT_PARTICIPACAO) / O.QT_MINPRODUCAO AS NUMERIC(15,5)) * M.PS_LIQUIDO) * 100) / COALESCE(IP.QT_PEDIDA,IP.PS_PEDIDO) 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 PEDIDO P
INNER JOIN ITEMPEDIDO IP ON (IP.CD_EMPRESA = P.CD_EMPRESA
AND IP.NR_PEDIDO = P.NR_PEDIDO
AND IP.TP_PEDIDO = P.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 EMPRESA E ON (E.CD_EMPRESA = P.CD_EMPRESA)
INNER JOIN ITEM I ON (IP.CD_ITEM = I.CD_ITEM)
LEFT JOIN PRODUCAO O ON (P.CD_EMPRESA = O.CD_EMPRESA
AND IP.CD_ITEM = O.CD_ITEM
AND O.NR_VERSAO = 1
AND O.TP_PRODUCAO = 'C')
LEFT JOIN TAREFAPRODUCAO TP ON (TP.CD_EMPRESA = O.CD_EMPRESA
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)
LEFT JOIN ITEMPRODUCAO IO ON (O.CD_EMPRESA = IO.CD_EMPRESA
AND O.CD_ITEM = IO.CD_ITEM
AND O.TP_PRODUCAO = IO.TP_PRODUCAO
AND O.NR_VERSAO = IO.NR_VERSAO
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)
WHERE P.CD_EMPRESA = :CD_EMPRESA
AND P.NR_PEDIDO = :NR_PEDIDO
AND P.TP_PEDIDO = :TP_PEDIDO CD_EMPRESA 1 NR_PEDIDO 1 TP_PEDIDO
SELECT N.CD_EMPRESA, E.NM_EMPRESA, EE.DS_ENDERECO||COALESCE(', '||EE.NR_ENDERECO,' ')||COALESCE(COALESCE(' - '||EE.DS_BAIRRO, EE.DS_COMPLEMENTO),' ') DS_ENDEREMP, ME.DS_MUNICIPIO||' - '||ME.SG_ESTADO DS_MUNICEMP, COALESCE(EE.NR_FONE, EE.NR_FAX) NR_FONEEMP, EE.NR_CEP NR_CEPEMP, N.NR_PEDIDO, N.TP_PEDIDO, N.DT_PEDIDO, N.DT_ENTREGA, N.CD_PESSOA, P.NM_PESSOA||COALESCE(' - '||P.NM_FANTASIA,'')||' - '||P.CD_PESSOA NM_PESSOA, P.NR_CNPJCPF, EP.NR_CEP, EP.nr_fone, EP.nr_inscest, EP.DS_ENDERECO||COALESCE(', '||EP.NR_ENDERECO,' ') DS_ENDERECO, COALESCE(EP.DS_BAIRRO, EP.DS_COMPLEMENTO) DS_BAIRRO, MP.DS_MUNICIPIO||' - '||MP.SG_ESTADO DS_MUNICIPIO, COALESCE(EP.NR_INSCEST,PF.NR_RG) NR_INSCEST, COALESCE(EP.NR_FONE, EP.NR_FAX) NR_FONE, CASE C.ST_CONDPAGTO WHEN 'D' THEN 'Vencto.: '||FORMATA_DATA(N.DT_VENCIMENTO,'%d/%m/%Y') ELSE C.DS_CONDPAGTO END DS_CONDPAGTO, N.CD_CONDPAGTO, N.DT_VENCIMENTO, CASE N.TP_PAGTOFRETE WHEN '1' THEN 'CIF' ELSE 'FOB' END DS_PAGTOFRETE, N.CD_VENDEDOR, V.NM_PESSOA||' - '||N.CD_VENDEDOR NM_VENDEDOR, N.CD_FORMAPAGTO, F.DS_FORMAPAGTO, MP.DS_MUNICIPIO DS_MUNIC, MP.SG_ESTADO, COALESCE(I.cd_fornecedor1,'')||COALESCE(' - '||I.cd_fornecedor2,'') CD_FORNECEDOR, IP.CD_ITEM, CASE WHEN IP.DS_OBSERVACAO <> '' THEN IP.DS_OBSERVACAO ELSE I.DS_ITEM END DS_ITEM, I.ds_especificacao, IP.VL_UNITARIO, IP.VL_DESCONTO, IP.VL_TOTAL, IP.VL_TOTAL - COALESCE(IP.VL_DESCONTO,0) + COALESCE(IP.VL_DESPESA,0) VL_LIQUIDO, IP.PS_PEDIDO, IP.QT_PEDIDA, PARM.DS_LOGOTIPO, CASE WHEN (
SELECT V_TIPO
FROM HABILITA_PESOQTDE (IP.CD_ITEM)) <> 'Q' THEN I.SG_UNIDMED END SG_UNIDMED, CASE (
SELECT V_TIPO
FROM HABILITA_PESOQTDE (IP.CD_ITEM)) WHEN 'Q' THEN I.SG_UNIDMED ELSE I.SG_UNIDALT END SG_UNIDALT, IP.VL_DESPESA, COALESCE(N.DS_OBSERVACAO,'')||COALESCE(ASCII_CHAR(10)||PARM.DS_MSGPEDIDO,'') DS_OBSERVACAO
FROM PEDIDO N
INNER JOIN ITEMPEDIDO IP ON (N.NR_PEDIDO = IP.NR_PEDIDO
AND N.CD_EMPRESA = IP.CD_EMPRESA
AND N.TP_PEDIDO = IP.TP_PEDIDO)
INNER JOIN PESSOA P ON (N.CD_PESSOA = P.CD_PESSOA)
INNER JOIN ENDERECOPESSOA EP ON (N.CD_PESSOA = EP.CD_PESSOA
AND N.CD_ENDERECO = EP.CD_ENDERECO)
INNER JOIN MUNICIPIO MP ON (EP.CD_MUNICIPIO = MP.CD_MUNICIPIO)
INNER JOIN EMPRESA E ON (N.CD_EMPRESA = E.CD_EMPRESA)
INNER JOIN PESSOA PE ON (E.CD_PESSOA = PE.CD_PESSOA)
INNER JOIN ENDERECOPESSOA EE ON (EE.CD_PESSOA = PE.CD_PESSOA
AND EE.CD_ENDERECO = (
SELECT MIN(CD_ENDERECO)
FROM ENDERECOPESSOA ENDER
WHERE ENDER.CD_PESSOA = EE.CD_PESSOA))
INNER JOIN MUNICIPIO ME ON (EE.CD_MUNICIPIO = ME.CD_MUNICIPIO)
INNER JOIN CONDPAGTO C ON (N.CD_CONDPAGTO = C.CD_CONDPAGTO)
INNER JOIN ITEM I ON (IP.CD_ITEM = I.CD_ITEM)
INNER JOIN PARMFATUR PARM ON (PARM.CD_EMPRESA = N.CD_EMPRESA)
LEFT JOIN PESSOAFISICA PF ON (PF.CD_PESSOA = P.CD_PESSOA)
LEFT JOIN PESSOA V ON (V.CD_PESSOA = N.CD_VENDEDOR)
LEFT JOIN FORMAPAGTO F ON (F.CD_FORMAPAGTO = N.CD_FORMAPAGTO)
WHERE N.CD_EMPRESA = :CD_EMPRESA
AND N.NR_PEDIDO = :NR_PEDIDO
AND N.TP_PEDIDO = :TP_PEDIDO CD_EMPRESA 1 NR_PEDIDO 1 TP_PEDIDO
Tabelas Utilizadas
| Tabela | Uso |
|---|---|
CONDPAGTO | referenciada nas queries do layout |
EMPRESA | referenciada nas queries do layout |
ENDERECOPESSOA | referenciada nas queries do layout |
FORMAPAGTO | referenciada nas queries do layout |
HABILITA_PESOQTDE | referenciada nas queries do layout |
ITEM | referenciada nas queries do layout |
ITEMPEDIDO | referenciada nas queries do layout |
ITEMPRODUCAO | referenciada nas queries do layout |
MUNICIPIO | referenciada nas queries do layout |
PARMFATUR | referenciada nas queries do layout |
PEDIDO | referenciada nas queries do layout |
PESSOA | referenciada nas queries do layout |
PESSOAFISICA | referenciada nas queries do layout |
PRODUCAO | referenciada nas queries do layout |
TAREFAITEM | referenciada nas queries do layout |
TAREFAPRODUCAO | referenciada nas queries do layout |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LPD056/ULPD056.pas - DFM:
source/LPD056/ULPD056.dfm - Package:
source/LPD056/LPD056.dpk