1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| get_jour_ouvrable_mat(mat number , dt_deb date, dt_reprise date) return number is v_nb number;
cpt number;
date_rep date;
date_debut date ;
ouv number ;
ven_dim number ;
jour_sem number;
begin
ouv := get_jour_ouvrable(dt_deb,dt_reprise) ;
select a.type_week_end into ven_dim from tservices a
where a.code = get_structure_agent(mat, sysdate) ;
if ven_dim = 0 then return(ouv) ;
end if ;
date_debut := dt_deb ;
cpt := 0 ;
while date_debut < dt_reprise loop
select to_char(date_debut,'D') into jour_sem from dual;
if ( to_char(date_debut,'dd/mm') <> '01/01' ) and jour_sem <> 6 and jour_sem <> 7 then cpt := cpt + 1 ;
end if ;
date_debut := date_debut + 1 ;
end loop;
return(cpt) ;
exception
when others
then return(0);
end get_jour_ouvrable_mat ; |
Partager