[firebase-br] sql pra movimentação de caixa

Zottis zottissistemas em brturbo.com.br
Sex Mar 6 09:17:58 -03 2009


eu uso assim:

CREATE GENERATOR GEN_CAIXA_ID;

CREATE TABLE CAIXA (
    CAIXANO        PK /* PK = INTEGER NOT NULL */,
    DATA           DATAS /* DATAS = DATE */,
    LOJANO         PK /* PK = INTEGER NOT NULL */,
    USUARIONO      PK /* PK = INTEGER NOT NULL */,
    REGISTRONO     PK /* PK = INTEGER NOT NULL */,
    DESCRIMINACAO  VAR_CHAR_180 /* VAR_CHAR_180 = VARCHAR(180) */,
    ENTRADA        MOEDA DEFAULT 0 /* MOEDA = NUMERIC(15,2) */,
    SAIDA          MOEDA DEFAULT 0 /* MOEDA = NUMERIC(15,2) */,
    HORARIO        VARCHARTIME /* VARCHARTIME = VARCHAR(8) */,
    EXCLUIDO_POR   INTEIRO /* INTEIRO = INTEGER */,
    DATA_EXCLUSAO  DATAS /* DATAS = DATE */,
    HORA_EXCLUSAO  TEMPO /* TEMPO = TIME */,
    DELETADO       PAGO_NOT_NULL /* PAGO_NOT_NULL = VARCHAR(1) DEFAULT 'N' 
NOT NULL CHECK (value in ('N' , 'S')) */,
    REVERSO_NO     INTEIRO /* INTEIRO = INTEGER */
);





ALTER TABLE CAIXA ADD CONSTRAINT PK_CAIXA PRIMARY KEY (CAIXANO);

ALTER TABLE CAIXA ADD CONSTRAINT FK_CAIXA_REG_NO FOREIGN KEY (REGISTRONO) 
REFERENCES REGISTROS (REGISTRONO) ON UPDATE CASCADE;


CREATE INDEX CAIXA_IDX_DATA ON CAIXA (DATA);
CREATE INDEX CAIXA_IDX_REVERSO ON CAIXA (REVERSO_NO);

SET TERM ^ ;



/* Trigger: CAIXA_BI */
CREATE TRIGGER CAIXA_BI FOR CAIXA
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.CAIXANO IS NULL) THEN
    NEW.CAIXANO = GEN_ID(GEN_CAIXA_ID,1);
END
^


SET TERM ; ^

e na busca faço assim:
tenho uma query com os saldos(Calculos) e outra com os lançamentos do dia

o SQL do  Diario:

Select  T2.Data,
          coalesce( Sum (T2.Entrada), 0) as Entradas
          ,coalesce( Sum (T2.saida), 0 ) as saidas
          ,(select   coalesce( Sum (C1.Entrada ), 0 ) from caixa  C1 where 
C1.data <= T2.data and C1.deletado = 'N' )
         -  (select   coalesce( Sum (C1.Saida ), 0 ) from caixa  C1 where 
C1.data <= T2.data and C1.deletado = 'N' )    as Saldo

          ,(select   coalesce( Sum (C1.Entrada ), 0 ) from caixa  C1 where 
C1.data < T2.data and C1.deletado = 'N' )
         -  (select    coalesce( Sum (C1.Saida ), 0 ) from caixa  C1 where 
C1.data < T2.data and C1.deletado = 'N' )   as SaldoAnterior

>From  Caixa T2
Where  T2.DELETADO = 'N' and T2.Data = :DataInicial
Group By T2.Data
Order by T2.Data

e o Sql do Caixa:

select C.CAIXANO,
           C.DATA,
           C.LOJANO,
           C.USUARIONO,
           C.REGISTRONO,
           C.DESCRIMINACAO,
           C.ENTRADA,
           C.SAIDA,
           C.HORARIO,
           S.LOGIN AS USUARIO,
           C.EXCLUIDO_POR,
           C.DATA_EXCLUSAO,
           C.HORA_EXCLUSAO,
           C.DELETADO,
           C.REVERSO_NO

 from CAIXA C,  SENHAS S
where  C.USUARIONO = S.SENHANO AND
C.data =:data AND C.DELETADO = 'N'
order by C.Horario
 está ligada na Query Diario pelo DataSource.

Espero que te ajude.





Zottis(TeamFB Users)

Zottis Sistemas - 2008 Ano XI
Programação Delphi/PHP/Firebird/MySQL

"Um homem só tem o direito de olhar
  a um outro de cima para baixo, quando
  vai ajuda-lo a levantar-se".
                   Gabriel Garcia Marquez
----- Original Message ----- 
From: "Reijanio Nunes Ribeiro" <rnribeiro em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, March 06, 2009 9:09 AM
Subject: Re: [firebase-br] sql pra movimentação de caixa


isso mesmo

2009/3/5 Zottis <zottissistemas em brturbo.com.br>

> o que vc quer saber?
> tipo, saldo anterior, saldo atual, total de entradas, saidas, etc?
>
> Zottis(TeamFB Users)
>
> Zottis Sistemas - 2008 Ano XI
> Programação Delphi/PHP/Firebird/MySQL
>
> "Um homem só tem o direito de olhar
>  a um outro de cima para baixo, quando
>  vai ajuda-lo a levantar-se".
>                  Gabriel Garcia Marquez
> ----- Original Message ----- From: "Reijanio Nunes Ribeiro" <
> rnribeiro em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Thursday, March 05, 2009 10:37 AM
> Subject: [firebase-br] sql pra movimentação de caixa
>
>
> alguem poderia me dar uma ideia de como, de como se faze um sql pra
> movimentação de caixa
> pois to apnhando disso, grato pela atenção
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista