48 lines
1.2 KiB
PL/PgSQL
48 lines
1.2 KiB
PL/PgSQL
-- =====================================================================
|
|
-- 0029_my_active_shift.sql
|
|
--
|
|
-- Shift Control needs visibility into both OPEN and DECLARED shifts so a
|
|
-- cashier can declare, review the drawer, and still finalize after a
|
|
-- refresh. Transaction entry keeps using my_open_shift so no sales can be
|
|
-- posted once close has been declared.
|
|
-- =====================================================================
|
|
|
|
set search_path = app, public;
|
|
|
|
create or replace function app.my_active_shift(p_shop uuid)
|
|
returns table (
|
|
shift_id uuid,
|
|
till_id uuid,
|
|
opened_at timestamptz,
|
|
status app.shift_status,
|
|
opening_usd numeric,
|
|
opening_lbp numeric,
|
|
declared_at timestamptz,
|
|
declared_close_usd numeric,
|
|
declared_close_lbp numeric
|
|
)
|
|
language sql
|
|
security definer
|
|
set search_path = app, public
|
|
stable
|
|
as $$
|
|
select
|
|
id,
|
|
till_id,
|
|
opened_at,
|
|
status,
|
|
opening_usd,
|
|
opening_lbp,
|
|
declared_at,
|
|
declared_close_usd,
|
|
declared_close_lbp
|
|
from app.shifts
|
|
where shop_id = p_shop
|
|
and user_id = auth.uid()
|
|
and status <> 'closed'
|
|
order by opened_at desc
|
|
limit 1;
|
|
$$;
|
|
|
|
revoke all on function app.my_active_shift(uuid) from public;
|
|
grant execute on function app.my_active_shift(uuid) to authenticated; |