Pular para o conteúdo principal

LCX032 — Listagem LCX032

Visão Geral​

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

Descrição​

Consulta baseada em CONTAS, com junção em PESSOA, TIPOCONTA, NOTA, CONDPAGTO, filtrada por CD_EMPRESA, NR_CONTROLE, DT_VENCIMENTO, ST_CONTAS, TP_TIPOCONTA.

Chamada​

ExecLayout(Connection, [
// 0 - Nome do Layout de Duplicata
// 1 - Empresa
// 2 - Controle Caixa
// 3 - Visualiza -> V ou Imprime -> I
// 4 - Impressora do Parametro
]);

SQL Base​

Caixa #1​

SELECT DISTINCT P.NM_PESSOA, C.NR_DOCUMENTO, CASE WHEN CP.ST_CONDPAGTO = 'V' THEN SUM(C.VL_DOCUMENTO) ELSE N.VL_NOTAFISCAL END VL_SALDO, CASE T.TP_TIPOCONTA WHEN 'CR' THEN 'Duplicata' WHEN 'HR' THEN 'Cheque' ELSE 'Cartão' END DS_TIPOSALDO
FROM CONTAS C
INNER JOIN PESSOA P ON (P.CD_PESSOA = C.CD_PESSOA)
INNER JOIN TIPOCONTA T ON (T.CD_TIPOCONTA = C.CD_TIPOCONTA)
LEFT JOIN NOTA N ON (N.CD_EMPRESA = C.CD_EMPRESA
AND N.NR_LANCAMENTO = C.NR_LANCTONOTA
AND N.CD_SERIE = C.CD_SERIE
AND N.TP_NOTA = C.TP_CONTAS)
LEFT JOIN CONDPAGTO CP ON (CP.CD_CONDPAGTO = N.CD_CONDPAGTO)
WHERE C.CD_EMPRESA = :CD_EMPRESA
AND C.NR_CONTROLE = :NR_CONTROLE
AND C.DT_VENCIMENTO > C.DT_LANCAMENTO
AND C.ST_CONTAS IN ('T', 'P')
AND T.TP_TIPOCONTA IN ('CR','HR','CT')
GROUP BY P.NM_PESSOA, C.NR_DOCUMENTO, CP.ST_CONDPAGTO, N.VL_NOTAFISCAL, CASE T.TP_TIPOCONTA WHEN 'CR' THEN 'Duplicata' WHEN 'HR' THEN 'Cheque' ELSE 'Cartão' END
ORDER BY P.NM_PESSOA, C.NR_DOCUMENTO CD_EMPRESA NR_CONTROLE
SELECT P.NM_PESSOA, C.NR_DOCUMENTO, SUM(C.VL_SALDO) VL_SALDO, P.NM_PESSOA DS_TIPOSALDO
FROM CONTAS C
INNER JOIN PESSOA P ON (P.CD_PESSOA = C.CD_PESSOA)
WHERE C.CD_EMPRESA = 1
AND C.NR_CONTROLE = 25
AND C.DT_VENCIMENTO > C.DT_LANCAMENTO
AND C.ST_CONTAS IN ('T', 'P')
GROUP BY P.NM_PESSOA, C.NR_DOCUMENTO
ORDER BY P.NM_PESSOA, C.NR_DOCUMENTO
SELECT P.NM_PESSOA, C.NR_DOCUMENTO, SUM(C.VL_SALDO) VL_SALDO, P.NM_PESSOA DS_TIPOSALDO
FROM CONTAS C
INNER JOIN PESSOA P ON (P.CD_PESSOA = C.CD_PESSOA)
WHERE C.CD_EMPRESA = 1
AND C.NR_CONTROLE = 25
AND C.DT_VENCIMENTO > C.DT_LANCAMENTO
AND C.ST_CONTAS IN ('T', 'P')
GROUP BY P.NM_PESSOA, C.NR_DOCUMENTO
ORDER BY P.NM_PESSOA, C.NR_DOCUMENTO

Caixa #2​

SELECT DISTINCT CAST('MOVIMENTO DE CAIXA' AS VARCHAR(100)) DS_TIPO, {CHR}

TabPrazo​

SELECT DISTINCT P.NM_PESSOA, C.NR_DOCUMENTO, {#10}CASE WHEN CP.ST_CONDPAGTO = 'V' THEN {#10}SUM(C.VL_DOCUMENTO) ELSE N.VL_NOTAFISCAL END VL_SALDO, {#10}CASE T.TP_TIPOCONTA WHEN 'CR' THEN 'Duplicata' WHEN 'HR' THEN 'Cheque' ELSE 'Cartão' END DS_TIPOSALDO {#10}
FROM CONTAS C {#10}
INNER JOIN PESSOA P ON (P.CD_PESSOA = C.CD_PESSOA) {#10}
INNER JOIN TIPOCONTA T ON (T.CD_TIPOCONTA = C.CD_TIPOCONTA) {#10}
LEFT JOIN NOTA N ON (N.CD_EMPRESA = C.CD_EMPRESA {#10}
AND N.NR_LANCAMENTO = C.NR_LANCTONOTA {#10}
AND N.CD_SERIE = C.CD_SERIE {#10}
AND N.TP_NOTA = C.TP_CONTAS) {#10}
LEFT JOIN CONDPAGTO CP ON (CP.CD_CONDPAGTO = N.CD_CONDPAGTO) {#10}
WHERE C.CD_EMPRESA = {iParametros}

tabFechamento​

SELECT C.CD_EMPRESA ||' - '|| E.NM_EMPRESA DS_EMPRESA, C.CD_USUARIO ||' - '|| U.NM_USUARIO DS_USUARIO, C.NR_CONTROLE, {#10} C.DT_ABERTURA, C.VL_ABERTURA, C.DT_FECHAMENTO, C.VL_FECHAMENTO, C.DT_REGISTRO {#10}
FROM CAIXA C {#10}
INNER JOIN USUARIO U ON (U.CD_USUARIO = C.CD_USUARIO) {#10}
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = C.CD_EMPRESA) {#10}
WHERE C.NR_CONTROLE = {iParametros}

Text #1​

SELECT DISTINCT CAST('MOVIMENTO DE CAIXA' AS VARCHAR(100)) DS_TIPO, {CHR(10)} CASE VD.TP_SALDO WHEN 'X' THEN 'Caixa' WHEN 'T' THEN 'Cartão' ELSE 'Cheque' END DS_TIPOSALDO, {CHR(10)} VD.DS_EMPRESA, CAST(VD.CD_USUARIO||' - '||VD.NM_USUARIO AS VARCHAR(70)) DS_USUARIO, VD.NR_CONTROLE, {CHR(10)} VD.DT_ABERTURA, VD.DT_FECHAMENTO, VD.VL_ABERTURA, {CHR(10)} VD.DS_COMPLEMENTO, VD.VL_DEBITO, VD.VL_CREDITO, {CHR(10)} VD.VL_MOVIMENTO, VD.VL_FECHAMENTO, VD.CD_EMPRESA, VD.NR_LANCCAIXA {CHR(10)}
FROM VIEW_DIARIOCAIXA({iParametros[1]}, {CHR(10)}'01/01/1900', {CHR(10)}'12/31/2099', {CHR(10)}'
AND MX.CD_EMPRCONTROLE = {iParametros[1]}
AND MX.NR_CONTROLE = {iParametros[2]}
AND PARMSALDO.TP_SALDO IN (''X'',''T'') ') VD {CHR(10)}
LEFT JOIN VIEW_PARMSALDO(VD.CD_EMPRESA, VD.CD_CONTA, VD.TP_SALDO, VD.CD_USUARIO) P ON (1 = 1) {CHR(10)}
INNER JOIN MOVTOPROCESSO MP ON (MP.cd_empresa = VD.CD_EMPRESA
AND MP.nr_processo = VD.NR_PROCESSO
AND COALESCE(VD.NR_LANCAMENTO, MP.NR_LANCAMENTO )= MP.NR_LANCAMENTO) {CHR(10)}
INNER JOIN CONTAS C ON (C.CD_EMPRESA = MP.cd_emprcontas {CHR(10)}
AND C.nr_lancamento = MP.nr_lancamento {CHR(10)}
AND C.cd_pessoa = MP.cd_pessoa {CHR(10)}
AND C.cd_tipoconta = MP.cd_tipoconta {CHR(10)}
AND C.nr_parcela = MP.nr_parcela {CHR(10)}
AND (
SELECT COUNT(CT.NR_LANCAMENTO)
FROM CONTAS CT {#10}
INNER JOIN MOVTOPROCESSO PM ON (PM.CD_EMPRCONTAS = CT.CD_EMPRESA {#10}
AND PM.NR_LANCAMENTO = CT.NR_LANCAMENTO {#10}
AND PM.CD_PESSOA = CT.CD_PESSOA {#10}
AND PM.CD_TIPOCONTA = CT.CD_TIPOCONTA {#10}
AND PM.NR_PARCELA = CT.NR_PARCELA {#10}
AND COALESCE(CT.DT_LIQUIDACAO, CT.DT_VENCIMENTO) > CT.DT_LANCAMENTO) {#10}
WHERE PM.NR_PROCESSO = MP.NR_PROCESSO {#10}
AND PM.CD_EMPRESA = MP.CD_EMPRESA {#10}
AND PM.CD_EMPRCONTAS = MP.CD_EMPRCONTAS) = 0) {#10}
INNER JOIN movtocaixa MX ON (MX.CD_EMPRESA = VD.CD_EMPRESA
AND MX.NR_LANCCAIXA = VD.NR_LANCCAIXA) {CHR(10)}
WHERE CASE WHEN VD.TP_SALDO IN ('T','R','P')
AND COALESCE(VD.VL_CREDITO,0) > 0 THEN 0 ELSE 1 END = 1
AND P.TP_SALDO <> 'I'
AND VD.TP_SALDO <> 'T' {CHR(10)}
UNION ALL {CHR(10)}
SELECT DISTINCT CAST('RECEBIMENTOS/PAGTOS AVULSOS' AS VARCHAR(100)) DS_TIPO, {CHR(10)} CASE VD.TP_SALDO WHEN 'X' THEN 'Caixa' WHEN 'T' THEN 'Cartão' ELSE 'Cheque' END DS_TIPOSALDO, {CHR(10)} VD.DS_EMPRESA, CAST(VD.CD_USUARIO||' - '||VD.NM_USUARIO AS VARCHAR(70)) DS_USUARIO, VD.NR_CONTROLE, {CHR(10)} VD.DT_ABERTURA, VD.DT_FECHAMENTO, VD.VL_ABERTURA, {CHR(10)} VD.DS_COMPLEMENTO, VD.VL_DEBITO, VD.VL_CREDITO, {CHR(10)} VD.VL_MOVIMENTO, VD.VL_FECHAMENTO, VD.CD_EMPRESA, VD.NR_LANCCAIXA {CHR(10)}
FROM VIEW_DIARIOCAIXA({iParametros[1]}, {CHR(10)}'01/01/1900', {CHR(10)}'12/31/2099', {CHR(10)}'
AND MX.CD_EMPRCONTROLE = {iParametros[1]}
AND MX.NR_CONTROLE = {iParametros[2]}
AND PARMSALDO.TP_SALDO IN (''X'',''T'')
AND MX.NR_PROCESSO IS NULL ') VD {CHR(10)}
LEFT JOIN VIEW_PARMSALDO(VD.CD_EMPRESA, VD.CD_CONTA, VD.TP_SALDO, VD.CD_USUARIO) P ON (1 = 1) {CHR(10)}
WHERE CASE WHEN VD.TP_SALDO IN ('T','R','P')
AND COALESCE(VD.VL_CREDITO,0) > 0 THEN 0 ELSE 1 END = 1
AND P.TP_SALDO <> 'I'
AND VD.TP_SALDO <> 'T' {CHR(10)}
UNION ALL {CHR(10)}
SELECT DISTINCT CAST('RECEBIMENTOS/PAGTOS DE DUPLICATAS' AS VARCHAR(100)) DS_TIPO, {CHR(10)} CASE VD.TP_SALDO WHEN 'X' THEN 'Caixa' WHEN 'T' THEN 'Cartão' ELSE 'Cheque' END DS_TIPOSALDO, {CHR(10)} VD.DS_EMPRESA, CAST(VD.CD_USUARIO||' - '||VD.NM_USUARIO AS VARCHAR(70)) DS_USUARIO, VD.NR_CONTROLE, {CHR(10)} VD.DT_ABERTURA, VD.DT_FECHAMENTO, VD.VL_ABERTURA, {CHR(10)} VD.DS_COMPLEMENTO, VD.VL_DEBITO, VD.VL_CREDITO, {CHR(10)} VD.VL_MOVIMENTO, VD.VL_FECHAMENTO, VD.CD_EMPRESA, VD.NR_LANCCAIXA {CHR(10)}
FROM VIEW_DIARIOCAIXA({iParametros[1]}, {CHR(10)}' 01/01/1900', {CHR(10)}' 12/31/2099', {CHR(10)}'
AND MX.CD_EMPRCONTROLE = {iParametros[1]}
AND MX.NR_CONTROLE = {iParametros[2]}
AND PARMSALDO.TP_SALDO IN (''X'',''T'') ') VD {CHR(10)}
LEFT JOIN VIEW_PARMSALDO(VD.CD_EMPRESA, VD.CD_CONTA, VD.TP_SALDO, VD.CD_USUARIO) P ON (1 = 1) {CHR(10)}
INNER JOIN MOVTOPROCESSO MP ON (MP.cd_empresa = VD.CD_EMPRESA
AND MP.nr_processo = VD.NR_PROCESSO
AND COALESCE(VD.NR_LANCAMENTO, MP.NR_LANCAMENTO )= MP.NR_LANCAMENTO) {CHR(10)}
INNER JOIN CONTAS C ON (C.CD_EMPRESA = MP.cd_emprcontas {CHR(10)}
AND C.nr_lancamento = MP.nr_lancamento {CHR(10)}
AND C.cd_pessoa = MP.cd_pessoa {CHR(10)}
AND C.cd_tipoconta = MP.cd_tipoconta {CHR(10)}
AND C.nr_parcela = MP.nr_parcela {CHR(10)}
AND ((
SELECT COUNT(CT.NR_LANCAMENTO)
FROM CONTAS CT {#10}
INNER JOIN MOVTOPROCESSO PM ON (PM.CD_EMPRCONTAS = CT.CD_EMPRESA {#10}
AND PM.NR_LANCAMENTO = CT.NR_LANCAMENTO {#10}
AND PM.CD_PESSOA = CT.CD_PESSOA {#10}
AND PM.CD_TIPOCONTA = CT.CD_TIPOCONTA {#10}
AND PM.NR_PARCELA = CT.NR_PARCELA {#10}
AND COALESCE(CT.DT_LIQUIDACAO, CT.DT_VENCIMENTO) > CT.DT_LANCAMENTO) {#10}
AND COALESCE(CT.DT_LIQUIDACAO, CT.DT_VENCIMENTO) > CT.DT_LANCAMENTO {#10}
WHERE PM.NR_PROCESSO = MP.NR_PROCESSO {#10}
AND PM.CD_EMPRESA = MP.CD_EMPRESA {#10}
AND PM.CD_EMPRCONTAS = MP.CD_EMPRCONTAS)) > 0) {#10}
INNER JOIN movtocaixa MX ON (MX.CD_EMPRESA = VD.CD_EMPRESA
AND MX.NR_LANCCAIXA = VD.NR_LANCCAIXA) {CHR(10)}
WHERE CASE WHEN VD.TP_SALDO IN ('T','R','P')
AND COALESCE(VD.VL_CREDITO,0) > 0 THEN 0 ELSE 1 END = 1
AND P.TP_SALDO <> 'I'
AND VD.TP_SALDO <> 'T' {CHR(10)}
ORDER BY 1, 2

Text #2​

SELECT DISTINCT P.NM_PESSOA, C.NR_DOCUMENTO, {#10}CASE WHEN CP.ST_CONDPAGTO = 'V' THEN {#10}SUM(C.VL_DOCUMENTO) ELSE N.VL_NOTAFISCAL END VL_SALDO, {#10}CASE T.TP_TIPOCONTA WHEN 'CR' THEN 'Duplicata' WHEN 'HR' THEN 'Cheque' ELSE 'Cartão' END DS_TIPOSALDO {#10}
FROM CONTAS C {#10}
INNER JOIN PESSOA P ON (P.CD_PESSOA = C.CD_PESSOA) {#10}
INNER JOIN TIPOCONTA T ON (T.CD_TIPOCONTA = C.CD_TIPOCONTA) {#10}
LEFT JOIN NOTA N ON (N.CD_EMPRESA = C.CD_EMPRESA {#10}
AND N.NR_LANCAMENTO = C.NR_LANCTONOTA {#10}
AND N.CD_SERIE = C.CD_SERIE {#10}
AND N.TP_NOTA = C.TP_CONTAS) {#10}
LEFT JOIN CONDPAGTO CP ON (CP.CD_CONDPAGTO = N.CD_CONDPAGTO) {#10}
WHERE C.CD_EMPRESA = {iParametros[1] +#10}
AND C.NR_CONTROLE = {iParametros[2] +#10}
AND C.DT_VENCIMENTO > C.DT_LANCAMENTO {#10}
AND C.ST_CONTAS IN ('T', 'P') {#10}
AND T.TP_TIPOCONTA IN ('CR','HR','CT') {#10}
GROUP BY P.NM_PESSOA, C.NR_DOCUMENTO, CP.ST_CONDPAGTO, N.VL_NOTAFISCAL, CASE T.TP_TIPOCONTA WHEN 'CR' THEN 'Duplicata' WHEN 'HR' THEN 'Cheque' ELSE 'Cartão' END {#10}
ORDER BY P.NM_PESSOA, C.NR_DOCUMENTO

Text #3​

SELECT C.CD_EMPRESA ||' - '|| E.NM_EMPRESA DS_EMPRESA, C.CD_USUARIO ||' - '|| U.NM_USUARIO DS_USUARIO, C.NR_CONTROLE, {#10} C.DT_ABERTURA, C.VL_ABERTURA, C.DT_FECHAMENTO, C.VL_FECHAMENTO, C.DT_REGISTRO {#10}
FROM CAIXA C {#10}
INNER JOIN USUARIO U ON (U.CD_USUARIO = C.CD_USUARIO) {#10}
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = C.CD_EMPRESA) {#10}
WHERE C.NR_CONTROLE = {iParametros[2]}
AND C.CD_EMPRESA = {iParametros[1]}

Tabelas Utilizadas​

TabelaUso
CAIXAreferenciada nas queries do layout
CONDPAGTOreferenciada nas queries do layout
CONTASreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
MOVTOCAIXAreferenciada nas queries do layout
MOVTOPROCESSOreferenciada nas queries do layout
NOTAreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
TIPOCONTAreferenciada nas queries do layout
USUARIOreferenciada nas queries do layout
VIEW_DIARIOCAIXAreferenciada nas queries do layout
VIEW_PARMSALDOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LCX032/ULCX032.pas
  • DFM: source/LCX032/ULCX032.dfm
  • Package: source/LCX032/LCX032.dpk