Pular para o conteúdo principal

LNF140 — Listagem LNF140

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 PARMFATUR, com junção em PESSOA, ITEMNOTA, IMPOSTONOTA, ITEM, MARCA, GRADE (+15), filtrada por CD_EMPRESA, NR_, CD_VENDEDOR, ST_NOTA, TP_UNIDADE, V_TIPO (+17).

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​

tabNOTA #1​

SELECT DISTINCT --EMPRESA-- N.CD_EMPRESA, PE.NM_PESSOA NM_EMPRESA, PE.NM_FANTASIA , PE.NR_CNPJCPF NR_CNPJEMPRESA, EE.NR_INSCEST NR_INSCESTEMPRESA, EE.NR_INSCMUN NR_INSCMUNEMPRESA, PE.DS_SITE DS_SITEEMPRESA, PE.DS_EMAIL DS_EMAILEMPRESA, EE.DS_ENDERECO DS_ENDEMPRESA, EE.NR_ENDERECO NR_ENDEMPRESA, EE.NR_CEP NR_CEPEMPRESA, EE.DS_BAIRRO DS_BAIRROEMPRESA, EE.DS_COMPLEMENTO DS_COMPEMPRESA, ME.DS_MUNICIPIO DS_MUNEMPRESA, EE.NR_FONE NR_FONEEMPRESA, EE.NR_FAX NR_FAXEMPRESA, PA.DS_LOGOTIPO, COALESCE(PU.NM_PESSOA,U.NM_USUARIO) NM_USUARIO, EE.DS_ENDERECO||COALESCE(', Nº '|| EE.NR_ENDERECO,' ')||COALESCE(', Cep: '||EE.NR_CEP,' ') || COALESCE(', Bairro: '|| EE.DS_BAIRRO,' ')||Coalesce(', '||EE.DS_COMPLEMENTO,' ')|| COALESCE(' - '||ME.DS_MUNICIPIO||' , '||ESE.DS_ESTADO,' ') DS_ENDCOMPLETOEMPRESA, '('||N.CD_EMPRESA||') '||COALESCE(PE.NM_FANTASIA, '') NM_FANTCOD, COALESCE(PE.NM_FANTASIA||' - ', '')||COALESCE(PE.NM_PESSOA, '') NM_FANTEMPRESA, '('||N.CD_EMPRESA||') '||COALESCE(PE.NM_FANTASIA||' - ', '')||COALESCE(PE.NM_PESSOA, '') NM_FANTEMPRESACOD, '('||N.CD_EMPRESA||') '||COALESCE(PE.NM_PESSOA, '')||COALESCE(' - '||PE.NM_FANTASIA, '') NM_EMPRESAFANTCOD, --CLIENTE-- P.NM_PESSOA, P.CD_PESSOA, P.NR_CNPJCPF, P.DS_EMAIL, P.NM_FANTASIA NM_FANTASIAPESSOA, EP.DS_ENDERECO DS_ENDPESSOA, EP.NR_ENDERECO NR_ENDPESSOA, EP.NR_CEP NR_CEPPESSOA, EP.DS_BAIRRO DS_BAIRROPESSOA, EP.DS_COMPLEMENTO DS_COMPPESSOA, MP.DS_MUNICIPIO DS_MUNPESSOA, EP.NR_FONE, EP.NR_FAX, EP.DS_CONTATO, EP.NR_CELULAR, EP.DS_ENDERECO||COALESCE(', Nº '|| EP.NR_ENDERECO,' ')||COALESCE(', Cep: '||EP.NR_CEP,' ') || COALESCE(', Bairro: '|| EP.DS_BAIRRO,' ')||Coalesce(', '||EP.DS_COMPLEMENTO,' ')|| COALESCE(' - '||MP.DS_MUNICIPIO||' , '||ESP.DS_ESTADO,' ') DS_ENDCOMPLETOPESSOA, (
SELECT CASE PFR.ST_OBSCLIENTE WHEN 'S' THEN P.DS_OBSERVACAO WHEN 'O' THEN P.DS_OBSFINANCEIRO ELSE NULL END
FROM PARMFATUR PFR
WHERE PFR.CD_EMPRESA = N.CD_EMPRESA ) DS_OBSPESSOA, '('||P.CD_PESSOA||') '||COALESCE(P.NM_FANTASIA, '') NM_FANTPESSOACOD, COALESCE(P.NM_FANTASIA||' - ', '')||COALESCE(P.NM_PESSOA, '') NM_FANTPESSOA, '('||P.CD_PESSOA||') '||COALESCE(P.NM_FANTASIA||' - ', '')||COALESCE(P.NM_PESSOA, '') NM_CODFANTPESSOA, '('||P.CD_PESSOA||') '||COALESCE(P.NM_PESSOA, '')||COALESCE(' - '||P.NM_FANTASIA, '') NM_PESSOAFANTCOD, EP.NR_INSCEST, --NOTA-- COALESCE(N.NR_NOTAFOR,N.NR_NOTAFISCAL) NR_DOCUMENTO, N.DT_EMISSAO DT_DOCUMENTO, N.DT_REGISTRO HR_DOCUMENTO, FORMATA_DATA(N.DT_EMISSAO,'%d/%m/%y')||' - '||FORMATA_DATA(N.DT_REGISTRO,'%H:%M:%S') DT_DOCUMENTOHORA, V.CD_PESSOA||' - '||V.NM_PESSOA NM_VENDEDOR, (
SELECT FIRST 1 DS_ROTA
FROM ROTA
WHERE CD_VENDEDOR = V.CD_PESSOA) DS_ROTA, pc.CD_PESSOA||' - '||PC.NM_PESSOA NM_COMPRADOR, IIF(N.ST_NOTA = 'C', 'Nota Fiscal Cancelada', iif(N.ST_NOTA = 'E', 'Nota Fiscal Excluida', Null)) DS_ST_NOTA, --PRODUTO-- I.CD_ITEM, I.DS_ITEM, M.DS_MARCA, I.CD_GRADE, G.DS_GRADE, ITN.CD_TABPRECO, RP.O_VL_PRECO VL_PRECO, ITN.VL_UNITARIO, ITN.VL_TOTAL, ITN.VL_TOTAL - SUM(IPN.VL_IMPOSTO) VL_LIQIMPTOT, ITN.VL_UNITARIO - (SUM(IPN.VL_IMPOSTO) * ITN.VL_UNITARIO / ITN.VL_TOTAL)VL_LIQIMPUNIT, ITN.DS_SERVICO DS_OBSERVACAOPROD, I.DS_ESPECIFICACAO DS_OBSERVACAO, I.CD_CODIGOBARRA, N.DS_OBSERVACAO DS_OBSNOTA, I.CD_FORNECEDOR1, COALESCE(I.PS_LIQUIDOEMB,0) + COALESCE(I.PS_EMBALAGEM,0) PS_ITEM, SUM(IPN.VL_IMPOSTO) VL_IMPOSTO, ITN.VL_DESCONTO VL_DESCITEM, ITN.VL_TOTAL - COALESCE(ITN.VL_DESCONTO,0) VL_LIQUIDOITEM, RP1.O_VL_PRECO VL_PRECOTAB1, ITN.VL_FRETE, I.SG_UNIDMED SG_UNIDMED, IIF(HPQ.TP_UNIDADE <> 'T', HPQ.SG_QTDE, '') SG_UNIDALT, ITN.QT_ITEMNOTA, ITN.PS_ITEMNOTA, IIF(HPQ.V_TIPO = 'Q', ITN.QT_ITEMNOTA, ITN.PS_ITEMNOTA) QTDE, IIF(HPQ.V_TIPO = 'Q', COALESCE(I.SG_UNIDALT,I.SG_UNIDMED), I.SG_UNIDMED) SIGLA_UNIDADE, CASE WHEN (
SELECT TC.TP_UNIDADE
FROM TIPOCALCULO TC
WHERE TC.CD_TIPOCALCULO = I.CD_TIPOCALCULO) = 'Q' THEN CAST(ITN.QT_ITEMNOTA * RP1.O_VL_PRECO AS DOM_NUMERIC15_2) ELSE CAST(ITN.PS_ITEMNOTA * RP1.O_VL_PRECO AS DOM_NUMERIC15_2) END VL_TOTPRAZO, /*vl_tot A Prazo*/ CASE WHEN (
SELECT TC.TP_UNIDADE
FROM TIPOCALCULO TC
WHERE TC.CD_TIPOCALCULO = I.CD_TIPOCALCULO) = 'Q' THEN CAST(ITN.QT_ITEMNOTA * RP.O_VL_PRECO AS DOM_NUMERIC15_2) ELSE CAST(ITN.PS_ITEMNOTA * RP.O_VL_PRECO AS DOM_NUMERIC15_2) END VL_TOTAVISTA, /*vl_tot A Vista*/ CASE WHEN I.TP_ITEM = 'S'
AND ITN.DS_SERVICO IS NOT NULL THEN ITN.DS_SERVICO ELSE I.DS_ITEM END DS_ITEM_SERVICO, CASE WHEN I.TP_ITEM = 'S' THEN 1 ELSE 2 END NR_ORDER, CASE WHEN I.TP_ITEM = 'P' THEN 'Produtivo (Industrializado)' WHEN I.TP_ITEM = 'I' THEN 'Improdutivo (Revenda)' WHEN I.TP_ITEM = 'S' THEN 'Serviço' ELSE 'Aplicação Imediata' END DS_TP_ITEM, --RODAPÉ-- N.CD_CONDPAGTO, C.DS_CONDPAGTO, N.CD_FORMAPAGTO, F.DS_FORMAPAGTO, PA.DS_MENSAGEM, N.VL_NOTAFISCAL VL_LIQUIDO, N.VL_NOTAFISCAL + COALESCE(N.VL_DESCONTO,0) - COALESCE(N.VL_DESPESA,0) VL_NOTAFISCAL, N.VL_DESPESA, N.VL_DESCONTO, SUM(COALESCE(ITN.PS_ITEMNOTA,ITN.QT_ITEMNOTA)) QT_TOTAL, RDC.DS_ENDCOMPLETO DS_ENDCOBRANCA, RDE.DS_ENDCOMPLETO DS_ENDENTREGA , i.tp_item, N.TP_NOTA, N.CD_SERIE, N.NR_LANCAMENTO, N.DS_OBSNOTA DS_OBSERVACAONOTA
FROM NOTA N
INNER JOIN PESSOA P ON (N.CD_PESSOA = P.CD_PESSOA)
INNER JOIN ITEMNOTA ITN ON (ITN.CD_EMPRESA = N.CD_EMPRESA
AND ITN.NR_LANCAMENTO = N.NR_LANCAMENTO
AND ITN.TP_NOTA = N.TP_NOTA
AND ITN.CD_SERIE = N.CD_SERIE)
LEFT JOIN IMPOSTONOTA IPN ON (IPN.CD_EMPRESA = N.CD_EMPRESA
AND IPN.NR_LANCAMENTO = N.NR_LANCAMENTO
AND IPN.TP_NOTA = N.TP_NOTA
AND IPN.CD_SERIE = N.CD_SERIE
AND IPN.CD_ITEM = ITN.CD_ITEM)
INNER JOIN ITEM I ON (I.CD_ITEM = ITN.CD_ITEM)
INNER JOIN MARCA M ON (M.CD_MARCA = I.CD_MARCA)
LEFT JOIN GRADE G ON (G.CD_GRADE = I.CD_GRADE)
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 ESTADO ESP ON (ESP.SG_ESTADO = MP.SG_ESTADO)
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 ESTADO ESE ON (ESE.SG_ESTADO = ME.SG_ESTADO)
INNER JOIN CONDPAGTO C ON (N.CD_CONDPAGTO = C.CD_CONDPAGTO)
INNER JOIN PARMFATUR PARM ON (PARM.CD_EMPRESA = N.CD_EMPRESA)
LEFT JOIN PESSOAFISICA PF ON (PF.CD_PESSOA = P.CD_PESSOA)
LEFT JOIN PESSOA V ON (V.CD_PESSOA = N.CD_VENDEDOR)
LEFT JOIN FORMAPAGTO F ON (F.CD_FORMAPAGTO = N.CD_FORMAPAGTO)
INNER JOIN PARMFATUR PA ON (PA.CD_EMPRESA = N.CD_EMPRESA)
LEFT JOIN RETORNA_DADOSCADASTRAIS(N.CD_PESSOA,'B') RDC ON (1 = 1)
LEFT JOIN RETORNA_DADOSCADASTRAIS(N.CD_PESSOA,'E') RDE ON (1 = 1)
LEFT JOIN RETORNA_PRECOITEM(N.CD_EMPRESA, ITN.CD_TABPRECO, ITN.CD_ITEM, CURRENT_DATE, N.CD_CONDPAGTO, N.DT_VENCIMENTO) RP ON (1 = 1)
LEFT JOIN RETORNA_PRECOITEM(N.CD_EMPRESA, 2, ITN.CD_ITEM, CURRENT_DATE, N.CD_CONDPAGTO, N.DT_VENCIMENTO) RP1 ON (1 = 1)
INNER JOIN USUARIO U ON (U.CD_USUARIO = N.CD_USUARIO)
LEFT JOIN PESSOA PU ON (PU.CD_PESSOA = U.CD_PESSOA)
LEFT JOIN PESSOA PC ON (PC.CD_PESSOA = N.CD_COMPRADOR)
LEFT JOIN HABILITA_PESOQTDE(I.CD_ITEM) HPQ ON(1=1)
WHERE N.CD_EMPRESA = :CD_EMPRESA
AND N.NR_LANCAMENTO = :NR_LANCAMENTO
AND N.TP_NOTA = :TP_NOTA
AND N.CD_SERIE = :CD_SERIE
GROUP BY I.TP_ITEM, DS_TP_ITEM, N.CD_EMPRESA, PE.NM_PESSOA , PE.NM_FANTASIA , PE.NR_CNPJCPF , EE.NR_INSCEST ,EE.NR_INSCMUN , PE.DS_SITE , PE.DS_EMAIL , EE.DS_ENDERECO , EE.NR_ENDERECO , EE.NR_CEP, EE.DS_BAIRRO , EE.DS_COMPLEMENTO , ME.DS_MUNICIPIO ,P.NM_PESSOA, P.CD_PESSOA, P.NR_CNPJCPF, P.DS_EMAIL, EP.DS_ENDERECO , EP.NR_ENDERECO , EP.NR_CEP , P.NM_FANTASIA, EP.DS_BAIRRO , EP.DS_COMPLEMENTO , MP.DS_MUNICIPIO , EP.NR_FONE , EP.NR_FAX, EP.NR_CELULAR, EP.NR_INSCEST, N.NR_NOTAFOR,N.NR_NOTAFISCAL, N.DT_EMISSAO , N.DT_REGISTRO , V.CD_PESSOA,V.NM_PESSOA,I.CD_ITEM,I.DS_ITEM, SG_UNIDMED, SG_UNIDALT, M.DS_MARCA, I.CD_GRADE, G.DS_GRADE,ITN.PS_ITEMNOTA,ITN.QT_ITEMNOTA, RP.O_VL_PRECO ,ITN.VL_UNITARIO, ITN.VL_TOTAL, ITN.DS_SERVICO , I.DS_ESPECIFICACAO , I.CD_CODIGOBARRA, I.CD_FORNECEDOR1, I.PS_LIQUIDOEMB, I.PS_EMBALAGEM,N.CD_CONDPAGTO, C.DS_CONDPAGTO, N.CD_FORMAPAGTO, F.DS_FORMAPAGTO, PA.DS_MENSAGEM, N.VL_NOTAFISCAL, N.VL_DESCONTO,N.VL_DESPESA, N.VL_NOTAFISCAL, N.VL_DESCONTO,RDC.DS_ENDCOMPLETO, RDE.DS_ENDCOMPLETO,EE.NR_FONE, EE.NR_FAX, PA.DS_LOGOTIPO, ITN.VL_DESCONTO, N.DS_OBSNOTA, N.DS_OBSERVACAO, EP.DS_CONTATO, P.DS_OBSERVACAO, P.DS_OBSFINANCEIRO, NM_USUARIO, ITN.NR_SEQUENCIA, I.CD_TIPOCALCULO, RP1.O_VL_PRECO, ITN.CD_TABPRECO, ESP.DS_ESTADO ,ESE.DS_ESTADO, ITN.VL_FRETE, NM_COMPRADOR, N.TP_NOTA, N.CD_SERIE, N.NR_LANCAMENTO, DS_ST_NOTA, IIF(HPQ.V_TIPO = 'Q', ITN.QT_ITEMNOTA, ITN.PS_ITEMNOTA), IIF(HPQ.V_TIPO = 'Q', COALESCE(I.SG_UNIDALT,I.SG_UNIDMED), I.SG_UNIDMED) CD_EMPRESA 1 NR_LANCAMENTO TP_NOTA CD_SERIE CD_EMPRESA;NR_LANCAMENTO;TP_NOTA;CD_SERIE
SELECT C.DT_VENCIMENTO, C.VL_DOCUMENTO, C.NR_PARCELA
FROM CONTAS C
WHERE C.CD_EMPRESA = :CD_EMPRESA
AND C.NR_LANCTONOTA = :NR_LANCAMENTO
AND C.TP_CONTAS = :TP_NOTA
AND C.CD_SERIE = :CD_SERIE
ORDER BY C.DT_VENCIMENTO CD_EMPRESA 1 NR_LANCAMENTO TP_NOTA CD_SERIE 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;CD_ITEM;TP_NOTA;NR_LANCAMENTO;CD_SERIE
SELECT ITS.QT_LOTE, ITS.NR_LOTE, LS.DT_FABRICACAO, LS.DT_VALIDADE, LS.NR_DOCUMENTO
FROM ITEMNOTASEMENTE ITS
INNER JOIN ITEMNOTA ITN ON (ITN.CD_EMPRESA = ITS.CD_EMPRESA
AND ITN.CD_SERIE = ITS.CD_SERIE
AND ITN.CD_ITEM = ITS.CD_ITEM
AND ITN.NR_LANCAMENTO = ITS.NR_LANCAMENTO
AND ITN.TP_NOTA = ITS.TP_NOTA)
INNER JOIN LOTESEMENTE LS ON (LS.CD_EMPRESA = ITS.CD_EMPRESA
AND LS.NR_LOTE = ITS.NR_LOTE
AND LS.CD_ITEM = ITS.CD_ITEM)
WHERE ITN.CD_EMPRESA = :CD_EMPRESA
AND ITN.CD_ITEM = :CD_ITEM
AND ITN.TP_NOTA = :TP_NOTA
AND ITN.NR_LANCAMENTO = :NR_LANCAMENTO
AND ITN.CD_SERIE = :CD_SERIE CD_EMPRESA CD_ITEM TP_NOTA NR_LANCAMENTO CD_SERIE

tabNOTA #2​

{frmLNF140}

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
ESTADOreferenciada nas queries do layout
FORMAPAGTOreferenciada nas queries do layout
GRADEreferenciada nas queries do layout
HABILITA_PESOQTDEreferenciada nas queries do layout
IMPOSTONOTAreferenciada 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
LINHAGRADEreferenciada nas queries do layout
LOTESEMENTEreferenciada nas queries do layout
MARCAreferenciada 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
PESSOAFISICAreferenciada nas queries do layout
RETORNA_DADOSCADASTRAISreferenciada nas queries do layout
RETORNA_PRECOITEMreferenciada nas queries do layout
ROTAreferenciada nas queries do layout
TIPOCALCULOreferenciada nas queries do layout
USUARIOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LNF140/ULNF140.pas
  • DFM: source/LNF140/ULNF140.dfm
  • Package: source/LNF140/LNF140.dpk