Pular para o conteúdo principal

LPD123 — Listagem LPD123

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 PESSOA, FORMAPAGTO, ITEMPEDIDO, ITEMTABPRECO, ENDERECOPESSOA, MUNICIPIO (+10), filtrada por CD_PESSOA, JO, CD_MUNICIPIO, CD_CONDPAGTO, CD_ITEM, CD_TIPOCALCULO (+11).

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
// 8 - Numero Devolucao
// 9 - Data Devolucao
// 10 - Caminho e Nome para Gerar o PDF
]);

SQL Base​

Pedido​

SELECT N.CD_TRANSPORTADOR||' - '|| T.NM_PESSOA CD_TRANSPORTADORA, I.CD_FORNECEDOR1, 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.NM_PESSOA||COALESCE(' - '||P.NM_FANTASIA,'')||' [ '||P.CD_PESSOA||' ]' NM_PESSOA, P.NR_CNPJCPF, EP.NR_CEP, CASE N.TP_PAGTOFRETE WHEN '1' THEN 'Remente - CIF' WHEN '2' THEN 'Destinatário - FOB' END TP_PAGTOFRETE, 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, IP.CD_ITEM, I.DS_ITEM, EP.NR_INCRA, EP.NR_INSCPRODUTOR, IP.VL_UNITARIO, CASE WHEN I.TP_ITEM = 'S' THEN NULL ELSE IP.DS_OBSERVACAO END DS_OBSITEM, IP.DS_OBSERVACAO DS_OBSPRODUTO, CASE WHEN I.TP_ITEM = 'Q' THEN I.SG_UNIDALT ELSE I.SG_UNIDMED END SG_UNIDMED, COALESCE(N.DS_OBSERVACAO,'')||COALESCE(' '||PARM.DS_MSGPEDIDO,'') DS_OBSERVACAO, N.NR_LOTEPRODUCAO, U.CD_USUARIO, U.NM_USUARIO, PF.DS_LOGOTIPO, EP.DS_COMPLEMENTO, COALESCE(ITB.VL_PRECO, 0) VL_TABPRECO, CASE WHEN ITB.VL_PRECO > 0 THEN ITB.VL_PRECO * COALESCE(IP.QT_PEDIDA, IP.PS_PEDIDO) ELSE 0 END VL_PRECOTOTALTABPRECO, LS.NR_DOCUMENTO NR_LOTE, IP.VL_DESCONTO * COALESCE(IPSFATOR.V_PC_REREFENTE,100)/100 VL_DESCONTO, IP.VL_TOTAL * COALESCE(IPSFATOR.V_PC_REREFENTE,100)/100 VL_TOTAL, IP.VL_FRETE, ((IP.VL_TOTAL - COALESCE(IP.VL_DESCONTO,0) + COALESCE(IP.VL_DESPESA,0) + COALESCE(IP.VL_FRETE,0) + COALESCE(IP.VL_JURO,0) + COALESCE(IMP.V_VL_TOTAL,0)) * COALESCE(IPSFATOR.V_PC_REREFENTE,100.00) / 100.00) VL_LIQUIDO, cast(((IP.VL_TOTAL - COALESCE(IP.VL_DESCONTO,0) + COALESCE(IP.VL_DESPESA,0) + COALESCE(IP.VL_JURO,0) + COALESCE(IMP.V_VL_TOTAL,0)) * COALESCE(IPSFATOR.V_PC_REREFENTE,100.00) / 100.00) / ( CASE (
SELECT V_TIPO
FROM HABILITA_PESOQTDE (IP.CD_ITEM)) WHEN 'Q' THEN IP.QT_PEDIDA ELSE IP.PS_PEDIDO END * COALESCE(IPSFATOR.V_PC_REREFENTE, 100.00 ) / 100.00 ) AS DOM_NUMERIC15_3 ) VL_UNITLIQUIDO, CASE (
SELECT V_TIPO
FROM HABILITA_PESOQTDE (IP.CD_ITEM)) WHEN 'Q' THEN IP.QT_PEDIDA ELSE IP.PS_PEDIDO END * COALESCE(IPSFATOR.V_PC_REREFENTE,100)/100 QTDE, (COALESCE(IP.VL_DESPESA,0) + COALESCE(IP.VL_JURO,0) )* COALESCE(IPSFATOR.V_PC_REREFENTE,100)/100 VL_DESPESA, IP.PS_PEDIDO * COALESCE(IPSFATOR.V_PC_REREFENTE,100)/100 PS_PEDIDO, IP.QT_PEDIDA * COALESCE(IPSFATOR.V_PC_REREFENTE,100)/100 QT_PEDIDA, IMP.V_VL_IPI * COALESCE(IPSFATOR.V_PC_REREFENTE,100)/100 V_VL_IPI, (COALESCE(IMP.V_VL_IPI,0) + COALESCE(IMP.V_VL_SUBSTITUICAO,0) ) * COALESCE(IPSFATOR.V_PC_REREFENTE,100)/100 VL_PEDIDOIMPOSTO, IMP.V_VL_SUBSTITUICAO * COALESCE(IPSFATOR.V_PC_REREFENTE,100)/100 V_VL_SUBSTITUICAO, (COALESCE(I.PS_LIQUIDOEMB,0) + COALESCE(I.PS_EMBALAGEM,0)) * (COALESCE(IP.PS_PEDIDO, IP.QT_PEDIDA) * 100/100) PS_ITEMUNIT, (COALESCE(I.PS_LIQUIDOEMB,0) + COALESCE(I.PS_EMBALAGEM,0)) PS_ITEM
FROM PEDIDO N
LEFT JOIN PESSOA V ON (V.CD_PESSOA = N.CD_VENDEDOR)
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)
LEFT JOIN ITEMTABPRECO ITB ON(ITB.CD_TABPRECO = IP.CD_TABPRECO
AND ITB.CD_ITEM = IP.CD_ITEM)
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 PARMFATUR PF ON(PF.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 TIPOCALCULO TC ON (TC.CD_TIPOCALCULO = I.CD_TIPOCALCULO)
INNER JOIN PARMFATUR PARM ON (PARM.CD_EMPRESA = N.CD_EMPRESA)
INNER JOIN USUARIO U ON(U.CD_USUARIO = P.CD_USUARIOCAD)
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 CALCULA_IMPOSTOPEDIDO(N.CD_EMPRESA, N.NR_PEDIDO, N.TP_PEDIDO, I.CD_ITEM, ME.SG_ESTADO, E.CD_EMPRESA)IMP ON (1=1)
LEFT JOIN ITEMPEDIDOSEMENTE IPS on (IPS.CD_EMPRESA = IP.CD_EMPRESA
AND IPS.NR_PEDIDO = IP.NR_PEDIDO
AND IPS.TP_PEDIDO = IP.TP_PEDIDO
AND IPS.CD_ITEM = IP.CD_ITEM)
LEFT JOIN LOTESEMENTE LS on (LS.CD_EMPRESA = IPS.CD_EMPRESA
AND LS.NR_LOTE = IPS.NR_LOTE
AND LS.CD_ITEM = IPS.CD_ITEM)
LEFT JOIN RETORNA_PERCENTUAL(IP.QT_PEDIDA, IP.PS_PEDIDO, IPS.QT_LOTE, IPS.QT_LOTE) IPSFATOR ON (1=1)
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 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.NM_PESSOA||COALESCE(' - '||P.NM_FANTASIA,'')||' [ '||P.CD_PESSOA||' ]' NM_PESSOA, P.NR_CNPJCPF, EP.NR_CEP, CASE N.TP_PAGTOFRETE WHEN '1' THEN 'CIF' WHEN '2' THEN 'FOB' END TP_PAGTOFRETE, 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, V.NM_PESSOA NM_VENDEDOR, MP.DS_MUNICIPIO DS_MUNIC, MP.SG_ESTADO, IP.CD_ITEM, I.DS_ITEM, EP.NR_INCRA, EP.NR_INSCPRODUTOR, CASE WHEN CHAR_LENGTH(IP.DS_OBSERVACAO) > 0 THEN COPIA_TEXTO(IP.DS_OBSERVACAO,1,CHAR_LENGTH(IP.DS_OBSERVACAO)) ELSE I.DS_ITEM END DS_OBSITEM, ITB.VL_PRECO VL_TABPRECO, (COALESCE(IP.QT_PEDIDA, IP.PS_PEDIDO) * ITB.VL_PRECO) VL_PRECOTOTALTABPRECO
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 ITEMTABPRECO ITB ON(ITB.CD_TABPRECO = IP.CD_TABPRECO)
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 ITEM I ON (IP.CD_ITEM = I.CD_ITEM
AND I.TP_ITEM = 'S')
LEFT JOIN PESSOA V ON (V.CD_PESSOA = N.CD_VENDEDOR)
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 F.CD_FORMAPAGTO, P.NR_PARCELA, P.DT_VENCIMENTO, P.VL_PARCELA, F.DS_FORMAPAGTO
FROM PARCELAPEDIDO P
LEFT JOIN FORMAPAGTO F ON(F.CD_FORMAPAGTO = P.CD_FORMAPAGTO)
WHERE P.CD_EMPRESA = :CD_EMPRESA
AND P.NR_PEDIDO = :NR_PEDIDO
AND P.TP_PEDIDO = :TP_PEDIDO
ORDER BY P.DT_VENCIMENTO CD_EMPRESA NR_PEDIDO TP_PEDIDO
SELECT LS.NR_DOCUMENTO NR_LOTE, LS.NR_LOTE NR_LOTECOMPLETO, IPS.QT_LOTE, LS.DT_VALIDADE, P.CD_USUARIO
FROM PEDIDO P
INNER JOIN ITEMPEDIDO IT ON(IT.CD_EMPRESA = P.CD_EMPRESA
AND IT.NR_PEDIDO = P.NR_PEDIDO
AND IT.TP_PEDIDO = P.TP_PEDIDO)
INNER JOIN ITEMPEDIDOSEMENTE IPS ON (IPS.CD_EMPRESA = IT.CD_EMPRESA
AND IPS.NR_PEDIDO = IT.NR_PEDIDO
AND IPS.TP_PEDIDO = IT.TP_PEDIDO
AND IPS.CD_ITEM = IT.CD_ITEM)
INNER JOIN LOTESEMENTE LS ON (LS.CD_EMPRESA = IPS.CD_EMPRESA
AND LS.NR_LOTE = IPS.NR_LOTE
AND LS.CD_ITEM = IPS.CD_ITEM)
WHERE P.CD_EMPRESA = :CD_EMPRESA
AND P.NR_PEDIDO = :NR_PEDIDO
AND P.TP_PEDIDO = :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
HABILITA_PESOQTDEreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMPEDIDOreferenciada nas queries do layout
ITEMPEDIDOSEMENTEreferenciada nas queries do layout
ITEMTABPRECOreferenciada nas queries do layout
LOTESEMENTEreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
PARCELAPEDIDOreferenciada nas queries do layout
PARMFATURreferenciada nas queries do layout
PEDIDOreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
RETORNA_ENDERECOreferenciada nas queries do layout
RETORNA_PERCENTUALreferenciada nas queries do layout
TIPOCALCULOreferenciada nas queries do layout
USUARIOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LPD123/ULPD123.pas
  • DFM: source/LPD123/ULPD123.dfm
  • Package: source/LPD123/LPD123.dpk