further time calculation optimization
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
create table done.t_required_worktime (
|
||||
pk_required_worktime int primary key generated always as identity,
|
||||
required time without time zone not null default '8:0'::time,
|
||||
required_minutes int not null default 480,
|
||||
day date not null,
|
||||
fk_login int not null references profile.t_login(pk),
|
||||
unique(day, fk_login)
|
||||
@ -54,7 +54,7 @@ with x(dayworktime, day, fk_login) as (
|
||||
grant select on done.v_daylimit to timetrack;
|
||||
|
||||
create or replace view done.v_current_overtime as
|
||||
select x.overtime_minutes + extract(minute from sum(l.dayworktime - r.required)) as overtime,
|
||||
select x.overtime_minutes + sum(extract(minute from l.dayworktime) - r.required_minutes) as overtime,
|
||||
to_char(now(), 'DD.MM.YYYY HH24:MI') as impact,
|
||||
x.fk_login
|
||||
from done.t_overtime x
|
||||
@ -65,13 +65,13 @@ group by x.overtime_minutes, x.fk_login;
|
||||
|
||||
grant select on done.v_current_overtime to timetrack;
|
||||
|
||||
create view done.v_day as
|
||||
create or replace view done.v_day as
|
||||
with x(dayworktime, day, fk_login, required, starttime, endtime) as (
|
||||
select sum(d.dayworktime), d.day, d.fk_login, r.required,
|
||||
select sum(d.dayworktime), d.day, d.fk_login, make_interval(mins => r.required_minutes),
|
||||
min(d.daytime_from), max(d.daytime_until)
|
||||
from done.v_daylimit d
|
||||
left join done.t_required_worktime r on r.day = d.day and r.fk_login = d.fk_login
|
||||
group by d.day, d.fk_login, r.required
|
||||
group by d.day, d.fk_login, r.required_minutes
|
||||
) select day, starttime, endtime, dayworktime as worktime,
|
||||
endtime - starttime - dayworktime as breaktime,
|
||||
dayworktime - required as day_overtime, fk_login
|
||||
|
Reference in New Issue
Block a user