CREATE OR REPLACE PACKAGE telsaler_reward_pkg IS

    -- Author  : WANGWEI-202
    -- Created : 2023/9/13 10:05:43
    -- Purpose : 坐席奖励相关的包

    PROCEDURE add_telsaler_reward
    (
        a_reward_index  VARCHAR2,
        a_telsaler_name VARCHAR2
    );

    PROCEDURE update_telsaler_reward
    (
        a_rec_id        INTEGER,
        a_telsaler_name VARCHAR2,
        a_reward_index  VARCHAR2
    );

    PROCEDURE delete_telsaler_reward(a_rec_id INTEGER);

END telsaler_reward_pkg;
/
CREATE OR REPLACE PACKAGE BODY telsaler_reward_pkg IS

    PROCEDURE add_telsaler_reward
    (
        a_reward_index  VARCHAR2,
        a_telsaler_name VARCHAR2
    ) IS
    BEGIN
        BEGIN
            INSERT INTO telsaler_reward
                (reward_index,
                 telsaler_name)
            VALUES
                (a_reward_index,
                 a_telsaler_name);
        EXCEPTION
            WHEN OTHERS THEN
                IF SQLCODE = -00001
                THEN
                    raise_application_error(-20001,
                                            '值重复');
                END IF;
        END;
        COMMIT;
    END;

    PROCEDURE update_telsaler_reward
    (
        a_rec_id        INTEGER,
        a_telsaler_name VARCHAR2,
        a_reward_index  VARCHAR2
    ) IS
    BEGIN
        /*MERGE INTO telsaler_reward r
        USING (SELECT COUNT(*) COUNT
                 FROM telsaler_reward
                WHERE rec_id = a_rec_id) a
        ON (a.count > 0)
        WHEN MATCHED THEN
            UPDATE
               SET r.reward_index  = a_reward_index,
                   r.telsaler_name = a_telsaler_name
             WHERE r.rec_id = a_rec_id
        WHEN NOT MATCHED THEN
            INSERT
                (reward_index,
                 telsaler_name)
            VALUES
                (a_reward_index,
                 a_telsaler_name);*/
        BEGIN
            UPDATE telsaler_reward r
               SET r.reward_index  = a_reward_index,
                   r.telsaler_name = a_telsaler_name
             WHERE r.rec_id = a_rec_id;
        EXCEPTION
            WHEN no_data_found THEN
                raise_application_error(-20002,
                                        '无此记录！');
        END;
    
        COMMIT;
    END;

    PROCEDURE delete_telsaler_reward(a_rec_id INTEGER) IS
    BEGIN
        DELETE telsaler_reward
         WHERE rec_id = a_rec_id;
    
        COMMIT;
    END;

BEGIN
    NULL;
END telsaler_reward_pkg;
/
