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


function uuid() {
    function randomDigit() {
        if (crypto && crypto.getRandomValues) {
            var rands = new Uint8Array(1);
            crypto.getRandomValues(rands);
            return (rands[0] % 16).toString(16);
        } else {
            return ((Math.random() * 16) | 0).toString(16);
        }
    }
    var crypto = window.crypto || window.msCrypto;
    return 'xxxxxxxx-xxxx-4xxx-xxxx-xxxxxxxxxxxx'.replace(/x/g, randomDigit);
}

async function createRegistry() {
    try {
        let seq1 = await getSeqSmevRegister();
        let seq2 = await getSeqSmevRegister();
        let seq3 = await getSeqSmevRegister();

        QueryAction.action("UNV_CREATE_REGISTRY", {
            actionComplete: function (data) {
                registryJournal.reload();
            }
        }, function () {
            return {
                guid1: uuid(),
                guid2: uuid(),
                guid3: uuid(),
                registry_id_1: seq1.id,
                registry_id_2: seq2.id,
                registry_id_3: seq3.id
            };
        });

    } catch (error) {
        console.error("Ошибка при создании реестра УНВ:", error);
    }
}






INSERT INTO report.smev_register (
    id,
    smev_register_type_code,
    smev_register_codes_id,
    "year",
    "date",
    "type",
    sample_status,
    guid
)
SELECT id, type_code, codes_id, year_val, date_val, type_val, status_val, guid_val
FROM (
    VALUES
    (
        CAST(:registry_id_1 AS int),
        'УНВ',
        (SELECT id FROM report.smev_register_codes WHERE short_name = 'УНВ'),
        CAST(EXTRACT(YEAR FROM CURRENT_DATE) AS int) - 1,
        CURRENT_DATE,
        'OUT',
        'Сформирован',
        CAST(:guid1 AS varchar)
    ),
    (
        CAST(:registry_id_2 AS int),
        'УНВ',
        (SELECT id FROM report.smev_register_codes WHERE short_name = 'УНВ'),
        CAST(EXTRACT(YEAR FROM CURRENT_DATE) AS int) - 2,
        CURRENT_DATE,
        'OUT',
        'Сформирован',
        CAST(:guid2 AS varchar)
    ),
    (
        CAST(:registry_id_3 AS int),
        'УНВ',
        (SELECT id FROM report.smev_register_codes WHERE short_name = 'УНВ'),
        CAST(EXTRACT(YEAR FROM CURRENT_DATE) AS int) - 3,
        CURRENT_DATE,
        'OUT',
        'Сформирован',
        CAST(:guid3 AS varchar)
    )
) AS v(id, type_code, codes_id, year_val, date_val, type_val, status_val, guid_val)
WHERE NOT EXISTS (
    SELECT 1
    FROM report.smev_register r
    WHERE r."year" = v.year_val
      AND r.smev_register_type_code = 'УНВ'
      AND r.sample_status <> 'Удалён'
)