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
| Tabela | Uso |
|---|---|
C | referenciada nas queries do layout |
CONTAS | referenciada nas queries do layout |
DATA_EXTENSO | referenciada nas queries do layout |
DEPENDENTESOCIO | referenciada nas queries do layout |
EMPRESA | referenciada nas queries do layout |
ENDERECOPESSOA | referenciada nas queries do layout |
ITEM | referenciada nas queries do layout |
ITEMNOTA | referenciada nas queries do layout |
MES_EXTENSO | referenciada nas queries do layout |
MUNICIPIO | referenciada nas queries do layout |
NOTA | referenciada nas queries do layout |
PARMFATUR | referenciada nas queries do layout |
PESSOA | referenciada nas queries do layout |
PESSOASOCIO | referenciada nas queries do layout |
SOCIOCLIENTE | referenciada nas queries do layout |
VALOR_EXTENSO | referenciada nas queries do layout |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LNF090/ULNF090.pas - DFM:
source/LNF090/ULNF090.dfm - Package:
source/LNF090/LNF090.dpk