[firebase-br] Criar Stored Procedure Para Retorno de Dias Uteis.

Lucio - UniData® luciocobo em terra.com.br
Qua Ago 30 16:12:20 -03 2006


Caro Rubens  Demorei  um pouquinho mais fiz 
Tem uma tabela que vc cadastra os feriados  
e a procedure verifica se é feriado 
os  finais  de semanas  não presiza cadastrar  na tabela de feriado 
a procedure exclui o sabado e domingo sozinha  

Obs  Cadastra pelomenus um feriado  na tabela 
para dar certo 

Codigo  da TABELA e da PROCEDURE (DIAS_UTES) segue a baixo  

Abraço  

Tabela
CREATE TABLE FERIADOS (
    ID          INTEGER NOT NULL,
    DT_FERIADO  TIMESTAMP NOT NULL,
    NM_FERIADO  VARCHAR(25) NOT NULL
);

PROCEDURE 
CREATE PROCEDURE DIAS_UTEIS (
    P_DATA_INI DATE,
    P_DATA_FIM DATE)
RETURNS (
    R_DIA INTEGER,
    R_DATA DATE)
AS
DECLARE VARIABLE W_DIA INTEGER;
DECLARE VARIABLE W_FERIADO DATE;

begin
  /* Procedure Retona os Dias Uteis
     do periodo informado
     OBS  Paramentro de Imput Data Inicial , Data Final*/
  while (P_DATA_FIM > P_DATA_INI) do begin
     /* Verifico se tem Feriado Cadastrado
    -- OBS: Obrigatorio Ter pelomenus um Feriado cadastrado
       se não tiver pode da errado -- Cadastra o Natal e ano Novo*/
     FOR select DT_FERIADO FROM FERIADOS
                          WHERE DT_FERIADO = :p_data_ini
                          INTO :w_feriado DO
     begin
       P_DATA_INI = :P_DATA_INI + 1;
     end
      /* Verifico se é Sabado ou Domingo ou Feriado Cadastrado
        0 = Domingo  6 = Sabado */
     W_DIA = extract(weekday FROM :P_DATA_INI);
     if (:w_feriado IS NOT NULL and :W_DIA <> 0 and :W_DIA <> 6) then begin
        R_DATA = :P_DATA_INI;
        R_DIA = W_DIA;
        suspend;
     end
     P_DATA_INI = :P_DATA_INI + 1;
  end
end




----- Original Message ----- 
From: "Rubens J Rodrigues" <rubens.rodrigues em abrevo.com.br>
To: <lista em firebase.com.br>
Sent: Wednesday, August 30, 2006 10:48 AM
Subject: Re: [firebase-br] Criar Stored Procedure Para Retorno de Dias Uteis.


Lucio,

Na verdade eu só preciso que a Stored Procedure me retorne todos os dias 
úteis do mês atual. . . .
Não preciso nem passar parâmetros. . . .

Rubens



Lucio - UniData® escreveu:
> Rubens, vou montar para vc
> o que vc quer  passar para a Procedure  ??
> 
> e o que vc quer que  ela retorne ?
> 
> Abraço
> Lucio Cobo
> Programador Delphi com Oracle.
> 
> 
> ----- Original Message -----
> From: "Rubens J Rodrigues" <rubens.rodrigues em abrevo.com.br>
> To: <lista em firebase.com.br>
> Sent: Wednesday, August 30, 2006 8:15 AM
> Subject: [firebase-br] Criar Stored Procedure Para Retorno de Dias Uteis.
> 
> 
> Colegas,
> 
> Infelizmente esgotou-se minhas possibilidades e habilidades para criar
> uma stored procedures para me retornar os dias uteis do mês corrente.
> Por favor, me ajudem nesta cruzada . . .
> 
> Cenário  :
> 
> a) Tabela de Feriados : CODFERIADO, DATAFERIADO, ATIVO.
> 
> b) Criar uma stored procedures onde, eu pegaria os dias do mês corrente,
> eliminaria os sabados e domigos, com o restante eu eliminaria os dias
> que estariam na tabela de feriados.
> 
> 
> Conto com a ajuda de vocês,
> 
> 
> Obrigado,
> 
> Rubens
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa




Mais detalhes sobre a lista de discussão lista