CORE/packages/app_actions.spec.sql
2022-01-27 19:49:27 +01:00

314 lines
10 KiB
SQL

CREATE OR REPLACE PACKAGE app_actions AS
/**
* This package is part of the APP CORE project under MIT licence.
* https://github.com/jkvetina/#core
*
* Copyright (c) Jan Kvetina, 2021
*
* (R)
* --- ---
* #@@@@@@ &@@@@@@
* @@@@@@@@ .@ @@@@@@@@
* ----- @@@@@@ @@@@@@, @@@@@@@ -----
* &@@@@@@@@@@@ @@@ &@@@@@@@@@. @@@@ .@@@@@@@@@@@#
* @@@@@@@@@@@ @ @@@@@@@@@@@@@ @ @@@@@@@@@@@
* \@@@@@@@@@@ @@@@@@@@@@@@@@@ @@@@@@@@@@
* @@@@@@@@@ @@@@@@@@@@@@@@@ &@@@@@@@@
* @@@@@@@( @@@@@@@@@@@@@@@ @@@@@@@@
* @@@@@@( @@@@@@@@@@@@@@, @@@@@@@
* .@@@@@, @@@@@@@@@@@@@ @@@@@@
* @@@@@@ *@@@@@@@@@@@@@ @@@@@@
* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.
* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* @@@@@@@@@@@@@@@@@@@@@@@@@@@@
* .@@@@@@@@@@@@@@@@@@@@@@@@@
* .@@@@@@@@@@@@@@@@@@@@@
* jankvetina.cz
* -------
*
*/
settings_package CONSTANT VARCHAR2(30) := 'SETT';
settings_prefix CONSTANT VARCHAR2(30) := 'get_';
-- for sending emails
smtp_from CONSTANT VARCHAR2(200) := '';
smtp_username CONSTANT VARCHAR2(50) := NULL;
smtp_password CONSTANT VARCHAR2(50) := NULL;
smtp_host CONSTANT VARCHAR2(50) := '';
smtp_port CONSTANT NUMBER(4) := 25;
smtp_timeout CONSTANT NUMBER(2) := 20;
-- ### Navigation page
--
--
-- Remove missing pages from NAVIGATION table
--
PROCEDURE nav_remove_pages (
in_page_id navigation.page_id%TYPE := NULL
);
--
-- Add new pages to NAVIGATION table
--
PROCEDURE nav_add_pages (
in_page_id navigation.page_id%TYPE := NULL
);
--
-- Auto update navigation (add missing pages, remove old records)
--
PROCEDURE nav_autoupdate;
-- ### User Roles page
--
--
--
--
PROCEDURE prep_user_roles_pivot (
in_page_id apex_application_pages.page_id%TYPE
);
--
--
--
PROCEDURE save_user_roles (
in_action CHAR,
in_c001 VARCHAR2 := NULL,
in_c002 VARCHAR2 := NULL,
in_c003 VARCHAR2 := NULL,
in_c004 VARCHAR2 := NULL,
in_c005 VARCHAR2 := NULL,
in_c006 VARCHAR2 := NULL,
in_c007 VARCHAR2 := NULL,
in_c008 VARCHAR2 := NULL,
in_c009 VARCHAR2 := NULL,
in_c010 VARCHAR2 := NULL,
in_c011 VARCHAR2 := NULL,
in_c012 VARCHAR2 := NULL,
in_c013 VARCHAR2 := NULL,
in_c014 VARCHAR2 := NULL,
in_c015 VARCHAR2 := NULL,
in_c016 VARCHAR2 := NULL,
in_c017 VARCHAR2 := NULL,
in_c018 VARCHAR2 := NULL,
in_c019 VARCHAR2 := NULL,
in_c020 VARCHAR2 := NULL,
in_c021 VARCHAR2 := NULL,
in_c022 VARCHAR2 := NULL,
in_c023 VARCHAR2 := NULL,
in_c024 VARCHAR2 := NULL,
in_c025 VARCHAR2 := NULL,
in_c026 VARCHAR2 := NULL,
in_c027 VARCHAR2 := NULL,
in_c028 VARCHAR2 := NULL,
in_c029 VARCHAR2 := NULL,
in_c030 VARCHAR2 := NULL,
in_c031 VARCHAR2 := NULL,
in_c032 VARCHAR2 := NULL,
in_c033 VARCHAR2 := NULL,
in_c034 VARCHAR2 := NULL,
in_c035 VARCHAR2 := NULL,
in_c036 VARCHAR2 := NULL,
in_c037 VARCHAR2 := NULL,
in_c038 VARCHAR2 := NULL,
in_c039 VARCHAR2 := NULL,
in_c040 VARCHAR2 := NULL,
in_c041 VARCHAR2 := NULL,
in_c042 VARCHAR2 := NULL,
in_c043 VARCHAR2 := NULL,
in_c044 VARCHAR2 := NULL,
in_c045 VARCHAR2 := NULL,
in_c046 VARCHAR2 := NULL,
in_c047 VARCHAR2 := NULL,
in_c048 VARCHAR2 := NULL,
in_c049 VARCHAR2 := NULL,
in_c050 VARCHAR2 := NULL
);
-- ### Settings page
--
--
-- Get value from Settings table
--
FUNCTION get_setting (
in_name settings.setting_name%TYPE,
in_context settings.setting_context%TYPE := NULL
)
RETURN settings.setting_value%TYPE;
--
-- Store/update settings
--
PROCEDURE set_setting (
in_action CHAR,
in_setting_name_old settings.setting_name%TYPE,
in_setting_name settings.setting_name%TYPE,
in_setting_group settings.setting_group%TYPE := NULL,
in_setting_value settings.setting_value%TYPE := NULL,
in_is_numeric settings.is_numeric%TYPE := NULL,
in_is_date settings.is_date%TYPE := NULL,
in_description settings.description_%TYPE := NULL
);
--
-- Store/update settings for specific contexts (pivot), including default
--
PROCEDURE set_setting_bulk (
in_c001 settings.setting_value%TYPE,
in_c002 settings.setting_value%TYPE,
in_c003 settings.setting_value%TYPE := NULL,
in_c004 settings.setting_value%TYPE := NULL,
in_c005 settings.setting_value%TYPE := NULL,
in_c006 settings.setting_value%TYPE := NULL,
in_c007 settings.setting_value%TYPE := NULL,
in_c008 settings.setting_value%TYPE := NULL,
in_c009 settings.setting_value%TYPE := NULL,
in_c010 settings.setting_value%TYPE := NULL,
in_c011 settings.setting_value%TYPE := NULL,
in_c012 settings.setting_value%TYPE := NULL,
in_c013 settings.setting_value%TYPE := NULL,
in_c014 settings.setting_value%TYPE := NULL,
in_c015 settings.setting_value%TYPE := NULL,
in_c016 settings.setting_value%TYPE := NULL,
in_c017 settings.setting_value%TYPE := NULL,
in_c018 settings.setting_value%TYPE := NULL,
in_c019 settings.setting_value%TYPE := NULL,
in_c020 settings.setting_value%TYPE := NULL,
in_c021 settings.setting_value%TYPE := NULL,
in_c022 settings.setting_value%TYPE := NULL,
in_c023 settings.setting_value%TYPE := NULL,
in_c024 settings.setting_value%TYPE := NULL,
in_c025 settings.setting_value%TYPE := NULL,
in_c026 settings.setting_value%TYPE := NULL,
in_c027 settings.setting_value%TYPE := NULL,
in_c028 settings.setting_value%TYPE := NULL,
in_c029 settings.setting_value%TYPE := NULL,
in_c030 settings.setting_value%TYPE := NULL,
in_c031 settings.setting_value%TYPE := NULL,
in_c032 settings.setting_value%TYPE := NULL,
in_c033 settings.setting_value%TYPE := NULL,
in_c034 settings.setting_value%TYPE := NULL,
in_c035 settings.setting_value%TYPE := NULL,
in_c036 settings.setting_value%TYPE := NULL,
in_c037 settings.setting_value%TYPE := NULL,
in_c038 settings.setting_value%TYPE := NULL,
in_c039 settings.setting_value%TYPE := NULL,
in_c040 settings.setting_value%TYPE := NULL,
in_c041 settings.setting_value%TYPE := NULL,
in_c042 settings.setting_value%TYPE := NULL,
in_c043 settings.setting_value%TYPE := NULL,
in_c044 settings.setting_value%TYPE := NULL,
in_c045 settings.setting_value%TYPE := NULL,
in_c046 settings.setting_value%TYPE := NULL,
in_c047 settings.setting_value%TYPE := NULL,
in_c048 settings.setting_value%TYPE := NULL,
in_c049 settings.setting_value%TYPE := NULL,
in_c050 settings.setting_value%TYPE := NULL
);
--
-- Rebuild package containing function matching Settings table
--
PROCEDURE rebuild_settings;
--
-- Prepare pivot for Settings page
--
PROCEDURE prep_settings_pivot (
in_page_id apex_application_pages.page_id%TYPE
);
-- ### Views source table
--
--
-- Refresh views source (convert views source to lines)
--
PROCEDURE refresh_user_source_views;
PROCEDURE clob_to_lines (
in_name VARCHAR2,
in_clob CLOB,
in_offset NUMBER := NULL
);
-- ### E-mails
--
FUNCTION clob_to_blob (
in_clob CLOB
)
RETURN BLOB;
--
-- Send UTF_8 email with compressed attachements
--
PROCEDURE send_mail (
in_to VARCHAR2,
in_subject VARCHAR2,
in_body CLOB,
in_cc VARCHAR2 := NULL,
in_bcc VARCHAR2 := NULL,
in_from VARCHAR2 := NULL,
in_attach_name VARCHAR2 := NULL,
in_attach_mime VARCHAR2 := NULL,
in_attach_data CLOB := NULL,
in_compress BOOLEAN := FALSE
);
END;
/