]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0723.function.get_locale_name.sql
LP2042879 Shelving Location Groups Admin accessibility
[Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0723.function.get_locale_name.sql
1 -- Evergreen DB patch 0723.schema.acq-po-state-constraint.sql
2 --
3 BEGIN;
4
5
6 -- check whether patch can be applied
7 SELECT evergreen.upgrade_deps_block_check('0723', :eg_version);
8
9 CREATE OR REPLACE FUNCTION evergreen.get_locale_name(
10     IN locale TEXT,
11     OUT name TEXT,
12     OUT description TEXT
13 ) AS $$
14 DECLARE
15     eg_locale TEXT;
16 BEGIN
17     eg_locale := LOWER(SUBSTRING(locale FROM 1 FOR 2)) || '-' || UPPER(SUBSTRING(locale FROM 4 FOR 2));
18         
19     SELECT i18nc.string INTO name
20     FROM config.i18n_locale i18nl
21        INNER JOIN config.i18n_core i18nc ON i18nl.code = i18nc.translation
22     WHERE i18nc.identity_value = eg_locale
23        AND code = eg_locale
24        AND i18nc.fq_field = 'i18n_l.name';
25
26     IF name IS NULL THEN
27        SELECT i18nl.name INTO name
28        FROM config.i18n_locale i18nl
29        WHERE code = eg_locale;
30     END IF;
31
32     SELECT i18nc.string INTO description
33     FROM config.i18n_locale i18nl
34        INNER JOIN config.i18n_core i18nc ON i18nl.code = i18nc.translation
35     WHERE i18nc.identity_value = eg_locale
36        AND code = eg_locale
37        AND i18nc.fq_field = 'i18n_l.description';
38
39     IF description IS NULL THEN
40        SELECT i18nl.description INTO description
41        FROM config.i18n_locale i18nl
42        WHERE code = eg_locale;
43     END IF;
44 END;
45 $$ LANGUAGE PLPGSQL COST 1 STABLE;
46
47 COMMIT;