oracle 计划外折旧,计划外折旧(unplanned deprn)API开发例程

--******************************************************************************

-- Punction: Get transaction date for API

--******************************************************************************

FUNCTION get_date_f(p_book_type_code IN VARCHAR2) RETURN DATE IS

lv_transaction_date DATE;

BEGIN

--get transaction data entered

SELECT greatest(dp.calendar_period_open_date,

least(trunc(SYSDATE), dp.calendar_period_close_date))

INTO lv_transaction_date

FROM fa_deprn_periods dp

WHERE dp.book_type_code = p_book_type_code

AND dp.period_close_date IS NULL;

RETURN lv_transaction_date;

EXCEPTION

WHEN no_data_found THEN

RETURN trunc(SYSDATE);

WHEN too_many_rows THEN

RETURN trunc(SYSDATE);

END get_date_f;

--******************************************************************************

-- Procedure: exec API

--******************************************************************************

PROCEDURE do_unplanned_p(lv_errbuf OUT VARCHAR2, lv_retcode OUT VARCHAR2) IS

lv_status                VARCHAR2(10);

lv_msg_count             NUMBER;

lv_msg_data              VARCHAR2(512);

lv_transaction_header_id NUMBER(15);

BEGIN

FA_TRANS_API_PUB.DO_UNPLANNED(

-- Standard Parameters --

p_api_version      => 1.0,

p_init_msg_list    => 'T',

p_commit           => 'F',

p_validation_level => 100,

x_return_status    => lv_status,

x_msg_count        => lv_msg_count,

x_msg_data         => lv_msg_data,

p_calling_fn       => 'fac_mass_deprn_adjustments_pkg.do_unplanned_p',

-- API Options --

p_debug_flag => 'NO',

-- Out Parameters --

x_transaction_header_id => lv_transaction_header_id,

-- Transaction Info --

p_transaction_date_entered => get_date_f(gv_catchup_amount.book_type_code),

p_transaction_name         => 'ADJUSTMENT',

p_transaction_subtype      => NULL,

p_amortization_start_date  => NULL,

p_calling_interface        => 'FAXASSET',

p_last_update_date         => SYSDATE,

p_last_updated_by          => -1,

p_created_by               => -1,

p_creation_date            => SYSDATE,

p_last_update_login        => -1,

p_attribute1               => NULL,

p_attribute2               => NULL,

p_attribute3               => NULL,

p_attribute4               => NULL,

p_attribute5               => NULL,

p_attribute6               => NULL,

p_attribute7               => NULL,

p_attribute8               => NULL,

p_attribute9               => NULL,

p_attribute10              => NULL,

p_attribute11              => NULL,

p_attribute12              => NULL,

p_attribute13              => NULL,

p_attribute14              => NULL,

p_attribute15              => NULL,

p_attribute_category_code  => NULL,

-- Asset Header Info --

p_asset_id       => gv_catchup_amount.asset_id,

p_book_type_code => gv_catchup_amount.book_type_code,

-- Unplanned Depreciation Info --

p_code_combination_id => gv_catchup_amount.code_combination_id,

p_unplanned_amount    => gv_catchup_amount.catchup_amount,

p_unplanned_type      => 'UNPLAN');

IF lv_status = 'S' THEN

--success

--update record status

UPDATE fac_mass_deprn_adjustment_load t

SET t.status = 'Complete'

WHERE t.request_id = gv_request_id

AND t.book_type_code = gv_catchup_amount.book_type_code

AND t.asset_number = gv_catchup_amount.asset_number;

ELSE

--failure

--update record status

UPDATE fac_mass_deprn_adjustment_load t

SET t.status = 'Error'

WHERE t.request_id = gv_request_id

AND t.book_type_code = gv_catchup_amount.book_type_code

AND t.asset_number = gv_catchup_amount.asset_number;

END IF;

COMMIT;

EXCEPTION

WHEN OTHERS THEN

ROLLBACK;

lv_retcode := SQLCODE;

lv_errbuf  := SQLERRM;

END do_unplanned_p;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值