Pular para o conteúdo principal

LCX035 — Listagem LCX035

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 RESTAURANTE, com junção em ITEMRESTAURANTE, AMBIENTE, MESA, ITEM, CONDPAGTO, filtrada por CD_EMPRESA, NR_RESTAURANTE, ST_PAGTO.

Chamada​

ExecLayout(Connection, [
// 0 - Nome do Layout
// 1 - Cod Empresa
// 2 - Nr Controle
]);

SQL Base​

tabExtrato #1​

SELECT R.NR_RESTAURANTE, R.DT_EMISSAO, CURRENT_TIME HORA, CASE R.ST_ENTREGA WHEN 'N' THEN 'Mesa.: '||CAST(R.CD_MESA AS VARCHAR(10))||' - '||MESA.DS_MESA WHEN 'S' THEN 'Identificacao.: '||R.DS_IDENTIFICACAO END DS_MESA, CAST(R.CD_AMBIENTE AS VARCHAR(10))||' - '||AMBIENTE.DS_AMBIENTE DS_AMBIENTE, COALESCE(R.VL_DESCONTO,0) VL_DESCONTO, ITEM.DS_ITEM, AVG(I.VL_UNITARIO) VL_UNITARIO, SUM(COALESCE(I.PS_PEDIDO,0) - COALESCE(I.PS_PAGTO,0)) PS_PEDIDO, SUM(COALESCE(I.VL_TOTAL,0) - COALESCE(I.VL_PAGTO,0)) VL_TOTAL
FROM RESTAURANTE R
INNER JOIN ITEMRESTAURANTE I ON (R.CD_EMPRESA = I.CD_EMPRESA
AND R.NR_RESTAURANTE = I.NR_RESTAURANTE)
LEFT JOIN AMBIENTE ON (AMBIENTE.CD_AMBIENTE = R.CD_AMBIENTE)
LEFT JOIN MESA ON (MESA.CD_AMBIENTE = R.CD_AMBIENTE
AND MESA.CD_MESA = R.CD_MESA)
INNER JOIN ITEM ON (ITEM.CD_ITEM = I.CD_ITEM)
WHERE R.CD_EMPRESA = :CD_EMPRESA
AND R.NR_RESTAURANTE = :NR_RESTAURANTE
AND I.ST_PAGTO = 'N'
GROUP BY R.NR_RESTAURANTE, R.DT_EMISSAO, R.ST_ENTREGA, R.CD_MESA, MESA.DS_MESA, R.DS_IDENTIFICACAO, R.CD_AMBIENTE, AMBIENTE.DS_AMBIENTE, ITEM.DS_ITEM, R.VL_DESCONTO
ORDER BY ITEM.DS_ITEM
SELECT ITR.CD_ITEM||' '||I.DS_ITEM DS_ITEM, SUM(ITR.PS_PEDIDO) PS_PEDIDO, SUM(CASE WHEN CP.ST_CONDPAGTO = 'V' THEN ITR.VL_TOTAL END) VL_AVISTA, SUM(CASE WHEN CP.ST_CONDPAGTO <> 'V' THEN ITR.VL_TOTAL END) VL_APRAZO
FROM ITEMRESTAURANTE ITR
INNER JOIN ITEM I ON(I.CD_ITEM = ITR.CD_ITEM)
INNER JOIN RESTAURANTE R ON(R.CD_EMPRESA = ITR.CD_EMPRESA
AND R.NR_RESTAURANTE = ITR.NR_RESTAURANTE)
INNER JOIN CONDPAGTO CP ON(CP.CD_CONDPAGTO = R.CD_CONDPAGTO)
WHERE ITR.CD_EMPRESA = :CD_EMPRESA
AND ITR.NR_CONTROLE = :NR_CONTROLE
AND R.ST_RESTAURANTE <> 'C'
GROUP BY ITR.CD_ITEM, I.DS_ITEM
HAVING SUM(ITR.PS_PEDIDO) > 0 CD_EMPRESA NR_CONTROLE

tabExtrato #2​

SELECT NR_CONTROLE, DT_ABERTURA, DT_FECHAMENTO, NM_USUARIO, VL_ABERTURA, VL_FECHAMENTO, VL_MOVIMENTO, DS_CONTA, NR_PROCESSO, CASE WHEN SUM(VL_SALDO) >= 0 THEN 'RECBTO DOC '||COALESCE(NR_DOCUMENTO,'') ELSE 'PAGTO DOC '||COALESCE(NR_DOCUMENTO,'') END DS_COMPLEMENTO, CASE WHEN SUM(VL_SALDO) >= 0 THEN SUM(VL_SALDO) ELSE 0 END VL_DEBITO, CASE WHEN SUM(VL_SALDO) < 0 THEN ABS(SUM(VL_SALDO)) ELSE 0 END VL_CREDITO, SUM(VL_SALDO) VL_SALDO
FROM (
SELECT NR_CONTROLE, DT_ABERTURA, DT_FECHAMENTO, CD_USUARIO||' - '||NM_USUARIO NM_USUARIO, VL_ABERTURA, VL_FECHAMENTO, VL_MOVIMENTO, DS_CONTA, COALESCE(NR_PROCESSO, NR_LANCCAIXA) NR_PROCESSO, NR_DOCUMENTO, CASE WHEN (COALESCE(VL_DEBITO,0) - COALESCE(VL_CREDITO,0)) >= 0 THEN ABS(COALESCE(VL_DEBITO,0) - COALESCE(VL_CREDITO,0)) ELSE 0 END VL_DEBITO, CASE WHEN (COALESCE(VL_DEBITO,0) - COALESCE(VL_CREDITO,0)) < 0 THEN ABS(COALESCE(VL_DEBITO,0) - COALESCE(VL_CREDITO,0)) ELSE 0 END VL_CREDITO, (COALESCE(VL_DEBITO,0) - COALESCE(VL_CREDITO,0)) VL_SALDO
FROM VIEW_DIARIOCAIXA ({iCdEmpresa}, null, null, '
AND PARMSALDO.TP_SALDO IN(''X'',''T'',''R'',''P'') /*AND MX.NR_LANCAMENTO IS NULL */AND MX.NR_CONTROLE = {iNrControle}') W)
GROUP BY NR_CONTROLE, DT_ABERTURA, DT_FECHAMENTO, NM_USUARIO, VL_ABERTURA, VL_FECHAMENTO, VL_MOVIMENTO, DS_CONTA, NR_PROCESSO, NR_DOCUMENTO
ORDER BY DS_CONTA, NR_PROCESSO

tabExtrato #3​

SELECT C.NR_CONTROLE, C.DT_ABERTURA, C.DT_FECHAMENTO, C.CD_USUARIO||' - '||U.NM_USUARIO NM_USUARIO, C.VL_ABERTURA, C.VL_FECHAMENTO, C.VL_MOVIMENTO
FROM CAIXA C
INNER JOIN USUARIO U ON (U.CD_USUARIO = C.CD_USUARIO)
WHERE CD_EMPRESA = {iCdEmpresa}
AND C.NR_CONTROLE = {iNrControle}

tabExtrato #4​

SELECT I.CD_ITEM, I.DS_ITEM, RI.DS_ESTORNO, SUM(RI.PS_ESTORNADO) PESO
FROM ITEMRESTAURANTE RI
INNER JOIN ITEM I ON (I.CD_ITEM = RI.CD_ITEM)
WHERE RI.CD_EMPRESA = {iCdEmpresa}
AND RI.NR_CONTROLE = {Nulo}

tabExtrato #5​

SELECT COUNT(NR_RESTAURANTE) NR_PEDIDOS, SUM(CASE WHEN VL_TAXAPARCIAL > 0 THEN 1 ELSE 0 END) NR_CONTA, SUM(CASE WHEN ST_CONDPAGTO = 'V' THEN VL_TAXAPARCIAL END) VL_TAXAVISTA, SUM(CASE WHEN ST_CONDPAGTO <> 'V' THEN VL_TAXAPARCIAL END) VL_TAXAPRAZO, SUM(CASE WHEN ST_CONDPAGTO = 'V' THEN VL_DESCONTOPARCIAL END) VL_DESCVISTA, SUM(CASE WHEN ST_CONDPAGTO <> 'V' THEN VL_DESCONTOPARCIAL END) VL_DESCPRAZO
FROM (
SELECT R.NR_RESTAURANTE, R.VL_TAXAPARCIAL, R.VL_DESCONTOPARCIAL, CP.ST_CONDPAGTO, COUNT(RI.CD_ITEM) NR_ITEM
FROM ITEMRESTAURANTE RI
INNER JOIN RESTAURANTE R ON(R.CD_EMPRESA = RI.CD_EMPRESA
AND R.NR_RESTAURANTE = RI.NR_RESTAURANTE)
INNER JOIN CONDPAGTO CP ON(CP.CD_CONDPAGTO = R.CD_CONDPAGTO)
WHERE RI.CD_EMPRESA = {iCdEmpresa}
AND RI.NR_CONTROLE = {Nulo}

Consulta​

SELECT I.DS_PORTADOS, I.CD_IMPRESSORA
FROM IMPRESSORA I, PARMRESTAURANTE P
WHERE I.CD_IMPRESSORA = P.CD_IMPRESSORA
AND P.CD_EMPRESA = {iCdEmpresa}

Text #1​

SELECT NR_CONTROLE, DT_ABERTURA, DT_FECHAMENTO, NM_USUARIO, VL_ABERTURA, VL_FECHAMENTO, VL_MOVIMENTO, DS_CONTA, NR_PROCESSO, CASE WHEN SUM(VL_SALDO) >= 0 THEN 'RECBTO DOC '||COALESCE(NR_DOCUMENTO,'') ELSE 'PAGTO DOC '||COALESCE(NR_DOCUMENTO,'') END DS_COMPLEMENTO, CASE WHEN SUM(VL_SALDO) >= 0 THEN SUM(VL_SALDO) ELSE 0 END VL_DEBITO, CASE WHEN SUM(VL_SALDO) < 0 THEN ABS(SUM(VL_SALDO)) ELSE 0 END VL_CREDITO, SUM(VL_SALDO) VL_SALDO
FROM (
SELECT NR_CONTROLE, DT_ABERTURA, DT_FECHAMENTO, CD_USUARIO||' - '||NM_USUARIO NM_USUARIO, VL_ABERTURA, VL_FECHAMENTO, VL_MOVIMENTO, DS_CONTA, COALESCE(NR_PROCESSO, NR_LANCCAIXA) NR_PROCESSO, NR_DOCUMENTO, CASE WHEN (COALESCE(VL_DEBITO,0) - COALESCE(VL_CREDITO,0)) >= 0 THEN ABS(COALESCE(VL_DEBITO,0) - COALESCE(VL_CREDITO,0)) ELSE 0 END VL_DEBITO, CASE WHEN (COALESCE(VL_DEBITO,0) - COALESCE(VL_CREDITO,0)) < 0 THEN ABS(COALESCE(VL_DEBITO,0) - COALESCE(VL_CREDITO,0)) ELSE 0 END VL_CREDITO, (COALESCE(VL_DEBITO,0) - COALESCE(VL_CREDITO,0)) VL_SALDO
FROM VIEW_DIARIOCAIXA ({iCdEmpresa}, null, null, '
AND PARMSALDO.TP_SALDO IN(''X'',''T'',''R'',''P'') /*AND MX.NR_LANCAMENTO IS NULL */AND MX.NR_CONTROLE = {iNrControle}') W)
GROUP BY NR_CONTROLE, DT_ABERTURA, DT_FECHAMENTO, NM_USUARIO, VL_ABERTURA, VL_FECHAMENTO, VL_MOVIMENTO, DS_CONTA, NR_PROCESSO, NR_DOCUMENTO
ORDER BY DS_CONTA, NR_PROCESSO

Text #2​

SELECT C.NR_CONTROLE, C.DT_ABERTURA, C.DT_FECHAMENTO, C.CD_USUARIO||' - '||U.NM_USUARIO NM_USUARIO, C.VL_ABERTURA, C.VL_FECHAMENTO, C.VL_MOVIMENTO
FROM CAIXA C
INNER JOIN USUARIO U ON (U.CD_USUARIO = C.CD_USUARIO)
WHERE CD_EMPRESA = {iCdEmpresa}
AND C.NR_CONTROLE = {iNrControle}

Text #3​

SELECT I.CD_ITEM, I.DS_ITEM, RI.DS_ESTORNO, SUM(RI.PS_ESTORNADO) PESO
FROM ITEMRESTAURANTE RI
INNER JOIN ITEM I ON (I.CD_ITEM = RI.CD_ITEM)
WHERE RI.CD_EMPRESA = {iCdEmpresa}
AND RI.NR_CONTROLE = {Nulo(iNrControle,}I{)}
AND COALESCE(RI.PS_ESTORNADO,0) > 0
GROUP BY I.CD_ITEM, I.DS_ITEM, RI.DS_ESTORNO
ORDER BY I.DS_ITEM

Text #4​

SELECT COUNT(NR_RESTAURANTE) NR_PEDIDOS, SUM(CASE WHEN VL_TAXAPARCIAL > 0 THEN 1 ELSE 0 END) NR_CONTA, SUM(CASE WHEN ST_CONDPAGTO = 'V' THEN VL_TAXAPARCIAL END) VL_TAXAVISTA, SUM(CASE WHEN ST_CONDPAGTO <> 'V' THEN VL_TAXAPARCIAL END) VL_TAXAPRAZO, SUM(CASE WHEN ST_CONDPAGTO = 'V' THEN VL_DESCONTOPARCIAL END) VL_DESCVISTA, SUM(CASE WHEN ST_CONDPAGTO <> 'V' THEN VL_DESCONTOPARCIAL END) VL_DESCPRAZO
FROM (
SELECT R.NR_RESTAURANTE, R.VL_TAXAPARCIAL, R.VL_DESCONTOPARCIAL, CP.ST_CONDPAGTO, COUNT(RI.CD_ITEM) NR_ITEM
FROM ITEMRESTAURANTE RI
INNER JOIN RESTAURANTE R ON(R.CD_EMPRESA = RI.CD_EMPRESA
AND R.NR_RESTAURANTE = RI.NR_RESTAURANTE)
INNER JOIN CONDPAGTO CP ON(CP.CD_CONDPAGTO = R.CD_CONDPAGTO)
WHERE RI.CD_EMPRESA = {iCdEmpresa}
AND RI.NR_CONTROLE = {Nulo(iNrControle,}I{)}
AND R.ST_RESTAURANTE <> 'C'
GROUP BY R.NR_RESTAURANTE, R.VL_TAXAPARCIAL, R.VL_DESCONTOPARCIAL, CP.ST_CONDPAGTO)

Tabelas Utilizadas​

TabelaUso
AMBIENTEreferenciada nas queries do layout
CAIXAreferenciada nas queries do layout
CONDPAGTOreferenciada nas queries do layout
IMPRESSORAreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMRESTAURANTEreferenciada nas queries do layout
MESAreferenciada nas queries do layout
RESTAURANTEreferenciada nas queries do layout
USUARIOreferenciada nas queries do layout
VIEW_DIARIOCAIXAreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LCX035/ULCX035.pas
  • DFM: source/LCX035/ULCX035.dfm
  • Package: source/LCX035/LCX035.dpk