jai_om_tax_p

download jai_om_tax_p

If you can't read please download the document

description

India Localization Query

Transcript of jai_om_tax_p

REM +======================================================================+REM | Copyright (c) 1996, 2014 Oracle Corporation Redwood Shores, California, USA|REM | All rights reserved. |REM +======================================================================+REM NAME JAI_OM_TAX_PROCESSING_PKGREMREM DESCRIPTION PackageREMREM NOTESREM-----------------------------------------------------------------------------------REM This package comes from JAI_OE_OLA_TRIGGER_PKG for JAI Trigger Elimination project.REM Some fnd log information is added.REM------------------------------------------------------------------------------------REM HISTORYREMREM+======================================================================+REM dbdrv: sql ~PROD ~PATH ~FILE none none none sqlplus &phase=plb+1 checkfile(120.0.12010000.37=120.0.12020000.30):~PROD:~PATH:~FILESET VERIFY OFFWHENEVER SQLERROR EXIT FAILURE ROLLBACK;WHENEVER OSERROR EXIT FAILURE ROLLBACK;CREATE OR REPLACE PACKAGE BODY JAI_OM_TAX_PROCESSING_PKG AS /* $Header: jai_om_tax_p.plb 120.0.12020000.30 2014/03/25 10:16:11 mmurtuza noship $ */ --+============================================================================================================+--| Fixed History |--| 16/Oct/2012 Zhiwei.Xin Modified for bug 14669425 |--| Fixed Details: |--| Modifed cursor c_get_quantity for fetching shipped line quantity. |--+============================================================================================================*/ G_PKG_NAME CONSTANT VARCHAR2(30) := 'JAI_OM_TAX_PROCESSING_PKG'; G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL; G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED; G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR; G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION; G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT; G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE; G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT; G_MODULE_NAME CONSTANT VARCHAR2(60) := 'JA.PLSQL.JAI_OM_TAX_PROCESSING_PKG.'; /* REM +======================================================================+ REM NAME ORDER_LINE_VALIDATION REM REM DESCRIPTION Called from jai_oe_ola_trigger_pkg.ariu_t2 and REM jai_om_tax_processing_pkg.populate_tax REM REM NOTES Come from JAI_OM_WDD_TRIGGER_PKG.ARU_T2 REM REM +======================================================================+ */ PROCEDURE ORDER_LINE_VALIDATION (p_rec_old t_rec%type, p_rec_new t_rec%type, p_action varchar2, px_return_code out nocopy varchar2, px_return_message out nocopy varchar2) IS v_api_name CONSTANT VARCHAR2(30) := 'ORDER_LINE_VALIDATION'; v_inventory_item_id NUMBER; v_organization_id NUMBER; v_subinventory VARCHAR2(10); v_source_header_type_id NUMBER; v_trading_flag VARCHAR2(1); v_bonded JAI_INV_SUBINV_DTLS.bonded%TYPE; lv_allow_shipment_wo_excise VARCHAR2(1); v_trad_register_code VARCHAR2(30); v_location_id NUMBER; v_exe_flag VARCHAR2(150); v_mod_flag VARCHAR2(150); v_container_item_flag mtl_system_items.container_item_flag%type; lv_inventory_item_flag mtl_system_items.inventory_item_flag%type; ln_ship_from_location_id WSH_DELIVERY_DETAILS.ship_from_location_id%type; /* variables used in debug package */ lv_object_name jai_cmn_debug_contexts.LOG_CONTEXT%TYPE ; lv_member_name jai_cmn_debug_contexts.LOG_CONTEXT%TYPE; lv_context jai_cmn_debug_contexts.LOG_CONTEXT%TYPE; ln_reg_id NUMBER ; le_error EXCEPTION ; v_mtl_line_exists NUMBER ; -- added for bug 17211552 CURSOR Location_Cursor IS SELECT NVL(Location_id,0), trading, NVL(bonded,'N') bonded FROM JAI_INV_SUBINV_DTLS WHERE Sub_Inventory_Name = v_subinventory AND organization_id = v_organization_id; cursor c_orgn_Null_site_info is select exc_shpt_wo_exc_tax_flag from JAI_CMN_INVENTORY_ORGS where organization_id = p_rec_new.ship_from_org_id and location_id = 0; CURSOR Trading_register_code_cur(p_organization_id NUMBER , p_location_id NUMBER , p_order_type_id NUMBER) IS SELECT A.register_code FROM JAI_OM_OE_BOND_REG_HDRS A, JAI_OM_OE_BOND_REG_DTLS b WHERE a.organization_id = p_organization_id AND a.location_id = p_location_id AND a.register_id = b.register_id AND b.order_flag = 'Y' AND b.order_type_id = p_order_type_id; CURSOR get_item_attributes IS SELECT excise_flag , modvat_flag , nvl(container_item_flag,'N'), nvl(inventory_item_flag,'N') FROM mtl_system_items msi, JAI_INV_ITM_SETUPS jmsi WHERE msi.organization_id = jmsi.organization_id AND msi.inventory_item_id = jmsi.inventory_item_id AND jmsi.inventory_item_id = v_Inventory_Item_Id AND jmsi.organization_id = v_organization_id; -- The following cursor gets the tax amount for the line_id from JAI_OM_OE_SO_LINES table CURSOR c_ja_in_so_lines_tax_amt IS SELECT tax_amount FROM JAI_OM_OE_SO_LINES WHERE line_id = p_rec_new.line_id AND header_id = p_rec_new.header_id; -- The following cursor gets the sum of tax amount for the line_id from JAI_OM_OE_SO_TAXES table CURSOR c_ja_in_so_tax_lines_tax_amt IS SELECT nvl(sum(so_tax.tax_amount),0) FROM JAI_OM_OE_SO_TAXES so_tax , jai_cmn_taxes_all tax WHERE line_id = p_rec_new.line_id AND header_id = p_rec_new.header_id AND so_tax.tax_id = tax.tax_id AND NVL(tax.inclusive_tax_flag,'N') = 'N' ; v_line_tax_amount Number; v_sum_tax_amount Number; CURSOR c_chk_exc_exmpt_rule IS SELECT a.excise_exempt_type , a.line_number , a.shipment_line_number , quantity FROM JAI_OM_OE_SO_LINES a WHERE a.line_id = p_rec_new.line_id AND a.header_id = p_rec_new.header_id ; lv_excise_exempt_type JAI_OM_OE_SO_LINES.EXCISE_EXEMPT_TYPE%TYPE ; ln_line_number JAI_OM_OE_SO_LINES.LINE_NUMBER%TYPE ; ln_shipment_line_number JAI_OM_OE_SO_LINES.SHIPMENT_LINE_NUMBER%TYPE ; lv_ret_flag VARCHAR2(10) ; lv_error_msg VARCHAR2(1996) ; v_quantity number; ln_vat_cnt NUMBER DEFAULT 0 ; ln_exc_cnt NUMBER DEFAULT 0 ; ln_cnt_org_loc_setup NUMBER DEFAULT 0 ; lv_applicable JAI_RGM_ITM_TMPL_ATTRS.ATTRIBUTE_CODE%TYPE; lv_process_flag VARCHAR2 (2); lv_process_message VARCHAR2 (1000); CURSOR cur_chk_vat_exists (cp_line_id JAI_OM_OE_SO_TAXES.LINE_ID%TYPE, cp_header_id JAI_OM_OE_SO_TAXES.HEADER_ID%TYPE) IS SELECT 1 FROM JAI_OM_OE_SO_TAXES jstl , JAI_CMN_TAXES_ALL jtc , jai_regime_tax_types_v tax_types WHERE jstl.line_id = cp_line_id AND jstl.header_id = cp_header_id AND jtc.tax_id = jstl.tax_id AND jtc.tax_type = tax_types.tax_type AND tax_types.regime_code = jai_constants.vat_regime; CURSOR cur_chk_excise_exists (cp_line_id JAI_OM_OE_SO_TAXES.LINE_ID%TYPE, cp_header_id JAI_OM_OE_SO_TAXES.HEADER_ID%TYPE ) IS SELECT 1 FROM JAI_OM_OE_SO_TAXES jstl , JAI_CMN_TAXES_ALL jtc WHERE jstl.line_id = cp_line_id AND jstl.header_id = cp_header_id AND jtc.tax_id = jstl.tax_id AND jtc.tax_type in ( jai_constants.tax_type_excise, jai_constants.tax_type_exc_additional, jai_constants.tax_type_exc_other, jai_constants.tax_type_exc_edu_cess, jai_constants.tax_type_sh_exc_edu_cess); CURSOR cur_chk_org_loc_setup (cp_organization_id JAI_OM_WSH_LINES_ALL.LOCATION_ID%TYPE, cp_location_id JAI_OM_WSH_LINES_ALL.ORGANIZATION_ID%TYPE ) IS SELECT 1 FROM jai_rgm_parties rgmpt, JAI_RGM_DEFINITIONS rgms WHERE rgmpt.regime_id = rgms.regime_id AND rgmpt.location_id = cp_location_id AND rgmpt.organization_id = cp_organization_id AND rgms.regime_code = jai_constants.vat_regime; tab_ooh OE_ORDER_HEADERS_ALL%ROWTYPE ; CURSOR cur_get_org_hdr (cp_header_id OE_ORDER_HEADERS_ALL.HEADER_ID%TYPE) IS SELECT * FROM oe_order_headers_all WHERE header_id = cp_header_id ; CURSOR c_ato_line_id IS SELECT oel.ato_line_id FROM oe_order_headers_all oeh, oe_order_lines_all oel WHERE oeh.header_id = p_rec_new.header_id AND oeh.header_id = oel.header_id AND item_type_code = 'CONFIG' ; CURSOR c_model_item_id(cp_ato_line_id oe_order_lines_all.line_id%TYPE) IS SELECT oel.inventory_item_id FROM oe_order_lines_all oel WHERE oel.line_id = cp_ato_line_id AND item_type_code = 'MODEL' ; ln_ato_line_id NUMBER ; ln_model_item_id NUMBER ; /*mmurtuza for Bug 16793509 -- Start*/ v_source_line_id number;v_source_header_id number;-- additions for the bug 17211552 starts CURSOR mtl_trx_line_exist IS SELECT 1 FROM mtl_material_transactions WHERE trx_source_line_id= p_rec_new.line_id;-- additions for the bug 17211552 ends CURSOR get_conv_detail_cur IS SELECT transactional_curr_code , conversion_type_code , conversion_rate , nvl(b.actual_shipment_date,sysdate) actual_shipment_date FROM oe_order_headers_all a , oe_order_lines_all b WHERE a.header_id = b.header_id AND b.line_id = v_source_line_id AND a.header_id = v_source_header_id ; v_currency_code GL_SETS_OF_BOOKS.CURRENCY_CODE%TYPE ; v_set_of_books_id HR_OPERATING_UNITS.SET_OF_BOOKS_ID%TYPE ; v_conv_type_code oe_order_headers_all.conversion_type_code%TYPE; v_conv_rate NUMBER; v_conv_date DATE; v_curr_conv_rate NUMBER; l_func_curr_det jai_plsql_cache_pkg.func_curr_details; /*mmurtuza for Bug 16793509 -- End*/ /*Added function get_subinventory by mmurtuza for bug 16975882*/ FUNCTION get_subinventory RETURN VARCHAR2 ISPRAGMA AUTONOMOUS_TRANSACTION; CURSOR cur_get_subinventory IS SELECT subinventory FROM wsh_delivery_details WHERE source_line_id = p_rec_new.line_id and source_header_id = p_rec_new.Header_id and transaction_id is not null /*Added by mmurtuza for bug 17650577*/ and move_order_line_id is not null; /*Added by mmurtuza for bug 17338712*/ ln_subinventory wsh_delivery_details.subinventory%type; BEGIN OPEN cur_get_subinventory; FETCH cur_get_subinventory INTO ln_subinventory; CLOSE cur_get_subinventory; return ln_subinventory; END get_subinventory; BEGIN jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','begin of ORDER_LINE_VALIDATION procedure'); /* ****************************************************************************************************** Change History 1. 17/May/2013 mmurtuza for bug 16793509 issue: FULFILLED ORDER (LOCALIZED ) FORM NOT SHOWING THE LINE DETAILS Fix: Added currency conversion validation before firing ITS itself 2. 31/May/2013 mmurtuza for bug 16861879 issue: ERROR MESSAGE SHOULD BE SHOWN WHEN THE NON EXCISE ITEM IS SHIPPING WITH EXCISE T Fix: Added AWAITING_SHIPPING while validating flow status code for validating the setups 3. 19/May/2013 mmurtuza for bug 16975882 issue: ON SHIPCONFIRM SYSTEM VALIDATE SUB INV FRM ORDER LINES INSTEAD OF PICKING SUBINV Fix: Added function get_subinventory to fetch sub inventory from wsh_delivery_details4. 2/AUG/2013 nkodakan for bug 17211552 Issue: NOT ABLE TO ALLOCATE THE MV ORDER ERR:MANDATORY SUB INV SETUP NOT DEFINED EXCEPFix: Added a if condition to check the trx_source_line_id from the table mtl_material_transactions5. 24/AUG/2013 mmurtuza for bug 17338712Issue: MANDATORY INDIA LOCALIZATION SUB-INVENTORY SETUP NOT DONE FOR THIS LOCATION FROMFix: Added condition of move_order_line_id in CURSOR cur_get_subinventory6. 11/Sep/2013 mmurtuza for bug 17407826Issue: VAT TEMPLATE VALIDATION FAILED IN SHIPPING TRANSACTION FORMFix: Merged the conditions of VAT and Excise7. 29/Oct/2013 mmurtuza for bug 17650577Issue: CANNOT PICK RELEASE IN DIFFERENT LOCATIONS IN INDIAFix: Added condition of transaction_id in CURSOR cur_get_subinventory*******************************************************************************************************/ px_return_code := jai_constants.successful ; v_inventory_item_id :=p_rec_new.inventory_item_id ; v_organization_id :=p_rec_new.ship_from_org_id ; --v_subinventory :=p_rec_new.subinventory ;v_subinventory :=get_subinventory() ; /*Commented above and added this line by mmurtuza for bug 16975882*/ lv_object_name :='TRIGGER.ARAA.AFTER.JA_IN_WSH_DLRY_AU_REL_STAT_TRG' ; v_line_tax_amount :=0; v_sum_tax_amount :=0; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','365 v_subinventory='||v_subinventory); -- additions for the bug 17211552 startsOPEN mtl_trx_line_exist;FETCH mtl_trx_line_exist INTO v_mtl_line_exists;CLOSE mtl_trx_line_exist; -- additions for the bug ends jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','371 v_mtl_line_exists='||v_mtl_line_exists); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','372 p_rec_new.line_category_code='||p_rec_new.line_category_code); --Skip 'RETURN' type, just process 'RETURN' cycle. IF NVL(p_rec_new.line_category_code, 'RETURN') 'ORDER' THEN IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME || v_api_name, ' This procedure just process type is ORDER, skip it for line_id' || p_rec_new.line_id); END IF; px_return_code := jai_constants.successful ; px_return_message := 'This procedure just process type is ORDER, skip it for line_id' || p_rec_new.line_id ; return; END IF; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','384 p_rec_new.header_id='||p_rec_new.header_id); OPEN cur_get_org_hdr (cp_header_id => p_rec_new.header_id); FETCH cur_get_org_hdr INTO tab_ooh ; CLOSE cur_get_org_hdr ; v_source_header_type_id := tab_ooh.order_type_id; ln_ship_from_location_id := WSH_UTIL_CORE.Org_To_Location(p_rec_new.ship_from_org_id, TRUE); OPEN c_ja_in_so_lines_tax_amt; FETCH c_ja_in_so_lines_tax_amt INTO v_line_tax_amount; CLOSE c_ja_in_so_lines_tax_amt; OPEN c_ja_in_so_tax_lines_tax_amt; FETCH c_ja_in_so_tax_lines_tax_amt INTO v_sum_tax_amount; CLOSE c_ja_in_so_tax_lines_tax_amt; IF NVL(v_line_tax_amount,0) NVL(v_sum_tax_amount,0) THEN IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME || v_api_name, ' Taxes are not matching in JAI_OM_OE_SO_LINES and JA_IN_SO_TAX_LINE FOR LINE_ID ' || p_rec_new.line_id); END IF; px_return_code := jai_constants.expected_error ; px_return_message := 'Taxes are not matching in JAI_OM_OE_SO_LINES and JA_IN_SO_TAX_LINE FOR LINE_ID ' || p_rec_new.line_id ; return ; END IF;/*mmurtuza for Bug 16793509 -- Start*/v_source_line_id := p_rec_new.line_id;v_source_header_id := p_rec_new.header_id; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','415 p_rec_new.header_id='||p_rec_new.header_id); IF p_rec_new.org_id IS NOT NULL THEN l_func_curr_det := jai_plsql_cache_pkg.return_sob_curr (p_org_id => p_rec_new.org_id); v_currency_code := l_func_curr_det.currency_code; v_set_of_books_id := l_func_curr_det.ledger_id; END IF;OPEN get_conv_detail_cur; FETCH get_conv_detail_cur INTO v_currency_code, v_conv_type_code,v_conv_rate, v_conv_date; IF get_conv_detail_cur%FOUND THEN v_curr_conv_rate := jai_cmn_utils_pkg.currency_conversion ( v_set_of_books_id , v_currency_code , v_conv_date , v_conv_type_code , v_conv_rate ); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','435 v_curr_conv_rate='||v_curr_conv_rate); IF v_curr_conv_rate IS NULL THEN IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME || v_api_name, 'Currency Conversion on shipment date not setup.'); END IF; px_return_code := jai_constants.expected_error ; px_return_message := 'Currency Conversion on shipment date not setup.' ; return ; END IF; END IF; CLOSE get_conv_detail_cur; /*mmurtuza for Bug 16793509 -- End*/ OPEN c_chk_exc_exmpt_rule; FETCH c_chk_exc_exmpt_rule INTO lv_excise_exempt_type,ln_line_number,ln_shipment_line_number,v_quantity; CLOSE c_chk_exc_exmpt_rule ; lv_ret_flag := jai_om_utils_pkg.validate_excise_exemption ( p_line_id => p_rec_new.line_id, p_excise_exempt_type => lv_excise_exempt_type, p_line_number => ln_line_number, p_shipment_line_number => ln_shipment_line_number, p_error_msg => lv_error_msg ) ; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','466 lv_ret_flag='||lv_ret_flag); IF nvl(lv_ret_flag,'S') = 'EE' THEN px_return_code := jai_constants.expected_error ; px_return_message := lv_error_msg; return ; ELSIF nvl(lv_ret_flag,'S') = 'UE' THEN px_return_code := jai_constants.expected_error ; px_return_message := lv_error_msg; return ; END IF ; OPEN location_cursor; FETCH location_cursor INTO v_location_id, v_trading_flag , v_bonded; CLOSE location_cursor; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','480 v_location_id='||v_location_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','481 v_trading_flag='||v_trading_flag); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','482 v_bonded='||v_bonded); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','484 v_organization_id='||v_organization_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','485 v_source_header_type_id='||v_source_header_type_id); OPEN trading_register_code_cur( v_organization_id , v_location_id , v_source_header_type_id ); FETCH trading_register_code_cur INTO v_trad_register_code; CLOSE trading_register_code_cur; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','492 v_trad_register_code='||v_trad_register_code); OPEN get_item_attributes; FETCH get_item_attributes INTO v_exe_flag,v_mod_flag,v_container_item_flag,lv_inventory_item_flag; CLOSE get_item_attributes; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','497 v_exe_flag='||v_exe_flag); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','498 v_mod_flag='||v_mod_flag); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','499 v_container_item_flag='||v_container_item_flag); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','500 lv_inventory_item_flag='||lv_inventory_item_flag); -- if nvl(p_rec_new.flow_status_code,'ENTERED') in ('ENTERED', 'AWAITING_SHIPPING') then /*Added AWAITING_SHIPPING by mmurtuza for bug 16861879*/ -- commented above and added below for the bug 17211552 jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','503 v_mtl_line_exists='||v_mtl_line_exists); IF /*nvl(p_rec_new.flow_status_code,'ENTERED') = 'ENTERED' or */ /*Commented by mmurtuza for bug 17358641*/ v_mtl_line_exists IS NOT NULL THEN jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','507 p_rec_new.line_id='||p_rec_new.line_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','508 p_rec_new.header_id='||p_rec_new.header_id); OPEN cur_chk_excise_exists(cp_line_id => p_rec_new.line_id, cp_header_id => p_rec_new.header_id ); FETCH cur_chk_excise_exists INTO ln_exc_cnt; CLOSE cur_chk_excise_exists ; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','514 ln_exc_cnt='||ln_exc_cnt); IF nvl (ln_exc_cnt,0) > 0 AND nvl(v_exe_flag,'N') = 'N' THEN IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME || v_api_name, 'An item which is not Excisable has Excise Taxes attached.' || 'Please correct the item attribute or remove the Excise type of taxes'); END IF; px_return_code := jai_constants.expected_error ; px_return_message := 'An item which is not Excisable has Excise Taxes attached.' || 'Please correct the item attribute or remove the Excise type of taxes' ; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','525 px_return_code'||px_return_code); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','525 before return'); return ; END IF; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','530 v_bonded'||v_bonded); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','531 v_trading_flag'||v_trading_flag); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','532 v_exe_flag'||v_exe_flag); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','533 v_trad_register_code'||v_trad_register_code); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','534 ln_exc_cnt'||ln_exc_cnt); IF ( ( NVL(v_bonded,'N') = 'Y' OR NVL(v_trading_flag,'N') = 'Y' ) AND NVL(v_exe_flag,'N') = 'Y' AND v_trad_register_code IN ( '23D_DOMESTIC_EXCISE' , '23D_EXPORT_EXCISE' , 'DOMESTIC_EXCISE' , 'EXPORT_EXCISE' , 'BOND_REG' , '23D_EXPORT_WITHOUT_EXCISE' ) AND nvl(ln_exc_cnt,0) = 0 ) THEN OPEN c_orgn_null_site_info; FETCH c_orgn_null_site_info INTO lv_allow_shipment_wo_excise; CLOSE c_orgn_null_site_info; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','556 lv_allow_shipment_wo_excise'||lv_allow_shipment_wo_excise); IF NVL(lv_allow_shipment_wo_excise,'N') = 'Y' THEN IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME || v_api_name, ' Delivery can not be ship confirmed as Excisable Item in the shipment does not have Excise taxes'); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','562 IN IF NVL(lv_allow_shipment_wo_excise,N) = Y THEN'); END IF; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','564 Before raise_application_error'); raise_application_error(-20412, 'Delivery can not be ship confirmed as Excisable Item in the shipment does not have Excise taxes' ); END IF; END IF; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','569 v_location_id'||v_location_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','570 v_container_item_flag'||v_container_item_flag); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','571 lv_inventory_item_flag'||lv_inventory_item_flag); IF v_location_id IS NULL and v_container_item_flag ='N' and lv_inventory_item_flag = 'Y' then IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME || v_api_name, ' Mandatory India Localization Sub-inventory Setup not done for this Location from where shipment is made'); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','577 before error message Mandatory India Localization Sub-inventory Setup not done.... '); END IF; px_return_code := jai_constants.expected_error ; px_return_message := 'Mandatory India Localization Sub-inventory Setup not done for this Location from where shipment is made' ; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','581 px_return_code'||px_return_code); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','582 px_return_message'||px_return_message); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','583 before return statement'); return ; end if ; /*end if;*/ /*Commented by mmurtuza for bug 17407826*/ jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','587 v_location_id'||v_location_id); if v_location_id is null then v_location_id := ln_ship_from_location_id; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','590 v_location_id'||v_location_id); end if; /*IF nvl(p_rec_new.flow_status_code,'ENTERED') = 'ENTERED' THEN*/ /*Commented by mmurtuza for bug 17407826*/ jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','594 p_rec_new.line_id'||p_rec_new.line_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','595 p_rec_new.header_id'||p_rec_new.header_id); OPEN cur_chk_vat_exists ( cp_line_id => p_rec_new.line_id, cp_header_id => p_rec_new.header_id ); FETCH cur_chk_vat_exists INTO ln_vat_cnt; CLOSE cur_chk_vat_exists ; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','601 ln_vat_cnt'||ln_vat_cnt); IF nvl (ln_vat_cnt,0) > 0 THEN OPEN cur_chk_org_loc_setup (cp_organization_id => v_organization_id , cp_location_id => v_location_id ); FETCH cur_chk_org_loc_setup INTO ln_cnt_org_loc_setup; CLOSE cur_chk_org_loc_setup ; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','609 ln_cnt_org_loc_setup'||ln_cnt_org_loc_setup); IF nvl(ln_cnt_org_loc_setup,0) = 0 THEN /* || For vat regime organization-location specific setup does not exist in || jai_rgm_parties (Regime Organization Registration) */ IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME || v_api_name, ' Organization-Location setup does not exist at regime level'); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','619 Organization-Location setup does not exist at regime level'); END IF; app_exception.raise_exception( EXCEPTION_TYPE => 'APP' ,EXCEPTION_CODE => NULL ,EXCEPTION_TEXT => 'Organization-Location setup does not exist at regime level' ); END IF; ln_ato_line_id := NULL ; ln_model_item_id := NULL ; OPEN c_ato_line_id ; FETCH c_ato_line_id INTO ln_ato_line_id ; CLOSE c_ato_line_id ; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','632 ln_ato_line_id'||ln_ato_line_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','635 jai_constants.vat_regime'||jai_constants.vat_regime); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','636 p_rec_new.ship_from_org_id'||p_rec_new.ship_from_org_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','638 jai_constants.rgm_attr_item_applicable'||jai_constants.rgm_attr_item_applicable); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','639 lv_applicable'||lv_applicable); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','640 lv_process_flag'||lv_process_flag); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','641 lv_process_message'||lv_process_message); IF ln_ato_line_id IS NOT NULL THEN OPEN c_model_item_id(ln_ato_line_id) ; FETCH c_model_item_id INTO ln_model_item_id ; CLOSE c_model_item_id ; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','646 ln_model_item_id'||ln_model_item_id); jai_inv_items_pkg.jai_get_attrib ( p_regime_code => jai_constants.vat_regime , p_organization_id => p_rec_new.ship_from_org_id , p_inventory_item_id => ln_model_item_id , p_attribute_code => jai_constants.rgm_attr_item_applicable , p_attribute_value => lv_applicable , p_process_flag => lv_process_flag , p_process_msg => lv_process_message ); ELSE jai_inv_items_pkg.jai_get_attrib ( p_regime_code => jai_constants.vat_regime , p_organization_id => p_rec_new.ship_from_org_id , p_inventory_item_id => p_rec_new.inventory_item_id , p_attribute_code => jai_constants.rgm_attr_item_applicable , p_attribute_value => lv_applicable , p_process_flag => lv_process_flag , p_process_msg => lv_process_message ); END IF; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','669 lv_process_flag'||lv_process_flag); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','670 lv_applicable'||lv_applicable); IF lv_process_flag = jai_constants.successful AND nvl(lv_applicable,'N') = 'N' THEN /* ||item is not vatable */ IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME || v_api_name, ' An item which is not Vatable has VAT Taxes attached.Please correct the item attribute or remove the VAT type of taxes'); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','680 After the message An item which is not Vatable has VAT Taxes attached.Please correct the item attribute.....'); END IF; app_exception.raise_exception( EXCEPTION_TYPE => 'APP' ,EXCEPTION_CODE => NULL ,EXCEPTION_TEXT => 'An item which is not Vatable has VAT Taxes attached.Please correct the item attribute or remove the VAT type of taxes' ); ELSIF lv_process_flag jai_constants.successful THEN IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME || v_api_name, lv_process_message); END IF; app_exception.raise_exception( EXCEPTION_TYPE => 'APP' ,EXCEPTION_CODE => NULL ,EXCEPTION_TEXT => substr (lv_process_message,1,999) ); END IF; END IF; END IF; jai_ar_tcs_rep_pkg.process_transactions ( p_ooh => tab_ooh , p_event => jai_constants.wsh_ship_confirm , p_process_flag => lv_process_flag , p_process_message => lv_process_message ); IF lv_process_flag = jai_constants.expected_error OR lv_process_flag = jai_constants.unexpected_error THEN IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME || v_api_name, lv_process_message); END IF; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','720 before le_error exception'); raise le_error; END IF; jai_cmn_debug_contexts_pkg.deregister (pn_reg_id => ln_reg_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','726 before the EXCEPTION block'); EXCEPTION WHEN le_error THEN IF lv_process_flag = jai_constants.unexpected_error THEN lv_process_message := substr (lv_process_message || ' Object = JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION ', 1,1999) ; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','731 excepton handled in le_error exception '); END IF; fnd_message.set_name (application => 'JA', name => 'JAI_GENERIC_MSG' ); fnd_message.set_token ( token => 'MSG_TEXT', value => lv_process_message ); app_exception.raise_exception; WHEN others THEN jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','747 in when others excepton block '); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','748 sqlcode '||sqlcode); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION','749 sqlerrm '||sqlerrm); fnd_message.set_name ( application => 'JA', name => 'JAI_GENERIC_MSG' ); fnd_message.set_token ( token => 'MSG_TEXT', value => 'Exception Occured in ' || ' Object = JAI_OM_TAX_PROCESSING_PKG.ORDER_LINE_VALIDATION'||fnd_global.local_chr(10)||SQLERRM ); app_exception.raise_exception; END ORDER_LINE_VALIDATION ; /* REM +======================================================================+ REM NAME COPY_ORDER_TO_ORDER REM REM DESCRIPTION COPY ORDER LINES FROM ORIGINAL ORDER REM REM NOTES Call from procdure COPY_SOURCE_ORDER REM REM +======================================================================+ */ PROCEDURE COPY_ORDER_TO_ORDER(pr_copy get_copy_order_line%ROWTYPE, pr_order_line t_rec%type, pr_header_info get_header_info%ROWTYPE) IS v_api_name CONSTANT VARCHAR2(30) := 'COPY_ORDER_TO_ORDER'; CURSOR get_so_tax_lines_count_cur(p_header_id NUMBER, p_line_id NUMBER) IS SELECT COUNT(1) FROM JAI_OM_OE_SO_TAXES WHERE header_id = p_header_id AND line_id = p_line_id; CURSOR so_tax_lines_cur(p_header_id NUMBER, p_line_id NUMBER) IS SELECT tax_line_no, tax_id, tax_rate, qty_rate, uom, precedence_1, precedence_2, precedence_3, precedence_4, precedence_5, precedence_6, precedence_7, precedence_8, precedence_9, precedence_10, tax_amount, base_tax_amount, func_tax_amount, tax_category_id FROM JAI_OM_OE_SO_TAXES WHERE header_id = p_header_id AND line_id = p_line_id; c_source_line_id NUMBER; v_so_tax_lines_count NUMBER; v_tax_line_count NUMBER; r_get_copy_order_line get_copy_order_line%ROWTYPE; l_func_curr_det jai_plsql_cache_pkg.func_curr_details; v_set_of_books_id NUMBER; v_converted_rate NUMBER; /*Start by mmurtuza for bug 17358641 */ CURSOR bind_cur(p_header_id NUMBER) IS SELECT sold_to_org_id, conversion_type_code, nvl(ordered_date, creation_date) FROM oe_order_headers_all WHERE header_id = p_header_id;v_ship_to_site_use_id NUMBER := NVL(pr_order_line.ship_to_ORG_id,0);v_inventory_item_id NUMBER := pr_order_line.inventory_item_id;v_uom_code VARCHAR2(3) := pr_order_line.ORDER_QUANTITY_UOM;v_assessable_value NUMBER;ln_vat_assessable_value NUMBER;v_customer_id NUMBER;v_conv_type_code VARCHAR2(30);v_date_ordered DATE;/*End by mmurtuza for bug 17358641 */ BEGIN jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','835 begin of COPY_ORDER_TO_ORDER procedure'); /*Start by mmurtuza for bug 17358641 */ jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','837 pr_order_line.header_id '||pr_order_line.header_id); OPEN bind_cur(pr_order_line.header_id); FETCH bind_cur INTO v_customer_id, v_conv_type_code, v_date_ordered; CLOSE bind_cur; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','845 v_customer_id '||v_customer_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','846 v_conv_type_code '||v_conv_type_code); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','847 v_date_ordered '||v_date_ordered); l_func_curr_det := jai_plsql_cache_pkg.return_sob_curr(p_org_id => pr_order_line.ORG_ID); v_set_of_books_id := l_func_curr_det.ledger_id; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','853 v_set_of_books_id '||v_set_of_books_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','854 pr_header_info.currency_code '||pr_header_info.currency_code); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','855 pr_header_info.conv_date '||pr_header_info.conv_date); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','856 pr_header_info.conv_type_code '||pr_header_info.conv_type_code); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','857 pr_header_info.conv_rate '||pr_header_info.conv_rate); v_converted_rate := jai_cmn_utils_pkg.currency_conversion(v_set_of_books_id, pr_header_info.currency_code, pr_header_info.conv_date, pr_header_info.conv_type_code, pr_header_info.conv_rate); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','865 v_converted_rate '||v_converted_rate); v_assessable_value := jai_om_utils_pkg.get_oe_assessable_value ( p_customer_id => v_customer_id, p_ship_to_site_use_id => v_ship_to_site_use_id, p_inventory_item_id => v_inventory_item_id, p_uom_code => v_uom_code, p_default_price => pr_order_line.unit_selling_price, p_ass_value_date => v_date_ordered, p_sob_id => v_set_of_books_id , p_curr_conv_code => v_conv_type_code , p_conv_rate => v_converted_rate ); ln_vat_assessable_value := jai_general_pkg.ja_in_vat_assessable_value ( p_party_id => v_customer_id , p_party_site_id => v_ship_to_site_use_id , p_inventory_item_id => v_inventory_item_id , p_uom_code => v_uom_code , p_default_price => pr_order_line.unit_selling_price, p_ass_value_date => v_date_ordered , p_party_type => 'C' ); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','890 ln_vat_assessable_value '||ln_vat_assessable_value); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','891 pr_order_line.ordered_quantity '||pr_order_line.ordered_quantity); ln_vat_assessable_value := nvl(ln_vat_assessable_value,0) * pr_order_line.ordered_quantity; /*End by mmurtuza for bug 17358641 */ SELECT COUNT(*) INTO c_source_line_id FROM JAI_OM_OE_SO_LINES WHERE LINE_ID = pr_order_line.line_id; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','900 c_source_line_id '||c_source_line_id); IF c_source_line_id = 0 THEN jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','903 INSERT INTO JAI_OM_OE_SO_LINES pr_order_line.line_number '||pr_order_line.line_number); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','904 INSERT INTO JAI_OM_OE_SO_LINES pr_order_line.line_id '||pr_order_line.line_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','905 INSERT INTO JAI_OM_OE_SO_LINES pr_order_line.header_id '||pr_order_line.header_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','906 INSERT INTO JAI_OM_OE_SO_LINES pr_order_line.ordered_quantity '||pr_order_line.ordered_quantity); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','907 INSERT INTO JAI_OM_OE_SO_LINES pr_order_line.unit_selling_price '||pr_order_line.unit_selling_price); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','908 INSERT INTO JAI_OM_OE_SO_LINES pr_copy.tax_amount '||pr_copy.tax_amount); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','909 INSERT INTO JAI_OM_OE_SO_LINES pr_copy.line_tot_amount '||pr_copy.line_tot_amount); INSERT INTO JAI_OM_OE_SO_LINES (line_number, line_id, header_id, inventory_item_id, unit_code, quantity, tax_category_id, ato_flag, selling_price, line_amount, assessable_value, tax_amount, line_tot_amount, shipment_line_number, excise_exempt_type, excise_exempt_refno, excise_exempt_date, vat_exemption_flag, vat_exemption_type, vat_exemption_date, vat_exemption_refno, vat_assessable_value, vat_reversal_price, creation_date, created_by, last_update_date, last_updated_by, last_update_login, service_type_code, ship_to_org_id) VALUES (pr_order_line.line_number, pr_order_line.line_id, pr_order_line.header_id, pr_order_line.inventory_item_id, pr_copy.unit_code, pr_order_line.ordered_quantity, pr_copy.tax_category_id, 'Y', pr_order_line.unit_selling_price, nvl(pr_order_line.unit_selling_price * pr_order_line.ordered_quantity, 0), /*pr_copy.assessable_value,*/ /*17358641 */ v_assessable_value, /*17358641 */ pr_copy.tax_amount, pr_copy.line_tot_amount, pr_order_line.shipment_number, pr_copy.excise_exempt_type, pr_copy.excise_exempt_refno, pr_copy.excise_exempt_date, pr_copy.vat_exemption_flag, pr_copy.vat_exemption_type, pr_copy.vat_exemption_date, pr_copy.vat_exemption_refno, /*pr_copy.vat_assessable_value,*/ /*17358641 */ ln_vat_assessable_value, /*17358641 */ nvl(pr_copy.vat_reversal_price, 0) * NVL(pr_order_line.ordered_quantity, 0), pr_order_line.creation_date, pr_order_line.created_by, pr_order_line.last_update_date, pr_order_line.last_updated_by, pr_order_line.last_update_login, pr_copy.service_type_code, pr_order_line.ship_to_org_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','number of rows inserted are '||sql%rowcount); END IF; /********************* Order TO Order tax lines computation **************************/ OPEN Get_So_Tax_Lines_Count_Cur(pr_order_line.SOURCE_DOCUMENT_ID, pr_order_line.SOURCE_DOCUMENT_LINE_ID); FETCH Get_So_Tax_Lines_Count_Cur INTO v_so_tax_lines_count; CLOSE Get_So_Tax_Lines_Count_Cur; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','983 v_so_tax_lines_count '||v_so_tax_lines_count); IF NVL(v_so_tax_lines_count, 0) > 0 THEN FOR Rec IN So_Tax_Lines_Cur(pr_order_line.SOURCE_DOCUMENT_ID, pr_order_line.SOURCE_DOCUMENT_LINE_ID) LOOP SELECT COUNT(1) INTO v_tax_line_count FROM JAI_OM_OE_SO_TAXES WHERE line_id = pr_order_line.line_id AND tax_id = rec.tax_id;jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','993 v_tax_line_count '||v_tax_line_count); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','994 pr_order_line.line_id '||pr_order_line.line_id);jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','995 rec.tax_id '||rec.tax_id); IF v_tax_line_count = 0 THEN /* || call to the ja_in_calc_Taxes_ato would do the trick thru re-calculating the taxes. */ jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1002 INSERT INTO JAI_OM_OE_SO_TAXES pr_order_line.header_id '||pr_order_line.header_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1003 INSERT INTO JAI_OM_OE_SO_TAXES pr_order_line.line_id '||pr_order_line.line_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1004 INSERT INTO JAI_OM_OE_SO_TAXES rec.base_tax_amount '||rec.base_tax_amount); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1005 INSERT INTO JAI_OM_OE_SO_TAXES rec.tax_amount '||rec.tax_amount); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1006 INSERT INTO JAI_OM_OE_SO_TAXES rec.qty_rate '||rec.qty_rate); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1007 INSERT INTO JAI_OM_OE_SO_TAXES rec.tax_line_no '||rec.tax_line_no); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1008 INSERT INTO JAI_OM_OE_SO_TAXES rec.tax_id '||rec.tax_id); INSERT INTO JAI_OM_OE_SO_TAXES (header_id, line_id, tax_line_no, tax_id, tax_rate, qty_rate, uom, precedence_1, precedence_2, precedence_3, precedence_4, precedence_5, precedence_6, precedence_7, precedence_8, precedence_9, precedence_10, tax_amount, base_tax_amount, func_tax_amount, creation_date, created_by, last_update_date, last_updated_by, last_update_login, tax_category_id) VALUES (pr_order_line.header_id, pr_order_line.line_id, rec.tax_line_no, rec.tax_id, rec.tax_rate, rec.qty_rate, rec.uom, rec.precedence_1, rec.precedence_2, rec.precedence_3, rec.precedence_4, rec.precedence_5, rec.precedence_6, rec.precedence_7, rec.precedence_8, rec.precedence_9, rec.precedence_10, rec.tax_amount, rec.base_tax_amount, rec.func_tax_amount, pr_order_line.creation_date, pr_order_line.created_by, pr_order_line.last_update_date, pr_order_line.last_updated_by, pr_order_line.last_update_login, rec.tax_category_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1063 number of rows INSERT INTO JAI_OM_OE_SO_TAXES are '||sql%rowcount); END IF; END LOOP; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1067 pr_order_line.header_id '||pr_order_line.header_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1068 pr_order_line.line_id '||pr_order_line.line_id); -- get newly copied order line OPEN get_copy_order_line(pr_order_line.header_id, pr_order_line.line_id); FETCH get_copy_order_line INTO r_get_copy_order_line; CLOSE get_copy_order_line; /* || The variable r_get_copy_order_line has the details of the current line from JAI_OM_OE_SO_LINES table */ /*Start commenting by mmurtuza for bug 17358641 -- MOved this code in beginning of procedure*/ /*l_func_curr_det := jai_plsql_cache_pkg.return_sob_curr(p_org_id => pr_order_line.ORG_ID); v_set_of_books_id := l_func_curr_det.ledger_id; v_converted_rate := jai_cmn_utils_pkg.currency_conversion(v_set_of_books_id, pr_header_info.currency_code, pr_header_info.conv_date, pr_header_info.conv_type_code, pr_header_info.conv_rate);*/ /*End commenting by mmurtuza for bug 17358641 */ IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN FND_LOG.STRING(G_LEVEL_STATEMENT, G_MODULE_NAME || v_api_name, ' jai_om_tax_pkg.calculate_ato_taxes :' || TO_CHAR(pr_order_line.header_id) || ' ~ ' || TO_CHAR(pr_order_line.line_id)); END IF; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1098 pr_order_line.header_id '||pr_order_line.header_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1099 pr_order_line.line_id '||pr_order_line.line_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1100 pr_order_line.ordered_quantity '||pr_order_line.ordered_quantity); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1101 v_assessable_value '||v_assessable_value); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1102 r_get_copy_order_line.line_amount '||r_get_copy_order_line.line_amount); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1103 v_converted_rate '||v_converted_rate); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1104 pr_order_line.inventory_item_id '||pr_order_line.inventory_item_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1105 pr_order_line.pricing_quantity_uom '||pr_order_line.pricing_quantity_uom); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1106 ln_vat_assessable_value '||ln_vat_assessable_value); jai_om_tax_pkg.calculate_ato_taxes('OE_LINES_UPDATE', NULL, pr_order_line.header_id, pr_order_line.line_id, /*r_get_copy_order_line.assessable_value*/ v_assessable_value * /*17358641 */ (pr_order_line.ordered_quantity), r_get_copy_order_line.line_amount, v_converted_rate, pr_order_line.inventory_item_id, pr_order_line.ordered_quantity, pr_order_line.ordered_quantity, pr_order_line.pricing_quantity_uom, NULL, NULL, NULL, NULL, pr_order_line.last_update_date, pr_order_line.last_updated_by, pr_order_line.last_update_login, /*r_get_copy_order_line.vat_assessable_value*/ ln_vat_assessable_value); /*17358641 */ jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1129 before update JAI_OM_OE_SO_LINES'); update JAI_OM_OE_SO_LINES set tax_amount = NVL(r_get_copy_order_line.line_amount, 0), line_tot_amount = line_amount + NVL(r_get_copy_order_line.line_amount, 0), assessable_value = v_assessable_value, /*17358641*/ vat_assessable_Value = /*r_get_copy_order_line.vat_assessable_value*/ ln_vat_assessable_value /*17358641*/ where header_id = pr_order_line.header_id and line_id = pr_order_line.line_id; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1139 after update JAI_OM_OE_SO_LINES'); END IF; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1038 after the end if'); EXCEPTION WHEN OTHERS THEN jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER','1145 Exception occured in COPY_ORDER_TO_ORDER procedure '); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER',' 1146 sqlcode '||sqlcode); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_ORDER_TO_ORDER',' 1147 sqlerrm '||sqlerrm); RAISE; END COPY_ORDER_TO_ORDER; /* REM +======================================================================+ REM NAME COPY_RETURN_TO_ORDER REM REM DESCRIPTION COPY ORDER LINES FROM ORIGINAL RETURN ORDER REM REM NOTES Call from procdure COPY_SOURCE_ORDER REM REM +======================================================================+ */ PROCEDURE COPY_RETURN_TO_ORDER(pr_order_line t_rec%type, pr_header_info get_header_info%rowtype) IS /* Get the details from the JAI_OM_OE_RMA_LINES table. */ CURSOR cur_get_rma_entry_lines(p_header_id JAI_OM_OE_RMA_LINES.RMA_HEADER_ID%TYPE, p_Line_Id JAI_OM_OE_RMA_LINES.RMA_LINE_ID%TYPE) IS SELECT * FROM JAI_OM_OE_RMA_LINES WHERE rma_header_id = p_header_id AND rma_line_id = p_Line_Id; CURSOR cur_source_line_id_exists(p_line_id OE_ORDER_LINES_ALL.LINE_ID%TYPE, p_header_id OE_ORDER_LINES_ALL.HEADER_ID%TYPE) IS SELECT 'X' FROM JAI_OM_OE_SO_LINES WHERE line_id = p_line_id AND header_id = p_header_id; /* Get the rma trax lines detail from the table JAI_OM_OE_RMA_TAXES */ CURSOR cur_get_JAI_OM_OE_RMA_TAXES(p_line_id OE_ORDER_LINES_ALL.SOURCE_DOCUMENT_LINE_ID%TYPE) IS SELECT tax_line_no, tax_id, tax_rate, qty_rate, uom, precedence_1, precedence_2, precedence_3, precedence_4, precedence_5, precedence_6, precedence_7, precedence_8, precedence_9, precedence_10, tax_amount, base_tax_amount, func_tax_amount FROM JAI_OM_OE_RMA_TAXES WHERE rma_line_id = p_line_id; /* code to check whether a record exists in the table JAI_OM_OE_SO_TAXES for a given line_id and tax_id. */ CURSOR cur_chk_tax_lines_exists(p_line_id1 OE_ORDER_LINES_ALL.LINE_ID%TYPE, p_tax_id JAI_OM_OE_SO_TAXES.TAX_ID%TYPE) IS SELECT 'X' FROM JAI_OM_OE_SO_TAXES WHERE line_id = p_line_id1 AND tax_id = p_tax_id; rec_get_rma_tax_lines cur_get_JAI_OM_OE_RMA_TAXES%ROWTYPE; l_tax_lines_exist VARCHAR2(10); rec_cur_get_rma_entry_lines cur_get_rma_entry_lines%ROWTYPE; l_exists VARCHAR2(1); l_tax_exists VARCHAR2(2); l_func_curr_det jai_plsql_cache_pkg.func_curr_details; v_set_of_books_id NUMBER; v_converted_rate NUMBER; v_assessable_value NUMBER; v_assessable_amount NUMBER; v_line_amount NUMBER; v_line_tax_amount NUMBER; ln_vat_assessable_value JAI_OM_OE_SO_LINES.VAT_ASSESSABLE_VALUE%TYPE; BEGIN jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','begin of COPY_RETURN_TO_ORDER procedure'); v_line_amount := (NVL(pr_order_line.ordered_quantity, 0) * NVL(pr_order_line.UNIT_SELLING_PRICE, 0)); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1234 v_line_amount '||v_line_amount); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1235 pr_order_line.ordered_quantity '||pr_order_line.ordered_quantity); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1236 pr_order_line.UNIT_SELLING_PRICE '||pr_order_line.UNIT_SELLING_PRICE); /* IF the source_order categoy code is Return and line category code is ORDER then 1. Check whether a corresponding record exists in the rma_entry_lines table. IF Yes then get the details of this record into the record group variable rec_cur_get_rma_entry_lines and check whether a record with the same line_id exists in the JAI_OM_OE_SO_LINES table. IF such a record is not found then then insert a record into the JAI_OM_OE_SO_LINES table. */ jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1244 pr_order_line.SOURCE_DOCUMENT_ID '||pr_order_line.SOURCE_DOCUMENT_ID); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1245 pr_order_line.SOURCE_DOCUMENT_LINE_ID '||pr_order_line.SOURCE_DOCUMENT_LINE_ID); OPEN cur_get_rma_entry_lines(pr_order_line.SOURCE_DOCUMENT_ID, pr_order_line.SOURCE_DOCUMENT_LINE_ID); FETCH cur_get_rma_entry_lines INTO rec_cur_get_rma_entry_lines; IF cur_get_rma_entry_lines%FOUND THEN jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1253 in IF cur_get_rma_entry_lines%FOUND THEN '); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1254 pr_order_line.SOURCE_DOCUMENT_ID '||pr_order_line.line_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1255 pr_order_line.SOURCE_DOCUMENT_LINE_ID '||pr_order_line.header_id); OPEN cur_source_line_id_exists(p_line_id => pr_order_line.line_id, p_header_id => pr_order_line.header_id); FETCH cur_source_line_id_exists INTO l_exists;jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1262 l_exists '||l_exists); IF cur_source_line_id_exists%NOTFOUND THEN jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1264 INSERT INTO JAI_OM_OE_SO_LINES pr_order_line.line_number '||pr_order_line.line_number); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1265 INSERT INTO JAI_OM_OE_SO_LINES pr_order_line.line_id '||pr_order_line.line_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1266 INSERT INTO JAI_OM_OE_SO_LINES pr_order_line.header_id '||pr_order_line.header_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1267 INSERT INTO JAI_OM_OE_SO_LINES rec_cur_get_rma_entry_lines.quantity '||rec_cur_get_rma_entry_lines.quantity); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1268 INSERT INTO JAI_OM_OE_SO_LINES rec_cur_get_rma_entry_lines.uom '||rec_cur_get_rma_entry_lines.uom); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1269 INSERT INTO JAI_OM_OE_SO_LINES rec_cur_get_rma_entry_lines.tax_amount '||rec_cur_get_rma_entry_lines.tax_amount); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1270 INSERT INTO JAI_OM_OE_SO_LINES rec_cur_get_rma_entry_lines.assessable_value '||rec_cur_get_rma_entry_lines.assessable_value); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1271 INSERT INTO JAI_OM_OE_SO_LINES v_line_amount '||v_line_amount); INSERT INTO JAI_OM_OE_SO_LINES (line_number, line_id, header_id, inventory_item_id, unit_code, quantity, tax_category_id, ato_flag, selling_price, line_amount, assessable_value, tax_amount, line_tot_amount, shipment_line_number, creation_date, created_by, last_update_date, last_updated_by, last_update_login, service_type_code, ship_to_org_id) VALUES (pr_order_line.line_number, pr_order_line.line_id, pr_order_line.header_id, rec_cur_get_rma_entry_lines.inventory_item_id, rec_cur_get_rma_entry_lines.uom, rec_cur_get_rma_entry_lines.quantity, rec_cur_get_rma_entry_lines.tax_category_id, 'Y', rec_cur_get_rma_entry_lines.selling_price, v_line_amount, rec_cur_get_rma_entry_lines.assessable_value, rec_cur_get_rma_entry_lines.tax_amount, (v_line_amount + rec_cur_get_rma_entry_lines.tax_amount), pr_order_line.shipment_number, pr_order_line.creation_date, pr_order_line.created_by, pr_order_line.last_update_date, pr_order_line.last_updated_by, pr_order_line.last_update_login, rec_cur_get_rma_entry_lines.service_type_code, pr_order_line.ship_to_org_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1319 no.of rows INSERT INTO JAI_OM_OE_SO_LINES are '||sql%rowcount); END IF; CLOSE cur_source_line_id_exists; END IF; CLOSE cur_get_rma_entry_lines; /********************* Return TO Order tax lines computation **************************/ l_tax_lines_exist := 'FALSE'; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1328 before loop FOR rec_get_rma_tax_lines in cur_get_JAI_OM_OE_RMA_TAXES pr_order_line.SOURCE_DOCUMENT_LINE_ID '||pr_order_line.SOURCE_DOCUMENT_LINE_ID); FOR rec_get_rma_tax_lines in cur_get_JAI_OM_OE_RMA_TAXES(p_line_id => pr_order_line.SOURCE_DOCUMENT_LINE_ID) loop l_tax_lines_exist := 'TRUE'; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1333 in loop FOR rec_get_rma_tax_lines in cur_get_JAI_OM_OE_RMA_TAXES '); OPEN cur_chk_tax_lines_exists(p_line_id1 => pr_order_line.line_id, p_tax_id => rec_get_rma_tax_lines.tax_id); FETCH cur_chk_tax_lines_exists INTO l_tax_exists; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1338 l_tax_exists '||l_tax_exists); IF cur_chk_tax_lines_exists%NOTFOUND THEN jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1340 INSERT INTO JAI_OM_OE_SO_TAXES l_tax_exists '||l_tax_exists); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1341 INSERT INTO JAI_OM_OE_SO_TAXES pr_order_line.header_id '||pr_order_line.header_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1342 INSERT INTO JAI_OM_OE_SO_TAXES pr_order_line.line_id '||pr_order_line.line_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1343 INSERT INTO JAI_OM_OE_SO_TAXES rec_get_rma_tax_lines.tax_rate '||rec_get_rma_tax_lines.tax_rate); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1344 INSERT INTO JAI_OM_OE_SO_TAXES rec_get_rma_tax_lines.qty_rate '||rec_get_rma_tax_lines.qty_rate); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1345 INSERT INTO JAI_OM_OE_SO_TAXES rec_get_rma_tax_lines.tax_amount '||rec_get_rma_tax_lines.tax_amount); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1346 INSERT INTO JAI_OM_OE_SO_TAXES rec_get_rma_tax_lines.base_tax_amount '||rec_get_rma_tax_lines.base_tax_amount); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1347 INSERT INTO JAI_OM_OE_SO_TAXES rec_get_rma_tax_lines.func_tax_amount '||rec_get_rma_tax_lines.func_tax_amount); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1348 INSERT INTO JAI_OM_OE_SO_TAXES l_tax_exists '||l_tax_exists); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1349 INSERT INTO JAI_OM_OE_SO_TAXES l_tax_exists '||l_tax_exists); INSERT INTO JAI_OM_OE_SO_TAXES (header_id, line_id, tax_line_no, tax_id, tax_rate, qty_rate, uom, precedence_1, precedence_2, precedence_3, precedence_4, precedence_5, precedence_6, precedence_7, precedence_8, precedence_9, precedence_10, tax_amount, base_tax_amount, func_tax_amount, creation_date, created_by, last_update_date, last_updated_by, last_update_login) VALUES (pr_order_line.header_id, pr_order_line.line_id, rec_get_rma_tax_lines.tax_line_no, rec_get_rma_tax_lines.tax_id, rec_get_rma_tax_lines.tax_rate, rec_get_rma_tax_lines.qty_rate, rec_get_rma_tax_lines.uom, rec_get_rma_tax_lines.precedence_1, rec_get_rma_tax_lines.precedence_2, rec_get_rma_tax_lines.precedence_3, rec_get_rma_tax_lines.precedence_4, rec_get_rma_tax_lines.precedence_5, rec_get_rma_tax_lines.precedence_6, rec_get_rma_tax_lines.precedence_7, rec_get_rma_tax_lines.precedence_8, rec_get_rma_tax_lines.precedence_9, rec_get_rma_tax_lines.precedence_10, rec_get_rma_tax_lines.tax_amount, rec_get_rma_tax_lines.base_tax_amount, rec_get_rma_tax_lines.func_tax_amount, pr_order_line.creation_date, pr_order_line.created_by, pr_order_line.last_update_date, pr_order_line.last_updated_by, pr_order_line.last_update_login); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1404 no.of rows after INSERT INTO JAI_OM_OE_SO_TAXES are '||sql%rowcount); END IF; CLOSE cur_chk_tax_lines_exists; END LOOP; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1408 end loop FOR rec_get_rma_tax_lines in cur_get_JAI_OM_OE_RMA_TAXES '); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1411 l_tax_lines_exist '||l_tax_lines_exist); IF l_tax_lines_exist = 'TRUE' THEN l_func_curr_det := jai_plsql_cache_pkg.return_sob_curr(p_org_id => pr_order_line.ORG_ID); v_set_of_books_id := l_func_curr_det.ledger_id; v_converted_rate := jai_cmn_utils_pkg.currency_conversion(v_set_of_books_id, pr_header_info.currency_code, pr_header_info.conv_date, pr_header_info.conv_type_code, pr_header_info.conv_rate); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1423 pr_header_info.customer_id '||pr_header_info.customer_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1424 pr_order_line.ship_to_ORG_id '||pr_order_line.ship_to_ORG_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1425 pr_order_line.inventory_item_id '||pr_order_line.inventory_item_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1426 pr_order_line.ORDER_QUANTITY_UOM '||pr_order_line.ORDER_QUANTITY_UOM); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1427 pr_order_line.unit_selling_price '||pr_order_line.unit_selling_price); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1428 v_set_of_books_id '||v_set_of_books_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1429 pr_header_info.conv_type_code '||pr_header_info.conv_type_code); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1430 pr_header_info.conv_rate '||pr_header_info.conv_rate); v_assessable_value := jai_om_utils_pkg.get_oe_assessable_value(p_customer_id => pr_header_info.customer_id, p_ship_to_site_use_id => NVL(pr_order_line.ship_to_ORG_id, 0), p_inventory_item_id => pr_order_line.inventory_item_id, p_uom_code => pr_order_line.ORDER_QUANTITY_UOM, p_default_price => pr_order_line.unit_selling_price, p_ass_value_date => pr_header_info.date_ordered, p_sob_id => v_set_of_books_id, p_curr_conv_code => pr_header_info.conv_type_code, p_conv_rate => pr_header_info.conv_rate ); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1443 v_assessable_amount '||v_assessable_amount); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1444 pr_header_info.conv_rate '||pr_header_info.conv_rate); v_assessable_amount := NVL(v_assessable_value, 0) * NVL(pr_order_line.ordered_quantity, 0); v_line_tax_amount := v_line_amount; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1448 v_line_tax_amount '||v_line_tax_amount); ln_vat_assessable_value := jai_general_pkg.ja_in_vat_assessable_value(p_party_id => pr_header_info.customer_id, p_party_site_id => NVL(pr_order_line.ship_to_ORG_id, 0), p_inventory_item_id => pr_order_line.inventory_item_id, p_uom_code => pr_order_line.ORDER_QUANTITY_UOM, p_default_price => pr_order_line.unit_selling_price, p_ass_value_date => pr_header_info.date_ordered, p_party_type => 'C'); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1458 ln_vat_assessable_value '||ln_vat_assessable_value); ln_vat_assessable_value := nvl(ln_vat_assessable_value, 0) * NVL(pr_order_line.ordered_quantity, 0); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1460 ln_vat_assessable_value '||ln_vat_assessable_value); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1461 pr_order_line.ordered_quantity '||pr_order_line.ordered_quantity); IF v_assessable_value rec_cur_get_rma_entry_lines.assessable_value THEN jai_om_tax_pkg.recalculate_oe_taxes(pr_order_line.header_id, pr_order_line.line_id, v_assessable_amount, ln_vat_assessable_value, v_line_tax_amount, rec_cur_get_rma_entry_lines.inventory_item_id, rec_cur_get_rma_entry_lines.quantity, rec_cur_get_rma_entry_lines.uom, v_converted_rate, pr_order_line.last_update_date, pr_order_line.last_updated_by, pr_order_line.last_update_login); UPDATE JAI_OM_OE_SO_LINES SET assessable_value = v_assessable_value, tax_amount = NVL(v_line_tax_amount, 0), line_tot_amount = v_line_amount + NVL(v_line_tax_amount, 0), last_update_date = pr_order_line.last_update_date, last_updated_by = pr_order_line.last_updated_by, last_update_login = pr_order_line.last_update_login WHERE header_id = pr_order_line.header_id AND line_id = pr_order_line.line_id; jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1487 no.of rows update in JAI_OM_SO_LINES are '||sql%rowcount); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1488 UPDATE JAI_OM_OE_SO_LINES v_assessable_value '||v_assessable_value); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1489 UPDATE JAI_OM_OE_SO_LINES v_line_tax_amount '||v_line_tax_amount); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1490 UPDATE JAI_OM_OE_SO_LINES pr_order_line.header_id '||pr_order_line.header_id); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1491 UPDATE JAI_OM_OE_SO_LINES pr_order_line.line_id '||pr_order_line.line_id); END IF; END IF; EXCEPTION WHEN OTHERS THEN jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1500 Exception occured in COPY_RETURN_TO_ORDER procedure'); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1501 sqlcode '||sqlcode); jai_cmn_utils_pkg.write_fnd_log_msg('JAI_OM_TAX_PROCESSING_PKG.COPY_RETURN_TO_ORDER','1502 sqlerrm '||sqlerrm); RAISE; END COPY_RETURN_TO_ORDER; /* REM +======================================================================+ REM NAME COPY_ORDER_TO_RETURN REM REM DESCRIPTION COPY RETURN TAXES and LINES FROM ORIGINAL ORDER REM REM NOTES Call from procdure COPY_SOURCE_ORDER REM REM +======================================================================+ */ PROCEDURE COPY_ORDER_TO_RETURN(pr_order_line t_rec%type, p_order_number NUMBER, px_return_code out nocopy varchar2, px_return_message out nocopy varchar2) IS -- get the details from JAI_OM_WSH_LINES_ALL table CURSOR cur_get_picking_lines(p_source_document_id OE_ORDER_LINES_ALL.SOURCE_DOCUMENT_ID%TYPE, p_source_document_line_id OE_ORDER_LINES_ALL.SOURCE_DOCUMENT_LINE_ID%TYPE) IS SELECT pl.inventory_item_id inventory_item_id, pl.unit_code unit_code, sum(pl.quantity) quantity, pl.tax_category_id tax_category_id, pl.selling_price selling_price, sum(pl.tax_amount) tax_amount, min(pl.delivery_detail_id) delivery_detail_id , pl.organization_id, pl.location_id /*Added by mmurtuza for bug 17015322*/ FROM JAI_OM_WSH_LINES_ALL pl WHERE pl.order_header_id = p_source_document_id AND pl.order_line_id = p_source_document_line_id GROUP BY pl.inventory_item_id, pl.unit_code, pl.selling_price, pl.tax_category_id,pl.organization_id, pl.location_id; /*Added by mmurtuza for bug 17015322*/ cursor c_sales_order_cur is select quantity, service_type_code from JAI_OM_OE_SO_LINES where line_id = pr_order_line.reference_line_id; CURSOR cur_rma_entry_line_exists(p_line_id OE_ORDER_LINES_ALL.LINE_ID%TYPE, p_header_id OE_ORDER_LINES_ALL.HEADER_ID%TYPE) IS SELECT 'X' FROM JAI_OM_OE_RMA_LINES WHERE rma_line_id = p_line_id AND rma_header_id = p_header_id; l_exists VARCHAR2(1); rec_cur_get_picking_lines cur_get_picking_lines%ROWTYPE; CURSOR cur_get_picking_tax_lines(p_source_document_id JAI_OM_WSH_LINES_ALL.ORDER_HEADER_ID%TYPE, p_source_document_line_id JAI_OM_WSH_LINES_ALL.ORDER_LINE_ID%TYPE) IS SELECT ptl.tax_line_no tax_line_no, ptl.tax_id tax_id, ptl.tax_rate tax_rate, ptl.qty_rate qty_rate, ptl.uom uom, ptl.precedence_1 precedence_1, ptl.precedence_2 precedence_2, ptl.precedence_3 precedence_3, ptl.precedence_4 precedence_4, ptl.precedence_5 precedence_5, ptl.precedence_6 precedence_6, ptl.precedence_7 precedence_7, ptl.precedence_8 precedence_8, ptl.precedence_9 precedence_9, ptl.precedence_10 precedence_10, jtc.tax_type tax_type, nvl(jtc.rounding_factor, 0) rounding_factor, SUM(ptl.tax_amount) tax_amount, SUM(ptl.base_tax_amount) base_tax_amount, SUM(ptl.func_tax_amount) func_tax_amount, MIN(ptl.delivery_detail_id) delivery_detail_id FROM JAI_OM_WSH_LINES_ALL pl, JAI_OM_WSH_LINE_TAXES ptl, JAI_CMN_TAXES_ALL jtc WHERE ptl.delivery_detail_id = pl.delivery_detail_id AND pl.order_header_id = p_source_document_id AND pl.order_line_id = p_source_document_line_id AND jtc.tax_id = ptl.tax_id GROUP by ptl.tax_line_no, ptl.tax_id, ptl.tax_rate, ptl.qty_rate, ptl.uom, precedence_1, precedence_2, precedence_3, precedence_4, precedence_5, precedence_6, precedence_7, precedence_8, precedence_9, precedence_10, jtc.tax_type, nvl(jtc.rounding_factor, 0); CURSOR c_get_quantity(p_source_document_id JAI_OM_WSH_LINES_ALL.order_header_id%type, p_source_document_line_id JAI_OM_WSH_LINES_ALL.order_line_id%type) IS --commented out by zhiwei.xin for bug#14669425 on 16-Oct-2012 begin /*SELECT sum(quantity) FROM JAI_OM_WSH_LINES_ALL pl, JAI_OM_WSH_LINE_TAXES ptl WHERE ptl.delivery_detail_id = pl.delivery_detail_id AND pl.order_header_id = p_source_document_id AND pl.order_line_id = p_source_document_line_id;*/ --commented out by zhiwei.xin for bug#14669425 on 16-Oct-2012 end. -- added by zhiwei.xin for bug#14669425 on 16-Oct-2012 begin -- added SUM clause for the 16806599 SELECT SUM(quantity) FROM JAI_OM_WSH_LINES_ALL WHERE order_header_id = p_source_document_id AND order_line_id = p_source_document_line_id; -- added by zhiwei.xin for bug#14669425 on 16-Oct-2012 end. CURSOR requested_qty_uom_cur(p_delivery_detail_id NUMBER) IS SELECT requested_quantity_uom FROM wsh_delivery_details WHERE delivery_detail_id = p_delivery_detail_id; CURSOR c_check_vat_type_tax_exists(cp_tax_type VARCHAR2) IS SELECT 1 FROM jai_regime_tax_types_v WHERE regime_code = jai_constants.vat_regime AND tax_type = cp_tax_type; cursor cur_get_ddetail_id(p_source_document_id OE_ORDER_LINES_ALL.SOURCE_DOCUMENT_ID%TYPE, p_source_document_line_id OE_ORDER_LINES_ALL.SOURCE_DOCUMENT_LINE_ID%TYPE) is select delivery_detail_id from JAI_OM_OE_RMA_LINES where rma_header_id = p_source_document_id AND rma_line_id = p_source_document_line_id; v_ddetail_id JAI_OM_OE_RMA_LINES.delivery_detail_id%type; CURSOR c_get_detail_id(p_ddetail_id JAI_OM_OE_RMA_LINES.delivery_detail_id%type) IS SELECT wdd.delivery_detail_id, wnd.confirm_date FROM wsh_delivery_details wdd, wsh_delivery_assignments wda, wsh_new_deliveries wnd WHERE wdd.delivery_detail_id = p_ddetail_id AND wda.delivery_detail_id = wdd.delivery_detail_id AND wnd.delivery_id = wda.delivery_id; CURSOR c_get_days_flags IS SELECT excise_return_days, sales_return_days, vat_return_days, nvl(manufacturing, 'N') manufacturing, nvl(trading, 'N') trading FROM JAI_CMN_INVENTORY_ORGS WHERE organization_id = pr_order_line.ship_from_org_id AND location_id = 0; CURSOR c_ordered_date IS SELECT ordered_date FROM oe_order_headers_all WHERE header_id = pr_order_line.header_id; CURSOR c_fulfilled_date IS SELECT CREATION_DATE FROM JAI_OM_WSH_LINES_ALL WHERE ORDER_LINE_ID = pr_order_line.reference_line_id AND SHIPPABLE_FLAG = 'N'; CURSOR c_get_ship_qty(p_source_document_id NUMBER, p_source_document_line_id NUMBER) IS SELECT SUM(wdd.shipped_quantity) qty FROM wsh_delivery_details wdd WHERE wdd.delivery_detail_id in (SELECT delivery_detail_id FROM JAI_OM_WSH_LINES_ALL WHERE order_header_id = p_source_document_id and order_line_id = p_source_document_line_id) AND wdd.inventory_item_id = pr_order_line.inventory_item_id; CURSOR cur_get_picking_tax_lines_new(p_source_document_id JAI_OM_WSH_LINES_ALL.ORDER_HEADER_ID%TYPE, p_source_document_line_id JAI_OM_WSH_LINES_ALL.ORDER_LINE_ID%TYPE) IS SELECT ptl.tax_line_no tax_line_no, ptl.tax_id tax_id, ptl.tax_rate tax_rate, ptl.qty_rate qty_rate, ptl.uom uom, ptl.precedence_1 precedence_1, ptl.precedence_2 precedence_2, ptl.precedence_3 precedence_3, ptl.precedence_4 precedence_4, ptl.precedence_5 precedence_5, ptl.precedence_6 precedence_6, ptl.precedence_7 precedence_7, ptl.precedence_8 precedence_8, ptl.precedence_9 precedence_9, ptl.precedence_10 precedence_10, SUM(ptl.tax_amount) tax_amount, SUM(ptl.base_tax_amount) base_tax_amount, SUM(ptl.func_tax_amount) func_tax_amount, MIN(ptl.delivery_detail_id) delivery_detail_id FROM JAI_OM_WSH_LINES_ALL pl, JAI_OM_WSH_LINE_TAXES ptl WHERE ptl.delivery_detail_id = pl.delivery_detail_id AND pl.order_header_id = p_source_document_id AND pl.order_line_id = p_source_document_line_id GROUP by tax_line_no, tax_id, tax_rate, qty_rate, uom, precedence_1, precedence_2, precedence_3, precedence_4, precedence_5, precedence_6, precedence_7, precedence_8, precedence_9, precedence_10; -- Check whether a rma_tax_lines exist for the new line_id and tax_id CURSOR cur_chk_rma_tax