Pular para o conteúdo principal

LPD018 — Listagem LPD018

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 (+9), filtrada por CD_EMPRESA, NR_PEDIDO, TP_PEDIDO, DT_VENCIMENTO.

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 PE.NM_PESSOA NM_EMPRESA, OS.CD_EMPRESA, OS.NR_PEDIDO, OS.TP_PEDIDO, 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, COALESCE(nullif(SI.DS_OBSERVACAO,''),I.DS_ITEM ) DS_ITEM, COALESCE(SI.PS_PEDIDO, SI.QT_PEDIDA) QT_SERVICOITEM, SI.VL_UNITARIO, SI.VL_TOTAL, COALESCE(SI.VL_DESCONTO, 0) VL_DESCONTO, COALESCE(PFI.O_VL_TOTALJURO,PFI.O_VL_TAXACONDICAO) 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, OS.DT_REGISTRO, OS.HR_PEDIDO, L.DS_LOCAL, CASE OS.ST_ENTREGAOFICINA WHEN 'N' THEN ' Não ' ELSE ' Sim ' END ST_ENTREGAOFICINA, CASE WHEN OS.DS_ENDENTREGAOF IS NOT NULL THEN 'Endereço Entrega.: '||OS.DS_ENDENTREGAOF ELSE '' END DS_ENDENTREGAOF, VE.DS_OBSVIAGEMENTREGA
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)
LEFT JOIN VIAGEMENTREGA VE ON (VE.CD_EMPPEDIDO = OS.CD_EMPRESA
AND VE.TP_PEDIDO = OS.TP_PEDIDO
AND VE.NR_PEDIDO = OS.NR_PEDIDO)
INNER JOIN USUARIO U ON (U.CD_USUARIO = OS.CD_USUARIO)
INNER JOIN ITEM I ON (I.CD_ITEM = SI.CD_ITEM)
LEFT JOIN ITEMEMPRESA IE ON (IE.CD_EMPRESA = OS.CD_EMPRESA
AND IE.CD_ITEM = I.CD_ITEM)
LEFT JOIN LOCALESTOQUE L ON (L.CD_TIPOLOCAL = IE.CD_TIPOLOCAL
AND L.CD_LOCAL = IE.CD_LOCAL)
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) + COALESCE(IP.VL_FRETE,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), (
SELECT PP.VL_PARCELA
FROM PARCELAPEDIDO PP
WHERE PP.CD_EMPRESA = OS.CD_EMPRESA
AND PP.NR_PEDIDO = OS.NR_PEDIDO
AND PP.TP_PEDIDO = OS.TP_PEDIDO
AND PP.DT_VENCIMENTO = OS.DT_PEDIDO)) PFI ON (0=0)
WHERE OS.CD_EMPRESA = :CD_EMPRESA
AND OS.NR_PEDIDO = :NR_PEDIDO
AND OS.TP_PEDIDO = :TP_PEDIDO
AND COALESCE(SI.PS_PEDIDO, SI.QT_PEDIDA) > 0
ORDER BY SI.CD_ITEM CD_EMPRESA 1 NR_PEDIDO TP_PEDIDO
SELECT VL_TOTAL, VL_TOTALDESCONTO, VL_FRETE, VL_DESPESA, VL_JURO, VL_IMPOSTO, VL_TOTAL + VL_FRETE + VL_DESPESA + VL_JURO + VL_IMPOSTO - VL_TOTALDESCONTO VL_LIQUIDO
FROM(
SELECT COALESCE(SUM(OSI.VL_TOTAL),0) VL_TOTAL, COALESCE(SUM(OSI.VL_DESCONTO),0) VL_TOTALDESCONTO, COALESCE(SUM(OSI.VL_FRETE),0) VL_FRETE, COALESCE(SUM(OSI.VL_DESPESA),0) VL_DESPESA, COALESCE(MAX(PFI.O_VL_TOTALJURO), MAX(PFI.O_VL_TAXACONDICAO),0) VL_JURO, COALESCE(SUM(CASE P.ST_IMPOSTOPEDIDO WHEN 'N' THEN 0 ELSE (
SELECT V_VL_TOTAL
FROM CALCULA_IMPOSTOPEDIDO(OSI.CD_EMPRESA, OSI.NR_PEDIDO, OSI.TP_PEDIDO, OSI.CD_ITEM, NULL, OSI.CD_EMPRESA)) END),0) VL_IMPOSTO
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)
INNER JOIN PARMFATUR P ON (P.CD_EMPRESA = OS.CD_EMPRESA)
LEFT JOIN PARCELA_FINANCIAMENTO(OS.CD_CONDPAGTO, (
SELECT SUM(IP.VL_TOTAL + COALESCE(IP.VL_DESPESA,0) - COALESCE(IP.VL_DESCONTO,0) + COALESCE(IP.VL_FRETE,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), (
SELECT PP.VL_PARCELA
FROM PARCELAPEDIDO PP
WHERE PP.CD_EMPRESA = OS.CD_EMPRESA
AND PP.NR_PEDIDO = OS.NR_PEDIDO
AND PP.TP_PEDIDO = OS.TP_PEDIDO
AND PP.DT_VENCIMENTO = OS.DT_PEDIDO) ) PFI ON (0=0)
WHERE OS.CD_EMPRESA = :CD_EMPRESA
AND OS.NR_PEDIDO = :NR_PEDIDO
AND OS.TP_PEDIDO = :TP_PEDIDO
AND COALESCE(OSI.PS_PEDIDO, OSI.QT_PEDIDA) > 0
GROUP BY OS.CD_EMPRESA, OS.NR_PEDIDO, OS.TP_PEDIDO) CD_EMPRESA NR_PEDIDO TP_PEDIDO

Tabelas Utilizadas​

TabelaUso
CALCULA_IMPOSTOPEDIDOreferenciada nas queries do layout
CONDPAGTOreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
FORMAPAGTOreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMEMPRESAreferenciada nas queries do layout
ITEMPEDIDOreferenciada nas queries do layout
LOCALESTOQUEreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
PARCELAPEDIDOreferenciada 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
USUARIOreferenciada nas queries do layout
VIAGEMENTREGAreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LPD018/ULPD018.pas
  • DFM: source/LPD018/ULPD018.dfm
  • Package: source/LPD018/LPD018.dpk