Pular para o conteúdo principal

LNF168 — Listagem LNF168

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 CONTAS, filtrada por CD_EMPRESA, NR_LANCTONOTA, TP_CONTAS, CD_SERIE, ST_CONTAS.

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​

tabCondPagto​

SELECT N.DT_VENCIMENTO, N.DT_LANCAMENTO, N.NR_PARCELA
FROM CONTAS N
WHERE N.CD_EMPRESA = :CD_EMPRESA
AND N.NR_LANCTONOTA = :NR_LANCAMENTO
AND N.TP_CONTAS = :TP_NOTA
AND N.CD_SERIE = :CD_SERIE
AND N.ST_CONTAS <> 'C'
ORDER BY N.DT_VENCIMENTO CD_EMPRESA 1 NR_LANCAMENTO TP_NOTA CD_SERIE

tabPRINCIPAL​

SELECT {#10} CD_EMPRESA, NR_LANCAMENTO, CD_SERIE, TP_NOTA, ST_NOTA, NR_NOTAFISCAL, NR_NOTAFOR, {#10} VL_NOTAFISCAL, VL_CONTABIL, {#10} (
SELECT SUM(INO.VL_TOTAL) {#10}
FROM ITEMNOTA INO {#10}
WHERE (INO.CD_EMPRESA = R.CD_EMPRESA {#10}
AND INO.NR_LANCAMENTO = R.NR_LANCAMENTO {#10}
AND INO.CD_SERIE = R.CD_SERIE {#10}
AND INO.TP_NOTA = R.TP_NOTA)) VL_TOTPRODUTOS, VL_DESCONTO, VL_FRETE, VL_DESPESA, {#10} CD_CONDPAGTO, DS_CONDPAGTO, DT_EMISSAO, DT_VENCIMENTO, CD_FORMAPAGTO, {#10} DS_FORMAPAGTO, DS_OBSNOTA, DS_OBSFISCAL, NM_VENDEDORCABEC, {#10} CD_NM_VENDEDORCABEC, O_NM_VENDEDORES, DS_LOGOTIPO, DS_MENSAGEM, NR_PLACARECAP, NR_PLACA, {#10} E_NM_RAZAOSOCIAL, E_NM_FANTASIA, E_NR_CNPJCPF, E_DS_EMAIL, E_DS_SITE, {#10} E_DS_ENDERECO, E_DS_MUNICIPIO, E_NR_ENDERECO, E_DS_BAIRRO, {#10} E_DS_COMPLEMENTO, E_NR_CEP, E_NR_INSCEST, E_NR_FONE, E_NR_CELULAR, {#10} E_DS_ENDCOMPLETO, E_NR_FAX, C_CD_PESSOA, C_NM_CLIENTE, C_NM_FANTASIA, {#10} C_NR_CNPJCPF, C_DS_EMAIL, C_DS_SITE, C_DS_ENDERECO, C_DS_MUNICIPIO, {#10} C_NR_ENDERECO, C_DS_BAIRRO, C_DS_COMPLEMENTO, C_NR_CEP, C_NR_INSCEST, {#10} C_NR_FONE, C_NR_CELULAR, C_DS_ENDCOMPLETO, C_NR_INSCPRODUTOR, C_NR_FAX, {#10} DH_EMISSAO, O_NR_LINHA, (CAST(VL_NOTAFISCAL AS DOM_NUMERIC15_2) + CAST(VL_DESCONTO AS DOM_NUMERIC15_2)) VL_TOTNOTA, {#10} {SeSenao(stEnviaCampoDB,}IIF(DT_EMISSAO = DT_VENCIMENTO, FORMAT_MESSAGE('À Vista'), DS_CONDPAGTO) {, Nulo(dsCondPagto,}S{))}DS_MEMOCONDPAGTO,{#10} LPAD(CD_EMPRESA, 9, '0')||LPAD(C_CD_PESSOA, 9, '0')||LPAD(CD_SERIE, 5, '-')||LPAD(COALESCE(NR_NOTAFOR,NR_NOTAFISCAL), 9, '0') DS_CODBARRASCANHOTO{#10} {#10}
FROM RETORNA_CABECNF_RECAP({Nulo(iParametros[1],}I{)}, {Nulo(iParametros[2],}I{)}, { Nulo(iParametros[4],}S{)}, {Nulo(iParametros[3],}S{)}) R {#10}
LEFT JOIN RETORNA_LINHAS({Nulo(iQtCopias,}I{)} ) RL ON (1 = 1)

tabSUB1​

SELECT P.IDORDEMPRODUCAORECAP, P.NRSERIE, P.NRDOT, P.NRFOGO, P.DTANOPNEU, P.VLUNITARIO, P.VLDESCONTO, P.DSMODELO, {#10} P.DSMARCA, P.DSMEDIDAPNEU, P.DSGARANTIA, P.DS_SITUACAO, P.QTCONSERTOS, P.QTDESCONTADA, P.QTCONSERTOLIQUIDO, {#10} COALESCE(P.QTPNEU, IIF(P.IDORDEMPRODUCAORECAP IS NULL , R.N_QTDE , 1)) QTDE, {#10} {#10} (COALESCE(P.QTPNEU, IIF(P.IDORDEMPRODUCAORECAP IS NULL , R.N_QTDE , 1)) * R.N_VL_UNITARIO) I_VL_TOT_CALC, {#10} (R.N_VL_DESCONTO / COALESCE(COALESCE(NULLIF(R.N_QTDE,0),1) , IIF(P.IDORDEMPRODUCAORECAP IS NULL , COALESCE(NULLIF(R.N_QTDE,0),1) , 1)) ) I_VL_DESC, {#10} coalesce( {#10} IIF(COALESCE(P.VL_DESCONTOPEDIDO, 0) <> COALESCE(R.N_VL_DESCONTO, 0)
AND (R.N_VL_DESCONTO = 0) , {#10} IIF(R.N_VL_LIQUIDO > 0
AND P.QTCONSERTOLIQUIDO <> P.QTCONSERTOS
AND r.N_VL_DESCONTO > 0, {#10} IIF(P.QTCONSERTOS > 0, /* VERIFICA SE É CONSERTO*/ {#10} IIF(COALESCE(N.ST_INTEGRADO, PF.ST_PEDVENDA) = 'S', /*VERIFICA Como foi faturado MFA001*/ {#10} ((R.N_VL_DESCONTO - (R.N_VL_TOTAL / COALESCE(P.QTPNEU, IIF(P.IDORDEMPRODUCAORECAP IS NULL, R.N_QTDE, 1)))) / COALESCE(P.QTPNEU, IIF(P.IDORDEMPRODUCAORECAP IS NULL, R.N_QTDE, 1))) + P.VL_DESCONTOPEDIDO, /*Calculo se for tipo S*/ {#10} P.VL_DESCONTOPEDIDO + COALESCE(R.N_VL_DESCONTO, 0)), /*Calculo se for tipo D*/ {#10} R.N_VL_DESCONTO / COALESCE(P.QTPNEU, IIF(P.IDORDEMPRODUCAORECAP IS NULL, R.N_QTDE, 1))), {#10} R.N_VL_DESCONTO), {#10} R.N_VL_DESCONTO), {#10} 0) C_VL_DESC, /*Aqui caso não seja concerto*/ {#10} coalesce( {#10} IIF (P.QTCONSERTOS > 0, /* VERIFICA SE É CONSERTO*/ {#10} IIF (COALESCE(N.ST_INTEGRADO,PF.ST_PEDVENDA) = 'S', /*VERIFICA Como foi faturado MFA001*/ {#10} ((COALESCE( R.N_VL_DESCONTO,0)+R.N_VL_LIQUIDO)/P.QT_ITEMNOTA)* COALESCE(P.QTPNEU, IIF(P.IDORDEMPRODUCAORECAP IS NULL , R.N_QTDE , 1)), {#10} ( iif (p.QTDESCONTADA >0,(P.VLTOTAL / P.QTCONSERTOS)- P.VLDESCONTO,(P.VLTOTAL / P.QTCONSERTOS))* COALESCE(P.QTPNEU, IIF(P.IDORDEMPRODUCAORECAP IS NULL , R.N_QTDE , 1)))) {#10} ,r.N_VL_TOTAL /P.QT_ITEMNOTA ),0) C_VL_TOT_CALC, {#10} R.CD_EMPRESA, R.NR_LANCAMENTO, R.TP_NOTA, R.CD_SERIE, {#10} coalesce( {#10} IIF (P.QTCONSERTOS > 0, /* VERIFICA SE É CONSERTO*/ {#10} IIF (COALESCE(N.ST_INTEGRADO,PF.ST_PEDVENDA) = 'S', /*VERIFICA Como foi faturado MFA001*/ {#10} (COALESCE( R.N_VL_DESCONTO,0)+R.N_VL_LIQUIDO)/P.QT_ITEMNOTA, {#10} iif (p.QTDESCONTADA >0,(P.VLTOTAL / P.QTCONSERTOS)- P.VLDESCONTO,(P.VLTOTAL / P.QTCONSERTOS))) {#10} ,r.N_VL_TOTAL /P.QT_ITEMNOTA ),0) C_VL_UNITARIO, {#10} R.CD_ITEM, R.N_CD_ITEM, R.N_DS_ITEM, R.N_CD_DS_ITEM, R.N_DS_OBSITEM, {#10} COALESCE(P.SG_UNIDMED,R.N_SG_UNIDMED) N_SG_UNIDMED, {#10} R.N_SG_UNIDALT, R.N_VL_UNITARIO, R.N_VL_TOTAL, R.N_VL_DESCONTO, R.N_VL_DESPESA, R.N_VL_FRETE,{#10} ((R.N_VL_LIQUIDO / NULLIF(COALESCE(R.N_PS_ITEMNOTA,R.N_QT_ITEMNOTA),0)) * R.N_QTDE) N_VL_LIQUIDO,( COALESCE(R.N_VL_LIQUIDO, 0) - COALESCE(R.N_VL_FRETE,0) ) N_VL_LIQUIDOPROD, {#10} IIF (P.QTCONSERTOS > 0, /* VERIFICA SE É CONSERTO*/ {#10} ( COALESCE(R.N_VL_LIQUIDO, 0) - COALESCE(R.N_VL_FRETE,0) ),{#10} ( COALESCE(R.N_VL_LIQUIDO, 0) - COALESCE(R.N_VL_FRETE,0) )/P.QT_ITEMNOTA) C_VL_LIQUIDOPROD, {#10} R.N_QT_ITEMNOTA, R.N_PS_ITEMNOTA, R.N_QT_ITEM, R.N_CD_CFO, R.N_CD_CST, R.N_CD_CSOSN, R.N_NR_NCM, {#10} R.N_CD_FORNECEDOR1, R.N_CD_FORNECEDOR2, {#10} COALESCE(P.SG_UNIDMED,R.N_SG_QUANTIDADE)N_SG_QUANTIDADE, {#10} COALESCE(P.QTPNEU, IIF(P.IDORDEMPRODUCAORECAP IS NULL , R.N_QTDE , 1)) N_QTDE, {#10} N_SG_QUANTIDADE, {#10} (COALESCE(P.QTPNEU, IIF(P.IDORDEMPRODUCAORECAP IS NULL , R.N_QTDE , 1)) * R.N_VL_UNITARIO - ( {#10} iif(R.N_VL_DESCONTO is not null ,R.N_VL_DESCONTO / COALESCE(COALESCE(NULLIF(R.N_QTDE,0),1) , IIF(P.IDORDEMPRODUCAORECAP IS NULL , COALESCE(NULLIF(R.N_QTDE,0),1) , 1)),0) ) ) R_VL_TOT_CALC, {#10} r.N_VL_UNITARIO * COALESCE(P.QTPNEU, IIF(P.IDORDEMPRODUCAORECAP IS NULL , R.N_QTDE , 1))- coalesce(R.N_VL_FRETE,0) -iif(R.N_VL_DESCONTO is not null ,R.N_VL_DESCONTO / COALESCE(COALESCE(NULLIF(R.N_QTDE,0),1) , IIF(P.IDORDEMPRODUCAORECAP IS NULL , COALESCE(NULLIF(R.N_QTDE,0),1) , 1)),0) {#10} R_VL_TOT_CALCS {#10}
FROM RETORNA_ITENSNF_RECAP(:CD_EMPRESA, :NR_LANCAMENTO, :CD_SERIE, :TP_NOTA) R {#10}
LEFT JOIN RETORNA_PNEUSNF_RECAP(R.CD_EMPRESA, R.NR_LANCAMENTO, R.CD_SERIE, R.TP_NOTA, R.CD_ITEM) P ON (1 = 1) {#10}
INNER JOIN NOTA N ON (N.CD_EMPRESA = R.CD_EMPRESA {#10}
AND N.NR_LANCAMENTO = R.NR_LANCAMENTO {#10}
AND N.CD_SERIE = R.CD_SERIE {#10}
AND N.TP_NOTA = R.TP_NOTA) {#10}
INNER JOIN PESSOA PE ON (PE.CD_PESSOA = N.CD_PESSOA){#10}
INNER JOIN ITEM ITE ON (ITE.CD_ITEM = R.CD_ITEM){#10}
LEFT JOIN PARMFATUR PF ON (PF.CD_EMPRESA = :CD_EMPRESA){#10}
LEFT JOIN PARAMRECAP PR ON (PR.IDEMPRESA = :CD_EMPRESA){#10}
ORDER BY P.IDORDEMPRODUCAORECAP, P.NRSERIE, P.NRDOT, P.NRFOGO

tabSUB2​

SELECT V_NR_LANCAMENTO, V_NR_DOCUMENTO||'/'||V_NR_PARCELA V_NR_DOCUMENTO, V_DS_PAGTO, {#10} V_VL_DOCUMENTO, V_DT_VENCIMENTO, V_NR_PARCELA||'/'||V_NR_TOTPARCELAS V_NR_PARCELAS {#10}
FROM RETORNA_CONTAS (:CD_EMPRESA, :NR_LANCAMENTO, {#10} :CD_SERIE, :TP_NOTA, :C_CD_PESSOA, {#10} 500, 'V')

parm​

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​

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
CONTASreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMNOTAreferenciada nas queries do layout
NOTAreferenciada nas queries do layout
PARAMRECAPreferenciada nas queries do layout
PARMFATURreferenciada nas queries do layout
PARMNOTAreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
RETORNA_CABECNF_RECAPreferenciada nas queries do layout
RETORNA_CONTASreferenciada nas queries do layout
RETORNA_ITENSNF_RECAPreferenciada nas queries do layout
RETORNA_LINHASreferenciada nas queries do layout
RETORNA_PNEUSNF_RECAPreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LNF168/ULNF168.pas
  • DFM: source/LNF168/ULNF168.dfm
  • Package: source/LNF168/LNF168.dpk