DatabaseProgramming: 04 SIM ready for use check.sql

File 04 SIM ready for use check.sql, 922 bytes (added by 231139, 10 days ago)
Line 
1CREATE OR REPLACE FUNCTION public.fn_check_sim_activation_status(p_sim_id bigint)
2RETURNS text
3LANGUAGE plpgsql
4STABLE
5AS $$
6DECLARE
7 v_sim_status text;
8 v_active_subscription bigint;
9BEGIN
10 SELECT status INTO v_sim_status
11 FROM public.sim_cards
12 WHERE sim_id = p_sim_id;
13
14 IF NOT FOUND THEN
15 RETURN 'SIM does not exist.';
16 END IF;
17
18 SELECT subscription_id INTO v_active_subscription
19 FROM public.sim_card_subscription_history
20 WHERE sim_id = p_sim_id AND end_date IS NULL
21 ORDER BY start_date DESC
22 LIMIT 1;
23
24 IF v_active_subscription IS NOT NULL THEN
25 RETURN format('SIM is already assigned to active subscription %s.', v_active_subscription);
26 END IF;
27
28 IF v_sim_status <> 'available' THEN
29 RETURN format('SIM exists but status is %s, not available.', v_sim_status);
30 END IF;
31
32 RETURN 'SIM is available and can be used for activation.';
33END;
34$$;
35