Загрузка данных


-- DROP FUNCTION ourpension.f_create_snv_incoming_tessa(text, text, int8);

CREATE OR REPLACE FUNCTION ourpension.f_create_snv_incoming_tessa(p_snils text, p_full_name text, p_id_file bigint DEFAULT NULL::bigint)
RETURNS text
LANGUAGE plpgsql
AS $function$
DECLARE
    _tessa_params json;
    _id_card     text;
    _id_doc        text;
    _tessa_path    text := 'Integration/CreateCard';

    _file_name     text;
    _file         bytea;
BEGIN
    
    IF p_id_file IS NULL THEN
        RETURN NULL;
    END IF;


    SELECT d.file_name, d.file
     INTO _file_name, _file
     FROM ourpension.year_tax_deduction d
     WHERE d.id = p_id_file;

    IF _file_name IS NULL OR btrim(_file_name) = '' OR _file IS NULL THEN
        RETURN NULL;
    END IF;


    _tessa_params := json_build_object(
        'System', '5',
        'CardTypeID', '32078ec6-7b20-42c5-a4e8-77ae3b7a4c7c',
        'AuthorAdLogin', 'System',
        'SubTypeID', '7eded5d0-8333-441f-9dca-031133205727',
        'SubTypeName', 'Сервисное заявление ФЛ',
        'OutgoingSubTypeID', 'c6137918-3652-44c8-b364-91aaa0264763',
        'OutgoingSubTypeName', 'Справка/ответ ФНС о налоговом вычете',
        'Summary', 'Справка о подтверждении получения/неполучения налогового вычета',
        'DeliveryMethodID', '4',
        'DeliveryMethodName', 'Личный прием',
        'SNILS', p_snils,
        'FullName', p_full_name,
        'NPF360Link', 'http://',
        'LinkCardID', '6f95b490-6f8f-46d1-945d-42650496e40c'
    );

    SELECT value || _tessa_path
     INTO _tessa_path
     FROM tools.npf360_settings
     WHERE "name" = 'TESSA_API';

    RAISE NOTICE '1) JSON param: %', _tessa_params::text;


    _id_card := convert_from(robot.post_json(_tessa_path, _tessa_params), 'UTF8');
    RAISE NOTICE '2) id_card: %', _id_card;


    IF utils.f_is_tessa_guid(_id_card) THEN
        _id_doc := utils.post_file_to_tessa_card(_id_card, 'System', _file_name, _file);
        RAISE NOTICE '3) id_doc: %', _id_doc;

        PERFORM utils.send_signal_to_tessa(_id_card, 'complete1');
    
        UPDATE ourpension.year_tax_deduction
         SET tessa_card_id = _id_card
         WHERE id = p_id_file;
        
    ELSE
        
        RETURN NULL;
    END IF;


    RETURN json_build_object(
        'id_card', _id_card,
        'id_doc', _id_doc,
        'JSON_params', _tessa_params
    )::text;
END;
$function$
;







  'DeliveryMethodID', 0, -- Почта России
                'DeliveryMethodName', 'Почта России',
                'DeliveryTypeID', 2, --Письмо простое
                'DeliveryTypeName', 'Письмо простое',