Pular para o conteúdo principal

LNF028 — Listagem LNF028

Visão Geral​

Layout de impressão da família LNF (Nota Fiscal). Acionado via ExecLayout a partir das telas que imprimem este tipo de documento.

Descrição​

Consulta baseada em HABILITA_PESOQTDE, com junção em ITEMNOTA, PESSOA, ENDERECOPESSOA, MUNICIPIO, EMPRESA, CONDPAGTO (+12), filtrada por CD_PESSOA, JO, CD_MUNICIPIO, CD_CONDPAGTO, CD_ITEM, CD_TIPOCALCULO (+13).

Chamada​

ExecLayout(Connection, [
// 0 - Nome do Layout da Nota Fiscal
// 1 - Cod Empresa
// 2 - Nr Lancamento
// 3 - Tp Nota
// 4 - Cod Serie
// 5 - Path Servidor
// 6 - Visualiza -> V ou Imprime -> I
// 7 - Impressora do Parametro
]);

SQL Base​

Pedido #1​

SELECT N.ST_NOTA, N.CD_EMPRESA, E.NM_EMPRESA, PARMFATUR.DS_LOGOTIPO, N.CD_SERIE, 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, coalesce(EE.NR_FONE, EE.NR_FAX) NR_FONEEMP, EE.NR_CEP NR_CEPEMP, N.NR_LANCAMENTO, N.TP_NOTA, N.DT_EMISSAO, N.NR_NOTAFISCAL, CAST(N.DT_EMISSAO ||' '|| CURRENT_TIME AS TIMESTAMP) DT_EMISSAO, N.CD_PESSOA, '('||CAST(N.CD_PESSOA AS VARCHAR(10))||') '||P.NM_PESSOA NM_PESSOA, P.NR_CNPJCPF, EP.NR_CEP, 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, COALESCE(EP.NR_FONE, EP.NR_FAX) NR_FONE, EP.NR_CELULAR NR_CELCLIENTE, EP.DS_COMPLEMENTO DS_COMPLEMENTO, MOV.DS_NATUREZA, 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.CD_VENDEDOR||') '||V.NM_PESSOA NM_VENDEDOR, IP.CD_ITEM, I.DS_ITEM, --I.SG_UNIDMED, I.SG_UNIDALT, IP.VL_UNITARIO, IP.VL_DESCONTO, IP.VL_DESPESA, IP.VL_FRETE, IP.VL_TOTAL, IP.VL_TOTAL + COALESCE(IP.VL_FRETE,0) + COALESCE(IP.VL_DESPESA,0) - COALESCE(IP.VL_DESCONTO,0) VL_LIQUIDO, IP.DS_SERVICO, IP.QT_ITEMNOTA , HPQ.SG_QTDE, IP.PS_ITEMNOTA, HPQ.SG_PESO, T.VL_PRECO VL_PRECOVENDA, (
SELECT V_TIPO
FROM HABILITA_PESOQTDE (IP.CD_ITEM)) TIPO, 'Observação.: '||N.DS_OBSERVACAO DS_OBSERVACAO, P.NM_FANTASIA, F.DS_FORMAPAGTO, G.DS_GRADE, CAST(NULL AS VARCHAR(30))DS_DESCRICAO,CAST(NULL AS NUMERIC(18,2))VL_DIFERENCA, IIF(N.ST_NOTA = 'C', 'Nota Fiscal Cancelada', iif(N.ST_NOTA = 'E', 'Nota Fiscal Excluida', Null)) DS_ST_NOTA, C.ST_CONDPAGTO
FROM NOTA N
INNER JOIN ITEMNOTA IP ON (N.NR_LANCAMENTO = IP.NR_LANCAMENTO
AND N.CD_EMPRESA = IP.CD_EMPRESA
AND N.TP_NOTA = IP.TP_NOTA
AND N.CD_SERIE = IP.CD_SERIE)
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 CONDPAGTO C ON (N.CD_CONDPAGTO = C.CD_CONDPAGTO)
INNER JOIN ITEM I ON (IP.CD_ITEM = I.CD_ITEM)
INNER JOIN TIPOCALCULO TP ON (TP.CD_TIPOCALCULO = I.CD_TIPOCALCULO)
INNER JOIN MOVIMENTACAO MOV ON (MOV.CD_MOVIMENTACAO = IP.CD_MOVIMENTACAO)
LEFT JOIN PESSOA V ON (V.CD_PESSOA = N.CD_VENDEDOR)
LEFT JOIN PARMFATUR ON (PARMFATUR.CD_EMPRESA = N.CD_EMPRESA)
LEFT JOIN ITEMTABPRECO T ON (T.CD_TABPRECO = PARMFATUR.CD_TABPRECO
AND T.CD_ITEM = IP.CD_ITEM)
INNER JOIN FORMAPAGTO F ON (F.CD_FORMAPAGTO = N.CD_FORMAPAGTO)
LEFT JOIN HABILITA_PESOQTDE(IP.CD_ITEM) HPQ ON (1=1)
LEFT JOIN GRADE G ON (G.CD_GRADE = I.CD_GRADE)
WHERE N.CD_EMPRESA = :CD_EMPRESA
AND N.NR_LANCAMENTO = :NR_LANCAMENTO
AND N.TP_NOTA = :TP_NOTA
AND N.CD_SERIE = :CD_SERIE CD_EMPRESA 1 NR_LANCAMENTO TP_NOTA CD_SERIE
SELECT CONTAS.DT_VENCIMENTO, CONTAS.VL_DOCUMENTO, CONTAS.NR_PARCELA, F.DS_FORMAPAGTO, LNF.O_VL_CHEQUE, LNF.O_VL_ENTRADA
FROM CONTAS
INNER JOIN VIEW_LNF028(CONTAS.CD_EMPRESA,CONTAS.NR_LANCTONOTA, CONTAS.TP_CONTAS, CONTAS.CD_SERIE) LNF ON(1=1)
LEFT JOIN FORMAPAGTO F ON (F.CD_FORMAPAGTO = CONTAS.CD_FORMAPAGTO)
WHERE CONTAS.CD_EMPRESA = :CD_EMPRESA
AND CONTAS.NR_LANCTONOTA = :NR_LANCAMENTO
AND CONTAS.TP_CONTAS = :TP_NOTA
AND CONTAS.CD_SERIE = :CD_SERIE
AND CONTAS.ST_CONTAS IN ('T', 'P', 'L')
AND CONTAS.DT_VENCIMENTO > CONTAS.DT_LANCAMENTO
ORDER BY CONTAS.DT_VENCIMENTO CD_EMPRESA 1 NR_LANCAMENTO TP_NOTA CD_SERIE
SELECT N.*
FROM ITEMNOTASEMENTE N
WHERE N.CD_EMPRESA = :CD_EMPRESA
AND N.NR_LANCAMENTO = :NR_LANCAMENTO
AND N.TP_NOTA = :TP_NOTA
AND N.CD_SERIE = :CD_SERIE
AND N.CD_ITEM = :CD_ITEM CD_EMPRESA 1 NR_LANCAMENTO TP_NOTA CD_SERIE CD_ITEM CD_EMPRESA;NR_LANCAMENTO;TP_NOTA;CD_SERIE;CD_ITEM
SELECT L.DS_LINHA, C.DS_COLUNA, G.QT_GRADE, IG.CD_CODIGOBARRA
FROM ITEMNOTAGRADE G
LEFT JOIN ITEMGRADE IG ON (IG.CD_ITEM = G.CD_ITEM
AND IG.CD_GRADE = G.CD_GRADE
AND IG.NR_LINHA = G.NR_LINHA
AND IG.NR_COLUNA = G.NR_COLUNA)
INNER JOIN LINHAGRADE L ON (L.CD_GRADE = G.CD_GRADE
AND L.NR_LINHA = G.NR_LINHA)
INNER JOIN COLUNAGRADE C ON (C.CD_GRADE = G.CD_GRADE
AND C.NR_COLUNA = G.NR_COLUNA)
WHERE G.CD_EMPRESA = :CD_EMPRESA
AND G.NR_LANCAMENTO = :NR_LANCAMENTO
AND G.TP_NOTA = :TP_NOTA
AND G.CD_SERIE = :CD_SERIE
AND G.CD_ITEM = :CD_ITEM CD_EMPRESA 1 NR_LANCAMENTO TP_NOTA CD_SERIE CD_ITEM CD_EMPRESA;NR_LANCAMENTO;TP_NOTA;CD_SERIE;CD_EMPRESA;NR_LANCAMENTO;TP_NOTA;CD_SERIE
SELECT IIF(SUM(X.VL_SALDOCLIENTE) <> 0, 'NOTA FISCAL DE TROCA','') DS_LABEL, IIF(SUM(X.VL_SALDOCLIENTE) > 0, 'Valor a Receber (Diferença): ', IIF(SUM(X.VL_SALDOCLIENTE) < 0, 'Valor a Pagar (Diferença): ','')) DS_DESCRICAO, IIF(SUM(X.VL_SALDOCLIENTE) < 0, SUM(X.VL_SALDOEMPRESA),SUM(X.VL_SALDOCLIENTE))VL_VALOR
FROM (
SELECT DISTINCT N.CD_EMPRESA,N.NR_LANCAMENTO,N.DT_EMISSAO, COALESCE(N.NR_NOTAFISCAL,N.NR_NOTAFOR) NR_NOTA, COALESCE(N.CD_SERIEFOR, N.CD_SERIE) CD_SERIENF, ITN.VL_LIQUIDO * CASE N.TP_NOTA WHEN 'E' THEN -1 ELSE 1 END VL_SALDOEMPRESA, ITN.VL_LIQUIDO * CASE N.TP_NOTA WHEN 'E' THEN 1 ELSE -1 END VL_SALDOCLIENTE
FROM NOTA N
INNER JOIN TROCANF TNF ON (TNF.CD_EMPRESADEVOL = N.CD_EMPRESA
AND TNF.NR_LANCTODEVOL = N.NR_LANCAMENTO
AND TNF.CD_SERIEDEVOL = N.CD_SERIE
AND TNF.TP_NOTADEVOL = N.TP_NOTA )
INNER JOIN ITEMNOTA ITN ON (ITN.CD_EMPRESA = N.CD_EMPRESA
AND ITN.NR_LANCAMENTO = N.NR_LANCAMENTO
AND ITN.CD_SERIE = N.CD_SERIE
AND ITN.TP_NOTA = N.TP_NOTA)
INNER JOIN PESSOA P ON (P.CD_PESSOA = N.CD_PESSOA)
WHERE TNF.CD_EMPRESA = :CD_EMPRESA
AND TNF.NR_LANCAMENTO = :NR_LANCAMENTO
AND TNF.TP_NOTA = :TP_NOTA
AND TNF.CD_SERIE = :CD_SERIE
UNION ALL
SELECT DISTINCT N.CD_EMPRESA,N.NR_LANCAMENTO,N.DT_EMISSAO, COALESCE(N.NR_NOTAFISCAL,N.NR_NOTAFOR) NR_NOTA, COALESCE(N.CD_SERIEFOR, N.CD_SERIE) CD_SERIENF, ITN.VL_LIQUIDO * CASE N.TP_NOTA WHEN 'E' THEN -1 ELSE 1 END VL_SALDOEMPRESA, ITN.VL_LIQUIDO * CASE N.TP_NOTA WHEN 'E' THEN 1 ELSE -1 END VL_SALDOCLIENTE
FROM NOTA N
INNER JOIN TROCANF TNF ON (TNF.CD_EMPRESA = N.CD_EMPRESA
AND TNF.NR_LANCAMENTO = N.NR_LANCAMENTO
AND TNF.CD_SERIE = N.CD_SERIE
AND TNF.TP_NOTA = N.TP_NOTA )
INNER JOIN ITEMNOTA ITN ON (ITN.CD_EMPRESA = N.CD_EMPRESA
AND ITN.NR_LANCAMENTO = N.NR_LANCAMENTO
AND ITN.CD_SERIE = N.CD_SERIE
AND ITN.TP_NOTA = N.TP_NOTA)
INNER JOIN PESSOA P ON (P.CD_PESSOA = N.CD_PESSOA)
WHERE TNF.CD_EMPRESA = :CD_EMPRESA
AND TNF.NR_LANCAMENTO = :NR_LANCAMENTO
AND TNF.TP_NOTA = :TP_NOTA
AND TNF.CD_SERIE = :CD_SERIE) X CD_EMPRESA 1 NR_LANCAMENTO TP_NOTA CD_SERIE CD_EMPRESA NR_LANCAMENTO TP_NOTA CD_SERIE

Pedido #2​

{frmLNF028}

Consulta #1​

SELECT PARM.ST_GERABOLETO
FROM PARMNOTA PARM
WHERE PARM.CD_EMPRESA = {iParametros[1]}
AND PARM.TP_NOTA = {Nulo(iParametros[3],}S{)}
AND PARM.CD_SERIE = {Nulo(iParametros[4],}S{)}

Consulta #2​

SELECT C.NR_NOSSONUMEROAPI {#10}
FROM CONTAS C {#10}
WHERE C.CD_EMPRESA = {nulo(iParametros[1],}I{) +#10}
AND C.NR_LANCTONOTA = {nulo(iParametros[2],}I{) +#10}
AND C.TP_CONTAS = {nulo(iParametros[3],}S{) +#10}
AND C.CD_SERIE ={nulo(iParametros[4],}S{)}

Tabelas Utilizadas​

TabelaUso
COLUNAGRADEreferenciada nas queries do layout
CONDPAGTOreferenciada nas queries do layout
CONTASreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
FORMAPAGTOreferenciada nas queries do layout
GRADEreferenciada nas queries do layout
HABILITA_PESOQTDEreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMGRADEreferenciada nas queries do layout
ITEMNOTAreferenciada nas queries do layout
ITEMNOTAGRADEreferenciada nas queries do layout
ITEMNOTASEMENTEreferenciada nas queries do layout
ITEMTABPRECOreferenciada nas queries do layout
LINHAGRADEreferenciada nas queries do layout
MOVIMENTACAOreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
NOTAreferenciada nas queries do layout
PARMFATURreferenciada nas queries do layout
PARMNOTAreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
TIPOCALCULOreferenciada nas queries do layout
TROCANFreferenciada nas queries do layout
[[VIEW_LNF028]]referenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LNF028/ULNF028.pas
  • DFM: source/LNF028/ULNF028.dfm
  • Package: source/LNF028/LNF028.dpk