Pular para o conteúdo principal

LCX027 — Listagem LCX027

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 VIEW_DIARIOCAIXA, com junção em PESSOA, filtrada por CD_EMPRESA, NR_CONTROLE, DT_VENCIMENTO, ST_CONTAS.

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 VD.DS_EMPRESA, VD.CD_USUARIO||' - '||VD.NM_USUARIO DS_USUARIO, VD.NR_CONTROLE, VD.DS_EMPRESA DS_TIPO, VD.DS_EMPRESA DS_TIPOSALDO, VD.DT_ABERTURA, VD.DT_FECHAMENTO, VD.VL_ABERTURA, VD.DS_COMPLEMENTO, VD.VL_DEBITO, VD.VL_CREDITO, VD.VL_MOVIMENTO, VD.VL_FECHAMENTO, 'M' TP_QUEBRA, VD.NR_RECIBO
FROM VIEW_DIARIOCAIXA(1, '01/01/1900', '01/01/2099', '
AND MX.NR_CONTROLE = 15 ') VD
ORDER BY VD.NR_LANCCAIXA
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 P.NM_PESSOA, C.NR_DOCUMENTO, SUM(C.VL_SALDO) VL_SALDO, {CHR}

Caixa #3​

SELECT X.CD_USUARIO, X.DT_ABERTURA, CAST(COALESCE(X.DT_FECHAMENTO,CURRENT_TIMESTAMP) AS DOM_TIMESTAMP) DT_FECHAMENTO, X.VL_ABERTURA, X.VL_FECHAMENTO, X.NR_CONTROLE, X.CD_USUARIO||' - '||U.NM_USUARIO DS_USUARIO
FROM CAIXA X
LEFT JOIN USUARIO U ON (U.CD_USUARIO = X.CD_USUARIO)
WHERE X.CD_EMPRESA = {iParametros}

Text #1​

SELECT DISTINCT CAST('MOVIMENTO DE CAIXA' AS VARCHAR(100)) DS_TIPO, {CHR(10)} CASE WHEN C.TP_CONTAS = 'E' THEN 'Pagamento' ELSE 'Recebimento' END DS_CONTAS, {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 = ''X''
AND MX.TP_DOCUMENTO = ''AV'' ') 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) {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 COALESCE(C.dt_liquidacao,C.DT_VENCIMENTO) <= C.dt_lancamento) {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' {CHR(10)}
UNION ALL {CHR(10)}
SELECT DISTINCT CAST('RECEBIMENTOS/PAGTOS AVULSOS' AS VARCHAR(100)) DS_TIPO, {CHR(10)} CASE WHEN C.TP_CONTAS = 'E' THEN 'Pagamento' ELSE 'Recebimento' END DS_CONTAS, {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 = ''X''
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)}
LEFT JOIN MOVTOPROCESSO MP ON (MP.cd_empresa = VD.CD_EMPRESA
AND MP.nr_processo = VD.NR_PROCESSO) {CHR(10)}
LEFT 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 COALESCE(C.dt_liquidacao,C.DT_VENCIMENTO) > C.dt_lancamento) {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' {CHR(10)}
UNION ALL {CHR(10)}
SELECT DISTINCT CAST('RECEBIMENTOS/PAGTOS DE DUPLICATAS' AS VARCHAR(100)) DS_TIPO, {CHR(10)} CASE WHEN C.TP_CONTAS = 'E' THEN 'Pagamento' ELSE 'Recebimento' END DS_CONTAS, {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 = ''X''
AND MX.TP_DOCUMENTO = ''AV'' ') 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) {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 COALESCE(C.dt_liquidacao,C.DT_VENCIMENTO) > C.dt_lancamento) {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' {CHR(10)}
ORDER BY 1, 2, 3

Text #2​

SELECT P.NM_PESSOA, C.NR_DOCUMENTO, SUM(C.VL_SALDO) VL_SALDO, {CHR(10)}CASE T.TP_TIPOCONTA WHEN 'CR' THEN 'Duplicata' WHEN 'HR' THEN 'Cheque' ELSE 'Cartão' END DS_TIPOSALDO {CHR(10)}
FROM CONTAS C {CHR(10)}
INNER JOIN PESSOA P ON (P.CD_PESSOA = C.CD_PESSOA) {CHR(10)}
INNER JOIN TIPOCONTA T ON (T.CD_TIPOCONTA = C.CD_TIPOCONTA) {CHR(10)}
WHERE C.CD_EMPRESA = {iParametros[1] + CHR(10)}
AND C.NR_CONTROLE = {iParametros[2] + CHR(10)}
AND C.DT_VENCIMENTO > C.DT_LANCAMENTO {CHR(10)}
AND C.ST_CONTAS IN ('T', 'P') {CHR(10)}
AND T.TP_TIPOCONTA IN ('CR','HR','CT') {CHR(10)}
GROUP BY P.NM_PESSOA, C.NR_DOCUMENTO, CASE T.TP_TIPOCONTA WHEN 'CR' THEN 'Duplicata' WHEN 'HR' THEN 'Cheque' ELSE 'Cartão' END {CHR(10)}
ORDER BY P.NM_PESSOA, C.NR_DOCUMENTO

Text #3​

SELECT X.CD_USUARIO, X.DT_ABERTURA, CAST(COALESCE(X.DT_FECHAMENTO,CURRENT_TIMESTAMP) AS DOM_TIMESTAMP) DT_FECHAMENTO, X.VL_ABERTURA, X.VL_FECHAMENTO, X.NR_CONTROLE, X.CD_USUARIO||' - '||U.NM_USUARIO DS_USUARIO
FROM CAIXA X
LEFT JOIN USUARIO U ON (U.CD_USUARIO = X.CD_USUARIO)
WHERE X.CD_EMPRESA = {iParametros[1]}
AND X.NR_CONTROLE = {iParametros[2]}

Tabelas Utilizadas​

TabelaUso
CAIXAreferenciada nas queries do layout
CONTASreferenciada nas queries do layout
MOVTOPROCESSOreferenciada 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/LCX027/ULCX027.pas
  • DFM: source/LCX027/ULCX027.dfm
  • Package: source/LCX027/LCX027.dpk