Pular para o conteúdo principal

LPD117 — Listagem LPD117

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, ITEMPEDIDODEVOL, ITEM, TIPOCALCULO, PESSOA, ENDERECOPESSOA (+5), filtrada por CD_EMPRESA, NR_DEVOLUCAO.

Chamada​

ExecLayout(Connection, [
// 0 - Nome do Layout da Nota Fiscal
// 1 - Cod Empresa
// 2 - Nr Pedido
// 3 - Tp Pedido
// 4 - Path Servidor
// 5 - Visualiza -> V ou Imprime -> I
// 6 - Usuario
// 8 - Nr_devolucao
]);

SQL Base​

tabPEDIDODEVOL​

SELECT N.CD_EMPRESA, N.NR_PEDIDO, N.TP_PEDIDO, N.DT_PEDIDO, N.CD_PESSOA, P.NM_PESSOA, P.NM_FANTASIA, V.NM_PESSOA NM_VENDEDOR, P.NR_CNPJCPF, EP.NR_CEP, N.CD_FORMAPAGTO, EP.DS_ENDERECO||TRIM(COALESCE(', '||EP.NR_ENDERECO,'')) DS_ENDERECO, COALESCE(EP.DS_BAIRRO, EP.DS_COMPLEMENTO) DS_BAIRRO, MP.DS_MUNICIPIO, MP.SG_ESTADO, EP.NR_INSCEST, COALESCE(EP.NR_FONE, EP.NR_FAX) NR_FONE, SUM(IPD.VL_UNITARIO * (CASE WHEN TP.TP_UNIDADE = 'P' THEN IPD.PS_DEVOLUCAO ELSE IPD.QT_DEVOLUCAO END)) VL_PEDIDO/*VL_DEVOL*/
FROM PEDIDO N
INNER JOIN ITEMPEDIDO IP ON (IP.CD_EMPRESA = N.CD_EMPRESA
AND IP.NR_PEDIDO = N.NR_PEDIDO
AND IP.TP_PEDIDO = N.TP_PEDIDO)
INNER JOIN ITEMPEDIDODEVOL IPD ON (IPD.CD_EMPRESA = IP.CD_EMPRESA
AND IPD.NR_PEDIDO = IP.NR_PEDIDO
AND IPD.TP_PEDIDO = IP.TP_PEDIDO
AND IPD.CD_ITEM = IP.CD_ITEM)
INNER JOIN ITEM I ON (I.CD_ITEM = IPD.CD_ITEM)
INNER JOIN TIPOCALCULO TP ON (TP.CD_TIPOCALCULO = I.CD_TIPOCALCULO)
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)
LEFT JOIN PESSOA V ON (N.CD_VENDEDOR = V.CD_PESSOA)
WHERE N.CD_EMPRESA = :CD_EMPRESA
AND IPD.NR_DEVOLUCAO = :NR_DEVOLUCAO
GROUP BY N.CD_EMPRESA, N.NR_PEDIDO, N.TP_PEDIDO, N.DT_PEDIDO, N.CD_PESSOA, P.NM_PESSOA, P.NM_FANTASIA, V.NM_PESSOA, P.NR_CNPJCPF, EP.NR_CEP, N.CD_FORMAPAGTO, EP.DS_ENDERECO||TRIM(COALESCE(', '||EP.NR_ENDERECO,'')), COALESCE(EP.DS_BAIRRO, EP.DS_COMPLEMENTO), MP.DS_MUNICIPIO, MP.SG_ESTADO, EP.NR_INSCEST, COALESCE(EP.NR_FONE, EP.NR_FAX) CD_EMPRESA NR_DEVOLUCAO
SELECT N.CD_EMPRESA, N.NR_PEDIDO, N.TP_PEDIDO, I.CD_ITEM, I.DS_ITEM , I.SG_UNIDMED, I.SG_UNIDALT, CASE WHEN TP.TP_UNIDADE = 'P' THEN N.PS_DEVOLUCAO ELSE N.QT_DEVOLUCAO END QTDE, CASE WHEN TP.TP_UNIDADE = 'P' THEN ip.PS_PEDIDO ELSE ip.QT_PEDIDA end QT_pedido, ip.VL_DESCONTO dSEC_pedido, ip.VL_DESCONTODEVOL, (ip.VL_DESCONTO+ip.VL_DESCONTODEVOL)GERALDESCONTO, (
SELECT SUM( ITD.VL_UNITARIO * CASE WHEN TP.TP_UNIDADE = 'P' THEN ITD.PS_DEVOLUCAO ELSE ITD.QT_DEVOLUCAO END)
FROM itempedidodevol ITD
WHERE ITD.CD_EMPRESA = N.CD_EMPRESA
AND ITD.NR_PEDIDO = N.NR_PEDIDO
AND ITD.TP_PEDIDO = N.TP_PEDIDO
AND ITD.CD_ITEM = N.CD_ITEM) + (IP.VL_UNITARIO * CASE WHEN TP.TP_UNIDADE = 'P' THEN ip.PS_PEDIDO ELSE ip.QT_PEDIDA end ) totalgeral, (
SELECT SUM(CASE WHEN TP.TP_UNIDADE = 'P' THEN ITD.PS_DEVOLUCAO ELSE ITD.QT_DEVOLUCAO END)
FROM itempedidodevol ITD
WHERE ITD.CD_EMPRESA = N.CD_EMPRESA
AND ITD.NR_PEDIDO = N.NR_PEDIDO
AND ITD.TP_PEDIDO = N.TP_PEDIDO
AND ITD.CD_ITEM = N.CD_ITEM) + CASE WHEN TP.TP_UNIDADE = 'P' THEN ip.PS_PEDIDO ELSE ip.QT_PEDIDA end QTtotalgeral, (CASE WHEN TP.TP_UNIDADE = 'P' THEN N.PS_DEVOLUCAO ELSE N.QT_DEVOLUCAO END * (ip.VL_DESCONTO+ip.VL_DESCONTODEVOL)) / ((
SELECT SUM(CASE WHEN TP.TP_UNIDADE = 'P' THEN ITD.PS_DEVOLUCAO ELSE ITD.QT_DEVOLUCAO END)
FROM itempedidodevol ITD
WHERE ITD.CD_EMPRESA = N.CD_EMPRESA
AND ITD.NR_PEDIDO = N.NR_PEDIDO
AND ITD.TP_PEDIDO = N.TP_PEDIDO
AND ITD.CD_ITEM = N.CD_ITEM) + CASE WHEN TP.TP_UNIDADE = 'P' THEN ip.PS_PEDIDO ELSE ip.QT_PEDIDA end) VL_DESCONTO, (CASE WHEN TP.TP_UNIDADE = 'P' THEN N.PS_DEVOLUCAO ELSE N.QT_DEVOLUCAO END * ip.VL_DESCONTO) / CASE WHEN CASE WHEN TP.TP_UNIDADE = 'P' THEN ip.PS_PEDIDO ELSE ip.QT_PEDIDA end = 0 THEN 1 ELSE CASE WHEN TP.TP_UNIDADE = 'P' THEN ip.PS_PEDIDO ELSE ip.QT_PEDIDA end END vl_DESCONTO, N.VL_UNITARIO, N.VL_UNITARIO * (CASE WHEN TP.TP_UNIDADE = 'P' THEN N.PS_DEVOLUCAO ELSE N.QT_DEVOLUCAO END)VL_LIQUIDO
FROM ITEMPEDIDODEVOL N
LEFT JOIN ITEMPEDIDO IP on (IP.CD_EMPRESA = N.CD_EMPRESA
AND IP.NR_PEDIDO = N.NR_PEDIDO
AND IP.TP_PEDIDO = N.TP_PEDIDO
AND IP.CD_ITEM = N.CD_ITEM)
INNER JOIN ITEM I ON (I.CD_ITEM = N.CD_ITEM)
INNER JOIN TIPOCALCULO TP on (TP.CD_TIPOCALCULO = I.CD_TIPOCALCULO)
WHERE N.CD_EMPRESA = :CD_EMPRESA
AND N.NR_DEVOLUCAO = :NR_DEVOLUCAO CD_EMPRESA NR_DEVOLUCAO
SELECT N.CD_EMPRESA, N.NR_PEDIDO, N.TP_PEDIDO, I.CD_ITEM, I.DS_ITEM , I.SG_UNIDMED, I.SG_UNIDALT, COALESCE(N.QT_PEDIDA, N.PS_PEDIDO) QTDE, N.VL_UNITARIO, N.VL_DESCONTO, N.VL_TOTAL, (N.VL_TOTAL - COALESCE(N.VL_DESCONTO,0)) VL_LIQUIDO
FROM ITEMPEDIDO N
INNER JOIN ITEM I ON (N.CD_ITEM = I.CD_ITEM)
WHERE N.CD_EMPRESA = :CD_EMPRESA
AND N.NR_PEDIDO = :NR_PEDIDO
AND N.TP_PEDIDO = :TP_PEDIDO CD_EMPRESA NR_PEDIDO TP_PEDIDO
SELECT C.NR_PEDIDO, C.DT_EMISSAO, C.VL_DOCUMENTO, C.DT_VENCIMENTO
FROM VIEW_CONTASPEDIDO(:V_CD_EMPRESA, :V_NR_PEDIDO, :V_TP_PEDIDO) C CD_EMPRESA NR_PEDIDO TP_PEDIDO
SELECT N.CD_EMPRESA, N.NR_PEDIDO, N.TP_PEDIDO, N.DT_PEDIDO, N.CD_PESSOA, P.NM_PESSOA, P.NM_FANTASIA, V.NM_PESSOA NM_VENDEDOR, P.NR_CNPJCPF, EP.NR_CEP, N.CD_FORMAPAGTO, EP.DS_ENDERECO||TRIM(COALESCE(', '||EP.NR_ENDERECO,'')) DS_ENDERECO, COALESCE(EP.DS_BAIRRO, EP.DS_COMPLEMENTO) DS_BAIRRO, MP.DS_MUNICIPIO, MP.SG_ESTADO, EP.NR_INSCEST, COALESCE(EP.NR_FONE, EP.NR_FAX) NR_FONE, (
SELECT SUM(NI.VL_TOTAL - COALESCE(NI.VL_DESCONTO,0))
FROM ITEMPEDIDO NI
WHERE NI.CD_EMPRESA = N.CD_EMPRESA
AND NI.NR_PEDIDO = N.NR_PEDIDO
AND NI.TP_PEDIDO = N.TP_PEDIDO) VL_PEDIDO
FROM PEDIDO N
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)
LEFT JOIN PESSOA V ON (N.CD_VENDEDOR = V.CD_PESSOA)
WHERE N.CD_EMPRESA = :CD_EMPRESA
AND N.NR_PEDIDO = :NR_PEDIDO
AND N.TP_PEDIDO = :TP_PEDIDO CD_EMPRESA NR_PEDIDO TP_PEDIDO
SELECT N.CD_ITEM, CG.DS_COLUNA, LG.DS_LINHA, IPG.QT_GRADE
FROM ITEMPEDIDO N
LEFT JOIN ITEMPEDIDOGRADE IPG ON (IPG.CD_EMPRESA = N.CD_EMPRESA
AND IPG.CD_ITEM = N.CD_ITEM
AND IPG.NR_PEDIDO = N.NR_PEDIDO
AND IPG.TP_PEDIDO = N.TP_PEDIDO)
LEFT JOIN COLUNAGRADE CG ON (CG.CD_GRADE = IPG.CD_GRADE
AND CG.NR_COLUNA = IPG.NR_COLUNA)
LEFT JOIN LINHAGRADE LG ON (LG.CD_GRADE = IPG.CD_GRADE
AND LG.NR_LINHA = IPG.NR_LINHA)
WHERE N.CD_EMPRESA = :CD_EMPRESA
AND N.NR_PEDIDO = :NR_PEDIDO
AND N.TP_PEDIDO = :TP_PEDIDO
AND N.CD_ITEM = :CD_ITEM CD_EMPRESA NR_PEDIDO TP_PEDIDO CD_ITEM
SELECT N.CD_ITEM, CG.DS_COLUNA, LG.DS_LINHA, IPG.QT_DEVOLUCAO QT_GRADE
FROM ITEMPEDIDO N
LEFT JOIN ITEMPEDIDODEVOLGRADE IPG ON (IPG.CD_EMPRESA = N.CD_EMPRESA
AND IPG.CD_ITEM = N.CD_ITEM
AND IPG.NR_PEDIDO = N.NR_PEDIDO
AND IPG.TP_PEDIDO = N.TP_PEDIDO)
LEFT JOIN COLUNAGRADE CG ON (CG.CD_GRADE = IPG.CD_GRADE
AND CG.NR_COLUNA = IPG.NR_COLUNA)
LEFT JOIN LINHAGRADE LG ON (LG.CD_GRADE = IPG.CD_GRADE
AND LG.NR_LINHA = IPG.NR_LINHA)
WHERE N.CD_EMPRESA = :CD_EMPRESA
AND N.NR_PEDIDO = :NR_PEDIDO
AND N.TP_PEDIDO = :TP_PEDIDO
AND N.CD_ITEM = :CD_ITEM CD_EMPRESA NR_PEDIDO TP_PEDIDO CD_ITEM

Consulta​

SELECT O_CD_EMPRESA, O_DS_IMPRESSORA, O_CD_IMPRESSORA
FROM RETORNA_IMPRESSORAUSUARIO({ IntToStr(sessao.empresa.cd_Empresa)}, {QuotedStr(sessao.usuario.cd_Usuario)}, 'D', 'D' )

Tabelas Utilizadas​

TabelaUso
COLUNAGRADEreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMPEDIDOreferenciada nas queries do layout
ITEMPEDIDODEVOLreferenciada nas queries do layout
ITEMPEDIDODEVOLGRADEreferenciada nas queries do layout
ITEMPEDIDOGRADEreferenciada nas queries do layout
LINHAGRADEreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
PEDIDOreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
RETORNA_IMPRESSORAUSUARIOreferenciada nas queries do layout
TIPOCALCULOreferenciada nas queries do layout
VIEW_CONTASPEDIDOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LPD117/ULPD117.pas
  • DFM: source/LPD117/ULPD117.dfm
  • Package: source/LPD117/LPD117.dpk