LPD033 — Listagem LPD033
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 ITEMLOCAL, com junção em TIPOLOCAL, LOCALESTOQUE, PESSOA, ENDERECOPESSOA, FORMAPAGTO, ITEMPEDIDO (+8), filtrada por CD_ITEM.
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, PE.NR_CNPJCPF NR_CNPJCPFEMP, EE.NR_INSCEST NR_INSCESTEMP, 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, PE.DS_SITE DS_SITEEMP, PE.DS_EMAIL DS_EMAILEMP, EE.NR_FONE NR_FONEEMP, EE.NR_FAX NR_FAXEMP, EE.NR_CEP NR_CEPEMP, N.NR_PEDIDO, N.TP_PEDIDO, N.DT_PEDIDO, N.DT_ENTREGA, N.NR_DIASENTREGA, N.CD_PESSOA, '[ '||P.CD_PESSOA||' ] '||P.NM_PESSOA||COALESCE(' - '||P.NM_FANTASIA,'') NM_PESSOA, P.NR_CNPJCPF, EP.NR_CEP, CASE N.TP_PAGTOFRETE WHEN '1' THEN 'CIF' WHEN '2' THEN 'FOB' END TP_PAGTOFRETE, NULLIF(COALESCE(N.DS_OBSERVACAO,'')||COALESCE(' '||PARM.DS_MSGPEDIDO,''),'') DS_OBSERVACAO, COALESCE('Transportador.: '||N.CD_TRANSPORTADOR || ' - '||COALESCE (PT.NM_FANTASIA,PT.NM_PESSOA),'') DS_TRANSPORTADOR, PARM.DS_LOGOTIPO, 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, EP.NR_INSCEST, EP.NR_FONE, EP.NR_FAX, N.NR_PEDIDOFOR, P.DS_EMAIL, 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, COALESCE(V.NM_FANTASIA,V.NM_PESSOA)||COALESCE(' FONE: '||EV.NR_FONE,'')||' - '||N.CD_VENDEDOR NM_VENDEDOR, N.CD_FORMAPAGTO, F.DS_FORMAPAGTO, MP.DS_MUNICIPIO DS_MUNIC, MP.SG_ESTADO, NULLIF(P.DS_OBSFINANCEIRO, '') DS_OBSFINANCEIRO, COALESCE(ITG.CD_ITEM, II.cd_item) CD_ITEM, COALESCE(ITG.CD_GRADE, II.CD_GRADE) CD_GRADE, COALESCE(ITG.DS_ITEM, II.ds_item) DS_ITEM, COALESCE(ITG.SG_UNIDMED, II.SG_UNIDMED) SG_UNIDMED, COALESCE(ITG.CD_FORNECEDOR1, II.CD_FORNECEDOR1) CD_FORNECEDOR1, COALESCE(ITG.CD_FORNECEDOR2, II.CD_FORNECEDOR2) CD_FORNECEDOR2, TL.CD_TIPOLOCAL, TL.DS_TIPOLOCAL, LC.CD_LOCAL, LC.DS_LOCAL, (
SELECT FIRST 1 IL.CD_TIPOLOCAL
FROM ITEMLOCAL IL
WHERE IL.CD_ITEM = COALESCE(ITG.CD_ITEM, II.CD_ITEM)
ORDER BY IL.DT_REGISTRO ) CD_TIPOLOCAL_IC, (
SELECT FIRST 1 TC.DS_TIPOLOCAL
FROM ITEMLOCAL IL
INNER JOIN TIPOLOCAL TC ON (TC.CD_TIPOLOCAL = IL.CD_TIPOLOCAL)
WHERE IL.CD_ITEM = COALESCE(ITG.CD_ITEM, II.CD_ITEM)
ORDER BY IL.CD_LOCAL ) DS_TIPOLOCAL_IL, (
SELECT FIRST 1 CD_LOCAL
FROM ITEMLOCAL IL
WHERE IL.CD_ITEM = COALESCE(ITG.CD_ITEM, II.CD_ITEM)
ORDER BY IL.DT_REGISTRO ) CD_LOCAL_IL, (
SELECT FIRST 1 LC.DS_LOCAL
FROM ITEMLOCAL IL
INNER JOIN LOCALESTOQUE LC ON (LC.CD_TIPOLOCAL = IL.CD_TIPOLOCAL
AND LC.CD_LOCAL = IL.CD_LOCAL)
WHERE IL.CD_ITEM = COALESCE(ITG.CD_ITEM, II.CD_ITEM)
ORDER BY IL.CD_LOCAL ) DS_LOCAL_IL, SUM(CI.V_VL_TOTAL) VL_TOTALIMPOSTOS, cast(SUM(IP.VL_TOTAL) / SUM(CASE (
SELECT V_TIPO
FROM HABILITA_PESOQTDE (IP.CD_ITEM)) WHEN 'Q' THEN IP.QT_PEDIDA ELSE IP.PS_PEDIDO END) as dom_numeric15_3) VL_UNITARIO, SUM(IP.VL_DESCONTO) VL_DESCONTO, SUM(IP.VL_TOTAL) VL_TOTAL, sum(IP.VL_FRETE) VL_FRETE, sum(IP.VL_DESPESA) VL_DESPESA, sum(IP.PS_PEDIDO) PS_PEDIDO, sum(IP.QT_PEDIDA) QT_PEDIDA, SUM(IP.VL_TOTAL - COALESCE(IP.VL_DESCONTO,0) + COALESCE(IP.VL_DESPESA,0) + (CASE WHEN N.TP_PAGTOFRETE = '2' THEN COALESCE(IP.VL_FRETE,0) ELSE 0 END) ) VL_LIQUIDO, SUM(IP.VL_TOTAL - COALESCE(IP.VL_DESCONTO,0) + COALESCE(IP.VL_DESPESA,0) + COALESCE(CI.V_VL_TOTAL,0) ) VL_IMPOSTOS, LIST(DISTINCT NULLIF(IP.DS_OBSERVACAO,''),', ') DS_OBSITEM, SUM(CASE (
SELECT V_TIPO
FROM HABILITA_PESOQTDE (IP.CD_ITEM)) WHEN 'Q' THEN IP.QT_PEDIDA ELSE IP.PS_PEDIDO END) QTDE, AVG((CI.V_VL_TOTAL / CASE (
SELECT V_TIPO
FROM HABILITA_PESOQTDE (IP.CD_ITEM)) WHEN 'Q' THEN IP.QT_PEDIDA ELSE IP.PS_PEDIDO END) + IP.VL_UNITARIO) VL_UNITARIOLIQ, SUM(CI.V_VL_TOTAL + (IP.VL_UNITARIO * CASE (
SELECT V_TIPO
FROM HABILITA_PESOQTDE (IP.CD_ITEM)) WHEN 'Q' THEN IP.QT_PEDIDA ELSE IP.PS_PEDIDO END)) VL_TOTUNITARIO, AVG((IP.VL_UNITARIO + CI.V_VL_TOTAL)) VL_UNITARIOIMP, SUM(CASE WHEN COALESCE(IP.PS_PEDIDO,0) > 0 THEN IP.PS_PEDIDO * COALESCE(II.PS_LIQUIDOEMB,1) ELSE IP.QT_PEDIDA * COALESCE(II.PS_LIQUIDOEMB,1) END) PS_LIQUIDOITEM, SUM(CASE WHEN COALESCE(IP.PS_PEDIDO,0) > 0 THEN IP.PS_PEDIDO * (COALESCE(II.PS_LIQUIDOEMB,1) + COALESCE(II.PS_EMBALAGEM,0)) ELSE IP.QT_PEDIDA * (COALESCE(II.PS_LIQUIDOEMB,1) + COALESCE(II.PS_EMBALAGEM,0)) END) PS_BRUTOITEM, RP.o_ps_liquido PS_LIQUIDO, rp.o_ps_bruto PS_BRUTO, N.CD_REDESPACHO||' - '||RED.NM_PESSOA NM_REDESPACHO, cast(IP.VL_UNITARIO as dom_numeric15_2) VL_UNITPEDIDO
FROM PEDIDO N
LEFT JOIN PESSOA V ON (V.CD_PESSOA = N.CD_VENDEDOR)
LEFT JOIN ENDERECOPESSOA EV ON (EV.CD_PESSOA = V.CD_PESSOA
AND EV.CD_ENDERECO = (
SELECT O_CD_ENDERECO
FROM RETORNA_ENDERECO(V.CD_PESSOA, NULL)))
LEFT JOIN FORMAPAGTO F ON (F.CD_FORMAPAGTO = N.CD_FORMAPAGTO)
LEFT JOIN PESSOA T ON (T.CD_PESSOA = N.CD_TRANSPORTADOR)
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)
LEFT JOIN PESSOA PT ON (N.cd_transportador = PT.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 II ON (IP.CD_ITEM = II.CD_ITEM)
LEFT JOIN ITEM ITG ON (ITG.CD_ITEM = II.CD_SECAO) ------------------------------------------------------
INNER JOIN PARMFATUR PARM ON (PARM.CD_EMPRESA = N.CD_EMPRESA)
LEFT JOIN CALCULA_IMPOSTOPEDIDO (N.CD_EMPRESA,N.NR_PEDIDO,N.TP_PEDIDO, IP.CD_ITEM,ME.SG_ESTADO,N.CD_EMPRESA) CI ON (1=1)
LEFT JOIN RETORNA_PESOPEDIDO(N.CD_EMPRESA, N.NR_PEDIDO, N.TP_PEDIDO) RP ON (1=1)
LEFT JOIN PESSOA RED ON (RED.CD_PESSOA = N.CD_REDESPACHO)
LEFT JOIN ITEMEMPRESA EMP ON (EMP.CD_EMPRESA = IP.CD_EMPRESA
AND EMP.CD_ITEM = COALESCE(ITG.CD_ITEM, II.CD_ITEM))
LEFT JOIN TIPOLOCAL TL ON (TL.CD_TIPOLOCAL = EMP.CD_TIPOLOCAL)
LEFT JOIN LOCALESTOQUE LC ON (LC.CD_TIPOLOCAL = EMP.CD_TIPOLOCAL
AND LC.CD_LOCAL = EMP.CD_LOCAL)
WHERE N.CD_EMPRESA = :CD_EMPRESA
AND N.NR_PEDIDO = :NR_PEDIDO
AND N.TP_PEDIDO = :TP_PEDIDO
GROUP BY CD_EMPRESA, NM_EMPRESA, NR_CNPJCPFEMP, NR_INSCESTEMP, DS_ENDEREMP, DS_MUNICEMP, DS_SITEEMP, DS_EMAILEMP, NR_FONEEMP, NR_FAXEMP, NR_CEPEMP, NR_PEDIDO, TP_PEDIDO, DT_PEDIDO, DT_ENTREGA, NR_DIASENTREGA, CD_PESSOA, NM_PESSOA, NR_CNPJCPF, NR_CEP, TP_PAGTOFRETE, DS_OBSERVACAO, DS_TRANSPORTADOR, DS_LOGOTIPO, DS_ENDERECO, DS_BAIRRO, DS_MUNICIPIO, NR_INSCEST, NR_FONE, NR_FAX, NR_PEDIDOFOR, DS_EMAIL, DS_CONDPAGTO, CD_CONDPAGTO, DT_VENCIMENTO, CD_VENDEDOR, NM_VENDEDOR, CD_FORMAPAGTO, DS_FORMAPAGTO, DS_MUNIC, SG_ESTADO, DS_OBSFINANCEIRO, CD_ITEM, DS_ITEM, SG_UNIDMED, PS_LIQUIDO, PS_BRUTO, RED.NM_PESSOA, N.CD_REDESPACHO, VL_UNITPEDIDO, CD_FORNECEDOR1, CD_FORNECEDOR2, CD_TIPOLOCAL, CD_LOCAL, DS_TIPOLOCAL, DS_LOCAL, CD_GRADE CD_EMPRESA NR_PEDIDO TP_PEDIDO
SELECT *
FROM (
SELECT NR_LINHA, DS_LINHA, NR_ORDEMLINHA, MAX(DS_COLUNA1) DS_COLUNA1, SUM(QT_GRADE1) QT_GRADE1, MAX(DS_COLUNA2) DS_COLUNA2, SUM(QT_GRADE2) QT_GRADE2, MAX(DS_COLUNA3) DS_COLUNA3, SUM(QT_GRADE3) QT_GRADE3, MAX(DS_COLUNA4) DS_COLUNA4, SUM(QT_GRADE4) QT_GRADE4, MAX(DS_COLUNA5) DS_COLUNA5, SUM(QT_GRADE5) QT_GRADE5
FROM (
SELECT S.NR_LINHA, S.DS_LINHA, S.NR_ORDEMLINHA, S.DS_COLUNA1, S.QT_GRADE1, S.DS_COLUNA2, S.QT_GRADE2, S.DS_COLUNA3, S.QT_GRADE3, S.DS_COLUNA4, S.QT_GRADE4, S.DS_COLUNA5, S.QT_GRADE5
FROM RETORNA_DADOSGRADEORDENADO(:CD_EMPRESA, :NR_PEDIDO, :TP_PEDIDO, :CD_ITEM, :CD_GRADE) S ) X
GROUP BY NR_LINHA, DS_LINHA, NR_ORDEMLINHA ) X
WHERE (QT_GRADE1 IS NOT NULL)
OR (QT_GRADE2 IS NOT NULL)
OR (QT_GRADE3 IS NOT NULL)
OR (QT_GRADE4 IS NOT NULL)
OR (QT_GRADE5 IS NOT NULL)
ORDER BY NR_ORDEMLINHA CD_EMPRESA NR_PEDIDO TP_PEDIDO CD_ITEM CD_GRADE
Tabelas Utilizadas
| Tabela | Uso |
|---|---|
CALCULA_IMPOSTOPEDIDO | referenciada nas queries do layout |
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 |
ITEMEMPRESA | referenciada nas queries do layout |
ITEMLOCAL | referenciada nas queries do layout |
ITEMPEDIDO | referenciada nas queries do layout |
LOCALESTOQUE | 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 |
RETORNA_DADOSGRADEORDENADO | referenciada nas queries do layout |
RETORNA_ENDERECO | referenciada nas queries do layout |
RETORNA_PESOPEDIDO | referenciada nas queries do layout |
TIPOLOCAL | referenciada nas queries do layout |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LPD033/ULPD033.pas - DFM:
source/LPD033/ULPD033.dfm - Package:
source/LPD033/LPD033.dpk