-- chk.chk_check_insert: создание новой проверки организаций. -- На основе: новая. -- Параметры: p_check_date — день (дата) проверки; p_chk_type_id — тип проверки -- (chk.chk_type.id); p_chk_status_id — статус проверки (chk.chk_status.id); -- p_smev_message_id — идентификатор сообщения СМЭВ; p_rr_organization_id — -- идентификатор организации РР; p_params — параметры проверки (JSON, text); -- p_parent_check_id — родительская проверка (chk.chk_check.id). -- Возвращает: int — id созданной проверки. CREATE OR REPLACE FUNCTION chk.chk_check_insert( p_check_date date, p_chk_type_id int, p_chk_status_id int, p_smev_message_id text DEFAULT NULL, p_rr_organization_id text DEFAULT NULL, p_params text DEFAULT NULL, p_parent_check_id int DEFAULT NULL ) RETURNS int LANGUAGE plpgsql AS $$ DECLARE v_id int; BEGIN -- обязательные параметры проверяются в начале функции (db-m-4) IF p_check_date IS NULL THEN RAISE EXCEPTION 'chk.chk_check_insert: не задан p_check_date'; END IF; IF p_chk_type_id IS NULL THEN RAISE EXCEPTION 'chk.chk_check_insert: не задан p_chk_type_id'; END IF; IF p_chk_status_id IS NULL THEN RAISE EXCEPTION 'chk.chk_check_insert: не задан p_chk_status_id'; END IF; INSERT INTO chk.chk_check ( check_date, chk_type_id, chk_status_id, smev_message_id, rr_organization_id, params, parent_check_id ) VALUES ( p_check_date, p_chk_type_id, p_chk_status_id, p_smev_message_id, p_rr_organization_id, p_params::jsonb, -- JSON-параметр передаётся как text, каст внутри (db-m-5) p_parent_check_id ) RETURNING id INTO v_id; RETURN v_id; END; $$;