The following lines contain the word 'select', 'insert', 'update' or 'delete':
output ('IGIRRUVR Standing Charges : Preliminary VAT Rate Update Report '||'Date : '||trunc(SYSDATE));
SELECT tax_rate_code INTO l_tax_code
FROM zx_rates_b
WHERE tax_rate_id = vat_id;
PROCEDURE update_vat_rate ( errbuf OUT NOCOPY VARCHAR2
, retcode OUT NOCOPY NUMBER
, p_org_id IN NUMBER
, p_old_vat_id IN NUMBER
, p_new_vat_id IN NUMBER
, p_effective_date IN VARCHAR2
, p_mode IN VARCHAR2
)
IS
l_request_id NUMBER;
| Cursor for Selecting Standing Charges |
*------------------------------------------------------*/
CURSOR C_standing_charges ( cp_org_id in number
, cp_effective_date in date ) IS
SELECT sc.*
FROM igi_rpi_standing_charges_all sc
WHERE org_id = cp_org_id
AND upper(sc.status) = 'ACTIVE'
AND sc.START_DATE <= cp_effective_date
AND sc.NEXT_DUE_DATE >= cp_effective_date;
| Cursor for Line Details based on the Selected Standing Charge cursor above |
*-----------------------------------------------------------------------------------*/
CURSOR C_line_details (cp_standing_charge_id in number
,cp_old_vat_id in number ) IS
SELECT ld.*
FROM igi_rpi_line_details_all ld
WHERE ld.standing_charge_id = cp_standing_charge_id
AND ld.vat_tax_id = cp_old_vat_id;
WriteToLogFile(l_state_level, 'igi.plsql.igirruvr.update_vat_rate.Msg1',
l_mesg);
WriteToLogFile(l_state_level, 'igi.plsql.igirruvr.update_vat_rate.Msg2',
'BEGIN Update VAT Rate');
/* Inserting into line_details_audit table for audit trail */
igi_rpi_line_audit_det_all_pkg.insert_row (
x_mode => 'R',
x_rowid => l_rowid,
x_standing_charge_id => TO_NUMBER (C_standing_charges_rec.standing_charge_id),
x_line_item_id => TO_NUMBER (C_line_details_rec.LINE_ITEM_ID),
x_charge_item_number => TO_NUMBER (C_line_details_rec.CHARGE_ITEM_NUMBER),
x_item_id => TO_NUMBER (C_line_details_rec.ITEM_ID),
x_price => nvl(C_line_details_rec.REVISED_PRICE,C_line_details_rec.PRICE),
x_effective_date => nvl(C_line_details_rec.REVISED_EFFECTIVE_DATE,C_line_details_rec.CURRENT_EFFECTIVE_DATE),
x_revised_price => C_line_details_rec.REVISED_PRICE,
x_revised_effective_date => C_line_details_rec.REVISED_EFFECTIVE_DATE,
x_run_id => TO_NUMBER (C_line_details_rec.RUN_ID),
x_org_id => TO_NUMBER (C_line_details_rec.ORG_ID),
x_previous_price => C_line_details_rec.PRICE,
x_previous_effective_date => C_line_details_rec.CURRENT_EFFECTIVE_DATE,
x_old_vat_id => p_old_vat_id,
x_new_vat_id => p_new_vat_id,
x_request_id => l_request_id
);
UPDATE igi_rpi_line_details_all ld SET
ld.VAT_TAX_ID = p_new_vat_id
WHERE ld.standing_charge_id = C_standing_charges_rec.standing_charge_id
AND ld.line_item_id = C_line_details_rec.line_item_id
AND ld.org_id = p_org_id;
WriteToLogFile(l_state_level, 'igi.plsql.igirruvr.update_vat_rate.Msg3',
'END (Successful) Update VAT Rate');
WriteToLogFile(l_state_level, 'igi.plsql.igirruvr.update_vat_rate.Msg4',
'END (Error) Update VAT Rate');
END update_vat_rate;