Pular para o conteúdo principal

LNF090 — Listagem LNF090

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 PESSOASOCIO, com junção em ITEMNOTA, PESSOA, EMPRESA, ITEM, PARMFATUR, ENDERECOPESSOA (+2), filtrada por CD_PESSOASOCIO, JO, NR_LANCAMENTO, CD_EMPRESA, TP_NOTA, CD_SERIE (+7).

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​

SELECT case when (
SELECT FIRST 1 ps.CD_PESSOA
FROM pessoasocio ps
WHERE ps.CD_PESSOASOCIO = N.CD_PESSOA) is NOT null then (
SELECT FIRST 1 ps.CD_PESSOA
FROM pessoasocio ps
WHERE ps.CD_PESSOASOCIO = N.CD_PESSOA) ELSE N.CD_PESSOA END CD_PSPESSOA, --COALESCE(PS.CD_PESSOA, N.CD_PESSOA) CD_PSPESSOA, N.CD_EMPRESA, E.NM_EMPRESA, P.NM_PESSOA, N.DT_EMISSAO, N.NR_NOTAFISCAL, cast(N.DT_EMISSAO ||' '|| current_time as timestamp ) DT_EMISSAO, current_date + 90 DT_Vencto, N.CD_PESSOA, '('||N.CD_VENDEDOR||') '||V.NM_PESSOA NM_VENDEDOR, '*** '||(
SELECT O_VALOR
FROM VALOR_EXTENSO(IP.VL_TOTAL))||' ***' Extenso, IP.CD_ITEM, I.DS_ITEM, IP.VL_UNITARIO, IP.vl_total, N.NR_LANCAMENTO, N.TP_NOTA, N.CD_SERIE
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 EMPRESA E on (N.CD_EMPRESA = E.CD_EMPRESA)
INNER JOIN PESSOA PE on (E.CD_PESSOA = PE.CD_PESSOA)
INNER JOIN ITEM I on (IP.CD_ITEM = I.CD_ITEM)
INNER JOIN PARMFATUR PF ON (PF.CD_EMPRESA = N.CD_EMPRESA)
LEFT JOIN PESSOA V on (V.CD_PESSOA = N.CD_VENDEDOR) --
LEFT JOIN PESSOASOCIO PS ON(PS.CD_PESSOASOCIO = N.CD_PESSOA)
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 N.CD_EMPRESA, E.NM_EMPRESA, PE.NR_CNPJCPF NR_CNPJEMP, N.NR_LANCAMENTO, N.TP_NOTA, N.DT_EMISSAO, N.NR_NOTAFISCAL, N.CD_SERIE, N.DT_EMISSAO, CASE PF.CD_CONSUMIDOR WHEN N.CD_PESSOA THEN N.DS_OBSERVACAO ELSE '('||cast(N.CD_PESSOA as varchar(10))||') '||P.NM_PESSOA END NM_PESSOA, N.CD_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, P.NM_FANTASIA DS_OBSERVACAO, C.DT_VENCIMENTO, C.VL_DOCUMENTO, extract(day
FROM C.DT_VENCIMENTO) DIA, (
SELECT O_DS_MES
FROM MES_EXTENSO(C.DT_VENCIMENTO)) MES, extract(year
FROM C.DT_VENCIMENTO) ANO, (
SELECT O_VALOR
FROM VALOR_EXTENSO(C.VL_DOCUMENTO)) VL_EXTENSO, (
SELECT O_DS_DATA
FROM DATA_EXTENSO(C.DT_VENCIMENTO)) DT_EXTENSA
FROM NOTA 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)
INNER JOIN EMPRESA E on (N.CD_EMPRESA = E.CD_EMPRESA)
INNER JOIN PESSOA PE on (E.CD_PESSOA = PE.CD_PESSOA)
INNER JOIN CONTAS C on (C.CD_EMPRESA = N.CD_EMPRESA
AND C.NR_LANCTONOTA = N.NR_LANCAMENTO
AND C.CD_SERIE = N.CD_SERIE
AND C.TP_CONTAS = N.TP_NOTA)
INNER JOIN PARMFATUR PF ON (PF.CD_EMPRESA = N.CD_EMPRESA)
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

Consulta #1​

SELECT S.CD_PESSOA, D.CD_PESSOADEPENDENTE
FROM NOTA N
LEFT JOIN SOCIOCLIENTE S ON (S.CD_PESSOA = N.CD_PESSOA)
LEFT JOIN DEPENDENTESOCIO D ON (D.CD_PESSOADEPENDENTE = N.CD_PESSOA)
WHERE N.CD_EMPRESA = {Parametros[1]}
AND N.NR_LANCAMENTO = {Parametros[2]}
AND N.TP_NOTA = {Nulo(Parametros[3],}S{)}
AND N.CD_SERIE = {Nulo(Parametros[4],}S{)}

Consulta #2​

UPDATE SOCIOCLIENTE S
SET S.DT_EXAMEPISCINA = current_date, S.DT_EXAMEPISCINAVENC = current_date + 90
WHERE S.CD_PESSOA = {Socio}

Consulta #3​

UPDATE DEPENDENTESOCIO S
SET S.DT_EXAMEPISCINA = current_date, S.DT_EXAMEPISCINAVENC = current_date + 90
WHERE S.CD_PESSOADEPENDENTE = {Dependente}

Tabelas Utilizadas​

TabelaUso
Creferenciada nas queries do layout
CONTASreferenciada nas queries do layout
DATA_EXTENSOreferenciada nas queries do layout
DEPENDENTESOCIOreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMNOTAreferenciada nas queries do layout
MES_EXTENSOreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
NOTAreferenciada nas queries do layout
PARMFATURreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
PESSOASOCIOreferenciada nas queries do layout
SOCIOCLIENTEreferenciada nas queries do layout
VALOR_EXTENSOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LNF090/ULNF090.pas
  • DFM: source/LNF090/ULNF090.dfm
  • Package: source/LNF090/LNF090.dpk