API to Create State Tax

DECLARE

    lc_dt_ud_mode                  VARCHAR2(100)    := NULL;

    ln_assignment_id               NUMBER        := 33561;

    lb_correction                        BOOLEAN;

    lb_update                             BOOLEAN;

    lb_update_override             BOOLEAN;

    lb_update_change_insert    BOOLEAN;

    ln_emp_state_tax_rule_id    PAY_US_EMP_STATE_TAX_RULES_F.EMP_STATE_TAX_RULE_ID%TYPE;

    ln_object_version_number   NUMBER;

    ld_effective_start_date         DATE;

    ld_effective_end_date          DATE;

BEGIN

    — Find Date Track Mode

    dt_api.find_dt_upd_modes

    (    p_effective_date         => TO_DATE(’12-JUN-2011′),

        p_base_table_name    => ‘PER_ALL_ASSIGNMENTS_F’,

        p_base_key_column    => ‘ASSIGNMENT_ID’,

        p_base_key_value       => ln_assignment_id,

        — Output data elements

        p_correction             => lb_correction,

        p_update                  => lb_update,

        p_update_override   => lb_update_override,

        p_update_change_insert => lb_update_change_insert

    );

    IF ( lb_update_override = TRUE OR lb_update_change_insert = TRUE )

    THEN

        — UPDATE_OVERRIDE

        lc_dt_ud_mode := ‘UPDATE_OVERRIDE’;

    END IF;

    IF ( lb_correction = TRUE )

    THEN

        — CORRECTION

        lc_dt_ud_mode := ‘CORRECTION’;

    END IF;

    IF ( lb_update = TRUE )

    THEN

        — UPDATE

        lc_dt_ud_mode := ‘UPDATE’;

    END IF;

    — Create Employee State Tax Rule

    pay_state_tax_rule_api.create_state_tax_rule

    (    — Input Parameters

        p_effective_date        => TO_DATE(’15-JUN-2011′),

        p_default_flag            => ‘Y’,

        p_assignment_id       => 33561,

        p_state_code            => ’05’,

        — Output Parameters

        p_emp_state_tax_rule_id    => ln_emp_state_tax_rule_id,

        p_object_version_number  => ln_object_version_number,

        p_effective_start_date        => ld_effective_start_date,

        p_effective_end_date        => ld_effective_end_date

    );

    COMMIT;

EXCEPTION

    WHEN OTHERS THEN

        ROLLBACK;

        dbms_output.put_line(SQLERRM);

END;

/

SHOW ERR;