WITH new_operations (
code,
name,
short_name,
template_code
) AS (
VALUES
(
'SECOND_PAYMENT_PENSION',
'Повторная выплата негосударственных пенсий',
'Повторная выплата НП',
'PAYMENT_PENSION'
),
(
'SECOND_PAYMENT_SUCCESSOR',
'Повторная выплата правопреемникам',
'Повторная выплата ВС ПП',
'PAYMENT_SUCCESSOR'
),
(
'SECOND_PAYMENT_TERMINATED',
'Повторная выплата выкупных сумм',
'Повторная выплата ВС',
'PAYMENT_TERMINATED'
)
),
base_id AS (
SELECT MAX(id) AS max_id
FROM back_office.operation_type
),
prepared AS (
SELECT
n.*,
ROW_NUMBER() OVER (ORDER BY n.code) AS rn
FROM new_operations n
)
INSERT INTO back_office.operation_type (
id,
code,
"name",
short_name,
group_code,
"service_type",
name_old,
short_name_old,
auto_approver,
display_in_lkk,
name_for_statement,
display_in_statement,
type_movement,
settings_transaction_extended_id
)
SELECT
b.max_id + p.rn,
p.code,
p.name,
p.short_name,
t.group_code,
t."service_type",
t.name_old,
t.short_name_old,
t.auto_approver,
t.display_in_lkk,
t.name_for_statement,
t.display_in_statement,
t.type_movement,
t.settings_transaction_extended_id
FROM prepared p
CROSS JOIN base_id b
JOIN back_office.operation_type t
ON t.code = p.template_code
WHERE NOT EXISTS (
SELECT 1
FROM back_office.operation_type x
WHERE x.code = p.code
);
SELECT
id,
code,
name,
short_name,
group_code,
service_type,
type_movement,
auto_approver,
display_in_lkk,
name_for_statement,
display_in_statement,
settings_transaction_extended_id
FROM back_office.operation_type
WHERE id BETWEEN 192 AND 199
ORDER BY id;