Pular para o conteúdo principal

LPD051 — Listagem LPD051

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 PEDIDO, com junção em ITEMPEDIDO, EMPRESA, PESSOA, ENDERECOPESSOA, MUNICIPIO, PESSOAFISICA (+5), filtrada por CD_EMPRESA, NR_PEDIDO, TP_PEDIDO, OS, JO.

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 #1​

SELECT E.NM_EMPRESA, EPE.DS_ENDERECO||', '||COALESCE(EPE.NR_ENDERECO, '')|| COALESCE(' - '||EPE.DS_BAIRRO, '')||' - '||ME.DS_MUNICIPIO||'-'||ME.SG_ESTADO DS_ENDERECOEMPRESA, EPE.NR_CEP NR_CEPEMPRESA, EPE.NR_FONE NR_FONEEMPRESA, EPE.NR_FAX NR_FAXEMPRESA, PE.NR_CNPJCPF NR_CNPJEMPRESA, EPE.NR_INSCEST NR_IEEMPRESA, OS.DT_PEDIDO DT_EMISSAO, OS.NR_PEDIDO NR_ORDEMSERVICO, P.CD_PESSOA, P.NM_PESSOA, OS.CD_VENDEDOR, VEND.NM_PESSOA NM_VENDEDOR, EP.DS_ENDERECO||', '||COALESCE(EP.NR_ENDERECO, '')|| COALESCE(' - '||EP.DS_BAIRRO, '')||' - '||M.DS_MUNICIPIO||'-'||M.SG_ESTADO DS_ENDERECO, EP.NR_FONE, P.NR_CNPJCPF, PF.NR_RG, OS.DS_OBSERVACAO, U.NM_USUARIO, T.NM_PESSOA NM_TRANSPORTADOR, OS.CD_FORMAPAGTO, FP.DS_FORMAPAGTO, OS.CD_CONDPAGTO, CASE OS.TP_PEDIDO WHEN 'S' THEN COALESCE(PFI.O_DS_CONDICAO, CP.DS_CONDPAGTO) ELSE CP.DS_CONDPAGTO END DS_CONDPAGTO, SI.CD_ITEM, CASE I.DS_ITEM WHEN 'PRODUTO NAO CADASTRADO' THEN COPIA_TEXTO(SI.DS_OBSERVACAO,1,CHAR_LENGTH(SI.DS_OBSERVACAO)) ELSE I.DS_ITEM END DS_ITEM, SI.QT_PEDIDA QT_SERVICOITEM, SI.VL_UNITARIO, SI.VL_TOTAL, COALESCE(SI.VL_DESCONTO, 0) VL_DESCONTO, PFI.O_VL_TOTALJURO, COALESCE(I.CD_FORNECEDOR1,'')||COALESCE('-'||I.CD_FORNECEDOR2,'') CD_FORNECEDOR, CASE OS.TP_PAGTOFRETE WHEN '2' THEN 'FOB' ELSE 'CIF' END TP_PAGTOFRETE
FROM PEDIDO OS
INNER JOIN ITEMPEDIDO SI ON (SI.CD_EMPRESA = OS.CD_EMPRESA
AND SI.NR_PEDIDO = OS.NR_PEDIDO
AND SI.TP_PEDIDO = OS.TP_PEDIDO)
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = OS.CD_EMPRESA)
INNER JOIN PESSOA PE ON (PE.CD_PESSOA = E.CD_PESSOA)
INNER JOIN ENDERECOPESSOA EPE ON (EPE.CD_PESSOA = PE.CD_PESSOA
AND EPE.CD_ENDERECO = 1)
INNER JOIN MUNICIPIO ME ON (ME.CD_MUNICIPIO = EPE.CD_MUNICIPIO)
INNER JOIN PESSOA P ON (P.CD_PESSOA = OS.CD_PESSOA)
LEFT JOIN PESSOAFISICA PF ON (PF.CD_PESSOA = P.CD_PESSOA)
INNER JOIN ENDERECOPESSOA EP ON (EP.CD_PESSOA = P.CD_PESSOA
AND EP.CD_ENDERECO = OS.CD_ENDERECO)
INNER JOIN MUNICIPIO M ON (M.CD_MUNICIPIO = EP.CD_MUNICIPIO)
LEFT JOIN FORMAPAGTO FP ON (FP.CD_FORMAPAGTO = OS.CD_FORMAPAGTO)
LEFT JOIN PESSOA VEND ON (VEND.CD_PESSOA = OS.CD_VENDEDOR)
INNER JOIN CONDPAGTO CP ON (CP.CD_CONDPAGTO = OS.CD_CONDPAGTO)
INNER JOIN USUARIO U ON (U.CD_USUARIO = os.CD_USUARIO)
INNER JOIN ITEM I ON (I.CD_ITEM = SI.CD_ITEM)
LEFT JOIN PESSOA T ON (T.CD_PESSOA = OS.CD_TRANSPORTADOR)
LEFT JOIN PARCELA_FINANCIAMENTO(OS.CD_CONDPAGTO, (
SELECT SUM(IP.VL_TOTAL + COALESCE(IP.VL_DESPESA,0) - COALESCE(IP.VL_DESCONTO,0))
FROM ITEMPEDIDO IP
WHERE IP.CD_EMPRESA = OS.CD_EMPRESA
AND IP.NR_PEDIDO = OS.NR_PEDIDO
AND IP.TP_PEDIDO = OS.TP_PEDIDO), NULL) PFI ON (0=0)
WHERE OS.CD_EMPRESA = :CD_EMPRESA
AND OS.NR_PEDIDO = :NR_PEDIDO
AND OS.TP_PEDIDO = :TP_PEDIDO CD_EMPRESA 1 NR_PEDIDO TP_PEDIDO
SELECT COALESCE(SUM(OSI.VL_TOTAL), 0) VL_TOTAL, COALESCE(SUM(OSI.VL_DESCONTO), 0) VL_TOTALDESCONTO, (COALESCE(SUM(OSI.VL_TOTAL), 0) - COALESCE(SUM(OSI.VL_DESCONTO), 0) + COALESCE(SUM(OSI.VL_DESPESA), 0) + COALESCE(SUM(OSI.VL_JURO), 0)) VL_LIQUIDO
FROM PEDIDO OS
INNER JOIN ITEMPEDIDO OSI ON (OSI.CD_EMPRESA = OS.CD_EMPRESA
AND OSI.NR_PEDIDO = OS.NR_PEDIDO
AND OSI.TP_PEDIDO = OS.TP_PEDIDO)
WHERE OS.CD_EMPRESA = :CD_EMPRESA
AND OS.NR_PEDIDO = :NR_PEDIDO
AND OS.TP_PEDIDO = :TP_PEDIDO CD_EMPRESA NR_PEDIDO TP_PEDIDO

Pedido #2​

{frmLPD051}

Consulta​

SELECT N.CD_EMPRESA, E.NM_EMPRESA, {#10}EE.DS_ENDERECO||COALESCE(', '||EE.NR_ENDERECO,' ')||COALESCE(COALESCE(' - '||EE.DS_BAIRRO, EE.DS_COMPLEMENTO),' ') DS_ENDEREMP, {#10}ME.DS_MUNICIPIO||' - '||ME.SG_ESTADO DS_MUNICEMP, {#10}COALESCE(EE.NR_FONE, EE.NR_FAX) NR_FONEEMP, EE.NR_CEP NR_CEPEMP, {#10}N.NR_PEDIDO, N.TP_PEDIDO, N.DT_PEDIDO, N.DT_ENTREGA, {#10}N.CD_PESSOA, P.NM_PESSOA||COALESCE(' - '||P.NM_FANTASIA,'')||' - '||P.CD_PESSOA NM_PESSOA, {#10}P.NR_CNPJCPF, EP.NR_CEP, {#10}EP.DS_ENDERECO||COALESCE(', '||EP.NR_ENDERECO,' ') DS_ENDERECO, EP.DS_COMPLEMENTO DS_COMPLEMENTO, {#10}CASE EP.TP_ENDERECO WHEN 'C' THEN 'Comercial' WHEN 'B' THEN 'Cobrança' WHEN 'R' THEN 'Residencial' ELSE {#10}'Entrega' END TP_ENDERECO, {#10}COALESCE(EP.DS_BAIRRO, EP.DS_COMPLEMENTO) DS_BAIRRO, {#10}MP.DS_MUNICIPIO||' - '||MP.SG_ESTADO DS_MUNICIPIO, EP.NR_INSCEST, {#10}COALESCE(EP.NR_FONE, EP.NR_FAX) NR_FONE, {#10}CASE C.ST_CONDPAGTO {#10} WHEN 'D' THEN 'Vencto.: '||FORMATA_DATA(N.DT_VENCIMENTO,'%d/%m/%Y') {#10} ELSE C.DS_CONDPAGTO {#10}END DS_CONDPAGTO, N.CD_CONDPAGTO, N.DT_VENCIMENTO, {#10}N.CD_VENDEDOR, V.NM_PESSOA||' - '||N.CD_VENDEDOR NM_VENDEDOR, {#10}N.CD_FORMAPAGTO, F.DS_FORMAPAGTO, {#10}MP.DS_MUNICIPIO DS_MUNIC, MP.SG_ESTADO, {#10}IP.CD_ITEM, I.DS_ITEM, I.SG_UNIDMED, IP.VL_UNITARIO, {#10}IP.VL_DESCONTO, IP.VL_TOTAL, IP.DS_OBSERVACAO DS_OBSITEM, {#10}IP.VL_TOTAL - COALESCE(IP.VL_DESCONTO,0) + COALESCE(IP.VL_DESPESA,0) VL_LIQUIDO, {#10}CASE (
SELECT V_TIPO
FROM HABILITA_PESOQTDE (IP.CD_ITEM)) {#10} WHEN 'Q' THEN IP.QT_PEDIDA ELSE IP.PS_PEDIDO {#10}END PS_PEDIDO, IP.VL_DESPESA, PARM.DS_LOGOTIPO, {#10}COALESCE(N.DS_OBSERVACAO,'')||COALESCE(' '||PARM.DS_MSGPEDIDO,'') DS_OBSERVACAO, {#10}(
SELECT SUM(CASE (
SELECT V_TIPO
FROM HABILITA_PESOQTDE (IPED.CD_ITEM)) {#10} WHEN 'Q' THEN IPED.QT_PEDIDA ELSE IPED.PS_PEDIDO END) {#10}
FROM ITEMPEDIDO IPED {#10}
WHERE N.NR_PEDIDO = IPED.NR_PEDIDO {#10}
AND N.CD_EMPRESA = IPED.CD_EMPRESA {#10}
AND N.TP_PEDIDO = IPED.TP_PEDIDO) PS_TOTPEDIDO, {#10}(
SELECT SUM(IPED.VL_DESCONTO)
FROM ITEMPEDIDO IPED {#10}
WHERE N.NR_PEDIDO = IPED.NR_PEDIDO {#10}
AND N.CD_EMPRESA = IPED.CD_EMPRESA {#10}
AND N.TP_PEDIDO = IPED.TP_PEDIDO) VL_TOTDESCONTO, {#10} (
SELECT SUM(IPED.VL_TOTAL)
FROM ITEMPEDIDO IPED {#10}
WHERE N.NR_PEDIDO = IPED.NR_PEDIDO {#10}
AND N.CD_EMPRESA = IPED.CD_EMPRESA {#10}
AND N.TP_PEDIDO = IPED.TP_PEDIDO) VL_TOTTOTAL, {#10}(
SELECT SUM(IPED.VL_TOTAL - COALESCE(IPED.VL_DESCONTO,0) + COALESCE(IPED.VL_DESPESA,0)) {#10}
FROM ITEMPEDIDO IPED {#10}
WHERE N.NR_PEDIDO = IPED.NR_PEDIDO {#10}
AND N.CD_EMPRESA = IPED.CD_EMPRESA {#10}
AND N.TP_PEDIDO = IPED.TP_PEDIDO) VL_TOTLIQUIDO, RL.O_NR_LINHA {#10}
FROM PEDIDO N {#10}
INNER JOIN ITEMPEDIDO IP ON (N.NR_PEDIDO = IP.NR_PEDIDO {#10}
AND N.CD_EMPRESA = IP.CD_EMPRESA {#10}
AND N.TP_PEDIDO = IP.TP_PEDIDO) {#10}
INNER JOIN PESSOA P ON (N.CD_PESSOA = P.CD_PESSOA) {#10}
INNER JOIN ENDERECOPESSOA EP ON (N.CD_PESSOA = EP.CD_PESSOA {#10}
AND N.CD_ENDERECO = EP.CD_ENDERECO) {#10}
INNER JOIN MUNICIPIO MP ON (EP.CD_MUNICIPIO = MP.CD_MUNICIPIO) {#10}
INNER JOIN EMPRESA E ON (N.CD_EMPRESA = E.CD_EMPRESA) {#10}
INNER JOIN PESSOA PE ON (E.CD_PESSOA = PE.CD_PESSOA) {#10}
INNER JOIN ENDERECOPESSOA EE ON (EE.CD_PESSOA = PE.CD_PESSOA {#10}
AND EE.CD_ENDERECO = {#10} (
SELECT MIN(CD_ENDERECO) {#10}
FROM ENDERECOPESSOA ENDER {#10}
WHERE ENDER.CD_PESSOA = EE.CD_PESSOA)) {#10}
INNER JOIN MUNICIPIO ME ON (EE.CD_MUNICIPIO = ME.CD_MUNICIPIO) {#10}
INNER JOIN CONDPAGTO C ON (N.CD_CONDPAGTO = C.CD_CONDPAGTO) {#10}
INNER JOIN ITEM I ON (IP.CD_ITEM = I.CD_ITEM) {#10}
INNER JOIN PARMFATUR PARM ON (PARM.CD_EMPRESA = N.CD_EMPRESA) {#10}
LEFT JOIN PESSOA V ON (V.CD_PESSOA = N.CD_VENDEDOR) {#10}
LEFT JOIN FORMAPAGTO F ON (F.CD_FORMAPAGTO = N.CD_FORMAPAGTO) {#10}
LEFT JOIN RETORNA_LINHAS(2) RL ON (1=1) {#10}
WHERE N.CD_EMPRESA = :CD_EMPRESA {#10}
AND N.NR_PEDIDO = :NR_PEDIDO {#10}
AND N.TP_PEDIDO = :TP_PEDIDO {#10}
ORDER BY N.NR_PEDIDO, RL.O_NR_LINHA

Tabelas Utilizadas​

TabelaUso
CONDPAGTOreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
FORMAPAGTOreferenciada nas queries do layout
HABILITA_PESOQTDEreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMPEDIDOreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
PARCELA_FINANCIAMENTOreferenciada nas queries do layout
PARMFATURreferenciada nas queries do layout
PEDIDOreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
PESSOAFISICAreferenciada nas queries do layout
RETORNA_LINHASreferenciada nas queries do layout
USUARIOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LPD051/ULPD051.pas
  • DFM: source/LPD051/ULPD051.dfm
  • Package: source/LPD051/LPD051.dpk