LPD036 — Listagem LPD036
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 ITEMPEDIDO, com junção em PESSOA, ENDERECOPESSOA, MUNICIPIO, EMPRESA, CONDPAGTO, ITEM (+3), filtrada por NR_PEDIDO, CD_EMPRESA, TP_PEDIDO, JO, CD_PESSOA, CD_ENDERECO (+9).
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 N.CD_EMPRESA, E.NM_EMPRESA, 'PED CLIENTE '||N.NR_PEDIDOFOR NR_PEDIDOFOR, 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, COALESCE(EP.NR_FONE, EP.NR_FAX) NR_FONE, 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, 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, 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, IP.CD_ITEM, I.DS_ITEM, IP.VL_UNITARIO, IP.VL_DESCONTO, IP.VL_TOTAL, I.SG_UNIDMED, IP.VL_TOTAL - COALESCE(IP.VL_DESCONTO,0) + COALESCE(IP.VL_DESPESA,0) + COALESCE(IP.VL_JURO,0) VL_LIQUIDO, IP.PS_PEDIDO, IP.QT_PEDIDA, COALESCE(IP.QT_PEDIDA, IP.PS_PEDIDO) QTDE, COALESCE(IP.VL_DESPESA,0) + COALESCE(IP.VL_JURO,0) VL_DESPESA, COALESCE(N.DS_OBSERVACAO,'')||COALESCE(' '||PARM.DS_MSGPEDIDO,'') DS_OBSERVACAO, CASE I.TP_ITEM WHEN 'S' THEN IP.VL_TOTAL ELSE 0 END VL_SERVICO, CASE I.TP_ITEM WHEN 'A' THEN IP.VL_TOTAL ELSE 0 END VL_APLICACAO, CASE WHEN I.TP_ITEM IN ('P', 'I') THEN IP.VL_TOTAL ELSE 0 END VL_PRODUTO, (
SELECT FIRST 1 X.DS_OBSERVACAO
FROM ITEMPEDIDO X
WHERE N.NR_PEDIDO = X.NR_PEDIDO
AND N.CD_EMPRESA = X.CD_EMPRESA
AND N.TP_PEDIDO = X.TP_PEDIDO
AND X.DS_OBSERVACAO IS NOT NULL) DS_OBSITEM
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
SELECT O.CD_EMPRESA, E.NM_EMPRESA, PE.NR_CNPJCPF, EE.DS_ENDERECO||COALESCE(', '||EE.NR_ENDERECO,'')||COALESCE(COALESCE(' - '||EE.DS_BAIRRO, EE.DS_COMPLEMENTO),'') DS_ENDERECO, ME.DS_MUNICIPIO||' - '||ME.SG_ESTADO DS_MUNICIPIO, EE.NR_FONE, EE.NR_FAX, EE.NR_CEP, EE.NR_INSCEST, O.NR_PEDIDO NR_ORCAMENTO, O.DT_PEDIDO, O.DT_ENTREGA, PE.DS_EMAIL, O.DS_OBSERVACAO DS_CONTATO, P.CD_PESSOA, P.NM_PESSOA, EP.DS_ENDERECO||COALESCE(', '||EP.NR_ENDERECO,'') DS_ENDPESSOA, EM.DS_MUNICIPIO||' - '||EM.SG_ESTADO||COALESCE('. Fone.: '||EP.NR_FONE,'') DS_CIDPESSOA, O.CD_VENDEDOR, V.NM_FANTASIA NM_VENDEDOR, COALESCE(VE.NR_FONE, VE.NR_FAX) NR_FONEVEND, VE.NR_CELULAR NR_CELULARVEND, M.CD_ITEM, M.DS_OBSERVACAO DS_OBSITEM, ITEM.SG_UNIDMED, ITEM.DS_ITEM, M.VL_UNITARIO, M.VL_TOTAL, COALESCE(M.QT_PEDIDA,M.PS_PEDIDO) QT_PEDIDA, CASE C.ST_CONDPAGTO WHEN 'D' THEN 'Vencto.: '||FORMATA_DATA(O.DT_VENCIMENTO,'%d/%m/%Y') ELSE C.DS_CONDPAGTO END DS_CONDPAGTO, O.CD_CONDPAGTO
FROM PEDIDO O
INNER JOIN ITEMPEDIDO M ON (M.CD_EMPRESA = O.CD_EMPRESA
AND M.NR_PEDIDO = O.NR_PEDIDO
AND M.TP_PEDIDO = O.TP_PEDIDO)
INNER JOIN PESSOA P ON (O.CD_PESSOA = P.CD_PESSOA)
INNER JOIN ENDERECOPESSOA EP ON (EP.CD_PESSOA = O.CD_PESSOA
AND EP.CD_ENDERECO = O.CD_ENDERECO)
INNER JOIN MUNICIPIO EM ON (EM.CD_MUNICIPIO = EP.CD_MUNICIPIO)
INNER JOIN EMPRESA E ON (O.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 O_CD_ENDERECO
FROM RETORNA_ENDERECO(EE.CD_PESSOA, NULL)))
INNER JOIN MUNICIPIO ME ON (EE.CD_MUNICIPIO = ME.CD_MUNICIPIO)
INNER JOIN CONDPAGTO C ON (O.CD_CONDPAGTO = C.CD_CONDPAGTO)
LEFT JOIN ITEM ON (ITEM.CD_ITEM = M.CD_ITEM)
LEFT JOIN PESSOA V ON (O.CD_VENDEDOR = V.CD_PESSOA)
LEFT JOIN ENDERECOPESSOA VE ON (VE.CD_PESSOA = V.CD_PESSOA
AND VE.CD_ENDERECO = (
SELECT O_CD_ENDERECO
FROM RETORNA_ENDERECO(VE.CD_PESSOA, NULL)))
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_PEDIDO = :NR_PEDIDO
AND O.TP_PEDIDO = :TP_PEDIDO CD_EMPRESA 1 NR_PEDIDO 1 TP_PEDIDO
SELECT N.CD_EMPRESA, E.NM_EMPRESA, 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, IP.CD_ITEM, I.DS_ITEM, IP.VL_UNITARIO, IP.VL_DESCONTO, IP.VL_TOTAL, I.SG_UNIDMED, IP.VL_TOTAL - COALESCE(IP.VL_DESCONTO,0) + COALESCE(IP.VL_DESPESA,0) + COALESCE(IP.VL_JURO,0) VL_LIQUIDO, IP.PS_PEDIDO, IP.QT_PEDIDA, COALESCE(IP.QT_PEDIDA, IP.PS_PEDIDO) QTDE, COALESCE(IP.VL_DESPESA,0) + COALESCE(IP.VL_JURO,0) VL_DESPESA
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 ITEM I ON (IP.CD_ITEM = I.CD_ITEM)
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = N.CD_EMPRESA)
WHERE N.CD_EMPRESA = :CD_EMPRESA
AND N.NR_PEDIDO = :NR_PEDIDO
AND N.TP_PEDIDO = :TP_PEDIDO
AND I.TP_ITEM IN ('P', 'I') 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 |
ITEM | referenciada nas queries do layout |
ITEMPEDIDO | 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 |
RETORNA_ENDERECO | referenciada nas queries do layout |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LPD036/ULPD036.pas - DFM:
source/LPD036/ULPD036.dfm - Package:
source/LPD036/LPD036.dpk