[Home] [Help]
PACKAGE BODY: APPS.OKL_OPEN_INTERFACE_PVT
Source
1 PACKAGE BODY OKL_OPEN_INTERFACE_PVT AS
2 /* $Header: OKLRKOIB.pls 120.100.12010000.3 2008/11/07 18:54:17 cklee ship $*/
3
4 SUBTYPE krpv_rec_type IS OKL_KRP_PVT.krpv_rec_type;
5 SUBTYPE krpv_tbl_type IS OKL_KRP_PVT.krpv_tbl_type;
6
7 -- GLOBAL VARIABLES
8
9
10 g_customer_account_id NUMBER; -- only populated from populate_header_rec()
11 g_customer_id NUMBER; -- only populated from populate_header_rec()
12 g_bill_to_address_id NUMBER; -- only populated from populate_header_rec()
13 g_release_asset_flag VARCHAR2(1); -- only updated at load_input_record()
14 g_instance_number VARCHAR2(30); -- Parallel submission instance number
15 g_qcl_id NUMBER;
16 G_FA_LINE_LTY_ID OKC_LINE_STYLES_V.ID%TYPE := 42;
17 G_FIN_LINE_LTY_ID OKC_LINE_STYLES_V.ID%TYPE := 33;
18
19 G_BULK_BATCH_SIZE NUMBER := 10000;
20 G_PKG_NAME CONSTANT VARCHAR2(200) := 'OKL_OPEN_INTERFACE_PVT';
21 G_APP_NAME CONSTANT VARCHAR2(3) := OKL_API.G_APP_NAME;
22
23 G_API_TYPE CONSTANT VARCHAR2(4) := '_PVT';
24 G_UNEXPECTED_ERROR CONSTANT VARCHAR2(1000) := 'OKL_UNEXPECTED_ERROR';
25 G_MISSING_VALUE CONSTANT VARCHAR2(1000) := 'OKL_MISSING_VALUE';
26 G_INVALID_VALUE CONSTANT VARCHAR2(1000) := 'OKL_LLA_INVALID_IMPORT_VALUE';
27 G_VALIDATION_FAILED CONSTANT VARCHAR2(1000) := 'OKL_VALIDATION_FAILED';
28
29 G_NULL_CONTRACT CONSTANT VARCHAr2(1000) := 'OKL_NULL_CONTRACT';
30 G_DUP_VALUE CONSTANT VARCHAr2(1000) := 'OKL_DUP_VALUE';
31 G_LITERAL_MISMATCH CONSTANT VARCHAr2(1000) := 'OKL_LITERAL_MISTMATCH';
32 G_PARTY_ROLE_LINE_ERROR CONSTANT VARCHAR2(1000) := 'OKL_PARTY_ROLE_LINE_ERROR';
33 G_TERM_LINE_ERROR CONSTANT VARCHAR2(1000) := 'OKL_TERM_LINE_ERROR';
34 G_TERM_NO_LINE_NUMBER CONSTANT VARCHAR2(1000) := 'OKL_TERM_NO_LINE_NUMBER';
35 G_PAYMENT_NO_LINE_NUMBER CONSTANT VARCHAR2(1000) := 'OKL_PAYMENT_NO_LINE_NUMBER';
36 G_PAYMENT_LINE_ERROR CONSTANT VARCHAR2(1000) := 'OKL_PAYMENT_LINE_ERROR';
37
38 G_INVALID_CONTRACT CONSTANT VARCHAR2(1000) := 'OKL_INVALID_CONTRACT';
39 G_GUARANTOR_SETUP_ERROR CONSTANT VARCHAR2(1000) := 'OKL_GUARANTOR_SETUP_ERROR';
40 G_INVALID_LTY_CODE CONSTANT VARCHAR2(1000) := 'OKL_INVALID_LTY_CODE';
41 G_INVALID_COMBINATION CONSTANT VARCHAR2(1000) := 'OKL_INVALID_FLEX_COMB';
42 G_PAYMENT_SCHD_ERROR CONSTANT VARCHAR2(1000) := 'OKL_PAYMENT_SCHD_ERROR';
43 G_UOM_SETUP_ERROR CONSTANT VARCHAR2(1000) := 'OKL_UOM_SETUP_ERROR';
44 G_PAYMENT_START_DATE_ERROR CONSTANT VARCHAR2(1000) := 'OKL_PAYMENT_START_DATE_ERROR';
45 G_MISSING_VALUE_FOR_STAGE CONSTANT VARCHAR2(1000) := 'OKL_MISSING_VALUE_FOR_STAGE';
46 G_MISSING_VALUE_FOR_LINE CONSTANT VARCHAR2(1000) := 'OKL_MISSING_VALUE_FOR_LINE';
47 G_MISSING_VALUE_STAGE_LINE CONSTANT VARCHAR2(1000) := 'OKL_MISSING_VALUE_STAGE_LINE';
48 G_FIN_ASSET_ERROR CONSTANT VARCHAR2(1000) := 'OKL_FIN_ASSET_ERROR';
49 G_LABEL_SETUP_ERROR CONSTANT VARCHAR2(1000) := 'OKL_LABEL_SETUP_ERROR';
50 --G_INVALID_USAGE_ITEM_ASSOC CONSTANT VARCHAR2(1000) := 'OKL_LLA_INVALID_USAGE_ITEM_ASSOC';
51 G_INVALID_USAGE_ITEM_ASSOC CONSTANT VARCHAR2(1000) := 'OKL_LLA_INVALID_USG_ITEM_ASSOC';
52 G_NULL_PARAMETER CONSTANT VARCHAR2(1000) := 'OKL_NULL_INTF_PARAM';
53 G_INVALID_PARAMETER CONSTANT VARCHAR2(1000) := 'OKL_INVALID_PARAM';
54 G_OKL_TXD_ID CONSTANT VARCHAR2(1000) := 'OKL_LLA_TXD_ID';
55 G_DATESIGNED_LT_START CONSTANT VARCHAR2(1000) := 'OKL_QA_DATESIGNED_LT_START';
56 G_INVALID_TEMPLATE CONSTANT VARCHAR2(1000) := 'OKL_LLA_INVALID_TEMPLATE';
57 G_BILL_VENDOR_INVALID CONSTANT VARCHAR2(1000) := 'OKL_LLA_BILL_VENDOR_INVALID';
58 G_UNSUPPORTED_VALUE CONSTANT VARCHAR2(1000) := 'OKL_LLA_UNSUPPORTED_USAGE';
59 G_QA_USAGE_CHECK CONSTANT VARCHAR2(1000) := 'OKL_QA_USAGE_CHECK';
60 G_QA_FIXED_USAGE CONSTANT VARCHAR2(1000) := 'OKL_QA_FIXED_USAGE';
61 G_INIT_DIRC_COST CONSTANT VARCHAR2(1000) := 'OKL_LLA_INIT_DIRECT_COST';
62 G_STUB_PMNT_BOTH CONSTANT VARCHAR2(1000) := 'OKL_LLA_STUB_PMNT_BOTH';
63 G_DUP_TAX_BOOK CONSTANT VARCHAR2(1000) := 'OKL_LLA_DUP_TAX_BOOK';
64 G_MIXED_ASSET CONSTANT VARCHAR2(1000) := 'OKL_LLA_MIXED_ASSET';
65 G_VALUE_NOT_ALLOWED CONSTANT VARCHAR2(1000) := 'OKL_TERM_VALUE_NOT_ALLOWED';
66 G_NO_STRM_TMPL CONSTANT VARCHAR2(1000) := 'OKL_NO_STRM_TMPL';
67 G_INVALID_NEW_LINE_REQ CONSTANT VARCHAR2(1000) := 'OKL_INVALID_NEW_LINE_REQ';
68
69 -- start cklee 02/13/2004 bug# 3440442
70 -- 3rd party insurance
71 G_INSURER CONSTANT VARCHAR2(80) := 'INSURER';
72 G_INSURANCE_AGENT CONSTANT VARCHAR2(80) := 'INSURANCE_AGENT';
73
74 -- OKX_INSURER_V
75 G_INSURANCE_COMPANY_NAME CONSTANT VARCHAR2(80) := 'INSURANCE_COMPANY_NAME';
76 G_INSURANCE_COMPANY_NUMBER CONSTANT VARCHAR2(80) := 'INSURANCE_COMPANY_NUMBER';
77 G_INSURANCE_COMPANY_ID CONSTANT VARCHAR2(80) := 'INSURANCE_COMPANY_ID';
78 G_INSURANCE_COMPANY_SITE_NAME CONSTANT VARCHAR2(80) := 'INSURANCE_COMPANY_SITE_NAME';
79 G_INSURANCE_COMPANY_SITE_NUM CONSTANT VARCHAR2(80) := 'INSURANCE_COMPANY_SITE_NUMBER';
80 G_INSURANCE_COMPANY_SITE_ID CONSTANT VARCHAR2(80) := 'INSURANCE_COMPANY_SITE_ID';
81 -- OKX_INSURANCE_AGENT_V
82 G_AGENT_NAME CONSTANT VARCHAR2(80) := 'AGENT_NAME';
83 G_AGENT_NUMBER CONSTANT VARCHAR2(80) := 'AGENT_NUMBER';
84 G_AGENT_ID CONSTANT VARCHAR2(80) := 'AGENT_ID';
85 G_AGENT_ADDRESS_SITE_NAME CONSTANT VARCHAR2(80) := 'AGENT_ADDRESS_SITE_NAME';
86 G_AGENT_ADDRESS_SITE_NUMBER CONSTANT VARCHAR2(80) := 'AGENT_ADDRESS_SITE_NUMBER';
87 G_AGENT_ADDRESS_SITE_ID CONSTANT VARCHAR2(80) := 'AGENT_ADDRESS_SITE_ID';
88
89 G_DEFAULT_NUM CONSTANT NUMBER := 0;
90 G_DEFAULT_CHAR CONSTANT VARCHAR2(1) := 'X';
91 G_DEFAULT_DATE CONSTANT DATE := TO_DATE('1111','YYYY');
92 G_FINAL_DATE CONSTANT DATE := TO_DATE('1','j') + 5300000;
93 -- end cklee 02/13/2004 bug# 3440442
94 G_REQUIRED_VALUE CONSTANT VARCHAR2(200) := OKC_API.G_REQUIRED_VALUE;
95 G_COL_NAME_TOKEN CONSTANT VARCHAR2(200) := OKC_API.G_COL_NAME_TOKEN;
96 G_PRODUCT_ID NUMBER;
97 G_REVENUE_RECOGNITION_METHOD okl_product_parameters_v.REVENUE_RECOGNITION_METHOD%TYPE;
98 G_INTEREST_CALCULATION_BASIS okl_product_parameters_v.INTEREST_CALCULATION_BASIS%TYPE;
99 G_DEAL_TYPE okl_product_parameters_v.DEAL_TYPE%TYPE;
100
101 -- hariven - Bug#5393374 - Added - Start
102 G_WF_EVT_KHR_IMPORTED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.lease_contract.imported';
103 G_WF_ITM_CONTRACT_ID CONSTANT VARCHAR2(11) := 'CONTRACT_ID';
104 -- hariven - Bug#5393374 - Added - End
105
106 TYPE req_tab_type is TABLE of NUMBER index by binary_integer;
107 TYPE batch_tab_type is TABLE of VARCHAR2(30) index by binary_integer;
108
109 TYPE template_h_rec_type IS RECORD (
110 ID OKL_K_HEADERS_FULL_V.ID%TYPE
111 ,OBJECT_VERSION_NUMBER OKL_K_HEADERS_FULL_V.OBJECT_VERSION_NUMBER%TYPE
112 ,SFWT_FLAG OKL_K_HEADERS_FULL_V.SFWT_FLAG%TYPE
113 ,CHR_ID_RESPONSE OKL_K_HEADERS_FULL_V.CHR_ID_RESPONSE%TYPE
114 ,CHR_ID_AWARD OKL_K_HEADERS_FULL_V.CHR_ID_AWARD%TYPE
115 ,CHR_ID_RENEWED OKL_K_HEADERS_FULL_V.CHR_ID_RENEWED%TYPE
116 ,INV_ORGANIZATION_ID OKL_K_HEADERS_FULL_V.INV_ORGANIZATION_ID%TYPE
117 ,STS_CODE OKL_K_HEADERS_FULL_V.STS_CODE%TYPE
118 ,QCL_ID OKL_K_HEADERS_FULL_V.QCL_ID%TYPE
119 ,SCS_CODE OKL_K_HEADERS_FULL_V.SCS_CODE%TYPE
120 ,CONTRACT_NUMBER OKL_K_HEADERS_FULL_V.CONTRACT_NUMBER%TYPE
121 ,CURRENCY_CODE OKL_K_HEADERS_FULL_V.CURRENCY_CODE%TYPE
122 ,CONTRACT_NUMBER_MODIFIER OKL_K_HEADERS_FULL_V.CONTRACT_NUMBER_MODIFIER%TYPE
123 ,ARCHIVED_YN OKL_K_HEADERS_FULL_V.ARCHIVED_YN%TYPE
124 ,DELETED_YN OKL_K_HEADERS_FULL_V.DELETED_YN%TYPE
125 ,CUST_PO_NUMBER_REQ_YN OKL_K_HEADERS_FULL_V.CUST_PO_NUMBER_REQ_YN%TYPE
126 ,PRE_PAY_REQ_YN OKL_K_HEADERS_FULL_V.PRE_PAY_REQ_YN%TYPE
127 ,CUST_PO_NUMBER OKL_K_HEADERS_FULL_V.CUST_PO_NUMBER%TYPE
128 ,SHORT_DESCRIPTION OKL_K_HEADERS_FULL_V.SHORT_DESCRIPTION%TYPE
129 ,COMMENTS OKL_K_HEADERS_FULL_V.COMMENTS%TYPE
130 ,DESCRIPTION OKL_K_HEADERS_FULL_V.DESCRIPTION%TYPE
131 ,DPAS_RATING OKL_K_HEADERS_FULL_V.DPAS_RATING%TYPE
132 ,COGNOMEN OKL_K_HEADERS_FULL_V.COGNOMEN%TYPE
133 ,TEMPLATE_YN OKL_K_HEADERS_FULL_V.TEMPLATE_YN%TYPE
134 ,tEMPLATE_USED OKL_K_HEADERS_FULL_V.TEMPLATE_USED%TYPE
135 ,DATE_APPROVED OKL_K_HEADERS_FULL_V.DATE_APPROVED%TYPE
136 ,DATETIME_CANCELLED OKL_K_HEADERS_FULL_V.DATETIME_CANCELLED%TYPE
137 ,AUTO_RENEW_DAYS OKL_K_HEADERS_FULL_V.AUTO_RENEW_DAYS%TYPE
138 ,DATE_ISSUED OKL_K_HEADERS_FULL_V.DATE_ISSUED%TYPE
139 ,DATETIME_RESPONDED OKL_K_HEADERS_FULL_V.DATETIME_RESPONDED%TYPE
140 ,NON_RESPONSE_REASON OKL_K_HEADERS_FULL_V.NON_RESPONSE_REASON%TYPE
141 ,NON_RESPONSE_EXPLAIN OKL_K_HEADERS_FULL_V.NON_RESPONSE_EXPLAIN%TYPE
142 ,RFP_TYPE OKL_K_HEADERS_FULL_V.RFP_TYPE%TYPE
143 ,CHR_TYPE OKL_K_HEADERS_FULL_V.CHR_TYPE%TYPE
144 ,KEEP_ON_MAIL_LIST OKL_K_HEADERS_FULL_V.KEEP_ON_MAIL_LIST%TYPE
145 ,SET_ASIDE_REASON OKL_K_HEADERS_FULL_V.SET_ASIDE_REASON%TYPE
146 ,SET_ASIDE_PERCENT OKL_K_HEADERS_FULL_V.SET_ASIDE_PERCENT%TYPE
147 ,RESPONSE_COPIES_REQ OKL_K_HEADERS_FULL_V.RESPONSE_COPIES_REQ%TYPE
148 ,DATE_CLOSE_PROJECTED OKL_K_HEADERS_FULL_V.DATE_CLOSE_PROJECTED%TYPE
149 ,DATETIME_PROPOSED OKL_K_HEADERS_FULL_V.DATETIME_PROPOSED%TYPE
150 ,DATE_SIGNED OKL_K_HEADERS_FULL_V.DATE_SIGNED%TYPE
151 ,DATE_TERMINATED OKL_K_HEADERS_FULL_V.DATE_TERMINATED%TYPE
152 ,DATE_RENEWED OKL_K_HEADERS_FULL_V.DATE_RENEWED%TYPE
153 ,TRN_CODE OKL_K_HEADERS_FULL_V.TRN_CODE%TYPE
154 ,START_DATE OKL_K_HEADERS_FULL_V.START_DATE%TYPE
155 ,END_DATE OKL_K_HEADERS_FULL_V.END_DATE%TYPE
156 ,AUTHORING_ORG_ID OKL_K_HEADERS_FULL_V.AUTHORING_ORG_ID%TYPE
157 ,BUY_OR_SELL OKL_K_HEADERS_FULL_V.BUY_OR_SELL%TYPE
158 ,ISSUE_OR_RECEIVE OKL_K_HEADERS_FULL_V.ISSUE_OR_RECEIVE%TYPE
159 ,ESTIMATED_AMOUNT OKL_K_HEADERS_FULL_V.ESTIMATED_AMOUNT%TYPE
160 ,CHR_ID_RENEWED_TO OKL_K_HEADERS_FULL_V.CHR_ID_RENEWED_TO%TYPE
161 ,ESTIMATED_AMOUNT_RENEWED OKL_K_HEADERS_FULL_V.ESTIMATED_AMOUNT_RENEWED%TYPE
162 ,CURRENCY_CODE_RENEWED OKL_K_HEADERS_FULL_V.CURRENCY_CODE_RENEWED%TYPE
163 ,USER_ACCESS_LEVEL OKL_K_HEADERS_FULL_V.USER_ACCESS_LEVEL%TYPE
164 ,UPG_ORIG_SYSTEM_REF OKL_K_HEADERS_FULL_V.UPG_ORIG_SYSTEM_REF%TYPE
165 ,UPG_ORIG_SYSTEM_REF_ID OKL_K_HEADERS_FULL_V.UPG_ORIG_SYSTEM_REF_ID%TYPE
166 ,APPLICATION_ID OKL_K_HEADERS_FULL_V.APPLICATION_ID%TYPE
167 ,RESOLVED_UNTIL OKL_K_HEADERS_FULL_V.RESOLVED_UNTIL%TYPE
168 ,ATTRIBUTE_CATEGORY OKL_K_HEADERS_FULL_V.ATTRIBUTE_CATEGORY%TYPE
169 ,ATTRIBUTE1 OKL_K_HEADERS_FULL_V.ATTRIBUTE1%TYPE
170 ,ATTRIBUTE2 OKL_K_HEADERS_FULL_V.ATTRIBUTE2%TYPE
171 ,ATTRIBUTE3 OKL_K_HEADERS_FULL_V.ATTRIBUTE3%TYPE
172 ,ATTRIBUTE4 OKL_K_HEADERS_FULL_V.ATTRIBUTE4%TYPE
173 ,ATTRIBUTE5 OKL_K_HEADERS_FULL_V.ATTRIBUTE5%TYPE
174 ,ATTRIBUTE6 OKL_K_HEADERS_FULL_V.ATTRIBUTE6%TYPE
175 ,ATTRIBUTE7 OKL_K_HEADERS_FULL_V.ATTRIBUTE7%TYPE
176 ,ATTRIBUTE8 OKL_K_HEADERS_FULL_V.ATTRIBUTE8%TYPE
177 ,ATTRIBUTE9 OKL_K_HEADERS_FULL_V.ATTRIBUTE9%TYPE
178 ,ATTRIBUTE10 OKL_K_HEADERS_FULL_V.ATTRIBUTE10%TYPE
179 ,ATTRIBUTE11 OKL_K_HEADERS_FULL_V.ATTRIBUTE11%TYPE
180 ,ATTRIBUTE12 OKL_K_HEADERS_FULL_V.ATTRIBUTE12%TYPE
181 ,ATTRIBUTE13 OKL_K_HEADERS_FULL_V.ATTRIBUTE13%TYPE
182 ,ATTRIBUTE14 OKL_K_HEADERS_FULL_V.ATTRIBUTE14%TYPE
183 ,ATTRIBUTE15 OKL_K_HEADERS_FULL_V.ATTRIBUTE15%TYPE
184 ,CREATED_BY OKL_K_HEADERS_FULL_V.CREATED_BY%TYPE
185 ,CREATION_DATE OKL_K_HEADERS_FULL_V.CREATION_DATE%TYPE
186 ,LAST_UPDATED_BY OKL_K_HEADERS_FULL_V.LAST_UPDATED_BY%TYPE
187 ,LAST_UPDATE_DATE OKL_K_HEADERS_FULL_V.LAST_UPDATE_DATE%TYPE
188 ,LAST_UPDATE_LOGIN OKL_K_HEADERS_FULL_V.LAST_UPDATE_LOGIN%TYPE
189 ,ORIG_SYSTEM_SOURCE_CODE OKL_K_HEADERS_FULL_V.ORIG_SYSTEM_SOURCE_CODE%TYPE
190 ,ORIG_SYSTEM_ID1 OKL_K_HEADERS_FULL_V.ORIG_SYSTEM_ID1%TYPE
191 ,ORIG_SYSTEM_REFERENCE1 OKL_K_HEADERS_FULL_V.ORIG_SYSTEM_REFERENCE1%TYPE
192 ,KHR_ROW_ID OKL_K_HEADERS_FULL_V.KHR_ROW_ID%TYPE
193 ,KHR_OBJECT_VERSION_NUMBER OKL_K_HEADERS_FULL_V.KHR_OBJECT_VERSION_NUMBER%TYPE
194 ,ISG_ID OKL_K_HEADERS_FULL_V.ISG_ID%TYPE
195 ,KHR_ID OKL_K_HEADERS_FULL_V.KHR_ID%TYPE
196 ,PDT_ID OKL_K_HEADERS_FULL_V.PDT_ID%TYPE
197 ,AMD_CODE OKL_K_HEADERS_FULL_V.AMD_CODE%TYPE
198 ,DATE_FIRST_ACTIVITY OKL_K_HEADERS_FULL_V.DATE_FIRST_ACTIVITY%TYPE
199 ,GENERATE_ACCRUAL_YN OKL_K_HEADERS_FULL_V.GENERATE_ACCRUAL_YN%TYPE
200 ,GENERATE_ACCRUAL_OVERRIDE_YN OKL_K_HEADERS_FULL_V.GENERATE_ACCRUAL_OVERRIDE_YN%TYPE
201 ,DATE_REFINANCED OKL_K_HEADERS_FULL_V.DATE_REFINANCED%TYPE
202 ,CREDIT_ACT_YN OKL_K_HEADERS_FULL_V.CREDIT_ACT_YN%TYPE
203 ,TERM_DURATION OKL_K_HEADERS_FULL_V.TERM_DURATION%TYPE
204 ,CONVERTED_ACCOUNT_YN OKL_K_HEADERS_FULL_V.CONVERTED_ACCOUNT_YN%TYPE
205 ,DATE_CONVERSION_EFFECTIVE OKL_K_HEADERS_FULL_V.DATE_CONVERSION_EFFECTIVE%TYPE
206 ,SYNDICATABLE_YN OKL_K_HEADERS_FULL_V.SYNDICATABLE_YN%TYPE
207 ,SALESTYPE_YN OKL_K_HEADERS_FULL_V.SALESTYPE_YN%TYPE
208 ,DATE_DEAL_TRANSFERRED OKL_K_HEADERS_FULL_V.DATE_DEAL_TRANSFERRED%TYPE
209 ,DATETIME_PROPOSAL_EFFECTIVE OKL_K_HEADERS_FULL_V.DATETIME_PROPOSAL_EFFECTIVE%TYPE
210 ,DATETIME_PROPOSAL_INEFFECTIVE OKL_K_HEADERS_FULL_V.DATETIME_PROPOSAL_INEFFECTIVE%TYPE
211 ,DATE_PROPOSAL_ACCEPTED OKL_K_HEADERS_FULL_V.DATE_PROPOSAL_ACCEPTED%TYPE
212 ,KHR_ATTRIBUTE_CATEGORY OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE_CATEGORY%TYPE
213 ,KHR_ATTRIBUTE1 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE1%TYPE
214 ,KHR_ATTRIBUTE2 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE2%TYPE
215 ,KHR_ATTRIBUTE3 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE3%TYPE
216 ,KHR_ATTRIBUTE4 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE4%TYPE
217 ,KHR_ATTRIBUTE5 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE5%TYPE
218 ,KHR_ATTRIBUTE6 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE6%TYPE
219 ,KHR_ATTRIBUTE7 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE7%TYPE
220 ,KHR_ATTRIBUTE8 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE8%TYPE
221 ,KHR_ATTRIBUTE9 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE9%TYPE
222 ,KHR_ATTRIBUTE10 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE10%TYPE
223 ,KHR_ATTRIBUTE11 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE11%TYPE
224 ,KHR_ATTRIBUTE12 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE12%TYPE
225 ,KHR_ATTRIBUTE13 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE13%TYPE
226 ,KHR_ATTRIBUTE14 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE14%TYPE
227 ,KHR_ATTRIBUTE15 OKL_K_HEADERS_FULL_V.KHR_ATTRIBUTE15%TYPE
228 ,KHR_CREATED_BY OKL_K_HEADERS_FULL_V.KHR_CREATED_BY%TYPE
229 ,KHR_CREATON_DATE OKL_K_HEADERS_FULL_V.KHR_CREATON_DATE%TYPE
230 ,KHR_LAST_UPDATED_BY OKL_K_HEADERS_FULL_V.KHR_LAST_UPDATED_BY%TYPE
231 ,KHR_LAST_UPDATE_DATE OKL_K_HEADERS_FULL_V.KHR_LAST_UPDATE_DATE%TYPE
232 ,KHR_LAST_UPDATE_LOGIN OKL_K_HEADERS_FULL_V.KHR_LAST_UPDATE_LOGIN%TYPE
233 ,PRE_TAX_YIELD OKL_K_HEADERS_FULL_V.PRE_TAX_YIELD%TYPE
234 ,AFTER_TAX_YIELD OKL_K_HEADERS_FULL_V.AFTER_TAX_YIELD%TYPE
235 ,IMPLICIT_INTEREST_RATE OKL_K_HEADERS_FULL_V.IMPLICIT_INTEREST_RATE%TYPE
236 ,IMPLICIT_NON_IDC_INTEREST_RATE OKL_K_HEADERS_FULL_V.IMPLICIT_NON_IDC_INTEREST_RATE%TYPE
237 ,TARGET_PRE_TAX_YIELD OKL_K_HEADERS_FULL_V.TARGET_PRE_TAX_YIELD%TYPE
238 ,TARGET_AFTER_TAX_YIELD OKL_K_HEADERS_FULL_V.TARGET_AFTER_TAX_YIELD%TYPE
239 ,TARGET_IMPLICIT_INTEREST_RATE OKL_K_HEADERS_FULL_V.TARGET_IMPLICIT_INTEREST_RATE%TYPE
240 ,TARGET_IMPLICIT_NONIDC_INTRATE OKL_K_HEADERS_FULL_V.TARGET_IMPLICIT_NONIDC_INTRATE%TYPE
241 ,DATE_LAST_INTERIM_INTEREST_CAL OKL_K_HEADERS_FULL_V.DATE_LAST_INTERIM_INTEREST_CAL%TYPE
242 ,DEAL_TYPE OKL_K_HEADERS_FULL_V.DEAL_TYPE%TYPE
243 ,PRE_TAX_IRR OKL_K_HEADERS_FULL_V.PRE_TAX_IRR%TYPE
244 ,AFTER_TAX_IRR OKL_K_HEADERS_FULL_V.AFTER_TAX_IRR%TYPE
245 ,EXPECTED_DELIVERY_DATE OKL_K_HEADERS_FULL_V.EXPECTED_DELIVERY_DATE%TYPE
246 ,ACCEPTED_DATE OKL_K_HEADERS_FULL_V.ACCEPTED_DATE%TYPE
247 ,PREFUNDING_ELIGIBLE_YN OKL_K_HEADERS_FULL_V.PREFUNDING_ELIGIBLE_YN%TYPE
248 ,REVOLVING_CREDIT_YN OKL_K_HEADERS_FULL_V.REVOLVING_CREDIT_YN%TYPE
249 ,CURRENCY_CONVERSION_TYPE OKL_K_HEADERS_FULL_V.CURRENCY_CONVERSION_TYPE%TYPE
250 ,CURRENCY_CONVERSION_RATE OKL_K_HEADERS_FULL_V.CURRENCY_CONVERSION_RATE%TYPE
251 ,CURRENCY_CONVERSION_DATE OKL_K_HEADERS_FULL_V.CURRENCY_CONVERSION_DATE%TYPE
252 ,ASSIGNABLE_YN OKL_K_HEADERS_FULL_V.ASSIGNABLE_YN%TYPE
253 ,CUST_ACCT_ID OKL_K_HEADERS_FULL_V.CUST_ACCT_ID%TYPE
254 ,BILL_TO_SITE_USE_ID OKL_K_HEADERS_FULL_V.BILL_TO_SITE_USE_ID%TYPE);
255
256
257 TYPE intf_h_rec_type IS RECORD (
258 BATCH_NUMBER OKL_HEADER_INTERFACE.BATCH_NUMBER%TYPE
259 ,TEMPLATE_NUMBER OKL_HEADER_INTERFACE.TEMPLATE_NUMBER%TYPE
260 ,STATUS OKL_HEADER_INTERFACE.STATUS %TYPE
261 ,CREATED_BY OKL_HEADER_INTERFACE.CREATED_BY %TYPE
262 ,DATE_CREATED OKL_HEADER_INTERFACE.DATE_CREATED %TYPE
263 ,DATE_CREATED_IN_OKL OKL_HEADER_INTERFACE.DATE_CREATED_IN_OKL%TYPE
264 ,APPLICATION_CODE OKL_HEADER_INTERFACE.APPLICATION_CODE%TYPE
265 ,CONTRACT_CATEGORY OKL_HEADER_INTERFACE.CONTRACT_CATEGORY%TYPE
266 ,CONTRACT_NUMBER_OLD OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE
267 ,CONTRACT_SOURCE OKL_HEADER_INTERFACE.CONTRACT_SOURCE%TYPE
268 ,CONTRACT_NUMBER OKL_HEADER_INTERFACE.CONTRACT_NUMBER%TYPE
269 ,CUSTOMER_NUMBER OKL_HEADER_INTERFACE.CUSTOMER_NUMBER%TYPE
270 ,CUSTOMER_ID OKL_HEADER_INTERFACE.CUSTOMER_ID%TYPE
271 ,CUSTOMER_ACCOUNT_NUMBER OKL_HEADER_INTERFACE.CUSTOMER_ACCOUNT_NUMBER%TYPE
272 ,CUSTOMER_ACCOUNT_ID OKL_HEADER_INTERFACE.CUSTOMER_ACCOUNT_ID%TYPE
273 ,START_DATE OKL_HEADER_INTERFACE.START_DATE%TYPE
274 ,IMPORT_REQUEST_STAGE OKL_HEADER_INTERFACE.IMPORT_REQUEST_STAGE%TYPE
275 ,CURRENCY_CODE OKL_HEADER_INTERFACE.CURRENCY_CODE%TYPE
276 ,CUSTOMER_PO_NUMBER OKL_HEADER_INTERFACE.CUSTOMER_PO_NUMBER%TYPE
277 ,DATE_SIGNED OKL_HEADER_INTERFACE.DATE_SIGNED%TYPE
278 ,DATE_APPROVED OKL_HEADER_INTERFACE.DATE_APPROVED%TYPE
279 ,ACCEPTANCE_METHOD_CODE OKL_HEADER_INTERFACE.ACCEPTANCE_METHOD_CODE%TYPE
280 ,CONSUMER_CREDIT_ACT_DEAL_FLAG OKL_HEADER_INTERFACE.CONSUMER_CREDIT_ACT_DEAL_FLAG%TYPE
281 ,TERM OKL_HEADER_INTERFACE.TERM%TYPE
282 ,CONVERTED_ACCOUNT OKL_HEADER_INTERFACE.CONVERTED_ACCOUNT%TYPE
283 ,ACCEPTED_DATE OKL_HEADER_INTERFACE.ACCEPTED_DATE%TYPE
284 ,DEAL_TYPE_CODE OKL_HEADER_INTERFACE.DEAL_TYPE_CODE%TYPE
285 ,EXPECTED_DELIVERY_DATE OKL_HEADER_INTERFACE.EXPECTED_DELIVERY_DATE%TYPE
286 ,CONTRACT_DESCRIPTION OKL_HEADER_INTERFACE.CONTRACT_DESCRIPTION%TYPE
287 ,SALESPERSON_NAME OKL_HEADER_INTERFACE.SALESPERSON_NAME%TYPE
288 ,SALESPERSON_ID OKL_HEADER_INTERFACE.SALESPERSON_ID%TYPE
289 ,PRIVATE_LABEL_NUMBER OKL_HEADER_INTERFACE.PRIVATE_LABEL_NUMBER%TYPE
290 ,PRIVATE_LABEL_ID OKL_HEADER_INTERFACE.PRIVATE_LABEL_ID%TYPE
291 ,PRIVATE_LABEL_URL OKL_HEADER_INTERFACE.PRIVATE_LABEL_URL%TYPE
292 ,PROGRAM_AGREEMENT_NUMBER OKL_HEADER_INTERFACE.PROGRAM_AGREEMENT_NUMBER%TYPE
293 ,PROGRAM_AGREEMENT_ID OKL_HEADER_INTERFACE.PROGRAM_AGREEMENT_ID%TYPE
294 ,PROGRAM_VENDOR_NAME OKL_HEADER_INTERFACE.PROGRAM_VENDOR_NAME%TYPE
295 ,PROGRAM_VENDOR_ID OKL_HEADER_INTERFACE.PROGRAM_VENDOR_ID%TYPE
296 ,MASTER_LEASE_AGREEMENT_NUMBER OKL_HEADER_INTERFACE.MASTER_LEASE_AGREEMENT_NUMBER%TYPE
297 ,MASTER_LEASE_AGREEMENT_ID OKL_HEADER_INTERFACE.MASTER_LEASE_AGREEMENT_ID%TYPE
298 ,PRODUCT_NAME OKL_HEADER_INTERFACE.PRODUCT_NAME%TYPE
299 ,PRODUCT_ID OKL_HEADER_INTERFACE.PRODUCT_ID%TYPE
300 ,CALCULATE_RESIDUAL_INSURANCE OKL_HEADER_INTERFACE.CALCULATE_RESIDUAL_INSURANCE%TYPE
301 ,REBOOK_LIMIT_DATE OKL_HEADER_INTERFACE.REBOOK_LIMIT_DATE%TYPE
302 ,IMPORT_REQUEST_ID OKL_HEADER_INTERFACE.IMPORT_REQUEST_ID%TYPE
303 ,END_OF_TERM_OPTION OKL_HEADER_INTERFACE.END_OF_TERM_OPTION%TYPE
304 ,END_OF_TERM_AMOUNT OKL_HEADER_INTERFACE.END_OF_TERM_AMOUNT%TYPE
305 ,MID_TERM_OPTION OKL_HEADER_INTERFACE.MID_TERM_OPTION%TYPE
306 ,MID_TERM_AMOUNT OKL_HEADER_INTERFACE.MID_TERM_AMOUNT%TYPE
307 ,SECURITY_DEPOSIT_HOLD_FLAG OKL_HEADER_INTERFACE.SECURITY_DEPOSIT_HOLD_FLAG%TYPE
308 ,SECURITY_DEPOSIT_NET_FLAG OKL_HEADER_INTERFACE.SECURITY_DEPOSIT_NET_FLAG%TYPE
309 ,SECURITY_DEPOSIT_DATE OKL_HEADER_INTERFACE.SECURITY_DEPOSIT_DATE%TYPE
310 ,RENEWAL_NOTICE_DAYS OKL_HEADER_INTERFACE.RENEWAL_NOTICE_DAYS%TYPE
311 ,RENEWAL_OPTION OKL_HEADER_INTERFACE.RENEWAL_OPTION%TYPE
312 ,RENEWAL_AMOUNT OKL_HEADER_INTERFACE.RENEWAL_AMOUNT%TYPE
313 ,LATE_INTEREST_HELD_UNTIL_DATE OKL_HEADER_INTERFACE.LATE_INTEREST_HELD_UNTIL_DATE%TYPE
314 ,LATE_INTEREST_EXEMPT_FLAG OKL_HEADER_INTERFACE.LATE_INTEREST_EXEMPT_FLAG%TYPE
315 ,LATE_INTEREST_PRODUCT_CODE OKL_HEADER_INTERFACE.LATE_INTEREST_PRODUCT_CODE%TYPE
316 ,LATE_CHARGE_HELD_UNTIL_DATE OKL_HEADER_INTERFACE.LATE_CHARGE_HELD_UNTIL_DATE%TYPE
317 ,LATE_CHARGE_PRODUCT_CODE OKL_HEADER_INTERFACE.LATE_CHARGE_PRODUCT_CODE%TYPE
318 ,LATE_CHARGE_EXEMPT_FLAG OKL_HEADER_INTERFACE.LATE_CHARGE_EXEMPT_FLAG%TYPE
319 ,VARIABLE_RATE OKL_HEADER_INTERFACE.VARIABLE_RATE%TYPE
320 ,CONVERT_TYPE OKL_HEADER_INTERFACE.CONVERT_TYPE%TYPE
321 ,CONVERSION_METHOD OKL_HEADER_INTERFACE.CONVERSION_METHOD%TYPE
322 ,DATE_OF_CONVERSION OKL_HEADER_INTERFACE.DATE_OF_CONVERSION%TYPE
323 ,CONVERT_BY_DATE OKL_HEADER_INTERFACE.CONVERT_BY_DATE%TYPE
324 ,VARIABLE_METHOD OKL_HEADER_INTERFACE.VARIABLE_METHOD%TYPE
325 ,INDEX_NAME OKL_HEADER_INTERFACE.INDEX_NAME%TYPE
326 ,BASE_RATE OKL_HEADER_INTERFACE.BASE_RATE%TYPE
327 ,ADDER OKL_HEADER_INTERFACE.ADDER%TYPE
328 ,MINIMUM_RATE OKL_HEADER_INTERFACE.MINIMUM_RATE%TYPE
329 ,MAXIMUM_RATE OKL_HEADER_INTERFACE.MAXIMUM_RATE%TYPE
330 ,TOLERANCE OKL_HEADER_INTERFACE.TOLERANCE%TYPE
331 ,ADJUSTMENT_FREQUENCY OKL_HEADER_INTERFACE.ADJUSTMENT_FREQUENCY%TYPE
332 ,DAYS_IN_YEAR OKL_HEADER_INTERFACE.DAYS_IN_YEAR%TYPE
333 ,DAYS_IN_MONTH OKL_HEADER_INTERFACE.DAYS_IN_MONTH%TYPE
334 ,INTEREST_METHOD OKL_HEADER_INTERFACE.INTEREST_METHOD%TYPE
335 ,INTEREST_START_DATE OKL_HEADER_INTERFACE.INTEREST_START_DATE%TYPE
336 ,METHOD_OF_CALCULATION OKL_HEADER_INTERFACE.METHOD_OF_CALCULATION%TYPE
337 ,FORMULA_NAME OKL_HEADER_INTERFACE.FORMULA_NAME%TYPE
338 ,CAPITALIZE_FLAG OKL_HEADER_INTERFACE.CAPITALIZE_FLAG%TYPE
339 ,NON_NOTIFICATION_FLAG OKL_HEADER_INTERFACE.NON_NOTIFICATION_FLAG%TYPE
340 ,TAX_WITHHOLDING_FLAG OKL_HEADER_INTERFACE.TAX_WITHHOLDING_FLAG%TYPE
341 ,TAX_CALC_FORMULA_NAME OKL_HEADER_INTERFACE.TAX_CALC_FORMULA_NAME%TYPE
342 ,TAX_OWNER OKL_HEADER_INTERFACE.TAX_OWNER%TYPE
343 ,FACTORING_DATE OKL_HEADER_INTERFACE.FACTORING_DATE%TYPE
344 ,FACTORING_PERCENTAGE OKL_HEADER_INTERFACE.FACTORING_PERCENTAGE%TYPE
345 ,FACTORING_DISCOUNT_RATE OKL_HEADER_INTERFACE.FACTORING_DISCOUNT_RATE%TYPE
346 ,EVERGREEN_ELIGIBLE_FLAG OKL_HEADER_INTERFACE.EVERGREEN_ELIGIBLE_FLAG%TYPE
347 ,BILL_TO_ADDRESS_ID OKL_HEADER_INTERFACE.BILL_TO_ADDRESS_ID%TYPE
348 ,BILL_TO_ADDRESS OKL_HEADER_INTERFACE.BILL_TO_ADDRESS%TYPE
349 ,BANK_ACCOUNT_ID OKL_HEADER_INTERFACE.BANK_ACCOUNT_ID%TYPE
350 ,BANK_ACCOUNT_NUMBER OKL_HEADER_INTERFACE.BANK_ACCOUNT_NUMBER%TYPE
351 ,REASON_FOR_INVOICE_REVIEW OKL_HEADER_INTERFACE.REASON_FOR_INVOICE_REVIEW%TYPE
352 ,INVOICE_REVIEW_UNTIL_DATE OKL_HEADER_INTERFACE.INVOICE_REVIEW_UNTIL_DATE%TYPE
353 ,INVOICE_FORMAT_ID OKL_HEADER_INTERFACE.INVOICE_FORMAT_ID%TYPE
354 ,INVOICE_FORMAT_CODE OKL_HEADER_INTERFACE.INVOICE_FORMAT_CODE%TYPE
355 ,PRINT_LEAD_DAYS OKL_HEADER_INTERFACE.PRINT_LEAD_DAYS%TYPE --hariven bug 5359935
356 ,REVIEW_INVOICE_FLAG OKL_HEADER_INTERFACE.REVIEW_INVOICE_FLAG%TYPE
357 ,PAYMENT_METHOD_ID OKL_HEADER_INTERFACE.PAYMENT_METHOD_ID%TYPE
358 ,PAYMENT_METHOD OKL_HEADER_INTERFACE.PAYMENT_METHOD%TYPE
359 ,AUTHORING_ORG_ID OKL_HEADER_INTERFACE.AUTHORING_ORG_ID%TYPE
360 ,INVENTORY_ORGANIZATION_ID OKL_HEADER_INTERFACE.INVENTORY_ORGANIZATION_ID%TYPE
361 ,POLICY_NUMBER OKL_HEADER_INTERFACE.POLICY_NUMBER%TYPE
362 ,POLICY_EFFECTIVE_FROM OKL_HEADER_INTERFACE.POLICY_EFFECTIVE_FROM%TYPE
363 ,POLICY_EFFECTIVE_TO OKL_HEADER_INTERFACE.POLICY_EFFECTIVE_TO%TYPE
364 ,COVERED_AMOUNT OKL_HEADER_INTERFACE.COVERED_AMOUNT%TYPE
365 ,DEDUCTIBLE_AMOUNT OKL_HEADER_INTERFACE.DEDUCTIBLE_AMOUNT%TYPE
366 ,ENDORSEMENT OKL_HEADER_INTERFACE.ENDORSEMENT%TYPE
367 ,NAME_OF_INSURED OKL_HEADER_INTERFACE.NAME_OF_INSURED%TYPE
368 ,LESSOR_INSURED_FLAG OKL_HEADER_INTERFACE.LESSOR_INSURED_FLAG%TYPE
369 ,LESSOR_PAYEE_FLAG OKL_HEADER_INTERFACE.LESSOR_PAYEE_FLAG%TYPE
370 ,INSURANCE_COMPANY_NAME OKL_HEADER_INTERFACE.INSURANCE_COMPANY_NAME%TYPE
371 ,INSURANCE_COMPANY_ID OKL_HEADER_INTERFACE.INSURANCE_COMPANY_ID%TYPE
372 ,INSURANCE_COMPANY_SITE_NAME OKL_HEADER_INTERFACE.INSURANCE_COMPANY_SITE_NAME%TYPE
373 ,INSURANCE_COMPANY_SITE_ID OKL_HEADER_INTERFACE.INSURANCE_COMPANY_SITE_ID%TYPE
374 ,AGENT_NAME OKL_HEADER_INTERFACE.AGENT_NAME%TYPE
375 ,AGENT_ID OKL_HEADER_INTERFACE.AGENT_ID%TYPE
376 ,AGENT_ADDRESS_SITE_NAME OKL_HEADER_INTERFACE.AGENT_ADDRESS_SITE_NAME%TYPE
377 ,AGENT_ADDRESS_SITE_ID OKL_HEADER_INTERFACE.AGENT_ADDRESS_SITE_ID%TYPE
378 ,PROOF_DUE_DATE OKL_HEADER_INTERFACE.PROOF_DUE_DATE%TYPE
379 ,PROOF_PROVIDED_DATE OKL_HEADER_INTERFACE.PROOF_PROVIDED_DATE%TYPE
380 ,PREFUNDING_ELIGIBLE_FLAG OKL_HEADER_INTERFACE.PREFUNDING_ELIGIBLE_FLAG%TYPE
381 ,PRIVATE_ACTIVITY_BOND_FLAG OKL_HEADER_INTERFACE.PRIVATE_ACTIVITY_BOND_FLAG%TYPE
382 ,RVI_AUTO_CALCULATE_FLAG OKL_HEADER_INTERFACE.RVI_AUTO_CALCULATE_FLAG%TYPE
383 ,RVI_GUARANTEED_AMOUNT OKL_HEADER_INTERFACE.RVI_GUARANTEED_AMOUNT%TYPE
384 ,RVI_PRESENT_GUARANTEED_AMOUNT OKL_HEADER_INTERFACE.RVI_PRESENT_GUARANTEED_AMOUNT%TYPE
385 ,RVI_PREMIUM_AMOUNT OKL_HEADER_INTERFACE.RVI_PREMIUM_AMOUNT%TYPE
386 ,RVI_RATE OKL_HEADER_INTERFACE.RVI_RATE%TYPE
387 ,FLOOR_PRICE_FORMULA OKL_HEADER_INTERFACE.FLOOR_PRICE_FORMULA%TYPE
388 ,REMKT_SALE_PRICE_FORMULA OKL_HEADER_INTERFACE.REMKT_SALE_PRICE_FORMULA%TYPE
389 ,REPURCHASE_QUOTE_OPTION OKL_HEADER_INTERFACE.REPURCHASE_QUOTE_OPTION%TYPE
390 ,REPURCHASE_QUOTE_FORMULA OKL_HEADER_INTERFACE.REPURCHASE_QUOTE_FORMULA%TYPE
391 ,SALE_PRICE_OPTION OKL_HEADER_INTERFACE.SALE_PRICE_OPTION%TYPE
392 ,SALE_PRICE_AMOUNT OKL_HEADER_INTERFACE.SALE_PRICE_AMOUNT%TYPE
393 ,SALE_PRICE_FORMULA OKL_HEADER_INTERFACE.SALE_PRICE_FORMULA%TYPE
394 ,SALE_PRICE_PRORATE OKL_HEADER_INTERFACE.SALE_PRICE_PRORATE%TYPE
395 ,DISCOUNT_RATE_OPTION OKL_HEADER_INTERFACE.DISCOUNT_RATE_OPTION%TYPE
396 ,DISCOUNT_RATE_AMOUNT OKL_HEADER_INTERFACE.DISCOUNT_RATE_AMOUNT%TYPE
397 ,DISCOUNT_RATE_FORMULA OKL_HEADER_INTERFACE.DISCOUNT_RATE_FORMULA%TYPE
398 ,DISCOUNT_RATE_PRORATE OKL_HEADER_INTERFACE.DISCOUNT_RATE_PRORATE%TYPE
399 ,QUOTE_FEE_OPTION OKL_HEADER_INTERFACE.QUOTE_FEE_OPTION%TYPE
400 ,QUOTE_FEE_AMOUNT OKL_HEADER_INTERFACE.QUOTE_FEE_AMOUNT%TYPE
401 ,QUOTE_FEE_FORMULA OKL_HEADER_INTERFACE.QUOTE_FEE_FORMULA%TYPE
402 ,QUOTE_FEE_PRORATE OKL_HEADER_INTERFACE.QUOTE_FEE_PRORATE%TYPE
403 ,ERT_PURCHASE_OPT OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT%TYPE
404 ,ERT_PURCHASE_OPT_TYPE OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_TYPE%TYPE
405 ,ERT_PURCHASE_OPT_AMOUNT OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_AMOUNT%TYPE
406 ,ERT_PURCHASE_OPT_FORMULA OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_FORMULA%TYPE
407 ,ERT_PURCHASE_OPT_PRORATE OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_PRORATE%TYPE
408 ,ERT_PURCHASE_OPT_MAX_OPT OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_MAX_OPT%TYPE
409 ,ERT_PURCHASE_OPT_MAX_AMT OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_MAX_AMT%TYPE
410 ,ERT_PURCHASE_OPT_MAX_FORMULA OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_MAX_FORMULA%TYPE
411 ,ERT_PURCHASE_OPT_MIN_OPT OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_MIN_OPT%TYPE
412 ,ERT_PURCHASE_OPT_MIN_AMT OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_MIN_AMT%TYPE
413 ,ERT_PURCHASE_OPT_MIN_FORMULA OKL_HEADER_INTERFACE.ERT_PURCHASE_OPT_MIN_FORMULA%TYPE
414 ,EOT_PURCHASE_OPT OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT%TYPE
415 ,EOT_PURCHASE_OPT_TYPE OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_TYPE%TYPE
416 ,EOT_PURCHASE_OPT_AMOUNT OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_AMOUNT%TYPE
417 ,EOT_PURCHASE_OPT_FORMULA OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_FORMULA%TYPE
418 ,EOT_PURCHASE_OPT_PRORATE OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_PRORATE%TYPE
419 ,EOT_PURCHASE_OPT_MAX_OPT OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_MAX_OPT%TYPE
420 ,EOT_PURCHASE_OPT_MAX_AMT OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_MAX_AMT%TYPE
421 ,EOT_PURCHASE_OPT_MAX_FORMULA OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_MAX_FORMULA%TYPE
422 ,EOT_PURCHASE_OPT_MIN_OPT OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_MIN_OPT%TYPE
423 ,EOT_PURCHASE_OPT_MIN_AMT OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_MIN_AMT%TYPE
424 ,EOT_PURCHASE_OPT_MIN_FORMULA OKL_HEADER_INTERFACE.EOT_PURCHASE_OPT_MIN_FORMULA%TYPE
425 ,TQP_ERL_TERMINATION_ALWD_FLAG OKL_HEADER_INTERFACE.TQP_ERL_TERMINATION_ALWD_FLAG%TYPE
426 ,TQP_PRT_TERMINATION_ALWD_FLAG OKL_HEADER_INTERFACE.TQP_PRT_TERMINATION_ALWD_FLAG%TYPE
427 ,QUOTE_EFFECTIVE_DAYS OKL_HEADER_INTERFACE.QUOTE_EFFECTIVE_DAYS%TYPE
428 ,QUOTE_EFF_MAX_DAYS OKL_HEADER_INTERFACE.QUOTE_EFF_MAX_DAYS%TYPE
429 ,EOT_TOLERANCE_DAYS OKL_HEADER_INTERFACE.EOT_TOLERANCE_DAYS%TYPE
430 ,PRT_TERMINATION_APPROVAL_REQ OKL_HEADER_INTERFACE.PRT_TERMINATION_APPROVAL_REQ%TYPE
431 ,PRT_TERMINATION_ALLOWED_FLAG OKL_HEADER_INTERFACE.PRT_TERMINATION_ALLOWED_FLAG%TYPE
432 ,GAIN_LOSS_APPROVAL_REQ OKL_HEADER_INTERFACE.GAIN_LOSS_APPROVAL_REQ%TYPE
433 ,GAIN_LOSS_NET_QUOTE_OPT OKL_HEADER_INTERFACE.GAIN_LOSS_NET_QUOTE_OPT%TYPE
434 ,GAIN_LOSS_NET_QUOTE_AMT OKL_HEADER_INTERFACE.GAIN_LOSS_NET_QUOTE_AMT%TYPE
435 ,GAIN_LOSS_NET_QUOTE_FORMULA OKL_HEADER_INTERFACE.GAIN_LOSS_NET_QUOTE_FORMULA%TYPE
436 ,GAIN_LOSS_TOLERANCE_ALLOWED OKL_HEADER_INTERFACE.GAIN_LOSS_TOLERANCE_ALLOWED%TYPE
437 ,QUOTE_RCPT_CONTRACT_ROLE OKL_HEADER_INTERFACE.QUOTE_RCPT_CONTRACT_ROLE%TYPE
438 ,QUOTE_APPROVER_CONTRACT_ROLE OKL_HEADER_INTERFACE.QUOTE_APPROVER_CONTRACT_ROLE%TYPE
439 ,QUOTE_CRTSY_COPY_CONTRACT_ROLE OKL_HEADER_INTERFACE.QUOTE_CRTSY_COPY_CONTRACT_ROLE%TYPE
440 ,ERT_QUOTE_CALC_TERM_OPTION OKL_HEADER_INTERFACE.ERT_QUOTE_CALC_TERM_OPTION%TYPE
441 ,ERT_QUOTE_CALC_TERM_FORMULA OKL_HEADER_INTERFACE.ERT_QUOTE_CALC_TERM_FORMULA%TYPE
442 ,ERT_CONTRACT_OBLIG_OPT OKL_HEADER_INTERFACE.ERT_CONTRACT_OBLIG_OPT%TYPE
443 ,ERT_CONTRACT_OBLIG_AMOUNT OKL_HEADER_INTERFACE.ERT_CONTRACT_OBLIG_AMOUNT%TYPE
444 ,ERT_CONTRACT_OBLIG_FORMULA OKL_HEADER_INTERFACE.ERT_CONTRACT_OBLIG_FORMULA%TYPE
445 ,ERT_CONTRACT_OBLIG_PRORATE OKL_HEADER_INTERFACE.ERT_CONTRACT_OBLIG_PRORATE%TYPE
446 ,ERT_DISC_RATE_OPT OKL_HEADER_INTERFACE.ERT_DISC_RATE_OPT%TYPE
447 ,ERT_DISC_RATE_AMOUNT OKL_HEADER_INTERFACE.ERT_DISC_RATE_AMOUNT%TYPE
448 ,ERT_DISC_RATE_FORMULA OKL_HEADER_INTERFACE.ERT_DISC_RATE_FORMULA%TYPE
449 ,ERT_DISC_RATE_PRORATE OKL_HEADER_INTERFACE.ERT_DISC_RATE_PRORATE%TYPE
450 ,ERT_QUOTE_FEE_OPT OKL_HEADER_INTERFACE.ERT_QUOTE_FEE_OPT%TYPE
451 ,ERT_QUOTE_FEE_AMOUNT OKL_HEADER_INTERFACE.ERT_QUOTE_FEE_AMOUNT%TYPE
452 ,ERT_QUOTE_FEE_FORMULA OKL_HEADER_INTERFACE.ERT_QUOTE_FEE_FORMULA%TYPE
453 ,ERT_QUOTE_FEE_PRORATE OKL_HEADER_INTERFACE.ERT_QUOTE_FEE_PRORATE%TYPE
454 ,ERT_RETURN_FEE_OPTION OKL_HEADER_INTERFACE.ERT_RETURN_FEE_OPTION%TYPE
455 ,ERT_RETURN_FEE_AMOUNT OKL_HEADER_INTERFACE.ERT_RETURN_FEE_AMOUNT%TYPE
456 ,ERT_RETURN_FEE_FORMULA OKL_HEADER_INTERFACE.ERT_RETURN_FEE_FORMULA%TYPE
457 ,ERT_RETURN_FEE_PRORATE OKL_HEADER_INTERFACE.ERT_RETURN_FEE_PRORATE%TYPE
458 ,ERT_ROLL_INCTV_OPTION OKL_HEADER_INTERFACE.ERT_ROLL_INCTV_OPTION%TYPE
459 ,ERT_ROLL_INCTV_AMOUNT OKL_HEADER_INTERFACE.ERT_ROLL_INCTV_AMOUNT%TYPE
460 ,ERT_ROLL_INCTV_FORMULA OKL_HEADER_INTERFACE.ERT_ROLL_INCTV_FORMULA%TYPE
461 ,ERT_ROLL_INCTV_PRORATE OKL_HEADER_INTERFACE.ERT_ROLL_INCTV_PRORATE%TYPE
462 ,ERT_SECU_DEP_DISPO_OPTION OKL_HEADER_INTERFACE.ERT_SECU_DEP_DISPO_OPTION%TYPE
463 ,ERT_SECU_DEP_DISPO_AMOUNT OKL_HEADER_INTERFACE.ERT_SECU_DEP_DISPO_AMOUNT%TYPE
464 ,ERT_SECU_DEP_DISPO_FORMULA OKL_HEADER_INTERFACE.ERT_SECU_DEP_DISPO_FORMULA%TYPE
465 ,ERT_SECU_DEP_DISPO_PRORATE OKL_HEADER_INTERFACE.ERT_SECU_DEP_DISPO_PRORATE%TYPE
466 ,ERT_TERM_PENALTY_OPTION OKL_HEADER_INTERFACE.ERT_TERM_PENALTY_OPTION%TYPE
467 ,ERT_TERM_PENALTY_AMOUNT OKL_HEADER_INTERFACE.ERT_TERM_PENALTY_AMOUNT%TYPE
468 ,ERT_TERM_PENALTY_FORMULA OKL_HEADER_INTERFACE.ERT_TERM_PENALTY_FORMULA%TYPE
469 ,ERT_TERM_PENALTY_PRORATE OKL_HEADER_INTERFACE.ERT_TERM_PENALTY_PRORATE%TYPE
470 ,ERT_TERM_PENALTY_CAP_OPTION OKL_HEADER_INTERFACE.ERT_TERM_PENALTY_CAP_OPTION%TYPE
471 ,ERT_TERM_PENALTY_CAP_AMOUNT OKL_HEADER_INTERFACE.ERT_TERM_PENALTY_CAP_AMOUNT%TYPE
472 ,ERT_TERM_PENALTY_CAP_FORMULA OKL_HEADER_INTERFACE.ERT_TERM_PENALTY_CAP_FORMULA%TYPE
473 ,ERT_EST_PROP_TAX_OPTION OKL_HEADER_INTERFACE.ERT_EST_PROP_TAX_OPTION%TYPE
474 ,ERT_EST_PROP_TAX_AMOUNT OKL_HEADER_INTERFACE.ERT_EST_PROP_TAX_AMOUNT%TYPE
475 ,ERT_EST_PROP_TAX_FORMULA OKL_HEADER_INTERFACE.ERT_EST_PROP_TAX_FORMULA%TYPE
476 ,ERT_EST_PROP_TAX_PRORATE OKL_HEADER_INTERFACE.ERT_EST_PROP_TAX_PRORATE%TYPE
477 ,ERT_CONTR_FEES_OPTION OKL_HEADER_INTERFACE.ERT_CONTR_FEES_OPTION%TYPE
478 ,ERT_OUTSTND_BAL_OPTION OKL_HEADER_INTERFACE.ERT_OUTSTND_BAL_OPTION%TYPE
479 ,ERT_SERV_MANT_OPTION OKL_HEADER_INTERFACE.ERT_SERV_MANT_OPTION%TYPE
480 ,EOT_QUOTE_CALC_TERM_OPTION OKL_HEADER_INTERFACE.EOT_QUOTE_CALC_TERM_OPTION%TYPE
481 ,EOT_QUOTE_CALC_TERM_FORMULA OKL_HEADER_INTERFACE.EOT_QUOTE_CALC_TERM_FORMULA%TYPE
482 ,EOT_CONTRACT_OBLIG_OPT OKL_HEADER_INTERFACE.EOT_CONTRACT_OBLIG_OPT%TYPE
483 ,EOT_CONTRACT_OBLIG_AMOUNT OKL_HEADER_INTERFACE.EOT_CONTRACT_OBLIG_AMOUNT%TYPE
484 ,EOT_CONTRACT_OBLIG_FORMULA OKL_HEADER_INTERFACE.EOT_CONTRACT_OBLIG_FORMULA%TYPE
485 ,EOT_CONTRACT_OBLIG_PRORATE OKL_HEADER_INTERFACE.EOT_CONTRACT_OBLIG_PRORATE%TYPE
486 ,EOT_DISC_RATE_OPT OKL_HEADER_INTERFACE.EOT_DISC_RATE_OPT%TYPE
487 ,EOT_DISC_RATE_AMOUNT OKL_HEADER_INTERFACE.EOT_DISC_RATE_AMOUNT%TYPE
488 ,EOT_DISC_RATE_FORMULA OKL_HEADER_INTERFACE.EOT_DISC_RATE_FORMULA%TYPE
489 ,EOT_DISC_RATE_PRORATE OKL_HEADER_INTERFACE.EOT_DISC_RATE_PRORATE%TYPE
490 ,EOT_QUOTE_FEE_OPT OKL_HEADER_INTERFACE.EOT_QUOTE_FEE_OPT%TYPE
491 ,EOT_QUOTE_FEE_AMOUNT OKL_HEADER_INTERFACE.EOT_QUOTE_FEE_AMOUNT%TYPE
492 ,EOT_QUOTE_FEE_FORMULA OKL_HEADER_INTERFACE.EOT_QUOTE_FEE_FORMULA%TYPE
493 ,EOT_QUOTE_FEE_PRORATE OKL_HEADER_INTERFACE.EOT_QUOTE_FEE_PRORATE%TYPE
494 ,EOT_RETURN_FEE_OPTION OKL_HEADER_INTERFACE.EOT_RETURN_FEE_OPTION%TYPE
495 ,EOT_RETURN_FEE_AMOUNT OKL_HEADER_INTERFACE.EOT_RETURN_FEE_AMOUNT%TYPE
496 ,EOT_RETURN_FEE_FORMULA OKL_HEADER_INTERFACE.EOT_RETURN_FEE_FORMULA%TYPE
497 ,EOT_RETURN_FEE_PRORATE OKL_HEADER_INTERFACE.EOT_RETURN_FEE_PRORATE%TYPE
498 ,EOT_ROLL_INCTV_OPTION OKL_HEADER_INTERFACE.EOT_ROLL_INCTV_OPTION%TYPE
499 ,EOT_ROLL_INCTV_AMOUNT OKL_HEADER_INTERFACE.EOT_ROLL_INCTV_AMOUNT%TYPE
500 ,EOT_ROLL_INCTV_FORMULA OKL_HEADER_INTERFACE.EOT_ROLL_INCTV_FORMULA%TYPE
501 ,EOT_ROLL_INCTV_PRORATE OKL_HEADER_INTERFACE.EOT_ROLL_INCTV_PRORATE%TYPE
502 ,EOT_SECU_DEP_DISPO_OPTION OKL_HEADER_INTERFACE.EOT_SECU_DEP_DISPO_OPTION%TYPE
503 ,EOT_SECU_DEP_DISPO_AMOUNT OKL_HEADER_INTERFACE.EOT_SECU_DEP_DISPO_AMOUNT%TYPE
504 ,EOT_SECU_DEP_DISPO_FORMULA OKL_HEADER_INTERFACE.EOT_SECU_DEP_DISPO_FORMULA%TYPE
505 ,EOT_SECU_DEP_DISPO_PRORATE OKL_HEADER_INTERFACE.EOT_SECU_DEP_DISPO_PRORATE%TYPE
506 ,EOT_TERM_PENALTY_OPTION OKL_HEADER_INTERFACE.EOT_TERM_PENALTY_OPTION%TYPE
507 ,EOT_TERM_PENALTY_AMOUNT OKL_HEADER_INTERFACE.EOT_TERM_PENALTY_AMOUNT%TYPE
508 ,EOT_TERM_PENALTY_FORMULA OKL_HEADER_INTERFACE.EOT_TERM_PENALTY_FORMULA%TYPE
509 ,EOT_TERM_PENALTY_PRORATE OKL_HEADER_INTERFACE.EOT_TERM_PENALTY_PRORATE%TYPE
510 ,EOT_TERM_PENALTY_CAP_OPTION OKL_HEADER_INTERFACE.EOT_TERM_PENALTY_CAP_OPTION%TYPE
511 ,EOT_TERM_PENALTY_CAP_AMOUNT OKL_HEADER_INTERFACE.EOT_TERM_PENALTY_CAP_AMOUNT%TYPE
512 ,EOT_TERM_PENALTY_CAP_FORMULA OKL_HEADER_INTERFACE.EOT_TERM_PENALTY_CAP_FORMULA%TYPE
513 ,EOT_EST_PROP_TAX_OPTION OKL_HEADER_INTERFACE.EOT_EST_PROP_TAX_OPTION%TYPE
514 ,EOT_EST_PROP_TAX_AMOUNT OKL_HEADER_INTERFACE.EOT_EST_PROP_TAX_AMOUNT%TYPE
515 ,EOT_EST_PROP_TAX_FORMULA OKL_HEADER_INTERFACE.EOT_EST_PROP_TAX_FORMULA%TYPE
516 ,EOT_EST_PROP_TAX_PRORATE OKL_HEADER_INTERFACE.EOT_EST_PROP_TAX_PRORATE%TYPE
517 ,EOT_CONTR_FEES_OPTION OKL_HEADER_INTERFACE.EOT_CONTR_FEES_OPTION%TYPE
518 ,EOT_OUTSTND_BAL_OPTION OKL_HEADER_INTERFACE.EOT_OUTSTND_BAL_OPTION%TYPE
519 ,EOT_SERV_MANT_OPTION OKL_HEADER_INTERFACE.EOT_SERV_MANT_OPTION%TYPE
520 ,EVERGREEN_PASSTHRU_FEES OKL_HEADER_INTERFACE.EVERGREEN_PASSTHRU_FEES%TYPE
521 ,EVERGREEN_PASSTHRU_PERCENT OKL_HEADER_INTERFACE.EVERGREEN_PASSTHRU_PERCENT%TYPE
522 ,LIEN_TYPE OKL_HEADER_INTERFACE.LIEN_TYPE%TYPE
523 ,FILING_NUMBER OKL_HEADER_INTERFACE.FILING_NUMBER%TYPE
524 ,FILING_DATE OKL_HEADER_INTERFACE.FILING_DATE%TYPE
525 ,FILING_STATUS OKL_HEADER_INTERFACE.FILING_STATUS%TYPE
526 ,LIEN_HOLDER_NAME OKL_HEADER_INTERFACE.LIEN_HOLDER_NAME%TYPE
527 ,LIEN_HOLDER_ID OKL_HEADER_INTERFACE.LIEN_HOLDER_ID%TYPE
528 ,JURISDICTION OKL_HEADER_INTERFACE.JURISDICTION%TYPE
529 ,SUB_JURISDICTION OKL_HEADER_INTERFACE.SUB_JURISDICTION%TYPE
530 ,LIEN_EXPIRATION_DATE OKL_HEADER_INTERFACE.LIEN_EXPIRATION_DATE%TYPE
531 ,LIEN_CONTINUATION_NUMBER OKL_HEADER_INTERFACE.LIEN_CONTINUATION_NUMBER%TYPE
532 ,LIEN_CONTINUATION_DATE OKL_HEADER_INTERFACE.LIEN_CONTINUATION_DATE%TYPE
533 ,TITLE_TYPE OKL_HEADER_INTERFACE.TITLE_TYPE%TYPE
534 ,TITLE_ISSUER_NAME OKL_HEADER_INTERFACE.TITLE_ISSUER_NAME%TYPE
535 ,TITLE_ISSUER_ID OKL_HEADER_INTERFACE.TITLE_ISSUER_ID%TYPE
536 ,TITLE_DATE OKL_HEADER_INTERFACE.TITLE_DATE%TYPE
537 ,TITLE_NUMBER OKL_HEADER_INTERFACE.TITLE_NUMBER%TYPE
538 ,REGISTRATION_NUMBER OKL_HEADER_INTERFACE.REGISTRATION_NUMBER%TYPE
539 ,LOCATION OKL_HEADER_INTERFACE.LOCATION%TYPE
540 ,TITLE_CUSTODIAN_NAME OKL_HEADER_INTERFACE.TITLE_CUSTODIAN_NAME%TYPE
541 ,TITLE_CUSTODIAN_ID OKL_HEADER_INTERFACE.TITLE_CUSTODIAN_ID%TYPE
542 ,PAYEE_SITE OKL_HEADER_INTERFACE.PAYEE_SITE%TYPE
543 ,REGISTRATION_LOCATION OKL_HEADER_INTERFACE.REGISTRATION_LOCATION%TYPE
544 ,REG_EXPIRATION_DATE OKL_HEADER_INTERFACE.REG_EXPIRATION_DATE%TYPE
545 ,CREDIT_LINE_ID OKL_HEADER_INTERFACE.CREDIT_LINE_ID%TYPE
546 ,CREDIT_LINE_NUMBER OKL_HEADER_INTERFACE.CREDIT_LINE_NUMBER%TYPE
547 ,PRTFL_APPROVAL_REQ OKL_HEADER_INTERFACE.PRTFL_APPROVAL_REQ%TYPE
548 ,PRTFL_ASSGN_GROUP OKL_HEADER_INTERFACE.PRTFL_ASSGN_GROUP%TYPE
549 ,PRTFL_BUDGET_AMT_OPT OKL_HEADER_INTERFACE.PRTFL_ASSGN_GROUP%TYPE
550 ,PRTFL_BUDGET_FIXED_AMT OKL_HEADER_INTERFACE.PRTFL_BUDGET_FIXED_AMT%TYPE
551 ,PRTFL_BUDGET_AMT_FORMULA OKL_HEADER_INTERFACE.PRTFL_BUDGET_AMT_FORMULA%TYPE
552 ,PRTFL_DAYS_FROM_CON_EXPR OKL_HEADER_INTERFACE.PRTFL_DAYS_FROM_CON_EXPR%TYPE
553 ,PRTFL_STRATEGY OKL_HEADER_INTERFACE.PRTFL_STRATEGY%TYPE
554 ,PROP_TAX_APPLICABLE OKL_HEADER_INTERFACE.PROP_TAX_APPLICABLE%TYPE
555 ,PROP_TAX_LEASE_REP OKL_HEADER_INTERFACE.PROP_TAX_LEASE_REP%TYPE
556 ,MEX_TAX_SUB_BASIC_WTHLD OKL_HEADER_INTERFACE.MEX_TAX_SUB_BASIC_WTHLD%TYPE
557 ,MEX_TAX_CALC_FORMULA OKL_HEADER_INTERFACE.MEX_TAX_CALC_FORMULA%TYPE
558 ,AUS_TAX_STAMP_DUTY OKL_HEADER_INTERFACE.AUS_TAX_STAMP_DUTY%TYPE
559 ,CURRENCY_CONVERSION_TYPE OKL_HEADER_INTERFACE.CURRENCY_CONVERSION_TYPE%TYPE
560 ,CURRENCY_CONVERSION_RATE OKL_HEADER_INTERFACE.CURRENCY_CONVERSION_RATE%TYPE
561 ,CURRENCY_CONVERSION_DATE OKL_HEADER_INTERFACE.CURRENCY_CONVERSION_DATE%TYPE
562 ,ASSIGNABLE_YN OKL_HEADER_INTERFACE.ASSIGNABLE_YN%TYPE
563 ,LESSEE_VENDOR_ID OKL_HEADER_INTERFACE.LESSEE_VENDOR_ID%TYPE
564 ,LESSEE_VENDOR_NAME OKL_HEADER_INTERFACE.LESSEE_VENDOR_NAME%TYPE
565 ,LESSEE_VENDOR_SITE_ID OKL_HEADER_INTERFACE.LESSEE_VENDOR_SITE_ID%TYPE
566 ,LESSEE_VENDOR_SITE_CODE OKL_HEADER_INTERFACE.LESSEE_VENDOR_SITE_CODE%TYPE
567 -- cklee start 02/23/2004
568 ,INSURANCE_COMPANY_NUMBER OKL_HEADER_INTERFACE.INSURANCE_COMPANY_NUMBER%TYPE
569 ,INSURANCE_COMPANY_SITE_NUMBER OKL_HEADER_INTERFACE.INSURANCE_COMPANY_SITE_NUMBER%TYPE
570 ,AGENT_NUMBER OKL_HEADER_INTERFACE.AGENT_NUMBER%TYPE
571 ,AGENT_ADDRESS_SITE_NUMBER OKL_HEADER_INTERFACE.AGENT_ADDRESS_SITE_NUMBER%TYPE
572 --,RELEASED_ASSET_YN OKL_HEADER_INTERFACE.RELEASED_ASSET_YN%TYPE
573 -- cklee start 02/23/2004
574 ,CASH_APPL_RULE_NAME OKL_HEADER_INTERFACE.CASH_APPL_RULE_NAME%TYPE
575 -- Added by rravikir (Fix for Bug 3947959) 10/07/2004
576 ,PROP_TAX_BILL_METHOD OKL_HEADER_INTERFACE.PROP_TAX_BILL_METHOD%TYPE
577 -- End
578 -- AKP new rules 4067094
579 ,GAIN_LOSS_TOLRNC_ALLWD_AMT OKL_HEADER_INTERFACE.GAIN_LOSS_TOLRNC_ALLWD_AMT%TYPE
580 ,GAIN_LOSS_TOLRNC_ALLWD_FRML OKL_HEADER_INTERFACE.GAIN_LOSS_TOLRNC_ALLWD_FRML%TYPE
581 ,GAIN_LOSS_TOLRNC_BASIS OKL_HEADER_INTERFACE.GAIN_LOSS_TOLRNC_BASIS%TYPE
582 ,GAIN_LOSS_APPRV_PROC_FRML OKL_HEADER_INTERFACE.GAIN_LOSS_APPRV_PROC_FRML%TYPE
583 ,ERT_ABSORBED_FEE_FRML OKL_HEADER_INTERFACE.ERT_ABSORBED_FEE_FRML%TYPE
584 ,ERT_EXPENSE_FEE_FRML OKL_HEADER_INTERFACE.ERT_EXPENSE_FEE_FRML%TYPE
585 ,ERT_FINANCED_FEE_FRML OKL_HEADER_INTERFACE.ERT_FINANCED_FEE_FRML%TYPE
586 ,ERT_GENERAL_FEE_FRML OKL_HEADER_INTERFACE.ERT_GENERAL_FEE_FRML%TYPE
587 ,ERT_INCOME_FEE_FRML OKL_HEADER_INTERFACE.ERT_INCOME_FEE_FRML%TYPE
588 ,ERT_MISC_FEE_FRML OKL_HEADER_INTERFACE.ERT_MISC_FEE_FRML%TYPE
589 ,ERT_PASSTHRU_FEE_FRML OKL_HEADER_INTERFACE.ERT_PASSTHRU_FEE_FRML%TYPE
590 ,ERT_ROLLOVER_FEE_FRML OKL_HEADER_INTERFACE.ERT_ROLLOVER_FEE_FRML%TYPE
591 ,EOT_ABSORBED_FEE_FRML OKL_HEADER_INTERFACE.EOT_ABSORBED_FEE_FRML%TYPE
592 ,EOT_EXPENSE_FEE_FRML OKL_HEADER_INTERFACE.EOT_EXPENSE_FEE_FRML%TYPE
593 ,EOT_FINANCED_FEE_FRML OKL_HEADER_INTERFACE.EOT_FINANCED_FEE_FRML%TYPE
594 ,EOT_GENERAL_FEE_FRML OKL_HEADER_INTERFACE.EOT_GENERAL_FEE_FRML%TYPE
595 ,EOT_INCOME_FEE_FRML OKL_HEADER_INTERFACE.EOT_INCOME_FEE_FRML%TYPE
596 ,EOT_MISC_FEE_FRML OKL_HEADER_INTERFACE.EOT_MISC_FEE_FRML%TYPE
597 ,EOT_PASSTHRU_FEE_FRML OKL_HEADER_INTERFACE.EOT_PASSTHRU_FEE_FRML%TYPE
598 ,EOT_ROLLOVER_FEE_FRML OKL_HEADER_INTERFACE.EOT_ROLLOVER_FEE_FRML%TYPE
599 -- AKP new rules 4067094
600 ,DELETE_BEFORE_IMPORT_YN OKL_HEADER_INTERFACE.DELETE_BEFORE_IMPORT_YN%TYPE /* akp_delete */
601 ,ST_UPDATE_LINES_FROM_CONTRACT OKL_HEADER_INTERFACE.ST_UPDATE_LINES_FROM_CONTRACT%TYPE
602 ,ST_INTEREST_DISCLOSED OKL_HEADER_INTERFACE.ST_INTEREST_DISCLOSED%TYPE
603 ,ST_TRANSFER_OF_TITLE OKL_HEADER_INTERFACE.ST_TRANSFER_OF_TITLE%TYPE
604 ,ST_SALE_AND_LEASE_BACK OKL_HEADER_INTERFACE.ST_SALE_AND_LEASE_BACK%TYPE
605 ,ST_PURCHASE_OF_LEASE OKL_HEADER_INTERFACE.ST_PURCHASE_OF_LEASE%TYPE
606 ,ST_EQUIPMENT_USAGE OKL_HEADER_INTERFACE.ST_EQUIPMENT_USAGE%TYPE
607 ,ST_EQUIPMENT_AGE OKL_HEADER_INTERFACE.ST_EQUIPMENT_AGE%TYPE
608 ,ST_ASSET_UPFRONT_TAX OKL_HEADER_INTERFACE.ST_ASSET_UPFRONT_TAX%TYPE
609 ,ST_BILL_STREAM_TYPE_CODE OKL_HEADER_INTERFACE.ST_BILL_STREAM_TYPE_CODE%TYPE
610 ,ST_BILL_STREAM_PURPOSE_CODE OKL_HEADER_INTERFACE.ST_BILL_STREAM_PURPOSE_CODE%TYPE
611 ,ST_FIN_STREAM_TYPE_CODE OKL_HEADER_INTERFACE.ST_FIN_STREAM_TYPE_CODE%TYPE
612 ,ST_FIN_STREAM_PURPOSE_CODE OKL_HEADER_INTERFACE.ST_FIN_STREAM_PURPOSE_CODE%TYPE
613 ,ST_CAP_STREAM_TYPE_CODE OKL_HEADER_INTERFACE.ST_CAP_STREAM_TYPE_CODE%TYPE
614 ,ST_CAP_STREAM_PURPOSE_CODE OKL_HEADER_INTERFACE.ST_CAP_STREAM_PURPOSE_CODE%TYPE
615 -- AKP: Vartiable Rate
616 ,INT_RATE_EFFECTIVE_FROM_DATE OKL_HEADER_INTERFACE.INT_RATE_EFFECTIVE_FROM_DATE%TYPE
617 ,INT_RATE_EFFECTIVE_TO_DATE OKL_HEADER_INTERFACE.INT_RATE_EFFECTIVE_TO_DATE%TYPE
618 ,INT_RATE_PRINC_BASIS_CODE OKL_HEADER_INTERFACE.INT_RATE_PRINC_BASIS_CODE%TYPE
619 ,INT_RATE_BASIS_CODE OKL_HEADER_INTERFACE.INT_RATE_BASIS_CODE%TYPE
620 ,INT_RATE_DELAY_CODE OKL_HEADER_INTERFACE.INT_RATE_DELAY_CODE%TYPE
621 ,INT_RATE_DELAY_FREQ OKL_HEADER_INTERFACE.INT_RATE_DELAY_FREQ%TYPE
622 ,INT_RATE_CMPND_FREQ_CODE OKL_HEADER_INTERFACE.INT_RATE_CMPND_FREQ_CODE%TYPE
623 ,INT_RATE_CATCHUP_BASIS_CODE OKL_HEADER_INTERFACE.INT_RATE_CATCHUP_BASIS_CODE%TYPE
624 ,INT_RATE_CATCHUP_START_DATE OKL_HEADER_INTERFACE.INT_RATE_CATCHUP_START_DATE%TYPE
625 ,INT_RATE_CAT_STLMNT_CODE OKL_HEADER_INTERFACE.INT_RATE_CAT_STLMNT_CODE%TYPE
626 ,INT_RATE_CHANGE_START_DATE OKL_HEADER_INTERFACE.INT_RATE_CHANGE_START_DATE%TYPE
627 ,INT_RATE_CHANGE_FREQ_CODE OKL_HEADER_INTERFACE.INT_RATE_CHANGE_FREQ_CODE%TYPE
628 ,INT_RATE_CHANGE_VALUE OKL_HEADER_INTERFACE.INT_RATE_CHANGE_VALUE%TYPE
629 ,INT_RATE_CON_OPTION_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_OPTION_CODE%TYPE
630 ,INT_RATE_NEXT_CON_DATE OKL_HEADER_INTERFACE.INT_RATE_NEXT_CON_DATE%TYPE
631 --,INT_RATE_EFFECTIVE_FROM_DATE_CON OKL_HEADER_INTERFACE.INT_RATE_EFFECTIVE_FROM_DATE_CON%TYPE
632 --,INT_RATE_EFFECTIVE_TO_DATE_CON OKL_HEADER_INTERFACE.INT_RATE_EFFECTIVE_TO_DATE_CON%TYPE
633 ,INT_RATE_CON_INDEX_NAME OKL_HEADER_INTERFACE.INT_RATE_CON_INDEX_NAME%TYPE
634 ,INT_RATE_CON_BASE_RATE OKL_HEADER_INTERFACE.INT_RATE_CON_BASE_RATE%TYPE
635 ,INT_RATE_CON_START_DATE OKL_HEADER_INTERFACE.INT_RATE_CON_START_DATE%TYPE
636 ,INT_RATE_CON_ADDER_RATE OKL_HEADER_INTERFACE.INT_RATE_CON_ADDER_RATE%TYPE
637 ,INT_RATE_CON_MAXIMUM_RATE OKL_HEADER_INTERFACE.INT_RATE_CON_MAXIMUM_RATE%TYPE
638 ,INT_RATE_CON_MINIMUM_RATE OKL_HEADER_INTERFACE.INT_RATE_CON_MINIMUM_RATE%TYPE
639 ,INT_RATE_CON_PRC_BAS_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_PRC_BAS_CODE%TYPE
640 ,INT_RATE_CON_DAY_MTH_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_DAY_MTH_CODE%TYPE
641 ,INT_RATE_CON_DAY_YER_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_DAY_YER_CODE%TYPE
642 ,INT_RATE_CON_INT_BAS_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_INT_BAS_CODE%TYPE
643 ,INT_RATE_CON_RATE_DELAY_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_RATE_DELAY_CODE%TYPE
644 ,INT_RATE_CON_RATE_DELAY_FREQ OKL_HEADER_INTERFACE.INT_RATE_CON_RATE_DELAY_FREQ%TYPE
645 ,INT_RATE_CON_CMPND_FREQ_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_CMPND_FREQ_CODE%TYPE
646 ,INT_RATE_CON_FORMULA_NAME OKL_HEADER_INTERFACE.INT_RATE_CON_FORMULA_NAME%TYPE
647 ,INT_RATE_CON_CAT_BAS_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_CAT_BAS_CODE%TYPE
648 ,INT_RATE_CON_CAT_START_DATE OKL_HEADER_INTERFACE.INT_RATE_CON_CAT_START_DATE%TYPE
649 ,INT_RATE_CON_CAT_STLMNT_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_CAT_STLMNT_CODE%TYPE
650 ,INT_RATE_CON_CHG_START_DATE OKL_HEADER_INTERFACE.INT_RATE_CON_CHG_START_DATE%TYPE
651 ,INT_RATE_CON_CHG_FREQ_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_CHG_FREQ_CODE%TYPE
652 ,INT_RATE_CON_CHG_VALUE OKL_HEADER_INTERFACE.INT_RATE_CON_CHG_VALUE%TYPE
653 ,INT_RATE_CAT_FREQ_CODE OKL_HEADER_INTERFACE.INT_RATE_CAT_FREQ_CODE%TYPE
654 ,INT_RATE_CON_CAT_FREQ_CODE OKL_HEADER_INTERFACE.INT_RATE_CON_CAT_FREQ_CODE%TYPE
655 -- Bug 4655611
656 ,RVI_STREAM_CODE OKL_HEADER_INTERFACE.RVI_STREAM_CODE%TYPE
657 ,RVI_STREAM_PURPOSE_CODE OKL_HEADER_INTERFACE.RVI_STREAM_PURPOSE_CODE%TYPE
658 -- Bug 4655611
659 -- Contract Additional field, Bug 4558486
660 ,ATTRIBUTE_CATEGORY OKL_HEADER_INTERFACE.ATTRIBUTE_CATEGORY%TYPE
661 ,ATTRIBUTE1 OKL_HEADER_INTERFACE.ATTRIBUTE1%TYPE
662 ,ATTRIBUTE2 OKL_HEADER_INTERFACE.ATTRIBUTE2%TYPE
663 ,ATTRIBUTE3 OKL_HEADER_INTERFACE.ATTRIBUTE3%TYPE
664 ,ATTRIBUTE4 OKL_HEADER_INTERFACE.ATTRIBUTE4%TYPE
665 ,ATTRIBUTE5 OKL_HEADER_INTERFACE.ATTRIBUTE5%TYPE
666 ,ATTRIBUTE6 OKL_HEADER_INTERFACE.ATTRIBUTE6%TYPE
667 ,ATTRIBUTE7 OKL_HEADER_INTERFACE.ATTRIBUTE7%TYPE
668 ,ATTRIBUTE8 OKL_HEADER_INTERFACE.ATTRIBUTE8%TYPE
669 ,ATTRIBUTE9 OKL_HEADER_INTERFACE.ATTRIBUTE9%TYPE
670 ,ATTRIBUTE10 OKL_HEADER_INTERFACE.ATTRIBUTE10%TYPE
671 ,ATTRIBUTE11 OKL_HEADER_INTERFACE.ATTRIBUTE11%TYPE
672 ,ATTRIBUTE12 OKL_HEADER_INTERFACE.ATTRIBUTE12%TYPE
673 ,ATTRIBUTE13 OKL_HEADER_INTERFACE.ATTRIBUTE13%TYPE
674 ,ATTRIBUTE14 OKL_HEADER_INTERFACE.ATTRIBUTE14%TYPE
675 ,ATTRIBUTE15 OKL_HEADER_INTERFACE.ATTRIBUTE15%TYPE
676 -- Contract Additional field, Bug 4558486
677 -- $1 Buyout
678 ,EOT_AUTO_PROC_PURCHASE_OPT OKL_HEADER_INTERFACE.EOT_AUTO_PROC_PURCHASE_OPT%TYPE
679 -- $1 Buyout
680 ,PTH_EVG_PAYOUT_BASIS OKL_HEADER_INTERFACE.PTH_EVG_PAYOUT_BASIS%TYPE
681 ,PTH_PAYOUT_BASIS_FORMULA OKL_HEADER_INTERFACE.PTH_PAYOUT_BASIS_FORMULA%TYPE
682 ,PTH_EVG_STREAM_CODE OKL_HEADER_INTERFACE.PTH_EVG_STREAM_CODE%TYPE
683 ,PTH_EVG_STREAM_PURPOSE_CODE OKL_HEADER_INTERFACE.PTH_EVG_STREAM_PURPOSE_CODE%TYPE
684 ,SEND_BILL_SALE OKL_HEADER_INTERFACE.SEND_BILL_SALE%TYPE
685 ,MANUAL_QUOTES_ONLY OKL_HEADER_INTERFACE.MANUAL_QUOTES_ONLY%TYPE
686 ,FIRST_TERMINATION_DATE OKL_HEADER_INTERFACE.FIRST_TERMINATION_DATE%TYPE
687 ,QUOTE_RCPT_ADDL_RCPT_ROLE OKL_HEADER_INTERFACE.QUOTE_RCPT_ADDL_RCPT_ROLE%TYPE
688 ,QUOTE_RCPT_ALLOC_PTG OKL_HEADER_INTERFACE.QUOTE_RCPT_ALLOC_PTG%TYPE
689 ,QUOTE_APPRVR_ADV_NOTICE_ROLE OKL_HEADER_INTERFACE.QUOTE_APPRVR_ADV_NOTICE_ROLE%TYPE
690 ,QUOTE_APPROVER_DELAY_DAYS OKL_HEADER_INTERFACE.QUOTE_APPROVER_DELAY_DAYS%TYPE
691 ,ERT_SERV_MANT_FRML OKL_HEADER_INTERFACE.ERT_SERV_MANT_FRML%TYPE
692 ,EOT_SERV_MANT_FRML OKL_HEADER_INTERFACE.EOT_SERV_MANT_FRML%TYPE
693 --Added by dpsingh for LE Uptake
694 ,LEGAL_ENTITY_ID NUMBER := Okl_Api.G_MISS_NUM
695 -- Added by Punith for R12 ebtax
696 ,ST_TAX_SCHEDULE_APPLIES_FLAG OKL_HEADER_INTERFACE.ST_TAX_SCHEDULE_APPLIES_FLAG%TYPE
697 );
698
699 SUBTYPE fee_types_rec_type IS OKL_MAINTAIN_FEE_PVT.fee_types_rec_type;
700 SUBTYPE tlpv_rec_type IS okl_txl_assets_pub.tlpv_rec_type;
701
702 TYPE intf_party_rec_type IS RECORD (
703 CONTRACT_NUMBER OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE
704 ,LINE_NUMBER OKL_LINES_INTERFACE.LINE_NUMBER%TYPE
705 --
706 ,PARTY_ID HZ_PARTIES.PARTY_ID%TYPE
707 ,PARTY_NUMBER HZ_PARTIES.PARTY_NUMBER%TYPE
708 ,PARTY_NAME HZ_PARTIES.PARTY_NAME%TYPE
709 ,PARTY_CATEGORY_CODE HZ_PARTIES.CATEGORY_CODE%TYPE
710 --
711 ,PARTY_SITE_ID HZ_PARTY_SITES.PARTY_SITE_ID%TYPE
712 ,PARTY_SITE_NUMBER HZ_PARTY_SITES.PARTY_SITE_NUMBER%TYPE
713 ,PARTY_SITE_NAME HZ_PARTY_SITES.PARTY_SITE_NAME%TYPE
714 --
715 ,INTF_PARTY_ID VARCHAR2(150)
716 ,INTF_PARTY_NUMBER VARCHAR2(150)
717 ,INTF_PARTY_NAME VARCHAR2(150)
718 ,INTF_PARTY_SITE_ID VARCHAR2(150)
719 ,INTF_PARTY_SITE_NUMBER VARCHAR2(150)
720 ,INTF_PARTY_SITE_NAME VARCHAR2(150)
721 );
722
723
724 G_BASE_PMNT_HDR pphv_rec_type;
725 G_EVG_PMNT_HDR pphv_rec_type;
726 G_LLA_CHR_ID CONSTANT VARCHAR2(30) := 'OKL_LLA_CHR_ID';
727
728 G_EVG_CONT_PMNT_HDR pphv_rec_type; -- Evergreen param at contract header
729
730
731 ------------------------------------------------------------------------------
732 -- PROCEDURE debug_message
733 --
734 -- This procedure prints debug message depending on DEBUG flag
735 --
736 -- Calls:
737 -- Called By:
738 ------------------------------------------------------------------------------
739 PROCEDURE debug_message(
740 p_message IN VARCHAR2
741 ) IS
742 L_DEBUG NUMBER := 1;
743 BEGIN
744 IF ( L_DEBUG = 1 ) THEN
745 fnd_file.put_line (fnd_file.log, p_message);
746 --dbms_output.put_line (p_message);
747 okl_debug_pub.logmessage(p_message);
748 END IF;
749
750 RETURN;
751 END debug_message;
752
753 ------------------------------------------------------------------------------
754 -- PROCEDURE Report_Error
755 -- It is a generalized routine to display error on Concurrent Manager Log file
756 -- Calls:
757 -- okl_api package
758 -- fnd_msg_pub package
759 -- Called by:
760 -- process_record
761 -- check_input_record
762 -- process_input_record
763 ------------------------------------------------------------------------------
764
765 PROCEDURE Report_Error(
766 x_msg_count OUT NOCOPY NUMBER,
767 x_msg_data OUT NOCOPY VARCHAR2
768 ) IS
769
770 x_msg_index_out NUMBER;
771 x_msg_out VARCHAR2(2000);
772
773 BEGIN
774
775 okl_api.end_activity(
776 X_msg_count => x_msg_count,
777 X_msg_data => x_msg_data
778 );
779
780 FOR i in 1..x_msg_count
781 LOOP
782 FND_MSG_PUB.GET(
783 p_msg_index => i,
784 p_encoded => FND_API.G_FALSE,
785 p_data => x_msg_data,
786 p_msg_index_out => x_msg_index_out
787 );
788
789 fnd_file.put_line(fnd_file.output, 'Error '||to_char(i)||': '||x_msg_data);
790 --dbms_output.put_line('Error '||to_char(i)||': '||x_msg_data);
791 debug_message('Error '||to_char(i)||': '||x_msg_data);
792
793 END LOOP;
794 return;
795 EXCEPTION
796 WHEN OTHERS THEN
797 NULL;
798 END Report_Error;
799
800 PROCEDURE write_to_log(
801 p_message IN VARCHAR2
802 ) IS
803 BEGIN
804 --dbms_output.put_line(p_message);
805 debug_message(p_message);
806 fnd_file.put_line(fnd_file.output, p_message);
807 END write_to_log;
808
809 ------------------------------------------------------------------------------
810 -- PROCEDURE get_can_bto
811 -- It returns CAN and BTO from OKC_K_HEADERS - after migration
812 -- Calls:
813 -- Called by:
814 ------------------------------------------------------------------------------
815
816 PROCEDURE get_can_bto(
817 x_return_status OUT NOCOPY VARCHAR2,
818 p_chr_id IN OKC_K_HEADERS_B.ID%TYPE,
819 x_bto_id OUT NOCOPY OKC_K_HEADERS_B.BILL_TO_SITE_USE_ID%TYPE,
820 x_can_id OUT NOCOPY OKC_K_HEADERS_B.CUST_ACCT_ID%TYPE
821 ) IS
822
823 l_proc_name VARCHAR2(35) := 'GET_CAN_BTO';
824
825 CURSOR can_bto_csr (p_chr_id OKC_K_HEADERS_B.ID%TYPE) IS
826 SELECT bill_to_site_use_id,
827 cust_acct_id
828 FROM okc_k_headers_v
829 WHERE id = p_chr_id;
830
831 BEGIN
832 x_return_status := OKL_API.G_RET_STS_SUCCESS;
833 OPEN can_bto_csr (p_chr_id);
834 FETCH can_bto_csr INTO x_bto_id,
835 x_can_id;
836 IF can_bto_csr%NOTFOUND THEN
837 x_return_status := OKL_API.G_RET_STS_ERROR;
838 END IF;
839 CLOSE can_bto_csr;
840
841 END get_can_bto;
842
843 ------------------------------------------------------------------------------
844 -- PROCEDURE get_canonical_date
845 -- It changes date input to canonical_date format as specified in FND_DATE
846 -- routine. Only required for date columns which are defined as rule segments
847 -- Calls:
848 -- Called by:
849 ------------------------------------------------------------------------------
850 FUNCTION get_canonical_date(
851 p_from_date IN DATE
852 ) RETURN VARCHAR2 IS
853 l_canonical_date VARCHAR2(25);
854
855 BEGIN
856
857 l_canonical_date := NULL;
858
859 SELECT TO_CHAR(p_from_date ,fnd_date.canonical_mask)
860 INTO l_canonical_date
861 FROM dual;
862
863 RETURN l_canonical_date;
864
865 EXCEPTION
866 WHEN OTHERS THEN
867 RETURN NULL;
868 END get_canonical_date;
869
870 ------------------------------------------------------------------------------
871 -- PROCEDURE Process_Record
872 -- It Validates Input record and Load record after SUCCESSFUL validation
873 -- Calls:
874 -- Check_Inout_Record
875 -- Load_Input_Record
876 -- Report Error
877 -- Called by:
878 -- Starting point
879 ------------------------------------------------------------------------------
880 PROCEDURE Process_Record (
881 errbuf OUT NOCOPY VARCHAR2,
882 retcode OUT NOCOPY VARCHAR2,
883 p_batch_number IN VARCHAR2,
884 p_start_date_from IN VARCHAR2,
885 p_start_date_to IN VARCHAR2,
886 p_contract_number IN VARCHAR2,
887 p_customer_number IN VARCHAR2,
888 p_instance_number IN VARCHAR2 DEFAULT 'NONE'
889 ) IS
890
891
892 X_Progress VARCHAR2(3) := NULL;
893 l_proc_name CONSTANT VARCHAR2(30) := 'PROCESS_RECORD';
894 X_msg_count NUMBER;
895 X_msg_data VARCHAR2(2000);
896 X_return_status VARCHAR2(200);
897 X_total_checked NUMBER := 0;
898 x_total_loaded NUMBER := 0;
899 param_error EXCEPTION;
900 BEGIN
901
902 X_Progress := '010';
903 X_return_status := OKL_API.G_RET_STS_SUCCESS;
904 g_instance_number := nvl(p_instance_number, 'NONE');
905
906 --fnd_file.put_line(fnd_file.output, 'OKL Contract Open Interface Report');
907 --fnd_file.put_line(fnd_file.output, '==================================');
908 write_to_log('OKL Contract Open Interface Report');
909 write_to_log('==================================');
910
911 write_to_log('***** Parameter values *****');
912 write_to_log('Batch Number : '||NVL(p_batch_number,'NULL'));
913 write_to_log('Contract Start Date From: '||NVL(p_start_date_from,'NULL'));
914 write_to_log('Contract Start Date To : '||NVL(p_start_date_to,'NULL'));
915 write_to_log('Contract Number : '||NVL(p_contract_number,'NULL'));
916 write_to_log('Customer Number : '||NVL(p_customer_number,'NULL'));
917 write_to_log('Instance Number : '||NVL(p_instance_number,'NULL'));
918 write_to_log('==================================');
919
920 IF (p_batch_number IS NULL AND
921 p_start_date_from IS NULL AND
922 p_start_date_to IS NULL AND
923 p_contract_number IS NULL AND
924 p_customer_number IS NULL ) THEN -- All Null
925
926 okl_api.set_message(
927 G_APP_NAME,
928 G_NULL_PARAMETER
929 );
930 RAISE param_error;
931 ELSIF
932 (p_batch_number IS NOT NULL AND
933 (p_start_date_from IS NOT NULL OR
934 p_start_date_to IS NOT NULL OR
935 p_contract_number IS NOT NULL OR
936 p_customer_number IS NOT NULL)) THEN -- Provide Batch Number only
937
938 okl_api.set_message(
939 G_APP_NAME,
940 G_INVALID_PARAMETER,
941 'PARAM_NAME',
942 'BATCH_NUMBER'
943 );
944 RAISE param_error;
945 ELSIF
946 (p_customer_number IS NOT NULL
947 AND
948 p_start_date_from IS NULL
949 AND
950 p_start_date_to IS NULL
951 ) THEN
952 okl_api.set_message(
953 G_APP_NAME,
954 G_INVALID_PARAMETER,
955 'PARAM_NAME',
956 'Customer Number And Start Date From To'
957 );
958 RAISE param_error;
959 END IF;
960
961 /* Bug 4350579 - no need to run check_input_record
962 * Validations are moved to load procedure
963 *
964 *
965 * check_input_record(
966 * p_init_msg_list => OKL_API.G_TRUE,
967 * x_return_status => X_return_status,
968 * x_msg_count => X_msg_count,
969 * x_msg_data => X_msg_data,
970 * p_batch_number => p_batch_number,
971 * p_start_date_from => FND_DATE.CANONICAL_TO_DATE(p_start_date_from),
972 * p_start_date_to => FND_DATE.CANONICAL_TO_DATE(p_start_date_to),
973 * p_contract_number => p_contract_number,
974 * p_customer_number => p_customer_number,
975 * x_total_checked => x_total_checked
976 * );
977 *
978 * okl_open_interface_pvt.report_error (
979 * x_msg_count => x_msg_count,
980 * x_msg_data => x_msg_data
981 * );
982 *
983 -- Check if Validation is SUCCESSFUL or not
984 --fnd_file.put_line(fnd_file.output, '==================================');
985 --fnd_file.put_line(fnd_file.output, 'Total Contract Checked for loading: '||TO_CHAR(nvl(x_total_checked,0)));
986 --fnd_file.put_line(fnd_file.output, '==================================');
987
988 * write_to_log('==================================');
989 * write_to_log('Total Contract Checked for loading: '||TO_CHAR(nvl(x_total_checked,0)));
990 * write_to_log('==================================');
991 * Bug 4350579
992 */
993 Load_Input_Record(
994 p_init_msg_list => OKL_API.G_TRUE,
995 x_return_status => X_return_status,
996 x_msg_count => X_msg_count,
997 x_msg_data => X_msg_data,
998 p_batch_number => p_batch_number,
999 p_start_date_from => FND_DATE.CANONICAL_TO_DATE(p_start_date_from),
1000 p_start_date_to => FND_DATE.CANONICAL_TO_DATE(p_start_date_to),
1001 p_contract_number => p_contract_number,
1002 p_customer_number => p_customer_number,
1003 x_total_loaded => x_total_loaded
1004 );
1005
1006 write_to_log('==================================');
1007 write_to_log('Total Contract loaded: '||TO_CHAR(nvl(x_total_loaded,0)));
1008 write_to_log('==================================');
1009
1010 RETURN;
1011
1012 EXCEPTION
1013 WHEN param_error THEN
1014 okl_api.end_activity(
1015 X_msg_count => X_msg_count,
1016 X_msg_data => X_msg_data
1017 );
1018
1019 report_error(
1020 x_msg_count => X_msg_count,
1021 x_msg_data => X_msg_data
1022 );
1023
1024 END Process_Record;
1025
1026 ------------------------------------------------------------------------------
1027 -- PROCEDURE Update_Interface_Status
1028 -- It Changes Status to Interface Table
1029 -- Calls:
1030 -- None
1031 -- Called By:
1032 -- check_input_record
1033 -- load_input_record
1034 ------------------------------------------------------------------------------
1035 PROCEDURE Update_Interface_Status (p_contract_number IN okl_header_interface.contract_number_old%TYPE,
1036 p_new_contract_number IN okl_header_interface.contract_number%TYPE,
1037 p_status IN VARCHAR2,
1038 x_return_status OUT NOCOPY VARCHAR2 ) IS
1039
1040 x_proc_name VARCHAR2(35) := 'UPDATE_INTERFACE_STATUS';
1041 update_failed EXCEPTION;
1042 BEGIN
1043
1044 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1045
1046 UPDATE okl_header_interface
1047 SET status = p_status,
1048 contract_number = p_new_contract_number,
1049 scheduled_worker_id = decode(p_status, 'ERROR', null, scheduled_worker_id),
1050 date_created_in_okl = decode(p_status,'INTERFACED',SYSDATE,
1051 'FINAL', SYSDATE, NULL) -- update date in case of Successful loading
1052 WHERE contract_number_old = p_contract_number;
1053
1054 IF SQL%NOTFOUND THEN
1055 RAISE update_failed;
1056 END IF;
1057
1058 EXCEPTION
1059 WHEN update_failed THEN
1060 okl_api.set_message(
1061 G_APP_NAME,
1062 G_UNEXPECTED_ERROR,
1063 'OKL_SQLCODE',
1064 SQLCODE,
1065 'OKL_SQLERRM',
1066 SQLERRM || ': '||G_PKG_NAME||'.'||x_proc_name
1067 );
1068 x_return_status := OKL_API.G_RET_STS_ERROR;
1069
1070 END Update_Interface_Status;
1071
1072 ------------------------------------------------------------------------------
1073 -- PROCEDURE get_template
1074 -- It returns Template Contract information identified by p_template_number
1075 -- Calls:
1076 -- None
1077 -- Called By:
1078 ------------------------------------------------------------------------------
1079 FUNCTION get_template (
1080 x_return_status OUT NOCOPY VARCHAR2,
1081 x_msg_count OUT NOCOPY NUMBER,
1082 x_msg_data OUT NOCOPY VARCHAR2,
1083 p_template_number IN VARCHAR2
1084 )
1085 RETURN template_h_rec_TYPE IS
1086
1087 CURSOR t_header_csr (p_template VARCHAR2) IS
1088 SELECT
1089 ID
1090 ,OBJECT_VERSION_NUMBER
1091 ,SFWT_FLAG
1092 ,CHR_ID_RESPONSE
1093 ,CHR_ID_AWARD
1094 ,CHR_ID_RENEWED
1095 ,INV_ORGANIZATION_ID
1096 ,STS_CODE
1097 ,QCL_ID
1098 ,SCS_CODE
1099 ,CONTRACT_NUMBER
1100 ,CURRENCY_CODE
1101 ,CONTRACT_NUMBER_MODIFIER
1102 ,ARCHIVED_YN
1103 ,DELETED_YN
1104 ,CUST_PO_NUMBER_REQ_YN
1105 ,PRE_PAY_REQ_YN
1106 ,CUST_PO_NUMBER
1107 ,SHORT_DESCRIPTION
1108 ,COMMENTS
1109 ,DESCRIPTION
1110 ,DPAS_RATING
1111 ,COGNOMEN
1112 ,TEMPLATE_YN
1113 ,TEMPLATE_USED
1114 ,DATE_APPROVED
1115 ,DATETIME_CANCELLED
1116 ,AUTO_RENEW_DAYS
1117 ,DATE_ISSUED
1118 ,DATETIME_RESPONDED
1119 ,NON_RESPONSE_REASON
1120 ,NON_RESPONSE_EXPLAIN
1121 ,RFP_TYPE
1122 ,CHR_TYPE
1123 ,KEEP_ON_MAIL_LIST
1124 ,SET_ASIDE_REASON
1125 ,SET_ASIDE_PERCENT
1126 ,RESPONSE_COPIES_REQ
1127 ,DATE_CLOSE_PROJECTED
1128 ,DATETIME_PROPOSED
1129 ,DATE_SIGNED
1130 ,DATE_TERMINATED
1131 ,DATE_RENEWED
1132 ,TRN_CODE
1133 ,START_DATE
1134 ,END_DATE
1135 ,AUTHORING_ORG_ID
1136 ,BUY_OR_SELL
1137 ,ISSUE_OR_RECEIVE
1138 ,ESTIMATED_AMOUNT
1139 ,CHR_ID_RENEWED_TO
1140 ,ESTIMATED_AMOUNT_RENEWED
1141 ,CURRENCY_CODE_RENEWED
1142 ,USER_ACCESS_LEVEL
1143 ,UPG_ORIG_SYSTEM_REF
1144 ,UPG_ORIG_SYSTEM_REF_ID
1145 ,APPLICATION_ID
1146 ,RESOLVED_UNTIL
1147 ,ATTRIBUTE_CATEGORY
1148 ,ATTRIBUTE1
1149 ,ATTRIBUTE2
1150 ,ATTRIBUTE3
1151 ,ATTRIBUTE4
1152 ,ATTRIBUTE5
1153 ,ATTRIBUTE6
1154 ,ATTRIBUTE7
1155 ,ATTRIBUTE8
1156 ,ATTRIBUTE9
1157 ,ATTRIBUTE10
1158 ,ATTRIBUTE11
1159 ,ATTRIBUTE12
1160 ,ATTRIBUTE13
1161 ,ATTRIBUTE14
1162 ,ATTRIBUTE15
1163 ,CREATED_BY
1164 ,CREATION_DATE
1165 ,LAST_UPDATED_BY
1166 ,LAST_UPDATE_DATE
1167 ,LAST_UPDATE_LOGIN
1168 ,ORIG_SYSTEM_SOURCE_CODE
1169 ,ORIG_SYSTEM_ID1
1170 ,ORIG_SYSTEM_REFERENCE1
1171 ,KHR_ROW_ID
1172 ,KHR_OBJECT_VERSION_NUMBER
1173 ,ISG_ID
1174 ,KHR_ID
1175 ,PDT_ID
1176 ,AMD_CODE
1177 ,DATE_FIRST_ACTIVITY
1178 ,GENERATE_ACCRUAL_YN
1179 ,GENERATE_ACCRUAL_OVERRIDE_YN
1180 ,DATE_REFINANCED
1181 ,CREDIT_ACT_YN
1182 ,TERM_DURATION
1183 ,CONVERTED_ACCOUNT_YN
1184 ,DATE_CONVERSION_EFFECTIVE
1185 ,SYNDICATABLE_YN
1186 ,SALESTYPE_YN
1187 ,DATE_DEAL_TRANSFERRED
1188 ,DATETIME_PROPOSAL_EFFECTIVE
1189 ,DATETIME_PROPOSAL_INEFFECTIVE
1190 ,DATE_PROPOSAL_ACCEPTED
1191 ,KHR_ATTRIBUTE_CATEGORY
1192 ,KHR_ATTRIBUTE1
1193 ,KHR_ATTRIBUTE2
1194 ,KHR_ATTRIBUTE3
1195 ,KHR_ATTRIBUTE4
1196 ,KHR_ATTRIBUTE5
1197 ,KHR_ATTRIBUTE6
1198 ,KHR_ATTRIBUTE7
1199 ,KHR_ATTRIBUTE8
1200 ,KHR_ATTRIBUTE9
1201 ,KHR_ATTRIBUTE10
1202 ,KHR_ATTRIBUTE11
1203 ,KHR_ATTRIBUTE12
1204 ,KHR_ATTRIBUTE13
1205 ,KHR_ATTRIBUTE14
1206 ,KHR_ATTRIBUTE15
1207 ,KHR_CREATED_BY
1208 ,KHR_CREATON_DATE
1209 ,KHR_LAST_UPDATED_BY
1210 ,KHR_LAST_UPDATE_DATE
1211 ,KHR_LAST_UPDATE_LOGIN
1212 ,PRE_TAX_YIELD
1213 ,AFTER_TAX_YIELD
1214 ,IMPLICIT_INTEREST_RATE
1215 ,IMPLICIT_NON_IDC_INTEREST_RATE
1216 ,TARGET_PRE_TAX_YIELD
1217 ,TARGET_AFTER_TAX_YIELD
1218 ,TARGET_IMPLICIT_INTEREST_RATE
1219 ,TARGET_IMPLICIT_NONIDC_INTRATE
1220 ,DATE_LAST_INTERIM_INTEREST_CAL
1221 ,DEAL_TYPE
1222 ,PRE_TAX_IRR
1223 ,AFTER_TAX_IRR
1224 ,EXPECTED_DELIVERY_DATE
1225 ,ACCEPTED_DATE
1226 ,PREFUNDING_ELIGIBLE_YN
1227 ,REVOLVING_CREDIT_YN
1228 ,CURRENCY_CONVERSION_TYPE
1229 ,CURRENCY_CONVERSION_RATE
1230 ,CURRENCY_CONVERSION_DATE
1231 ,ASSIGNABLE_YN
1232 ,CUST_ACCT_ID
1233 ,BILL_TO_SITE_USE_ID
1234 FROM okl_k_headers_full_v
1235 WHERE contract_number = p_template
1236 AND template_yn = 'Y';
1237
1238 l_t_header_rec template_h_rec_type;
1239 template_failed EXCEPTION;
1240
1241 l_proc_name VARCHAR2(30) := 'GET_TEMPLATE';
1242 BEGIN
1243
1244 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1245
1246 OPEN t_header_csr (p_template_number);
1247 FETCH t_header_csr into l_t_header_rec;
1248 IF t_header_csr%NOTFOUND THEN
1249 okl_api.set_message(
1250 G_APP_NAME,
1251 G_INVALID_TEMPLATE,
1252 'TEMPLATE_NUMBER',
1253 p_template_number
1254 );
1255 RAISE template_failed;
1256 END IF;
1257 CLOSE t_header_csr;
1258
1259 RETURN l_t_header_rec;
1260
1261 EXCEPTION
1262 WHEN template_failed THEN
1263 IF t_header_csr%ISOPEN THEN
1264 CLOSE t_header_csr;
1265 END IF;
1266 x_return_status := OKL_API.G_RET_STS_ERROR;
1267 END get_template;
1268
1269
1270 --*********************** check Interface **************************************
1271
1272 ------------------------------------------------------------------------------
1273 -- PROCEDURE get_contract_rules
1274 -- It retrives rules associated with contract and returns error, if any
1275 -- Calls:
1276 -- None
1277 -- Called By:
1278 ------------------------------------------------------------------------------
1279 PROCEDURE get_contract_rules(
1280 x_return_status OUT NOCOPY VARCHAR2,
1281 x_msg_count OUT NOCOPY NUMBER,
1282 x_msg_data OUT NOCOPY VARCHAR2,
1283 p_chr_id IN OKC_K_HEADERS_V.ID%TYPE,
1284 p_cle_id IN OKC_K_LINES_V.ID%TYPE,
1285 p_rgd_code IN OKC_RULE_GROUPS_V.RGD_CODE%TYPE,
1286 p_rule_code IN OKC_RULES_V.RULE_INFORMATION_CATEGORY%TYPE,
1287 x_rulv_tbl OUT NOCOPY rulv_tbl_type,
1288 x_rule_count OUT NOCOPY NUMBER
1289 ) IS
1290 l_proc_name VARCHAR2(35) := 'GET_CONTRACT_RULES';
1291
1292 CURSOR rulv_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
1293 p_cle_id OKC_K_LINES_V.ID%TYPE,
1294 p_rgd_code OKC_RULE_GROUPS_V.RGD_CODE%TYPE,
1295 p_rule_code OKC_RULES_V.RULE_INFORMATION_CATEGORY%TYPE) IS
1296 SELECT
1297 rule.ID,
1298 rule.OBJECT_VERSION_NUMBER,
1299 rule.SFWT_FLAG,
1300 rule.OBJECT1_ID1,
1301 rule.OBJECT2_ID1,
1302 rule.OBJECT3_ID1,
1303 rule.OBJECT1_ID2,
1304 rule.OBJECT2_ID2,
1305 rule.OBJECT3_ID2,
1306 rule.JTOT_OBJECT1_CODE,
1307 rule.JTOT_OBJECT2_CODE,
1308 rule.JTOT_OBJECT3_CODE,
1309 rule.DNZ_CHR_ID,
1310 rule.RGP_ID,
1311 rule.PRIORITY,
1312 rule.STD_TEMPLATE_YN,
1313 rule.COMMENTS,
1314 rule.WARN_YN,
1315 rule.ATTRIBUTE_CATEGORY,
1316 rule.ATTRIBUTE1,
1317 rule.ATTRIBUTE2,
1318 rule.ATTRIBUTE3,
1319 rule.ATTRIBUTE4,
1320 rule.ATTRIBUTE5,
1321 rule.ATTRIBUTE6,
1322 rule.ATTRIBUTE7,
1323 rule.ATTRIBUTE8,
1324 rule.ATTRIBUTE9,
1325 rule.ATTRIBUTE10,
1326 rule.ATTRIBUTE11,
1327 rule.ATTRIBUTE12,
1328 rule.ATTRIBUTE13,
1329 rule.ATTRIBUTE14,
1330 rule.ATTRIBUTE15,
1331 rule.CREATED_BY,
1332 rule.CREATION_DATE,
1333 rule.LAST_UPDATED_BY,
1334 rule.LAST_UPDATE_DATE,
1335 rule.LAST_UPDATE_LOGIN,
1336 --rule.TEXT,
1337 rule.RULE_INFORMATION_CATEGORY,
1338 rule.RULE_INFORMATION1,
1339 rule.RULE_INFORMATION2,
1340 rule.RULE_INFORMATION3,
1341 rule.RULE_INFORMATION4,
1342 rule.RULE_INFORMATION5,
1343 rule.RULE_INFORMATION6,
1344 rule.RULE_INFORMATION7,
1345 rule.RULE_INFORMATION8,
1346 rule.RULE_INFORMATION9,
1347 rule.RULE_INFORMATION10,
1348 rule.RULE_INFORMATION11,
1349 rule.RULE_INFORMATION12,
1350 rule.RULE_INFORMATION13,
1351 rule.RULE_INFORMATION14,
1352 rule.RULE_INFORMATION15,
1353 rule.TEMPLATE_YN,
1354 rule.ans_set_jtot_object_code,
1355 rule.ans_set_jtot_object_id1,
1356 rule.ans_set_jtot_object_id2,
1357 rule.DISPLAY_SEQUENCE
1358 FROM okc_rule_groups_v rg,
1359 okc_rules_v rule
1360 WHERE rg.id = rule.rgp_id
1361 AND rg.dnz_chr_id = p_chr_id
1362 AND ( ( p_cle_id IS NULL
1363 AND
1364 rg.cle_id IS NULL
1365 )
1366 OR
1367 rg.cle_id = p_cle_id
1368 )
1369 AND rg.rgd_code = p_rgd_code
1370 AND rule.rule_information_category = p_rule_code;
1371
1372 i NUMBER := 0;
1373 BEGIN
1374
1375 FOR rulv_rec IN rulv_csr (p_chr_id,
1376 p_cle_id,
1377 p_rgd_code,
1378 p_rule_code)
1379 LOOP
1380 i := rulv_csr%ROWCOUNT;
1381 --x_rulv_tbl(i) := rulv_rec;
1382 x_rulv_tbl(i).id := rulv_rec.id;
1383 x_rulv_tbl(i).rgp_id := rulv_rec.rgp_id;
1384 x_rulv_tbl(i).object1_id1 := rulv_rec.object1_id1;
1385 x_rulv_tbl(i).object2_id1 := rulv_rec.object2_id1;
1386 x_rulv_tbl(i).object3_id1 := rulv_rec.object3_id1;
1387 x_rulv_tbl(i).object1_id2 := rulv_rec.object1_id2;
1388 x_rulv_tbl(i).object2_id2 := rulv_rec.object2_id2;
1389 x_rulv_tbl(i).object3_id2 := rulv_rec.object3_id2;
1390 x_rulv_tbl(i).jtot_object1_code := rulv_rec.jtot_object1_code;
1391 x_rulv_tbl(i).jtot_object2_code := rulv_rec.jtot_object2_code;
1392 x_rulv_tbl(i).jtot_object3_code := rulv_rec.jtot_object3_code;
1393 x_rulv_tbl(i).dnz_chr_id := rulv_rec.dnz_chr_id;
1394 x_rulv_tbl(i).std_template_yn := rulv_rec.std_template_yn;
1395 x_rulv_tbl(i).warn_yn := rulv_rec.warn_yn;
1396 x_rulv_tbl(i).priority := rulv_rec.priority;
1397 x_rulv_tbl(i).object_version_number := rulv_rec.object_version_number;
1398 x_rulv_tbl(i).created_by := rulv_rec.created_by;
1399 x_rulv_tbl(i).creation_date := rulv_rec.creation_date;
1400 x_rulv_tbl(i).last_updated_by := rulv_rec.last_updated_by;
1401 x_rulv_tbl(i).last_update_date := rulv_rec.last_update_date;
1402 x_rulv_tbl(i).last_update_login := rulv_rec.last_update_login;
1403 x_rulv_tbl(i).attribute_category := rulv_rec.attribute_category;
1404 x_rulv_tbl(i).attribute1 := rulv_rec.attribute1;
1405 x_rulv_tbl(i).attribute2 := rulv_rec.attribute2;
1406 x_rulv_tbl(i).attribute3 := rulv_rec.attribute3;
1407 x_rulv_tbl(i).attribute4 := rulv_rec.attribute4;
1408 x_rulv_tbl(i).attribute5 := rulv_rec.attribute5;
1409 x_rulv_tbl(i).attribute6 := rulv_rec.attribute6;
1410 x_rulv_tbl(i).attribute7 := rulv_rec.attribute7;
1411 x_rulv_tbl(i).attribute8 := rulv_rec.attribute8;
1412 x_rulv_tbl(i).attribute9 := rulv_rec.attribute9;
1413 x_rulv_tbl(i).attribute10 := rulv_rec.attribute10;
1414 x_rulv_tbl(i).attribute11 := rulv_rec.attribute11;
1415 x_rulv_tbl(i).attribute12 := rulv_rec.attribute12;
1416 x_rulv_tbl(i).attribute13 := rulv_rec.attribute13;
1417 x_rulv_tbl(i).attribute14 := rulv_rec.attribute14;
1418 x_rulv_tbl(i).attribute15 := rulv_rec.attribute15;
1419 x_rulv_tbl(i).rule_information_category := rulv_rec.rule_information_category;
1420 x_rulv_tbl(i).rule_information1 := rulv_rec.rule_information1;
1421 x_rulv_tbl(i).rule_information2 := rulv_rec.rule_information2;
1422 x_rulv_tbl(i).rule_information3 := rulv_rec.rule_information3;
1423 x_rulv_tbl(i).rule_information4 := rulv_rec.rule_information4;
1424 x_rulv_tbl(i).rule_information5 := rulv_rec.rule_information5;
1425 x_rulv_tbl(i).rule_information6 := rulv_rec.rule_information6;
1426 x_rulv_tbl(i).rule_information7 := rulv_rec.rule_information7;
1427 x_rulv_tbl(i).rule_information8 := rulv_rec.rule_information8;
1428 x_rulv_tbl(i).rule_information9 := rulv_rec.rule_information9;
1429 x_rulv_tbl(i).rule_information10 := rulv_rec.rule_information10;
1430 x_rulv_tbl(i).rule_information11 := rulv_rec.rule_information11;
1431 x_rulv_tbl(i).rule_information12 := rulv_rec.rule_information12;
1432 x_rulv_tbl(i).rule_information13 := rulv_rec.rule_information13;
1433 x_rulv_tbl(i).rule_information14 := rulv_rec.rule_information14;
1434 x_rulv_tbl(i).rule_information15 := rulv_rec.rule_information15;
1435 x_rulv_tbl(i).template_yn := rulv_rec.template_yn;
1436 x_rulv_tbl(i).ans_set_jtot_object_code := rulv_rec.ans_set_jtot_object_code;
1437 x_rulv_tbl(i).ans_set_jtot_object_id1 := rulv_rec.ans_set_jtot_object_id1;
1438 x_rulv_tbl(i).ans_set_jtot_object_id2 := rulv_rec.ans_set_jtot_object_id2;
1439 x_rulv_tbl(i).display_sequence := rulv_rec.display_sequence;
1440 END LOOP;
1441
1442 x_rule_count := i;
1443
1444 RETURN;
1445
1446 END get_contract_rules;
1447
1448 ------------------------------------------------------------------------------
1449 -- PROCEDURE check_stream_type_code
1450 -- It validates payment method code and returns ID1 and
1451 -- stacks error, if any, for further processing
1452 -- Calls:
1453 -- None
1454 -- Called By:
1455 -- check_line_literal
1456 -- check_payment_record
1457 -- check_payment_rule_group
1458 ------------------------------------------------------------------------------
1459
1460 PROCEDURE check_stream_type_code(
1461 x_return_status OUT NOCOPY VARCHAR2,
1462 x_msg_count OUT NOCOPY NUMBER,
1463 x_msg_data OUT NOCOPY VARCHAR2,
1464 p_stream_type_code IN VARCHAR2,
1465 p_stream_purpose IN VARCHAR2,
1466 x_id1 OUT NOCOPY NUMBER,
1467 x_name OUT NOCOPY VARCHAR2
1468 ) IS
1469
1470 CURSOR strm_csr (p_strm_code VARCHAR2,
1471 p_strm_purpose VARCHAR2) IS
1472 SELECT ID1, NAME
1473 FROM okl_strmtyp_source_v
1474 WHERE status = 'A'
1475 AND name = p_strm_code
1476 AND stream_type_purpose = p_strm_purpose;
1477
1478 l_id1 NUMBER;
1479 l_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
1480 strm_failed EXCEPTION;
1481
1482 BEGIN
1483 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1484
1485 debug_message('p_stream_type_code=' || p_stream_type_code);
1486 debug_message('p_stream_purpose=' || p_stream_purpose);
1487 OPEN strm_csr(p_stream_type_code,
1488 p_stream_purpose);
1489 FETCH strm_csr INTO l_id1,l_name;
1490
1491 IF strm_csr%NOTFOUND THEN
1492 RAISE strm_failed;
1493 END IF;
1494
1495 x_id1 := l_id1;
1496 x_name := l_name;
1497 RETURN;
1498
1499 EXCEPTION
1500 WHEN strm_failed THEN
1501 x_return_status := OKL_API.G_RET_STS_ERROR;
1502
1503 END check_stream_type_code;
1504
1505 ------------------------------------------------------------------------------
1506 -- FUNCTION validate_currency_code
1507 -- It validates currency Code against database, FND_CURRENCIES
1508 -- Returns OKL_API.G_RET_STS_ERROR for unknown currency code
1509 -- OKL_API.G_RET_STS_SUCCESS for valid currency code
1510 -- Calls:
1511 -- None
1512 -- Called By:
1513 -- check_input_record
1514 ------------------------------------------------------------------------------
1515
1516 FUNCTION validate_currency_code (p_contract_number IN OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
1517 p_currency_code IN VARCHAR2)
1518 RETURN VARCHAR2 IS
1519
1520 CURSOR currency_csr(p_curr_code FND_CURRENCIES.CURRENCY_CODE%TYPE) IS
1521 SELECT currency_code
1522 FROM FND_CURRENCIES
1523 WHERE currency_code = p_curr_code
1524 AND NVL(end_date_active,SYSDATE) >= SYSDATE;
1525
1526 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
1527 l_currency_code FND_CURRENCIES.CURRENCY_CODE%TYPE;
1528
1529 BEGIN
1530
1531 IF (p_currency_code IS NULL) THEN
1532 okl_api.set_message(
1533 G_APP_NAME,
1534 G_MISSING_VALUE,
1535 'CONTRACT_NUM',
1536 p_contract_number,
1537 'COL_NAME',
1538 'CURRENCY_CODE'
1539 );
1540 x_return_status := OKL_API.G_RET_STS_ERROR;
1541
1542 return x_return_status;
1543 END IF;
1544
1545 OPEN currency_csr(p_currency_code);
1546 FETCH currency_csr INTO l_currency_code;
1547 IF currency_csr%NOTFOUND THEN
1548 okl_api.set_message(
1549 G_APP_NAME,
1550 G_INVALID_VALUE,
1551 'CONTRACT_NUM',
1552 p_contract_number,
1553 'COL_NAME',
1554 'CURRENCY_CODE',
1555 'COL_VALUE',
1556 p_currency_code
1557 );
1558 x_return_status := OKL_API.G_RET_STS_ERROR;
1559 END IF;
1560 CLOSE currency_csr;
1561
1562 return x_return_status;
1563
1564 END validate_currency_code;
1565
1566 ------------------------------------------------------------------------------
1567 -- FUNCTION check_header_literal
1568 -- It checks for literals in
1569 -- application_code, contract_category, converted_account,
1570 -- security_deposit_hold_flag, seurity_deposite_net_flag,
1571 -- review_invoice_flag, date_signed, date_approved, term,
1572 -- accepted_date, deal_type_code, bill_to_address, authoring_org_id,
1573 -- customer_account
1574 -- columns and reports error, if any
1575 -- Returns OKL_API.G_RET_STS_ERROR for any Error
1576 -- OKL_API.G_RET_STS_SUCCESS
1577 -- Calls:
1578 -- None
1579 -- Called By:
1580 -- check_input_record
1581 ------------------------------------------------------------------------------
1582
1583 FUNCTION check_header_literal (
1584 p_contract_number IN okl_header_interface.contract_number_old%type,
1585 p_template_id IN okc_k_headers_v.id%type,
1586 p_application_code IN okl_header_interface.application_code%type,
1587 p_contract_category IN okl_header_interface.contract_category%type,
1588 p_import_request_stage IN okl_header_interface.import_request_stage%type,
1589 p_converted_account IN okl_header_interface.converted_account%type,
1590 p_security_deposit_hold_flag IN okl_header_interface.security_deposit_hold_flag%type,
1591 p_security_deposit_net_flag IN okl_header_interface.security_deposit_net_flag%type,
1592 p_review_invoice_flag IN okl_header_interface.review_invoice_flag%type,
1593 p_date_signed IN okl_header_interface.date_signed%TYPE,
1594 p_start_date IN okl_header_interface.start_date%TYPE,
1595 p_date_approved IN okl_header_interface.date_approved%TYPE,
1596 p_term IN okl_header_interface.term%TYPE,
1597 p_accepted_date IN okl_header_interface.accepted_date%TYPE,
1598 p_deal_type_code IN okl_header_interface.deal_type_code%TYPE,
1599 p_bill_to_address IN okl_header_interface.bill_to_address%TYPE,
1600 p_bill_to_address_id IN okl_header_interface.bill_to_address_id%TYPE,
1601 p_authoring_org_id IN okl_header_interface.authoring_org_id%TYPE,
1602 p_inv_organization_id IN okl_header_interface.inventory_organization_id%TYPE,
1603 p_customer_account_number IN okl_header_interface.customer_account_number%TYPE,
1604 p_customer_account_id IN okl_header_interface.customer_account_id%TYPE,
1605 p_eot_purchase_opt_type IN okl_header_interface.eot_purchase_opt_type%TYPE,
1606 p_expected_delivery_date IN okl_header_interface.expected_delivery_date%TYPE,
1607 p_currency_code IN okl_header_interface.currency_code%TYPE
1608 )
1609 RETURN VARCHAR2 IS
1610
1611 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
1612 l_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
1613
1614 l_rulv_tbl rulv_tbl_type;
1615 l_rule_count NUMBER;
1616 x_msg_count NUMBER;
1617 x_msg_data VARCHAR2(2000);
1618
1619 l_cust_acct_present VARCHAR2(1) := 'N';
1620 l_bto_present VARCHAR2(1) := 'N';
1621
1622 l_bill_to_site_use_id OKC_K_HEADERS_B.BILL_TO_SITE_USE_ID%TYPE;
1623 l_cust_acct_id OKC_K_HEADERS_B.CUST_ACCT_ID%TYPE;
1624 l_proc_name VARCHAR2(35) := 'check_header_literal';
1625
1626 BEGIN
1627
1628 debug_message(l_proc_name);
1629
1630 IF (UPPER(p_import_request_stage) NOT IN ( 'NEW','PASSED','COMPLETE','APPROVED','BOOKED' )) THEN
1631 okl_api.set_message(
1632 G_APP_NAME,
1633 G_LITERAL_MISMATCH,
1634 'COL_NAME',
1635 'IMPORT_REQUEST_STAGE',
1636 'COL_VALUE',
1637 p_import_request_stage
1638 );
1639 x_return_status := OKL_API.G_RET_STS_ERROR;
1640 END IF;
1641
1642 IF (p_import_request_stage <> 'NEW'
1643 AND
1644 p_date_signed IS NULL ) THEN
1645 okl_api.set_message(
1646 G_APP_NAME,
1647 G_MISSING_VALUE_FOR_STAGE,
1648 'CONTRACT_NUM',
1649 p_contract_number,
1650 'COL_NAME',
1651 'DATE_SIGNED',
1652 'STAGE',
1653 p_import_request_stage
1654 );
1655 x_return_status := OKL_API.G_RET_STS_ERROR;
1656 END IF;
1657
1658 IF (p_import_request_stage <> 'NEW'
1659 AND
1660 p_date_signed >= NVL(p_start_date,SYSDATE) ) THEN
1661 okl_api.set_message(
1662 G_APP_NAME,
1663 G_DATESIGNED_LT_START
1664 );
1665 x_return_status := OKL_API.G_RET_STS_ERROR;
1666 END IF;
1667
1668 IF (p_import_request_stage = 'BOOKED'
1669 AND
1670 p_date_approved IS NULL) THEN
1671 okl_api.set_message(
1672 G_APP_NAME,
1673 G_MISSING_VALUE_FOR_STAGE,
1674 'CONTRACT_NUM',
1675 p_contract_number,
1676 'COL_NAME',
1677 'DATE_APPROVED',
1678 'STAGE',
1679 p_import_request_stage
1680 );
1681 x_return_status := OKL_API.G_RET_STS_ERROR;
1682 END IF;
1683
1684 IF (p_import_request_stage <> 'NEW'
1685 AND
1686 p_term IS NULL ) THEN
1687 okl_api.set_message(
1688 G_APP_NAME,
1689 G_MISSING_VALUE_FOR_STAGE,
1690 'CONTRACT_NUM',
1691 p_contract_number,
1692 'COL_NAME',
1693 'TERM',
1694 'STAGE',
1695 p_import_request_stage
1696 );
1697 x_return_status := OKL_API.G_RET_STS_ERROR;
1698 END IF;
1699
1700 IF (p_authoring_org_id IS NULL) THEN
1701 okl_api.set_message(
1702 G_APP_NAME,
1703 G_MISSING_VALUE,
1704 'CONTRACT_NUM',
1705 p_contract_number,
1706 'COL_NAME',
1707 'AUTHORING_ORG_ID'
1708 );
1709 x_return_status := OKL_API.G_RET_STS_ERROR;
1710
1711 END IF;
1712
1713 IF (p_inv_organization_id IS NULL) THEN
1714 okl_api.set_message(
1715 G_APP_NAME,
1716 G_MISSING_VALUE,
1717 'CONTRACT_NUM',
1718 p_contract_number,
1719 'COL_NAME',
1720 'INV_ORGANIZATION_ID'
1721 );
1722 x_return_status := OKL_API.G_RET_STS_ERROR;
1723
1724 END IF;
1725
1726 IF (UPPER(p_import_request_stage) <> 'NEW'
1727 AND
1728 p_expected_delivery_date IS NULL) THEN
1729 okl_api.set_message(
1730 G_APP_NAME,
1731 G_MISSING_VALUE_FOR_STAGE,
1732 'CONTRACT_NUM',
1733 p_contract_number,
1734 'COL_NAME',
1735 'EXPECTED_DELIVERY_DATE',
1736 'STAGE',
1737 p_import_request_stage
1738 );
1739 x_return_status := OKL_API.G_RET_STS_ERROR;
1740 END IF;
1741
1742
1743 l_return_status := validate_currency_code(p_contract_number => p_contract_number,
1744 p_currency_code => p_currency_code);
1745
1746 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1747 x_return_status := l_return_status;
1748 END IF;
1749
1750 return x_return_status;
1751
1752 END check_header_literal;
1753
1754
1755 ------------------------------------------------------------------------------
1756 -- PROCEDURE check_for_release_asset
1757 -- This procedure checks to see whether the asset is released or not.
1758 -- Calls:
1759 -- Called By:
1760 -- load_input_record
1761 ------------------------------------------------------------------------------
1762 PROCEDURE check_for_release_asset(
1763 x_return_status OUT NOCOPY VARCHAR2,
1764 x_msg_count OUT NOCOPY NUMBER,
1765 x_msg_data OUT NOCOPY VARCHAR2,
1766 p_asset_number IN VARCHAR2,
1767 p_line_number IN NUMBER,
1768 p_org_id IN NUMBER,
1769 x_release_asset OUT NOCOPY VARCHAR2,
1770 x_asset_id OUT NOCOPY OKL_LA_RELEASE_ASSETS_UV.ASSET_ID%TYPE
1771 ) IS
1772
1773 CURSOR release_csr (p_asset_number VARCHAR2,
1774 p_org_id NUMBER) IS
1775 SELECT asset_id
1776 FROM OKL_LA_RELEASE_ASSETS_UV
1777 WHERE asset_number = p_asset_number
1778 AND organization_id = p_org_id;
1779
1780 l_proc_name VARCHAR2(35) := 'CHECK_FOR_RELEASE_ASSET';
1781 l_release_yn VARCHAR2(1) := 'N';
1782 BEGIN
1783
1784 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1785 debug_message(l_proc_name);
1786
1787 x_asset_id := NULL;
1788 l_release_yn := 'N';
1789 OPEN release_csr (p_asset_number,
1790 p_org_id);
1791 FETCH release_csr INTO x_asset_id;
1792 IF release_csr%NOTFOUND THEN
1793 l_release_yn := 'N';
1794 ELSE
1795 l_release_yn := 'Y';
1796 END IF;
1797 CLOSE release_csr;
1798
1799 debug_message('=====> Asset '||p_asset_number||'/'||p_line_number||' : Released? : '||l_release_yn);
1800 debug_message('=====> Asset ID: '||x_asset_id);
1801
1802 x_release_asset := l_release_yn;
1803
1804 EXCEPTION
1805 WHEN OTHERS THEN
1806 okl_api.set_message(
1807 G_APP_NAME,
1808 G_UNEXPECTED_ERROR,
1809 'OKL_SQLCODE',
1810 SQLCODE,
1811 'OKL_SQLERRM',
1812 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
1813 );
1814 x_return_status := OKL_API.G_RET_STS_ERROR;
1815
1816 END check_for_release_asset;
1817 ------------------------------------------------------------------------------
1818 -- PROCEDURE get_release_asset_flag
1819 -- This procedure checks to see whether the contract header includes release assets.
1820 -- If Asset lines include a Release Asset, the function returns a value of 'Y'
1821 -- If Asset lines does not include Releases Assets, the function returns a value of 'N'
1822 -- If Asset lines includes mixed Assets, the function reports error
1823 -- Calls:
1824 -- Called By:
1825 -- load_input_record
1826 ------------------------------------------------------------------------------
1827 FUNCTION get_release_asset_flag(
1828 x_return_status OUT NOCOPY VARCHAR2,
1829 x_msg_count OUT NOCOPY NUMBER,
1830 x_msg_data OUT NOCOPY VARCHAR2,
1831 p_contract_number IN Varchar2,
1832 p_org_id IN NUMBER
1833 ) RETURN VARCHAR2 IS
1834
1835 CURSOR release_csr (p_asset_number VARCHAR2,
1836 p_org_id NUMBER) IS
1837 SELECT 'Y'
1838 FROM OKL_LINES_INTERFACE OLI
1839 WHERE oli.contract_number_old = p_contract_number
1840 AND EXISTS ( SELECT fa.asset_id
1841 FROM FA_ADDITIONS_B FA,
1842 OKL_ASSET_RETURNS_B OAR,
1843 OKC_K_ITEMS CIM_FA,
1844 OKC_K_LINES_B CLEB_FA,
1845 OKC_K_LINES_B CLEB_TL,
1846 OKC_K_HEADERS_B CHRB
1847 WHERE cleb_tl.chr_id = chrb.id
1848 AND chrb.inv_organization_id = p_org_id
1849 AND cleb_tl.lse_id = G_FIN_LINE_LTY_ID
1850 AND oar.kle_id = cleb_tl.id
1851 AND oar.ars_code = 'RE_LEASE'
1852 AND cleb_fa.cle_id = cleb_tl.id
1853 AND cleb_fa.lse_id = G_FA_LINE_LTY_ID
1854 AND cleb_fa.id = cim_fa.cle_id
1855 AND cleb_fa.dnz_chr_id =cim_fa.dnz_chr_id
1856 AND cim_fa.object1_id1 = fa.asset_id
1857 AND cim_fa.object1_id2 ='#'
1858 AND fa.asset_number = oli.asset_number
1859 AND not exists (SELECT '1'
1860 FROM okc_k_headers_b chrb_2,
1861 okc_statuses_b chr_sts,
1862 okc_k_lines_b cleb_2,
1863 okc_statuses_b cle_sts,
1864 okc_k_items cim_2
1865 WHERE chrb_2.id = cleb_2.dnz_chr_id
1866 AND chrb_2.scs_code in ('LEASE','LOAN')
1867 AND chrb_2.sts_code = chr_sts.code
1868 AND chr_sts.ste_code not in ('HOLD', 'EXPIRED', 'TERMINATED', 'CANCELLED')
1869 AND cleb_2.id = cim_2.cle_id
1870 AND cleb_2.dnz_chr_id = cim_2.dnz_chr_id
1871 AND cleb_2.sts_code = cle_sts.code
1872 AND cle_sts.ste_code not in ('HOLD', 'EXPIRED', 'TERMINATED', 'CANCELLED')
1873 AND cim_2.object1_id1 = to_char(fa.asset_id)
1874 AND cim_2.object1_id2 = '#' and cim_2.jtot_object1_code = 'OKX_ASSET'
1875 )
1876
1877 ) ;
1878
1879
1880 CURSOR unrelease_csr (p_asset_number VARCHAR2,
1881 p_org_id NUMBER) IS
1882
1883 SELECT 'Y'
1884 FROM OKL_LINES_INTERFACE OLI
1885 WHERE oli.contract_number_old = p_contract_number
1886 AND NOT EXISTS (SELECT fa.asset_id
1887 FROM FA_ADDITIONS_B FA,
1888 OKL_ASSET_RETURNS_B OAR,
1889 OKC_K_ITEMS CIM_FA,
1890 OKC_K_LINES_B CLEB_FA,
1891 OKC_K_LINES_B CLEB_TL,
1892 OKC_K_HEADERS_B CHRB
1893 WHERE cleb_tl.chr_id = chrb.id
1894 AND chrb.inv_organization_id = p_org_id
1895 AND cleb_tl.lse_id = G_FIN_LINE_LTY_ID
1896 AND oar.kle_id = cleb_tl.id
1897 AND oar.ars_code = 'RE_LEASE'
1898 AND cleb_fa.cle_id = cleb_tl.id
1899 AND cleb_fa.lse_id = G_FA_LINE_LTY_ID
1900 AND cleb_fa.id = cim_fa.cle_id
1901 AND cleb_fa.dnz_chr_id =cim_fa.dnz_chr_id
1902 AND cim_fa.object1_id1 = fa.asset_id
1903 AND cim_fa.object1_id2 ='#'
1904 AND fa.asset_number = oli.asset_number
1905 ) ;
1906
1907 l_proc_name VARCHAR2(35) := 'GET_RELEASE_ASSET_FLAG';
1908 l_released_assets_exist_yn VARCHAR2(1) := 'N';
1909 l_released_assets_not_exist_yn VARCHAR2(1) := 'N';
1910 l_release_yn VARCHAR2(1) ;
1911 BEGIN
1912
1913 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1914 debug_message(l_proc_name);
1915
1916 OPEN release_csr (p_contract_number,
1917 p_org_id);
1918
1919 FETCH release_csr INTO l_released_assets_exist_yn;
1920 IF release_csr%NOTFOUND THEN
1921 l_released_assets_exist_yn := 'N';
1922 ELSE
1923 l_released_assets_exist_yn := 'Y';
1924 END IF;
1925 CLOSE release_csr;
1926 debug_message ('l_released_assets_exist_yn :'|| l_released_assets_exist_yn);
1927
1928 OPEN unrelease_csr (p_contract_number,
1929 p_org_id);
1930
1931 FETCH unrelease_csr INTO l_released_assets_not_exist_yn;
1932 IF unrelease_csr%NOTFOUND THEN
1933 l_released_assets_not_exist_yn := 'N';
1934 ELSE
1935 l_released_assets_not_exist_yn := 'Y';
1936 END IF;
1937 CLOSE unrelease_csr;
1938 debug_message ('l_released_assets_not_exist_yn :'|| l_released_assets_not_exist_yn);
1939
1940
1941 IF ((l_released_assets_exist_yn = 'Y') AND (l_released_assets_not_exist_yn = 'N')) THEN
1942 l_release_yn := 'Y';
1943 ELSIF ((l_released_assets_exist_yn = 'N') AND (l_released_assets_not_exist_yn = 'Y')) THEN
1944 l_release_yn := 'N';
1945 -- 4539003
1946 ELSIF ((l_released_assets_exist_yn = 'N') AND (l_released_assets_not_exist_yn = 'N')) THEN
1947 l_release_yn := 'N';
1948 ELSE
1949 okl_api.set_message(
1950 G_APP_NAME,
1951 G_MIXED_ASSET,
1952 'CONTRACT_NUM',
1953 p_contract_number
1954 );
1955 x_return_status := OKL_API.G_RET_STS_ERROR;
1956 END IF;
1957 debug_message ('l_release_yn : '|| l_release_yn);
1958 RETURN l_release_yn;
1959
1960 EXCEPTION
1961 WHEN OTHERS THEN
1962 IF ( release_csr%ISOPEN ) THEN
1963 CLOSE release_csr;
1964 END IF;
1965 IF ( unrelease_csr%ISOPEN ) THEN
1966 CLOSE unrelease_csr;
1967 END IF;
1968 okl_api.set_message(
1969 G_APP_NAME,
1970 G_UNEXPECTED_ERROR,
1971 'OKL_SQLCODE',
1972 SQLCODE,
1973 'OKL_SQLERRM',
1974 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
1975 );
1976 x_return_status := OKL_API.G_RET_STS_ERROR;
1977
1978 END get_release_asset_flag;
1979 ------------------------------------------------------------------------------
1980 -- PROCEDURE check_line_literal
1981 -- It checks for literals in
1982 -- line_number, line_type, amount, inventory_item, install_site,
1983 -- asset_corporate_book, asset_category_segments, asset_location_segments,
1984 -- depreciation_method, life_in_months, fee_code, price_list_name,
1985 -- counter_group_name, usage_bill_frequency_code, base_reading_uom_code
1986 -- columns and reports error, if any
1987 -- Returns OKL_API.G_RET_STS_ERROR for any Error
1988 -- OKL_API.G_RET_STS_SUCCESS
1989 -- Calls:
1990 -- check_stream_type_code
1991 -- Called By:
1992 -- check_input_record
1993 ------------------------------------------------------------------------------
1994
1995 PROCEDURE check_line_literal (
1996 x_return_status OUT NOCOPY VARCHAR2,
1997 x_msg_count OUT NOCOPY NUMBER,
1998 x_msg_data OUT NOCOPY VARCHAR2,
1999 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
2000 p_import_request_stage IN okl_header_interface.import_request_stage%TYPE,
2001 p_product_id IN okl_header_interface.product_id%TYPE,
2002 p_product_name IN okl_header_interface.product_name%TYPE,
2003 p_line_number IN okl_lines_interface.line_number%TYPE,
2004 p_line_type IN okl_lines_interface.line_type%TYPE,
2005 p_amount IN okl_lines_interface.amount%TYPE,
2006 p_currency_code IN okl_lines_interface.currency_code%TYPE,
2007 p_asset_number IN okl_lines_interface.asset_number%TYPE,
2008 p_inventory_item_name IN okl_lines_interface.inventory_item_name%TYPE,
2009 p_inventory_item_id IN okl_lines_interface.inventory_item_id%TYPE,
2010 p_install_site_number IN okl_lines_interface.install_site_number%TYPE,
2011 p_install_site_id IN okl_lines_interface.install_site_id%TYPE,
2012 p_asset_corporate_book IN okl_lines_interface.asset_corporate_book%TYPE,
2013 p_asset_category_id IN okl_lines_interface.asset_category_id%TYPE,
2014 p_asset_category_segment1 IN okl_lines_interface.asset_category_segment1%TYPE,
2015 p_asset_category_segment2 IN okl_lines_interface.asset_category_segment2%TYPE,
2016 p_asset_category_segment3 IN okl_lines_interface.asset_category_segment3%TYPE,
2017 p_asset_category_segment4 IN okl_lines_interface.asset_category_segment4%TYPE,
2018 p_asset_category_segment5 IN okl_lines_interface.asset_category_segment5%TYPE,
2019 p_asset_category_segment6 IN okl_lines_interface.asset_category_segment6%TYPE,
2020 p_asset_category_segment7 IN okl_lines_interface.asset_category_segment7%TYPE,
2021 p_asset_location_id IN okl_lines_interface.asset_location_id%TYPE,
2022 p_asset_location_segment1 IN okl_lines_interface.asset_location_segment1%TYPE,
2023 p_asset_location_segment2 IN okl_lines_interface.asset_location_segment2%TYPE,
2024 p_asset_location_segment3 IN okl_lines_interface.asset_location_segment3%TYPE,
2025 p_asset_location_segment4 IN okl_lines_interface.asset_location_segment4%TYPE,
2026 p_asset_location_segment5 IN okl_lines_interface.asset_location_segment5%TYPE,
2027 p_asset_location_segment6 IN okl_lines_interface.asset_location_segment6%TYPE,
2028 p_asset_location_segment7 IN okl_lines_interface.asset_location_segment7%TYPE,
2029 p_depreciation_method_id IN okl_lines_interface.depreciation_method_id%TYPE,
2030 p_depreciation_method_code IN okl_lines_interface.depreciation_method_code%TYPE,
2031 p_life_in_months IN okl_lines_interface.life_in_months%TYPE,
2032 p_fee_code IN okl_lines_interface.fee_code%TYPE,
2033 p_stream_purpose IN okl_lines_interface.stream_purpose_code%TYPE,
2034 p_fee_type IN okl_lines_interface.fee_type%TYPE,
2035 p_price_list_name IN okl_lines_interface.price_list_name%TYPE,
2036 p_price_list_id IN okl_lines_interface.price_list_id%TYPE,
2037 p_counter_group_name IN okl_lines_interface.counter_group_name%TYPE,
2038 p_counter_group_id IN okl_lines_interface.counter_group_id%TYPE,
2039 p_usage_bill_frequency_code IN okl_lines_interface.usage_bill_frequency_code%TYPE,
2040 p_base_reading_uom_code IN okl_lines_interface.base_reading_uom_code%TYPE,
2041 p_usage_type_code IN okl_lines_interface.usage_type_code%TYPE,
2042 p_usage_period IN okl_lines_interface.usage_period%TYPE,
2043 p_usage_no_of_period IN okl_lines_interface.usage_no_of_period%TYPE,
2044 p_tax_cost IN okl_lines_interface.tax_cost%TYPE,
2045 p_tax_book IN okl_lines_interface.tax_book%TYPE,
2046 p_life_in_months_tax IN okl_lines_interface.life_in_months_tax%TYPE,
2047 p_deprn_method_tax IN okl_lines_interface.deprn_method_tax%TYPE,
2048 p_deprn_rate_tax IN okl_lines_interface.deprn_rate_tax%TYPE,
2049 p_in_service_date IN okl_lines_interface.in_service_date%TYPE,
2050 p_link_asset_amount IN okl_lines_interface.link_asset_amount%TYPE,
2051 p_inv_org_id IN okl_header_interface.inventory_organization_id%TYPE,
2052 p_term_quote_id IN okl_lines_interface.termination_quote_id%TYPE,
2053 p_term_quote_number IN okl_lines_interface.termination_quote_number%TYPE,
2054 p_fee_purpose_code IN okl_lines_interface.fee_purpose_code%TYPE
2055 ) IS
2056 -- 4475344
2057 /*
2058 CURSOR srv_supp_csr(p_contract_number OKL_PARTY_ROLES_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
2059 p_line_number OKL_PARTY_ROLES_INTERFACE.LINE_NUMBER%TYPE) IS
2060 SELECT service_vendor_id,
2061 service_vendor_name
2062 FROM okl_party_roles_interface
2063 WHERE contract_number_old = p_contract_number
2064 AND line_number = p_line_number;
2065 */
2066 CURSOR fnd_lookup_csr(p_lookup_code FND_LOOKUPS.LOOKUP_CODE%TYPE,
2067 p_lookup_type FND_LOOKUPS.LOOKUP_TYPE%TYPE) IS
2068 SELECT 'X'
2069 FROM FND_LOOKUPS
2070 WHERE lookup_code = p_lookup_code
2071 AND lookup_type = p_lookup_type;
2072
2073 l_supp_name OKL_PARTY_ROLES_INTERFACE.SERVICE_VENDOR_NAME%TYPE;
2074 l_supp_id OKL_PARTY_ROLES_INTERFACE.SERVICE_VENDOR_ID%TYPE;
2075
2076 x_id1 okl_strmtyp_source_v.id1%TYPE;
2077 x_asset_id OKL_LA_RELEASE_ASSETS_UV.ASSET_ID%TYPE;
2078 x_release_asset VARCHAR2(1) := 'N';
2079
2080 halt_validation EXCEPTION;
2081 l_return_status VARCHAR2(1);
2082
2083 l_proc_name VARCHAR2(35) := 'check_line_literal';
2084 l_fee_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
2085
2086 l_exists_yn VARCHAR2(1);
2087
2088 BEGIN
2089 debug_message(l_proc_name);
2090
2091 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2092 debug_message('Line type: '||p_line_type);
2093
2094 IF (p_line_type NOT IN ('ASSET','SERVICE', 'FEE', 'USAGE', 'ASSET_SUBSIDY', 'ASSET_ADDON' )) THEN
2095 okl_api.set_message(
2096 G_APP_NAME,
2097 G_INVALID_VALUE,
2098 'CONTRACT_NUM',
2099 p_contract_number||'/'||TO_CHAR(p_line_number),
2100 'COL_NAME',
2101 'LINE_TYPE',
2102 'COL_VALUE',
2103 p_line_type
2104 );
2105
2106 x_return_status := OKL_API.G_RET_STS_ERROR;
2107 RAISE halt_validation; -- major error, don't proceed with other validation
2108 END IF;
2109
2110 IF (p_line_type = 'ASSET'
2111 AND
2112 p_asset_number IS NULL) THEN
2113 okl_api.set_message(
2114 G_APP_NAME,
2115 G_MISSING_VALUE_FOR_LINE,
2116 'CONTRACT_NUM',
2117 p_contract_number||'/'||TO_CHAR(p_line_number),
2118 'COL_NAME',
2119 'ASSET NUMBER',
2120 'LINE',
2121 p_line_type
2122 );
2123
2124 x_return_status := OKL_API.G_RET_STS_ERROR;
2125 END IF;
2126 /* 4414408
2127 check_for_release_asset(
2128 x_return_status => l_return_status,
2129 x_msg_count => x_msg_count,
2130 x_msg_data => x_msg_data,
2131 p_asset_number => p_asset_number,
2132 p_line_number => p_line_number,
2133 p_org_id => p_inv_org_id,
2134 x_release_asset => x_release_asset,
2135 x_asset_id => x_asset_id
2136 );
2137
2138 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
2139 x_return_status := OKL_API.G_RET_STS_ERROR;
2140 END IF;
2141
2142 debug_message('------> Asset '||p_asset_number||': Released? :'||x_release_asset);
2143
2144 IF (p_line_type = 'ASSET'
2145 AND
2146 x_release_asset = 'N'
2147 AND
2148 p_tax_book IS NOT NULL
2149 AND
2150 p_asset_corporate_book IS NULL) THEN
2151 okl_api.set_message(
2152 G_APP_NAME,
2153 G_MISSING_VALUE_FOR_LINE,
2154 'CONTRACT_NUM',
2155 p_contract_number||'/'||TO_CHAR(p_line_number),
2156 'COL_NAME',
2157 'CORPORATE BOOK',
2158 'LINE',
2159 p_line_type
2160 );
2161 x_return_status := OKL_API.G_RET_STS_ERROR;
2162
2163 END IF;
2164 */
2165 IF (p_line_type = 'USAGE'
2166 AND
2167 p_asset_number IS NULL
2168 AND
2169 p_import_request_stage <> 'NEW') THEN
2170 okl_api.set_message(
2171 G_APP_NAME,
2172 G_MISSING_VALUE_STAGE_LINE,
2173 'CONTRACT_NUM',
2174 p_contract_number||'/'||TO_CHAR(p_line_number),
2175 'COL_NAME',
2176 'ASSET NUMBER',
2177 'STAGE',
2178 p_import_request_stage,
2179 'LINE',
2180 p_line_type
2181 );
2182
2183 x_return_status := OKL_API.G_RET_STS_ERROR;
2184 END IF;
2185
2186 IF (p_line_type IN ('SERVICE', 'FEE')
2187 AND
2188 p_amount IS NULL) THEN
2189 okl_api.set_message(
2190 G_APP_NAME,
2191 G_MISSING_VALUE_FOR_LINE,
2192 'CONTRACT_NUM',
2193 p_contract_number||'/'||TO_CHAR(p_line_number),
2194 'COL_NAME',
2195 'AMOUNT',
2196 'LINE',
2197 p_line_type
2198 );
2199
2200 x_return_status := OKL_API.G_RET_STS_ERROR;
2201 END IF;
2202
2203 /* 4414408
2204 IF (p_line_type = 'ASSET'
2205 AND
2206 x_release_asset = 'N'
2207 AND
2208 p_inventory_item_name IS NULL
2209 AND
2210 p_inventory_item_id IS NULL) THEN
2211 okl_api.set_message(
2212 G_APP_NAME,
2213 G_MISSING_VALUE_FOR_LINE,
2214 'CONTRACT_NUM',
2215 p_contract_number||'/'||TO_CHAR(p_line_number),
2216 'COL_NAME',
2217 'INVENTORY_ITEM_NAME OR INVENTORY_ITEM_ID',
2218 'LINE',
2219 p_line_type
2220 );
2221
2222 x_return_status := OKL_API.G_RET_STS_ERROR;
2223 END IF;
2224 */
2225 IF (p_line_type IN ('SERVICE','USAGE')
2226 AND
2227 p_inventory_item_name IS NULL
2228 AND
2229 p_inventory_item_id IS NULL) THEN
2230 okl_api.set_message(
2231 G_APP_NAME,
2232 G_MISSING_VALUE_FOR_LINE,
2233 'CONTRACT_NUM',
2234 p_contract_number||'/'||TO_CHAR(p_line_number),
2235 'COL_NAME',
2236 'INVENTORY_ITEM_NAME OR INVENTORY_ITEM_ID',
2237 'LINE',
2238 p_line_type
2239 );
2240
2241 x_return_status := OKL_API.G_RET_STS_ERROR;
2242 END IF;
2243
2244 /* 4414408
2245 IF (p_line_type = 'ASSET'
2246 AND
2247 x_release_asset = 'N'
2248 AND
2249 p_install_site_number IS NULL
2250 AND
2251 p_install_site_id IS NULL) THEN
2252 okl_api.set_message(
2253 G_APP_NAME,
2254 G_MISSING_VALUE_FOR_LINE,
2255 'CONTRACT_NUM',
2256 p_contract_number||'/'||TO_CHAR(p_line_number),
2257 'COL_NAME',
2258 'INSTALL_SITE_NUMBER OR INSTALL_SITE_ID',
2259 'LINE',
2260 p_line_type
2261 );
2262
2263 x_return_status := OKL_API.G_RET_STS_ERROR;
2264 END IF;
2265 */
2266 IF (p_line_type = 'FEE') THEN
2267
2268 IF (p_fee_code IS NULL) THEN
2269 okl_api.set_message(
2270 G_APP_NAME,
2271 G_MISSING_VALUE_FOR_LINE,
2272 'CONTRACT_NUM',
2273 p_contract_number||'/'||TO_CHAR(p_line_number),
2274 'COL_NAME',
2275 'FEE_CODE',
2276 'LINE',
2277 p_line_type
2278 );
2279
2280 x_return_status := OKL_API.G_RET_STS_ERROR;
2281
2282 ELSE
2283
2284 check_stream_type_code(
2285 x_return_status => l_return_status,
2286 x_msg_count => x_msg_count,
2287 x_msg_data => x_msg_data,
2288 p_stream_type_code => p_fee_code,
2289 p_stream_purpose => p_stream_purpose,
2290 x_id1 => x_id1,
2291 x_name => l_fee_name
2292 );
2293 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
2294 okl_api.set_message(
2295 G_APP_NAME,
2296 G_INVALID_VALUE,
2297 'CONTRACT_NUM',
2298 p_contract_number||'/'||TO_CHAR(p_line_number),
2299 'COL_NAME',
2300 'FEE_CODE, STREAM_PURPOSE_CODE',
2301 'COL_VALUE',
2302 p_fee_code||', '||p_stream_purpose
2303 );
2304 x_return_status := OKL_API.G_RET_STS_ERROR;
2305 END IF;
2306 END IF; --fee_code not null
2307
2308 IF (p_fee_type IS NULL) THEN
2309 okl_api.set_message(
2310 G_APP_NAME,
2311 G_MISSING_VALUE_FOR_LINE,
2312 'CONTRACT_NUM',
2313 p_contract_number||'/'||TO_CHAR(p_line_number),
2314 'COL_NAME',
2315 'FEE_TYPE',
2316 'LINE',
2317 p_line_type
2318 );
2319
2320 x_return_status := OKL_API.G_RET_STS_ERROR;
2321
2322 END IF; --Fee Type
2323
2324 IF (p_fee_type = 'ROLLOVER'
2325 AND
2326 ( p_term_quote_id IS NULL
2327 AND
2328 p_term_quote_number IS NULL)
2329 ) THEN
2330
2331 okl_api.set_message(
2332 G_APP_NAME,
2333 G_MISSING_VALUE_FOR_LINE,
2334 'CONTRACT_NUM',
2335 p_contract_number||'/'||p_line_number,
2336 'COL_NAME',
2337 'TERMINATION_QUOTE_ID OR TERMINATION_QUOTE_NUMBER',
2338 'LINE',
2339 p_line_type
2340 );
2341 x_return_status := OKL_API.G_RET_STS_ERROR;
2342 END IF;
2343
2344 IF (p_fee_purpose_code is NOT NULL) THEN
2345 OPEN fnd_lookup_csr (p_fee_purpose_code, 'OKL_FEE_PURPOSE');
2346 FETCH fnd_lookup_csr INTO l_exists_yn;
2347 IF (fnd_lookup_csr%NOTFOUND) THEN
2348 okl_api.set_message(
2349 G_APP_NAME,
2350 G_INVALID_VALUE,
2351 'CONTRACT_NUM',
2352 p_contract_number||'/'||TO_CHAR(p_line_number),
2353 'COL_NAME',
2354 'FEE_PURPOSE_CODE',
2355 'COL_VALUE',
2356 p_fee_purpose_code
2357 );
2358 x_return_status := OKL_API.G_RET_STS_ERROR;
2359 END IF;
2360 CLOSE fnd_lookup_csr;
2361 END IF;
2362
2363 END IF; -- fee line type
2364
2365 IF (p_line_type = 'USAGE'
2366 AND
2367 p_price_list_name IS NULL
2368 AND
2369 p_price_list_id IS NULL) THEN
2370 okl_api.set_message(
2371 G_APP_NAME,
2372 G_MISSING_VALUE_FOR_LINE,
2373 'CONTRACT_NUM',
2374 p_contract_number||'/'||TO_CHAR(p_line_number),
2375 'COL_NAME',
2376 'PRICE_LIST_NAME OR PRICE_LIST_ID',
2377 'LINE',
2378 p_line_type
2379 );
2380
2381 x_return_status := OKL_API.G_RET_STS_ERROR;
2382 END IF;
2383
2384 IF (p_line_type = 'USAGE'
2385 AND
2386 p_base_reading_uom_code IS NULL) THEN
2387 okl_api.set_message(
2388 G_APP_NAME,
2389 G_MISSING_VALUE_FOR_LINE,
2390 'CONTRACT_NUM',
2391 p_contract_number||'/'||TO_CHAR(p_line_number),
2392 'COL_NAME',
2393 'BASE_READING_UOM_CODE',
2394 'LINE',
2395 p_line_type
2396 );
2397
2398 x_return_status := OKL_API.G_RET_STS_ERROR;
2399 END IF;
2400
2401 IF (p_line_type = 'USAGE'
2402 AND
2403 p_usage_type_code IS NULL) THEN
2404 okl_api.set_message(
2405 G_APP_NAME,
2406 G_MISSING_VALUE_FOR_LINE,
2407 'CONTRACT_NUM',
2408 p_contract_number||'/'||TO_CHAR(p_line_number),
2409 'COL_NAME',
2410 'USAGE_TYPE',
2411 'LINE',
2412 p_line_type
2413 );
2414
2415 x_return_status := OKL_API.G_RET_STS_ERROR;
2416 END IF;
2417
2418 IF (p_line_type = 'USAGE'
2419 AND
2420 p_usage_period IS NULL) THEN
2421 okl_api.set_message(
2422 G_APP_NAME,
2423 G_MISSING_VALUE_FOR_LINE,
2424 'CONTRACT_NUM',
2425 p_contract_number||'/'||TO_CHAR(p_line_number),
2426 'COL_NAME',
2427 'USAGE_PERIOD',
2428 'LINE',
2429 p_line_type
2430 );
2431
2432 x_return_status := OKL_API.G_RET_STS_ERROR;
2433 END IF;
2434
2435 IF (p_line_type = 'USAGE'
2436 AND
2437 p_usage_no_of_period IS NULL) THEN
2438 okl_api.set_message(
2439 G_APP_NAME,
2440 G_MISSING_VALUE_FOR_LINE,
2441 'CONTRACT_NUM',
2442 p_contract_number||'/'||TO_CHAR(p_line_number),
2443 'COL_NAME',
2444 'USAGE_NO_OF_PERIOD',
2445 'LINE',
2446 p_line_type
2447 );
2448
2449 x_return_status := OKL_API.G_RET_STS_ERROR;
2450 END IF;
2451
2452 IF (p_line_type = 'SERVICE') THEN
2453 --
2454 -- Check for the presence of SERVICE VENDOR
2455 -- and link asset line amount
2456 --
2457 IF (p_link_asset_amount IS NULL
2458 AND
2459 p_asset_number IS NOT NULL) THEN
2460 okl_api.set_message(
2461 G_APP_NAME,
2462 G_MISSING_VALUE_FOR_LINE,
2463 'CONTRACT_NUM',
2464 p_contract_number||'/'||TO_CHAR(p_line_number),
2465 'COL_NAME',
2466 'LINK ASSET AMOUNT',
2467 'LINE',
2468 p_line_type
2469 );
2470 x_return_status := OKL_API.G_RET_STS_ERROR;
2471 END IF;
2472
2473 /* 4475344
2474 l_supp_name := NULL;
2475 l_supp_id := NULL;
2476 OPEN srv_supp_csr (p_contract_number,
2477 p_line_number);
2478 FETCH srv_supp_csr INTO l_supp_id,
2479 l_supp_name;
2480 CLOSE srv_supp_csr;
2481
2482 IF (l_supp_name IS NULL
2483 AND
2484 l_supp_id IS NULL) THEN
2485 okl_api.set_message(
2486 G_APP_NAME,
2487 G_MISSING_VALUE_FOR_LINE,
2488 'CONTRACT_NUM',
2489 p_contract_number||'/'||TO_CHAR(p_line_number),
2490 'COL_NAME',
2491 'SERVICE VENDOR',
2492 'LINE',
2493 p_line_type
2494 );
2495
2496 x_return_status := OKL_API.G_RET_STS_ERROR;
2497 END IF;
2498 */
2499 END IF; -- SERVICE line
2500
2501 debug_message('return status :'||x_return_status);
2502
2503 return;
2504
2505 EXCEPTION
2506 WHEN halt_validation THEN
2507 x_return_status := OKL_API.G_RET_STS_ERROR;
2508
2509 END check_line_literal;
2510
2511 ------------------------------------------------------------------------------
2512 -- FUNCTION validate_customer
2513 -- It validates customer against database, OKX_PARTIES_V
2514 -- Returns OKL_API.G_RET_STS_ERROR for unknown customer
2515 -- OKL_API.G_RET_STS_SUCCESS for existing customer
2516 -- Also outputs ID1 for corresponding Customer
2517 -- Calls:
2518 -- None
2519 -- Called By:
2520 -- check_input_record
2521 ------------------------------------------------------------------------------
2522
2523 FUNCTION validate_customer (p_contract_number IN OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
2524 p_customer_id IN OKX_PARTIES_V.ID1%TYPE,
2525 p_customer_number IN OKX_PARTIES_V.PARTY_NUMBER%TYPE,
2526 x_id1 OUT NOCOPY OKX_PARTIES_V.ID1%TYPE)
2527 RETURN VARCHAR2 IS
2528
2529 CURSOR customer_csr (p_customer_id OKX_PARTIES_V.ID1%TYPE,
2530 p_customer_number OKX_PARTIES_V.PARTY_NUMBER%TYPE) IS
2531 SELECT id1
2532 FROM okx_parties_v
2533 WHERE NVL(TRUNC(end_date_active), TRUNC(SYSDATE)) >= TRUNC(SYSDATE)
2534 AND ((id1 = p_customer_id
2535 AND p_customer_id IS NOT NULL)
2536 OR
2537 (party_number = p_customer_number
2538 AND
2539 p_customer_number IS NOT NULL));
2540
2541 BEGIN
2542
2543 OPEN customer_csr(p_customer_id,
2544 p_customer_number);
2545 FETCH customer_csr into x_id1;
2546 CLOSE customer_csr;
2547
2548 IF (x_id1 IS NULL) THEN
2549 okl_api.set_message(
2550 G_APP_NAME,
2551 G_INVALID_VALUE,
2552 'CONTRACT_NUM',
2553 p_contract_number,
2554 'COL_NAME',
2555 'CUSTOMER_ID, NUMBER',
2556 'COL_VALUE',
2557 p_customer_id||', '||p_customer_number
2558 );
2559 return OKL_API.G_RET_STS_ERROR; -- Customer Not found
2560 ELSE
2561 return OKL_API.G_RET_STS_SUCCESS;
2562 END IF;
2563
2564 END validate_customer;
2565
2566 ------------------------------------------------------------------------------
2567 -- FUNCTION check_contract_number
2568 -- It checks for duplicate contract number in OKL.
2569 -- Returns OKL_API.G_RET_STS_ERROR for duplicate and
2570 -- OKL_API.G_RET_STS_SUCCESS for New
2571 -- Calls:
2572 -- None
2573 -- Called By:
2574 -- check_input_record
2575 ------------------------------------------------------------------------------
2576
2577 FUNCTION check_contract_number (p_contract_number IN VARCHAR2)
2578 RETURN VARCHAR2 IS
2579
2580 CURSOR khdr_csr (p_ontract_number OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE) IS
2581 SELECT contract_number
2582 FROM okc_k_headers_v
2583 WHERE contract_number = p_contract_number;
2584
2585 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
2586 l_contract_number OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE;
2587
2588 BEGIN
2589
2590 OPEN khdr_csr(p_contract_number);
2591 FETCH khdr_csr INTO l_contract_number;
2592 IF khdr_csr%NOTFOUND THEN
2593 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2594 ELSE
2595 x_return_status := OKL_API.G_RET_STS_ERROR;
2596 END IF;
2597 CLOSE khdr_csr;
2598
2599 IF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
2600 okl_api.set_message(
2601 G_APP_NAME,
2602 G_DUP_VALUE,
2603 'COL_NAME',
2604 'CONTRACT_NUMBER_OLD',
2605 'COL_VALUE',
2606 p_contract_number
2607 );
2608 END IF;
2609
2610 return x_return_status;
2611
2612 END check_contract_number;
2613
2614
2615 ------------------------------------------------------------------------------
2616 -- PROCEDURE check_payment_frequency_code
2617 -- It validates Payment Frequency Code and returns ID1 and
2618 -- stacks error, if any for further processing
2619 -- Calls:
2620 -- None
2621 -- Called By:
2622 -- check_payment_record
2623 -- create_payment_other_rules
2624 -- load_input_record
2625 ------------------------------------------------------------------------------
2626 PROCEDURE check_payment_frequency_code(
2627 x_return_status OUT NOCOPY VARCHAR2,
2628 x_msg_count OUT NOCOPY NUMBER,
2629 x_msg_data OUT NOCOPY VARCHAR2,
2630 p_payment_freq_code IN okl_payments_interface.payment_frequency_code%TYPE,
2631 x_id1 OUT NOCOPY okx_tuom_v.id1%TYPE,
2632 x_uom_code OUT NOCOPY okx_tuom_v.uom_code%TYPE
2633 ) IS
2634 /*
2635 CURSOR freq_csr (p_payment_freq_code okl_payments_interface.payment_frequency_code%TYPE) IS
2636 SELECT id1,
2637 uom_code
2638 FROM okx_tuom_v
2639 WHERE uom_class = 'OKL-TIME'
2640 AND base_uom_flag = 'N'
2641 AND name = p_payment_freq_code;
2642 */
2643 CURSOR freq_csr (p_payment_freq_code okl_payments_interface.payment_frequency_code%TYPE) IS
2644 SELECT id1,
2645 id1
2646 FROM okl_time_units_v
2647 WHERE name = p_payment_freq_code;
2648
2649 l_id1 okx_tuom_v.id1%TYPE;
2650 l_uom_code okx_tuom_v.uom_code%TYPE;
2651
2652 BEGIN
2653
2654 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2655 OPEN freq_csr(p_payment_freq_code);
2656 FETCH freq_csr INTO l_id1,
2657 l_uom_code;
2658 IF freq_csr%NOTFOUND THEN
2659 x_return_status := OKL_API.G_RET_STS_ERROR;
2660 END IF;
2661
2662 x_id1 := l_id1;
2663 x_uom_code := l_uom_code;
2664 RETURN;
2665
2666 END check_payment_frequency_code;
2667
2668 ------------------------------------------------------------------------------
2669 -- PROCEDURE check_contract_line
2670 -- It validates Party role line number/ Terms Line number/ Payments line number against contract
2671 -- line number in OKL_LINES_INTERFACE table
2672 -- Calls:
2673 -- None
2674 -- Called By:
2675 -- check_payment_record
2676 -- check_input_record
2677 ------------------------------------------------------------------------------
2678 PROCEDURE check_contract_line(
2679 x_return_status OUT NOCOPY VARCHAR2,
2680 p_contract_number IN okl_party_roles_interface.contract_number_old%TYPE,
2681 p_line_number IN okl_party_roles_interface.line_number%TYPE
2682 ) IS
2683
2684 CURSOR line_csr (p_contract_number VARCHAR2,
2685 p_line_number NUMBER) IS
2686 SELECT 'X'
2687 FROM okl_lines_interface
2688 WHERE contract_number_old = p_contract_number
2689 AND line_number = p_line_number;
2690
2691 l_dummy VARCHAR2(1);
2692 BEGIN
2693
2694 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2695
2696 OPEN line_csr (p_contract_number,
2697 p_line_number);
2698 FETCH line_csr INTO l_dummy;
2699 IF line_csr%NOTFOUND THEN
2700 x_return_status := OKL_API.G_RET_STS_ERROR;
2701 END IF;
2702 CLOSE line_csr;
2703
2704 return;
2705 END check_contract_line;
2706
2707 ------------------------------------------------------------------------------
2708 -- PROCEDURE check_payment_record
2709 -- It validates Payment interface Record and stacks error, if any
2710 -- for further processing
2711 -- Calls:
2712 -- None
2713 -- Called By:
2714 -- check_payment_record
2715 ------------------------------------------------------------------------------
2716 PROCEDURE check_payment_record(
2717 x_return_status OUT NOCOPY VARCHAR2,
2718 x_msg_count OUT NOCOPY NUMBER,
2719 x_msg_data OUT NOCOPY VARCHAR2,
2720 p_contract_number_old IN okl_payments_interface.contract_number_old%TYPE,
2721 p_line_number IN okl_payments_interface.line_number%TYPE,
2722 p_asset_number IN okl_payments_interface.asset_number%TYPE,
2723 p_payment_type_code IN VARCHAR2,
2724 p_stream_purpose IN okl_payments_interface.stream_purpose_code%TYPE,
2725 p_payment_schedule_number IN okl_payments_interface.payment_schedule_number%TYPE,
2726 p_payment_frequency_code IN okl_payments_interface.payment_frequency_code%TYPE,
2727 p_arrears_flag IN okl_payments_interface.arrears_flag%TYPE,
2728 p_advance_payments IN okl_payments_interface.advance_payments%TYPE,
2729 p_payment_amount IN okl_payments_interface.payment_amount%TYPE,
2730 p_start_date IN okl_payments_interface.start_date%TYPE,
2731 p_number_of_periods IN okl_payments_interface.number_of_periods%TYPE,
2732 p_rate IN okl_payments_interface.rate%TYPE,
2733 p_comments IN okl_payments_interface.comments%TYPE,
2734 p_stub_days IN okl_payments_interface.stub_days%TYPE,
2735 p_stub_amount IN okl_payments_interface.stub_amount%TYPE
2736 ) IS
2737
2738 x_id1 okx_tuom_v.id1%TYPE;
2739 x_id2 okl_strmtyp_source_v.id1%TYPE;
2740 x_uom_code okx_tuom_v.uom_code%TYPE;
2741 payment_failed EXCEPTION;
2742
2743 l_return_status VARCHAR2(1);
2744 l_proc_name VARCHAR2(35) := 'check_payment_record';
2745 l_payment_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
2746
2747 BEGIN
2748
2749 debug_message(l_proc_name);
2750
2751 /*
2752 IF (p_asset_number IS NULL
2753 AND
2754 p_line_number IS NOT NULL) THEN
2755 okl_api.set_message(
2756 G_APP_NAME,
2757 G_MISSING_VALUE,
2758 'CONTRACT_NUM',
2759 p_contract_number_old||'/'||p_line_number,
2760 'COL_NAME',
2761 'ASSET_NUMBER'
2762 );
2763 x_return_status := OKL_API.G_RET_STS_ERROR;
2764 END IF;
2765 */
2766
2767 IF (p_payment_type_code IS NULL) THEN
2768
2769 okl_api.set_message(
2770 G_APP_NAME,
2771 G_MISSING_VALUE,
2772 'CONTRACT_NUM',
2773 p_contract_number_old||'/'||p_line_number,
2774 'COL_NAME',
2775 'PAYMENT_TYPE_CODE'
2776 );
2777 x_return_status := OKL_API.G_RET_STS_ERROR;
2778 ELSE
2779
2780 check_stream_type_code(
2781 x_return_status => l_return_status,
2782 x_msg_count => x_msg_count,
2783 x_msg_data => x_msg_data,
2784 p_stream_type_code => p_payment_type_code,
2785 p_stream_purpose => p_stream_purpose,
2786 x_id1 => x_id2,
2787 x_name => l_payment_name
2788 );
2789
2790 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
2791 okl_api.set_message(
2792 G_APP_NAME,
2793 G_INVALID_VALUE,
2794 'CONTRACT_NUM',
2795 p_contract_number_old||'/'||p_line_number,
2796 'COL_NAME',
2797 'PAYMENT_TYPE_CODE, STREAM_PURPOSE_CODE',
2798 'COL_VALUE',
2799 p_payment_type_code||', '||p_stream_purpose
2800 );
2801 x_return_status := OKL_API.G_RET_STS_ERROR;
2802 END IF;
2803 END IF;
2804
2805 /*
2806 IF (p_payment_amount IS NULL
2807 AND
2808 p_rate IS NULL) THEN
2809 okl_api.set_message(
2810 G_APP_NAME,
2811 G_MISSING_VALUE,
2812 'CONTRACT_NUM',
2813 p_contract_number_old||'/'||p_line_number,
2814 'COL_NAME',
2815 'PAYMENT_AMOUNT or RATE'
2816 );
2817 x_return_status := OKL_API.G_RET_STS_ERROR;
2818 END IF;
2819 */
2820
2821 IF (p_payment_frequency_code IS NULL) THEN
2822
2823 okl_api.set_message(
2824 G_APP_NAME,
2825 G_MISSING_VALUE,
2826 'CONTRACT_NUM',
2827 p_contract_number_old||'/'||p_line_number,
2828 'COL_NAME',
2829 'PAYMENT_FREQUENCY_CODE'
2830 );
2831 x_return_status := OKL_API.G_RET_STS_ERROR;
2832 ELSE
2833 check_payment_frequency_code(
2834 x_return_status => l_return_status,
2835 x_msg_count => x_msg_count,
2836 x_msg_data => x_msg_data,
2837 p_payment_freq_code => p_payment_frequency_code,
2838 x_id1 => x_id1,
2839 x_uom_code => x_uom_code
2840 );
2841 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
2842 okl_api.set_message(
2843 G_APP_NAME,
2844 G_INVALID_VALUE,
2845 'CONTRACT_NUM',
2846 p_contract_number_old||'/'||p_line_number,
2847 'COL_NAME',
2848 'PAYMENT_FREQUENCY_CODE',
2849 'COL_VALUE',
2850 p_payment_frequency_code
2851 );
2852 x_return_status := OKL_API.G_RET_STS_ERROR;
2853 END IF;
2854 END IF;
2855
2856 IF (p_advance_payments IS NULL) THEN
2857 okl_api.set_message(
2858 G_APP_NAME,
2859 G_MISSING_VALUE,
2860 'CONTRACT_NUM',
2861 p_contract_number_old||'/'||p_line_number,
2862 'COL_NAME',
2863 'ADVANCE_PAYMENTS'
2864 );
2865 x_return_status := OKL_API.G_RET_STS_ERROR;
2866 END IF;
2867
2868 IF (p_arrears_flag <> 'Y'
2869 AND
2870 p_arrears_flag <> 'N') THEN
2871
2872 okl_api.set_message(
2873 G_APP_NAME,
2874 G_INVALID_VALUE,
2875 'CONTRACT_NUM',
2876 p_contract_number_old||'/'||p_line_number,
2877 'COL_NAME',
2878 'ARREARS_FLAG',
2879 'COL_VALUE',
2880 p_arrears_flag
2881 );
2882 x_return_status := OKL_API.G_RET_STS_ERROR;
2883 END IF;
2884
2885 /*
2886 IF (p_start_date IS NULL) THEN
2887 okl_api.set_message(
2888 G_APP_NAME,
2889 G_MISSING_VALUE,
2890 'CONTRACT_NUM',
2891 p_contract_number_old||'/'||p_line_number,
2892 'COL_NAME',
2893 'START_DATE'
2894 );
2895 x_return_status := OKL_API.G_RET_STS_ERROR;
2896 END IF;
2897 */
2898
2899 IF (p_stub_days IS NOT NULL
2900 AND
2901 p_stub_amount IS NOT NULL
2902 AND
2903 p_number_of_periods IS NOT NULL
2904 AND
2905 p_payment_amount IS NOT NULL
2906 ) THEN
2907 okl_api.set_message(
2908 G_APP_NAME,
2909 G_STUB_PMNT_BOTH,
2910 'CONTRACT_NUM',
2911 p_contract_number_old||'/'||p_line_number
2912 );
2913 x_return_status := OKL_API.G_RET_STS_ERROR;
2914 ELSIF (p_stub_days IS NULL AND p_stub_amount IS NOT NULL) THEN
2915 okl_api.set_message(
2916 G_APP_NAME,
2917 G_MISSING_VALUE,
2918 'CONTRACT_NUM',
2919 p_contract_number_old||'/'||p_line_number,
2920 'COL_NAME',
2921 'STUB_DAYS'
2922 );
2923 x_return_status := OKL_API.G_RET_STS_ERROR;
2924 ELSIF (p_stub_days IS NOT NULL AND p_stub_amount IS NULL) THEN
2925 okl_api.set_message(
2926 G_APP_NAME,
2927 G_MISSING_VALUE,
2928 'CONTRACT_NUM',
2929 p_contract_number_old||'/'||p_line_number,
2930 'COL_NAME',
2931 'STUB_AMOUNT'
2932 );
2933 x_return_status := OKL_API.G_RET_STS_ERROR;
2934 ELSIF (p_number_of_periods IS NOT NULL AND p_payment_amount IS NULL) THEN
2935 okl_api.set_message(
2936 G_APP_NAME,
2937 G_MISSING_VALUE,
2938 'CONTRACT_NUM',
2939 p_contract_number_old||'/'||p_line_number,
2940 'COL_NAME',
2941 'PAYMENT_AMOUNT'
2942 );
2943 x_return_status := OKL_API.G_RET_STS_ERROR;
2944 ELSIF (p_number_of_periods IS NULL AND p_payment_amount IS NOT NULL) THEN
2945 okl_api.set_message(
2946 G_APP_NAME,
2947 G_MISSING_VALUE,
2948 'CONTRACT_NUM',
2949 p_contract_number_old||'/'||p_line_number,
2950 'COL_NAME',
2951 'NUMBER_OF_PERIODS'
2952 );
2953 x_return_status := OKL_API.G_RET_STS_ERROR;
2954 END IF;
2955
2956 RETURN;
2957
2958 EXCEPTION
2959
2960 WHEN payment_failed THEN
2961 x_return_status := OKL_API.G_RET_STS_ERROR;
2962
2963 END check_payment_record;
2964
2965 ------------------------------------------------------------------------------
2966 -- PROCEDURE validate_usage_freq
2967 -- It validates Usage line payment frequency code
2968 -- Calls:
2969 -- None
2970 -- Called By:
2971 ------------------------------------------------------------------------------
2972 PROCEDURE validate_usage_freq(
2973 x_return_status OUT NOCOPY VARCHAR2,
2974 x_msg_count OUT NOCOPY VARCHAR2,
2975 x_msg_data OUT NOCOPY VARCHAR2,
2976 p_freq IN VARCHAR2,
2977 p_contract_number IN VARCHAR2,
2978 p_line_number IN NUMBER
2979 ) IS
2980
2981 CURSOR freq_csr (p_freq_code VARCHAR2) IS
2982 SELECT 'Y'
2983 FROM okx_units_of_measure_v okx,
2984 okc_time_code_units_v okc
2985 WHERE okx.uom_code = okc.uom_code
2986 AND okc.active_flag = 'Y'
2987 AND okc.tce_code NOT IN ('HOUR','MINUTE','SECOND')
2988 AND okx.uom_code = p_freq_code;
2989
2990 l_found VARCHAR2(1) := 'N';
2991 freq_failed EXCEPTION;
2992 BEGIN
2993
2994 x_return_status := OKL_API.G_RET_STS_SUCCESS;
2995
2996 l_found := 'N';
2997 OPEN freq_csr (p_freq);
2998 FETCH freq_csr INTO l_found;
2999 CLOSE freq_csr;
3000
3001 IF (l_found <> 'Y') THEN
3002 okl_api.set_message(
3003 G_APP_NAME,
3004 G_INVALID_VALUE,
3005 'CONTRACT_NUM',
3006 p_contract_number||','||p_line_number,
3007 'COL_NAME',
3008 'USAGE_PERIOD',
3009 'COL_VALUE',
3010 p_freq
3011 );
3012 RAISE freq_failed;
3013 END IF;
3014
3015 RETURN;
3016
3017 EXCEPTION
3018 WHEN freq_failed THEN
3019 x_return_status := OKL_API.G_RET_STS_ERROR;
3020 END validate_usage_freq;
3021
3022 ------------------------------------------------------------------------------
3023 -- PROCEDURE Check_Input_Record
3024 -- DO NOT USE THIS PROCEDURE, BUG 4350579
3025 -- It Reads data from Interface Tables and Validates. During process of validation it
3026 -- stacks Error, if any, and returns ERROR status to calling process.
3027 -- Calls:
3028 -- check_header_literal
3029 -- validate_customer
3030 -- validate_currency_code
3031 -- check_line_literal
3032 -- check_contract_line
3033 -- check_payment_record
3034 -- update_interface_status
3035 -- report_error
3036 -- Called By:
3037 -- process_record
3038 ------------------------------------------------------------------------------
3039 PROCEDURE Check_Input_Record(
3040 p_init_msg_list IN VARCHAR2,
3041 x_return_status OUT NOCOPY VARCHAR2,
3042 x_msg_count OUT NOCOPY NUMBER,
3043 x_msg_data OUT NOCOPY VARCHAR2,
3044 p_batch_number IN VARCHAR2,
3045 p_start_date_from IN DATE,
3046 p_start_date_to IN DATE,
3047 p_contract_number IN VARCHAR2,
3048 p_customer_number IN VARCHAR2,
3049 x_total_checked OUT NOCOPY NUMBER
3050 ) IS
3051
3052 l_proc_name VARCHAR2(35) := NULL;
3053 l_progress VARCHAR2(3) := NULL;
3054 l_contract_number_old okl_header_interface.contract_number_old%TYPE;
3055 l_customer_id okx_parties_v.id1%TYPE;
3056 l_record_status VARCHAR2(3);
3057 l_batch_status VARCHAR2(3);
3058 x_id1 NUMBER;
3059
3060 l_header_template template_h_rec_type;
3061
3062 header_validation_failed EXCEPTION;
3063 line_validation_failed EXCEPTION;
3064
3065 --
3066 -- Cursor to fetch Header Interface Records
3067 --
3068
3069 CURSOR okl_header_csr (p_batch_number VARCHAR2,
3070 p_start_date_from DATE,
3071 p_start_date_to DATE,
3072 p_contract_number VARCHAR2,
3073 p_customer_number VARCHAR2 ) IS
3074
3075 SELECT *
3076 FROM okl_header_interface
3077 WHERE (
3078 batch_number = p_batch_number
3079 OR
3080 contract_number_old = p_contract_number
3081 OR
3082 (
3083 customer_number = p_customer_number
3084 AND
3085 start_date between p_start_date_from AND p_start_date_to
3086 )
3087 )
3088 AND nvl(scheduled_worker_id,'NONE') = g_instance_number
3089 AND status in ('NEW','ERROR'); --Process only NEW and previuosly FAILED records
3090
3091 --
3092 -- Cursor to fetch Line Interface Records for each contract header
3093 --
3094
3095 CURSOR okl_line_csr (p_contract_number_old okc_k_headers_v.contract_number%TYPE) IS
3096 SELECT *
3097 FROM okl_lines_interface
3098 WHERE contract_number_old = p_contract_number_old
3099 ORDER BY line_number;
3100
3101 --
3102 -- Cursor to fetch Party Role Records
3103 --
3104
3105 CURSOR okl_party_role_csr (p_contract_number okc_k_headers_v.contract_number%TYPE) IS
3106 SELECT *
3107 FROM okl_party_roles_interface
3108 WHERE contract_number_old = p_contract_number;
3109
3110 --
3111 -- Cursor to fetch Terms Records
3112 --
3113
3114 CURSOR okl_term_csr (p_contract_number okc_k_headers_v.contract_number%TYPE) IS
3115 SELECT *
3116 FROM okl_terms_interface
3117 WHERE contract_number_old = p_contract_number;
3118
3119 --
3120 -- Cursor to fetch Payments Records
3121 --
3122
3123 CURSOR okl_payment_csr (p_contract_number okc_k_headers_v.contract_number%TYPE) IS
3124 SELECT *
3125 FROM okl_payments_interface
3126 WHERE contract_number_old = p_contract_number;
3127
3128
3129 BEGIN -- Actual Procedure Starts Here
3130
3131 -- Bug 4350579
3132 -- THIS PROCEDURE IS NOT BEING USED ANY MORE
3133 -- DO NOT CALL THIS PROCEDURE FOR IMPORT
3134 --
3135
3136 l_proc_name := 'CHECK_INPUT_RECORD';
3137 x_return_status := OKL_API.G_RET_STS_SUCCESS; -- individual validaiton status
3138 l_record_status := OKL_API.G_RET_STS_SUCCESS; -- record level status
3139 l_batch_status := OKL_API.G_RET_STS_SUCCESS; -- batch level status
3140
3141 okl_api.init_msg_list(p_init_msg_list => OKL_API.G_TRUE);
3142 l_progress := '000';
3143
3144 FOR okl_header_rec IN okl_header_csr (p_batch_number,
3145 p_start_date_from,
3146 p_start_date_to,
3147 p_contract_number,
3148 p_customer_number )
3149 LOOP
3150
3151 BEGIN
3152 -- Validation Starts For each Contract
3153 --fnd_file.put_line(fnd_file.output, 'Checking... '||okl_header_rec.contract_number_old);
3154
3155 write_to_log('Checking... '||okl_header_rec.contract_number_old);
3156
3157 x_total_checked := nvl(x_total_checked,0) + 1;
3158
3159 l_progress := '010';
3160 l_record_status := OKL_API.G_RET_STS_SUCCESS;
3161
3162
3163 l_contract_number_old := okl_header_rec.contract_number_old;
3164
3165 -- Validate CONTRACT_NUMBER_OLD
3166 IF ( okl_header_rec.contract_number_old IS NULL) THEN
3167 okl_api.set_message(
3168 G_APP_NAME,
3169 G_NULL_CONTRACT
3170 );
3171
3172
3173 raise header_validation_failed; -- Unable to continue further
3174
3175 /* not required, bug 3798008
3176 * ELSIF ( check_contract_number (l_contract_number_old) = OKL_API.G_RET_STS_ERROR ) THEN
3177 *
3178 * raise header_validation_failed; -- Unable to continue further
3179 *
3180 */
3181 END IF;
3182
3183
3184 l_progress := '020';
3185 --
3186 -- Get Template Information if requested
3187 --
3188 l_header_template := NULL;
3189 IF (okl_header_rec.template_number IS NOT NULL) THEN
3190 l_header_template := get_template(
3191 x_return_status => x_return_status,
3192 x_msg_count => x_msg_count,
3193 x_msg_data => x_msg_data,
3194 p_template_number => okl_header_rec.template_number
3195 );
3196
3197 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3198 RAISE header_validation_failed;
3199 END IF;
3200
3201 END IF;
3202 --
3203 -- Checks Constant literal, not needed check against table
3204 -- validate and stacks error
3205 --
3206 x_return_status := check_header_literal (
3207 p_contract_number => okl_header_rec.contract_number_old,
3208 p_template_id => l_header_template.id,
3209 p_application_code => okl_header_rec.application_code,
3210 p_contract_category => NVL(okl_header_rec.contract_category,l_header_template.scs_code),
3211 p_import_request_stage => okl_header_rec.import_request_stage,
3212 p_converted_account => NVL(okl_header_rec.converted_account,
3213 l_header_template.converted_account_yn),
3214 p_security_deposit_hold_flag => okl_header_rec.security_deposit_hold_flag,
3215 p_security_deposit_net_flag => okl_header_rec.security_deposit_net_flag,
3216 p_review_invoice_flag => okl_header_rec.review_invoice_flag,
3217 p_date_signed => NVL(okl_header_rec.date_signed,l_header_template.date_signed),
3218 p_start_date => NVL(okl_header_rec.start_date,l_header_template.start_date),
3219 p_date_approved => NVL(okl_header_rec.date_approved,l_header_template.date_approved),
3220 p_term => NVL(okl_header_rec.term,l_header_template.term_duration),
3221 p_accepted_date => NVL(okl_header_rec.accepted_date,l_header_template.accepted_date),
3222 p_deal_type_code => NVL(okl_header_rec.deal_type_code,l_header_template.deal_type),
3223 p_bill_to_address => okl_header_rec.bill_to_address,
3224 p_bill_to_address_id => okl_header_rec.bill_to_address_id,
3225 p_authoring_org_id => NVL(okl_header_rec.authoring_org_id,
3226 l_header_template.authoring_org_id),
3227 p_inv_organization_id => NVL(okl_header_rec.inventory_organization_id,
3228 l_header_template.inv_organization_id),
3229 p_customer_account_number => okl_header_rec.customer_account_number,
3230 p_customer_account_id => okl_header_rec.customer_account_id,
3231 p_eot_purchase_opt_type => okl_header_rec.eot_purchase_opt_type,
3232 p_expected_delivery_date => okl_header_rec.expected_delivery_date,
3233 p_currency_code => NVL(okl_header_rec.currency_code,
3234 l_header_template.currency_code)
3235 );
3236
3237 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3238 l_record_status := OKL_API.G_RET_STS_ERROR;
3239 END IF;
3240
3241 l_progress := '030';
3242
3243 -- Validate CUSTOMER
3244 x_return_status := validate_customer(p_contract_number => okl_header_rec.contract_number_old,
3245 p_customer_id => okl_header_rec.customer_id,
3246 p_customer_number => okl_header_rec.customer_number,
3247 x_id1 => l_customer_id);
3248
3249 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
3250 okl_header_rec.customer_id := l_customer_id;
3251 END IF;
3252
3253 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3254 l_record_status := OKL_API.G_RET_STS_ERROR;
3255 END IF;
3256
3257 l_progress := '040';
3258
3259 -- Validate CURRENCY CODE
3260 x_return_status := validate_currency_code(p_contract_number => okl_header_rec.contract_number_old,
3261 p_currency_code => NVL(okl_header_rec.currency_code,
3262 l_header_template.currency_code));
3263
3264 l_progress := '050';
3265 -- Call Line Cursor to get Line detail
3266
3267 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3268 l_record_status := OKL_API.G_RET_STS_ERROR;
3269 END IF;
3270
3271
3272 FOR okl_line_rec IN okl_line_csr (okl_header_rec.contract_number_old)
3273 LOOP
3274 BEGIN
3275
3276 -- Validation Starts For each Line of current header
3277
3278 l_progress := '080';
3279
3280 -- Validate Line Number
3281 IF (okl_line_rec.line_number IS NULL) THEN
3282 okl_api.set_message(
3283 G_APP_NAME,
3284 G_MISSING_VALUE,
3285 'CONTRACT_NUM',
3286 okl_header_rec.contract_number_old,
3287 'COL_NAME',
3288 'CONTRACT_LINE_NUMBER'
3289 );
3290
3291 x_return_status := OKL_API.G_RET_STS_ERROR;
3292
3293 raise line_validation_failed; -- unable to continue with line validation, proceed with next line
3294
3295 END IF;
3296
3297 l_progress := '090';
3298 check_line_literal (
3299 x_return_status => x_return_status,
3300 x_msg_count => x_msg_count,
3301 x_msg_data => x_msg_data,
3302 p_contract_number => okl_header_rec.contract_number_old,
3303 p_import_request_stage => okl_header_rec.import_request_stage,
3304 p_product_id => okl_header_rec.product_id,
3305 p_product_name => okl_header_rec.product_name,
3306 p_line_number => okl_line_rec.line_number,
3307 p_line_type => okl_line_rec.line_type,
3308 p_amount => okl_line_rec.amount,
3309 p_currency_code => okl_header_rec.currency_code,
3310 p_asset_number => okl_line_rec.asset_number,
3311 p_inventory_item_name => okl_line_rec.inventory_item_name,
3312 p_inventory_item_id => okl_line_rec.inventory_item_id,
3313 p_install_site_number => okl_line_rec.install_site_number,
3314 p_install_site_id => okl_line_rec.install_site_id,
3315 p_asset_corporate_book => okl_line_rec.asset_corporate_book,
3316 p_asset_category_id => okl_line_rec.asset_category_id,
3317 p_asset_category_segment1 => okl_line_rec.asset_category_segment1,
3318 p_asset_category_segment2 => okl_line_rec.asset_category_segment2,
3319 p_asset_category_segment3 => okl_line_rec.asset_category_segment3,
3320 p_asset_category_segment4 => okl_line_rec.asset_category_segment4,
3321 p_asset_category_segment5 => okl_line_rec.asset_category_segment5,
3322 p_asset_category_segment6 => okl_line_rec.asset_category_segment6,
3323 p_asset_category_segment7 => okl_line_rec.asset_category_segment7,
3324 p_asset_location_id => okl_line_rec.asset_location_id,
3325 p_asset_location_segment1 => okl_line_rec.asset_location_segment1,
3326 p_asset_location_segment2 => okl_line_rec.asset_location_segment2,
3327 p_asset_location_segment3 => okl_line_rec.asset_location_segment3,
3328 p_asset_location_segment4 => okl_line_rec.asset_location_segment4,
3329 p_asset_location_segment5 => okl_line_rec.asset_location_segment5,
3330 p_asset_location_segment6 => okl_line_rec.asset_location_segment6,
3331 p_asset_location_segment7 => okl_line_rec.asset_location_segment7,
3332 p_depreciation_method_id => okl_line_rec.depreciation_method_id,
3333 p_depreciation_method_code => okl_line_rec.depreciation_method_code,
3334 p_life_in_months => okl_line_rec.life_in_months,
3335 p_fee_code => okl_line_rec.fee_code,
3336 p_stream_purpose => okl_line_rec.stream_purpose_code,
3337 p_fee_type => okl_line_rec.fee_type,
3338 p_price_list_name => okl_line_rec.price_list_name,
3339 p_price_list_id => okl_line_rec.price_list_id,
3340 p_counter_group_name => okl_line_rec.counter_group_name,
3341 p_counter_group_id => okl_line_rec.counter_group_id,
3342 p_usage_bill_frequency_code => okl_line_rec.usage_bill_frequency_code,
3343 p_base_reading_uom_code => okl_line_rec.base_reading_uom_code,
3344 p_usage_type_code => okl_line_rec.usage_type_code,
3345 p_usage_period => okl_line_rec.usage_period,
3346 p_usage_no_of_period => okl_line_rec.usage_no_of_period,
3347 p_tax_cost => okl_line_rec.tax_cost,
3348 p_tax_book => okl_line_rec.tax_book,
3349 p_life_in_months_tax => okl_line_rec.life_in_months_tax,
3350 p_deprn_method_tax => okl_line_rec.deprn_method_tax,
3351 p_deprn_rate_tax => okl_line_rec.deprn_rate_tax,
3352 p_in_service_date => okl_line_rec.in_service_date,
3353 p_link_asset_amount => okl_line_rec.link_asset_amount,
3354 p_inv_org_id => okl_header_rec.inventory_organization_id,
3355 p_term_quote_id => okl_line_rec.termination_quote_id,
3356 p_term_quote_number => okl_line_rec.termination_quote_number,
3357 p_fee_purpose_code => okl_line_rec.fee_purpose_code
3358 );
3359
3360
3361 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3362 l_record_status := OKL_API.G_RET_STS_ERROR;
3363 END IF;
3364
3365 EXCEPTION
3366
3367 WHEN line_validation_failed THEN
3368 x_return_status := OKL_API.G_RET_STS_ERROR;
3369
3370 END; -- of line begin
3371
3372 END LOOP; -- okl_line_csr
3373
3374 l_progress := '100';
3375 -- Final Reporting of error, if any, for this contract
3376
3377 FOR okl_party_role_rec IN okl_party_role_csr (okl_header_rec.contract_number_old)
3378 LOOP
3379 BEGIN
3380 IF (okl_party_role_rec.line_number IS NOT NULL) THEN
3381 check_contract_line(
3382 x_return_status => x_return_status,
3383 p_contract_number => okl_party_role_rec.contract_number_old,
3384 p_line_number => okl_party_role_rec.line_number
3385 );
3386
3387 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3388 okl_api.set_message(
3389 G_APP_NAME,
3390 G_PARTY_ROLE_LINE_ERROR,
3391 'CONTRACT_NUM',
3392 okl_party_role_rec.contract_number_old||'/'||okl_party_role_rec.line_number
3393 );
3394 x_return_status := OKL_API.G_RET_STS_ERROR;
3395 END IF;
3396
3397 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3398 l_record_status := OKL_API.G_RET_STS_ERROR;
3399 END IF;
3400 END IF;
3401 END;
3402
3403 END LOOP; -- party_role
3404
3405 l_progress := '110';
3406
3407 --x_return_status := l_record_status;
3408
3409 FOR okl_term_rec IN okl_term_csr (okl_header_rec.contract_number_old)
3410 LOOP
3411 BEGIN
3412 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3413
3414 IF (okl_term_rec.line_number IS NULL) THEN
3415 okl_api.set_message(
3416 G_APP_NAME,
3417 G_TERM_NO_LINE_NUMBER,
3418 'CONTRACT_NUM',
3419 okl_term_rec.contract_number_old||'/'||okl_term_rec.line_number
3420 );
3421 check_contract_line(
3422 x_return_status => x_return_status,
3423 p_contract_number => okl_term_rec.contract_number_old,
3424 p_line_number => okl_term_rec.line_number
3425 );
3426
3427 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3428 okl_api.set_message(
3429 G_APP_NAME,
3430 G_TERM_LINE_ERROR,
3431 'LINE_NUM',
3432 okl_term_rec.line_number,
3433 'CONTRACT_NUM',
3434 okl_term_rec.contract_number_old||'/'||okl_term_rec.line_number
3435 );
3436 x_return_status := OKL_API.G_RET_STS_ERROR;
3437 END IF;
3438
3439 END IF;
3440
3441 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3442 l_record_status := x_return_status;
3443 END IF;
3444
3445 IF (okl_header_rec.import_request_stage <> 'NEW'
3446 AND
3447 okl_term_rec.bill_to_address_id IS NULL
3448 AND
3449 okl_term_rec.bill_to_address IS NULL) THEN
3450
3451 okl_api.set_message(
3452 G_APP_NAME,
3453 G_MISSING_VALUE,
3454 'CONTRACT_NUM',
3455 okl_term_rec.contract_number_old||'/'||okl_term_rec.line_number,
3456 'COL_NAME',
3457 'BILL_TO_ADDRESS'
3458 );
3459
3460 x_return_status := OKL_API.G_RET_STS_ERROR;
3461 END IF;
3462
3463 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3464 l_record_status := x_return_status;
3465 END IF;
3466 END;
3467
3468 END LOOP; -- term
3469
3470 l_progress := '120';
3471
3472 FOR okl_payment_rec IN okl_payment_csr (okl_header_rec.contract_number_old)
3473 LOOP
3474 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3475 BEGIN
3476
3477 check_payment_record(
3478 x_return_status => x_return_status,
3479 x_msg_count => x_msg_count,
3480 x_msg_data => x_msg_data,
3481 p_contract_number_old => okl_payment_rec.contract_number_old,
3482 p_line_number => okl_payment_rec.line_number,
3483 p_asset_number => okl_payment_rec.asset_number,
3484 p_payment_type_code => okl_payment_rec.payment_type_code,
3485 p_stream_purpose => okl_payment_rec.stream_purpose_code,
3486 p_payment_schedule_number => okl_payment_rec.payment_schedule_number,
3487 p_payment_frequency_code => okl_payment_rec.payment_frequency_code,
3488 p_arrears_flag => okl_payment_rec.arrears_flag,
3489 p_advance_payments => okl_payment_rec.advance_payments,
3490 p_payment_amount => okl_payment_rec.payment_amount,
3491 p_start_date => okl_payment_rec.start_date,
3492 p_number_of_periods => okl_payment_rec.number_of_periods,
3493 p_rate => okl_payment_rec.rate,
3494 p_comments => okl_payment_rec.comments,
3495 p_stub_days => okl_payment_rec.stub_days,
3496 p_stub_amount => okl_payment_rec.stub_amount
3497 );
3498
3499 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3500 l_record_status := x_return_status;
3501 END IF;
3502
3503 END;
3504
3505 END LOOP; -- payment
3506
3507 l_progress := '130';
3508
3509 EXCEPTION
3510 WHEN header_validation_failed THEN
3511
3512 -- okl_open_interface_pvt.report_error (
3513 -- x_msg_count => x_msg_count,
3514 -- x_msg_data => x_msg_data
3515 -- );
3516 x_return_status := OKL_API.G_RET_STS_ERROR;
3517 l_record_status := OKL_API.G_RET_STS_ERROR;
3518
3519 END; -- of Header Begin
3520
3521 IF (l_record_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3522 l_batch_status := OKL_API.G_RET_STS_ERROR;
3523 x_return_status := OKL_API.G_RET_STS_ERROR;
3524 END IF;
3525
3526 IF (l_record_status = OKL_API.G_RET_STS_SUCCESS) THEN
3527 Update_Interface_Status(p_contract_number => okl_header_rec.contract_number_old,
3528 p_new_contract_number => okl_header_rec.contract_number,
3529 p_status => 'ELIGIBLE',
3530 x_return_status => x_return_status
3531 );
3532 COMMIT;
3533
3534 ELSE
3535 Update_Interface_Status(p_contract_number => okl_header_rec.contract_number_old,
3536 p_new_contract_number => okl_header_rec.contract_number,
3537 p_status => 'ERROR',
3538 x_return_status => x_return_status
3539 );
3540 COMMIT;
3541 x_return_status := OKL_API.G_RET_STS_ERROR;
3542 END IF;
3543
3544 -- report_error (
3545 -- x_msg_count => x_msg_count,
3546 -- x_msg_data => x_msg_data
3547 -- );
3548 -- debug_message('========================done ');
3549
3550 END LOOP; -- okl_header_csr
3551
3552 IF (l_batch_status <> OKL_API.G_RET_STS_SUCCESS) THEN
3553 x_return_status := l_batch_status; -- set final status to out variable for further processing
3554 END IF;
3555
3556 EXCEPTION
3557 WHEN OTHERS THEN
3558 okl_api.set_message(
3559 G_APP_NAME,
3560 G_UNEXPECTED_ERROR,
3561 'OKL_SQLCODE',
3562 SQLCODE,
3563 'OKL_SQLERRM',
3564 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
3565 );
3566 x_return_status := OKL_API.G_RET_STS_ERROR;
3567
3568 report_error (
3569 x_msg_count => x_msg_count,
3570 x_msg_data => x_msg_data
3571 );
3572
3573 END Check_Input_Record;
3574 --*********************** check Interface **************************************
3575
3576 --+++++++++++++++++++++++ Load Interface +++++++++++++++++++++++++++++++++++++++
3577 ------------------------------------------------------------------------------
3578 -- FUNCTION get_product_id
3579 -- It gets Product ID if any. It checks againts okl_products_v for
3580 -- esistance of product as supplied in parameters
3581 -- Calls:
3582 -- None
3583 -- Called By:
3584 -- load_input_record
3585 ------------------------------------------------------------------------------
3586
3587 FUNCTION get_product_id (p_product_id IN okl_products_v.id%TYPE,
3588 p_product_name IN okl_products_v.name%TYPE,
3589 x_product_id OUT NOCOPY okl_products_v.id%TYPE )
3590 RETURN VARCHAR2 IS
3591
3592 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
3593 l_product_id OKL_PRODUCTS_V.ID%TYPE;
3594 l_revenue_recognition_method okl_product_parameters_v.REVENUE_RECOGNITION_METHOD%TYPE;
3595 l_interest_calculation_basis okl_product_parameters_v.INTEREST_CALCULATION_BASIS%TYPE;
3596 l_deal_type okl_product_parameters_v.DEAL_TYPE%TYPE;
3597 product_exception EXCEPTION;
3598
3599 CURSOR product_csr(p_product_name okl_products_v.name%TYPE,
3600 p_product_id okl_products_v.id%TYPE) IS
3601 SELECT a.id,
3602 b.revenue_recognition_method,
3603 b.interest_calculation_basis,
3604 b.deal_type
3605 FROM okl_products_v a,
3606 okl_product_parameters_v b
3607 WHERE ((a.name = p_product_name
3608 AND
3609 p_product_name IS NOT NULL
3610 )
3611 OR
3612 (a.id = p_product_id
3613 AND
3614 p_product_id IS NOT NULL
3615 )
3616 )
3617 AND TRUNC(SYSDATE) BETWEEN NVL(a.from_date,TRUNC(SYSDATE)) AND NVL(a.to_date,TRUNC(SYSDATE))
3618 AND A.id = B.id;
3619
3620 BEGIN
3621
3622 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3623
3624 OPEN product_csr(p_product_name,
3625 p_product_id);
3626 FETCH product_csr INTO l_product_id,
3627 l_revenue_recognition_method,
3628 l_interest_calculation_basis,
3629 l_deal_type;
3630
3631 IF product_csr%NOTFOUND THEN
3632 RAISE product_exception;
3633 END IF;
3634 CLOSE product_csr;
3635 x_product_id := l_product_id;
3636 G_PRODUCT_ID := l_product_id;
3637 G_REVENUE_RECOGNITION_METHOD := l_revenue_recognition_method;
3638 G_INTEREST_CALCULATION_BASIS := l_interest_calculation_basis;
3639 G_DEAL_TYPE := l_deal_type;
3640
3641 return x_return_status;
3642
3643 EXCEPTION
3644
3645 WHEN product_exception THEN
3646
3647 IF product_csr%ISOPEN THEN
3648 CLOSE product_csr;
3649 END IF;
3650
3651 x_return_status := OKL_API.G_RET_STS_ERROR;
3652 return x_return_status;
3653
3654 WHEN OTHERS THEN
3655 NULL;
3656
3657 END get_product_id;
3658
3659 ------------------------------------------------------------------------------
3660 -- FUNCTION check_product_type
3661 -- It checks product type and returns 'Y' to out parameter
3662 -- if it is a LOAN product
3663 -- Calls:
3664 -- None
3665 -- Called By:
3666 -- load_input_record
3667 ------------------------------------------------------------------------------
3668
3669 PROCEDURE check_product_type (
3670 x_return_status OUT NOCOPY VARCHAR2,
3671 x_msg_count OUT NOCOPY NUMBER,
3672 x_msg_data OUT NOCOPY VARCHAR2,
3673 p_prod_name IN okl_header_interface.product_name%TYPE,
3674 p_prod_id IN okl_header_interface.product_id%TYPE,
3675 x_loan_yn OUT NOCOPY VARCHAR2
3676 ) IS
3677
3678 l_type VARCHAR2(1) := 'N';
3679 l_proc_name VARCHAR2(35) := 'CHECK_PRODUCT_TYPE';
3680
3681 --dkagrawa changed query to use view okl_prod_qlty_val_uv than product_parameters_v for performance
3682 CURSOR prod_type_csr(p_product_name okl_products_v.name%TYPE,
3683 p_product_id okl_products_v.id%TYPE) IS
3684 SELECT 'Y'
3685 FROM okl_products prod,
3686 okl_prod_qlty_val_uv pqv
3687 WHERE ((prod.name = p_product_name
3688 AND
3689 p_product_name IS NOT NULL
3690 )
3691 OR
3692 (prod.id = p_product_id
3693 AND
3694 p_product_id IS NOT NULL
3695 )
3696 )
3697 AND TRUNC(SYSDATE) BETWEEN NVL(prod.from_date,TRUNC(SYSDATE)) AND NVL(prod.to_date,TRUNC(SYSDATE))
3698 AND prod.id = pqv.pdt_id
3699 AND prod.reporting_pdt_id IS NULL
3700 AND pqv.quality_name IN ('LEASE','INVESTOR')
3701 AND pqv.quality_val = 'LOAN';
3702
3703 BEGIN
3704
3705 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3706 debug_message(l_proc_name);
3707
3708 l_type := 'N';
3709 OPEN prod_type_csr(p_prod_name,
3710 p_prod_id);
3711 FETCH prod_type_csr INTO l_type;
3712 CLOSE prod_type_csr;
3713
3714 x_loan_yn := l_type;
3715
3716 EXCEPTION
3717
3718 WHEN OTHERS THEN
3719 IF prod_type_csr%ISOPEN THEN
3720 CLOSE prod_type_csr;
3721 END IF;
3722
3723 okl_api.set_message(
3724 G_APP_NAME,
3725 G_UNEXPECTED_ERROR,
3726 'OKL_SQLCODE',
3727 SQLCODE,
3728 'OKL_SQLERRM',
3729 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
3730 );
3731
3732 x_return_status := OKL_API.G_RET_STS_ERROR;
3733
3734 END check_product_type;
3735
3736 ------------------------------------------------------------------------------
3737 -- FUNCTION get_prog_agreement_id
3738 -- It gets Program agreement ID if any.
3739 -- Calls:
3740 -- None
3741 -- Called By:
3742 -- load_input_record
3743 ------------------------------------------------------------------------------
3744
3745 FUNCTION get_prog_agreement_id (
3746 p_scs_code IN okc_k_headers_v.scs_code%TYPE,
3747 p_agreement_number IN okc_k_headers_v.contract_number%TYPE,
3748 p_agreement_id IN okc_k_headers_v.id%TYPE,
3749 p_auth_org_id IN okc_k_headers_v.authoring_org_id%TYPE,
3750 x_agreement_id OUT NOCOPY okc_k_headers_v.contract_number%TYPE
3751 ) RETURN VARCHAR2 IS
3752
3753 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
3754 l_contract_id OKC_K_HEADERS_V.ID%TYPE;
3755 agreement_exception EXCEPTION;
3756
3757 --Fixed Bug # 5484903
3758 CURSOR contract_csr (
3759 p_scs_code okc_k_headers_v.scs_code%TYPE,
3760 p_agreement_id okc_k_headers_v.id%TYPE,
3761 p_agreement_number okc_k_headers_v.contract_number%TYPE,
3762 p_auth_org_id okc_k_headers_v.authoring_org_id%TYPE
3763 ) IS
3764 SELECT id
3765 FROM okc_k_headers_all_b
3766 WHERE ((contract_number = p_agreement_number
3767 AND
3768 p_agreement_number IS NOT NULL
3769 )
3770 OR
3771 (id = p_agreement_id
3772 AND
3773 p_agreement_id IS NOT NULL
3774 )
3775 )
3776 AND scs_code = p_scs_code
3777 AND sts_code = 'ACTIVE'
3778 AND authoring_org_id = p_auth_org_id;
3779
3780 BEGIN
3781
3782 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3783
3784 OPEN contract_csr(p_scs_code,
3785 p_agreement_id,
3786 p_agreement_number,
3787 p_auth_org_id);
3788 FETCH contract_csr INTO l_contract_id;
3789 IF contract_csr%NOTFOUND THEN
3790 RAISE agreement_exception;
3791 END IF;
3792 CLOSE contract_csr;
3793
3794 x_agreement_id := l_contract_id;
3795
3796 return x_return_status;
3797
3798 EXCEPTION
3799
3800 WHEN agreement_exception THEN
3801
3802 IF contract_csr%ISOPEN THEN
3803 CLOSE contract_csr;
3804 END IF;
3805
3806 x_return_status := OKL_API.G_RET_STS_ERROR;
3807 return x_return_status;
3808
3809 WHEN OTHERS THEN
3810 NULL;
3811
3812 END get_prog_agreement_id;
3813
3814 ------------------------------------------------------------------------------
3815 -- FUNCTION get_agreement_id
3816 -- It gets Master Lease ID if any. It checks againts okc_k_headers_v for
3817 -- esistance of master contract as supplied in parameters
3818 -- Calls:
3819 -- None
3820 -- Called By:
3821 -- load_input_record
3822 ------------------------------------------------------------------------------
3823
3824 FUNCTION get_agreement_id (
3825 p_scs_code IN okc_k_headers_v.scs_code%TYPE,
3826 p_auth_org_id IN okc_k_headers_v.authoring_org_id%TYPE,
3827 p_agreement_number IN okc_k_headers_v.contract_number%TYPE,
3828 p_agreement_id IN okc_k_headers_v.id%TYPE,
3829 x_agreement_id OUT NOCOPY okc_k_headers_v.contract_number%TYPE
3830 ) RETURN VARCHAR2 IS
3831
3832 x_return_status VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
3833 l_contract_id OKC_K_HEADERS_V.ID%TYPE;
3834 agreement_exception EXCEPTION;
3835 --Fixed Bug #5484903
3836 CURSOR contract_csr (
3837 p_scs_code okc_k_headers_v.scs_code%TYPE,
3838 p_org_id okc_k_headers_v.authoring_org_id%TYPE,
3839 p_agreement_id okc_k_headers_v.id%TYPE,
3840 p_agreement_number okc_k_headers_v.contract_number%TYPE
3841 ) IS
3842 SELECT id
3843 FROM okc_k_headers_all_b
3844 WHERE ((contract_number = p_agreement_number
3845 AND
3846 p_agreement_number IS NOT NULL
3847 )
3848 OR
3849 (id = p_agreement_id
3850 AND
3851 p_agreement_id IS NOT NULL
3852 )
3853 )
3854 AND authoring_org_id = p_org_id
3855 AND scs_code = p_scs_code
3856 AND sts_code <> 'TERMINATED';
3857
3858 BEGIN
3859
3860 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3861
3862 debug_message('Org: '||p_auth_org_id);
3863 debug_message('SCS: '||p_scs_code);
3864 debug_message('Agreement :'||p_agreement_id||', '||p_agreement_number||'***');
3865
3866 OPEN contract_csr(p_scs_code,
3867 p_auth_org_id,
3868 p_agreement_id,
3869 p_agreement_number);
3870 FETCH contract_csr INTO l_contract_id;
3871 IF contract_csr%NOTFOUND THEN
3872 RAISE agreement_exception;
3873 END IF;
3874 CLOSE contract_csr;
3875
3876 x_agreement_id := l_contract_id;
3877
3878 return x_return_status;
3879
3880 EXCEPTION
3881
3882 WHEN agreement_exception THEN
3883
3884 IF contract_csr%ISOPEN THEN
3885 CLOSE contract_csr;
3886 END IF;
3887
3888 x_return_status := OKL_API.G_RET_STS_ERROR;
3889 return x_return_status;
3890
3891 WHEN OTHERS THEN
3892 NULL;
3893
3894 END get_agreement_id;
3895
3896 ------------------------------------------------------------------------------
3897 -- PROCEDURE get_vendor_id
3898 -- It gets vendor id for given vendor name
3899 -- and stacks error if any
3900 -- Calls:
3901 -- None
3902 -- Called By:
3903 -- process_party_role
3904 ------------------------------------------------------------------------------
3905 PROCEDURE get_vendor_id(
3906 x_return_status OUT NOCOPY VARCHAR2,
3907 x_msg_count OUT NOCOPY NUMBER,
3908 x_msg_data OUT NOCOPY VARCHAR2,
3909 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
3910 p_line_number IN okl_lines_interface.line_number%TYPE,
3911 x_vendor_id OUT NOCOPY NUMBER,
3912 p_vendor_name IN OKX_VENDORS_V.NAME%TYPE
3913 ) IS
3914
3915 CURSOR vendor_csr (p_vendor_name VARCHAR2) IS
3916 SELECT id1
3917 FROM okx_vendors_v
3918 WHERE name = p_vendor_name;
3919
3920 l_id NUMBER;
3921 l_proc_name VARCHAR2(35) := 'GET_VENDOR_ID';
3922 vendor_failed EXCEPTION;
3923
3924 BEGIN
3925
3926 x_return_status := OKL_API.G_RET_STS_SUCCESS;
3927
3928 OPEN vendor_csr(p_vendor_name);
3929 FETCH vendor_csr INTO l_id;
3930 IF vendor_csr%NOTFOUND THEN
3931 RAISE vendor_failed;
3932 END IF;
3933 CLOSE vendor_csr;
3934
3935 x_vendor_id := l_id;
3936
3937 EXCEPTION
3938 WHEN vendor_failed THEN
3939 CLOSE vendor_csr;
3940 okl_api.set_message(
3941 G_APP_NAME,
3942 G_INVALID_VALUE,
3943 'CONTRACT_NUM',
3944 p_contract_number||'/'||TO_CHAR(p_line_number),
3945 'COL_NAME',
3946 'VENDOR_NAME',
3947 'COL_VALUE',
3948 p_vendor_name
3949 );
3950 x_return_status := OKL_API.G_RET_STS_ERROR;
3951
3952
3953 WHEN OTHERS THEN
3954 IF vendor_csr%ISOPEN THEN
3955 CLOSE vendor_csr;
3956 END IF;
3957
3958 okl_api.set_message(
3959 G_APP_NAME,
3960 G_UNEXPECTED_ERROR,
3961 'OKL_SQLCODE',
3962 SQLCODE,
3963 'OKL_SQLERRM',
3964 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
3965 );
3966
3967 x_return_status := OKL_API.G_RET_STS_ERROR;
3968
3969 END get_vendor_id;
3970
3971 ------------------------------------------------------------------------------
3972 -- PROCEDURE get_party_id
3973 -- It gets party id for given party number
3974 -- and stacks error if any
3975 -- Calls:
3976 -- None
3977 -- Called By:
3978 -- create_line_rules
3979 -- process_party_role
3980 ------------------------------------------------------------------------------
3981 PROCEDURE get_party_id(
3982 x_return_status OUT NOCOPY VARCHAR2,
3983 x_msg_count OUT NOCOPY NUMBER,
3984 x_msg_data OUT NOCOPY VARCHAR2,
3985 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
3986 p_line_number IN okl_lines_interface.line_number%TYPE,
3987 p_party_id IN OKX_PARTIES_V.ID1%TYPE,
3988 p_party_number IN OKX_PARTIES_V.PARTY_NUMBER%TYPE,
3989 x_party_id OUT NOCOPY NUMBER
3990 ) IS
3991
3992 CURSOR party_csr (p_party_number VARCHAR2,
3993 p_party_id NUMBER) IS
3994 SELECT id1
3995 FROM okx_parties_v
3996 WHERE ((party_number = p_party_number
3997 AND
3998 p_party_number IS NOT NULL)
3999 OR
4000 (id1 = p_party_id
4001 AND
4002 p_party_id IS NOT NULL
4003 )
4004 );
4005
4006 l_id NUMBER;
4007 l_proc_name VARCHAR2(35) := 'GET_PARTY_ID';
4008 party_failed EXCEPTION;
4009
4010 BEGIN
4011
4012 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4013
4014 OPEN party_csr(p_party_number,
4015 p_party_id);
4016 FETCH party_csr INTO l_id;
4017 IF party_csr%NOTFOUND THEN
4018 RAISE party_failed;
4019 END IF;
4020 CLOSE party_csr;
4021
4022 x_party_id := l_id;
4023
4024 EXCEPTION
4025 WHEN party_failed THEN
4026 CLOSE party_csr;
4027 okl_api.set_message(
4028 G_APP_NAME,
4029 G_INVALID_VALUE,
4030 'CONTRACT_NUM',
4031 p_contract_number||'/'||TO_CHAR(p_line_number),
4032 'COL_NAME',
4033 'PARTY_ID, NUMBER: ',
4034 'COL_VALUE',
4035 p_party_id||', '||p_party_number
4036 );
4037 x_return_status := OKL_API.G_RET_STS_ERROR;
4038
4039
4040 WHEN OTHERS THEN
4041 IF party_csr%ISOPEN THEN
4042 CLOSE party_csr;
4043 END IF;
4044
4045 okl_api.set_message(
4046 G_APP_NAME,
4047 G_UNEXPECTED_ERROR,
4048 'OKL_SQLCODE',
4049 SQLCODE,
4050 'OKL_SQLERRM',
4051 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
4052 );
4053
4054 x_return_status := OKL_API.G_RET_STS_ERROR;
4055
4056 END get_party_id;
4057
4058 -- cklee start 02/23/2004
4059 ------------------------------------------------------------------------------
4060 -- PROCEDURE get_party
4061 -- It gets party id/party site id for any given combination of name, number
4062 -- and stacks error if any
4063 -- Calls:
4064 -- None
4065 -- Called By:
4066 ------------------------------------------------------------------------------
4067 PROCEDURE get_party( x_return_status OUT NOCOPY VARCHAR2,
4068 x_msg_count OUT NOCOPY NUMBER,
4069 x_msg_data OUT NOCOPY VARCHAR2,
4070 p_intf_party_rec IN intf_party_rec_type,
4071 x_party_id OUT NOCOPY NUMBER,
4072 x_party_site_id OUT NOCOPY NUMBER
4073 ) IS
4074
4075 CURSOR party_csr (p_party_name VARCHAR2,
4076 p_party_id NUMBER,
4077 p_party_number VARCHAR2,
4078 p_party_site_name VARCHAR2,
4079 p_party_site_id NUMBER,
4080 p_party_site_number VARCHAR2,
4081 p_category_code VARCHAR2) IS
4082 SELECT prt.PARTY_ID,
4083 prt.PARTY_NAME,
4084 prt.PARTY_NUMBER,
4085 hps.PARTY_SITE_ID,
4086 hps.PARTY_SITE_NAME,
4087 hps.PARTY_SITE_NUMBER
4088 FROM
4089 HZ_PARTIES PRT,
4090 HZ_PARTY_SITES HPS
4091 WHERE
4092 prt.PARTY_ID = hps.PARTY_ID
4093 --start modified by abhaxen for 6689015 on 24-Jan-2008
4094 -- Added new filters to remove full table scans
4095 AND ( prt.CATEGORY_CODE = p_category_code AND p_category_code IS NOT NULL )
4096 AND ( ( prt.PARTY_ID = p_party_id AND p_party_id IS NOT NULL )
4097 OR ( prt.PARTY_NAME = p_party_name AND p_party_name IS NOT NULL)
4098 OR ( prt.PARTY_NUMBER = p_party_number AND p_party_number IS NOT NULL ))
4099 AND ( ( hps.PARTY_SITE_ID = p_party_site_id AND p_party_site_id IS NOT NULL )
4100 OR( hps.PARTY_SITE_NUMBER = p_party_site_number AND p_party_site_number IS NOT NULL )
4101 OR( hps.PARTY_SITE_NAME = p_party_site_name AND p_party_site_name IS NOT NULL ))
4102 ;
4103
4104
4105 /* AND NVL(prt.CATEGORY_CODE, G_DEFAULT_CHAR) = NVL(p_category_code, NVL(prt.CATEGORY_CODE,G_DEFAULT_CHAR))
4106 AND NVL(prt.PARTY_ID, G_DEFAULT_NUM) = NVL(p_party_id, NVL(prt.PARTY_ID,G_DEFAULT_NUM))
4107 AND NVL(prt.PARTY_NUMBER, G_DEFAULT_CHAR) = NVL(p_party_number, NVL(prt.PARTY_NUMBER, G_DEFAULT_CHAR))
4108 AND NVL(prt.PARTY_NAME, G_DEFAULT_CHAR) = NVL(p_party_name, NVL(prt.PARTY_NAME, G_DEFAULT_CHAR))
4109 AND NVL(hps.PARTY_SITE_ID, G_DEFAULT_NUM) = NVL(p_party_site_id, NVL(hps.PARTY_SITE_ID, G_DEFAULT_NUM))
4110 AND NVL(hps.PARTY_SITE_NUMBER, G_DEFAULT_CHAR) = NVL(p_party_site_number, NVL(hps.PARTY_SITE_NUMBER, G_DEFAULT_CHAR))
4111 AND NVL(hps.PARTY_SITE_NAME, G_DEFAULT_CHAR) = NVL(p_party_site_name, NVL(hps.PARTY_SITE_NAME, G_DEFAULT_CHAR)) ;
4112 */
4113 --end modified by abhsaxen for 6689015 on 24-Jan-2008
4114 l_proc_name VARCHAR2(35) := 'GET_PARTY';
4115 party_failed EXCEPTION;
4116 r_party party_csr%ROWTYPE;
4117 l_count NUMBER := 0;
4118
4119
4120 BEGIN
4121
4122 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4123
4124 OPEN party_csr(p_intf_party_rec.party_name,
4125 p_intf_party_rec.party_id,
4126 p_intf_party_rec.party_number,
4127 p_intf_party_rec.party_site_name,
4128 p_intf_party_rec.party_site_id,
4129 p_intf_party_rec.party_site_number,
4130 p_intf_party_rec.party_category_code);
4131
4132 LOOP
4133
4134 FETCH party_csr INTO r_party;
4135 EXIT WHEN party_csr%NOTFOUND;
4136
4137 x_party_id := r_party.party_id;
4138 x_party_site_id := r_party.party_site_id;
4139 l_count := party_csr%ROWCOUNT;
4140
4141 END LOOP;
4142 CLOSE party_csr;
4143
4144 -- no row return or multiple rows return
4145 IF (l_count = 0 OR l_count > 1) THEN
4146 raise party_failed;
4147 END IF;
4148
4149 EXCEPTION
4150 WHEN party_failed THEN
4151
4152 IF party_csr%ISOPEN THEN
4153 CLOSE party_csr;
4154 END IF;
4155
4156 okl_api.set_message(
4157 G_APP_NAME,
4158 G_INVALID_VALUE,
4159 'CONTRACT_NUM',
4160 p_intf_party_rec.contract_number||'/'||TO_CHAR(p_intf_party_rec.line_number),
4161 'COL_NAME',
4162 -- 'PARTY_ID, NUMBER: ',
4163 p_intf_party_rec.intf_party_id || ', ' || p_intf_party_rec.intf_party_name || ', '
4164 || p_intf_party_rec.intf_party_number || '/' ||
4165 p_intf_party_rec.intf_party_site_id || ', ' || p_intf_party_rec.intf_party_site_name || ', '
4166 || p_intf_party_rec.intf_party_site_number || ': ',
4167 'COL_VALUE',
4168 p_intf_party_rec.party_id || ', ' || p_intf_party_rec.party_name || ', '
4169 || p_intf_party_rec.party_number || '/' ||
4170 p_intf_party_rec.party_site_id || ', ' || p_intf_party_rec.party_site_name || ', '
4171 || p_intf_party_rec.party_site_number || ': '
4172 );
4173 x_return_status := OKL_API.G_RET_STS_ERROR;
4174
4175
4176 WHEN OTHERS THEN
4177
4178 IF party_csr%ISOPEN THEN
4179 CLOSE party_csr;
4180 END IF;
4181
4182 okl_api.set_message(
4183 G_APP_NAME,
4184 G_UNEXPECTED_ERROR,
4185 'OKL_SQLCODE',
4186 SQLCODE,
4187 'OKL_SQLERRM',
4188 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
4189 );
4190
4191 x_return_status := OKL_API.G_RET_STS_ERROR;
4192
4193 END get_party;
4194 -- cklee end 02/23/2004
4195
4196
4197 ------------------------------------------------------------------------------
4198 -- PROCEDURE create_party_role
4199 -- It creates Party Role from Header Interface Record and retruns status to
4200 -- calling module for further processing.
4201 -- Calls:
4202 -- None
4203 -- Called By:
4204 -- load_input_record
4205 ------------------------------------------------------------------------------
4206 PROCEDURE create_party_role(
4207 x_return_status OUT NOCOPY VARCHAR2,
4208 x_msg_count OUT NOCOPY NUMBER,
4209 x_msg_data OUT NOCOPY VARCHAR2,
4210 p_contract_header_id IN okl_k_headers_v.id%TYPE,
4211 p_contract_number_old IN okc_k_headers_v.orig_system_reference1%TYPE,
4212 p_customer_id IN okl_header_interface.customer_id%TYPE,
4213 p_customer_number IN okl_header_interface.customer_number%TYPE,
4214 p_authoring_org_id IN okl_header_interface.authoring_org_id%TYPE,
4215 x_cplv_rec OUT NOCOPY cplv_rec_type ) IS
4216
4217 CURSOR customer_csr (p_customer_number OKX_PARTIES_V.PARTY_NUMBER%TYPE,
4218 p_customer_id OKX_PARTIES_V.ID1%TYPE) IS
4219 SELECT id1
4220 FROM okx_parties_v
4221 WHERE ((party_number = p_customer_number
4222 AND
4223 p_customer_number IS NOT NULL
4224 )
4225 OR
4226 (id1 = p_customer_id
4227 AND
4228 p_customer_id IS NOT NULL
4229 )
4230 );
4231
4232 l_id1 okx_parties_v.id1%TYPE;
4233 l_proc_name VARCHAR2(35) := 'CREATE_PARTY_ROLE';
4234 party_role_failed EXCEPTION;
4235 p_cplv_rec cplv_rec_type;
4236 l_kplv_rec kplv_rec_type;
4237 x_kplv_rec kplv_rec_type;
4238
4239 BEGIN
4240
4241 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4242
4243 /*
4244 OPEN customer_csr(p_customer_number,
4245 p_customer_id);
4246 FETCH customer_csr INTO l_id1;
4247 IF customer_csr%NOTFOUND THEN
4248 raise party_role_failed;
4249 END IF;
4250 CLOSE customer_csr;
4251
4252 g_customer_id := l_id1;
4253 */
4254
4255 -- Create LESSEE
4256 p_cplv_rec.chr_id := p_contract_header_id;
4257 p_cplv_rec.dnz_chr_id := p_contract_header_id;
4258 p_cplv_rec.object1_id1 := TO_CHAR(g_customer_id);
4259 --p_cplv_rec.object1_id1 := TO_CHAR(l_id1);
4260 p_cplv_rec.object1_id2 := '#';
4261 p_cplv_rec.jtot_object1_code := 'OKX_PARTY';
4262 p_cplv_rec.rle_code := 'LESSEE';
4263
4264 --OKL_OKC_MIGRATION_PVT.create_k_party_role( -- Contract addl field, Bug 4558486
4265 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
4266 p_api_version => 1.0,
4267 p_init_msg_list => OKL_API.G_FALSE,
4268 x_return_status => x_return_status,
4269 x_msg_count => x_msg_count,
4270 x_msg_data => x_msg_data,
4271 p_cplv_rec => p_cplv_rec,
4272 p_kplv_rec => l_kplv_rec,
4273 x_cplv_rec => x_cplv_rec,
4274 x_kplv_rec => x_kplv_rec
4275 );
4276
4277 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
4278 -- Create LESSOR
4279 p_cplv_rec.chr_id := p_contract_header_id;
4280 p_cplv_rec.dnz_chr_id := p_contract_header_id;
4281 p_cplv_rec.object1_id1 := TO_CHAR(p_authoring_org_id);
4282 p_cplv_rec.object1_id2 := '#';
4283 p_cplv_rec.jtot_object1_code := 'OKX_OPERUNIT';
4284 p_cplv_rec.rle_code := 'LESSOR';
4285
4286 -- OKL_OKC_MIGRATION_PVT.create_k_party_role( -- Contract addl field, Bug 4558486
4287 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
4288 p_api_version => 1.0,
4289 p_init_msg_list => OKL_API.G_FALSE,
4290 x_return_status => x_return_status,
4291 x_msg_count => x_msg_count,
4292 x_msg_data => x_msg_data,
4293 p_cplv_rec => p_cplv_rec,
4294 p_kplv_rec => l_kplv_rec,
4295 x_cplv_rec => x_cplv_rec,
4296 x_kplv_rec => x_kplv_rec
4297 );
4298 END IF;
4299
4300 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
4301 RAISE party_role_failed;
4302 END IF;
4303
4304 return;
4305
4306 EXCEPTION
4307 WHEN party_role_failed THEN
4308
4309 IF customer_csr%ISOPEN THEN
4310 CLOSE customer_csr;
4311 END IF;
4312
4313 okl_api.set_message(
4314 G_APP_NAME,
4315 G_INVALID_VALUE,
4316 'CONTRACT_NUM',
4317 p_contract_number_old,
4318 'COL_NAME',
4319 'CUSTOMER_ID, NUMBER: ',
4320 'COL_VALUE',
4321 p_customer_id||', '||p_customer_number
4322 );
4323
4324 x_return_status := OKL_API.G_RET_STS_ERROR;
4325
4326 WHEN OTHERS THEN
4327
4328 IF customer_csr%ISOPEN THEN
4329 CLOSE customer_csr;
4330 END IF;
4331
4332 okl_api.set_message(
4333 G_APP_NAME,
4334 G_UNEXPECTED_ERROR,
4335 'OKL_SQLCODE',
4336 SQLCODE,
4337 'OKL_SQLERRM',
4338 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
4339 );
4340
4341 x_return_status := OKL_API.G_RET_STS_ERROR;
4342
4343
4344 END create_party_role;
4345
4346 ------------------------------------------------------------------------------
4347 -- PROCEDURE get_bill_to_address_id
4348 -- It returns Bill To Address ID from bill to address number and
4349 -- stacks Error, if any, and returns ERROR status to calling process.
4350 -- Calls:
4351 -- None
4352 -- Called By:
4353 -- create_header_rules
4354 -- process_term
4355 ------------------------------------------------------------------------------
4356
4357 PROCEDURE get_bill_to_address_id(
4358 x_return_status OUT NOCOPY VARCHAR2,
4359 x_msg_count OUT NOCOPY NUMBER,
4360 x_msg_data OUT NOCOPY VARCHAR2,
4361 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
4362 p_auth_org_id IN okl_header_interface.authoring_org_id%TYPE,
4363 p_bill_to_address_id IN okl_header_interface.bill_to_address_id%TYPE,
4364 p_bill_to_address IN okl_header_interface.bill_to_address%TYPE,
4365 p_customer_account_id IN NUMBER,
4366 x_bill_to_address_id OUT NOCOPY NUMBER
4367 ) IS
4368
4369 CURSOR bill_csr (p_org_id NUMBER,
4370 p_bill_to_address VARCHAR2,
4371 p_bill_to_address_id NUMBER,
4372 p_customer_account_id NUMBER) IS
4373 SELECT site_use.id1
4374 FROM okx_cust_site_uses_v site_use,
4375 hz_cust_acct_sites_all site
4376 WHERE site.cust_acct_site_id = site_use.cust_acct_site_id
4377 AND ((site_use.name = p_bill_to_address
4378 AND
4379 p_bill_to_address IS NOT NULL)
4380 OR
4381 (site_use.id1 = p_bill_to_address_id
4382 AND
4383 p_bill_to_address_id IS NOT NULL
4384 )
4385 )
4386 AND site_use.org_id = p_org_id
4387 AND site.org_id = p_org_id
4388 AND site_use.site_use_code = 'BILL_TO'
4389 AND site_use.cust_account_id = p_customer_account_id
4390 AND site_use.b_status = 'A'
4391 AND site.status = 'A';
4392 --AND cust_acct_site_status = 'A';
4393
4394 l_proc_name VARCHAR2(35) := 'GET_BILL_TO_ADDRESS_ID';
4395 l_id okl_header_interface.bill_to_address_id%TYPE;
4396 bill_failed EXCEPTION;
4397
4398 BEGIN
4399
4400 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4401
4402
4403 OPEN bill_csr(p_auth_org_id,
4404 p_bill_to_address,
4405 p_bill_to_address_id,
4406 p_customer_account_id);
4407 FETCH bill_csr INTO l_id;
4408 IF bill_csr%NOTFOUND THEN
4409 raise bill_failed;
4410 END IF;
4411 CLOSE bill_csr;
4412
4413 x_bill_to_address_id := l_id;
4414
4415 return;
4416
4417 EXCEPTION
4418 WHEN bill_failed THEN
4419
4420 IF (bill_csr%ISOPEN) THEN
4421 CLOSE bill_csr;
4422 END IF;
4423
4424 okl_api.set_message(
4425 G_APP_NAME,
4426 G_INVALID_VALUE,
4427 'CONTRACT_NUM',
4428 p_contract_number,
4429 'COL_NAME',
4430 'BILL_TO_ADDRESS_ID, NAME',
4431 'COL_VALUE',
4432 p_bill_to_address_id||', '||p_bill_to_address
4433 );
4434 x_return_status := OKL_API.G_RET_STS_ERROR;
4435
4436 WHEN OTHERS THEN
4437 okl_api.set_message(
4438 G_APP_NAME,
4439 G_UNEXPECTED_ERROR,
4440 'OKL_SQLCODE',
4441 SQLCODE,
4442 'OKL_SQLERRM',
4443 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
4444 );
4445
4446 x_return_status := OKL_API.G_RET_STS_ERROR;
4447
4448
4449 END get_bill_to_address_id;
4450
4451 ------------------------------------------------------------------------------
4452 -- PROCEDURE get_bank_account_id
4453 -- It returns Bank account id from account Number and
4454 -- stacks Error, if any, and returns ERROR status to calling process.
4455 -- Calls:
4456 -- None
4457 -- Called By:
4458 -- create_header_rules
4459 -- process_term
4460 ------------------------------------------------------------------------------
4461
4462 PROCEDURE get_bank_account_id(
4463 x_return_status OUT NOCOPY VARCHAR2,
4464 x_msg_count OUT NOCOPY NUMBER,
4465 x_msg_data OUT NOCOPY VARCHAR2,
4466 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
4467 p_auth_org_id IN okl_header_interface.authoring_org_id%TYPE,
4468 p_bank_account_id IN okl_header_interface.bank_account_id%TYPE,
4469 p_bank_account_number IN okl_header_interface.bank_account_number%TYPE,
4470 p_customer_account_id IN NUMBER,
4471 p_cust_site_id IN NUMBER,
4472 x_bank_account_id OUT NOCOPY NUMBER
4473 ) IS
4474
4475 CURSOR bank_acct_csr(p_bank_acc_number VARCHAR2,
4476 p_bank_acc_id NUMBER,
4477 p_customer_acc_id NUMBER,
4478 p_cust_site_id NUMBER,
4479 p_org_id NUMBER) IS
4480 SELECT id1
4481 FROM okx_rcpt_method_accounts_v
4482 WHERE (
4483 (bank_account_num = p_bank_acc_number)
4484 OR
4485 (id1 = p_bank_acc_id)
4486 )
4487 AND customer_id = p_customer_acc_id
4488 -- udhenuko Bug#5925603 : Start
4489 --AND customer_site_use_id =p_cust_site_id
4490 AND ((customer_site_use_id = p_cust_site_id)
4491 or ( customer_site_use_id IS NULL) )
4492 --Bug#5925603: End
4493 -- rbanerje Bug#5925603(Release bug 7355967) : Start
4494 -- AND org_id = p_org_id
4495 -- rbanerje Bug#5925603(Release bug 7355967) : End
4496 AND TRUNC(SYSDATE) between NVL(START_DATE_ACTIVE, TRUNC(SYSDATE)) AND NVL(END_DATE_ACTIVE,TRUNC(SYSDATE))
4497 -- udhenuko Bug#5925603 : added order clause so that one used at site level will take precedence
4498 ORDER BY CUSTOMER_SITE_USE_ID;
4499 --Bug#5925603 : End
4500
4501 l_id OKX_RCPT_METHOD_ACCOUNTS_V.ID1%TYPE;
4502 bank_acct_failed EXCEPTION;
4503 l_proc_name VARCHAR2(35) := 'GET_BANK_ACCOUNT_ID';
4504
4505 BEGIN
4506
4507 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4508
4509 OPEN bank_acct_csr(p_bank_account_number,
4510 p_bank_account_id,
4511 p_customer_account_id,
4512 p_cust_site_id,
4513 p_auth_org_id);
4514 FETCH bank_acct_csr INTO l_id;
4515 IF bank_acct_csr%NOTFOUND THEN
4516 raise bank_acct_failed;
4517 END IF;
4518 CLOSE bank_acct_csr;
4519
4520 x_bank_account_id := l_id;
4521
4522 return;
4523
4524 EXCEPTION
4525 WHEN bank_acct_failed THEN
4526
4527 IF (bank_acct_csr%ISOPEN) THEN
4528 CLOSE bank_acct_csr;
4529 END IF;
4530
4531 okl_api.set_message(
4532 G_APP_NAME,
4533 G_INVALID_VALUE,
4534 'CONTRACT_NUM',
4535 p_contract_number,
4536 'COL_NAME',
4537 'BANK_ACCOUNT_ID, NUMBER: ',
4538 'COL_VALUE',
4539 p_bank_account_id||', '||p_bank_account_number
4540 );
4541 x_return_status := OKL_API.G_RET_STS_ERROR;
4542
4543 WHEN OTHERS THEN
4544
4545 okl_api.set_message(
4546 G_APP_NAME,
4547 G_UNEXPECTED_ERROR,
4548 'OKL_SQLCODE',
4549 SQLCODE,
4550 'OKL_SQLERRM',
4551 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
4552 );
4553
4554 x_return_status := OKL_API.G_RET_STS_ERROR;
4555
4556 END get_bank_account_id;
4557
4558 ------------------------------------------------------------------------------
4559 -- PROCEDURE get_index_id
4560 -- It returns Index Id for a given Index Name and
4561 -- stacks Error, if any, and returns ERROR status to calling process.
4562 -- Calls:
4563 -- None
4564 -- Called By:
4565 -- create_header_rules
4566 ------------------------------------------------------------------------------
4567 PROCEDURE get_index_id(
4568 x_return_status OUT NOCOPY VARCHAR2,
4569 p_index_name IN okl_header_interface.index_name%TYPE,
4570 x_index_id OUT NOCOPY okl_indices.id%TYPE
4571 ) IS
4572
4573 CURSOR index_csr (p_index_name okl_header_interface.index_name%TYPE) IS
4574 SELECT id
4575 FROM okl_indices
4576 WHERE name = p_index_name;
4577
4578 l_proc_name VARCHAR2(35) := 'GET_INDEX_ID';
4579 l_id okl_indices.id%TYPE;
4580 index_failed EXCEPTION;
4581
4582 BEGIN
4583 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4584 OPEN index_csr (p_index_name);
4585 FETCH index_csr INTO l_id;
4586 IF index_csr%NOTFOUND THEN
4587 raise index_failed;
4588 END IF;
4589 CLOSE index_csr;
4590
4591 x_index_id := l_id;
4592
4593 RETURN;
4594
4595 EXCEPTION
4596 WHEN index_failed THEN
4597 --x_return_status := OKL_API.G_RET_STS_SUCCESS;
4598 x_return_status := OKL_API.G_RET_STS_ERROR; -- Bug 5024651
4599 WHEN OTHERS THEN
4600 x_return_status := OKL_API.G_RET_STS_ERROR;
4601 END get_index_id;
4602
4603 ------------------------------------------------------------------------------
4604 -- PROCEDURE get_payment_term
4605 -- It returns payment term id after validation and
4606 -- stacks Error, if any, and returns ERROR status to calling process.
4607 -- Calls:
4608 -- None
4609 -- Called By:
4610 ------------------------------------------------------------------------------
4611 FUNCTION get_payment_term(
4612 x_return_status OUT NOCOPY VARCHAR2,
4613 p_contract_number IN OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
4614 p_line_number IN OKL_LINES_INTERFACE.LINE_NUMBER%TYPE,
4615 p_payment_term IN OKL_LINES_INTERFACE.PAYMENT_TERM%TYPE,
4616 p_payment_term_id IN OKL_LINES_INTERFACE.PAYMENT_TERM_ID%TYPE
4617 )
4618 RETURN NUMBER IS
4619
4620 CURSOR term_csr (p_payment_term VARCHAR2,
4621 p_payment_term_id NUMBER) IS
4622 SELECT id1
4623 FROM okx_payables_terms_v
4624 WHERE (name = p_payment_term
4625 AND
4626 p_payment_term IS NOT NULL)
4627 OR (id1 = p_payment_term_id
4628 AND
4629 p_payment_term_id IS NOT NULL)
4630 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(start_date_active),TRUNC(SYSDATE))
4631 AND NVL(TRUNC(end_date_active), TRUNC(SYSDATE));
4632
4633 l_id1 OKX_PAYABLES_TERMS_V.ID1%TYPE;
4634 BEGIN
4635
4636 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4637
4638 OPEN term_csr (p_payment_term,
4639 p_payment_term_id);
4640 FETCH term_csr INTO l_id1;
4641 IF term_csr%NOTFOUND THEN
4642 okl_api.set_message(
4643 G_APP_NAME,
4644 G_INVALID_VALUE,
4645 'CONTRACT_NUM/LINE_NUMBER',
4646 p_contract_number||'/'||p_line_number,
4647 'COL_NAME',
4648 'PAYMENT_TERM OR PAYMENT_TERM_ID',
4649 'COL_VALUE',
4650 p_payment_term||', '||p_payment_term_id
4651 );
4652 x_return_status := OKL_API.G_RET_STS_ERROR;
4653 RETURN NULL;
4654 END IF;
4655 CLOSE term_csr;
4656
4657 RETURN l_id1;
4658
4659 END get_payment_term;
4660
4661 ------------------------------------------------------------------------------
4662 -- PROCEDURE get_vendor_paysite
4663 -- It returns vendor Pay-site info and
4664 -- stacks Error, if any, and returns ERROR status to calling process.
4665 -- Calls:
4666 -- None
4667 -- Called By:
4668 ------------------------------------------------------------------------------
4669 FUNCTION get_vendor_paysite(
4670 x_return_status OUT NOCOPY VARCHAR2,
4671 p_contract_number IN OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
4672 p_line_number IN OKL_LINES_INTERFACE.LINE_NUMBER%TYPE,
4673 p_vendor_paysite_name IN OKL_LINES_INTERFACE.VENDOR_PAYSITE_NAME%TYPE,
4674 p_vendor_paysite_id IN OKL_LINES_INTERFACE.VENDOR_PAYSITE_ID%TYPE
4675 )
4676 RETURN NUMBER IS
4677 CURSOR site_csr (p_name VARCHAR2,
4678 p_id NUMBER) IS
4679 SELECT id1
4680 FROM okx_vendor_sites_v
4681 WHERE (name = p_name
4682 AND
4683 p_name IS NOT NULL)
4684 OR
4685 (id1 = p_id
4686 AND
4687 p_id IS NOT NULL)
4688 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(start_date_active), TRUNC(SYSDATE))
4689 AND NVL(TRUNC(end_date_active), TRUNC(SYSDATE));
4690
4691 l_id1 okx_vendor_sites_v.id1%TYPE;
4692 BEGIN
4693
4694 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4695
4696 OPEN site_csr (p_vendor_paysite_name,
4697 p_vendor_paysite_id);
4698 FETCH site_csr INTO l_id1;
4699 IF site_csr%NOTFOUND THEN
4700 okl_api.set_message(
4701 G_APP_NAME,
4702 G_INVALID_VALUE,
4703 'CONTRACT_NUM/LINE_NUMBER',
4704 p_contract_number||'/'||p_line_number,
4705 'COL_NAME',
4706 'VENDOR PAY SITE NAME OR VENDOR PAYSITE ID',
4707 'COL_VALUE',
4708 p_vendor_paysite_name||', '||p_vendor_paysite_id
4709 );
4710 x_return_status := OKL_API.G_RET_STS_ERROR;
4711 RETURN NULL;
4712 END IF;
4713 CLOSE site_csr;
4714
4715 RETURN l_id1;
4716
4717 END get_vendor_paysite;
4718
4719 ------------------------------------------------------------------------------
4720 -- PROCEDURE get_invoice_format
4721 -- It returns Invoice Format id from Format Code and
4722 -- stacks Error, if any, and returns ERROR status to calling process.
4723 -- Calls:
4724 -- None
4725 -- Called By:
4726 -- create_header_rules
4727 -- process_term
4728 ------------------------------------------------------------------------------
4729
4730 PROCEDURE get_invoice_format_id(
4731 x_return_status OUT NOCOPY VARCHAR2,
4732 x_msg_count OUT NOCOPY NUMBER,
4733 x_msg_data OUT NOCOPY VARCHAR2,
4734 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
4735 p_invoice_format_id IN okl_header_interface.invoice_format_id%TYPE,
4736 p_invoice_format_code IN okl_header_interface.invoice_format_code%TYPE,
4737 x_invoice_format_id OUT NOCOPY NUMBER,
4738 x_invoice_format_name OUT NOCOPY VARCHAR2
4739 ) IS
4740
4741 CURSOR inv_format_csr(p_invoice_format_code VARCHAR2,
4742 p_invoice_format_id NUMBER) IS
4743 SELECT id,
4744 name
4745 FROM okl_invoice_formats_v
4746 WHERE ((name = p_invoice_format_code
4747 AND
4748 p_invoice_format_code IS NOT NULL)
4749 OR
4750 (id = p_invoice_format_id
4751 AND
4752 p_invoice_format_id IS NOT NULL
4753 )
4754 )
4755 AND TRUNC(SYSDATE) between NVL(START_DATE, TRUNC(SYSDATE)) AND NVL(END_DATE,TRUNC(SYSDATE));
4756
4757 l_id OKL_INVOICE_FORMATS_V.ID%TYPE;
4758 l_name OKL_INVOICE_FORMATS_V.NAME%TYPE;
4759 inv_format_failed EXCEPTION;
4760 l_proc_name VARCHAR2(35) := 'GET_INVOICE_FORMAT_ID';
4761
4762 BEGIN
4763
4764 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4765
4766 OPEN inv_format_csr(p_invoice_format_code,
4767 p_invoice_format_id);
4768 FETCH inv_format_csr INTO l_id,
4769 l_name;
4770 IF inv_format_csr%NOTFOUND THEN
4771 raise inv_format_failed;
4772 END IF;
4773 CLOSE inv_format_csr;
4774
4775 x_invoice_format_id := l_id;
4776 x_invoice_format_name := l_name;
4777 return;
4778
4779 EXCEPTION
4780 WHEN inv_format_failed THEN
4781
4782 IF (inv_format_csr%ISOPEN) THEN
4783 CLOSE inv_format_csr;
4784 END IF;
4785
4786 okl_api.set_message(
4787 G_APP_NAME,
4788 G_INVALID_VALUE,
4789 'CONTRACT_NUM',
4790 p_contract_number,
4791 'COL_NAME',
4792 'INVOICE_FORMAT_ID, CODE',
4793 'COL_VALUE',
4794 p_invoice_format_id||', '||p_invoice_format_code
4795 );
4796 x_return_status := OKL_API.G_RET_STS_ERROR;
4797
4798 WHEN OTHERS THEN
4799
4800 okl_api.set_message(
4801 G_APP_NAME,
4802 G_UNEXPECTED_ERROR,
4803 'OKL_SQLCODE',
4804 SQLCODE,
4805 'OKL_SQLERRM',
4806 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
4807 );
4808
4809 x_return_status := OKL_API.G_RET_STS_ERROR;
4810
4811 END get_invoice_format_id;
4812
4813 ------------------------------------------------------------------------------
4814 -- PROCEDURE get_payment_method_id
4815 -- It returns Payment Method id from Payment Method
4816 -- stacks Error, if any, and returns ERROR status to calling process.
4817 -- Calls:
4818 -- None
4819 -- Called By:
4820 -- create_header_rules
4821 -- process_term
4822 ------------------------------------------------------------------------------
4823
4824 PROCEDURE get_payment_method_id(
4825 x_return_status OUT NOCOPY VARCHAR2,
4826 x_msg_count OUT NOCOPY NUMBER,
4827 x_msg_data OUT NOCOPY VARCHAR2,
4828 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
4829 p_customer_account_id IN okl_header_interface.customer_account_id%TYPE,
4830 p_bill_to_address_id IN okl_header_interface.bill_to_address_id%TYPE,
4831 p_payment_method_id IN okl_header_interface.payment_method_id%TYPE,
4832 p_payment_method IN okl_header_interface.payment_method%TYPE,
4833 x_payment_method_id OUT NOCOPY NUMBER
4834 ) IS
4835
4836 CURSOR payment_csr(p_payment_method VARCHAR2,
4837 p_payment_method_id NUMBER,
4838 p_customer_acc_id NUMBER,
4839 p_bill_to_address_id NUMBER) IS
4840 SELECT id1
4841 FROM okx_receipt_methods_v
4842 WHERE ((name = p_payment_method
4843 AND
4844 p_payment_method IS NOT NULL)
4845 OR
4846 (id1 = p_payment_method_id
4847 AND
4848 p_payment_method_id IS NOT NULL))
4849 AND customer_id = p_customer_acc_id
4850 AND (site_use_id = p_bill_to_address_id
4851 OR
4852 site_use_id IS NULL)
4853 AND TRUNC(SYSDATE) between NVL(START_DATE_ACTIVE, TRUNC(SYSDATE)) AND NVL(END_DATE_ACTIVE,TRUNC(SYSDATE));
4854
4855 l_id OKX_RECEIPT_METHODS_V.ID1%TYPE;
4856 payment_failed EXCEPTION;
4857 l_proc_name VARCHAR2(35) := 'GET_PAYMENT_METHOD_ID';
4858
4859 BEGIN
4860
4861 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4862
4863 debug_message(p_payment_method||','||p_customer_account_id||', '||p_bill_to_address_id);
4864 OPEN payment_csr(p_payment_method,
4865 p_payment_method_id,
4866 p_customer_account_id,
4867 p_bill_to_address_id);
4868 FETCH payment_csr INTO l_id;
4869 IF payment_csr%NOTFOUND THEN
4870 raise payment_failed;
4871 END IF;
4872 CLOSE payment_csr;
4873
4874 x_payment_method_id := l_id;
4875 debug_message('PMNT ID: '||x_payment_method_id);
4876 return;
4877
4878 EXCEPTION
4879 WHEN payment_failed THEN
4880
4881 IF (payment_csr%ISOPEN) THEN
4882 CLOSE payment_csr;
4883 END IF;
4884
4885 okl_api.set_message(
4886 G_APP_NAME,
4887 G_INVALID_VALUE,
4888 'CONTRACT_NUM',
4889 p_contract_number,
4890 'COL_NAME',
4891 'PAYMENT_METHOD, ID',
4892 'COL_VALUE',
4893 p_payment_method||', '||p_payment_method_id
4894 );
4895 x_return_status := OKL_API.G_RET_STS_ERROR;
4896
4897 WHEN OTHERS THEN
4898
4899 okl_api.set_message(
4900 G_APP_NAME,
4901 G_UNEXPECTED_ERROR,
4902 'OKL_SQLCODE',
4903 SQLCODE,
4904 'OKL_SQLERRM',
4905 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
4906 );
4907
4908 x_return_status := OKL_API.G_RET_STS_ERROR;
4909
4910 END get_payment_method_id;
4911
4912 ------------------------------------------------------------------------------
4913 -- PROCEDURE get_customer_account_id
4914 -- It returns customer account id from account Number and
4915 -- stacks Error, if any, and returns ERROR status to calling process.
4916 -- validate against customer
4917 -- Calls:
4918 -- None
4919 -- Called By:
4920 -- create_header_rules
4921 ------------------------------------------------------------------------------
4922
4923 PROCEDURE get_customer_account_id(
4924 x_return_status OUT NOCOPY VARCHAR2,
4925 x_msg_count OUT NOCOPY NUMBER,
4926 x_msg_data OUT NOCOPY VARCHAR2,
4927 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
4928 p_customer_id IN okl_header_interface.customer_id%TYPE,
4929 p_customer_account_id IN okl_header_interface.customer_account_id%TYPE,
4930 p_customer_account_number IN okl_header_interface.customer_account_number%TYPE,
4931 x_customer_account_id OUT NOCOPY NUMBER
4932 ) IS
4933
4934 CURSOR cust_acct_csr(p_cust_id NUMBER,
4935 p_cust_acc_number VARCHAR2,
4936 p_customer_account_id NUMBER) IS
4937 SELECT id1
4938 FROM okx_customer_accounts_v
4939 WHERE ((description = p_cust_acc_number
4940 AND
4941 p_cust_acc_number IS NOT NULL)
4942 OR
4943 (id1 = p_customer_account_id
4944 AND
4945 p_customer_account_id IS NOT NULL
4946 )
4947 )
4948 AND party_id = p_cust_id
4949 AND status = 'A';
4950
4951 l_id OKX_CUSTOMER_ACCOUNTS_V.ID1%TYPE;
4952 cust_acct_failed EXCEPTION;
4953 l_proc_name VARCHAR2(35) := 'GET_CUSTOMER_ACCOUNT_ID';
4954
4955 BEGIN
4956
4957 x_return_status := OKL_API.G_RET_STS_SUCCESS;
4958
4959 debug_message('Customer Account ID: '||p_customer_account_id);
4960
4961 OPEN cust_acct_csr(p_customer_id,
4962 p_customer_account_number,
4963 p_customer_account_id);
4964 FETCH cust_acct_csr INTO l_id;
4965 IF cust_acct_csr%NOTFOUND THEN
4966 raise cust_acct_failed;
4967 END IF;
4968 CLOSE cust_acct_csr;
4969
4970 x_customer_account_id := l_id;
4971
4972 return;
4973
4974 EXCEPTION
4975 WHEN cust_acct_failed THEN
4976
4977 IF (cust_acct_csr%ISOPEN) THEN
4978 CLOSE cust_acct_csr;
4979 END IF;
4980
4981 okl_api.set_message(
4982 G_APP_NAME,
4983 G_INVALID_VALUE,
4984 'CONTRACT_NUM',
4985 p_contract_number,
4986 'COL_NAME',
4987 'CUSTOMER_ACCOUNT, ID',
4988 'COL_VALUE',
4989 p_customer_account_number||', '||p_customer_account_id
4990 );
4991 x_return_status := OKL_API.G_RET_STS_ERROR;
4992
4993 WHEN OTHERS THEN
4994
4995 okl_api.set_message(
4996 G_APP_NAME,
4997 G_UNEXPECTED_ERROR,
4998 'OKL_SQLCODE',
4999 SQLCODE,
5000 'OKL_SQLERRM',
5001 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
5002 );
5003
5004 x_return_status := OKL_API.G_RET_STS_ERROR;
5005
5006 END get_customer_account_id;
5007
5008 ------------------------------------------------------------------------------
5009 -- PROCEDURE get_customer_account_id
5010 -- It returns customer account id from account Number and
5011 -- stacks Error, if any, and returns ERROR status to calling process.
5012 -- Calls:
5013 -- None
5014 -- Called By:
5015 -- create_header_rules
5016 ------------------------------------------------------------------------------
5017
5018 PROCEDURE get_customer_account_id(
5019 x_return_status OUT NOCOPY VARCHAR2,
5020 x_msg_count OUT NOCOPY NUMBER,
5021 x_msg_data OUT NOCOPY VARCHAR2,
5022 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
5023 p_customer_account_id IN okl_header_interface.customer_account_id%TYPE,
5024 p_customer_account_number IN okl_header_interface.customer_account_number%TYPE,
5025 x_customer_account_id OUT NOCOPY NUMBER
5026 ) IS
5027
5028 CURSOR cust_acct_csr(p_cust_acc_number VARCHAR2,
5029 p_customer_account_id NUMBER) IS
5030 SELECT id1
5031 FROM okx_customer_accounts_v
5032 WHERE ((description = p_cust_acc_number
5033 AND
5034 p_cust_acc_number IS NOT NULL)
5035 OR
5036 (id1 = p_customer_account_id
5037 AND
5038 p_customer_account_id IS NOT NULL
5039 )
5040 )
5041 AND status = 'A';
5042
5043 l_id OKX_CUSTOMER_ACCOUNTS_V.ID1%TYPE;
5044 cust_acct_failed EXCEPTION;
5045 l_proc_name VARCHAR2(35) := 'GET_CUSTOMER_ACCOUNT_ID';
5046
5047 BEGIN
5048
5049 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5050
5051 OPEN cust_acct_csr(p_customer_account_number,
5052 p_customer_account_id);
5053 FETCH cust_acct_csr INTO l_id;
5054 IF cust_acct_csr%NOTFOUND THEN
5055 raise cust_acct_failed;
5056 END IF;
5057 CLOSE cust_acct_csr;
5058
5059 x_customer_account_id := l_id;
5060
5061 return;
5062
5063 EXCEPTION
5064 WHEN cust_acct_failed THEN
5065
5066 IF (cust_acct_csr%ISOPEN) THEN
5067 CLOSE cust_acct_csr;
5068 END IF;
5069
5070 okl_api.set_message(
5071 G_APP_NAME,
5072 G_INVALID_VALUE,
5073 'CONTRACT_NUM',
5074 p_contract_number,
5075 'COL_NAME',
5076 'CUSTOMER_ACCOUNT, ID',
5077 'COL_VALUE',
5078 p_customer_account_number||', '||p_customer_account_id
5079 );
5080 x_return_status := OKL_API.G_RET_STS_ERROR;
5081
5082 WHEN OTHERS THEN
5083
5084 okl_api.set_message(
5085 G_APP_NAME,
5086 G_UNEXPECTED_ERROR,
5087 'OKL_SQLCODE',
5088 SQLCODE,
5089 'OKL_SQLERRM',
5090 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
5091 );
5092
5093 x_return_status := OKL_API.G_RET_STS_ERROR;
5094
5095 END get_customer_account_id;
5096
5097 ------------------------------------------------------------------------------
5098 -- PROCEDURE get_base_uom_id
5099 -- It returns Base Reading UOM ID from Code and
5100 -- stacks Error, if any, and returns ERROR status to calling process.
5101 -- p_rgp_id = Rule Group ID, create rule group if it is null, otherwise use it
5102 -- Calls:
5103 -- Called By:
5104 ------------------------------------------------------------------------------
5105 PROCEDURE get_base_uom_id(
5106 x_return_status OUT NOCOPY VARCHAR2,
5107 p_base_uom_code IN okx_tuom_v.id1%TYPE,
5108 x_base_uom_id OUT NOCOPY okx_tuom_v.id1%TYPE
5109 ) IS
5110 l_proc_name VARCHAR2(35) := 'GET_BASE_UOM_ID';
5111 CURSOR uom_csr (p_base_uom_code VARCHAR2) IS
5112 SELECT id1
5113 FROM okx_tuom_v
5114 WHERE uom_code = p_base_uom_code;
5115
5116 uom_failed EXCEPTION;
5117 l_id okx_tuom_v.id1%TYPE;
5118
5119 BEGIN
5120 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5121 OPEN uom_csr(p_base_uom_code);
5122 FETCH uom_csr INTO l_id;
5123 IF uom_csr%NOTFOUND THEN
5124 RAISE uom_failed;
5125 END IF;
5126
5127 CLOSE uom_csr;
5128 x_base_uom_id := l_id;
5129
5130 RETURN;
5131
5132 EXCEPTION
5133 WHEN uom_failed THEN
5134 IF uom_csr%ISOPEN THEN
5135 CLOSE uom_csr;
5136 END IF;
5137 x_return_status := OKL_API.G_RET_STS_ERROR;
5138
5139 END get_base_uom_id;
5140
5141 ------------------------------------------------------------------------------
5142 -- PROCEDURE get_price_list_id
5143 -- It returns Price List ID from Name and
5144 -- stacks Error, if any, and returns ERROR status to calling process.
5145 -- p_rgp_id = Rule Group ID, create rule group if it is null, otherwise use it
5146 -- Calls:
5147 -- Called By:
5148 ------------------------------------------------------------------------------
5149 PROCEDURE get_price_list_id(
5150 x_return_status OUT NOCOPY VARCHAR2,
5151 p_price_list_name IN okx_list_headers_v.name%TYPE,
5152 p_price_list_id IN okx_list_headers_v.id1%TYPE,
5153 x_price_list_id OUT NOCOPY okx_list_headers_v.id1%TYPE
5154 ) IS
5155
5156 l_proc_name VARCHAR2(35) := 'GET_PRICE_LIST_ID';
5157 CURSOR price_csr (p_price_list_name VARCHAR2,
5158 p_price_list_id NUMBER) IS
5159 SELECT id1
5160 FROM okx_list_headers_v
5161 WHERE list_type_code = 'PRL'
5162 AND ((name = p_price_list_name
5163 AND
5164 p_price_list_name IS NOT NULL
5165 )
5166 OR
5167 (id1 = p_price_list_id
5168 AND
5169 p_price_list_id IS NOT NULL
5170 )
5171 )
5172 AND SYSDATE BETWEEN NVL(start_date_active,SYSDATE) AND NVL(end_date_active, SYSDATE);
5173
5174 l_id okx_list_headers_v.id1%TYPE;
5175 price_failed EXCEPTION;
5176
5177 BEGIN
5178 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5179 OPEN price_csr(p_price_list_name,
5180 p_price_list_id);
5181 FETCH price_csr INTO l_id;
5182 IF price_csr%NOTFOUND THEN
5183 RAISE price_failed;
5184 END IF;
5185
5186 CLOSE price_csr;
5187 x_price_list_id := l_id;
5188
5189 RETURN;
5190
5191 EXCEPTION
5192 WHEN price_failed THEN
5193 IF price_csr%ISOPEN THEN
5194 CLOSE price_csr;
5195 END IF;
5196 x_return_status := OKL_API.G_RET_STS_ERROR;
5197 END get_price_list_id;
5198
5199 ------------------------------------------------------------------------------
5200 -- PROCEDURE get_usage_item_id
5201 -- It returns USAGE ITEM ID from Number and
5202 -- stacks Error, if any, and returns ERROR status to calling process.
5203 -- p_rgp_id = Rule Group ID, create rule group if it is null, otherwise use it
5204 -- Calls:
5205 -- Called By:
5206 ------------------------------------------------------------------------------
5207 PROCEDURE get_usage_item_id(
5208 x_return_status OUT NOCOPY VARCHAR2,
5209 p_usage_item_name IN okx_system_items_v.name%TYPE,
5210 p_usage_item_id IN okx_system_items_v.id1%TYPE,
5211 p_org_id IN NUMBER,
5212 x_usage_item_id OUT NOCOPY okx_system_items_v.id1%TYPE,
5213 x_usage_id2 OUT NOCOPY okx_system_items_v.id2%TYPE
5214 ) IS
5215
5216 l_proc_name VARCHAR2(35) := 'GET_USAGE_ITEM_ID';
5217 CURSOR uitem_csr (p_item_name VARCHAR2,
5218 p_item_id NUMBER,
5219 p_org_id NUMBER) IS
5220 SELECT id1,
5221 id2
5222 FROM okx_system_items_v
5223 WHERE usage_item_flag = 'Y'
5224 AND organization_id = p_org_id
5225 AND ((name = p_item_name
5226 AND
5227 p_item_name IS NOT NULL
5228 )
5229 OR
5230 (id1 = p_item_id
5231 AND
5232 p_item_id IS NOT NULL
5233 )
5234 );
5235
5236 uitem_failed EXCEPTION;
5237 l_id1 okx_system_items_v.id1%TYPE;
5238 l_id2 okx_system_items_v.id2%TYPE;
5239
5240 BEGIN
5241 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5242 OPEN uitem_csr(p_usage_item_name,
5243 p_usage_item_id,
5244 p_org_id);
5245 FETCH uitem_csr INTO l_id1,
5246 l_id2;
5247 IF uitem_csr%NOTFOUND THEN
5248 RAISE uitem_failed;
5249 END IF;
5250
5251 CLOSE uitem_csr;
5252 x_usage_item_id := l_id1;
5253 x_usage_id2 := l_id2;
5254
5255 RETURN;
5256
5257 EXCEPTION
5258 WHEN uitem_failed THEN
5259 IF uitem_csr%ISOPEN THEN
5260 CLOSE uitem_csr;
5261 END IF;
5262 x_return_status := OKL_API.G_RET_STS_ERROR;
5263 END get_usage_item_id;
5264
5265 ------------------------------------------------------------------------------
5266 -- PROCEDURE create_rule_group_and_rule
5267 -- It creates rule group ad rules and
5268 -- stacks Error, if any, and returns ERROR status to calling process.
5269 -- p_rgp_id = Rule Group ID, create rule group if it is null, otherwise use it
5270 -- Calls:
5271 -- Called By:
5272 ------------------------------------------------------------------------------
5273 PROCEDURE create_rule_group_and_rule(
5274 x_return_status OUT NOCOPY VARCHAR2,
5275 x_msg_count OUT NOCOPY NUMBER,
5276 x_msg_data OUT NOCOPY VARCHAR2,
5277 p_rgp_id IN NUMBER,
5278 p_rgpv_rec IN rgpv_rec_type,
5279 p_rulv_rec IN rulv_rec_type,
5280 x_rgpv_rec OUT NOCOPY rgpv_rec_type,
5281 x_rulv_rec OUT NOCOPY rulv_rec_type
5282 ) IS
5283
5284 l_proc_name VARCHAR2(35) := 'CREATE_RULE_GROUP_AND_RULE';
5285 l_id NUMBER;
5286 rg_failed EXCEPTION;
5287 l_rulv_rec_in rulv_rec_type;
5288
5289 BEGIN
5290
5291 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5292
5293 -- Check for presence of RULE info, if not RETURN with SUCCESS
5294 IF (p_rulv_rec.rule_information_category IS NULL) THEN
5295 RETURN;
5296 END IF;
5297
5298 --IF (p_rgp_id IS NULL) THEN -- create rule group
5299 --Bug# 4284166 : Added check for p_rgp_id = OKC_API.G_MISS_NUM in if statement
5300 IF (p_rgp_id IS NULL or p_rgp_id = OKC_API.G_MISS_NUM) THEN -- create rule group
5301
5302 OKL_RULE_PUB.create_rule_group(
5303 p_api_version => 1.0,
5304 p_init_msg_list => OKL_API.G_FALSE,
5305 x_return_status => x_return_status,
5306 x_msg_count => x_msg_count,
5307 x_msg_data => x_msg_data,
5308 p_rgpv_rec => p_rgpv_rec,
5309 x_rgpv_rec => x_rgpv_rec
5310 );
5311 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
5312 x_return_status := OKL_API.G_RET_STS_ERROR;
5313 raise rg_failed;
5314 END IF;
5315
5316 l_id := x_rgpv_rec.id;
5317
5318 ELSE
5319 l_id := p_rgp_id;
5320
5321 END IF; --rule_group
5322
5323 -- create rule now
5324 l_rulv_rec_in := p_rulv_rec;
5325 l_rulv_rec_in.rgp_id := l_id;
5326
5327 OKL_RULE_PUB.create_rule(
5328 p_api_version => 1.0,
5329 p_init_msg_list => OKL_API.G_FALSE,
5330 x_return_status => x_return_status,
5331 x_msg_count => x_msg_count,
5332 x_msg_data => x_msg_data,
5333 p_rulv_rec => l_rulv_rec_in,
5334 x_rulv_rec => x_rulv_rec
5335 );
5336
5337 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
5338 x_return_status := OKL_API.G_RET_STS_ERROR;
5339 raise rg_failed;
5340 END IF;
5341
5342 RETURN;
5343
5344 EXCEPTION
5345 WHEN rg_failed THEN
5346 x_return_status := OKL_API.G_RET_STS_ERROR;
5347 END create_rule_group_and_rule;
5348
5349 ------------------------------------------------------------------------------
5350 -- PROCEDURE create_update_asset_rules
5351 -- It creates or updates rules and
5352 -- stacks Error, if any, and returns ERROR status to calling process.
5353 -- p_rgp_id = Rule Group ID, create rule group if it is null, otherwise use it
5354 -- Calls:
5355 -- Called By:
5356 ------------------------------------------------------------------------------
5357 PROCEDURE create_update_asset_rules(
5358 x_return_status OUT NOCOPY VARCHAR2,
5359 x_msg_count OUT NOCOPY NUMBER,
5360 x_msg_data OUT NOCOPY VARCHAR2,
5361 p_chr_id IN okc_k_headers_v.id%TYPE,
5362 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
5363 p_cle_id IN okl_k_lines_v.id%TYPE,
5364 p_line_number IN okc_k_lines_v.line_number%TYPE,
5365 p_line_type IN okl_lines_interface.line_type%TYPE,
5366 p_inv_org_id IN okl_lines_interface.inventory_organization_id%TYPE,
5367 p_sales_tax_exempt_flag IN okl_lines_interface.sales_tax_exempt_flag%TYPE,
5368 p_sales_tax_exempt_cert_number IN okl_lines_interface.sales_tax_exempt_cert_number%TYPE,
5369 p_sales_tax_override_flag IN okl_lines_interface.sales_tax_override_flag%TYPE,
5370 p_sales_tax_override_rate IN okl_lines_interface.sales_tax_override_rate%TYPE,
5371 p_st_upd_lines_from_contract IN okl_lines_interface.st_update_lines_from_contract%TYPE,
5372 p_st_transfer_of_title IN okl_lines_interface.st_transfer_of_title%TYPE,
5373 p_st_sale_and_lease_back IN okl_lines_interface.st_sale_and_lease_back%TYPE,
5374 p_st_purchase_of_lease IN okl_lines_interface.st_purchase_of_lease%TYPE,
5375 p_st_equipment_usage IN okl_lines_interface.st_equipment_usage%TYPE,
5376 p_st_equipment_age IN okl_lines_interface.st_equipment_age%TYPE,
5377 p_st_asset_upfront_tax IN okl_lines_interface.st_asset_upfront_tax%TYPE,
5378 p_vat_tax_exempt IN okl_lines_interface.vat_tax_exempt%TYPE,
5379 p_vat_tax_exempt_cert_number IN okl_lines_interface.vat_tax_exempt_cert_number%TYPE,
5380 p_vat_tax_override_flag IN okl_lines_interface.vat_tax_override_flag%TYPE,
5381 p_vat_tax_override_rate IN okl_lines_interface.vat_tax_override_rate%TYPE,
5382 p_prop_tax_applicable IN okl_lines_interface.prop_tax_applicable%TYPE,
5383 p_prop_tax_lease_rep IN okl_lines_interface.prop_tax_lease_rep%TYPE,
5384 p_french_tax_code IN okl_lines_interface.french_tax_code%TYPE,
5385 p_french_tax_name IN okl_lines_interface.french_tax_name%TYPE,
5386 p_prop_tax_bill_method IN okl_lines_interface.prop_tax_bill_method%TYPE,
5387 p_prop_tax_as_contract_yn IN okl_lines_interface.prop_tax_as_contract_yn%TYPE ) IS
5388
5389 line_rule_failed EXCEPTION;
5390 rule_group_failed EXCEPTION;
5391 rule_failed EXCEPTION;
5392 l_proc_name VARCHAR2(35) := 'CREATE_UPDATE_ASSET_RULES';
5393
5394 x_lienholder_id NUMBER := NULL;
5395 x_title_issuer_id NUMBER := NULL;
5396 l_rgp_id NUMBER;
5397 x_base_uom_id okx_tuom_v.id1%TYPE;
5398 x_price_list_id okx_list_headers_v.id1%TYPE;
5399 x_stream_id okl_strmtyp_source_v.id1%TYPE;
5400 l_payment_term_id okx_payables_terms_v.id1%TYPE;
5401 l_vendor_paysite_id okx_vendor_sites_v.id1%TYPE;
5402 l_freq_id okl_time_units_v.id1%TYPE;
5403
5404 -- Rule Rec
5405 x_rgpv_rec rgpv_rec_type;
5406 l_rgpv_rec rgpv_rec_type;
5407
5408 l_rulv_rec rulv_rec_type;
5409 x_rulv_rec rulv_rec_type;
5410
5411 lp_rulv_rec rulv_rec_type;
5412 xp_rulv_rec rulv_rec_type;
5413
5414 l_progress VARCHAR2(10) := '1.0';
5415 l_french_tax_code OKL_FRENCH_TAX_V.CODE%TYPE;
5416
5417 CURSOR french_tax_csr (p_tax_code okl_french_tax_v.code%TYPE,
5418 p_tax_name okl_french_tax_v.name%TYPE) IS
5419 SELECT code
5420 FROM okl_french_tax_v
5421 WHERE ( code = p_tax_code
5422 AND
5423 p_tax_code IS NOT NULL)
5424 OR ( name = p_tax_name
5425 AND
5426 p_tax_name IS NOT NULL)
5427 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(start_date), TRUNC(SYSDATE))
5428 AND NVL(TRUNC(end_date), TRUNC(SYSDATE));
5429
5430 CURSOR get_rule_group_info(p_chr_id okc_k_headers_b.id%TYPE,
5431 p_cle_id okc_k_lines_v.id%TYPE) IS
5432 SELECT rgp.id
5433 FROM okc_rule_groups_v rgp
5434 WHERE rgp.dnz_chr_id = p_chr_id
5435 AND rgp.cle_id = p_cle_id
5436 AND rgp.rgd_code = 'LAASTX'
5437 AND rgp.rgp_type = 'KRG';
5438
5439 -- 5179119
5440 CURSOR get_sales_tax_rule_info(p_chr_id okc_k_headers_b.id%TYPE,
5441 p_rgp_id okc_k_lines_v.id%TYPE) IS
5442 SELECT rule.id
5443 FROM okc_rules_v rule
5444 WHERE rule.dnz_chr_id = p_chr_id
5445 AND rule.rgp_id = p_rgp_id
5446 AND rule.rule_information_category = 'LAASTX';
5447
5448 CURSOR get_prop_tax_rule_info(p_chr_id okc_k_headers_b.id%TYPE,
5449 p_rgp_id okc_k_lines_v.id%TYPE) IS
5450 SELECT rule.id
5451 FROM okc_rules_v rule
5452 WHERE rule.dnz_chr_id = p_chr_id
5453 AND rule.rgp_id = p_rgp_id
5454 AND rule.rule_information_category = 'LAPRTX';
5455
5456 ln_rgp_id OKC_RULE_GROUPS_V.ID%TYPE;
5457 ln_rule_id OKC_RULES_V.ID%TYPE;
5458 -- 5179119
5459 l_sales_tax_rule_id OKC_RULES_V.ID%TYPE;
5460 l_sales_tax_rule_found BOOLEAN;
5461
5462 lv_rec_populate_check VARCHAR2(1) := 'N';
5463
5464 BEGIN
5465
5466 x_return_status := OKL_API.G_RET_STS_SUCCESS;
5467 debug_message(l_proc_name);
5468
5469 OPEN get_rule_group_info(p_chr_id, p_cle_id);
5470 FETCH get_rule_group_info into ln_rgp_id;
5471 IF get_rule_group_info%NOTFOUND THEN
5472 RAISE rule_group_failed;
5473 END IF;
5474 CLOSE get_rule_group_info;
5475
5476 -- Sales Tax 5179119
5477 OPEN get_sales_tax_rule_info(p_chr_id => p_chr_id,
5478 p_rgp_id => ln_rgp_id);
5479 FETCH get_sales_tax_rule_info into l_sales_tax_rule_id;
5480 IF get_sales_tax_rule_info%NOTFOUND THEN
5481 l_sales_tax_rule_found := FALSE;
5482 ELSE
5483 l_sales_tax_rule_found := TRUE;
5484 END IF;
5485 CLOSE get_sales_tax_rule_info;
5486
5487 l_rulv_rec := NULL;
5488
5489 -- Rule Group LAASTX
5490 IF (p_sales_tax_exempt_flag IS NOT NULL) THEN
5491 l_rulv_rec.rule_information1 := p_sales_tax_exempt_flag;
5492 l_rulv_rec.rgp_id := ln_rgp_id;
5493 l_rulv_rec.dnz_chr_id := p_chr_id;
5494 l_rulv_rec.rule_information_category := 'LAASTX';
5495 l_rulv_rec.std_template_yn := 'N';
5496 l_rulv_rec.warn_yn := 'N';
5497 lv_rec_populate_check := 'Y';
5498 END IF;
5499
5500 IF (p_sales_tax_exempt_cert_number IS NOT NULL) THEN
5501 l_rulv_rec.rule_information2 := p_sales_tax_exempt_cert_number;
5502 l_rulv_rec.rgp_id := ln_rgp_id;
5503 l_rulv_rec.dnz_chr_id := p_chr_id;
5504 l_rulv_rec.rule_information_category := 'LAASTX';
5505 l_rulv_rec.std_template_yn := 'N';
5506 l_rulv_rec.warn_yn := 'N';
5507 lv_rec_populate_check := 'Y';
5508 END IF;
5509
5510 IF (p_sales_tax_override_flag IS NOT NULL) THEN
5511 l_rulv_rec.rule_information3 := p_sales_tax_override_flag;
5512 l_rulv_rec.rgp_id := ln_rgp_id;
5513 l_rulv_rec.dnz_chr_id := p_chr_id;
5514 l_rulv_rec.rule_information_category := 'LAASTX';
5515 l_rulv_rec.std_template_yn := 'N';
5516 l_rulv_rec.warn_yn := 'N';
5517 lv_rec_populate_check := 'Y';
5518 END IF;
5519
5520 IF (p_sales_tax_override_rate IS NOT NULL) THEN
5521 l_rulv_rec.rule_information4 := p_sales_tax_override_rate;
5522 l_rulv_rec.rgp_id := ln_rgp_id;
5523 l_rulv_rec.dnz_chr_id := p_chr_id;
5524 l_rulv_rec.rule_information_category := 'LAASTX';
5525 l_rulv_rec.std_template_yn := 'N';
5526 l_rulv_rec.warn_yn := 'N';
5527 lv_rec_populate_check := 'Y';
5528 END IF;
5529
5530 IF (p_st_upd_lines_from_contract IS NOT NULL) THEN
5531 l_rulv_rec.rule_information5 := p_st_upd_lines_from_contract;
5532 l_rulv_rec.rgp_id := ln_rgp_id;
5533 l_rulv_rec.dnz_chr_id := p_chr_id;
5534 l_rulv_rec.rule_information_category := 'LAASTX';
5535 l_rulv_rec.std_template_yn := 'N';
5536 l_rulv_rec.warn_yn := 'N';
5537 lv_rec_populate_check := 'Y';
5538 END IF;
5539
5540 IF (p_st_transfer_of_title IS NOT NULL) THEN
5541 l_rulv_rec.rule_information6 := p_st_transfer_of_title;
5542 l_rulv_rec.rgp_id := ln_rgp_id;
5543 l_rulv_rec.dnz_chr_id := p_chr_id;
5544 l_rulv_rec.rule_information_category := 'LAASTX';
5545 l_rulv_rec.std_template_yn := 'N';
5546 l_rulv_rec.warn_yn := 'N';
5547 lv_rec_populate_check := 'Y';
5548 END IF;
5549
5550 IF (p_st_sale_and_lease_back IS NOT NULL) THEN
5551 l_rulv_rec.rule_information7 := p_st_sale_and_lease_back;
5552 l_rulv_rec.rgp_id := ln_rgp_id;
5553 l_rulv_rec.dnz_chr_id := p_chr_id;
5554 l_rulv_rec.rule_information_category := 'LAASTX';
5555 l_rulv_rec.std_template_yn := 'N';
5556 l_rulv_rec.warn_yn := 'N';
5557 lv_rec_populate_check := 'Y';
5558 END IF;
5559
5560 IF (p_st_purchase_of_lease IS NOT NULL) THEN
5561 l_rulv_rec.rule_information8 := p_st_purchase_of_lease;
5562 l_rulv_rec.rgp_id := ln_rgp_id;
5563 l_rulv_rec.dnz_chr_id := p_chr_id;
5564 l_rulv_rec.rule_information_category := 'LAASTX';
5565 l_rulv_rec.std_template_yn := 'N';
5566 l_rulv_rec.warn_yn := 'N';
5567 lv_rec_populate_check := 'Y';
5568 END IF;
5569
5570 IF (p_st_equipment_usage IS NOT NULL) THEN
5571 l_rulv_rec.rule_information9 := p_st_equipment_usage;
5572 l_rulv_rec.rgp_id := ln_rgp_id;
5573 l_rulv_rec.dnz_chr_id := p_chr_id;
5574 l_rulv_rec.rule_information_category := 'LAASTX';
5575 l_rulv_rec.std_template_yn := 'N';
5576 l_rulv_rec.warn_yn := 'N';
5577 lv_rec_populate_check := 'Y';
5578 END IF;
5579
5580 IF (p_st_equipment_age IS NOT NULL) THEN
5581 l_rulv_rec.rule_information10 := p_st_equipment_age;
5582 l_rulv_rec.rgp_id := ln_rgp_id;
5583 l_rulv_rec.dnz_chr_id := p_chr_id;
5584 l_rulv_rec.rule_information_category := 'LAASTX';
5585 l_rulv_rec.std_template_yn := 'N';
5586 l_rulv_rec.warn_yn := 'N';
5587 lv_rec_populate_check := 'Y';
5588 END IF;
5589
5590 IF (p_st_asset_upfront_tax IS NOT NULL) THEN
5591 l_rulv_rec.rule_information11 := p_st_asset_upfront_tax;
5592 l_rulv_rec.rgp_id := ln_rgp_id;
5593 l_rulv_rec.dnz_chr_id := p_chr_id;
5594 l_rulv_rec.rule_information_category := 'LAASTX';
5595 l_rulv_rec.std_template_yn := 'N';
5596 l_rulv_rec.warn_yn := 'N';
5597 lv_rec_populate_check := 'Y';
5598 END IF;
5599
5600 IF (lv_rec_populate_check = 'Y') THEN
5601 IF NOT(l_sales_tax_rule_found) THEN -- 5179119
5602 OKL_RULE_PUB.create_rule(
5603 p_api_version => 1.0,
5604 p_init_msg_list => OKL_API.G_FALSE,
5605 x_return_status => x_return_status,
5606 x_msg_count => x_msg_count,
5607 x_msg_data => x_msg_data,
5608 p_rulv_rec => l_rulv_rec,
5609 x_rulv_rec => x_rulv_rec
5610 );
5611 ELSE
5612 l_rulv_rec.id := l_sales_tax_rule_id;
5613 l_rulv_rec.created_by := OKC_API.G_MISS_NUM;
5614 l_rulv_rec.creation_date := OKC_API.G_MISS_DATE;
5615 OKL_RULE_PUB.update_rule(
5616 p_api_version => 1.0,
5617 p_init_msg_list => OKL_API.G_FALSE,
5618 x_return_status => x_return_status,
5619 x_msg_count => x_msg_count,
5620 x_msg_data => x_msg_data,
5621 p_rulv_rec => l_rulv_rec,
5622 x_rulv_rec => x_rulv_rec
5623 );
5624 END IF;
5625 l_progress := '1.1';
5626 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
5627 x_return_status := OKL_API.G_RET_STS_ERROR;
5628 raise line_rule_failed;
5629 END IF;
5630 END IF;
5631
5632 l_rulv_rec := NULL;
5633 lv_rec_populate_check := 'N';
5634 IF (p_vat_tax_exempt IS NOT NULL) THEN
5635
5636 l_rulv_rec.rule_information1 := p_vat_tax_exempt;
5637 l_rulv_rec.rgp_id := ln_rgp_id;
5638 l_rulv_rec.dnz_chr_id := p_chr_id;
5639 l_rulv_rec.rule_information_category := 'LAAVTX';
5640 l_rulv_rec.std_template_yn := 'N';
5641 l_rulv_rec.warn_yn := 'N';
5642 lv_rec_populate_check := 'Y';
5643 END IF;
5644
5645 IF (p_vat_tax_exempt_cert_number IS NOT NULL) THEN
5646
5647 l_rulv_rec.rule_information2 := p_vat_tax_exempt_cert_number;
5648 l_rulv_rec.rgp_id := ln_rgp_id;
5649 l_rulv_rec.dnz_chr_id := p_chr_id;
5650 l_rulv_rec.rule_information_category := 'LAAVTX';
5651 l_rulv_rec.std_template_yn := 'N';
5652 l_rulv_rec.warn_yn := 'N';
5653 lv_rec_populate_check := 'Y';
5654 END IF;
5655
5656 IF (p_vat_tax_override_flag IS NOT NULL) THEN
5657
5658 l_rulv_rec.rule_information3 := p_vat_tax_override_flag;
5659 l_rulv_rec.rgp_id := ln_rgp_id;
5660 l_rulv_rec.dnz_chr_id := p_chr_id;
5661 l_rulv_rec.rule_information_category := 'LAAVTX';
5662 l_rulv_rec.std_template_yn := 'N';
5663 l_rulv_rec.warn_yn := 'N';
5664 lv_rec_populate_check := 'Y';
5665 END IF;
5666
5667 IF (p_vat_tax_override_rate IS NOT NULL) THEN
5668
5669 l_rulv_rec.rule_information4 := p_vat_tax_override_rate;
5670 l_rulv_rec.rgp_id := ln_rgp_id;
5671 l_rulv_rec.dnz_chr_id := p_chr_id;
5672 l_rulv_rec.rule_information_category := 'LAAVTX';
5673 l_rulv_rec.std_template_yn := 'N';
5674 l_rulv_rec.warn_yn := 'N';
5675 lv_rec_populate_check := 'Y';
5676 END IF;
5677
5678 IF (lv_rec_populate_check = 'Y') THEN
5679 OKL_RULE_PUB.create_rule(
5680 p_api_version => 1.0,
5681 p_init_msg_list => OKL_API.G_FALSE,
5682 x_return_status => x_return_status,
5683 x_msg_count => x_msg_count,
5684 x_msg_data => x_msg_data,
5685 p_rulv_rec => l_rulv_rec,
5686 x_rulv_rec => x_rulv_rec
5687 );
5688 l_progress := '1.2';
5689 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
5690 x_return_status := OKL_API.G_RET_STS_ERROR;
5691 raise line_rule_failed;
5692 END IF;
5693 END IF;
5694
5695 -- Property Tax
5696 OPEN get_prop_tax_rule_info(p_chr_id => p_chr_id,
5697 p_rgp_id => ln_rgp_id);
5698 FETCH get_prop_tax_rule_info into ln_rule_id;
5699 IF get_prop_tax_rule_info%NOTFOUND THEN
5700 RAISE rule_failed;
5701 END IF;
5702 CLOSE get_prop_tax_rule_info;
5703
5704 IF (p_prop_tax_applicable IS NOT NULL) THEN
5705 lp_rulv_rec.id := ln_rule_id;
5706 lp_rulv_rec.rule_information1 := p_prop_tax_applicable;
5707 lp_rulv_rec.rule_information_category := 'LAPRTX';
5708 END IF;
5709
5710 IF (p_prop_tax_lease_rep IS NOT NULL) THEN
5711 lp_rulv_rec.id := ln_rule_id;
5712 lp_rulv_rec.rule_information2 := p_prop_tax_lease_rep;
5713 lp_rulv_rec.rule_information_category := 'LAPRTX';
5714 END IF;
5715
5716 IF (p_prop_tax_bill_method IS NOT NULL) THEN
5717 lp_rulv_rec.id := ln_rule_id;
5718 lp_rulv_rec.rule_information3 := p_prop_tax_bill_method;
5719 lp_rulv_rec.rule_information_category := 'LAPRTX';
5720 END IF;
5721
5722 IF (p_prop_tax_applicable IS NOT NULL
5723 OR
5724 p_prop_tax_lease_rep IS NOT NULL
5725 OR
5726 p_prop_tax_bill_method IS NOT NULL) THEN -- Bug# 3984890
5727 OKL_RULE_PUB.update_rule(
5728 p_api_version => 1.0,
5729 p_init_msg_list => OKL_API.G_FALSE,
5730 x_return_status => x_return_status,
5731 x_msg_count => x_msg_count,
5732 x_msg_data => x_msg_data,
5733 p_rulv_rec => lp_rulv_rec,
5734 x_rulv_rec => xp_rulv_rec
5735 );
5736 l_progress := '1.3';
5737 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
5738 x_return_status := OKL_API.G_RET_STS_ERROR;
5739 raise line_rule_failed;
5740 END IF;
5741
5742 END IF;
5743
5744 l_rulv_rec := NULL;
5745 lv_rec_populate_check := 'N';
5746
5747 -- 'LAASTK' Rule
5748 IF (p_prop_tax_as_contract_yn IS NOT NULL) THEN
5749 l_rulv_rec.rgp_id := ln_rgp_id;
5750 l_rulv_rec.dnz_chr_id := p_chr_id;
5751 l_rulv_rec.rule_information1 := p_prop_tax_as_contract_yn;
5752 l_rulv_rec.rule_information_category := 'LAASTK';
5753 l_rulv_rec.std_template_yn := 'N';
5754 l_rulv_rec.warn_yn := 'N';
5755 lv_rec_populate_check := 'Y';
5756 END IF;
5757
5758 IF (lv_rec_populate_check = 'Y') THEN
5759 OKL_RULE_PUB.create_rule(
5760 p_api_version => 1.0,
5761 p_init_msg_list => OKL_API.G_FALSE,
5762 x_return_status => x_return_status,
5763 x_msg_count => x_msg_count,
5764 x_msg_data => x_msg_data,
5765 p_rulv_rec => l_rulv_rec,
5766 x_rulv_rec => x_rulv_rec
5767 );
5768 l_progress := '1.4';
5769 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
5770 x_return_status := OKL_API.G_RET_STS_ERROR;
5771 raise line_rule_failed;
5772 END IF;
5773 END IF;
5774
5775 l_rulv_rec := NULL;
5776 lv_rec_populate_check := 'N';
5777
5778 IF (p_french_tax_code IS NOT NULL
5779 OR
5780 p_french_tax_name IS NOT NULL) THEN
5781
5782 OPEN french_tax_csr (p_french_tax_code,
5783 p_french_tax_name);
5784 FETCH french_tax_csr INTO l_french_tax_code;
5785 IF french_tax_csr%NOTFOUND THEN
5786 okl_api.set_message(
5787 G_APP_NAME,
5788 G_INVALID_VALUE,
5789 'CONTRACT_NUM',
5790 p_contract_number||'/'||p_line_number,
5791 'COL_NAME',
5792 'FRENCH_TAX_CODE, NAME',
5793 'COL_VALUE',
5794 p_french_tax_code||', '||p_french_tax_name
5795 );
5796
5797 raise line_rule_failed;
5798 END IF;
5799 CLOSE french_tax_csr;
5800 END IF;
5801
5802 IF (l_french_tax_code IS NOT NULL) THEN
5803 l_rulv_rec.rgp_id := ln_rgp_id;
5804 l_rulv_rec.dnz_chr_id := p_chr_id;
5805 l_rulv_rec.rule_information1 := l_french_tax_code;
5806 l_rulv_rec.rule_information_category := 'LATAXP';
5807 l_rulv_rec.std_template_yn := 'N';
5808 l_rulv_rec.warn_yn := 'N';
5809 lv_rec_populate_check := 'Y';
5810 END IF;
5811
5812 IF (lv_rec_populate_check = 'Y') THEN
5813 OKL_RULE_PUB.create_rule(
5814 p_api_version => 1.0,
5815 p_init_msg_list => OKL_API.G_FALSE,
5816 x_return_status => x_return_status,
5817 x_msg_count => x_msg_count,
5818 x_msg_data => x_msg_data,
5819 p_rulv_rec => l_rulv_rec,
5820 x_rulv_rec => x_rulv_rec
5821 );
5822 l_progress := '1.5';
5823 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
5824 x_return_status := OKL_API.G_RET_STS_ERROR;
5825 raise line_rule_failed;
5826 END IF;
5827 END IF;
5828
5829 RETURN;
5830
5831 EXCEPTION
5832 WHEN line_rule_failed THEN
5833 x_return_status := OKL_API.G_RET_STS_ERROR;
5834 debug_message('Line rule failed : '||l_progress);
5835
5836 WHEN rule_group_failed THEN
5837 IF get_rule_group_info%ISOPEN THEN
5838 CLOSE get_rule_group_info;
5839 END IF;
5840 x_return_status := OKL_API.G_RET_STS_ERROR;
5841
5842 WHEN rule_failed THEN
5843 IF get_prop_tax_rule_info%ISOPEN THEN
5844 CLOSE get_prop_tax_rule_info;
5845 END IF;
5846 x_return_status := OKL_API.G_RET_STS_ERROR;
5847
5848 WHEN OTHERS THEN
5849 okl_api.set_message(
5850 G_APP_NAME,
5851 G_UNEXPECTED_ERROR,
5852 'OKL_SQLCODE',
5853 SQLCODE,
5854 'OKL_SQLERRM',
5855 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
5856 );
5857
5858 x_return_status := OKL_API.G_RET_STS_ERROR;
5859 debug_message('line other : '||l_progress);
5860 END create_update_asset_rules;
5861
5862 ------------------------------------------------------------------------------
5863 -- PROCEDURE create_line_rules
5864 -- It creates rules for line records and
5865 -- stacks Error, if any, and returns ERROR status to calling process.
5866 -- Calls:
5867 -- get_party_id
5868 -- Called By:
5869 -- load_input_record
5870 ------------------------------------------------------------------------------
5871
5872 PROCEDURE create_line_rules(
5873 x_return_status OUT NOCOPY VARCHAR2,
5874 x_msg_count OUT NOCOPY NUMBER,
5875 x_msg_data OUT NOCOPY VARCHAR2,
5876 p_chr_id IN okc_k_headers_v.id%TYPE,
5877 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
5878 p_cle_id IN okl_k_lines_v.id%TYPE,
5879 p_line_number IN okc_k_lines_v.line_number%TYPE,
5880 p_line_type IN okl_lines_interface.line_type%TYPE,
5881 p_inv_org_id IN okl_lines_interface.inventory_organization_id%TYPE,
5882 p_sales_tax_exempt_flag IN okl_lines_interface.sales_tax_exempt_flag%TYPE,
5883 p_sales_tax_exempt_cert_number IN okl_lines_interface.sales_tax_exempt_cert_number%TYPE,
5884 p_sales_tax_override_flag IN okl_lines_interface.sales_tax_override_flag%TYPE,
5885 p_sales_tax_override_rate IN okl_lines_interface.sales_tax_override_rate%TYPE,
5886 p_st_upd_lines_from_contract IN okl_lines_interface.st_update_lines_from_contract%TYPE,
5887 p_st_transfer_of_title IN okl_lines_interface.st_transfer_of_title%TYPE,
5888 p_st_sale_and_lease_back IN okl_lines_interface.st_sale_and_lease_back%TYPE,
5889 p_st_purchase_of_lease IN okl_lines_interface.st_purchase_of_lease%TYPE,
5890 p_st_equipment_usage IN okl_lines_interface.st_equipment_usage%TYPE,
5891 p_st_equipment_age IN okl_lines_interface.st_equipment_age%TYPE,
5892 p_st_asset_upfront_tax IN okl_lines_interface.st_asset_upfront_tax%TYPE,
5893 p_vat_tax_exempt IN okl_lines_interface.vat_tax_exempt%TYPE,
5894 p_vat_tax_exempt_cert_number IN okl_lines_interface.vat_tax_exempt_cert_number%TYPE,
5895 p_vat_tax_override_flag IN okl_lines_interface.vat_tax_override_flag%TYPE,
5896 p_vat_tax_override_rate IN okl_lines_interface.vat_tax_override_rate%TYPE,
5897 p_lien_type IN okl_lines_interface.lien_type%TYPE,
5898 p_lien_filing_number IN okl_lines_interface.lien_filing_number%TYPE,
5899 p_lien_filing_date IN okl_lines_interface.lien_filing_date%TYPE,
5900 p_lien_filing_status IN okl_lines_interface.lien_filing_status%TYPE,
5901 p_lienholder_id IN okl_lines_interface.lienholder_id%TYPE,
5902 p_lienholder_number IN okl_lines_interface.lienholder_number%TYPE,
5903 p_filing_jurisdiction IN okl_lines_interface.filing_jurisdiction%TYPE,
5904 p_filing_sub_jurisdiction IN okl_lines_interface.filing_sub_jurisdiction%TYPE,
5905 p_lien_expiration_date IN okl_lines_interface.lien_expiration_date%TYPE,
5906 p_lien_continuation_number IN okl_lines_interface.lien_continuation_number%TYPE,
5907 p_lien_continuation_date IN okl_lines_interface.lien_continuation_date%TYPE,
5908 p_title_type IN okl_lines_interface.title_type%TYPE,
5909 p_title_issuer_number IN okl_lines_interface.title_issuer_number%TYPE,
5910 p_title_issuer_id IN okl_lines_interface.title_issuer_id%TYPE,
5911 p_title_date IN okl_lines_interface.title_date%TYPE,
5912 p_title_number IN okl_lines_interface.title_number%TYPE,
5913 p_registration_number IN okl_lines_interface.registration_number%TYPE,
5914 p_asset_registration_loc_name IN okl_lines_interface.asset_registration_loc_name%TYPE,
5915 p_title_custodian_name IN okl_lines_interface.title_custodian_name%TYPE,
5916 p_payee_site_name IN okl_lines_interface.payee_site_name%TYPE,
5917 p_passthrough_percent IN okl_lines_interface.passthrough_percent%TYPE,
5918 p_passthrough_basis_code IN okl_lines_interface.passthrough_basis_code%TYPE,
5919 p_fee_code IN okl_lines_interface.fee_code%TYPE,
5920 p_stream_purpose IN okl_lines_interface.stream_purpose_code%TYPE,
5921 p_usage_item_name IN okl_lines_interface.usage_item_name%TYPE,
5922 p_usage_item_id IN okl_lines_interface.usage_item_id%TYPE,
5923 p_price_list_name IN okl_lines_interface.price_list_name%TYPE,
5924 p_price_list_id IN okl_lines_interface.price_list_id%TYPE,
5925 p_minimum_qty_usage IN okl_lines_interface.minimum_qty_usage%TYPE,
5926 p_default_qty_usage IN okl_lines_interface.default_qty_usage%TYPE,
5927 p_amcv_flag IN okl_lines_interface.amcv_flag%TYPE,
5928 p_level_flag IN okl_lines_interface.level_flag%TYPE,
5929 p_base_reading IN okl_lines_interface.base_reading%TYPE,
5930 p_base_reading_uom_code IN okl_lines_interface.base_reading_uom_code%TYPE,
5931 p_usage_type_code IN okl_lines_interface.usage_type_code%TYPE,
5932 p_fixed_usage_quantity IN okl_lines_interface.fixed_usage_quantity%TYPE,
5933 p_usage_period IN okl_lines_interface.usage_period%TYPE,
5934 p_usage_no_of_period IN okl_lines_interface.usage_no_of_period%TYPE,
5935 p_fee_no_of_period IN okl_lines_interface.fee_exp_no_of_periods%TYPE,
5936 p_fee_frequency IN okl_lines_interface.fee_exp_frequency%TYPE,
5937 p_fee_amount_per_period IN okl_lines_interface.fee_exp_amount_per_period%TYPE,
5938 p_prop_tax_applicable IN okl_lines_interface.prop_tax_applicable%TYPE,
5939 p_prop_tax_lease_rep IN okl_lines_interface.prop_tax_lease_rep%TYPE,
5940 p_french_tax_code IN okl_lines_interface.french_tax_code%TYPE,
5941 p_french_tax_name IN okl_lines_interface.french_tax_name%TYPE,
5942 -- Added by rravikir (Fix for Bug 3947959)
5943 p_prop_tax_bill_method IN okl_lines_interface.prop_tax_bill_method%TYPE,
5944 p_prop_tax_as_contract_yn IN okl_lines_interface.prop_tax_as_contract_yn%TYPE
5945 -- End
5946 ) IS
5947
5948 line_rule_failed EXCEPTION;
5949 l_proc_name VARCHAR2(35) := 'CREATE_LINE_RULES';
5950
5951 x_lienholder_id NUMBER := NULL;
5952 x_title_issuer_id NUMBER := NULL;
5953 l_rgp_id NUMBER;
5954 x_usage_item_id okx_system_items_v.id1%TYPE;
5955 x_usage_id2 okx_system_items_v.id2%TYPE;
5956 x_base_uom_id okx_tuom_v.id1%TYPE;
5957 x_price_list_id okx_list_headers_v.id1%TYPE;
5958 x_stream_id okl_strmtyp_source_v.id1%TYPE;
5959 l_payment_term_id okx_payables_terms_v.id1%TYPE;
5960 l_vendor_paysite_id okx_vendor_sites_v.id1%TYPE;
5961 l_freq_id okl_time_units_v.id1%TYPE;
5962
5963 CURSOR freq_csr (p_frequency VARCHAR2) IS
5964 SELECT id1
5965 FROM okl_time_units_v
5966 WHERE name = p_frequency
5967 AND status = 'A'
5968 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(start_date_active), TRUNC(SYSDATE)) AND
5969 NVL(TRUNC(end_date_active), TRUNC(SYSDATE));
5970 -- Rule Rec
5971 x_rgpv_rec rgpv_rec_type;
5972 l_rgpv_rec rgpv_rec_type;
5973
5974 l_rulv_rec rulv_rec_type;
5975 x_rulv_rec rulv_rec_type;
5976
5977 l_progress VARCHAR2(10) := '1.0';
5978 l_french_tax_code OKL_FRENCH_TAX_V.CODE%TYPE;
5979
5980 CURSOR french_tax_csr (p_tax_code okl_french_tax_v.code%TYPE,
5981 p_tax_name okl_french_tax_v.name%TYPE) IS
5982 SELECT code
5983 FROM okl_french_tax_v
5984 WHERE ( code = p_tax_code
5985 AND
5986 p_tax_code IS NOT NULL)
5987 OR ( name = p_tax_name
5988 AND
5989 p_tax_name IS NOT NULL)
5990 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(start_date), TRUNC(SYSDATE))
5991 AND NVL(TRUNC(end_date), TRUNC(SYSDATE));
5992
5993 l_ok VARCHAR2(1) := '?';
5994 CURSOR usage_type_csr (p_usage_type VARCHAR2) IS
5995 SELECT 'Y'
5996 FROM fnd_lookups
5997 WHERE lookup_type = 'OKS_USAGE_TYPE'
5998 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(start_date_active), TRUNC(SYSDATE)) AND
5999 NVL(TRUNC(end_date_active), TRUNC(SYSDATE));
6000
6001 -- Added by rravikir (Fix for Bug 3947959)
6002 lv_asset_default okl_property_tax_setups.enable_asset_default%TYPE;
6003 CURSOR get_est_prop_tax_info(p_chr_id okc_k_headers_b.id%TYPE) IS
6004 SELECT enable_asset_default
6005 FROM okl_property_tax_setups
6006 WHERE org_id = (SELECT authoring_org_id
6007 FROM okc_k_headers_b
6008 WHERE id = p_chr_id);
6009 -- End
6010
6011 l_present_yn VARCHAR2(1);
6012 l_service_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
6013
6014 -- 5179119
6015 CURSOR get_sales_tax_rgp_info(p_chr_id okc_k_headers_b.id%TYPE,
6016 p_cle_id okc_k_lines_v.id%TYPE) IS
6017 SELECT rgp.id
6018 FROM okc_rule_groups_v rgp
6019 WHERE rgp.dnz_chr_id = p_chr_id
6020 AND rgp.cle_id = p_cle_id
6021 AND rgp.rgd_code = 'LAASTX'
6022 AND rgp.rgp_type = 'KRG';
6023
6024 CURSOR get_sales_tax_rule_info(p_chr_id okc_k_headers_b.id%TYPE,
6025 p_rgp_id okc_k_lines_v.id%TYPE) IS
6026 SELECT rule.id
6027 FROM okc_rules_v rule
6028 WHERE rule.dnz_chr_id = p_chr_id
6029 AND rule.rgp_id = p_rgp_id
6030 AND rule.rule_information_category = 'LAASTX';
6031
6032 l_sales_tax_rgp_id OKC_RULE_GROUPS_V.ID%TYPE;
6033 l_sales_tax_rule_id OKC_RULES_V.ID%TYPE;
6034 l_sales_tax_rgp_found BOOLEAN;
6035 l_sales_tax_rule_found BOOLEAN;
6036 l_create_rule_group BOOLEAN;
6037 -- 5179119
6038 l_rgp_count NUMBER; --AKP
6039 l_rul_count NUMBER;
6040
6041 BEGIN
6042 x_return_status := OKL_API.G_RET_STS_SUCCESS;
6043 --debug_message('AKP:In create_line_rules.. p_cle_id=' || p_cle_id);
6044
6045 l_rulv_rec := NULL; -- DDEY
6046
6047 -- Added by rravikir (Fix for Bug 3947959)
6048 OPEN get_est_prop_tax_info(p_chr_id => p_chr_id);
6049 FETCH get_est_prop_tax_info into lv_asset_default;
6050 CLOSE get_est_prop_tax_info;
6051 -- End
6052
6053 IF (p_line_type = 'ASSET') THEN
6054 -- Added by rravikir (Fix for Bug 3947959)
6055 IF (lv_asset_default IS NOT NULL AND lv_asset_default = 'YES') THEN
6056 create_update_asset_rules(
6057 x_return_status => x_return_status,
6058 x_msg_count => x_msg_count,
6059 x_msg_data => x_msg_data,
6060 p_chr_id => p_chr_id,
6061 p_cle_id => p_cle_id,
6062 p_contract_number => p_contract_number,
6063 p_line_number => p_line_number,
6064 p_line_type => p_line_type,
6065 p_inv_org_id => p_inv_org_id,
6066 p_sales_tax_exempt_flag => p_sales_tax_exempt_flag,
6067 p_sales_tax_exempt_cert_number => p_sales_tax_exempt_cert_number,
6068 p_sales_tax_override_flag => p_sales_tax_override_flag,
6069 p_sales_tax_override_rate => p_sales_tax_override_rate,
6070 p_st_upd_lines_from_contract => p_st_upd_lines_from_contract,
6071 p_st_transfer_of_title => p_st_transfer_of_title,
6072 p_st_sale_and_lease_back => p_st_sale_and_lease_back,
6073 p_st_purchase_of_lease => p_st_purchase_of_lease,
6074 p_st_equipment_usage => p_st_equipment_usage,
6075 p_st_equipment_age => p_st_equipment_age,
6076 p_st_asset_upfront_tax => p_st_asset_upfront_tax,
6077 p_vat_tax_exempt => p_vat_tax_exempt,
6078 p_vat_tax_exempt_cert_number => p_vat_tax_exempt_cert_number,
6079 p_vat_tax_override_flag => p_vat_tax_override_flag,
6080 p_vat_tax_override_rate => p_vat_tax_override_rate,
6081 p_prop_tax_applicable => p_prop_tax_applicable,
6082 p_prop_tax_lease_rep => p_prop_tax_lease_rep,
6083 p_french_tax_code => p_french_tax_code,
6084 p_french_tax_name => p_french_tax_name,
6085 p_prop_tax_bill_method => p_prop_tax_bill_method,
6086 p_prop_tax_as_contract_yn => p_prop_tax_as_contract_yn);
6087 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6088 raise line_rule_failed;
6089 END IF;
6090 ELSE
6091 -- End
6092
6093 debug_message('***** > Else of estimated prop tax');
6094
6095 -- 5179119
6096 OPEN get_sales_tax_rgp_info(p_chr_id, p_cle_id);
6097 FETCH get_sales_tax_rgp_info into l_sales_tax_rgp_id;
6098 IF get_sales_tax_rgp_info%NOTFOUND THEN
6099 l_sales_tax_rgp_found := FALSE;
6100 ELSE
6101 l_sales_tax_rgp_found := TRUE;
6102 END IF;
6103 CLOSE get_sales_tax_rgp_info;
6104
6105 OPEN get_sales_tax_rule_info(p_chr_id => p_chr_id,
6106 p_rgp_id => l_sales_tax_rgp_id);
6107 FETCH get_sales_tax_rule_info into l_sales_tax_rule_id;
6108 IF get_sales_tax_rule_info%NOTFOUND THEN
6109 l_sales_tax_rule_found := FALSE;
6110 ELSE
6111 l_sales_tax_rule_found := TRUE;
6112 END IF;
6113 CLOSE get_sales_tax_rule_info;
6114
6115 -- Rule Group LAASTX
6116 l_rgpv_rec := NULL;
6117 l_rgp_id := NULL;
6118 l_rgpv_rec.rgd_code := 'LAASTX';
6119 l_rgpv_rec.chr_id := NULL;
6120 l_rgpv_rec.dnz_chr_id := p_chr_id;
6121 l_rgpv_rec.cle_id := p_cle_id;
6122 l_rgpv_rec.rgp_type := 'KRG';
6123
6124 l_create_rule_group := FALSE;
6125 IF (p_sales_tax_exempt_flag IS NOT NULL) THEN
6126
6127 l_rulv_rec.rule_information1 := p_sales_tax_exempt_flag;
6128 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6129 l_rulv_rec.dnz_chr_id := p_chr_id;
6130 l_rulv_rec.rule_information_category := 'LAASTX';
6131 l_rulv_rec.std_template_yn := 'N';
6132 l_rulv_rec.warn_yn := 'N';
6133 l_create_rule_group := TRUE;
6134 END IF;
6135
6136 IF (p_sales_tax_exempt_cert_number IS NOT NULL) THEN
6137
6138 l_rulv_rec.rule_information2 := p_sales_tax_exempt_cert_number;
6139 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6140 l_rulv_rec.dnz_chr_id := p_chr_id;
6141 l_rulv_rec.rule_information_category := 'LAASTX';
6142 l_rulv_rec.std_template_yn := 'N';
6143 l_rulv_rec.warn_yn := 'N';
6144 l_create_rule_group := TRUE;
6145
6146 END IF;
6147
6148 IF (p_sales_tax_override_flag IS NOT NULL) THEN
6149
6150 l_rulv_rec.rule_information3 := p_sales_tax_override_flag;
6151 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6152 l_rulv_rec.dnz_chr_id := p_chr_id;
6153 l_rulv_rec.rule_information_category := 'LAASTX';
6154 l_rulv_rec.std_template_yn := 'N';
6155 l_rulv_rec.warn_yn := 'N';
6156 l_create_rule_group := TRUE;
6157
6158 END IF;
6159
6160 IF (p_sales_tax_override_rate IS NOT NULL) THEN
6161
6162 l_rulv_rec.rule_information4 := p_sales_tax_override_rate;
6163 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6164 l_rulv_rec.dnz_chr_id := p_chr_id;
6165 l_rulv_rec.rule_information_category := 'LAASTX';
6166 l_rulv_rec.std_template_yn := 'N';
6167 l_rulv_rec.warn_yn := 'N';
6168 l_create_rule_group := TRUE;
6169
6170 END IF;
6171
6172 IF (p_st_upd_lines_from_contract IS NOT NULL) THEN
6173
6174 l_rulv_rec.rule_information5 := p_st_upd_lines_from_contract;
6175 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6176 l_rulv_rec.dnz_chr_id := p_chr_id;
6177 l_rulv_rec.rule_information_category := 'LAASTX';
6178 l_rulv_rec.std_template_yn := 'N';
6179 l_rulv_rec.warn_yn := 'N';
6180 l_create_rule_group := TRUE;
6181
6182 END IF;
6183
6184 IF (p_st_transfer_of_title IS NOT NULL) THEN
6185
6186 l_rulv_rec.rule_information6 := p_st_transfer_of_title;
6187 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6188 l_rulv_rec.dnz_chr_id := p_chr_id;
6189 l_rulv_rec.rule_information_category := 'LAASTX';
6190 l_rulv_rec.std_template_yn := 'N';
6191 l_rulv_rec.warn_yn := 'N';
6192 l_create_rule_group := TRUE;
6193
6194 END IF;
6195
6196 IF (p_st_sale_and_lease_back IS NOT NULL) THEN
6197
6198 l_rulv_rec.rule_information7 := p_st_sale_and_lease_back;
6199 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6200 l_rulv_rec.dnz_chr_id := p_chr_id;
6201 l_rulv_rec.rule_information_category := 'LAASTX';
6202 l_rulv_rec.std_template_yn := 'N';
6203 l_rulv_rec.warn_yn := 'N';
6204 l_create_rule_group := TRUE;
6205
6206 END IF;
6207
6208 IF (p_st_purchase_of_lease IS NOT NULL) THEN
6209
6210 l_rulv_rec.rule_information8 := p_st_purchase_of_lease;
6211 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6212 l_rulv_rec.dnz_chr_id := p_chr_id;
6213 l_rulv_rec.rule_information_category := 'LAASTX';
6214 l_rulv_rec.std_template_yn := 'N';
6215 l_rulv_rec.warn_yn := 'N';
6216 l_create_rule_group := TRUE;
6217
6218 END IF;
6219
6220 IF (p_st_equipment_usage IS NOT NULL) THEN
6221
6222 l_rulv_rec.rule_information9 := p_st_equipment_usage ;
6223 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6224 l_rulv_rec.dnz_chr_id := p_chr_id;
6225 l_rulv_rec.rule_information_category := 'LAASTX';
6226 l_rulv_rec.std_template_yn := 'N';
6227 l_rulv_rec.warn_yn := 'N';
6228 l_create_rule_group := TRUE;
6229
6230 END IF;
6231
6232 IF (p_st_equipment_age IS NOT NULL) THEN
6233
6234 l_rulv_rec.rule_information10 := p_st_equipment_age;
6235 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6236 l_rulv_rec.dnz_chr_id := p_chr_id;
6237 l_rulv_rec.rule_information_category := 'LAASTX';
6238 l_rulv_rec.std_template_yn := 'N';
6239 l_rulv_rec.warn_yn := 'N';
6240 l_create_rule_group := TRUE;
6241
6242 END IF;
6243
6244 IF (p_st_asset_upfront_tax IS NOT NULL) THEN
6245
6246 l_rulv_rec.rule_information11 := p_st_asset_upfront_tax;
6247 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6248 l_rulv_rec.dnz_chr_id := p_chr_id;
6249 l_rulv_rec.rule_information_category := 'LAASTX';
6250 l_rulv_rec.std_template_yn := 'N';
6251 l_rulv_rec.warn_yn := 'N';
6252 l_create_rule_group := TRUE;
6253
6254 END IF;
6255
6256 IF (l_create_rule_group) THEN
6257 IF NOT(l_sales_tax_rgp_found) THEN -- 5179119
6258 create_rule_group_and_rule(
6259 x_return_status => x_return_status,
6260 x_msg_count => x_msg_count,
6261 x_msg_data => x_msg_data,
6262 p_rgp_id => l_rgp_id,
6263 p_rgpv_rec => l_rgpv_rec,
6264 p_rulv_rec => l_rulv_rec,
6265 x_rgpv_rec => x_rgpv_rec,
6266 x_rulv_rec => x_rulv_rec
6267 );
6268 ELSE
6269 l_rgp_id := l_sales_tax_rgp_id;
6270 l_rulv_rec.rgp_id := l_sales_tax_rgp_id;
6271 IF NOT(l_sales_tax_rule_found) THEN
6272 OKL_RULE_PUB.create_rule(
6273 p_api_version => 1.0,
6274 p_init_msg_list => OKL_API.G_FALSE,
6275 x_return_status => x_return_status,
6276 x_msg_count => x_msg_count,
6277 x_msg_data => x_msg_data,
6278 p_rulv_rec => l_rulv_rec,
6279 x_rulv_rec => x_rulv_rec
6280 );
6281 ELSE
6282 l_rulv_rec.id := l_sales_tax_rule_id;
6283 l_rulv_rec.created_by := OKC_API.G_MISS_NUM;
6284 l_rulv_rec.creation_date := OKC_API.G_MISS_DATE;
6285 OKL_RULE_PUB.update_rule(
6286 p_api_version => 1.0,
6287 p_init_msg_list => OKL_API.G_FALSE,
6288 x_return_status => x_return_status,
6289 x_msg_count => x_msg_count,
6290 x_msg_data => x_msg_data,
6291 p_rulv_rec => l_rulv_rec,
6292 x_rulv_rec => x_rulv_rec
6293 );
6294 END IF;
6295 END IF;
6296 END IF;
6297
6298 l_progress := '1.1';
6299 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6300 raise line_rule_failed;
6301 END IF;
6302
6303 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6304 l_rgp_id := x_rgpv_rec.id;
6305 END IF;
6306
6307 l_rulv_rec := NULL;
6308 IF (p_vat_tax_exempt IS NOT NULL) THEN
6309
6310 l_rulv_rec.rule_information1 := p_vat_tax_exempt;
6311 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6312 l_rulv_rec.dnz_chr_id := p_chr_id;
6313 l_rulv_rec.rule_information_category := 'LAAVTX';
6314 l_rulv_rec.std_template_yn := 'N';
6315 l_rulv_rec.warn_yn := 'N';
6316
6317 END IF;
6318
6319 IF (p_vat_tax_exempt_cert_number IS NOT NULL) THEN
6320
6321 l_rulv_rec.rule_information2 := p_vat_tax_exempt_cert_number;
6322 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6323 l_rulv_rec.dnz_chr_id := p_chr_id;
6324 l_rulv_rec.rule_information_category := 'LAAVTX';
6325 l_rulv_rec.std_template_yn := 'N';
6326 l_rulv_rec.warn_yn := 'N';
6327
6328 END IF;
6329
6330 IF (p_vat_tax_override_flag IS NOT NULL) THEN
6331
6332 l_rulv_rec.rule_information3 := p_vat_tax_override_flag;
6333 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6334 l_rulv_rec.dnz_chr_id := p_chr_id;
6335 l_rulv_rec.rule_information_category := 'LAAVTX';
6336 l_rulv_rec.std_template_yn := 'N';
6337 l_rulv_rec.warn_yn := 'N';
6338
6339 END IF;
6340
6341 IF (p_vat_tax_override_rate IS NOT NULL) THEN
6342
6343 l_rulv_rec.rule_information4 := p_vat_tax_override_rate;
6344 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6345 l_rulv_rec.dnz_chr_id := p_chr_id;
6346 l_rulv_rec.rule_information_category := 'LAAVTX';
6347 l_rulv_rec.std_template_yn := 'N';
6348 l_rulv_rec.warn_yn := 'N';
6349
6350 END IF;
6351
6352 create_rule_group_and_rule(
6353 x_return_status => x_return_status,
6354 x_msg_count => x_msg_count,
6355 x_msg_data => x_msg_data,
6356 p_rgp_id => l_rgp_id,
6357 p_rgpv_rec => l_rgpv_rec,
6358 p_rulv_rec => l_rulv_rec,
6359 x_rgpv_rec => x_rgpv_rec,
6360 x_rulv_rec => x_rulv_rec
6361 );
6362
6363 l_progress := '1.2';
6364 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6365 raise line_rule_failed;
6366 END IF;
6367
6368 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6369 l_rgp_id := x_rgpv_rec.id;
6370 END IF;
6371
6372 l_rulv_rec := NULL;
6373
6374 -- Property Tax
6375 IF (p_prop_tax_applicable IS NOT NULL) THEN
6376 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6377 l_rulv_rec.dnz_chr_id := p_chr_id;
6378 l_rulv_rec.rule_information1 := p_prop_tax_applicable;
6379 l_rulv_rec.rule_information_category := 'LAPRTX';
6380 l_rulv_rec.std_template_yn := 'N';
6381 l_rulv_rec.warn_yn := 'N';
6382 END IF;
6383
6384 IF (p_prop_tax_lease_rep IS NOT NULL) THEN
6385 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6386 l_rulv_rec.dnz_chr_id := p_chr_id;
6387 l_rulv_rec.rule_information2 := p_prop_tax_lease_rep;
6388 l_rulv_rec.rule_information_category := 'LAPRTX';
6389 l_rulv_rec.std_template_yn := 'N';
6390 l_rulv_rec.warn_yn := 'N';
6391 END IF;
6392
6393 -- Added by rravikir (Fix for Bug 3947959)
6394 IF (p_prop_tax_bill_method IS NOT NULL) THEN
6395 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6396 l_rulv_rec.dnz_chr_id := p_chr_id;
6397 l_rulv_rec.rule_information3 := p_prop_tax_bill_method;
6398 l_rulv_rec.rule_information_category := 'LAPRTX';
6399 l_rulv_rec.std_template_yn := 'N';
6400 l_rulv_rec.warn_yn := 'N';
6401 END IF;
6402 -- End
6403
6404 create_rule_group_and_rule(
6405 x_return_status => x_return_status,
6406 x_msg_count => x_msg_count,
6407 x_msg_data => x_msg_data,
6408 p_rgp_id => l_rgp_id,
6409 p_rgpv_rec => l_rgpv_rec,
6410 p_rulv_rec => l_rulv_rec,
6411 x_rgpv_rec => x_rgpv_rec,
6412 x_rulv_rec => x_rulv_rec
6413 );
6414
6415 l_progress := '1.2';
6416 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6417 raise line_rule_failed;
6418 END IF;
6419
6420 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6421 l_rgp_id := x_rgpv_rec.id;
6422 END IF;
6423
6424 l_rulv_rec := NULL;
6425
6426 -- Added by rravikir (Fix for Bug 3947959) (Creation of 'LAASTK' rule)
6427 IF (p_prop_tax_as_contract_yn IS NOT NULL) THEN
6428 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6429 l_rulv_rec.dnz_chr_id := p_chr_id;
6430 l_rulv_rec.rule_information1 := p_prop_tax_as_contract_yn;
6431 l_rulv_rec.rule_information_category := 'LAASTK';
6432 l_rulv_rec.std_template_yn := 'N';
6433 l_rulv_rec.warn_yn := 'N';
6434 END IF;
6435
6436 create_rule_group_and_rule(
6437 x_return_status => x_return_status,
6438 x_msg_count => x_msg_count,
6439 x_msg_data => x_msg_data,
6440 p_rgp_id => l_rgp_id,
6441 p_rgpv_rec => l_rgpv_rec,
6442 p_rulv_rec => l_rulv_rec,
6443 x_rgpv_rec => x_rgpv_rec,
6444 x_rulv_rec => x_rulv_rec
6445 );
6446
6447 l_progress := '1.2';
6448 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6449 raise line_rule_failed;
6450 END IF;
6451
6452 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6453 l_rgp_id := x_rgpv_rec.id;
6454 END IF;
6455
6456 l_rulv_rec := NULL;
6457 -- End
6458
6459 IF (p_french_tax_code IS NOT NULL
6460 OR
6461 p_french_tax_name IS NOT NULL) THEN
6462
6463 OPEN french_tax_csr (p_french_tax_code,
6464 p_french_tax_name);
6465 FETCH french_tax_csr INTO l_french_tax_code;
6466 IF french_tax_csr%NOTFOUND THEN
6467 okl_api.set_message(
6468 G_APP_NAME,
6469 G_INVALID_VALUE,
6470 'CONTRACT_NUM',
6471 p_contract_number||'/'||p_line_number,
6472 'COL_NAME',
6473 'FRENCH_TAX_CODE, NAME',
6474 'COL_VALUE',
6475 p_french_tax_code||', '||p_french_tax_name
6476 );
6477
6478 raise line_rule_failed;
6479 END IF;
6480
6481 CLOSE french_tax_csr;
6482
6483 END IF;
6484
6485 IF (l_french_tax_code IS NOT NULL) THEN
6486 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6487 l_rulv_rec.dnz_chr_id := p_chr_id;
6488 l_rulv_rec.rule_information1 := l_french_tax_code;
6489 l_rulv_rec.rule_information_category := 'LATAXP';
6490 l_rulv_rec.std_template_yn := 'N';
6491 l_rulv_rec.warn_yn := 'N';
6492 END IF;
6493
6494 create_rule_group_and_rule(
6495 x_return_status => x_return_status,
6496 x_msg_count => x_msg_count,
6497 x_msg_data => x_msg_data,
6498 p_rgp_id => l_rgp_id,
6499 p_rgpv_rec => l_rgpv_rec,
6500 p_rulv_rec => l_rulv_rec,
6501 x_rgpv_rec => x_rgpv_rec,
6502 x_rulv_rec => x_rulv_rec
6503 );
6504
6505 l_progress := '1.2';
6506 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6507 raise line_rule_failed;
6508 END IF;
6509
6510 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6511 l_rgp_id := x_rgpv_rec.id;
6512 END IF;
6513 -- Added by rravikir (Fix for Bug 3947959)
6514 END IF;
6515 -- End
6516
6517 debug_message('***** > After estimated prop tax');
6518
6519 -- Rule Group LAAFLG
6520 l_rgpv_rec := NULL;
6521 l_rgp_id := NULL;
6522 l_rgpv_rec.rgd_code := 'LAAFLG';
6523 l_rgpv_rec.chr_id := NULL;
6524 l_rgpv_rec.dnz_chr_id := p_chr_id;
6525 l_rgpv_rec.cle_id := p_cle_id;
6526 l_rgpv_rec.rgp_type := 'KRG';
6527
6528 l_rulv_rec := NULL;
6529 IF (p_lien_type IS NOT NULL) THEN
6530 l_rulv_rec.rule_information1 := p_lien_type;
6531 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6532 l_rulv_rec.dnz_chr_id := p_chr_id;
6533 l_rulv_rec.rule_information_category := 'LAFLLN';
6534 l_rulv_rec.std_template_yn := 'N';
6535 l_rulv_rec.warn_yn := 'N';
6536 END IF;
6537
6538 IF (p_lien_filing_number IS NOT NULL) THEN
6539 l_rulv_rec.rule_information2 := p_lien_filing_number;
6540 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6541 l_rulv_rec.dnz_chr_id := p_chr_id;
6542 l_rulv_rec.rule_information_category := 'LAFLLN';
6543 l_rulv_rec.std_template_yn := 'N';
6544 l_rulv_rec.warn_yn := 'N';
6545 END IF;
6546
6547 IF (p_lien_filing_date IS NOT NULL) THEN
6548 l_rulv_rec.rule_information3 := TO_CHAR(p_lien_filing_date);
6549 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6550 l_rulv_rec.dnz_chr_id := p_chr_id;
6551 l_rulv_rec.rule_information_category := 'LAFLLN';
6552 l_rulv_rec.std_template_yn := 'N';
6553 l_rulv_rec.warn_yn := 'N';
6554 END IF;
6555
6556 IF (p_lien_filing_status IS NOT NULL) THEN
6557 l_rulv_rec.rule_information4 := p_lien_filing_status;
6558 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6559 l_rulv_rec.dnz_chr_id := p_chr_id;
6560 l_rulv_rec.rule_information_category := 'LAFLLN';
6561 l_rulv_rec.std_template_yn := 'N';
6562 l_rulv_rec.warn_yn := 'N';
6563 END IF;
6564
6565 x_lienholder_id := NULL;
6566 IF (p_lienholder_id IS NOT NULL
6567 OR
6568 p_lienholder_number IS NOT NULL) THEN
6569
6570 get_party_id(
6571 x_return_status => x_return_status,
6572 x_msg_count => x_msg_count,
6573 x_msg_data => x_msg_data,
6574 p_contract_number => p_contract_number,
6575 p_line_number => p_line_number,
6576 p_party_id => p_lienholder_id,
6577 p_party_number => p_lienholder_number,
6578 x_party_id => x_lienholder_id
6579 );
6580 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6581 raise line_rule_failed;
6582 END IF;
6583 END IF;
6584
6585 IF (x_lienholder_id IS NOT NULL) THEN
6586 l_rulv_rec.jtot_object1_code := 'OKX_PARTY';
6587 l_rulv_rec.object1_id1 := TO_CHAR(x_lienholder_id);
6588 l_rulv_rec.object1_id2 := '#';
6589 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6590 l_rulv_rec.dnz_chr_id := p_chr_id;
6591 l_rulv_rec.rule_information_category := 'LAFLLN';
6592 l_rulv_rec.std_template_yn := 'N';
6593 l_rulv_rec.warn_yn := 'N';
6594 END IF;
6595
6596 IF (p_filing_jurisdiction IS NOT NULL) THEN
6597 l_rulv_rec.rule_information5 := p_filing_jurisdiction;
6598 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6599 l_rulv_rec.dnz_chr_id := p_chr_id;
6600 l_rulv_rec.rule_information_category := 'LAFLLN';
6601 l_rulv_rec.std_template_yn := 'N';
6602 l_rulv_rec.warn_yn := 'N';
6603 END IF;
6604
6605 IF (p_filing_sub_jurisdiction IS NOT NULL) THEN
6606 l_rulv_rec.rule_information6 := p_filing_sub_jurisdiction;
6607 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6608 l_rulv_rec.dnz_chr_id := p_chr_id;
6609 l_rulv_rec.rule_information_category := 'LAFLLN';
6610 l_rulv_rec.std_template_yn := 'N';
6611 l_rulv_rec.warn_yn := 'N';
6612 END IF;
6613
6614 IF (p_lien_expiration_date IS NOT NULL) THEN
6615 l_rulv_rec.rule_information7 := TO_CHAR(p_lien_expiration_date);
6616 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6617 l_rulv_rec.dnz_chr_id := p_chr_id;
6618 l_rulv_rec.rule_information_category := 'LAFLLN';
6619 l_rulv_rec.std_template_yn := 'N';
6620 l_rulv_rec.warn_yn := 'N';
6621
6622 END IF;
6623
6624 IF (p_lien_continuation_number IS NOT NULL) THEN
6625 l_rulv_rec.rule_information8 := p_lien_continuation_number;
6626 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6627 l_rulv_rec.dnz_chr_id := p_chr_id;
6628 l_rulv_rec.rule_information_category := 'LAFLLN';
6629 l_rulv_rec.std_template_yn := 'N';
6630 l_rulv_rec.warn_yn := 'N';
6631 END IF;
6632
6633 IF (p_lien_continuation_date IS NOT NULL) THEN
6634 l_rulv_rec.rule_information9 := TO_CHAR(p_lien_continuation_date);
6635 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6636 l_rulv_rec.dnz_chr_id := p_chr_id;
6637 l_rulv_rec.rule_information_category := 'LAFLLN';
6638 l_rulv_rec.std_template_yn := 'N';
6639 l_rulv_rec.warn_yn := 'N';
6640 END IF;
6641
6642 create_rule_group_and_rule(
6643 x_return_status => x_return_status,
6644 x_msg_count => x_msg_count,
6645 x_msg_data => x_msg_data,
6646 p_rgp_id => l_rgp_id,
6647 p_rgpv_rec => l_rgpv_rec,
6648 p_rulv_rec => l_rulv_rec,
6649 x_rgpv_rec => x_rgpv_rec,
6650 x_rulv_rec => x_rulv_rec
6651 );
6652
6653 l_progress := '1.3';
6654 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6655 raise line_rule_failed;
6656 END IF;
6657
6658 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6659 l_rgp_id := x_rgpv_rec.id;
6660 END IF;
6661
6662 l_rulv_rec := NULL;
6663 IF (p_title_type IS NOT NULL) THEN
6664
6665 l_rulv_rec.rule_information1 := p_title_type;
6666 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6667 l_rulv_rec.dnz_chr_id := p_chr_id;
6668 l_rulv_rec.rule_information_category := 'LAFLTL';
6669 l_rulv_rec.std_template_yn := 'N';
6670 l_rulv_rec.warn_yn := 'N';
6671 END IF;
6672
6673 IF (p_title_issuer_id IS NOT NULL
6674 OR
6675 p_title_issuer_number IS NOT NULL) THEN
6676 get_party_id(
6677 x_return_status => x_return_status,
6678 x_msg_count => x_msg_count,
6679 x_msg_data => x_msg_data,
6680 p_contract_number => p_contract_number,
6681 p_line_number => p_line_number,
6682 p_party_id => p_title_issuer_id,
6683 p_party_number => p_title_issuer_number,
6684 x_party_id => x_title_issuer_id
6685 );
6686 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6687 RAISE line_rule_failed;
6688 END IF;
6689 END IF;
6690
6691 IF (x_title_issuer_id IS NOT NULL) THEN
6692 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6693 l_rulv_rec.dnz_chr_id := p_chr_id;
6694 l_rulv_rec.jtot_object1_code := 'OKX_PARTY';
6695 l_rulv_rec.object1_id1 := TO_CHAR(x_title_issuer_id);
6696 l_rulv_rec.object1_id2 := '#';
6697 l_rulv_rec.rule_information_category := 'LAFLTL';
6698 l_rulv_rec.std_template_yn := 'N';
6699 l_rulv_rec.warn_yn := 'N';
6700 END IF;
6701
6702 IF (p_title_date IS NOT NULL) THEN
6703 l_rulv_rec.rule_information2 := TO_CHAR(p_title_date);
6704 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6705 l_rulv_rec.dnz_chr_id := p_chr_id;
6706 l_rulv_rec.rule_information_category := 'LAFLTL';
6707 l_rulv_rec.std_template_yn := 'N';
6708 l_rulv_rec.warn_yn := 'N';
6709 END IF;
6710
6711 IF (p_title_number IS NOT NULL) THEN
6712 l_rulv_rec.rule_information3 := p_title_number;
6713 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6714 l_rulv_rec.dnz_chr_id := p_chr_id;
6715 l_rulv_rec.rule_information_category := 'LAFLTL';
6716 l_rulv_rec.std_template_yn := 'N';
6717 l_rulv_rec.warn_yn := 'N';
6718 END IF;
6719
6720 IF (p_registration_number IS NOT NULL) THEN
6721 l_rulv_rec.rule_information4 := p_registration_number;
6722 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6723 l_rulv_rec.dnz_chr_id := p_chr_id;
6724 l_rulv_rec.rule_information_category := 'LAFLTL';
6725 l_rulv_rec.std_template_yn := 'N';
6726 l_rulv_rec.warn_yn := 'N';
6727 END IF;
6728
6729 IF (p_asset_registration_loc_name IS NOT NULL) THEN
6730 l_rulv_rec.rule_information5 := p_asset_registration_loc_name;
6731 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6732 l_rulv_rec.dnz_chr_id := p_chr_id;
6733 l_rulv_rec.rule_information_category := 'LAFLTL';
6734 l_rulv_rec.std_template_yn := 'N';
6735 l_rulv_rec.warn_yn := 'N';
6736 END IF;
6737
6738 -- Title_Custodian ???
6739
6740 IF (p_payee_site_name IS NOT NULL) THEN
6741 l_rulv_rec.rule_information6 := p_payee_site_name;
6742 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6743 l_rulv_rec.dnz_chr_id := p_chr_id;
6744 l_rulv_rec.rule_information_category := 'LAFLTL';
6745 l_rulv_rec.std_template_yn := 'N';
6746 l_rulv_rec.warn_yn := 'N';
6747 END IF;
6748
6749 create_rule_group_and_rule(
6750 x_return_status => x_return_status,
6751 x_msg_count => x_msg_count,
6752 x_msg_data => x_msg_data,
6753 p_rgp_id => l_rgp_id,
6754 p_rgpv_rec => l_rgpv_rec,
6755 p_rulv_rec => l_rulv_rec,
6756 x_rgpv_rec => x_rgpv_rec,
6757 x_rulv_rec => x_rulv_rec
6758 );
6759
6760 l_progress := '1.4';
6761 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6762 raise line_rule_failed;
6763 END IF;
6764
6765 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6766 l_rgp_id := x_rgpv_rec.id;
6767 END IF;
6768
6769 END IF; -- line type
6770
6771 /* taken care in process_party_role, 07/15/2002
6772 IF (p_line_type = 'SERVICE'
6773 OR
6774 p_line_type = 'FEE') THEN
6775
6776 l_rgpv_rec := NULL;
6777 l_rgp_id := NULL;
6778 l_rgpv_rec.rgd_code := 'LAPSTH';
6779 l_rgpv_rec.chr_id := NULL;
6780 l_rgpv_rec.dnz_chr_id := p_chr_id;
6781 l_rgpv_rec.cle_id := p_cle_id;
6782 l_rgpv_rec.rgp_type := 'KRG';
6783
6784 l_rulv_rec := NULL;
6785
6786 IF (p_passthrough_percent IS NOT NULL) THEN
6787 l_rulv_rec.rule_information1 := p_passthrough_percent;
6788 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6789 l_rulv_rec.dnz_chr_id := p_chr_id;
6790 l_rulv_rec.rule_information_category := 'LAPTPR';
6791 l_rulv_rec.std_template_yn := 'N';
6792 l_rulv_rec.warn_yn := 'N';
6793 END IF;
6794
6795 create_rule_group_and_rule(
6796 x_return_status => x_return_status,
6797 x_msg_count => x_msg_count,
6798 x_msg_data => x_msg_data,
6799 p_rgp_id => l_rgp_id,
6800 p_rgpv_rec => l_rgpv_rec,
6801 p_rulv_rec => l_rulv_rec,
6802 x_rgpv_rec => x_rgpv_rec,
6803 x_rulv_rec => x_rulv_rec
6804 );
6805
6806 l_progress := '1.5';
6807 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6808 raise line_rule_failed;
6809 END IF;
6810
6811 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6812 l_rgp_id := x_rgpv_rec.id;
6813 END IF;
6814
6815 l_rulv_rec := NULL;
6816 IF (p_passthrough_basis_code IS NOT NULL) THEN
6817 l_rulv_rec.rule_information1 := p_passthrough_basis_code;
6818 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6819 l_rulv_rec.dnz_chr_id := p_chr_id;
6820 l_rulv_rec.rule_information_category := 'LAPTBC';
6821 l_rulv_rec.std_template_yn := 'N';
6822 l_rulv_rec.warn_yn := 'N';
6823 END IF;
6824
6825 create_rule_group_and_rule(
6826 x_return_status => x_return_status,
6827 x_msg_count => x_msg_count,
6828 x_msg_data => x_msg_data,
6829 p_rgp_id => l_rgp_id,
6830 p_rgpv_rec => l_rgpv_rec,
6831 p_rulv_rec => l_rulv_rec,
6832 x_rgpv_rec => x_rgpv_rec,
6833 x_rulv_rec => x_rulv_rec
6834 );
6835
6836 l_progress := '1.6';
6837 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6838 raise line_rule_failed;
6839 END IF;
6840
6841 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6842 l_rgp_id := x_rgpv_rec.id;
6843 END IF;
6844
6845 */
6846
6847 /* Do not use it
6848 IF (p_payment_term IS NOT NULL
6849 OR
6850 p_payment_term_id IS NOT NULL) THEN
6851
6852 l_payment_term_id := get_payment_term(
6853 x_return_status => x_return_status,
6854 p_contract_number => p_contract_number,
6855 p_line_number => p_line_number,
6856 p_payment_term => p_payment_term,
6857 p_payment_term_id => p_payment_term_id
6858 );
6859
6860 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6861 raise line_rule_failed;
6862 END IF;
6863
6864 l_rulv_rec := NULL;
6865 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6866 l_rulv_rec.dnz_chr_id := p_chr_id;
6867 l_rulv_rec.jtot_object1_code := 'OKX_PPAYTERM';
6868 l_rulv_rec.object1_id1 := TO_CHAR(l_payment_term_id);
6869 l_rulv_rec.object1_id2 := '#';
6870 l_rulv_rec.rule_information_category := 'PTR';
6871 l_rulv_rec.std_template_yn := 'N';
6872 l_rulv_rec.warn_yn := 'N';
6873
6874 create_rule_group_and_rule(
6875 x_return_status => x_return_status,
6876 x_msg_count => x_msg_count,
6877 x_msg_data => x_msg_data,
6878 p_rgp_id => l_rgp_id,
6879 p_rgpv_rec => l_rgpv_rec,
6880 p_rulv_rec => l_rulv_rec,
6881 x_rgpv_rec => x_rgpv_rec,
6882 x_rulv_rec => x_rulv_rec
6883 );
6884
6885 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6886 raise line_rule_failed;
6887 END IF;
6888
6889 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6890 l_rgp_id := x_rgpv_rec.id;
6891 END IF;
6892 END IF;
6893
6894 IF (p_vendor_paysite_id IS NOT NULL
6895 OR
6896 p_vendor_paysite_name IS NOT NULL) THEN
6897
6898 l_vendor_paysite_id := get_vendor_paysite(
6899 x_return_status => x_return_status,
6900 p_contract_number => p_contract_number,
6901 p_line_number => p_line_number,
6902 p_vendor_paysite_name => p_vendor_paysite_name,
6903 p_vendor_paysite_id => p_vendor_paysite_id
6904 );
6905
6906 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6907 raise line_rule_failed;
6908 END IF;
6909
6910 l_rulv_rec := NULL;
6911 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6912 l_rulv_rec.dnz_chr_id := p_chr_id;
6913 l_rulv_rec.jtot_object1_code := 'OKX_PAYTO';
6914 l_rulv_rec.object1_id1 := TO_CHAR(l_vendor_paysite_id);
6915 l_rulv_rec.object1_id2 := '#';
6916 l_rulv_rec.rule_information_category := 'PTO';
6917 l_rulv_rec.std_template_yn := 'N';
6918 l_rulv_rec.warn_yn := 'N';
6919
6920 create_rule_group_and_rule(
6921 x_return_status => x_return_status,
6922 x_msg_count => x_msg_count,
6923 x_msg_data => x_msg_data,
6924 p_rgp_id => l_rgp_id,
6925 p_rgpv_rec => l_rgpv_rec,
6926 p_rulv_rec => l_rulv_rec,
6927 x_rgpv_rec => x_rgpv_rec,
6928 x_rulv_rec => x_rulv_rec
6929 );
6930
6931 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6932 raise line_rule_failed;
6933 END IF;
6934
6935 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
6936 l_rgp_id := x_rgpv_rec.id;
6937 END IF;
6938 END IF;
6939 END IF; -- line type
6940 */
6941
6942 IF (p_line_type = 'SERVICE'
6943 AND
6944 p_fee_code IS NOT NULL) THEN
6945
6946 check_stream_type_code(
6947 x_return_status => x_return_status,
6948 x_msg_count => x_msg_count,
6949 x_msg_data => x_msg_data,
6950 p_stream_type_code => p_fee_code,
6951 p_stream_purpose => p_stream_purpose,
6952 x_id1 => x_stream_id,
6953 x_name => l_service_name
6954 );
6955 l_progress := '1.61';
6956 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
6957 okl_api.set_message(
6958 G_APP_NAME,
6959 G_INVALID_VALUE,
6960 'CONTRACT_NUM',
6961 p_contract_number||'/'||p_line_number,
6962 'COL_NAME',
6963 'FEE_CODE, STREAM_PURPOSE_CODE',
6964 'COL_VALUE',
6965 p_fee_code||', '||p_stream_purpose
6966 );
6967
6968 raise line_rule_failed;
6969 END IF;
6970
6971 --
6972 -- UDS 10/27
6973 -- Check whether the stream is present in template for this contract
6974 --
6975 l_present_yn := '?';
6976 l_present_yn := OKL_STREAMS_UTIL.strm_tmpt_contains_strm_type
6977 (p_khr_id => p_chr_id,
6978 p_sty_id => x_stream_id
6979 );
6980
6981 IF (l_present_yn <> 'Y') THEN
6982 okl_api.set_message(
6983 G_APP_NAME,
6984 G_NO_STRM_TMPL,
6985 'CONTRACT_NUM',
6986 p_contract_number||'/'||p_line_number,
6987 'COL_NAME',
6988 'FEE_CODE, STREAM_PURPOSE_CODE',
6989 'COL_VALUE',
6990 p_fee_code||', '||p_stream_purpose
6991 );
6992
6993 raise line_rule_failed;
6994
6995 END IF;
6996
6997 l_rulv_rec := NULL;
6998 l_rulv_rec.rgp_id := x_rgpv_rec.id;
6999 l_rulv_rec.dnz_chr_id := p_chr_id;
7000 l_rulv_rec.jtot_object1_code := 'OKL_STRMTYP';
7001 l_rulv_rec.object1_id1 := TO_CHAR(x_stream_id);
7002 l_rulv_rec.object1_id2 := '#';
7003 l_rulv_rec.rule_information_category := 'LASTRM';
7004 l_rulv_rec.std_template_yn := 'N';
7005 l_rulv_rec.warn_yn := 'N';
7006
7007 create_rule_group_and_rule(
7008 x_return_status => x_return_status,
7009 x_msg_count => x_msg_count,
7010 x_msg_data => x_msg_data,
7011 p_rgp_id => l_rgp_id,
7012 p_rgpv_rec => l_rgpv_rec,
7013 p_rulv_rec => l_rulv_rec,
7014 x_rgpv_rec => x_rgpv_rec,
7015 x_rulv_rec => x_rulv_rec
7016 );
7017
7018 l_progress := '1.7';
7019 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7020 raise line_rule_failed;
7021 END IF;
7022
7023 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
7024 l_rgp_id := x_rgpv_rec.id;
7025 END IF;
7026
7027 END IF;
7028
7029 IF (p_line_type = 'USAGE') THEN
7030
7031 -- NPR is not supported on 11.5.9
7032 IF (p_usage_type_code = 'NPR') THEN
7033 okl_api.set_message(
7034 G_APP_NAME,
7035 G_UNSUPPORTED_VALUE,
7036 'CONTRACT_NUM',
7037 p_contract_number||'/'||p_line_number,
7038 'USAGE_TYPE',
7039 p_usage_type_code
7040 );
7041 RAISE line_rule_failed;
7042 END IF;
7043
7044 l_ok := '?';
7045 OPEN usage_type_csr (p_usage_type_code);
7046 FETCH usage_type_csr INTO l_ok;
7047 CLOSE usage_type_csr;
7048
7049 IF (l_ok <> 'Y') THEN
7050 okl_api.set_message(
7051 G_APP_NAME,
7052 G_INVALID_VALUE,
7053 'CONTRACT_NUM',
7054 p_contract_number,
7055 'COL_NAME',
7056 'USAGE_TYPE',
7057 'COL_VALUE',
7058 p_usage_type_code
7059 );
7060 RAISE line_rule_failed;
7061 END IF;
7062
7063 IF (p_usage_type_code IN ('VRT', 'QTY')
7064 AND
7065 (p_default_qty_usage IS NULL
7066 OR
7067 p_base_reading IS NULL)) THEN
7068 okl_api.set_message(
7069 G_APP_NAME,
7070 G_QA_USAGE_CHECK,
7071 'LINE_NUM',
7072 p_line_number,
7073 'USAGE_TYPE',
7074 p_usage_type_code
7075 );
7076 RAISE line_rule_failed;
7077 END IF;
7078
7079 IF (p_usage_type_code = 'FRT'
7080 AND
7081 p_fixed_usage_quantity IS NULL) THEN
7082 okl_api.set_message(
7083 G_APP_NAME,
7084 G_QA_FIXED_USAGE,
7085 'LINE_NUM',
7086 p_line_number,
7087 'USAGE_TYPE',
7088 p_usage_type_code
7089 );
7090 RAISE line_rule_failed;
7091 END IF;
7092
7093 l_rgpv_rec := NULL;
7094 l_rgp_id := NULL;
7095 l_rgpv_rec.rgd_code := 'LAUSBB';
7096 l_rgpv_rec.chr_id := NULL;
7097 l_rgpv_rec.dnz_chr_id := p_chr_id;
7098 l_rgpv_rec.cle_id := p_cle_id;
7099 l_rgpv_rec.rgp_type := 'KRG';
7100
7101 l_rulv_rec := NULL;
7102
7103 IF (p_usage_item_name IS NOT NULL
7104 OR
7105 p_usage_item_id IS NOT NULL) THEN
7106
7107 get_usage_item_id(
7108 x_return_status => x_return_status,
7109 p_usage_item_name => p_usage_item_name,
7110 p_usage_item_id => p_usage_item_id,
7111 p_org_id => p_inv_org_id,
7112 x_usage_item_id => x_usage_item_id,
7113 x_usage_id2 => x_usage_id2
7114 );
7115 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7116 okl_api.set_message(
7117 G_APP_NAME,
7118 G_INVALID_VALUE,
7119 'CONTRACT_NUM',
7120 p_contract_number,
7121 'COL_NAME',
7122 'USAGE_ITEM_NAME, ID',
7123 'COL_VALUE',
7124 p_usage_item_name||', '||p_usage_item_id
7125 );
7126 RAISE line_rule_failed;
7127 END IF;
7128
7129 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7130 l_rulv_rec.dnz_chr_id := p_chr_id;
7131 l_rulv_rec.jtot_object1_code := 'OKX_USAGE';
7132 l_rulv_rec.object1_id1 := TO_CHAR(x_usage_item_id);
7133 l_rulv_rec.object1_id2 := TO_CHAR(x_usage_id2);
7134 l_rulv_rec.rule_information_category := 'LAUSBB';
7135 l_rulv_rec.std_template_yn := 'N';
7136 l_rulv_rec.warn_yn := 'N';
7137 END IF; -- usage_item
7138
7139 IF (p_price_list_name IS NOT NULL
7140 OR
7141 p_price_list_id IS NOT NULL) THEN
7142
7143 get_price_list_id(
7144 x_return_status => x_return_status,
7145 p_price_list_name => p_price_list_name,
7146 p_price_list_id => p_price_list_id,
7147 x_price_list_id => x_price_list_id
7148 );
7149
7150 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7151 okl_api.set_message(
7152 G_APP_NAME,
7153 G_INVALID_VALUE,
7154 'CONTRACT_NUM',
7155 p_contract_number,
7156 'COL_NAME',
7157 'PRICE_LIST_NAME, ID',
7158 'COL_VALUE',
7159 p_price_list_name||', '||p_price_list_id
7160 );
7161 RAISE line_rule_failed;
7162 END IF;
7163 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7164 l_rulv_rec.dnz_chr_id := p_chr_id;
7165 l_rulv_rec.jtot_object2_code := 'OKX_PRICE';
7166 l_rulv_rec.object2_id1 := TO_CHAR(x_price_list_id);
7167 l_rulv_rec.object2_id2 := '#';
7168 l_rulv_rec.rule_information_category := 'LAUSBB';
7169 l_rulv_rec.std_template_yn := 'N';
7170 l_rulv_rec.warn_yn := 'N';
7171 END IF;
7172
7173 IF (p_minimum_qty_usage IS NOT NULL) THEN
7174
7175 l_rulv_rec.rule_information1 := TO_CHAR(p_minimum_qty_usage);
7176 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7177 l_rulv_rec.dnz_chr_id := p_chr_id;
7178 l_rulv_rec.rule_information_category := 'LAUSBB';
7179 l_rulv_rec.std_template_yn := 'N';
7180 l_rulv_rec.warn_yn := 'N';
7181 END IF;
7182
7183 IF (p_default_qty_usage IS NOT NULL) THEN
7184
7185 l_rulv_rec.rule_information2 := TO_CHAR(p_default_qty_usage);
7186 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7187 l_rulv_rec.dnz_chr_id := p_chr_id;
7188 l_rulv_rec.rule_information_category := 'LAUSBB';
7189 l_rulv_rec.std_template_yn := 'N';
7190 l_rulv_rec.warn_yn := 'N';
7191 END IF;
7192
7193 IF (p_amcv_flag IS NOT NULL) THEN
7194
7195 l_rulv_rec.rule_information3 := p_amcv_flag;
7196 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7197 l_rulv_rec.dnz_chr_id := p_chr_id;
7198 l_rulv_rec.rule_information_category := 'LAUSBB';
7199 l_rulv_rec.std_template_yn := 'N';
7200 l_rulv_rec.warn_yn := 'N';
7201 END IF;
7202
7203 IF (p_level_flag IS NOT NULL) THEN
7204
7205 l_rulv_rec.rule_information4 := p_level_flag;
7206 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7207 l_rulv_rec.dnz_chr_id := p_chr_id;
7208 l_rulv_rec.rule_information_category := 'LAUSBB';
7209 l_rulv_rec.std_template_yn := 'N';
7210 l_rulv_rec.warn_yn := 'N';
7211 END IF;
7212
7213 IF (p_base_reading IS NOT NULL) THEN
7214
7215 l_rulv_rec.rule_information5 := TO_CHAR(p_base_reading);
7216 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7217 l_rulv_rec.dnz_chr_id := p_chr_id;
7218 l_rulv_rec.rule_information_category := 'LAUSBB';
7219 l_rulv_rec.std_template_yn := 'N';
7220 l_rulv_rec.warn_yn := 'N';
7221 END IF;
7222
7223 IF (p_base_reading_uom_code IS NOT NULL) THEN
7224
7225 get_base_uom_id(
7226 x_return_status => x_return_status,
7227 p_base_uom_code => p_base_reading_uom_code,
7228 x_base_uom_id => x_base_uom_id
7229 );
7230
7231 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7232 okl_api.set_message(
7233 G_APP_NAME,
7234 G_INVALID_VALUE,
7235 'CONTRACT_NUM',
7236 p_contract_number,
7237 'COL_NAME',
7238 'BASE_READING_UOM_CODE',
7239 'COL_VALUE',
7240 p_base_reading_uom_code
7241 );
7242 RAISE line_rule_failed;
7243 END IF;
7244
7245 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7246 l_rulv_rec.dnz_chr_id := p_chr_id;
7247 l_rulv_rec.jtot_object3_code := 'OKX_TUOM';
7248 l_rulv_rec.object3_id1 := x_base_uom_id;
7249 l_rulv_rec.object3_id2 := '#';
7250 l_rulv_rec.rule_information_category := 'LAUSBB';
7251 l_rulv_rec.std_template_yn := 'N';
7252 l_rulv_rec.warn_yn := 'N';
7253 END IF;
7254
7255 IF (p_usage_type_code IS NOT NULL) THEN
7256
7257 l_rulv_rec.rule_information6 := p_usage_type_code;
7258 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7259 l_rulv_rec.dnz_chr_id := p_chr_id;
7260 l_rulv_rec.rule_information_category := 'LAUSBB';
7261 l_rulv_rec.std_template_yn := 'N';
7262 l_rulv_rec.warn_yn := 'N';
7263 END IF;
7264
7265 IF (p_fixed_usage_quantity IS NOT NULL) THEN
7266
7267 l_rulv_rec.rule_information7 := p_fixed_usage_quantity;
7268 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7269 l_rulv_rec.dnz_chr_id := p_chr_id;
7270 l_rulv_rec.rule_information_category := 'LAUSBB';
7271 l_rulv_rec.std_template_yn := 'N';
7272 l_rulv_rec.warn_yn := 'N';
7273 END IF;
7274
7275 IF (p_usage_period IS NOT NULL) THEN
7276
7277 validate_usage_freq(
7278 x_return_status => x_return_status,
7279 x_msg_count => x_msg_count,
7280 x_msg_data => x_msg_data,
7281 p_freq => p_usage_period,
7282 p_contract_number => p_contract_number,
7283 p_line_number => p_line_number
7284 );
7285
7286 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7287 raise line_rule_failed;
7288 END IF;
7289
7290 l_rulv_rec.rule_information8 := p_usage_period;
7291 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7292 l_rulv_rec.dnz_chr_id := p_chr_id;
7293 l_rulv_rec.rule_information_category := 'LAUSBB';
7294 l_rulv_rec.std_template_yn := 'N';
7295 l_rulv_rec.warn_yn := 'N';
7296 END IF;
7297
7298 IF (p_usage_no_of_period IS NOT NULL) THEN
7299
7300 l_rulv_rec.rule_information9 := p_usage_no_of_period;
7301 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7302 l_rulv_rec.dnz_chr_id := p_chr_id;
7303 l_rulv_rec.rule_information_category := 'LAUSBB';
7304 l_rulv_rec.std_template_yn := 'N';
7305 l_rulv_rec.warn_yn := 'N';
7306 END IF;
7307
7308 create_rule_group_and_rule(
7309 x_return_status => x_return_status,
7310 x_msg_count => x_msg_count,
7311 x_msg_data => x_msg_data,
7312 p_rgp_id => l_rgp_id,
7313 p_rgpv_rec => l_rgpv_rec,
7314 p_rulv_rec => l_rulv_rec,
7315 x_rgpv_rec => x_rgpv_rec,
7316 x_rulv_rec => x_rulv_rec
7317 );
7318
7319 l_progress := '1.8';
7320 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7321 raise line_rule_failed;
7322 END IF;
7323
7324 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
7325 l_rgp_id := x_rgpv_rec.id;
7326 END IF;
7327
7328 END IF; -- line type USAGE
7329
7330 IF (p_line_type IN ('SERVICE', 'FEE')) THEN
7331 -- Add new rules, RECURRING EXP
7332
7333 IF (p_fee_no_of_period IS NOT NULL
7334 AND
7335 p_fee_frequency IS NOT NULL
7336 AND
7337 p_fee_amount_per_period IS NOT NULL) THEN
7338
7339 okl_contract_top_line_pub.validate_fee_expense_rule(
7340 p_api_version => 1.0,
7341 p_init_msg_list => OKL_API.G_FALSE,
7342 x_return_status => x_return_status,
7343 x_msg_count => x_msg_count,
7344 x_msg_data => x_msg_data,
7345 p_chr_id => p_chr_id,
7346 p_line_id => p_cle_id,
7347 p_no_of_period => p_fee_no_of_period,
7348 p_frequency => p_fee_frequency,
7349 p_amount_per_period => p_fee_amount_per_period
7350 );
7351
7352 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7353 RAISE line_rule_failed;
7354 END IF;
7355
7356 END IF;
7357
7358 l_rulv_rec := NULL;
7359
7360 -- Rule Group LAFEXP
7361 l_rgpv_rec := NULL;
7362 l_rgp_id := NULL;
7363 l_rgpv_rec.rgd_code := 'LAFEXP';
7364 l_rgpv_rec.chr_id := NULL;
7365 l_rgpv_rec.dnz_chr_id := p_chr_id;
7366 l_rgpv_rec.cle_id := p_cle_id;
7367 l_rgpv_rec.rgp_type := 'KRG';
7368
7369 IF (p_fee_no_of_period IS NOT NULL) THEN
7370
7371 l_rulv_rec.rule_information1 := p_fee_no_of_period;
7372 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7373 l_rulv_rec.dnz_chr_id := p_chr_id;
7374 l_rulv_rec.rule_information_category := 'LAFEXP';
7375 l_rulv_rec.std_template_yn := 'N';
7376 l_rulv_rec.warn_yn := 'N';
7377 END IF;
7378 /*
7379 IF (p_fee_frequency IS NOT NULL) THEN
7380
7381 OPEN freq_csr (p_fee_frequency);
7382 FETCH freq_csr INTO l_freq_id;
7383 CLOSE freq_csr;
7384
7385 l_rulv_rec.jtot_object1_code := 'OKL_TUOM';
7386 l_rulv_rec.object1_id1 := l_freq_id;
7387 l_rulv_rec.object1_id2 := '#';
7388 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7389 l_rulv_rec.dnz_chr_id := p_chr_id;
7390 l_rulv_rec.rule_information_category := 'LAFEXP';
7391 l_rulv_rec.std_template_yn := 'N';
7392 l_rulv_rec.warn_yn := 'N';
7393 END IF;
7394 */
7395
7396 IF (p_fee_amount_per_period IS NOT NULL) THEN
7397
7398 l_rulv_rec.rule_information2 := p_fee_amount_per_period;
7399 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7400 l_rulv_rec.dnz_chr_id := p_chr_id;
7401 l_rulv_rec.rule_information_category := 'LAFEXP';
7402 l_rulv_rec.std_template_yn := 'N';
7403 l_rulv_rec.warn_yn := 'N';
7404 END IF;
7405
7406 create_rule_group_and_rule(
7407 x_return_status => x_return_status,
7408 x_msg_count => x_msg_count,
7409 x_msg_data => x_msg_data,
7410 p_rgp_id => l_rgp_id,
7411 p_rgpv_rec => l_rgpv_rec,
7412 p_rulv_rec => l_rulv_rec,
7413 x_rgpv_rec => x_rgpv_rec,
7414 x_rulv_rec => x_rulv_rec
7415 );
7416 l_progress := '1.2';
7417 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7418 raise line_rule_failed;
7419 END IF;
7420
7421 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
7422 l_rgp_id := x_rgpv_rec.id;
7423 END IF;
7424
7425 IF (p_fee_frequency IS NOT NULL) THEN
7426
7427 OPEN freq_csr (p_fee_frequency);
7428 FETCH freq_csr INTO l_freq_id;
7429 CLOSE freq_csr;
7430
7431 l_rulv_rec := NULL;
7432
7433 l_rulv_rec.jtot_object1_code := 'OKL_TUOM';
7434 l_rulv_rec.object1_id1 := l_freq_id;
7435 l_rulv_rec.object1_id2 := '#';
7436 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7437 l_rulv_rec.dnz_chr_id := p_chr_id;
7438 l_rulv_rec.rule_information_category := 'LAFREQ';
7439 l_rulv_rec.std_template_yn := 'N';
7440 l_rulv_rec.warn_yn := 'N';
7441
7442 create_rule_group_and_rule(
7443 x_return_status => x_return_status,
7444 x_msg_count => x_msg_count,
7445 x_msg_data => x_msg_data,
7446 p_rgp_id => l_rgp_id,
7447 p_rgpv_rec => l_rgpv_rec,
7448 p_rulv_rec => l_rulv_rec,
7449 x_rgpv_rec => x_rgpv_rec,
7450 x_rulv_rec => x_rulv_rec
7451 );
7452 l_progress := '1.2';
7453 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7454 raise line_rule_failed;
7455 END IF;
7456
7457 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
7458 l_rgp_id := x_rgpv_rec.id;
7459 END IF;
7460 END IF;
7461
7462 END IF;
7463
7464 /*
7465 IF (p_line_type = 'ASSET') THEN
7466 -- Rule Group LAHDTX
7467
7468 l_rgpv_rec := NULL;
7469 l_rgp_id := NULL;
7470 l_rgpv_rec.rgd_code := 'LAHDTX';
7471 l_rgpv_rec.chr_id := NULL;
7472 l_rgpv_rec.dnz_chr_id := p_chr_id;
7473 l_rgpv_rec.cle_id := p_cle_id;
7474 l_rgpv_rec.rgp_type := 'KRG';
7475
7476 l_rulv_rec := NULL;
7477
7478 IF (p_prop_tax_applicable IS NOT NULL) THEN
7479 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7480 l_rulv_rec.dnz_chr_id := p_chr_id;
7481 l_rulv_rec.rule_information1 := p_prop_tax_applicable;
7482 l_rulv_rec.rule_information_category := 'LAPRTX';
7483 l_rulv_rec.std_template_yn := 'N';
7484 l_rulv_rec.warn_yn := 'N';
7485 END IF;
7486
7487 IF (p_prop_tax_lease_rep IS NOT NULL) THEN
7488 l_rulv_rec.rgp_id := x_rgpv_rec.id;
7489 l_rulv_rec.dnz_chr_id := p_chr_id;
7490 l_rulv_rec.rule_information2 := p_prop_tax_lease_rep;
7491 l_rulv_rec.rule_information_category := 'LAPRTX';
7492 l_rulv_rec.std_template_yn := 'N';
7493 l_rulv_rec.warn_yn := 'N';
7494 END IF;
7495
7496 create_rule_group_and_rule(
7497 x_return_status => x_return_status,
7498 x_msg_count => x_msg_count,
7499 x_msg_data => x_msg_data,
7500 p_rgp_id => l_rgp_id,
7501 p_rgpv_rec => l_rgpv_rec,
7502 p_rulv_rec => l_rulv_rec,
7503 x_rgpv_rec => x_rgpv_rec,
7504 x_rulv_rec => x_rulv_rec
7505 );
7506
7507 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
7508 raise line_rule_failed;
7509 END IF;
7510
7511 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
7512 l_rgp_id := x_rgpv_rec.id;
7513 END IF;
7514
7515 l_rulv_rec := NULL;
7516
7517 END IF;
7518 */
7519
7520 RETURN;
7521
7522 EXCEPTION
7523
7524 WHEN line_rule_failed THEN
7525 x_return_status := OKL_API.G_RET_STS_ERROR;
7526 debug_message('Line rule failed : '||l_progress);
7527
7528 WHEN OTHERS THEN
7529 okl_api.set_message(
7530 G_APP_NAME,
7531 G_UNEXPECTED_ERROR,
7532 'OKL_SQLCODE',
7533 SQLCODE,
7534 'OKL_SQLERRM',
7535 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
7536 );
7537
7538 x_return_status := OKL_API.G_RET_STS_ERROR;
7539 debug_message('line other : '||l_progress);
7540
7541 END create_line_rules;
7542
7543 ------------------------------------------------------------------------------
7544 -- FUNCTION get_lien_holder
7545 -- It returns lien_holder_id from name and
7546 -- stacks Error, if any, and returns ERROR status to calling process.
7547 -- Calls:
7548 -- Called By:
7549 ------------------------------------------------------------------------------
7550 FUNCTION get_lien_holder(
7551 x_return_status OUT NOCOPY VARCHAR2,
7552 p_lien_holder_name IN okl_header_interface.lien_holder_name%TYPE,
7553 p_lien_holder_id IN okl_header_interface.lien_holder_id%TYPE
7554 )
7555 RETURN VARCHAR2 IS
7556 CURSOR lien_csr (p_id NUMBER,
7557 p_name VARCHAR2) IS
7558 SELECT id1
7559 FROM okx_parties_v
7560 WHERE ((name = p_name
7561 AND
7562 p_name IS NOT NULL)
7563 OR
7564 (id1 = p_id
7565 AND
7566 p_id IS NOT NULL
7567 )
7568 );
7569
7570 l_id NUMBER;
7571 BEGIN
7572 x_return_status := OKL_API.G_RET_STS_SUCCESS;
7573
7574 OPEN lien_csr (p_lien_holder_id,
7575 p_lien_holder_name);
7576 FETCH lien_csr INTO l_id;
7577 IF lien_csr%NOTFOUND THEN
7578 x_return_status := OKL_API.G_RET_STS_ERROR;
7579 RETURN NULL;
7580 END IF;
7581
7582 CLOSE lien_csr;
7583 RETURN TO_CHAR(l_id);
7584
7585 END get_lien_holder;
7586
7587 ------------------------------------------------------------------------------
7588 -- FUNCTION get_late_policy_id
7589 -- It returns late_policy_id for corresponding policy_code
7590 -- stacks Error, if any, and returns ERROR status to calling process.
7591 -- Calls:
7592 -- Called By:
7593 ------------------------------------------------------------------------------
7594 FUNCTION get_late_policy_id(
7595 x_return_status OUT NOCOPY VARCHAR2,
7596 p_late_policy_code IN okl_header_interface.late_charge_product_code%TYPE,
7597 p_org_id IN NUMBER,
7598 p_late_policy_type IN VARCHAR2
7599 )
7600 RETURN VARCHAR2 IS
7601 CURSOR policy_csr (p_policy_code VARCHAR2,
7602 p_org_id NUMBER,
7603 p_policy_type VARCHAR2) IS
7604 SELECT id
7605 FROM okl_late_policies_v
7606 WHERE name = p_policy_code
7607 AND org_id = p_org_id
7608 AND ( late_policy_type_code = 'LCT'
7609 OR
7610 late_policy_type_code = p_policy_type );
7611
7612 l_id NUMBER;
7613 BEGIN
7614 x_return_status := OKL_API.G_RET_STS_SUCCESS;
7615
7616 OPEN policy_csr (p_late_policy_code,
7617 p_org_id,
7618 p_late_policy_type
7619 );
7620 FETCH policy_csr INTO l_id;
7621 IF policy_csr%NOTFOUND THEN
7622 x_return_status := OKL_API.G_RET_STS_ERROR;
7623 RETURN NULL;
7624 END IF;
7625
7626 CLOSE policy_csr;
7627 RETURN TO_CHAR(l_id);
7628
7629 END get_late_policy_id;
7630
7631 ------------------------------------------------------------------------------
7632 -- PROCEDURE get_cash_appl_rule_id
7633 -- It validates and get cash application rule ID from rule name
7634 -- Calls:
7635 -- Called By:
7636 -- create_header_rule
7637 ------------------------------------------------------------------------------
7638 PROCEDURE get_cash_appl_rule_id (
7639 x_return_status OUT NOCOPY VARCHAR2,
7640 x_msg_count OUT NOCOPY NUMBER,
7641 x_msg_data OUT NOCOPY VARCHAR2,
7642 p_contract_number IN OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
7643 p_org_id IN OKC_K_HEADERS_V.AUTHORING_ORG_ID%TYPE,
7644 p_cash_appl_rule_name IN OKL_HEADER_INTERFACE.CASH_APPL_RULE_NAME%TYPE,
7645 x_cash_appl_rule_id OUT NOCOPY OKL_BPD_ACTIVE_CSH_RLS_V.ID1%TYPE
7646 ) IS
7647
7648 cursor cash_csr (p_rule_name VARCHAR2,
7649 p_org_id NUMBER) IS
7650 SELECT id1
7651 FROM okl_bpd_active_csh_rls_v
7652 WHERE name = p_rule_name
7653 AND org_id = p_org_id
7654 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(START_DATE),TRUNC(SYSDATE)) AND
7655 NVL(TRUNC(END_DATE),TRUNC(SYSDATE));
7656 cash_failed EXCEPTION;
7657 l_proc_name VARCHAR2(35) := 'GET_CASH_APPL_RULE_ID';
7658
7659 BEGIN
7660
7661 x_return_status := OKL_API.G_RET_STS_SUCCESS;
7662 debug_message(l_proc_name);
7663
7664 OPEN cash_csr (p_cash_appl_rule_name,
7665 p_org_id);
7666 FETCH cash_csr INTO x_cash_appl_rule_id;
7667 IF cash_csr%NOTFOUND THEN
7668 RAISE cash_failed;
7669 END IF;
7670 CLOSE cash_csr;
7671
7672 EXCEPTION
7673 WHEN cash_failed THEN
7674
7675 IF (cash_csr%ISOPEN) THEN
7676 CLOSE cash_csr;
7677 END IF;
7678
7679 okl_api.set_message(
7680 G_APP_NAME,
7681 G_INVALID_VALUE,
7682 'CONTRACT_NUM',
7683 p_contract_number,
7684 'COL_NAME',
7685 'CASH_APPL_RULE_NAME',
7686 'COL_VALUE',
7687 p_cash_appl_rule_name
7688 );
7689 x_return_status := OKL_API.G_RET_STS_ERROR;
7690
7691 WHEN OTHERS THEN
7692
7693 okl_api.set_message(
7694 G_APP_NAME,
7695 G_UNEXPECTED_ERROR,
7696 'OKL_SQLCODE',
7697 SQLCODE,
7698 'OKL_SQLERRM',
7699 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
7700 );
7701
7702 x_return_status := OKL_API.G_RET_STS_ERROR;
7703 END get_cash_appl_rule_id;
7704
7705 function get_formula_id(p_name IN VARCHAR2,
7706 x_return_status OUT NOCOPY VARCHAR2) RETURN NUMBER IS
7707 l_formula_id number := 0;
7708 begin
7709 x_return_status := OKC_API.G_RET_STS_SUCCESS;
7710 select id
7711 INTO l_formula_id
7712 FROM OKL_FORMULAE_B
7713 WHERE NAME = p_name;
7714
7715 return(l_formula_id);
7716 EXCEPTION WHEN OTHERS THEN
7717 x_return_status := OKC_API.G_RET_STS_ERROR;
7718 return(l_formula_id); -- 5024651
7719 end;
7720
7721 ------------------------------------------------------------------------------
7722 -- PROCEDURE create_header_rules
7723 -- It creates rules for header record and
7724 -- stacks Error, if any, and returns ERROR status to calling process.
7725 -- Calls:
7726 -- get_customer_account_id
7727 -- get_bill_to_address_id
7728 -- get_bank_account_id
7729 -- get_invoice_format_id
7730 -- get_payment_method_id
7731 -- Called By:
7732 -- load_input_record
7733 ------------------------------------------------------------------------------
7734 PROCEDURE create_header_rules(
7735 x_return_status OUT NOCOPY VARCHAR2,
7736 x_msg_count OUT NOCOPY NUMBER,
7737 x_msg_data OUT NOCOPY VARCHAR2,
7738 p_chr_id IN OKC_K_HEADERS_V.ID%TYPE,
7739 p_template_id IN OKC_K_HEADERS_V.ID%TYPE,
7740 p_header_rec IN intf_h_rec_type
7741 ) IS
7742
7743 header_rule_failed EXCEPTION;
7744 l_proc_name VARCHAR2(35) := 'CREATE_HEADER_RULES';
7745
7746 x_customer_account_id OKX_CUSTOMER_ACCOUNTS_V.ID1%TYPE;
7747 x_bill_to_address_id OKX_CUST_SITE_USES_V.ID1%TYPE;
7748 x_bank_account_id OKX_RCPT_METHOD_ACCOUNTS_V.ID1%TYPE;
7749 x_invoice_format_id OKL_INVOICE_FORMATS_V.ID%TYPE;
7750 x_payment_method_id OKX_RECEIPT_METHODS_V.ID1%TYPE;
7751 x_invoice_format_name okl_invoice_formats_v.name%TYPE;
7752 x_index_id okl_indices.id%TYPE;
7753
7754 l_rgd_code OKC_RULE_GROUPS_V.RGD_CODE%TYPE;
7755 l_rgp_type OKC_RULE_GROUPS_V.RGP_TYPE%TYPE;
7756
7757 l_chr_id OKC_RULE_GROUPS_V.CHR_ID%TYPE;
7758 l_dnz_chr_id OKC_RULE_GROUPS_V.DNZ_CHR_ID%TYPE;
7759 l_cle_id OKC_RULE_GROUPS_V.CLE_ID%TYPE;
7760 l_rgp_id OKC_RULE_GROUPS_V.ID%TYPE;
7761 l_jtot_object1_code OKC_RULES_V.JTOT_OBJECT1_CODE%TYPE;
7762 l_object1_id1 OKC_RULES_V.OBJECT1_ID1%TYPE;
7763 l_rule_info1 OKC_RULES_V.RULE_INFORMATION1%TYPE;
7764 l_rule_info2 OKC_RULES_V.RULE_INFORMATION2%TYPE;
7765 l_rule_info_catg OKC_RULES_V.RULE_INFORMATION_CATEGORY%TYPE;
7766 --l_rgp_id NUMBER;
7767
7768 -- Rule Rec
7769 x_rgpv_rec rgpv_rec_type;
7770 l_rgpv_rec rgpv_rec_type;
7771
7772 l_rulv_rec rulv_rec_type;
7773 x_rulv_rec rulv_rec_type;
7774
7775 l_rule_count NUMBER := 0;
7776 l_rulv_tbl rulv_tbl_type;
7777
7778 CURSOR temp_role_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
7779 --Fixed # Bug 5484903
7780 SELECT object1_id1
7781 FROM okc_k_party_roles_b
7782 WHERE dnz_chr_id = p_chr_id
7783 AND chr_id = dnz_chr_id
7784 AND jtot_object1_code = 'OKX_PARTY'
7785 AND rle_code = 'LESSEE';
7786
7787 l_customer_id NUMBER;
7788
7789 l_rebook_limit_date VARCHAR2(100);
7790 l_security_deposit_hold_flag VARCHAR2(450); -- same as rule segment datatype
7791 l_security_deposit_net_flag VARCHAR2(450);
7792 l_security_deposit_date VARCHAR2(450);
7793 l_renewal_notice_days VARCHAR2(450);
7794 l_renewal_option VARCHAR2(450);
7795 l_renewal_amount VARCHAR2(450);
7796 l_late_interest_held_date VARCHAR2(450);
7797 l_late_interest_exempt_flag VARCHAR2(450);
7798 l_late_int_product_code VARCHAR2(450);
7799 l_late_int_product_id VARCHAR2(450);
7800 l_late_charge_held_until_date VARCHAR2(450);
7801 l_late_charge_product_code VARCHAR2(450);
7802 l_late_charge_product_id VARCHAR2(450);
7803 l_late_charge_exempt_flag VARCHAR2(450);
7804 l_variable_rate VARCHAR2(450);
7805 l_convert_type VARCHAR2(450);
7806 l_conversion_method VARCHAR2(450);
7807 l_date_of_conversion VARCHAR2(450);
7808 l_convert_by_date VARCHAR2(450);
7809 l_variable_method VARCHAR2(450);
7810 l_index_name VARCHAR2(450);
7811 l_index_id VARCHAR2(450);
7812 l_base_rate VARCHAR2(450);
7813 l_adder VARCHAR2(450);
7814 l_minimum_rate VARCHAR2(450);
7815 l_maximum_rate VARCHAR2(450);
7816 l_tolerance VARCHAR2(450);
7817 l_adjustment_frequency VARCHAR2(450);
7818 l_days_in_year VARCHAR2(450);
7819 l_days_in_month VARCHAR2(450);
7820 l_interest_method VARCHAR2(450);
7821 l_interest_start_date VARCHAR2(450);
7822 l_method_of_calculation VARCHAR2(450);
7823 l_formula_name VARCHAR2(450);
7824 l_factoring_date VARCHAR2(450);
7825 l_factoring_percentage VARCHAR2(450);
7826 l_factoring_discount_rate VARCHAR2(450);
7827 l_evergreen_eligible_flag VARCHAR2(450);
7828 l_bill_to_address_id VARCHAR2(450);
7829 l_bill_to_address VARCHAR2(450);
7830 l_reason_for_invoice_review VARCHAR2(450);
7831 l_invoice_review_until_date VARCHAR2(450);
7832 l_review_invoice_flag VARCHAR2(450);
7833 l_print_lead_days VARCHAR2(450);--hariven bug 5359935
7834 l_capitalize_flag VARCHAR2(450);
7835 l_non_notification_flag VARCHAR2(450);
7836 l_rvi_rate VARCHAR2(450);
7837 l_rvi_auto_calculate_flag VARCHAR2(450);
7838 l_tax_withholding_flag VARCHAR2(450);
7839 l_tax_calc_formula_name VARCHAR2(450);
7840 l_tax_owner VARCHAR2(450);
7841 l_private_activity_bond_flag VARCHAR2(450);
7842 l_floor_price_formula VARCHAR2(450);
7843 l_remkt_sale_price_formula VARCHAR2(450);
7844 l_repurchase_quote_option VARCHAR2(450);
7845 l_repurchase_quote_formula VARCHAR2(450);
7846 l_sale_price_option VARCHAR2(450);
7847 l_sale_price_amount VARCHAR2(450);
7848 l_sale_price_formula VARCHAR2(450);
7849 l_sale_price_prorate VARCHAR2(450);
7850 l_discount_rate_option VARCHAR2(450);
7851 l_discount_rate_amount VARCHAR2(450);
7852 l_discount_rate_formula VARCHAR2(450);
7853 l_discount_rate_prorate VARCHAR2(450);
7854 l_quote_fee_option VARCHAR2(450);
7855 l_quote_fee_amount VARCHAR2(450);
7856 l_quote_fee_formula VARCHAR2(450);
7857 l_quote_fee_prorate VARCHAR2(450);
7858 l_ert_purchase_opt VARCHAR2(450);
7859 l_ert_purchase_opt_type VARCHAR2(450);
7860 l_ert_purchase_opt_amount VARCHAR2(450);
7861 l_ert_purchase_opt_formula VARCHAR2(450);
7862 l_ert_purchase_opt_prorate VARCHAR2(450);
7863 l_ert_purchase_opt_max_opt VARCHAR2(450);
7864 l_ert_purchase_opt_max_amt VARCHAR2(450);
7865 l_ert_purchase_opt_max_formula VARCHAR2(450);
7866 l_ert_purchase_opt_min_opt VARCHAR2(450);
7867 l_ert_purchase_opt_min_amt VARCHAR2(450);
7868 l_ert_purchase_opt_min_formula VARCHAR2(450);
7869 l_eot_purchase_opt VARCHAR2(450);
7870 l_eot_purchase_opt_type VARCHAR2(450);
7871 l_eot_purchase_opt_amount VARCHAR2(450);
7872 l_eot_purchase_opt_formula VARCHAR2(450);
7873 l_eot_purchase_opt_prorate VARCHAR2(450);
7874 l_eot_purchase_opt_max_opt VARCHAR2(450);
7875 l_eot_purchase_opt_max_amt VARCHAR2(450);
7876 l_eot_purchase_opt_max_formula VARCHAR2(450);
7877 l_eot_purchase_opt_min_opt VARCHAR2(450);
7878 l_eot_purchase_opt_min_amt VARCHAR2(450);
7879 l_eot_purchase_opt_min_formula VARCHAR2(450);
7880 l_tqp_erl_term_alwd_flag VARCHAR2(450);
7881 l_tqp_prt_term_alwd_flag VARCHAR2(450);
7882 l_quote_effective_days VARCHAR2(450);
7883 l_quote_eff_max_days VARCHAR2(450);
7884 l_eot_tolerance_days VARCHAR2(450);
7885 l_prt_termination_approval_req VARCHAR2(450);
7886 l_prt_termination_allowed_flag VARCHAR2(450);
7887 l_gain_loss_approval_req VARCHAR2(450);
7888 l_gain_loss_net_quote_opt VARCHAR2(450);
7889 l_gain_loss_net_quote_amt VARCHAR2(450);
7890 l_gain_loss_net_quote_formula VARCHAR2(450);
7891 l_gain_loss_tolrn_allwd VARCHAR2(450);
7892 l_quote_approver_contract_role VARCHAR2(450);
7893 l_quote_rcpt_contract_role VARCHAR2(450);
7894 l_quote_crtsy_cp_cntrc_role VARCHAR2(450);
7895 l_ert_quote_calc_term_option VARCHAR2(450);
7896 l_ert_quote_calc_term_formula VARCHAR2(450);
7897 l_ert_contract_oblig_opt VARCHAR2(450);
7898 l_ert_contract_oblig_amount VARCHAR2(450);
7899 l_ert_contract_oblig_formula VARCHAR2(450);
7900 l_ert_contract_oblig_prorate VARCHAR2(450);
7901 l_ert_disc_rate_opt VARCHAR2(450);
7902 l_ert_disc_rate_amount VARCHAR2(450);
7903 l_ert_disc_rate_formula VARCHAR2(450);
7904 l_ert_disc_rate_prorate VARCHAR2(450);
7905 l_ert_quote_fee_opt VARCHAR2(450);
7906 l_ert_quote_fee_amount VARCHAR2(450);
7907 l_ert_quote_fee_formula VARCHAR2(450);
7908 l_ert_quote_fee_prorate VARCHAR2(450);
7909 l_ert_return_fee_option VARCHAR2(450);
7910 l_ert_return_fee_amount VARCHAR2(450);
7911 l_ert_return_fee_formula VARCHAR2(450);
7912 l_ert_return_fee_prorate VARCHAR2(450);
7913 l_ert_roll_inctv_option VARCHAR2(450);
7914 l_ert_roll_inctv_amount VARCHAR2(450);
7915 l_ert_roll_inctv_formula VARCHAR2(450);
7916 l_ert_roll_inctv_prorate VARCHAR2(450);
7917 l_ert_secu_dep_dispo_option VARCHAR2(450);
7918 l_ert_secu_dep_dispo_amount VARCHAR2(450);
7919 l_ert_secu_dep_dispo_formula VARCHAR2(450);
7920 l_ert_secu_dep_dispo_prorate VARCHAR2(450);
7921 l_ert_term_penalty_option VARCHAR2(450);
7922 l_ert_term_penalty_amount VARCHAR2(450);
7923 l_ert_term_penalty_formula VARCHAR2(450);
7924 l_ert_term_penalty_prorate VARCHAR2(450);
7925 l_ert_term_penalty_cap_option VARCHAR2(450);
7926 l_ert_term_penalty_cap_amount VARCHAR2(450);
7927 l_ert_term_penalty_cap_formula VARCHAR2(450);
7928 l_ert_est_prop_tax_option VARCHAR2(450);
7929 l_ert_est_prop_tax_amount VARCHAR2(450);
7930 l_ert_est_prop_tax_formula VARCHAR2(450);
7931 l_ert_est_prop_tax_prorate VARCHAR2(450);
7932 l_ert_contr_fees_option VARCHAR2(450);
7933 l_ert_outstnd_bal_option VARCHAR2(450);
7934 l_ert_serv_mant_option VARCHAR2(450);
7935 l_eot_quote_calc_term_option VARCHAR2(450);
7936 l_eot_quote_calc_term_formula VARCHAR2(450);
7937 l_eot_contract_oblig_opt VARCHAR2(450);
7938 l_eot_contract_oblig_amount VARCHAR2(450);
7939 l_eot_contract_oblig_formula VARCHAR2(450);
7940 l_eot_contract_oblig_prorate VARCHAR2(450);
7941 l_eot_disc_rate_opt VARCHAR2(450);
7942 l_eot_disc_rate_amount VARCHAR2(450);
7943 l_eot_disc_rate_formula VARCHAR2(450);
7944 l_eot_disc_rate_prorate VARCHAR2(450);
7945 l_eot_quote_fee_opt VARCHAR2(450);
7946 l_eot_quote_fee_amount VARCHAR2(450);
7947 l_eot_quote_fee_formula VARCHAR2(450);
7948 l_eot_quote_fee_prorate VARCHAR2(450);
7949 l_eot_return_fee_option VARCHAR2(450);
7950 l_eot_return_fee_amount VARCHAR2(450);
7951 l_eot_return_fee_formula VARCHAR2(450);
7952 l_eot_return_fee_prorate VARCHAR2(450);
7953 l_eot_roll_inctv_option VARCHAR2(450);
7954 l_eot_roll_inctv_amount VARCHAR2(450);
7955 l_eot_roll_inctv_formula VARCHAR2(450);
7956 l_eot_roll_inctv_prorate VARCHAR2(450);
7957 l_eot_secu_dep_dispo_option VARCHAR2(450);
7958 l_eot_secu_dep_dispo_amount VARCHAR2(450);
7959 l_eot_secu_dep_dispo_formula VARCHAR2(450);
7960 l_eot_secu_dep_dispo_prorate VARCHAR2(450);
7961 l_eot_term_penalty_option VARCHAR2(450);
7962 l_eot_term_penalty_amount VARCHAR2(450);
7963 l_eot_term_penalty_formula VARCHAR2(450);
7964 l_eot_term_penalty_prorate VARCHAR2(450);
7965 l_eot_term_penalty_cap_option VARCHAR2(450);
7966 l_eot_term_penalty_cap_amount VARCHAR2(450);
7967 l_eot_term_penalty_cap_formula VARCHAR2(450);
7968 l_eot_est_prop_tax_option VARCHAR2(450);
7969 l_eot_est_prop_tax_amount VARCHAR2(450);
7970 l_eot_est_prop_tax_formula VARCHAR2(450);
7971 l_eot_est_prop_tax_prorate VARCHAR2(450);
7972 l_eot_contr_fees_option VARCHAR2(450);
7973 l_eot_outstnd_bal_option VARCHAR2(450);
7974 l_eot_serv_mant_option VARCHAR2(450);
7975 l_evergreen_passthru_fees VARCHAR2(450);
7976 l_evergreen_passthru_percent VARCHAR2(450);
7977 l_lien_type VARCHAR2(450);
7978 l_filing_number VARCHAR2(450);
7979 l_filing_date VARCHAR2(450);
7980 l_filing_status VARCHAR2(450);
7981 l_lien_holder_name VARCHAR2(450);
7982 l_lien_holder_id VARCHAR2(450);
7983 l_jurisdiction VARCHAR2(450);
7984 l_sub_jurisdiction VARCHAR2(450);
7985 l_lien_expiration_date VARCHAR2(450);
7986 l_lien_continuation_number VARCHAR2(450);
7987 l_lien_continuation_date VARCHAR2(450);
7988 l_title_type VARCHAR2(450);
7989 l_title_issuer_name VARCHAR2(450);
7990 l_title_issuer_id VARCHAR2(450);
7991 x_title_issuer_id NUMBER;
7992 l_title_date VARCHAR2(450);
7993 l_title_number VARCHAR2(450);
7994 l_registration_number VARCHAR2(450);
7995 l_location VARCHAR2(450);
7996 l_title_custodian_name VARCHAR2(450);
7997 l_title_custodian_id VARCHAR2(450);
7998 x_title_custodian_id NUMBER;
7999 l_payee_site VARCHAR2(450);
8000 l_registration_location VARCHAR2(450);
8001 l_reg_expiration_date VARCHAR2(450);
8002 l_prtfl_approval_req VARCHAR2(450);
8003 l_prtfl_assgn_group VARCHAR2(450);
8004 l_prtfl_budget_amt_opt VARCHAR2(450);
8005 l_prtfl_budget_fixed_amt VARCHAR2(450);
8006 l_prtfl_budget_amt_formula VARCHAR2(450);
8007 l_prtfl_days_from_con_expr VARCHAR2(450);
8008 l_prtfl_strategy VARCHAR2(450);
8009 l_prop_tax_applicable VARCHAR2(450);
8010 l_prop_tax_lease_rep VARCHAR2(450);
8011 l_mex_tax_sub_basic_wthld VARCHAR2(450);
8012 l_mex_tax_calc_formula VARCHAR2(450);
8013 l_aus_tax_stamp_duty VARCHAR2(450);
8014
8015 -- Added by rravikir (Fix for Bug 3947959)
8016 l_prop_tax_bill_method VARCHAR2(35);
8017 -- End
8018
8019 -- AKP new rules added 4067094
8020
8021 l_gain_loss_tolrnc_allwd_amt NUMBER;
8022 l_gain_loss_tolrnc_allwd_frml VARCHAR2(150);
8023 l_gain_loss_tolrnc_basis VARCHAR2(30);
8024 l_gain_loss_apprv_proc_frml VARCHAR2(150);
8025 l_ert_absorbed_fee_frml VARCHAR2(150);
8026 l_ert_expense_fee_frml VARCHAR2(150);
8027 l_ert_financed_fee_frml VARCHAR2(150);
8028 l_ert_general_fee_frml VARCHAR2(150);
8029 l_ert_income_fee_frml VARCHAR2(150);
8030 l_ert_misc_fee_frml VARCHAR2(150);
8031 l_ert_passthru_fee_frml VARCHAR2(150);
8032 l_ert_rollover_fee_frml VARCHAR2(150);
8033 l_eot_absorbed_fee_frml VARCHAR2(150);
8034 l_eot_expense_fee_frml VARCHAR2(150);
8035 l_eot_financed_fee_frml VARCHAR2(150);
8036 l_eot_general_fee_frml VARCHAR2(150);
8037 l_eot_income_fee_frml VARCHAR2(150);
8038 l_eot_misc_fee_frml VARCHAR2(150);
8039 l_eot_passthru_fee_frml VARCHAR2(150);
8040 l_eot_rollover_fee_frml VARCHAR2(150);
8041
8042 -- AKP new rules added 4067094
8043
8044 l_st_upd_lines_from_contract VARCHAR2(450);
8045 l_st_interest_disclosed VARCHAR2(450);
8046 l_st_transfer_of_title VARCHAR2(450);
8047 l_st_sale_and_lease_back VARCHAR2(450);
8048 l_st_purchase_of_lease VARCHAR2(450);
8049 l_st_equipment_usage VARCHAR2(450);
8050 l_st_equipment_age VARCHAR2(450);
8051 l_st_asset_upfront_tax VARCHAR2(450);
8052 l_st_bill_stream_type_code VARCHAR2(450);
8053 l_st_bill_stream_purpose_code VARCHAR2(450);
8054 l_st_fin_stream_type_code VARCHAR2(450);
8055 l_st_fin_stream_purpose_code VARCHAR2(450);
8056 l_st_cap_stream_type_code VARCHAR2(450);
8057 l_st_cap_stream_purpose_code VARCHAR2(450);
8058 l_st_bill_stream_id NUMBER;
8059 l_st_fin_stream_id NUMBER;
8060 l_st_cap_stream_id NUMBER;
8061
8062 l_st_tax_schedule_applies_flag VARCHAR2(450); -- R12 ebTax change
8063
8064 l_id1 OKL_STRMTYP_SOURCE_V.id1%TYPE;
8065 l_st_stream_name OKL_STRMTYP_SOURCE_V.name%TYPE;
8066 l_send_bill_sale VARCHAR2(150);
8067 l_manual_quotes_only VARCHAR2(150);
8068 l_first_termination_date VARCHAR2(150);
8069 l_quote_rcpt_addl_rcpt_role VARCHAR2(30);
8070 l_quote_rcpt_alloc_ptg NUMBER;
8071 l_quote_apprvr_adv_notice_role VARCHAR2(30);
8072 l_quote_approver_delay_days NUMBER;
8073 l_ert_serv_mant_frml VARCHAR2(150);
8074 l_eot_serv_mant_frml VARCHAR2(150);
8075
8076
8077
8078 x_cash_appl_rule_id OKL_BPD_ACTIVE_CSH_RLS_V.ID1%TYPE;
8079
8080 l_rate_counter NUMBER := 1;
8081 l_tmpl_rate_rec krpv_rec_type;
8082 l_k_rate_tbl krpv_tbl_type;
8083 l_no_data BOOLEAN := TRUE;
8084 x_krpv_rec krpv_rec_type;
8085 l_formula_id NUMBER;
8086
8087 l_progress VARCHAR2(5) := '1.0';
8088
8089 -- Bug 4655611
8090 SUBTYPE fee_types_rec_type IS OKL_MAINTAIN_FEE_PVT.fee_types_rec_type;
8091 l_fee_types_rec fee_types_rec_type;
8092 x_fee_types_rec fee_types_rec_type;
8093
8094 l_contract_number okc_k_headers_b.contract_number%TYPE;
8095 l_contract_start_date okc_k_headers_b.start_date%TYPE;
8096 l_rvi_stream_type_id okl_strmtyp_source_v.id1%TYPE;
8097
8098 CURSOR contract_csr (p_contract_id NUMBER) is
8099 SELECT contract_number, start_date
8100 FROM okl_k_headers_full_v
8101 WHERE id = p_contract_id;
8102
8103 CURSOR rvi_stream_csr (p_sty_id number, p_contract_start_date date) IS
8104 SELECT 'Y'
8105 FROM okl_stream_types_uv STL
8106 WHERE STL.id = p_sty_id
8107 AND STL.start_date <= p_contract_start_date
8108 AND (STL.end_date >= p_contract_start_date OR STL.end_date IS NULL);
8109
8110 l_yn VARCHAR2(1) := 'N';
8111 l_rvi_stream_code OKL_HEADER_INTERFACE.RVI_STREAM_CODE%TYPE;
8112 l_rvi_stream_purpose_code OKL_HEADER_INTERFACE.RVI_STREAM_PURPOSE_CODE%TYPE;
8113 l_rvi_stream_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
8114
8115 -- Bug 4655611
8116
8117 l_eot_auto_proc_purchase_opt VARCHAR2(1);
8118
8119 --R12B eBTax
8120 CURSOR c_tax_schedule_yn IS
8121 SELECT tax_schedule_yn
8122 FROM okl_system_params;
8123
8124 l_tax_schedule_yn VARCHAR2(1);
8125
8126 BEGIN
8127
8128 x_return_status := OKL_API.G_RET_STS_SUCCESS;
8129
8130 --
8131 -- Always Create Re-leased asset rule
8132 -- with value = 'N'
8133 --
8134 /* Created at line creation
8135 l_rgpv_rec := NULL;
8136 l_rgp_id := NULL;
8137
8138 l_rgpv_rec.rgd_code := 'LARLES';
8139 l_rgpv_rec.chr_id := p_chr_id;
8140 l_rgpv_rec.dnz_chr_id := p_chr_id;
8141 l_rgpv_rec.cle_id := NULL;
8142 l_rgpv_rec.rgp_type := 'KRG';
8143
8144 l_rulv_rec := NULL;
8145
8146 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8147 l_rulv_rec.dnz_chr_id := p_chr_id;
8148 l_rulv_rec.rule_information_category := 'LARLES';
8149 l_rulv_rec.rule_information1 := 'N';
8150 l_rulv_rec.std_template_yn := 'N';
8151 l_rulv_rec.warn_yn := 'N';
8152
8153 create_rule_group_and_rule(
8154 x_return_status => x_return_status,
8155 x_msg_count => x_msg_count,
8156 x_msg_data => x_msg_data,
8157 p_rgp_id => l_rgp_id,
8158 p_rgpv_rec => l_rgpv_rec,
8159 p_rulv_rec => l_rulv_rec,
8160 x_rgpv_rec => x_rgpv_rec,
8161 x_rulv_rec => x_rulv_rec
8162 );
8163
8164 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8165 raise header_rule_failed;
8166 END IF;
8167
8168 debug_message('------>Rule: LARLES/LARLES processed');
8169 */
8170
8171 /* Rule Migration
8172 IF (p_header_rec.customer_account_id IS NOT NULL
8173 OR
8174 p_header_rec.customer_account_number IS NOT NULL ) THEN
8175
8176 get_customer_account_id(
8177 x_return_status => x_return_status,
8178 x_msg_count => x_msg_count,
8179 x_msg_data => x_msg_data,
8180 p_contract_number => p_header_rec.contract_number,
8181 p_customer_id => g_customer_id,
8182 p_customer_account_id => p_header_rec.customer_account_id,
8183 p_customer_account_number => p_header_rec.customer_account_number,
8184 x_customer_account_id => x_customer_account_id
8185 );
8186 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8187 x_return_status := OKL_API.G_RET_STS_ERROR;
8188 raise header_rule_failed;
8189 END IF;
8190
8191 g_customer_account_id := x_customer_account_id; -- Used to get Bill to address at Terms Interface
8192 l_progress := '1.1';
8193 ELSE
8194 IF (p_header_rec.template_number IS NOT NULL) THEN
8195
8196 l_rule_count := 0;
8197 get_contract_rules(
8198 x_return_status => x_return_status,
8199 x_msg_count => x_msg_count,
8200 x_msg_data => x_msg_data,
8201 p_chr_id => p_template_id,
8202 p_cle_id => NULL,
8203 p_rgd_code => 'LACAN',
8204 p_rule_code => 'CAN',
8205 x_rulv_tbl => l_rulv_tbl,
8206 x_rule_count => l_rule_count
8207 );
8208
8209 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8210 RAISE header_rule_failed;
8211 END IF;
8212
8213 IF (l_rule_count > 0) THEN
8214 x_customer_account_id := TO_NUMBER(l_rulv_tbl(1).object1_id1);
8215 g_customer_account_id := x_customer_account_id; -- Used to get Bill to address at Terms Interface
8216
8217 get_customer_account_id(
8218 x_return_status => x_return_status,
8219 x_msg_count => x_msg_count,
8220 x_msg_data => x_msg_data,
8221 p_contract_number => p_header_rec.contract_number,
8222 p_customer_id => g_customer_id,
8223 p_customer_account_id => x_customer_account_id,
8224 p_customer_account_number => NULL,
8225 x_customer_account_id => x_customer_account_id
8226 );
8227 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8228 x_return_status := OKL_API.G_RET_STS_ERROR;
8229 raise header_rule_failed;
8230 END IF;
8231
8232 END IF;
8233
8234 END IF;
8235
8236 END IF;
8237
8238 IF (x_customer_account_id IS NOT NULL) THEN
8239
8240 l_rgpv_rec := NULL;
8241 l_rgp_id := NULL;
8242
8243 l_rgpv_rec.rgd_code := 'LACAN';
8244 l_rgpv_rec.chr_id := p_chr_id;
8245 l_rgpv_rec.dnz_chr_id := p_chr_id;
8246 l_rgpv_rec.cle_id := NULL;
8247 l_rgpv_rec.rgp_type := 'KRG';
8248
8249 l_rulv_rec := NULL;
8250
8251 l_rulv_rec.object1_id1 := TO_CHAR(x_customer_account_id);
8252 l_rulv_rec.object1_id2 := '#';
8253 l_rulv_rec.jtot_object1_code := 'OKX_CUSTACCT';
8254 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8255 l_rulv_rec.dnz_chr_id := p_chr_id;
8256 l_rulv_rec.rule_information_category := 'CAN';
8257 l_rulv_rec.std_template_yn := 'N';
8258 l_rulv_rec.warn_yn := 'N';
8259
8260 create_rule_group_and_rule(
8261 x_return_status => x_return_status,
8262 x_msg_count => x_msg_count,
8263 x_msg_data => x_msg_data,
8264 p_rgp_id => l_rgp_id,
8265 p_rgpv_rec => l_rgpv_rec,
8266 p_rulv_rec => l_rulv_rec,
8267 x_rgpv_rec => x_rgpv_rec,
8268 x_rulv_rec => x_rulv_rec
8269 );
8270
8271 l_progress := '1.3';
8272
8273 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8274 raise header_rule_failed;
8275 END IF;
8276
8277 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
8278 l_rgp_id := x_rgpv_rec.id;
8279 END IF;
8280
8281 END IF; -- x_customer_account_id
8282
8283 debug_message('------>Rule: LACAN/CAN processed');
8284 */
8285
8286 IF (p_header_rec.rebook_limit_date IS NULL) THEN
8287 IF (p_header_rec.template_number IS NOT NULL) THEN
8288
8289 get_contract_rules(
8290 x_return_status => x_return_status,
8291 x_msg_count => x_msg_count,
8292 x_msg_data => x_msg_data,
8293 p_chr_id => p_template_id,
8294 p_cle_id => NULL,
8295 p_rgd_code => 'LAREBL',
8296 p_rule_code => 'LAREBL',
8297 x_rulv_tbl => l_rulv_tbl,
8298 x_rule_count => l_rule_count
8299 );
8300
8301 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8302 RAISE header_rule_failed;
8303 END IF;
8304
8305 IF (l_rule_count > 0) THEN
8306 l_rebook_limit_date := l_rulv_tbl(1).rule_information1;
8307 END IF;
8308 END IF;
8309 ELSE
8310 l_rebook_limit_date := get_canonical_date(p_header_rec.rebook_limit_date);
8311 END IF;
8312
8313 IF (l_rebook_limit_date IS NOT NULL) THEN
8314
8315 l_rgpv_rec := NULL;
8316 l_rgp_id := NULL;
8317 l_rgpv_rec.rgd_code := 'LAREBL';
8318 l_rgpv_rec.chr_id := p_chr_id;
8319 l_rgpv_rec.dnz_chr_id := p_chr_id;
8320 l_rgpv_rec.cle_id := NULL;
8321 l_rgpv_rec.rgp_type := 'KRG';
8322
8323 l_rulv_rec := NULL;
8324
8325 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8326 l_rulv_rec.dnz_chr_id := p_chr_id;
8327 l_rulv_rec.rule_information1 := l_rebook_limit_date;
8328 l_rulv_rec.rule_information_category := 'LAREBL';
8329 l_rulv_rec.std_template_yn := 'N';
8330 l_rulv_rec.warn_yn := 'N';
8331
8332
8333 create_rule_group_and_rule(
8334 x_return_status => x_return_status,
8335 x_msg_count => x_msg_count,
8336 x_msg_data => x_msg_data,
8337 p_rgp_id => l_rgp_id,
8338 p_rgpv_rec => l_rgpv_rec,
8339 p_rulv_rec => l_rulv_rec,
8340 x_rgpv_rec => x_rgpv_rec,
8341 x_rulv_rec => x_rulv_rec
8342 );
8343
8344 l_progress := '1.5';
8345
8346 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8347 raise header_rule_failed;
8348 END IF;
8349
8350 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
8351 l_rgp_id := x_rgpv_rec.id;
8352 END IF;
8353
8354 END IF; -- rebook limit
8355
8356 debug_message('------>Rule: LAREBL/LAREBL processed');
8357
8358 /* Not used currently - 05/20/2002
8359
8360 --Rule Group LATROP
8361
8362 l_rgpv_rec := NULL;
8363 l_rgp_id := NULL;
8364 l_rgpv_rec.rgd_code := 'LATROP';
8365 l_rgpv_rec.chr_id := p_chr_id;
8366 l_rgpv_rec.dnz_chr_id := p_chr_id;
8367 l_rgpv_rec.cle_id := NULL;
8368 l_rgpv_rec.rgp_type := 'KRG';
8369
8370 l_rulv_rec := NULL;
8371 IF (p_header_rec.end_of_term_option IS NOT NULL) THEN
8372
8373 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8374 l_rulv_rec.dnz_chr_id := p_chr_id;
8375 l_rulv_rec.rule_information1 := p_header_rec.end_of_term_option;
8376 l_rulv_rec.rule_information_category := 'LAEOTR';
8377 l_rulv_rec.std_template_yn := 'N';
8378 l_rulv_rec.warn_yn := 'N';
8379
8380 END IF;
8381
8382 IF (p_header_rec.end_of_term_amount IS NOT NULL) THEN
8383 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8384 l_rulv_rec.dnz_chr_id := p_chr_id;
8385 l_rulv_rec.rule_information2 := TO_CHAR(p_header_rec.end_of_term_amount);
8386 l_rulv_rec.rule_information_category := 'LAEOTR';
8387 l_rulv_rec.std_template_yn := 'N';
8388 l_rulv_rec.warn_yn := 'N';
8389
8390 END IF;
8391
8392 create_rule_group_and_rule(
8393 x_return_status => x_return_status,
8394 x_msg_count => x_msg_count,
8395 x_msg_data => x_msg_data,
8396 p_rgp_id => l_rgp_id,
8397 p_rgpv_rec => l_rgpv_rec,
8398 p_rulv_rec => l_rulv_rec,
8399 x_rgpv_rec => x_rgpv_rec,
8400 x_rulv_rec => x_rulv_rec
8401 );
8402
8403 l_progress := '1.7';
8404
8405 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8406 raise header_rule_failed;
8407 END IF;
8408
8409 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
8410 l_rgp_id := x_rgpv_rec.id;
8411 END IF;
8412
8413 l_rulv_rec := NULL;
8414
8415 IF (p_header_rec.mid_term_option IS NOT NULL) THEN
8416 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8417 l_rulv_rec.dnz_chr_id := p_chr_id;
8418 l_rulv_rec.rule_information1 := p_header_rec.mid_term_option;
8419 l_rulv_rec.rule_information_category := 'LAMITR';
8420 l_rulv_rec.std_template_yn := 'N';
8421 l_rulv_rec.warn_yn := 'N';
8422 END IF;
8423
8424 IF (p_header_rec.mid_term_amount IS NOT NULL) THEN
8425 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8426 l_rulv_rec.dnz_chr_id := p_chr_id;
8427 l_rulv_rec.rule_information2 := TO_CHAR(p_header_rec.mid_term_amount);
8428 l_rulv_rec.rule_information_category := 'LAMITR';
8429 l_rulv_rec.std_template_yn := 'N';
8430 l_rulv_rec.warn_yn := 'N';
8431 END IF;
8432
8433 create_rule_group_and_rule(
8434 x_return_status => x_return_status,
8435 x_msg_count => x_msg_count,
8436 x_msg_data => x_msg_data,
8437 p_rgp_id => l_rgp_id,
8438 p_rgpv_rec => l_rgpv_rec,
8439 p_rulv_rec => l_rulv_rec,
8440 x_rgpv_rec => x_rgpv_rec,
8441 x_rulv_rec => x_rulv_rec
8442 );
8443
8444 l_progress := '1.8';
8445
8446 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8447 raise header_rule_failed;
8448 END IF;
8449
8450 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
8451 l_rgp_id := x_rgpv_rec.id;
8452 END IF;
8453
8454 --Not used currently - 05/20/2002
8455 */
8456
8457 -- RUle Group LASDEP
8458 l_rgpv_rec := NULL;
8459 l_rgp_id := NULL;
8460 l_rgpv_rec.rgd_code := 'LASDEP';
8461 l_rgpv_rec.chr_id := p_chr_id;
8462 l_rgpv_rec.dnz_chr_id := p_chr_id;
8463 l_rgpv_rec.cle_id := NULL;
8464 l_rgpv_rec.rgp_type := 'KRG';
8465
8466 l_rulv_rec := NULL;
8467 --l_rulv_tbl := NULL;
8468
8469 l_security_deposit_hold_flag := p_header_rec.security_deposit_hold_flag;
8470 l_security_deposit_net_flag := p_header_rec.security_deposit_net_flag;
8471 l_security_deposit_date := get_canonical_date(p_header_rec.security_deposit_date);
8472
8473 IF (l_security_deposit_hold_flag IS NULL
8474 OR
8475 l_security_deposit_net_flag IS NULL
8476 OR
8477 l_security_deposit_date IS NULL
8478 AND
8479 p_header_rec.template_number IS NOT NULL) THEN
8480
8481 get_contract_rules(
8482 x_return_status => x_return_status,
8483 x_msg_count => x_msg_count,
8484 x_msg_data => x_msg_data,
8485 p_chr_id => p_template_id,
8486 p_cle_id => NULL,
8487 p_rgd_code => 'LASDEP',
8488 p_rule_code => 'LASDEP',
8489 x_rulv_tbl => l_rulv_tbl,
8490 x_rule_count => l_rule_count
8491 );
8492
8493 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8494 RAISE header_rule_failed;
8495 END IF;
8496
8497 IF (l_rule_count > 0) THEN
8498 l_security_deposit_hold_flag := NVL(l_security_deposit_hold_flag,l_rulv_tbl(1).rule_information2);
8499 l_security_deposit_net_flag := NVL(l_security_deposit_net_flag,l_rulv_tbl(1).rule_information4);
8500 l_security_deposit_date := NVL(l_security_deposit_date,l_rulv_tbl(1).rule_information5);
8501 END IF;
8502 END IF;
8503
8504 IF (l_security_deposit_hold_flag IS NOT NULL ) THEN
8505 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8506 l_rulv_rec.dnz_chr_id := p_chr_id;
8507 l_rulv_rec.rule_information2 := l_security_deposit_hold_flag;
8508 l_rulv_rec.rule_information_category := 'LASDEP';
8509 l_rulv_rec.std_template_yn := 'N';
8510 l_rulv_rec.warn_yn := 'N';
8511 END IF;
8512
8513 IF (l_security_deposit_net_flag IS NOT NULL) THEN
8514 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8515 l_rulv_rec.dnz_chr_id := p_chr_id;
8516 l_rulv_rec.rule_information4 := l_security_deposit_net_flag;
8517 l_rulv_rec.rule_information_category := 'LASDEP';
8518 l_rulv_rec.std_template_yn := 'N';
8519 l_rulv_rec.warn_yn := 'N';
8520 END IF;
8521
8522 IF (l_security_deposit_date IS NOT NULL) THEN
8523 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8524 l_rulv_rec.dnz_chr_id := p_chr_id;
8525 l_rulv_rec.rule_information5 := l_security_deposit_date;
8526 l_rulv_rec.rule_information_category := 'LASDEP';
8527 l_rulv_rec.std_template_yn := 'N';
8528 l_rulv_rec.warn_yn := 'N';
8529 END IF;
8530
8531 create_rule_group_and_rule(
8532 x_return_status => x_return_status,
8533 x_msg_count => x_msg_count,
8534 x_msg_data => x_msg_data,
8535 p_rgp_id => l_rgp_id,
8536 p_rgpv_rec => l_rgpv_rec,
8537 p_rulv_rec => l_rulv_rec,
8538 x_rgpv_rec => x_rgpv_rec,
8539 x_rulv_rec => x_rulv_rec
8540 );
8541
8542 l_progress := '1.9';
8543
8544 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8545 raise header_rule_failed;
8546 END IF;
8547
8548 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
8549 l_rgp_id := x_rgpv_rec.id;
8550 END IF;
8551
8552 debug_message('------>Rule: LASDEP/LASDEP processed');
8553
8554 -- Rule Group LARNOP
8555 l_rgpv_rec := NULL;
8556 l_rgp_id := NULL;
8557 l_rgpv_rec.rgd_code := 'LARNOP';
8558 l_rgpv_rec.chr_id := p_chr_id;
8559 l_rgpv_rec.dnz_chr_id := p_chr_id;
8560 l_rgpv_rec.cle_id := NULL;
8561 l_rgpv_rec.rgp_type := 'KRG';
8562
8563 l_rulv_rec := NULL;
8564
8565 l_renewal_notice_days := p_header_rec.renewal_notice_days;
8566 IF (l_renewal_notice_days IS NULL
8567 AND
8568 p_header_rec.template_number IS NOT NULL) THEN
8569
8570 get_contract_rules(
8571 x_return_status => x_return_status,
8572 x_msg_count => x_msg_count,
8573 x_msg_data => x_msg_data,
8574 p_chr_id => p_template_id,
8575 p_cle_id => NULL,
8576 p_rgd_code => 'LARNOP',
8577 p_rule_code => 'LAREND',
8578 x_rulv_tbl => l_rulv_tbl,
8579 x_rule_count => l_rule_count
8580 );
8581
8582 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8583 RAISE header_rule_failed;
8584 END IF;
8585
8586 IF (l_rule_count > 0) THEN
8587 l_renewal_notice_days := l_rulv_tbl(1).rule_information1;
8588 END IF;
8589 END IF;
8590
8591 IF (l_renewal_notice_days IS NOT NULL) THEN
8592 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8593 l_rulv_rec.dnz_chr_id := p_chr_id;
8594 l_rulv_rec.rule_information1 := l_renewal_notice_days;
8595 l_rulv_rec.rule_information_category := 'LAREND';
8596 l_rulv_rec.std_template_yn := 'N';
8597 l_rulv_rec.warn_yn := 'N';
8598 END IF;
8599
8600 create_rule_group_and_rule(
8601 x_return_status => x_return_status,
8602 x_msg_count => x_msg_count,
8603 x_msg_data => x_msg_data,
8604 p_rgp_id => l_rgp_id,
8605 p_rgpv_rec => l_rgpv_rec,
8606 p_rulv_rec => l_rulv_rec,
8607 x_rgpv_rec => x_rgpv_rec,
8608 x_rulv_rec => x_rulv_rec
8609 );
8610
8611 l_progress := '1.10';
8612
8613 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8614 raise header_rule_failed;
8615 END IF;
8616
8617 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
8618 l_rgp_id := x_rgpv_rec.id;
8619 END IF;
8620
8621 debug_message('------>Rule: LARNOP/LAREND processed');
8622 l_rulv_rec := NULL;
8623
8624 l_renewal_option := p_header_rec.renewal_option;
8625 l_renewal_amount := TO_CHAR(p_header_rec.renewal_amount);
8626
8627 IF (l_renewal_option IS NULL
8628 OR
8629 l_renewal_amount IS NULL
8630 AND
8631 p_header_rec.template_number IS NOT NULL) THEN
8632
8633 get_contract_rules(
8634 x_return_status => x_return_status,
8635 x_msg_count => x_msg_count,
8636 x_msg_data => x_msg_data,
8637 p_chr_id => p_template_id,
8638 p_cle_id => NULL,
8639 p_rgd_code => 'LARNOP',
8640 p_rule_code => 'LARNEW',
8641 x_rulv_tbl => l_rulv_tbl,
8642 x_rule_count => l_rule_count
8643 );
8644
8645 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8646 RAISE header_rule_failed;
8647 END IF;
8648
8649 IF (l_rule_count > 0) THEN
8650 l_renewal_option := NVL(l_renewal_option,l_rulv_tbl(1).rule_information1);
8651 l_renewal_amount := NVL(l_renewal_amount,l_rulv_tbl(1).rule_information2);
8652 END IF;
8653 END IF;
8654
8655 IF (l_renewal_option IS NOT NULL) THEN
8656 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8657 l_rulv_rec.dnz_chr_id := p_chr_id;
8658 l_rulv_rec.rule_information1 := l_renewal_option;
8659 l_rulv_rec.rule_information_category := 'LARNEW';
8660 l_rulv_rec.std_template_yn := 'N';
8661 l_rulv_rec.warn_yn := 'N';
8662 END IF;
8663
8664 IF (l_renewal_amount IS NOT NULL) THEN
8665 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8666 l_rulv_rec.dnz_chr_id := p_chr_id;
8667 l_rulv_rec.rule_information2 := l_renewal_amount;
8668 l_rulv_rec.rule_information_category := 'LARNEW';
8669 l_rulv_rec.std_template_yn := 'N';
8670 l_rulv_rec.warn_yn := 'N';
8671 END IF;
8672
8673 create_rule_group_and_rule(
8674 x_return_status => x_return_status,
8675 x_msg_count => x_msg_count,
8676 x_msg_data => x_msg_data,
8677 p_rgp_id => l_rgp_id,
8678 p_rgpv_rec => l_rgpv_rec,
8679 p_rulv_rec => l_rulv_rec,
8680 x_rgpv_rec => x_rgpv_rec,
8681 x_rulv_rec => x_rulv_rec
8682 );
8683
8684 l_progress := '1.11';
8685
8686 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8687 raise header_rule_failed;
8688 END IF;
8689
8690 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
8691 l_rgp_id := x_rgpv_rec.id;
8692 END IF;
8693
8694 debug_message('------>Rule: LARNOP/LARNEW processed');
8695 -- Rule Group LALIGR
8696
8697 l_rgpv_rec := NULL;
8698 l_rgp_id := NULL;
8699 l_rgpv_rec.rgd_code := 'LALIGR';
8700 l_rgpv_rec.chr_id := p_chr_id;
8701 l_rgpv_rec.dnz_chr_id := p_chr_id;
8702 l_rgpv_rec.cle_id := NULL;
8703 l_rgpv_rec.rgp_type := 'KRG';
8704
8705 l_rulv_rec := NULL;
8706
8707 l_late_interest_held_date := get_canonical_date(p_header_rec.late_interest_held_until_date);
8708
8709 IF (l_late_interest_held_date IS NULL
8710 AND
8711 p_header_rec.template_number IS NOT NULL) THEN
8712 get_contract_rules(
8713 x_return_status => x_return_status,
8714 x_msg_count => x_msg_count,
8715 x_msg_data => x_msg_data,
8716 p_chr_id => p_template_id,
8717 p_cle_id => NULL,
8718 p_rgd_code => 'LALIGR',
8719 p_rule_code => 'LAHUDT',
8720 x_rulv_tbl => l_rulv_tbl,
8721 x_rule_count => l_rule_count
8722 );
8723
8724 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8725 RAISE header_rule_failed;
8726 END IF;
8727
8728 IF (l_rule_count > 0) THEN
8729 l_late_interest_held_date := l_rulv_tbl(1).rule_information1;
8730 END IF;
8731 END IF;
8732
8733 IF (l_late_interest_held_date IS NOT NULL) THEN
8734 l_rulv_rec := NULL;
8735 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8736 l_rulv_rec.dnz_chr_id := p_chr_id;
8737 l_rulv_rec.rule_information1 := l_late_interest_held_date;
8738 l_rulv_rec.rule_information_category := 'LAHUDT';
8739 l_rulv_rec.std_template_yn := 'N';
8740 l_rulv_rec.warn_yn := 'N';
8741 END IF;
8742
8743 create_rule_group_and_rule(
8744 x_return_status => x_return_status,
8745 x_msg_count => x_msg_count,
8746 x_msg_data => x_msg_data,
8747 p_rgp_id => l_rgp_id,
8748 p_rgpv_rec => l_rgpv_rec,
8749 p_rulv_rec => l_rulv_rec,
8750 x_rgpv_rec => x_rgpv_rec,
8751 x_rulv_rec => x_rulv_rec
8752 );
8753
8754 l_progress := '1.11';
8755
8756 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8757 raise header_rule_failed;
8758 END IF;
8759
8760 -- IF (l_rgp_id IS NULL) THEN
8761 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- rviriyal bug #6310553
8762 l_rgp_id := x_rgpv_rec.id;
8763 END IF;
8764
8765 debug_message('------>Rule: LALIGR/LAHUDT processed');
8766 l_rulv_rec := NULL; -- dedey added for bug 4637513
8767
8768 l_late_interest_exempt_flag := p_header_rec.late_interest_exempt_flag;
8769
8770 IF (l_late_interest_exempt_flag IS NULL
8771 AND
8772 p_header_rec.template_number IS NOT NULL) THEN
8773 get_contract_rules(
8774 x_return_status => x_return_status,
8775 x_msg_count => x_msg_count,
8776 x_msg_data => x_msg_data,
8777 p_chr_id => p_template_id,
8778 p_cle_id => NULL,
8779 p_rgd_code => 'LALIGR',
8780 p_rule_code => 'LALIEX',
8781 x_rulv_tbl => l_rulv_tbl,
8782 x_rule_count => l_rule_count
8783 );
8784
8785 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8786 RAISE header_rule_failed;
8787 END IF;
8788
8789 IF (l_rule_count > 0) THEN
8790 l_late_interest_exempt_flag := l_rulv_tbl(1).rule_information1;
8791 END IF;
8792 END IF;
8793
8794 IF (l_late_interest_exempt_flag IS NOT NULL) THEN
8795 l_rulv_rec := NULL;
8796 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8797 l_rulv_rec.dnz_chr_id := p_chr_id;
8798 l_rulv_rec.rule_information1 := l_late_interest_exempt_flag;
8799 l_rulv_rec.rule_information_category := 'LALIEX';
8800 l_rulv_rec.std_template_yn := 'N';
8801 l_rulv_rec.warn_yn := 'N';
8802 END IF;
8803
8804 create_rule_group_and_rule(
8805 x_return_status => x_return_status,
8806 x_msg_count => x_msg_count,
8807 x_msg_data => x_msg_data,
8808 p_rgp_id => l_rgp_id,
8809 p_rgpv_rec => l_rgpv_rec,
8810 p_rulv_rec => l_rulv_rec,
8811 x_rgpv_rec => x_rgpv_rec,
8812 x_rulv_rec => x_rulv_rec
8813 );
8814
8815 l_progress := '1.11';
8816
8817 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8818 raise header_rule_failed;
8819 END IF;
8820
8821 --IF (l_rgp_id IS NULL) THEN
8822 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- rviriyal bug #6310553
8823 l_rgp_id := x_rgpv_rec.id;
8824 END IF;
8825
8826 debug_message('------>Rule: LALIGR/LALIEX processed');
8827 l_rulv_rec := NULL; -- dedey added for bug 4637513
8828
8829 l_late_int_product_code := p_header_rec.late_interest_product_code;
8830 l_late_int_product_id := NULL;
8831
8832 IF (l_late_int_product_code IS NULL
8833 AND
8834 p_header_rec.template_number IS NOT NULL) THEN
8835 get_contract_rules(
8836 x_return_status => x_return_status,
8837 x_msg_count => x_msg_count,
8838 x_msg_data => x_msg_data,
8839 p_chr_id => p_template_id,
8840 p_cle_id => NULL,
8841 p_rgd_code => 'LALIGR',
8842 p_rule_code => 'LALCIN',
8843 x_rulv_tbl => l_rulv_tbl,
8844 x_rule_count => l_rule_count
8845 );
8846
8847 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8848 RAISE header_rule_failed;
8849 END IF;
8850
8851 IF (l_rule_count > 0) THEN
8852 l_late_int_product_id := l_rulv_tbl(1).rule_information1;
8853 END IF;
8854 END IF;
8855
8856 IF (l_late_int_product_code IS NOT NULL) THEN
8857 l_late_int_product_id := get_late_policy_id(
8858 x_return_status => x_return_status,
8859 p_late_policy_code => l_late_int_product_code,
8860 p_org_id => p_header_rec.authoring_org_id,
8861 p_late_policy_type => 'INT'
8862 );
8863
8864 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8865 okl_api.set_message(
8866 G_APP_NAME,
8867 G_INVALID_VALUE,
8868 'CONTRACT_NUM',
8869 p_header_rec.contract_number_old,
8870 'COL_NAME',
8871 'LATE_INTEREST_PRODUCT_CODE',
8872 'COL_VALUE',
8873 l_late_int_product_code
8874 );
8875 raise header_rule_failed;
8876 END IF;
8877
8878 END IF;
8879
8880 IF (l_late_int_product_id IS NOT NULL) THEN
8881 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8882 l_rulv_rec.dnz_chr_id := p_chr_id;
8883 l_rulv_rec.rule_information1 := l_late_int_product_id;
8884 l_rulv_rec.rule_information_category := 'LALCIN';
8885 l_rulv_rec.std_template_yn := 'N';
8886 l_rulv_rec.warn_yn := 'N';
8887 END IF;
8888
8889 create_rule_group_and_rule(
8890 x_return_status => x_return_status,
8891 x_msg_count => x_msg_count,
8892 x_msg_data => x_msg_data,
8893 p_rgp_id => l_rgp_id,
8894 p_rgpv_rec => l_rgpv_rec,
8895 p_rulv_rec => l_rulv_rec,
8896 x_rgpv_rec => x_rgpv_rec,
8897 x_rulv_rec => x_rulv_rec
8898 );
8899 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8900 raise header_rule_failed;
8901 END IF;
8902
8903 --IF (l_rgp_id IS NULL) THEN
8904 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- rviriyal bug #6310553
8905 l_rgp_id := x_rgpv_rec.id;
8906 END IF;
8907
8908 debug_message('------>Rule: LALIGR/LALCIN processed');
8909
8910 -- Rule Group LALCGR
8911 l_rgpv_rec := NULL;
8912 l_rgp_id := NULL;
8913 l_rgpv_rec.rgd_code := 'LALCGR';
8914 l_rgpv_rec.chr_id := p_chr_id;
8915 l_rgpv_rec.dnz_chr_id := p_chr_id;
8916 l_rgpv_rec.cle_id := NULL;
8917 l_rgpv_rec.rgp_type := 'KRG';
8918
8919 l_rulv_rec := NULL;
8920
8921 l_late_charge_held_until_date := get_canonical_date(p_header_rec.late_charge_held_until_date);
8922
8923 IF (l_late_charge_held_until_date IS NULL
8924 AND
8925 p_header_rec.template_number IS NOT NULL) THEN
8926 get_contract_rules(
8927 x_return_status => x_return_status,
8928 x_msg_count => x_msg_count,
8929 x_msg_data => x_msg_data,
8930 p_chr_id => p_template_id,
8931 p_cle_id => NULL,
8932 p_rgd_code => 'LALCGR',
8933 p_rule_code => 'LAHUDT',
8934 x_rulv_tbl => l_rulv_tbl,
8935 x_rule_count => l_rule_count
8936 );
8937
8938 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8939 RAISE header_rule_failed;
8940 END IF;
8941
8942 IF (l_rule_count > 0) THEN
8943 l_late_charge_held_until_date := l_rulv_tbl(1).rule_information1;
8944 END IF;
8945 END IF;
8946
8947 IF (l_late_charge_held_until_date IS NOT NULL) THEN
8948 l_rulv_rec.rgp_id := x_rgpv_rec.id;
8949 l_rulv_rec.dnz_chr_id := p_chr_id;
8950 l_rulv_rec.rule_information1 := l_late_charge_held_until_date;
8951 l_rulv_rec.rule_information_category := 'LAHUDT';
8952 l_rulv_rec.std_template_yn := 'N';
8953 l_rulv_rec.warn_yn := 'N';
8954 END IF;
8955
8956 create_rule_group_and_rule(
8957 x_return_status => x_return_status,
8958 x_msg_count => x_msg_count,
8959 x_msg_data => x_msg_data,
8960 p_rgp_id => l_rgp_id,
8961 p_rgpv_rec => l_rgpv_rec,
8962 p_rulv_rec => l_rulv_rec,
8963 x_rgpv_rec => x_rgpv_rec,
8964 x_rulv_rec => x_rulv_rec
8965 );
8966
8967 l_progress := '1.12';
8968
8969 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8970 raise header_rule_failed;
8971 END IF;
8972
8973 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- Bug 5085099
8974 l_rgp_id := x_rgpv_rec.id;
8975 END IF;
8976
8977 debug_message('------>Rule: LALCGR/LAHUDT processed');
8978 l_rulv_rec := NULL;
8979 l_late_charge_product_code := p_header_rec.late_charge_product_code;
8980 l_late_charge_product_id := NULL;
8981
8982 IF (l_late_charge_product_code IS NULL
8983 AND
8984 p_header_rec.template_number IS NOT NULL) THEN
8985 get_contract_rules(
8986 x_return_status => x_return_status,
8987 x_msg_count => x_msg_count,
8988 x_msg_data => x_msg_data,
8989 p_chr_id => p_template_id,
8990 p_cle_id => NULL,
8991 p_rgd_code => 'LALCGR',
8992 p_rule_code => 'LALCPR',
8993 x_rulv_tbl => l_rulv_tbl,
8994 x_rule_count => l_rule_count
8995 );
8996
8997 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
8998 RAISE header_rule_failed;
8999 END IF;
9000
9001 IF (l_rule_count > 0) THEN
9002 l_late_charge_product_id := l_rulv_tbl(1).rule_information1;
9003 END IF;
9004 END IF;
9005
9006 IF (l_late_charge_product_code IS NOT NULL) THEN
9007 l_late_charge_product_id := get_late_policy_id(
9008 x_return_status => x_return_status,
9009 p_late_policy_code => l_late_charge_product_code,
9010 p_org_id => p_header_rec.authoring_org_id,
9011 p_late_policy_type => 'CHG'
9012 );
9013 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9014 okl_api.set_message(
9015 G_APP_NAME,
9016 G_INVALID_VALUE,
9017 'CONTRACT_NUM',
9018 p_header_rec.contract_number_old,
9019 'COL_NAME',
9020 'LATE_CHARGE_PRODUCT_CODE',
9021 'COL_VALUE',
9022 l_late_charge_product_code
9023 );
9024 raise header_rule_failed;
9025 END IF;
9026
9027 END IF;
9028
9029 IF (l_late_charge_product_id IS NOT NULL) THEN
9030 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9031 l_rulv_rec.dnz_chr_id := p_chr_id;
9032 l_rulv_rec.rule_information1 := l_late_charge_product_id;
9033 l_rulv_rec.rule_information_category := 'LALCPR';
9034 l_rulv_rec.std_template_yn := 'N';
9035 l_rulv_rec.warn_yn := 'N';
9036 END IF;
9037
9038 create_rule_group_and_rule(
9039 x_return_status => x_return_status,
9040 x_msg_count => x_msg_count,
9041 x_msg_data => x_msg_data,
9042 p_rgp_id => l_rgp_id,
9043 p_rgpv_rec => l_rgpv_rec,
9044 p_rulv_rec => l_rulv_rec,
9045 x_rgpv_rec => x_rgpv_rec,
9046 x_rulv_rec => x_rulv_rec
9047 );
9048
9049 l_progress := '1.13';
9050
9051 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9052 raise header_rule_failed;
9053 END IF;
9054
9055 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- Bug 5085099
9056 l_rgp_id := x_rgpv_rec.id;
9057 END IF;
9058
9059 debug_message('------>Rule: LALCGR/LALCPR processed');
9060
9061 l_rulv_rec := NULL;
9062
9063 l_late_charge_exempt_flag := p_header_rec.late_charge_exempt_flag;
9064
9065 IF (l_late_charge_exempt_flag IS NULL
9066 AND
9067 p_header_rec.template_number IS NOT NULL) THEN
9068 get_contract_rules(
9069 x_return_status => x_return_status,
9070 x_msg_count => x_msg_count,
9071 x_msg_data => x_msg_data,
9072 p_chr_id => p_template_id,
9073 p_cle_id => NULL,
9074 p_rgd_code => 'LALCGR',
9075 p_rule_code => 'LALCEX',
9076 x_rulv_tbl => l_rulv_tbl,
9077 x_rule_count => l_rule_count
9078 );
9079
9080 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9081 RAISE header_rule_failed;
9082 END IF;
9083
9084 IF (l_rule_count > 0) THEN
9085 l_late_charge_exempt_flag := l_rulv_tbl(1).rule_information1;
9086 END IF;
9087 END IF;
9088
9089 IF (l_late_charge_exempt_flag IS NOT NULL) THEN
9090 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9091 l_rulv_rec.dnz_chr_id := p_chr_id;
9092 l_rulv_rec.rule_information1 := l_late_charge_exempt_flag;
9093 l_rulv_rec.rule_information_category := 'LALCEX';
9094 l_rulv_rec.std_template_yn := 'N';
9095 l_rulv_rec.warn_yn := 'N';
9096 END IF;
9097
9098 create_rule_group_and_rule(
9099 x_return_status => x_return_status,
9100 x_msg_count => x_msg_count,
9101 x_msg_data => x_msg_data,
9102 p_rgp_id => l_rgp_id,
9103 p_rgpv_rec => l_rgpv_rec,
9104 p_rulv_rec => l_rulv_rec,
9105 x_rgpv_rec => x_rgpv_rec,
9106 x_rulv_rec => x_rulv_rec
9107 );
9108
9109 l_progress := '1.14';
9110
9111 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9112 raise header_rule_failed;
9113 END IF;
9114
9115 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
9116 l_rgp_id := x_rgpv_rec.id;
9117 END IF;
9118
9119 debug_message('------>Rule: LALCGR/LALCEX processed');
9120
9121 /* -- AKP: Commented as new variable rate processing occurs OKL.H onwards
9122 --Rule Group LAIIND
9123 l_rgpv_rec := NULL;
9124 l_rgp_id := NULL;
9125 l_rgpv_rec.rgd_code := 'LAIIND';
9126 l_rgpv_rec.chr_id := p_chr_id;
9127 l_rgpv_rec.dnz_chr_id := p_chr_id;
9128 l_rgpv_rec.cle_id := NULL;
9129 l_rgpv_rec.rgp_type := 'KRG';
9130
9131 l_variable_rate := p_header_rec.variable_rate;
9132
9133 IF (l_variable_rate IS NULL
9134 AND
9135 p_header_rec.template_number IS NOT NULL) THEN
9136 get_contract_rules(
9137 x_return_status => x_return_status,
9138 x_msg_count => x_msg_count,
9139 x_msg_data => x_msg_data,
9140 p_chr_id => p_template_id,
9141 p_cle_id => NULL,
9142 p_rgd_code => 'LAIIND',
9143 p_rule_code => 'LAINTP',
9144 x_rulv_tbl => l_rulv_tbl,
9145 x_rule_count => l_rule_count
9146 );
9147
9148 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9149 RAISE header_rule_failed;
9150 END IF;
9151
9152 IF (l_rule_count > 0) THEN
9153 l_variable_rate := l_rulv_tbl(1).rule_information1;
9154 END IF;
9155 END IF;
9156
9157 IF (l_variable_rate IS NOT NULL) THEN
9158
9159 l_rulv_rec := NULL;
9160 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9161 l_rulv_rec.dnz_chr_id := p_chr_id;
9162 l_rulv_rec.rule_information1 := l_variable_rate;
9163 l_rulv_rec.rule_information_category := 'LAINTP';
9164 l_rulv_rec.std_template_yn := 'N';
9165 l_rulv_rec.warn_yn := 'N';
9166
9167 create_rule_group_and_rule(
9168 x_return_status => x_return_status,
9169 x_msg_count => x_msg_count,
9170 x_msg_data => x_msg_data,
9171 p_rgp_id => l_rgp_id,
9172 p_rgpv_rec => l_rgpv_rec,
9173 p_rulv_rec => l_rulv_rec,
9174 x_rgpv_rec => x_rgpv_rec,
9175 x_rulv_rec => x_rulv_rec
9176 );
9177
9178 l_progress := '1.141';
9179 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9180 raise header_rule_failed;
9181 END IF;
9182
9183 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
9184 l_rgp_id := x_rgpv_rec.id; --store rgp_id
9185 END IF;
9186
9187 END IF; -- variable_rate
9188
9189 debug_message('------>Rule: LAIIND/LAINTP processed');
9190 l_rulv_rec := NULL;
9191
9192 l_convert_type := p_header_rec.convert_type;
9193 l_conversion_method := p_header_rec.conversion_method;
9194 l_date_of_conversion := get_canonicaL_date(p_header_rec.date_of_conversion);
9195 l_convert_by_date := get_canonicaL_date(p_header_rec.convert_by_date);
9196
9197 IF (l_convert_type IS NULL
9198 OR
9199 l_conversion_method IS NULL
9200 OR
9201 l_date_of_conversion IS NULL
9202 OR
9203 l_convert_by_date IS NULL
9204 AND
9205 p_header_rec.template_number IS NOT NULL) THEN
9206 get_contract_rules(
9207 x_return_status => x_return_status,
9208 x_msg_count => x_msg_count,
9209 x_msg_data => x_msg_data,
9210 p_chr_id => p_template_id,
9211 p_cle_id => NULL,
9212 p_rgd_code => 'LAIIND',
9213 p_rule_code => 'LAICON',
9214 x_rulv_tbl => l_rulv_tbl,
9215 x_rule_count => l_rule_count
9216 );
9217
9218 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9219 RAISE header_rule_failed;
9220 END IF;
9221
9222 IF (l_rule_count > 0) THEN
9223 l_convert_type := NVL(l_convert_type,l_rulv_tbl(1).rule_information1);
9224 l_conversion_method := NVL(l_conversion_method,l_rulv_tbl(1).rule_information2);
9225 l_date_of_conversion := NVL(l_date_of_conversion,l_rulv_tbl(1).rule_information3);
9226 l_convert_by_date := NVL(l_convert_by_date,l_rulv_tbl(1).rule_information4);
9227 END IF;
9228 END IF;
9229
9230 IF (l_convert_type IS NOT NULL) THEN
9231 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9232 l_rulv_rec.dnz_chr_id := p_chr_id;
9233 l_rulv_rec.rule_information1 := l_convert_type;
9234 l_rulv_rec.rule_information_category := 'LAICON';
9235 l_rulv_rec.std_template_yn := 'N';
9236 l_rulv_rec.warn_yn := 'N';
9237 END IF;
9238
9239 IF (l_conversion_method IS NOT NULL) THEN
9240 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9241 l_rulv_rec.dnz_chr_id := p_chr_id;
9242 l_rulv_rec.rule_information2 := l_conversion_method;
9243 l_rulv_rec.rule_information_category := 'LAICON';
9244 l_rulv_rec.std_template_yn := 'N';
9245 l_rulv_rec.warn_yn := 'N';
9246 END IF;
9247
9248 IF (l_date_of_conversion IS NOT NULL) THEN
9249 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9250 l_rulv_rec.dnz_chr_id := p_chr_id;
9251 l_rulv_rec.rule_information3 := l_date_of_conversion;
9252 l_rulv_rec.rule_information_category := 'LAICON';
9253 l_rulv_rec.std_template_yn := 'N';
9254 l_rulv_rec.warn_yn := 'N';
9255 END IF;
9256
9257 IF (l_convert_by_date IS NOT NULL) THEN
9258 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9259 l_rulv_rec.dnz_chr_id := p_chr_id;
9260 l_rulv_rec.rule_information4 := l_convert_by_date;
9261 l_rulv_rec.rule_information_category := 'LAICON';
9262 l_rulv_rec.std_template_yn := 'N';
9263 l_rulv_rec.warn_yn := 'N';
9264 END IF;
9265
9266 create_rule_group_and_rule(
9267 x_return_status => x_return_status,
9268 x_msg_count => x_msg_count,
9269 x_msg_data => x_msg_data,
9270 p_rgp_id => l_rgp_id,
9271 p_rgpv_rec => l_rgpv_rec,
9272 p_rulv_rec => l_rulv_rec,
9273 x_rgpv_rec => x_rgpv_rec,
9274 x_rulv_rec => x_rulv_rec
9275 );
9276
9277 l_progress := '1.15';
9278
9279 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9280 raise header_rule_failed;
9281 END IF;
9282
9283 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
9284 l_rgp_id := x_rgpv_rec.id;
9285 END IF;
9286
9287 debug_message('------>Rule: LAIIND/LAICON processed');
9288 l_rulv_rec := NULL;
9289
9290 l_variable_method := p_header_rec.variable_method;
9291 l_index_name := p_header_rec.index_name;
9292 l_index_id := NULL;
9293 l_base_rate := p_header_rec.base_rate;
9294 l_adder := p_header_rec.adder;
9295 l_minimum_rate := p_header_rec.minimum_rate;
9296 l_maximum_rate := p_header_rec.maximum_rate;
9297 l_tolerance := p_header_rec.tolerance;
9298 l_adjustment_frequency := p_header_rec.adjustment_frequency;
9299
9300 IF (l_variable_method IS NULL
9301 OR
9302 l_index_name IS NULL
9303 OR
9304 l_base_rate IS NULL
9305 OR
9306 l_adder IS NULL
9307 OR
9308 l_minimum_rate IS NULL
9309 OR
9310 l_maximum_rate IS NULL
9311 OR
9312 l_tolerance IS NULL
9313 OR
9314 l_adjustment_frequency IS NULL
9315 AND
9316 p_header_rec.template_number IS NOT NULL) THEN
9317 get_contract_rules(
9318 x_return_status => x_return_status,
9319 x_msg_count => x_msg_count,
9320 x_msg_data => x_msg_data,
9321 p_chr_id => p_template_id,
9322 p_cle_id => NULL,
9323 p_rgd_code => 'LAIIND',
9324 p_rule_code => 'LAIVAR',
9325 x_rulv_tbl => l_rulv_tbl,
9326 x_rule_count => l_rule_count
9327 );
9328
9329 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9330 RAISE header_rule_failed;
9331 END IF;
9332
9333 IF (l_rule_count > 0) THEN
9334 l_variable_method := NVL(l_variable_method,l_rulv_tbl(1).rule_information1);
9335 l_index_id := NVL(l_index_id,l_rulv_tbl(1).rule_information2);
9336 l_base_rate := NVL(l_base_rate,l_rulv_tbl(1).rule_information3);
9337 l_adder := NVL(l_adder,l_rulv_tbl(1).rule_information4);
9338 l_minimum_rate := NVL(l_minimum_rate,l_rulv_tbl(1).rule_information5);
9339 l_maximum_rate := NVL(l_maximum_rate,l_rulv_tbl(1).rule_information6);
9340 l_tolerance := NVL(l_tolerance,l_rulv_tbl(1).rule_information7);
9341 l_adjustment_frequency := NVL(l_adjustment_frequency,l_rulv_tbl(1).rule_information8);
9342 END IF;
9343 END IF;
9344
9345 IF (l_variable_method IS NOT NULL) THEN
9346 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9347 l_rulv_rec.dnz_chr_id := p_chr_id;
9348 l_rulv_rec.rule_information1 := l_variable_method;
9349 l_rulv_rec.rule_information_category := 'LAIVAR';
9350 l_rulv_rec.std_template_yn := 'N';
9351 l_rulv_rec.warn_yn := 'N';
9352 END IF;
9353
9354 IF (l_index_name IS NOT NULL) THEN
9355
9356 get_index_id(
9357 x_return_status => x_return_status,
9358 p_index_name => l_index_name,
9359 x_index_id => x_index_id
9360 );
9361 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9362 okl_api.set_message(
9363 G_APP_NAME,
9364 G_INVALID_VALUE,
9365 'CONTRACT_NUM',
9366 p_header_rec.contract_number_old,
9367 'COL_NAME',
9368 'INDEX_NAME',
9369 'COL_VALUE',
9370 p_header_rec.index_name
9371 );
9372 raise header_rule_failed;
9373 END IF;
9374 l_index_id := x_index_id;
9375 END IF;
9376
9377 IF (l_index_id IS NOT NULL) THEN
9378 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9379 l_rulv_rec.dnz_chr_id := p_chr_id;
9380 l_rulv_rec.rule_information2 := TO_CHAR(x_index_id);
9381 l_rulv_rec.rule_information_category := 'LAIVAR';
9382 l_rulv_rec.std_template_yn := 'N';
9383 l_rulv_rec.warn_yn := 'N';
9384 END IF;
9385
9386 IF (l_base_rate IS NOT NULL) THEN
9387 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9388 l_rulv_rec.dnz_chr_id := p_chr_id;
9389 l_rulv_rec.rule_information3 := l_base_rate;
9390 l_rulv_rec.rule_information_category := 'LAIVAR';
9391 l_rulv_rec.std_template_yn := 'N';
9392 l_rulv_rec.warn_yn := 'N';
9393 END IF;
9394
9395 IF (l_adder IS NOT NULL) THEN
9396 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9397 l_rulv_rec.dnz_chr_id := p_chr_id;
9398 l_rulv_rec.rule_information4 := l_adder;
9399 l_rulv_rec.rule_information_category := 'LAIVAR';
9400 l_rulv_rec.std_template_yn := 'N';
9401 l_rulv_rec.warn_yn := 'N';
9402 END IF;
9403
9404 IF (l_minimum_rate IS NOT NULL) THEN
9405 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9406 l_rulv_rec.dnz_chr_id := p_chr_id;
9407 l_rulv_rec.rule_information5 := l_minimum_rate;
9408 l_rulv_rec.rule_information_category := 'LAIVAR';
9409 l_rulv_rec.std_template_yn := 'N';
9410 l_rulv_rec.warn_yn := 'N';
9411 END IF;
9412
9413 IF (l_maximum_rate IS NOT NULL) THEN
9414 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9415 l_rulv_rec.dnz_chr_id := p_chr_id;
9416 l_rulv_rec.rule_information6 := l_maximum_rate;
9417 l_rulv_rec.rule_information_category := 'LAIVAR';
9418 l_rulv_rec.std_template_yn := 'N';
9419 l_rulv_rec.warn_yn := 'N';
9420 END IF;
9421
9422 IF (l_tolerance IS NOT NULL) THEN
9423 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9424 l_rulv_rec.dnz_chr_id := p_chr_id;
9425 l_rulv_rec.rule_information7 := l_tolerance;
9426 l_rulv_rec.rule_information_category := 'LAIVAR';
9427 l_rulv_rec.std_template_yn := 'N';
9428 l_rulv_rec.warn_yn := 'N';
9429 END IF;
9430
9431 IF (l_adjustment_frequency IS NOT NULL) THEN
9432 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9433 l_rulv_rec.dnz_chr_id := p_chr_id;
9434 l_rulv_rec.rule_information8 := l_adjustment_frequency;
9435 l_rulv_rec.rule_information_category := 'LAIVAR';
9436 l_rulv_rec.std_template_yn := 'N';
9437 l_rulv_rec.warn_yn := 'N';
9438 END IF;
9439 create_rule_group_and_rule(
9440 x_return_status => x_return_status,
9441 x_msg_count => x_msg_count,
9442 x_msg_data => x_msg_data,
9443 p_rgp_id => l_rgp_id,
9444 p_rgpv_rec => l_rgpv_rec,
9445 p_rulv_rec => l_rulv_rec,
9446 x_rgpv_rec => x_rgpv_rec,
9447 x_rulv_rec => x_rulv_rec
9448 );
9449
9450 l_progress := '1.16';
9451 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9452 x_return_status := OKL_API.G_RET_STS_ERROR;
9453 raise header_rule_failed;
9454 END IF;
9455
9456 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
9457 l_rgp_id := x_rgpv_rec.id;
9458 END IF;
9459
9460 debug_message('------>Rule: LAIIND/LAIVAR processed');
9461
9462 l_days_in_year := p_header_rec.days_in_year;
9463 l_days_in_month := p_header_rec.days_in_month;
9464 l_interest_method := p_header_rec.interest_method;
9465 l_interest_start_date := get_canonicaL_date(p_header_rec.interest_start_date);
9466 l_method_of_calculation := p_header_rec.method_of_calculation;
9467
9468 l_rulv_rec := NULL;
9469
9470 IF (l_days_in_year IS NULL
9471 OR
9472 l_days_in_month IS NULL
9473 OR
9474 l_interest_method IS NULL
9475 OR
9476 l_interest_start_date IS NULL
9477 OR
9478 l_method_of_calculation IS NULL
9479 AND
9480 p_header_rec.template_number IS NOT NULL) THEN
9481 get_contract_rules(
9482 x_return_status => x_return_status,
9483 x_msg_count => x_msg_count,
9484 x_msg_data => x_msg_data,
9485 p_chr_id => p_template_id,
9486 p_cle_id => NULL,
9487 p_rgd_code => 'LAIIND',
9488 p_rule_code => 'LAICLC',
9489 x_rulv_tbl => l_rulv_tbl,
9490 x_rule_count => l_rule_count
9491 );
9492
9493 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9494 RAISE header_rule_failed;
9495 END IF;
9496
9497 IF (l_rule_count > 0) THEN
9498 l_days_in_year := NVL(l_days_in_year,l_rulv_tbl(1).rule_information1);
9499 l_days_in_month := NVL(l_days_in_month,l_rulv_tbl(1).rule_information2);
9500 l_interest_method := NVL(l_interest_method,l_rulv_tbl(1).rule_information3);
9501 l_interest_start_date := NVL(l_interest_start_date,l_rulv_tbl(1).rule_information4);
9502 l_method_of_calculation := NVL(l_method_of_calculation,l_rulv_tbl(1).rule_information5);
9503 END IF;
9504 END IF;
9505 IF (l_days_in_year IS NOT NULL) THEN
9506 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9507 l_rulv_rec.dnz_chr_id := p_chr_id;
9508 l_rulv_rec.rule_information1 := l_days_in_year;
9509 l_rulv_rec.rule_information_category := 'LAICLC';
9510 l_rulv_rec.std_template_yn := 'N';
9511 l_rulv_rec.warn_yn := 'N';
9512 END IF;
9513
9514 IF (l_days_in_month IS NOT NULL) THEN
9515 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9516 l_rulv_rec.dnz_chr_id := p_chr_id;
9517 l_rulv_rec.rule_information2 := l_days_in_month;
9518 l_rulv_rec.rule_information_category := 'LAICLC';
9519 l_rulv_rec.std_template_yn := 'N';
9520 l_rulv_rec.warn_yn := 'N';
9521 END IF;
9522
9523 IF (l_interest_method IS NOT NULL) THEN
9524 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9525 l_rulv_rec.dnz_chr_id := p_chr_id;
9526 l_rulv_rec.rule_information3 := l_interest_method;
9527 l_rulv_rec.rule_information_category := 'LAICLC';
9528 l_rulv_rec.std_template_yn := 'N';
9529 l_rulv_rec.warn_yn := 'N';
9530 END IF;
9531
9532 IF (l_interest_start_date IS NOT NULL) THEN
9533 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9534 l_rulv_rec.dnz_chr_id := p_chr_id;
9535 l_rulv_rec.rule_information4 := l_interest_start_date;
9536 l_rulv_rec.rule_information_category := 'LAICLC';
9537 l_rulv_rec.std_template_yn := 'N';
9538 l_rulv_rec.warn_yn := 'N';
9539 END IF;
9540
9541 IF (l_method_of_calculation IS NOT NULL) THEN
9542 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9543 l_rulv_rec.dnz_chr_id := p_chr_id;
9544 l_rulv_rec.rule_information5 := l_method_of_calculation;
9545 l_rulv_rec.rule_information_category := 'LAICLC';
9546 l_rulv_rec.std_template_yn := 'N';
9547 l_rulv_rec.warn_yn := 'N';
9548 END IF;
9549
9550 create_rule_group_and_rule(
9551 x_return_status => x_return_status,
9552 x_msg_count => x_msg_count,
9553 x_msg_data => x_msg_data,
9554 p_rgp_id => l_rgp_id,
9555 p_rgpv_rec => l_rgpv_rec,
9556 p_rulv_rec => l_rulv_rec,
9557 x_rgpv_rec => x_rgpv_rec,
9558 x_rulv_rec => x_rulv_rec
9559 );
9560
9561 l_progress := '1.17';
9562 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9563 x_return_status := OKL_API.G_RET_STS_ERROR;
9564 raise header_rule_failed;
9565 END IF;
9566
9567 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
9568 l_rgp_id := x_rgpv_rec.id;
9569 END IF;
9570
9571 debug_message('------>Rule: LAIIND/LAICLC processed');
9572 l_rulv_rec := NULL;
9573
9574 l_formula_name := p_header_rec.formula_name;
9575
9576 IF (l_formula_name IS NULL
9577 AND
9578 p_header_rec.template_number IS NOT NULL) THEN
9579 get_contract_rules(
9580 x_return_status => x_return_status,
9581 x_msg_count => x_msg_count,
9582 x_msg_data => x_msg_data,
9583 p_chr_id => p_template_id,
9584 p_cle_id => NULL,
9585 p_rgd_code => 'LAIIND',
9586 p_rule_code => 'LAFORM',
9587 x_rulv_tbl => l_rulv_tbl,
9588 x_rule_count => l_rule_count
9589 );
9590
9591 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9592 RAISE header_rule_failed;
9593 END IF;
9594
9595 IF (l_rule_count > 0) THEN
9596 l_formula_name := l_rulv_tbl(1).rule_information1;
9597 END IF;
9598 END IF;
9599
9600 IF (l_formula_name IS NOT NULL) THEN
9601 l_rulv_rec.rgp_id := x_rgpv_rec.id;
9602 l_rulv_rec.dnz_chr_id := p_chr_id;
9603 l_rulv_rec.rule_information1 := l_formula_name;
9604 l_rulv_rec.rule_information_category := 'LAFORM';
9605 l_rulv_rec.std_template_yn := 'N';
9606 l_rulv_rec.warn_yn := 'N';
9607 END IF;
9608
9609 create_rule_group_and_rule(
9610 x_return_status => x_return_status,
9611 x_msg_count => x_msg_count,
9612 x_msg_data => x_msg_data,
9613 p_rgp_id => l_rgp_id,
9614 p_rgpv_rec => l_rgpv_rec,
9615 p_rulv_rec => l_rulv_rec,
9616 x_rgpv_rec => x_rgpv_rec,
9617 x_rulv_rec => x_rulv_rec
9618 );
9619
9620 l_progress := '1.18';
9621 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9622 x_return_status := OKL_API.G_RET_STS_ERROR;
9623 raise header_rule_failed;
9624 END IF;
9625
9626 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
9627 l_rgp_id := x_rgpv_rec.id;
9628 END IF;
9629
9630 debug_message('------>Rule: LAIIND/LAFORM processed');
9631 */ -- AKP: Commented because new vairable rate processing in OKL.H onwards
9632
9633 l_rate_counter := 1;
9634 IF (p_header_rec.INT_RATE_EFFECTIVE_FROM_DATE IS NOT NULL) THEN
9635 l_k_rate_tbl(l_rate_counter).KHR_ID := p_chr_id;
9636 l_k_rate_tbl(l_rate_counter).PARAMETER_TYPE_CODE := 'ACTUAL';
9637 l_k_rate_tbl(l_rate_counter).EFFECTIVE_FROM_DATE := p_header_rec.INT_RATE_EFFECTIVE_FROM_DATE;
9638
9639 l_no_data := TRUE;
9640 IF (p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9641 --get_template_rate(p_chr_id, 'ACTUAL', l_tmpl_rate_rec, l_no_data);
9642 okl_k_rate_params_pvt.get_rate_rec(
9643 p_chr_id => p_chr_id,
9644 p_parameter_type_code => 'ACTUAL',
9645 p_effective_from_date => NULL,
9646 x_krpv_rec => l_tmpl_rate_rec,
9647 x_no_data_found => l_no_data);
9648 END IF;
9649
9650 l_k_rate_tbl(l_rate_counter).EFFECTIVE_TO_DATE := p_header_rec.INT_RATE_EFFECTIVE_TO_DATE;
9651 IF (p_header_rec.INT_RATE_EFFECTIVE_TO_DATE IS NULL AND NOT(l_no_data) AND
9652 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9653 l_k_rate_tbl(l_rate_counter).EFFECTIVE_TO_DATE :=
9654 l_tmpl_rate_rec.EFFECTIVE_TO_DATE;
9655 END IF;
9656
9657 debug_message('Var Rate 1.1');
9658 IF (p_header_rec.INDEX_NAME IS NOT NULL) THEN
9659 get_index_id(
9660 x_return_status => x_return_status,
9661 p_index_name => p_header_rec.INDEX_NAME,
9662 x_index_id => l_index_id
9663 );
9664 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
9665 okl_api.set_message(
9666 G_APP_NAME,
9667 G_INVALID_VALUE,
9668 'CONTRACT_NUM',
9669 p_header_rec.contract_number_old,
9670 'COL_NAME',
9671 'INDEX_NAME',
9672 'COL_VALUE',
9673 p_header_rec.index_name
9674 );
9675 raise header_rule_failed;
9676 END IF;
9677 l_k_rate_tbl(l_rate_counter).INTEREST_INDEX_ID := l_index_id;
9678 ELSE
9679 l_k_rate_tbl(l_rate_counter).INTEREST_INDEX_ID := NULL;
9680 IF (p_header_rec.INDEX_NAME IS NULL AND NOT(l_no_data) AND
9681 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9682 l_k_rate_tbl(l_rate_counter).INTEREST_INDEX_ID :=
9683 l_tmpl_rate_rec.INTEREST_INDEX_ID;
9684 END IF;
9685 END IF;
9686
9687 l_k_rate_tbl(l_rate_counter).BASE_RATE := p_header_rec.BASE_RATE;
9688 IF (p_header_rec.BASE_RATE IS NULL AND NOT(l_no_data) AND
9689 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9690 l_k_rate_tbl(l_rate_counter).BASE_RATE :=
9691 l_tmpl_rate_rec.BASE_RATE;
9692 END IF;
9693
9694 l_k_rate_tbl(l_rate_counter).INTEREST_START_DATE := p_header_rec.INTEREST_START_DATE;
9695 IF (p_header_rec.INTEREST_START_DATE IS NULL AND NOT(l_no_data) AND
9696 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9697 l_k_rate_tbl(l_rate_counter).INTEREST_START_DATE :=
9698 l_tmpl_rate_rec.INTEREST_START_DATE;
9699 END IF;
9700
9701 l_k_rate_tbl(l_rate_counter).ADDER_RATE := p_header_rec.ADDER;
9702 IF (p_header_rec.ADDER IS NULL AND NOT(l_no_data) AND
9703 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9704 l_k_rate_tbl(l_rate_counter).ADDER_RATE :=
9705 l_tmpl_rate_rec.ADDER_RATE;
9706 END IF;
9707
9708 l_k_rate_tbl(l_rate_counter).MINIMUM_RATE := p_header_rec.MINIMUM_RATE;
9709 IF (p_header_rec.MINIMUM_RATE IS NULL AND NOT(l_no_data) AND
9710 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9711 l_k_rate_tbl(l_rate_counter).MINIMUM_RATE :=
9712 l_tmpl_rate_rec.MINIMUM_RATE;
9713 END IF;
9714
9715 l_k_rate_tbl(l_rate_counter).MAXIMUM_RATE := p_header_rec.MAXIMUM_RATE;
9716 IF (p_header_rec.MAXIMUM_RATE IS NULL AND NOT(l_no_data) AND
9717 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9718 l_k_rate_tbl(l_rate_counter).MAXIMUM_RATE :=
9719 l_tmpl_rate_rec.MAXIMUM_RATE;
9720 END IF;
9721
9722 l_k_rate_tbl(l_rate_counter).PRINCIPAL_BASIS_CODE := p_header_rec.INT_RATE_PRINC_BASIS_CODE;
9723 IF (p_header_rec.INT_RATE_PRINC_BASIS_CODE IS NULL) THEN
9724 IF (p_header_rec.INT_RATE_PRINC_BASIS_CODE IS NULL AND NOT(l_no_data) AND
9725 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9726 l_k_rate_tbl(l_rate_counter).PRINCIPAL_BASIS_CODE :=
9727 l_tmpl_rate_rec.PRINCIPAL_BASIS_CODE;
9728 ELSE
9729 okl_k_rate_params_pvt.default_k_rate_params(
9730 p_api_version => 1,
9731 p_init_msg_list => OKC_API.G_FALSE,
9732 x_return_status => x_return_status,
9733 x_msg_count => x_msg_count,
9734 x_msg_data => x_msg_data,
9735 p_deal_type => G_DEAL_TYPE,
9736 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
9737 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
9738 p_column_name => 'PRINCIPAL_BASIS_CODE',
9739 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
9740 END IF;
9741 END IF;
9742
9743 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_MONTH_CODE := p_header_rec.DAYS_IN_MONTH;
9744 IF (p_header_rec.DAYS_IN_MONTH IS NULL) THEN
9745 IF (p_header_rec.DAYS_IN_MONTH IS NULL AND NOT(l_no_data) AND
9746 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9747 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_MONTH_CODE :=
9748 l_tmpl_rate_rec.DAYS_IN_A_MONTH_CODE;
9749 ELSE
9750 okl_k_rate_params_pvt.default_k_rate_params(
9751 p_api_version => 1,
9752 p_init_msg_list => OKC_API.G_FALSE,
9753 x_return_status => x_return_status,
9754 x_msg_count => x_msg_count,
9755 x_msg_data => x_msg_data,
9756 p_deal_type => G_DEAL_TYPE,
9757 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
9758 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
9759 p_column_name => 'DAYS_IN_A_MONTH_CODE',
9760 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
9761 END IF;
9762 END IF;
9763
9764 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_YEAR_CODE := p_header_rec.DAYS_IN_YEAR;
9765 IF (p_header_rec.DAYS_IN_YEAR IS NULL) THEN
9766 IF (p_header_rec.DAYS_IN_YEAR IS NULL AND NOT(l_no_data) AND
9767 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9768 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_YEAR_CODE :=
9769 l_tmpl_rate_rec.DAYS_IN_A_YEAR_CODE;
9770 ELSE
9771 okl_k_rate_params_pvt.default_k_rate_params(
9772 p_api_version => 1,
9773 p_init_msg_list => OKC_API.G_FALSE,
9774 x_return_status => x_return_status,
9775 x_msg_count => x_msg_count,
9776 x_msg_data => x_msg_data,
9777 p_deal_type => G_DEAL_TYPE,
9778 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
9779 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
9780 p_column_name => 'DAYS_IN_A_YEAR_CODE',
9781 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
9782 END IF;
9783 END IF;
9784
9785 l_k_rate_tbl(l_rate_counter).INTEREST_BASIS_CODE := p_header_rec.INT_RATE_BASIS_CODE;
9786 IF (p_header_rec.INT_RATE_BASIS_CODE IS NULL) THEN
9787 IF (p_header_rec.INT_RATE_BASIS_CODE IS NULL AND NOT(l_no_data) AND
9788 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9789 l_k_rate_tbl(l_rate_counter).INTEREST_BASIS_CODE :=
9790 l_tmpl_rate_rec.INTEREST_BASIS_CODE;
9791 ELSE
9792 okl_k_rate_params_pvt.default_k_rate_params(
9793 p_api_version => 1,
9794 p_init_msg_list => OKC_API.G_FALSE,
9795 x_return_status => x_return_status,
9796 x_msg_count => x_msg_count,
9797 x_msg_data => x_msg_data,
9798 p_deal_type => G_DEAL_TYPE,
9799 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
9800 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
9801 p_column_name => 'INTEREST_BASIS_CODE',
9802 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
9803 END IF;
9804 END IF;
9805
9806 l_k_rate_tbl(l_rate_counter).RATE_DELAY_CODE := p_header_rec.INT_RATE_DELAY_CODE;
9807 IF (p_header_rec.INT_RATE_DELAY_CODE IS NULL AND NOT(l_no_data) AND
9808 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9809 l_k_rate_tbl(l_rate_counter).RATE_DELAY_CODE :=
9810 l_tmpl_rate_rec.RATE_DELAY_CODE;
9811 END IF;
9812
9813 l_k_rate_tbl(l_rate_counter).RATE_DELAY_FREQUENCY := p_header_rec.INT_RATE_DELAY_FREQ;
9814 IF (p_header_rec.INT_RATE_DELAY_FREQ IS NULL AND NOT(l_no_data) AND
9815 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9816 l_k_rate_tbl(l_rate_counter).RATE_DELAY_FREQUENCY :=
9817 l_tmpl_rate_rec.RATE_DELAY_FREQUENCY;
9818 END IF;
9819
9820 l_k_rate_tbl(l_rate_counter).COMPOUNDING_FREQUENCY_CODE := p_header_rec.INT_RATE_CMPND_FREQ_CODE;
9821 IF (p_header_rec.INT_RATE_CMPND_FREQ_CODE IS NULL AND NOT(l_no_data) AND
9822 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9823 l_k_rate_tbl(l_rate_counter).COMPOUNDING_FREQUENCY_CODE :=
9824 l_tmpl_rate_rec.COMPOUNDING_FREQUENCY_CODE;
9825 END IF;
9826
9827 debug_message('Var Rate 1.2');
9828 IF (p_header_rec.FORMULA_NAME IS NOT NULL) THEN
9829 l_formula_id := get_formula_id(p_header_rec.FORMULA_NAME,
9830 x_return_status);
9831 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
9832 --AKP: Todo: set message: Invalid formula name 5024651
9833 okl_api.set_message(
9834 G_APP_NAME,
9835 G_INVALID_VALUE,
9836 'CONTRACT_NUM',
9837 p_header_rec.contract_number_old,
9838 'COL_NAME',
9839 'FORMULA_NAME',
9840 'COL_VALUE',
9841 p_header_rec.FORMULA_NAME
9842 );
9843
9844 RAISE header_rule_failed;
9845 END IF;
9846 l_k_rate_tbl(l_rate_counter).CALCULATION_FORMULA_ID := l_formula_id;
9847 ELSE
9848 l_k_rate_tbl(l_rate_counter).CALCULATION_FORMULA_ID := NULL;
9849 IF (p_header_rec.FORMULA_NAME IS NULL AND NOT(l_no_data) AND
9850 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9851 l_k_rate_tbl(l_rate_counter).CALCULATION_FORMULA_ID :=
9852 l_tmpl_rate_rec.CALCULATION_FORMULA_ID;
9853 END IF;
9854 END IF;
9855
9856 debug_message('Var Rate 1.3');
9857 l_k_rate_tbl(l_rate_counter).CATCHUP_BASIS_CODE := p_header_rec.INT_RATE_CATCHUP_BASIS_CODE;
9858 IF (p_header_rec.INT_RATE_CATCHUP_BASIS_CODE IS NULL) THEN
9859 IF (p_header_rec.INT_RATE_CATCHUP_BASIS_CODE IS NULL AND NOT(l_no_data) AND
9860 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9861 l_k_rate_tbl(l_rate_counter).CATCHUP_BASIS_CODE :=
9862 l_tmpl_rate_rec.CATCHUP_BASIS_CODE;
9863 ELSE
9864 okl_k_rate_params_pvt.default_k_rate_params(
9865 p_api_version => 1,
9866 p_init_msg_list => OKC_API.G_FALSE,
9867 x_return_status => x_return_status,
9868 x_msg_count => x_msg_count,
9869 x_msg_data => x_msg_data,
9870 p_deal_type => G_DEAL_TYPE,
9871 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
9872 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
9873 p_column_name => 'CATCHUP_BASIS_CODE',
9874 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
9875 END IF;
9876 END IF;
9877
9878 l_k_rate_tbl(l_rate_counter).CATCHUP_START_DATE := p_header_rec.INT_RATE_CATCHUP_START_DATE;
9879 IF (p_header_rec.INT_RATE_CATCHUP_START_DATE IS NULL AND NOT(l_no_data) AND
9880 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9881 l_k_rate_tbl(l_rate_counter).CATCHUP_START_DATE :=
9882 l_tmpl_rate_rec.CATCHUP_START_DATE;
9883 END IF;
9884
9885 l_k_rate_tbl(l_rate_counter).CATCHUP_SETTLEMENT_CODE := p_header_rec.INT_RATE_CAT_STLMNT_CODE;
9886 IF (p_header_rec.INT_RATE_CAT_STLMNT_CODE IS NULL AND NOT(l_no_data) AND
9887 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9888 l_k_rate_tbl(l_rate_counter).CATCHUP_SETTLEMENT_CODE :=
9889 l_tmpl_rate_rec.CATCHUP_SETTLEMENT_CODE;
9890 END IF;
9891
9892 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_START_DATE := p_header_rec.INT_RATE_CHANGE_START_DATE;
9893 IF (p_header_rec.INT_RATE_CHANGE_START_DATE IS NULL AND NOT(l_no_data) AND
9894 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9895 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_START_DATE :=
9896 l_tmpl_rate_rec.RATE_CHANGE_START_DATE;
9897 END IF;
9898
9899 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_FREQUENCY_CODE := p_header_rec.INT_RATE_CHANGE_FREQ_CODE;
9900 IF (p_header_rec.INT_RATE_CHANGE_FREQ_CODE IS NULL) THEN
9901 IF (p_header_rec.INT_RATE_CHANGE_FREQ_CODE IS NULL AND NOT(l_no_data) AND
9902 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9903 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_FREQUENCY_CODE :=
9904 l_tmpl_rate_rec.RATE_CHANGE_FREQUENCY_CODE;
9905 ELSE
9906 okl_k_rate_params_pvt.default_k_rate_params(
9907 p_api_version => 1,
9908 p_init_msg_list => OKC_API.G_FALSE,
9909 x_return_status => x_return_status,
9910 x_msg_count => x_msg_count,
9911 x_msg_data => x_msg_data,
9912 p_deal_type => G_DEAL_TYPE,
9913 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
9914 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
9915 p_column_name => 'RATE_CHANGE_FREQUENCY_CODE',
9916 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
9917 END IF;
9918 END IF;
9919
9920 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_VALUE := p_header_rec.INT_RATE_CHANGE_VALUE;
9921 IF (p_header_rec.INT_RATE_CHANGE_VALUE IS NULL AND NOT(l_no_data) AND
9922 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9923 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_VALUE :=
9924 l_tmpl_rate_rec.RATE_CHANGE_VALUE;
9925 END IF;
9926
9927 l_k_rate_tbl(l_rate_counter).CATCHUP_FREQUENCY_CODE := p_header_rec.INT_RATE_CAT_FREQ_CODE;
9928 IF (p_header_rec.INT_RATE_CAT_FREQ_CODE IS NULL AND NOT(l_no_data) AND
9929 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9930 l_k_rate_tbl(l_rate_counter).CATCHUP_FREQUENCY_CODE :=
9931 l_tmpl_rate_rec.CATCHUP_FREQUENCY_CODE;
9932 END IF;
9933
9934 l_k_rate_tbl(l_rate_counter).CONVERSION_OPTION_CODE := p_header_rec.INT_RATE_CON_OPTION_CODE;
9935 IF (p_header_rec.INT_RATE_CON_OPTION_CODE IS NULL AND NOT(l_no_data) AND
9936 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9937 l_k_rate_tbl(l_rate_counter).CONVERSION_OPTION_CODE :=
9938 l_tmpl_rate_rec.CONVERSION_OPTION_CODE;
9939 END IF;
9940
9941 l_k_rate_tbl(l_rate_counter).NEXT_CONVERSION_DATE := p_header_rec.INT_RATE_NEXT_CON_DATE;
9942 IF (p_header_rec.INT_RATE_NEXT_CON_DATE IS NULL AND NOT(l_no_data) AND
9943 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9944 l_k_rate_tbl(l_rate_counter).NEXT_CONVERSION_DATE :=
9945 l_tmpl_rate_rec.NEXT_CONVERSION_DATE;
9946 END IF;
9947
9948 l_k_rate_tbl(l_rate_counter).CONVERSION_TYPE_CODE := p_header_rec.CONVERT_TYPE;
9949 IF (p_header_rec.CONVERT_TYPE IS NULL AND NOT(l_no_data) AND
9950 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
9951 l_k_rate_tbl(l_rate_counter).CONVERSION_TYPE_CODE :=
9952 l_tmpl_rate_rec.CONVERSION_TYPE_CODE;
9953 END IF;
9954 l_rate_counter := l_rate_counter + 1;
9955
9956 ELSE
9957 IF (p_header_rec.INT_RATE_EFFECTIVE_FROM_DATE IS NOT NULL OR
9958 p_header_rec.INT_RATE_EFFECTIVE_TO_DATE IS NOT NULL OR
9959 p_header_rec.INDEX_NAME IS NOT NULL OR
9960 p_header_rec.BASE_RATE IS NOT NULL OR
9961 p_header_rec.INTEREST_START_DATE IS NOT NULL OR
9962 p_header_rec.ADDER IS NOT NULL OR
9963 p_header_rec.MINIMUM_RATE IS NOT NULL OR
9964 p_header_rec.MAXIMUM_RATE IS NOT NULL OR
9965 p_header_rec.INT_RATE_PRINC_BASIS_CODE IS NOT NULL OR
9966 p_header_rec.DAYS_IN_YEAR IS NOT NULL OR
9967 p_header_rec.DAYS_IN_MONTH IS NOT NULL OR
9968 p_header_rec.INT_RATE_BASIS_CODE IS NOT NULL OR
9969 p_header_rec.INT_RATE_DELAY_CODE IS NOT NULL OR
9970 p_header_rec.INT_RATE_DELAY_FREQ IS NOT NULL OR
9971 p_header_rec.INT_RATE_CMPND_FREQ_CODE IS NOT NULL OR
9972 p_header_rec.FORMULA_NAME IS NOT NULL OR
9973 p_header_rec.INT_RATE_CATCHUP_BASIS_CODE IS NOT NULL OR
9974 p_header_rec.INT_RATE_CATCHUP_START_DATE IS NOT NULL OR
9975 p_header_rec.INT_RATE_CAT_STLMNT_CODE IS NOT NULL OR
9976 p_header_rec.INT_RATE_CHANGE_START_DATE IS NOT NULL OR
9977 p_header_rec.INT_RATE_CHANGE_FREQ_CODE IS NOT NULL OR
9978 p_header_rec.INT_RATE_CHANGE_VALUE IS NOT NULL OR
9979 p_header_rec.INT_RATE_CAT_FREQ_CODE IS NOT NULL OR
9980 p_header_rec.INT_RATE_CON_OPTION_CODE IS NOT NULL OR
9981 p_header_rec.INT_RATE_NEXT_CON_DATE IS NOT NULL OR
9982 p_header_rec.CONVERT_TYPE IS NOT NULL
9983 )
9984 THEN
9985 -- Set error. Effective from date is missing
9986 OKC_API.set_message(p_app_name => G_APP_NAME,
9987 p_msg_name => G_REQUIRED_VALUE,
9988 p_token1 => G_COL_NAME_TOKEN,
9989 p_token1_value => 'Effective_From_Date');
9990 x_return_status := OKC_API.G_RET_STS_ERROR;
9991 RAISE header_rule_failed;
9992 END IF;
9993
9994 END IF;
9995
9996 IF (p_header_rec.INT_RATE_EFFECTIVE_FROM_DATE IS NOT NULL) AND
9997 (p_header_rec.INT_RATE_EFFECTIVE_TO_DATE IS NOT NULL OR
9998 p_header_rec.INT_RATE_CON_INDEX_NAME IS NOT NULL OR
9999 p_header_rec.INT_RATE_CON_BASE_RATE IS NOT NULL OR
10000 p_header_rec.INT_RATE_CON_START_DATE IS NOT NULL OR
10001 p_header_rec.INT_RATE_CON_ADDER_RATE IS NOT NULL OR
10002 p_header_rec.INT_RATE_CON_MINIMUM_RATE IS NOT NULL OR
10003 p_header_rec.INT_RATE_CON_MAXIMUM_RATE IS NOT NULL OR
10004 p_header_rec.INT_RATE_CON_PRC_BAS_CODE IS NOT NULL OR
10005 p_header_rec.INT_RATE_CON_DAY_YER_CODE IS NOT NULL OR
10006 p_header_rec.INT_RATE_CON_DAY_MTH_CODE IS NOT NULL OR
10007 p_header_rec.INT_RATE_CON_INT_BAS_CODE IS NOT NULL OR
10008 p_header_rec.INT_RATE_CON_RATE_DELAY_CODE IS NOT NULL OR
10009 p_header_rec.INT_RATE_CON_RATE_DELAY_FREQ IS NOT NULL OR
10010 p_header_rec.INT_RATE_CON_CMPND_FREQ_CODE IS NOT NULL OR
10011 p_header_rec.INT_RATE_CON_FORMULA_NAME IS NOT NULL OR
10012 p_header_rec.INT_RATE_CON_CAT_BAS_CODE IS NOT NULL OR
10013 p_header_rec.INT_RATE_CON_CAT_START_DATE IS NOT NULL OR
10014 p_header_rec.INT_RATE_CON_CAT_STLMNT_CODE IS NOT NULL OR
10015 p_header_rec.INT_RATE_CON_CHG_START_DATE IS NOT NULL OR
10016 p_header_rec.INT_RATE_CON_CHG_FREQ_CODE IS NOT NULL OR
10017 p_header_rec.INT_RATE_CON_CHG_VALUE IS NOT NULL OR
10018 p_header_rec.INT_RATE_CON_CAT_FREQ_CODE IS NOT NULL ) THEN
10019 l_k_rate_tbl(l_rate_counter).KHR_ID := p_chr_id;
10020 l_k_rate_tbl(l_rate_counter).PARAMETER_TYPE_CODE := 'CONVERSION';
10021 l_k_rate_tbl(l_rate_counter).EFFECTIVE_FROM_DATE := p_header_rec.INT_RATE_EFFECTIVE_FROM_DATE;
10022
10023 l_no_data := TRUE;
10024 IF (p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10025 --get_template_rate(p_chr_id, 'CONVERSION', l_tmpl_rate_rec, l_no_data);
10026 okl_k_rate_params_pvt.get_rate_rec(
10027 p_chr_id => p_chr_id,
10028 p_parameter_type_code => 'CONVERSION',
10029 p_effective_from_date => NULL,
10030 x_krpv_rec => l_tmpl_rate_rec,
10031 x_no_data_found => l_no_data);
10032 END IF;
10033
10034 l_k_rate_tbl(l_rate_counter).EFFECTIVE_TO_DATE := p_header_rec.INT_RATE_EFFECTIVE_TO_DATE;
10035 IF (p_header_rec.INT_RATE_EFFECTIVE_TO_DATE IS NULL AND NOT(l_no_data) AND
10036 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10037 l_k_rate_tbl(l_rate_counter).EFFECTIVE_TO_DATE :=
10038 l_tmpl_rate_rec.EFFECTIVE_TO_DATE;
10039 END IF;
10040
10041 IF (p_header_rec.INT_RATE_CON_INDEX_NAME IS NOT NULL) THEN
10042 get_index_id(
10043 x_return_status => x_return_status,
10044 p_index_name => p_header_rec.INT_RATE_CON_INDEX_NAME,
10045 x_index_id => x_index_id
10046 );
10047 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10048 okl_api.set_message(
10049 G_APP_NAME,
10050 G_INVALID_VALUE,
10051 'CONTRACT_NUM',
10052 p_header_rec.contract_number_old,
10053 'COL_NAME',
10054 'INDEX_NAME_CON',
10055 'COL_VALUE',
10056 p_header_rec.int_rate_con_index_name
10057 );
10058 raise header_rule_failed;
10059 END IF;
10060 l_k_rate_tbl(l_rate_counter).INTEREST_INDEX_ID := l_index_id;
10061 ELSE
10062 l_k_rate_tbl(l_rate_counter).INTEREST_INDEX_ID := NULL;
10063 IF (p_header_rec.INT_RATE_CON_INDEX_NAME IS NULL AND NOT(l_no_data) AND
10064 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10065 l_k_rate_tbl(l_rate_counter).INTEREST_INDEX_ID :=
10066 l_tmpl_rate_rec.INTEREST_INDEX_ID;
10067 END IF;
10068 END IF;
10069
10070 l_k_rate_tbl(l_rate_counter).BASE_RATE := p_header_rec.INT_RATE_CON_BASE_RATE;
10071 IF (p_header_rec.INT_RATE_CON_BASE_RATE IS NULL AND NOT(l_no_data) AND
10072 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10073 l_k_rate_tbl(l_rate_counter).BASE_RATE :=
10074 l_tmpl_rate_rec.BASE_RATE;
10075 END IF;
10076
10077 l_k_rate_tbl(l_rate_counter).INTEREST_START_DATE := p_header_rec.INT_RATE_CON_START_DATE;
10078 IF (p_header_rec.INT_RATE_CON_START_DATE IS NULL AND NOT(l_no_data) AND
10079 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10080 l_k_rate_tbl(l_rate_counter).INTEREST_START_DATE :=
10081 l_tmpl_rate_rec.INTEREST_START_DATE;
10082 END IF;
10083
10084 l_k_rate_tbl(l_rate_counter).ADDER_RATE := p_header_rec.INT_RATE_CON_ADDER_RATE;
10085 IF (p_header_rec.INT_RATE_CON_ADDER_RATE IS NULL AND NOT(l_no_data) AND
10086 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10087 l_k_rate_tbl(l_rate_counter).ADDER_RATE :=
10088 l_tmpl_rate_rec.ADDER_RATE;
10089 END IF;
10090
10091 l_k_rate_tbl(l_rate_counter).MAXIMUM_RATE := p_header_rec.INT_RATE_CON_MAXIMUM_RATE;
10092 IF (p_header_rec.INT_RATE_CON_MAXIMUM_RATE IS NULL AND NOT(l_no_data) AND
10093 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10094 l_k_rate_tbl(l_rate_counter).MAXIMUM_RATE :=
10095 l_tmpl_rate_rec.MAXIMUM_RATE;
10096 END IF;
10097
10098 l_k_rate_tbl(l_rate_counter).MINIMUM_RATE := p_header_rec.INT_RATE_CON_MINIMUM_RATE;
10099 IF (p_header_rec.INT_RATE_CON_MINIMUM_RATE IS NULL AND NOT(l_no_data) AND
10100 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10101 l_k_rate_tbl(l_rate_counter).MINIMUM_RATE :=
10102 l_tmpl_rate_rec.MINIMUM_RATE;
10103 END IF;
10104
10105 l_k_rate_tbl(l_rate_counter).PRINCIPAL_BASIS_CODE := p_header_rec.INT_RATE_CON_PRC_BAS_CODE;
10106 IF (p_header_rec.INT_RATE_CON_PRC_BAS_CODE IS NULL) THEN
10107 IF (p_header_rec.INT_RATE_CON_PRC_BAS_CODE IS NULL AND NOT(l_no_data) AND
10108 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10109 l_k_rate_tbl(l_rate_counter).PRINCIPAL_BASIS_CODE :=
10110 l_tmpl_rate_rec.PRINCIPAL_BASIS_CODE;
10111 ELSE
10112 okl_k_rate_params_pvt.default_k_rate_params(
10113 p_api_version => 1,
10114 p_init_msg_list => OKC_API.G_FALSE,
10115 x_return_status => x_return_status,
10116 x_msg_count => x_msg_count,
10117 x_msg_data => x_msg_data,
10118 p_deal_type => G_DEAL_TYPE,
10119 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
10120 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
10121 p_column_name => 'PRINCIPAL_BASIS_CODE',
10122 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
10123 END IF;
10124 END IF;
10125
10126 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_MONTH_CODE := p_header_rec.INT_RATE_CON_DAY_MTH_CODE;
10127 IF (p_header_rec.INT_RATE_CON_DAY_MTH_CODE IS NULL) THEN
10128 IF (p_header_rec.INT_RATE_CON_DAY_MTH_CODE IS NULL AND NOT(l_no_data) AND
10129 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10130 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_MONTH_CODE :=
10131 l_tmpl_rate_rec.DAYS_IN_A_MONTH_CODE;
10132 ELSE
10133 okl_k_rate_params_pvt.default_k_rate_params(
10134 p_api_version => 1,
10135 p_init_msg_list => OKC_API.G_FALSE,
10136 x_return_status => x_return_status,
10137 x_msg_count => x_msg_count,
10138 x_msg_data => x_msg_data,
10139 p_deal_type => G_DEAL_TYPE,
10140 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
10141 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
10142 p_column_name => 'DAYS_IN_A_MONTH_CODE',
10143 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
10144 END IF;
10145 END IF;
10146
10147 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_YEAR_CODE := p_header_rec.INT_RATE_CON_DAY_YER_CODE;
10148 IF (p_header_rec.INT_RATE_CON_DAY_YER_CODE IS NULL) THEN
10149 IF (p_header_rec.INT_RATE_CON_DAY_YER_CODE IS NULL AND NOT(l_no_data) AND
10150 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10151 l_k_rate_tbl(l_rate_counter).DAYS_IN_A_YEAR_CODE :=
10152 l_tmpl_rate_rec.DAYS_IN_A_YEAR_CODE;
10153 ELSE
10154 okl_k_rate_params_pvt.default_k_rate_params(
10155 p_api_version => 1,
10156 p_init_msg_list => OKC_API.G_FALSE,
10157 x_return_status => x_return_status,
10158 x_msg_count => x_msg_count,
10159 x_msg_data => x_msg_data,
10160 p_deal_type => G_DEAL_TYPE,
10161 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
10162 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
10163 p_column_name => 'DAYS_IN_A_YEAR_CODE',
10164 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
10165 END IF;
10166 END IF;
10167
10168 l_k_rate_tbl(l_rate_counter).INTEREST_BASIS_CODE := p_header_rec.INT_RATE_CON_INT_BAS_CODE;
10169 IF (p_header_rec.INT_RATE_CON_INT_BAS_CODE IS NULL) THEN
10170 IF (p_header_rec.INT_RATE_CON_INT_BAS_CODE IS NULL AND NOT(l_no_data) AND
10171 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10172 l_k_rate_tbl(l_rate_counter).INTEREST_BASIS_CODE :=
10173 l_tmpl_rate_rec.INTEREST_BASIS_CODE;
10174 ELSE
10175 okl_k_rate_params_pvt.default_k_rate_params(
10176 p_api_version => 1,
10177 p_init_msg_list => OKC_API.G_FALSE,
10178 x_return_status => x_return_status,
10179 x_msg_count => x_msg_count,
10180 x_msg_data => x_msg_data,
10181 p_deal_type => G_DEAL_TYPE,
10182 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
10183 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
10184 p_column_name => 'INTEREST_BASIS_CODE',
10185 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
10186 END IF;
10187 END IF;
10188
10189 l_k_rate_tbl(l_rate_counter).RATE_DELAY_CODE := p_header_rec.INT_RATE_CON_RATE_DELAY_CODE;
10190 IF (p_header_rec.INT_RATE_CON_RATE_DELAY_CODE IS NULL AND NOT(l_no_data) AND
10191 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10192 l_k_rate_tbl(l_rate_counter).RATE_DELAY_CODE :=
10193 l_tmpl_rate_rec.RATE_DELAY_CODE;
10194 END IF;
10195
10196 l_k_rate_tbl(l_rate_counter).RATE_DELAY_FREQUENCY := p_header_rec.INT_RATE_CON_RATE_DELAY_FREQ;
10197 IF (p_header_rec.INT_RATE_CON_RATE_DELAY_FREQ IS NULL AND NOT(l_no_data) AND
10198 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10199 l_k_rate_tbl(l_rate_counter).RATE_DELAY_FREQUENCY :=
10200 l_tmpl_rate_rec.RATE_DELAY_FREQUENCY;
10201 END IF;
10202
10203 l_k_rate_tbl(l_rate_counter).COMPOUNDING_FREQUENCY_CODE := p_header_rec.INT_RATE_CON_CMPND_FREQ_CODE;
10204 IF (p_header_rec.INT_RATE_CON_CMPND_FREQ_CODE IS NULL AND NOT(l_no_data) AND
10205 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10206 l_k_rate_tbl(l_rate_counter).COMPOUNDING_FREQUENCY_CODE :=
10207 l_tmpl_rate_rec.COMPOUNDING_FREQUENCY_CODE;
10208 END IF;
10209
10210 IF (p_header_rec.INT_RATE_CON_FORMULA_NAME IS NOT NULL) THEN
10211 l_formula_id := get_formula_id(p_header_rec.INT_RATE_CON_FORMULA_NAME,
10212 x_return_status);
10213 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
10214 --AKP: Todo: set message: Invalid formula name 5024651
10215 okl_api.set_message(
10216 G_APP_NAME,
10217 G_INVALID_VALUE,
10218 'CONTRACT_NUM',
10219 p_header_rec.contract_number_old,
10220 'COL_NAME',
10221 'FORMULA_NAME',
10222 'COL_VALUE',
10223 p_header_rec.INT_RATE_CON_FORMULA_NAME
10224 );
10225
10226 RAISE header_rule_failed;
10227 END IF;
10228 l_k_rate_tbl(l_rate_counter).CALCULATION_FORMULA_ID := l_formula_id;
10229 ELSE
10230 l_k_rate_tbl(l_rate_counter).CALCULATION_FORMULA_ID := NULL;
10231 IF (p_header_rec.INT_RATE_CON_FORMULA_NAME IS NULL AND NOT(l_no_data) AND
10232 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10233 l_k_rate_tbl(l_rate_counter).CALCULATION_FORMULA_ID :=
10234 l_tmpl_rate_rec.CALCULATION_FORMULA_ID;
10235 END IF;
10236 END IF;
10237
10238
10239 l_k_rate_tbl(l_rate_counter).CATCHUP_BASIS_CODE := p_header_rec.INT_RATE_CON_CAT_BAS_CODE;
10240 IF (p_header_rec.INT_RATE_CON_CAT_BAS_CODE IS NULL) THEN
10241 IF (p_header_rec.INT_RATE_CON_CAT_BAS_CODE IS NULL AND NOT(l_no_data) AND
10242 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10243 l_k_rate_tbl(l_rate_counter).CATCHUP_BASIS_CODE :=
10244 l_tmpl_rate_rec.CATCHUP_BASIS_CODE;
10245 ELSE
10246 okl_k_rate_params_pvt.default_k_rate_params(
10247 p_api_version => 1,
10248 p_init_msg_list => OKC_API.G_FALSE,
10249 x_return_status => x_return_status,
10250 x_msg_count => x_msg_count,
10251 x_msg_data => x_msg_data,
10252 p_deal_type => G_DEAL_TYPE,
10253 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
10254 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
10255 p_column_name => 'CATCHUP_BASIS_CODE',
10256 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
10257 END IF;
10258 END IF;
10259
10260 l_k_rate_tbl(l_rate_counter).CATCHUP_START_DATE := p_header_rec.INT_RATE_CON_CAT_START_DATE;
10261 IF (p_header_rec.INT_RATE_CON_CAT_START_DATE IS NULL AND NOT(l_no_data) AND
10262 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10263 l_k_rate_tbl(l_rate_counter).CATCHUP_START_DATE :=
10264 l_tmpl_rate_rec.CATCHUP_START_DATE;
10265 END IF;
10266
10267 l_k_rate_tbl(l_rate_counter).CATCHUP_SETTLEMENT_CODE := p_header_rec.INT_RATE_CON_CAT_STLMNT_CODE;
10268 IF (p_header_rec.INT_RATE_CON_CAT_STLMNT_CODE IS NULL AND NOT(l_no_data) AND
10269 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10270 l_k_rate_tbl(l_rate_counter).CATCHUP_SETTLEMENT_CODE :=
10271 l_tmpl_rate_rec.CATCHUP_SETTLEMENT_CODE;
10272 END IF;
10273
10274 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_START_DATE := p_header_rec.INT_RATE_CON_CHG_START_DATE;
10275 IF (p_header_rec.INT_RATE_CON_CHG_START_DATE IS NULL AND NOT(l_no_data) AND
10276 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10277 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_START_DATE :=
10278 l_tmpl_rate_rec.RATE_CHANGE_START_DATE;
10279 END IF;
10280
10281 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_FREQUENCY_CODE := p_header_rec.INT_RATE_CON_CHG_FREQ_CODE;
10282 IF (p_header_rec.INT_RATE_CON_CHG_FREQ_CODE IS NULL) THEN
10283 IF (p_header_rec.INT_RATE_CON_CHG_FREQ_CODE IS NULL AND NOT(l_no_data) AND
10284 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10285 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_FREQUENCY_CODE :=
10286 l_tmpl_rate_rec.RATE_CHANGE_FREQUENCY_CODE;
10287 ELSE
10288 okl_k_rate_params_pvt.default_k_rate_params(
10289 p_api_version => 1,
10290 p_init_msg_list => OKC_API.G_FALSE,
10291 x_return_status => x_return_status,
10292 x_msg_count => x_msg_count,
10293 x_msg_data => x_msg_data,
10294 p_deal_type => G_DEAL_TYPE,
10295 p_rev_rec_method => G_REVENUE_RECOGNITION_METHOD,
10296 p_int_calc_basis => G_INTEREST_CALCULATION_BASIS,
10297 p_column_name => 'DAYS_IN_A_YEAR_CODE',
10298 p_krpv_rec => l_k_rate_tbl(l_rate_counter));
10299 END IF;
10300 END IF;
10301
10302 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_VALUE := p_header_rec.INT_RATE_CON_CHG_VALUE;
10303 IF (p_header_rec.INT_RATE_CON_CHG_VALUE IS NULL AND NOT(l_no_data) AND
10304 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10305 l_k_rate_tbl(l_rate_counter).RATE_CHANGE_VALUE :=
10306 l_tmpl_rate_rec.RATE_CHANGE_VALUE;
10307 END IF;
10308
10309 l_k_rate_tbl(l_rate_counter).CATCHUP_FREQUENCY_CODE := p_header_rec.INT_RATE_CON_CAT_FREQ_CODE;
10310 IF (p_header_rec.INT_RATE_CON_CAT_FREQ_CODE IS NULL AND NOT(l_no_data) AND
10311 p_header_rec.TEMPLATE_NUMBER IS NOT NULL) THEN
10312 l_k_rate_tbl(l_rate_counter).CATCHUP_FREQUENCY_CODE :=
10313 l_tmpl_rate_rec.CATCHUP_FREQUENCY_CODE;
10314 END IF;
10315 l_rate_counter := l_rate_counter + 1;
10316
10317 ELSE
10318 IF (p_header_rec.INT_RATE_EFFECTIVE_TO_DATE IS NOT NULL OR
10319 p_header_rec.INT_RATE_CON_INDEX_NAME IS NOT NULL OR
10320 p_header_rec.INT_RATE_CON_BASE_RATE IS NOT NULL OR
10321 p_header_rec.INT_RATE_CON_START_DATE IS NOT NULL OR
10322 p_header_rec.INT_RATE_CON_ADDER_RATE IS NOT NULL OR
10323 p_header_rec.INT_RATE_CON_MINIMUM_RATE IS NOT NULL OR
10324 p_header_rec.INT_RATE_CON_MAXIMUM_RATE IS NOT NULL OR
10325 p_header_rec.INT_RATE_CON_PRC_BAS_CODE IS NOT NULL OR
10326 p_header_rec.INT_RATE_CON_DAY_YER_CODE IS NOT NULL OR
10327 p_header_rec.INT_RATE_CON_DAY_MTH_CODE IS NOT NULL OR
10328 p_header_rec.INT_RATE_CON_INT_BAS_CODE IS NOT NULL OR
10329 p_header_rec.INT_RATE_CON_RATE_DELAY_CODE IS NOT NULL OR
10330 p_header_rec.INT_RATE_CON_RATE_DELAY_FREQ IS NOT NULL OR
10331 p_header_rec.INT_RATE_CON_CMPND_FREQ_CODE IS NOT NULL OR
10332 p_header_rec.INT_RATE_CON_FORMULA_NAME IS NOT NULL OR
10333 p_header_rec.INT_RATE_CON_CAT_BAS_CODE IS NOT NULL OR
10334 p_header_rec.INT_RATE_CON_CAT_START_DATE IS NOT NULL OR
10335 p_header_rec.INT_RATE_CON_CAT_STLMNT_CODE IS NOT NULL OR
10336 p_header_rec.INT_RATE_CON_CHG_START_DATE IS NOT NULL OR
10337 p_header_rec.INT_RATE_CON_CHG_FREQ_CODE IS NOT NULL OR
10338 p_header_rec.INT_RATE_CON_CHG_VALUE IS NOT NULL OR
10339 p_header_rec.INT_RATE_CON_CAT_FREQ_CODE IS NOT NULL )
10340 THEN
10341 -- Set error. Effective from date is missing
10342 OKC_API.set_message(p_app_name => G_APP_NAME,
10343 p_msg_name => G_REQUIRED_VALUE,
10344 p_token1 => G_COL_NAME_TOKEN,
10345 p_token1_value => 'Effective_From_Date_Con');
10346 x_return_status := OKC_API.G_RET_STS_ERROR;
10347 RAISE header_rule_failed;
10348
10349 END IF;
10350
10351 END IF;
10352
10353 debug_message('l_rate_counter=' || l_rate_counter);
10354 IF (l_rate_counter > 1) THEN
10355 OKL_K_RATE_PARAMS_PVT.validate_k_rate_params(
10356 p_api_version => 1 ,
10357 p_init_msg_list => OKC_API.G_FALSE,
10358 x_return_status => x_return_status,
10359 x_msg_count => x_msg_count,
10360 x_msg_data => x_msg_data,
10361 p_product_id => G_PRODUCT_ID,
10362 p_k_rate_tbl => l_k_rate_tbl);
10363 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10364 RAISE header_rule_failed;
10365 ELSE
10366 FOR krpv_rec_cnt IN l_k_rate_tbl.FIRST..l_k_rate_tbl.LAST
10367 LOOP
10368 OKL_K_RATE_PARAMS_PVT.create_k_rate_params(
10369 p_api_version => 1 ,
10370 p_init_msg_list => OKC_API.G_FALSE,
10371 x_return_status => x_return_status,
10372 x_msg_count => x_msg_count,
10373 x_msg_data => x_msg_data,
10374 p_krpv_rec => l_k_rate_tbl(krpv_rec_cnt),
10375 x_krpv_rec => x_krpv_rec,
10376 p_validate_flag => 'N');
10377 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10378 RAISE header_rule_failed;
10379 END IF;
10380 END LOOP;
10381 END IF;
10382 END IF;
10383
10384 debug_message('Rate creation done...');
10385 -- Rule Group LAFCTG
10386 l_rgpv_rec := NULL;
10387 l_rgp_id := NULL;
10388 l_rgpv_rec.rgd_code := 'LAFCTG';
10389 l_rgpv_rec.chr_id := p_chr_id;
10390 l_rgpv_rec.dnz_chr_id := p_chr_id;
10391 l_rgpv_rec.cle_id := NULL;
10392 l_rgpv_rec.rgp_type := 'KRG';
10393
10394 l_rulv_rec := NULL;
10395
10396 l_factoring_date := get_canonicaL_date(p_header_rec.factoring_date);
10397 l_factoring_percentage := p_header_rec.factoring_percentage;
10398 l_factoring_discount_rate := p_header_rec.factoring_discount_rate;
10399
10400 IF (l_factoring_date IS NULL
10401 OR
10402 l_factoring_percentage IS NULL
10403 OR
10404 l_factoring_discount_rate IS NULL
10405 AND
10406 p_header_rec.template_number IS NOT NULL) THEN
10407 get_contract_rules(
10408 x_return_status => x_return_status,
10409 x_msg_count => x_msg_count,
10410 x_msg_data => x_msg_data,
10411 p_chr_id => p_template_id,
10412 p_cle_id => NULL,
10413 p_rgd_code => 'LAFCTG',
10414 p_rule_code => 'LAFCTG',
10415 x_rulv_tbl => l_rulv_tbl,
10416 x_rule_count => l_rule_count
10417 );
10418
10419 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10420 RAISE header_rule_failed;
10421 END IF;
10422
10423 IF (l_rule_count > 0) THEN
10424 l_factoring_date := NVL(l_factoring_date,l_rulv_tbl(1).rule_information1);
10425 l_factoring_percentage := NVL(l_factoring_percentage,l_rulv_tbl(1).rule_information2);
10426 l_factoring_discount_rate := NVL(l_factoring_discount_rate,l_rulv_tbl(1).rule_information3);
10427 END IF;
10428 END IF;
10429
10430 IF (l_factoring_date IS NOT NULL) THEN
10431 l_rulv_rec := NULL;
10432 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10433 l_rulv_rec.dnz_chr_id := p_chr_id;
10434 l_rulv_rec.rule_information1 := l_factoring_date;
10435 l_rulv_rec.rule_information_category := 'LAFCTG';
10436 l_rulv_rec.std_template_yn := 'N';
10437 l_rulv_rec.warn_yn := 'N';
10438 END IF;
10439
10440 IF (l_factoring_percentage IS NOT NULL) THEN
10441 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10442 l_rulv_rec.dnz_chr_id := p_chr_id;
10443 l_rulv_rec.rule_information2 := l_factoring_percentage;
10444 l_rulv_rec.rule_information_category := 'LAFCTG';
10445 l_rulv_rec.std_template_yn := 'N';
10446 l_rulv_rec.warn_yn := 'N';
10447 END IF;
10448
10449 IF (l_factoring_discount_rate IS NOT NULL) THEN
10450 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10451 l_rulv_rec.dnz_chr_id := p_chr_id;
10452 l_rulv_rec.rule_information3 := l_factoring_discount_rate;
10453 l_rulv_rec.rule_information_category := 'LAFCTG';
10454 l_rulv_rec.std_template_yn := 'N';
10455 l_rulv_rec.warn_yn := 'N';
10456 END IF;
10457
10458 create_rule_group_and_rule(
10459 x_return_status => x_return_status,
10460 x_msg_count => x_msg_count,
10461 x_msg_data => x_msg_data,
10462 p_rgp_id => l_rgp_id,
10463 p_rgpv_rec => l_rgpv_rec,
10464 p_rulv_rec => l_rulv_rec,
10465 x_rgpv_rec => x_rgpv_rec,
10466 x_rulv_rec => x_rulv_rec
10467 );
10468
10469 l_progress := '1.19';
10470 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10471 x_return_status := OKL_API.G_RET_STS_ERROR;
10472 raise header_rule_failed;
10473 END IF;
10474
10475 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
10476 l_rgp_id := x_rgpv_rec.id;
10477 END IF;
10478
10479 debug_message('------>Rule: LAFCTG/LAFCTG processed');
10480 -- Rule Group LAEVEL
10481 l_rgpv_rec := NULL;
10482 l_rgp_id := NULL;
10483 l_rgpv_rec.rgd_code := 'LAEVEL';
10484 l_rgpv_rec.chr_id := p_chr_id;
10485 l_rgpv_rec.dnz_chr_id := p_chr_id;
10486 l_rgpv_rec.cle_id := NULL;
10487 l_rgpv_rec.rgp_type := 'KRG';
10488
10489 l_rulv_rec := NULL;
10490
10491 l_evergreen_eligible_flag := p_header_rec.evergreen_eligible_flag;
10492
10493 IF (l_evergreen_eligible_flag IS NULL
10494 AND p_header_rec.template_number IS NOT NULL) THEN
10495 get_contract_rules(
10496 x_return_status => x_return_status,
10497 x_msg_count => x_msg_count,
10498 x_msg_data => x_msg_data,
10499 p_chr_id => p_template_id,
10500 p_cle_id => NULL,
10501 p_rgd_code => 'LAEVEL',
10502 p_rule_code => 'LAEVEL',
10503 x_rulv_tbl => l_rulv_tbl,
10504 x_rule_count => l_rule_count
10505 );
10506
10507 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10508 RAISE header_rule_failed;
10509 END IF;
10510
10511 IF (l_rule_count > 0) THEN
10512 l_evergreen_eligible_flag := l_rulv_tbl(1).rule_information1;
10513 END IF;
10514 END IF;
10515
10516 IF (l_evergreen_eligible_flag IS NOT NULL) THEN
10517 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10518 l_rulv_rec.dnz_chr_id := p_chr_id;
10519 l_rulv_rec.rule_information1 := l_evergreen_eligible_flag;
10520 l_rulv_rec.rule_information_category := 'LAEVEL';
10521 l_rulv_rec.std_template_yn := 'N';
10522 l_rulv_rec.warn_yn := 'N';
10523 END IF;
10524
10525 create_rule_group_and_rule(
10526 x_return_status => x_return_status,
10527 x_msg_count => x_msg_count,
10528 x_msg_data => x_msg_data,
10529 p_rgp_id => l_rgp_id,
10530 p_rgpv_rec => l_rgpv_rec,
10531 p_rulv_rec => l_rulv_rec,
10532 x_rgpv_rec => x_rgpv_rec,
10533 x_rulv_rec => x_rulv_rec
10534 );
10535
10536 l_progress := '1.20';
10537 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10538 x_return_status := OKL_API.G_RET_STS_ERROR;
10539 raise header_rule_failed;
10540 END IF;
10541
10542 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
10543 l_rgp_id := x_rgpv_rec.id;
10544 END IF;
10545
10546 debug_message('------>Rule: LAEVEL/LAEVEL processed');
10547 l_rulv_rec := NULL;
10548
10549 l_evergreen_passthru_fees := TO_CHAR(p_header_rec.evergreen_passthru_fees);
10550 l_evergreen_passthru_percent := TO_CHAR(p_header_rec.evergreen_passthru_percent);
10551
10552 IF (l_evergreen_passthru_fees IS NULL
10553 OR
10554 l_evergreen_passthru_percent IS NULL
10555 AND
10556 p_header_rec.template_number IS NOT NULL) THEN
10557 get_contract_rules(
10558 x_return_status => x_return_status,
10559 x_msg_count => x_msg_count,
10560 x_msg_data => x_msg_data,
10561 p_chr_id => p_template_id,
10562 p_cle_id => NULL,
10563 p_rgd_code => 'LAEVEL',
10564 p_rule_code => 'LAEVPT',
10565 x_rulv_tbl => l_rulv_tbl,
10566 x_rule_count => l_rule_count
10567 );
10568
10569 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10570 RAISE header_rule_failed;
10571 END IF;
10572
10573 IF (l_rule_count > 0) THEN
10574 l_evergreen_passthru_fees := NVL(l_evergreen_passthru_fees, l_rulv_tbl(1).rule_information1);
10575 l_evergreen_passthru_percent := NVL(l_evergreen_passthru_percent, l_rulv_tbl(1).rule_information2);
10576 END IF;
10577 END IF;
10578
10579 IF (l_evergreen_passthru_fees IS NOT NULL) THEN
10580 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10581 l_rulv_rec.dnz_chr_id := p_chr_id;
10582 l_rulv_rec.rule_information1 := l_evergreen_passthru_fees;
10583 l_rulv_rec.rule_information_category := 'LAEVPT';
10584 l_rulv_rec.std_template_yn := 'N';
10585 l_rulv_rec.warn_yn := 'N';
10586 END IF;
10587
10588 IF (l_evergreen_passthru_percent IS NOT NULL) THEN
10589 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10590 l_rulv_rec.dnz_chr_id := p_chr_id;
10591 l_rulv_rec.rule_information2 := l_evergreen_passthru_percent;
10592 l_rulv_rec.rule_information_category := 'LAEVPT';
10593 l_rulv_rec.std_template_yn := 'N';
10594 l_rulv_rec.warn_yn := 'N';
10595 END IF;
10596
10597 create_rule_group_and_rule(
10598 x_return_status => x_return_status,
10599 x_msg_count => x_msg_count,
10600 x_msg_data => x_msg_data,
10601 p_rgp_id => l_rgp_id,
10602 p_rgpv_rec => l_rgpv_rec,
10603 p_rulv_rec => l_rulv_rec,
10604 x_rgpv_rec => x_rgpv_rec,
10605 x_rulv_rec => x_rulv_rec
10606 );
10607
10608 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10609 x_return_status := OKL_API.G_RET_STS_ERROR;
10610 raise header_rule_failed;
10611 END IF;
10612
10613 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
10614 l_rgp_id := x_rgpv_rec.id;
10615 END IF;
10616 debug_message('------>Rule: LAEVEL/LAEVPT processed');
10617 l_rulv_rec := NULL;
10618
10619 l_rgpv_rec := NULL;
10620 l_rgp_id := NULL;
10621 l_rgpv_rec.rgd_code := 'LABILL';
10622 l_rgpv_rec.chr_id := p_chr_id;
10623 l_rgpv_rec.dnz_chr_id := p_chr_id;
10624 l_rgpv_rec.cle_id := NULL;
10625 l_rgpv_rec.rgp_type := 'KRG';
10626
10627 /* Rule Migration
10628
10629 x_bill_to_address_id := NULL;
10630
10631 IF (p_header_rec.bill_to_address_id IS NOT NULL
10632 OR
10633 p_header_rec.bill_to_address IS NOT NULL) THEN
10634
10635 get_bill_to_address_id(
10636 x_return_status => x_return_status,
10637 x_msg_count => x_msg_count,
10638 x_msg_data => x_msg_data,
10639 p_contract_number => p_header_rec.contract_number,
10640 p_auth_org_id => p_header_rec.authoring_org_id,
10641 p_bill_to_address_id => p_header_rec.bill_to_address_id,
10642 p_bill_to_address => p_header_rec.bill_to_address,
10643 p_customer_account_id => x_customer_account_id,
10644 x_bill_to_address_id => x_bill_to_address_id
10645 );
10646
10647 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10648 x_return_status := OKL_API.G_RET_STS_ERROR;
10649 raise header_rule_failed;
10650 END IF;
10651
10652 ELSE
10653 IF (p_header_rec.template_number IS NOT NULL) THEN
10654 get_contract_rules(
10655 x_return_status => x_return_status,
10656 x_msg_count => x_msg_count,
10657 x_msg_data => x_msg_data,
10658 p_chr_id => p_template_id,
10659 p_cle_id => NULL,
10660 p_rgd_code => 'LABILL',
10661 p_rule_code => 'BTO',
10662 x_rulv_tbl => l_rulv_tbl,
10663 x_rule_count => l_rule_count
10664 );
10665
10666 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10667 RAISE header_rule_failed;
10668 END IF;
10669
10670 IF (l_rule_count > 0) THEN
10671 x_bill_to_address_id := TO_NUMBER(l_rulv_tbl(1).object1_id1);
10672 END IF;
10673 END IF;
10674 END IF;
10675
10676 IF (x_bill_to_address_id IS NOT NULL) THEN
10677 l_rgpv_rec := NULL;
10678 l_rgp_id := NULL;
10679 l_rgpv_rec.rgd_code := 'LABILL';
10680 l_rgpv_rec.chr_id := p_chr_id;
10681 l_rgpv_rec.dnz_chr_id := p_chr_id;
10682 l_rgpv_rec.cle_id := NULL;
10683 l_rgpv_rec.rgp_type := 'KRG';
10684
10685 l_rulv_rec := NULL;
10686 l_rulv_rec.jtot_object1_code := 'OKX_BILLTO';
10687 l_rulv_rec.object1_id1 := TO_CHAR(x_bill_to_address_id);
10688 l_rulv_rec.object1_id2 := '#';
10689 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10690 l_rulv_rec.dnz_chr_id := p_chr_id;
10691 l_rulv_rec.rule_information_category := 'BTO';
10692 l_rulv_rec.std_template_yn := 'N';
10693 l_rulv_rec.warn_yn := 'N';
10694 END IF;
10695
10696 create_rule_group_and_rule(
10697 x_return_status => x_return_status,
10698 x_msg_count => x_msg_count,
10699 x_msg_data => x_msg_data,
10700 p_rgp_id => l_rgp_id,
10701 p_rgpv_rec => l_rgpv_rec,
10702 p_rulv_rec => l_rulv_rec,
10703 x_rgpv_rec => x_rgpv_rec,
10704 x_rulv_rec => x_rulv_rec
10705 );
10706
10707 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10708 x_return_status := OKL_API.G_RET_STS_ERROR;
10709 raise header_rule_failed;
10710 END IF;
10711
10712 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
10713 l_rgp_id := x_rgpv_rec.id;
10714 END IF;
10715
10716 debug_message('------>Rule: LABILL/BTO processed');
10717 */
10718 IF (p_header_rec.customer_id IS NOT NULL
10719 OR
10720 p_header_rec.customer_number IS NOT NULL) THEN
10721 x_return_status := validate_customer(
10722 p_contract_number => p_header_rec.contract_number_old,
10723 p_customer_id => p_header_rec.customer_id,
10724 p_customer_number => p_header_rec.customer_number,
10725 x_id1 => l_customer_id
10726 );
10727 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10728 x_return_status := OKL_API.G_RET_STS_ERROR;
10729 raise header_rule_failed;
10730 END IF;
10731 ELSE
10732 -- Get customer info from template_contract
10733 OPEN temp_role_csr(p_template_id);
10734 FETCH temp_role_csr INTO l_customer_id;
10735 CLOSE temp_role_csr;
10736 END IF;
10737
10738 x_bank_account_id := NULL;
10739 IF (p_header_rec.bank_account_id IS NOT NULL
10740 OR
10741 p_header_rec.bank_account_number IS NOT NULL ) THEN
10742
10743 get_bank_account_id(
10744 x_return_status => x_return_status,
10745 x_msg_count => x_msg_count,
10746 x_msg_data => x_msg_data,
10747 p_contract_number => p_header_rec.contract_number_old,
10748 p_auth_org_id => p_header_rec.authoring_org_id,
10749 p_bank_account_id => p_header_rec.bank_account_id,
10750 p_bank_account_number => p_header_rec.bank_account_number,
10751 p_customer_account_id => g_customer_account_id,
10752 p_cust_site_id => g_bill_to_address_id,
10753 x_bank_account_id => x_bank_account_id
10754 );
10755
10756 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10757 x_return_status := OKL_API.G_RET_STS_ERROR;
10758 raise header_rule_failed;
10759 END IF;
10760
10761 ELSE
10762 IF (p_header_rec.template_number IS NOT NULL) THEN
10763 get_contract_rules(
10764 x_return_status => x_return_status,
10765 x_msg_count => x_msg_count,
10766 x_msg_data => x_msg_data,
10767 p_chr_id => p_template_id,
10768 p_cle_id => NULL,
10769 p_rgd_code => 'LABILL',
10770 p_rule_code => 'LABACC',
10771 x_rulv_tbl => l_rulv_tbl,
10772 x_rule_count => l_rule_count
10773 );
10774
10775 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10776 RAISE header_rule_failed;
10777 END IF;
10778
10779 IF (l_rule_count > 0) THEN
10780 x_bank_account_id := TO_NUMBER(l_rulv_tbl(1).object1_id1);
10781 END IF;
10782 END IF;
10783 END IF;
10784
10785 IF (x_bank_account_id IS NOT NULL) THEN
10786 l_rulv_rec := NULL;
10787 l_rulv_rec.jtot_object1_code := 'OKX_CUSTBKAC';
10788 l_rulv_rec.object1_id1 := TO_CHAR(x_bank_account_id);
10789 l_rulv_rec.object1_id2 := '#';
10790 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10791 l_rulv_rec.dnz_chr_id := p_chr_id;
10792 l_rulv_rec.rule_information_category := 'LABACC';
10793 l_rulv_rec.std_template_yn := 'N';
10794 l_rulv_rec.warn_yn := 'N';
10795
10796 create_rule_group_and_rule(
10797 x_return_status => x_return_status,
10798 x_msg_count => x_msg_count,
10799 x_msg_data => x_msg_data,
10800 p_rgp_id => l_rgp_id,
10801 p_rgpv_rec => l_rgpv_rec,
10802 p_rulv_rec => l_rulv_rec,
10803 x_rgpv_rec => x_rgpv_rec,
10804 x_rulv_rec => x_rulv_rec
10805 );
10806
10807 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10808 x_return_status := OKL_API.G_RET_STS_ERROR;
10809 raise header_rule_failed;
10810 END IF;
10811
10812 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
10813 l_rgp_id := x_rgpv_rec.id;
10814 END IF;
10815
10816 END IF; --bank_account_id
10817
10818 debug_message('------>Rule: LABILL/LABACC processed');
10819 l_rulv_rec := NULL;
10820
10821 l_reason_for_invoice_review := p_header_rec.reason_for_invoice_review;
10822 l_invoice_review_until_date := get_canonicaL_date(p_header_rec.invoice_review_until_date);
10823
10824 IF (l_reason_for_invoice_review IS NULL
10825 OR
10826 l_invoice_review_until_date IS NULL
10827 AND
10828 p_header_rec.template_number IS NOT NULL) THEN
10829 get_contract_rules(
10830 x_return_status => x_return_status,
10831 x_msg_count => x_msg_count,
10832 x_msg_data => x_msg_data,
10833 p_chr_id => p_template_id,
10834 p_cle_id => NULL,
10835 p_rgd_code => 'LABILL',
10836 p_rule_code => 'LAINPR',
10837 x_rulv_tbl => l_rulv_tbl,
10838 x_rule_count => l_rule_count
10839 );
10840
10841 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10842 RAISE header_rule_failed;
10843 END IF;
10844
10845 IF (l_rule_count > 0) THEN
10846 l_reason_for_invoice_review := NVL(l_reason_for_invoice_review,l_rulv_tbl(1).rule_information1);
10847 l_invoice_review_until_date := NVL(l_invoice_review_until_date,l_rulv_tbl(1).rule_information2);
10848 END IF;
10849 END IF;
10850
10851 IF (l_reason_for_invoice_review IS NOT NULL) THEN
10852 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10853 l_rulv_rec.dnz_chr_id := p_chr_id;
10854 l_rulv_rec.rule_information1 := l_reason_for_invoice_review;
10855 l_rulv_rec.rule_information_category := 'LAINPR';
10856 l_rulv_rec.std_template_yn := 'N';
10857 l_rulv_rec.warn_yn := 'N';
10858 END IF;
10859
10860 IF (l_invoice_review_until_date IS NOT NULL) THEN
10861 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10862 l_rulv_rec.dnz_chr_id := p_chr_id;
10863 l_rulv_rec.rule_information2 := l_invoice_review_until_date;
10864 l_rulv_rec.rule_information_category := 'LAINPR';
10865 l_rulv_rec.std_template_yn := 'N';
10866 l_rulv_rec.warn_yn := 'N';
10867 END IF;
10868
10869 create_rule_group_and_rule(
10870 x_return_status => x_return_status,
10871 x_msg_count => x_msg_count,
10872 x_msg_data => x_msg_data,
10873 p_rgp_id => l_rgp_id,
10874 p_rgpv_rec => l_rgpv_rec,
10875 p_rulv_rec => l_rulv_rec,
10876 x_rgpv_rec => x_rgpv_rec,
10877 x_rulv_rec => x_rulv_rec
10878 );
10879
10880 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10881 x_return_status := OKL_API.G_RET_STS_ERROR;
10882 raise header_rule_failed;
10883 END IF;
10884
10885 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
10886 l_rgp_id := x_rgpv_rec.id;
10887 END IF;
10888
10889 debug_message('------>Rule: LABILL/LAINPR processed');
10890 x_invoice_format_id := NULL;
10891 IF (p_header_rec.invoice_format_id IS NOT NULL
10892 OR
10893 p_header_rec.invoice_format_code IS NOT NULL ) THEN
10894 get_invoice_format_id(
10895 x_return_status => x_return_status,
10896 x_msg_count => x_msg_count,
10897 x_msg_data => x_msg_data,
10898 p_contract_number => p_header_rec.contract_number_old,
10899 p_invoice_format_id => p_header_rec.invoice_format_id,
10900 p_invoice_format_code => p_header_rec.invoice_format_code,
10901 x_invoice_format_id => x_invoice_format_id,
10902 x_invoice_format_name => x_invoice_format_name
10903 );
10904
10905 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10906 x_return_status := OKL_API.G_RET_STS_ERROR;
10907 raise header_rule_failed;
10908 END IF;
10909 END IF;
10910
10911 x_cash_appl_rule_id := NULL;
10912 IF (p_header_rec.cash_appl_rule_name IS NOT NULL) THEN
10913 get_cash_appl_rule_id (
10914 x_return_status => x_return_status,
10915 x_msg_count => x_msg_count,
10916 x_msg_data => x_msg_data,
10917 p_contract_number => p_header_rec.contract_number_old,
10918 p_org_id => p_header_rec.authoring_org_id,
10919 p_cash_appl_rule_name => p_header_rec.cash_appl_rule_name,
10920 x_cash_appl_rule_id => x_cash_appl_rule_id
10921 );
10922
10923 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10924 x_return_status := OKL_API.G_RET_STS_ERROR;
10925 raise header_rule_failed;
10926 END IF;
10927
10928 END IF;
10929
10930 IF (p_header_rec.invoice_format_id IS NULL
10931 OR
10932 p_header_rec.invoice_format_code IS NULL
10933 OR
10934 p_header_rec.cash_appl_rule_name IS NULL
10935 OR
10936 p_header_rec.review_invoice_flag IS NULL
10937 OR --hariven bug 5359935
10938 p_header_rec.print_lead_days IS NULL --hariven bug 5359935
10939 AND
10940 p_header_rec.template_number IS NOT NULL) THEN
10941
10942 get_contract_rules(
10943 x_return_status => x_return_status,
10944 x_msg_count => x_msg_count,
10945 x_msg_data => x_msg_data,
10946 p_chr_id => p_template_id,
10947 p_cle_id => NULL,
10948 p_rgd_code => 'LABILL',
10949 p_rule_code => 'LAINVD',
10950 x_rulv_tbl => l_rulv_tbl,
10951 x_rule_count => l_rule_count
10952 );
10953
10954 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
10955 RAISE header_rule_failed;
10956 END IF;
10957
10958 IF (l_rule_count > 0) THEN
10959 x_invoice_format_name := l_rulv_tbl(1).rule_information1;
10960 l_review_invoice_flag := NVL(p_header_rec.review_invoice_flag,
10961 l_rulv_tbl(1).rule_information4);
10962
10963 l_print_lead_days := NVL(p_header_rec.print_lead_days, --hariven bug 5359935
10964 l_rulv_tbl(1).rule_information3); --hariven bug 5359935
10965
10966 x_cash_appl_rule_id := NVL(x_cash_appl_rule_id, l_rulv_tbl(1).object1_id1);
10967 END IF;
10968 END IF;
10969
10970 l_rulv_rec := NULL;
10971 IF (x_invoice_format_name IS NOT NULL) THEN
10972 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10973 l_rulv_rec.dnz_chr_id := p_chr_id;
10974 l_rulv_rec.rule_information1 := x_invoice_format_name;
10975 l_rulv_rec.rule_information_category := 'LAINVD';
10976 l_rulv_rec.std_template_yn := 'N';
10977 l_rulv_rec.warn_yn := 'N';
10978 END IF;
10979
10980 IF (NVL(l_review_invoice_flag, p_header_rec.review_invoice_flag) IS NOT NULL) THEN
10981 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10982 l_rulv_rec.dnz_chr_id := p_chr_id;
10983 l_rulv_rec.rule_information4 := NVL(l_review_invoice_flag, p_header_rec.review_invoice_flag);
10984 l_rulv_rec.rule_information_category := 'LAINVD';
10985 l_rulv_rec.std_template_yn := 'N';
10986 l_rulv_rec.warn_yn := 'N';
10987 END IF;
10988
10989 --hariven bug 5359935 start
10990 IF (NVL(l_print_lead_days, p_header_rec.print_lead_days) IS NOT NULL) THEN
10991 l_rulv_rec.rgp_id := x_rgpv_rec.id;
10992 l_rulv_rec.dnz_chr_id := p_chr_id;
10993 l_rulv_rec.rule_information3 := NVL(l_print_lead_days, p_header_rec.print_lead_days);
10994 l_rulv_rec.rule_information_category := 'LAINVD';
10995 l_rulv_rec.std_template_yn := 'N';
10996 l_rulv_rec.warn_yn := 'N';
10997 END IF;
10998 --hariven bug 5359935 End
10999
11000 IF (x_cash_appl_rule_id IS NOT NULL) THEN
11001 l_rulv_rec.jtot_object1_code := 'OKL_CASHAPPL';
11002 l_rulv_rec.object1_id1 := TO_CHAR(x_cash_appl_rule_id);
11003 l_rulv_rec.object1_id2 := '#';
11004 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11005 l_rulv_rec.dnz_chr_id := p_chr_id;
11006 l_rulv_rec.rule_information_category := 'LAINVD';
11007 l_rulv_rec.std_template_yn := 'N';
11008 l_rulv_rec.warn_yn := 'N';
11009 END IF;
11010
11011 create_rule_group_and_rule(
11012 x_return_status => x_return_status,
11013 x_msg_count => x_msg_count,
11014 x_msg_data => x_msg_data,
11015 p_rgp_id => l_rgp_id,
11016 p_rgpv_rec => l_rgpv_rec,
11017 p_rulv_rec => l_rulv_rec,
11018 x_rgpv_rec => x_rgpv_rec,
11019 x_rulv_rec => x_rulv_rec
11020 );
11021
11022 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11023 x_return_status := OKL_API.G_RET_STS_ERROR;
11024 raise header_rule_failed;
11025 END IF;
11026
11027 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- Bug 5085099
11028 l_rgp_id := x_rgpv_rec.id;
11029 END IF;
11030
11031 debug_message('------>Rule: LABILL/LAINVD processed');
11032 x_payment_method_id := NULL;
11033 IF (p_header_rec.payment_method_id IS NOT NULL
11034 OR
11035 p_header_rec.payment_method IS NOT NULL) THEN
11036 get_payment_method_id(
11037 x_return_status => x_return_status,
11038 x_msg_count => x_msg_count,
11039 x_msg_data => x_msg_data,
11040 p_contract_number => p_header_rec.contract_number_old,
11041 p_customer_account_id => g_customer_account_id,
11042 p_bill_to_address_id => g_bill_to_address_id, -- got from get_bill_to_address_id() above
11043 p_payment_method_id => p_header_rec.payment_method_id,
11044 p_payment_method => p_header_rec.payment_method,
11045 x_payment_method_id => x_payment_method_id
11046 );
11047
11048 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11049 x_return_status := OKL_API.G_RET_STS_ERROR;
11050 raise header_rule_failed;
11051 END IF;
11052
11053 ELSE
11054 IF (p_header_rec.template_number IS NOT NULL) THEN
11055 get_contract_rules(
11056 x_return_status => x_return_status,
11057 x_msg_count => x_msg_count,
11058 x_msg_data => x_msg_data,
11059 p_chr_id => p_template_id,
11060 p_cle_id => NULL,
11061 p_rgd_code => 'LABILL',
11062 p_rule_code => 'LAPMTH',
11063 x_rulv_tbl => l_rulv_tbl,
11064 x_rule_count => l_rule_count
11065 );
11066
11067 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11068 RAISE header_rule_failed;
11069 END IF;
11070
11071 IF (l_rule_count > 0) THEN
11072 x_payment_method_id := l_rulv_tbl(1).object1_id1;
11073 END IF;
11074 END IF;
11075 END IF;
11076 --debug_message('2PMNT ID: '||x_payment_method_id);
11077
11078 l_rulv_rec := NULL;
11079 IF (x_payment_method_id IS NOT NULL) THEN
11080 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11081 l_rulv_rec.dnz_chr_id := p_chr_id;
11082 l_rulv_rec.jtot_object1_code := 'OKX_RCPTMTH';
11083 l_rulv_rec.object1_id1 := TO_CHAR(x_payment_method_id);
11084 l_rulv_rec.object1_id2 := '#';
11085 l_rulv_rec.rule_information_category := 'LAPMTH';
11086 l_rulv_rec.std_template_yn := 'N';
11087 l_rulv_rec.warn_yn := 'N';
11088 END IF;
11089
11090 create_rule_group_and_rule(
11091 x_return_status => x_return_status,
11092 x_msg_count => x_msg_count,
11093 x_msg_data => x_msg_data,
11094 p_rgp_id => l_rgp_id,
11095 p_rgpv_rec => l_rgpv_rec,
11096 p_rulv_rec => l_rulv_rec,
11097 x_rgpv_rec => x_rgpv_rec,
11098 x_rulv_rec => x_rulv_rec
11099 );
11100
11101 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11102 x_return_status := OKL_API.G_RET_STS_ERROR;
11103 raise header_rule_failed;
11104 END IF;
11105
11106 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11107 l_rgp_id := x_rgpv_rec.id;
11108 END IF;
11109
11110 debug_message('------>Rule: LABILL/LAPMTH processed');
11111 -- Rule Group LACPLN
11112 l_rgpv_rec := NULL;
11113 l_rgp_id := NULL;
11114 l_rgpv_rec.rgd_code := 'LACPLN';
11115 l_rgpv_rec.chr_id := p_chr_id;
11116 l_rgpv_rec.dnz_chr_id := p_chr_id;
11117 l_rgpv_rec.cle_id := NULL;
11118 l_rgpv_rec.rgp_type := 'KRG';
11119
11120 l_capitalize_flag := p_header_rec.capitalize_flag;
11121
11122 IF (l_capitalize_flag IS NULL
11123 AND
11124 p_header_rec.template_number IS NOT NULL) THEN
11125 get_contract_rules(
11126 x_return_status => x_return_status,
11127 x_msg_count => x_msg_count,
11128 x_msg_data => x_msg_data,
11129 p_chr_id => p_template_id,
11130 p_cle_id => NULL,
11131 p_rgd_code => 'LACPLN',
11132 p_rule_code => 'LACPLN',
11133 x_rulv_tbl => l_rulv_tbl,
11134 x_rule_count => l_rule_count
11135 );
11136
11137 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11138 RAISE header_rule_failed;
11139 END IF;
11140
11141 IF (l_rule_count > 0) THEN
11142 l_capitalize_flag := l_rulv_tbl(1).rule_information1;
11143 END IF;
11144 END IF;
11145
11146 IF (p_header_rec.capitalize_flag IS NOT NULL) THEN
11147
11148 l_rulv_rec := NULL;
11149 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11150 l_rulv_rec.dnz_chr_id := p_chr_id;
11151 l_rulv_rec.rule_information1 := p_header_rec.capitalize_flag;
11152 l_rulv_rec.rule_information_category := 'LACPLN';
11153 l_rulv_rec.std_template_yn := 'N';
11154 l_rulv_rec.warn_yn := 'N';
11155
11156 create_rule_group_and_rule(
11157 x_return_status => x_return_status,
11158 x_msg_count => x_msg_count,
11159 x_msg_data => x_msg_data,
11160 p_rgp_id => l_rgp_id,
11161 p_rgpv_rec => l_rgpv_rec,
11162 p_rulv_rec => l_rulv_rec,
11163 x_rgpv_rec => x_rgpv_rec,
11164 x_rulv_rec => x_rulv_rec
11165 );
11166
11167 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11168 raise header_rule_failed;
11169 END IF;
11170
11171 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11172 l_rgp_id := x_rgpv_rec.id;
11173 END IF;
11174
11175 END IF; -- capitalize
11176
11177 debug_message('------>Rule: LACPLN/LACPLN processed');
11178 -- Rule Group LANNTF
11179 l_rgpv_rec := NULL;
11180 l_rgp_id := NULL;
11181 l_rgpv_rec.rgd_code := 'LANNTF';
11182 l_rgpv_rec.chr_id := p_chr_id;
11183 l_rgpv_rec.dnz_chr_id := p_chr_id;
11184 l_rgpv_rec.cle_id := NULL;
11185 l_rgpv_rec.rgp_type := 'KRG';
11186
11187 l_non_notification_flag := p_header_rec.non_notification_flag;
11188
11189 IF (l_non_notification_flag IS NULL
11190 AND
11191 p_header_rec.template_number IS NOT NULL) THEN
11192 get_contract_rules(
11193 x_return_status => x_return_status,
11194 x_msg_count => x_msg_count,
11195 x_msg_data => x_msg_data,
11196 p_chr_id => p_template_id,
11197 p_cle_id => NULL,
11198 p_rgd_code => 'LANNTF',
11199 p_rule_code => 'LANNTF',
11200 x_rulv_tbl => l_rulv_tbl,
11201 x_rule_count => l_rule_count
11202 );
11203
11204 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11205 RAISE header_rule_failed;
11206 END IF;
11207
11208 IF (l_rule_count > 0) THEN
11209 l_non_notification_flag := l_rulv_tbl(1).rule_information1;
11210 END IF;
11211 END IF;
11212
11213 IF (l_non_notification_flag IS NOT NULL) THEN
11214
11215 l_rulv_rec := NULL;
11216 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11217 l_rulv_rec.dnz_chr_id := p_chr_id;
11218 l_rulv_rec.rule_information1 := l_non_notification_flag;
11219 l_rulv_rec.rule_information_category := 'LANNTF';
11220 l_rulv_rec.std_template_yn := 'N';
11221 l_rulv_rec.warn_yn := 'N';
11222
11223 create_rule_group_and_rule(
11224 x_return_status => x_return_status,
11225 x_msg_count => x_msg_count,
11226 x_msg_data => x_msg_data,
11227 p_rgp_id => l_rgp_id,
11228 p_rgpv_rec => l_rgpv_rec,
11229 p_rulv_rec => l_rulv_rec,
11230 x_rgpv_rec => x_rgpv_rec,
11231 x_rulv_rec => x_rulv_rec
11232 );
11233
11234 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11235 raise header_rule_failed;
11236 END IF;
11237
11238 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11239 l_rgp_id := x_rgpv_rec.id;
11240 END IF;
11241
11242 END IF; -- non_notification
11243 debug_message('------>Rule: LANNTF/LANNTF processed');
11244
11245 -- Rule Group LARVIN -- DDD
11246 l_rgpv_rec := NULL;
11247 l_rgp_id := NULL;
11248 l_rgpv_rec.rgd_code := 'LARVIN';
11249 l_rgpv_rec.chr_id := p_chr_id;
11250 l_rgpv_rec.dnz_chr_id := p_chr_id;
11251 l_rgpv_rec.cle_id := NULL;
11252 l_rgpv_rec.rgp_type := 'KRG';
11253
11254 l_rulv_rec := NULL;
11255 l_rvi_auto_calculate_flag := p_header_rec.rvi_auto_calculate_flag;
11256
11257 IF (l_rvi_auto_calculate_flag IS NULL
11258 AND
11259 p_header_rec.template_number IS NOT NULL) THEN
11260 get_contract_rules(
11261 x_return_status => x_return_status,
11262 x_msg_count => x_msg_count,
11263 x_msg_data => x_msg_data,
11264 p_chr_id => p_template_id,
11265 p_cle_id => NULL,
11266 p_rgd_code => 'LARVIN',
11267 p_rule_code => 'LARVAU',
11268 x_rulv_tbl => l_rulv_tbl,
11269 x_rule_count => l_rule_count
11270 );
11271
11272 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11273 RAISE header_rule_failed;
11274 END IF;
11275
11276 IF (l_rule_count > 0) THEN
11277 l_rvi_auto_calculate_flag := l_rulv_tbl(1).rule_information1;
11278 END IF;
11279 END IF;
11280
11281 IF (l_rvi_auto_calculate_flag IS NOT NULL) THEN
11282
11283 -- Bug 4655611
11284 IF (NVL(l_rvi_auto_calculate_flag,'N') = 'Y') THEN
11285 -- Validate rvi stream
11286 OPEN contract_csr(p_chr_id);
11287 FETCH contract_csr INTO l_contract_number,l_contract_start_date;
11288
11289 IF contract_csr%NOTFOUND THEN
11290 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
11291 CLOSE contract_csr;
11292 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
11293 p_msg_name => 'OKL_LLA_CHR_ID');
11294 RAISE header_rule_failed;
11295 END IF;
11296
11297 CLOSE contract_csr;
11298 debug_message('After close_contract_csr...');
11299
11300 l_rvi_stream_code := p_header_rec.RVI_STREAM_CODE;
11301 l_rvi_stream_purpose_code := p_header_rec.RVI_STREAM_PURPOSE_CODE;
11302 debug_message('l_rvi_stream_code=' || l_rvi_stream_code);
11303 debug_message('l_rvi_stream_purpose_code=' || l_rvi_stream_purpose_code);
11304 IF ((l_rvi_stream_code IS NOT NULL AND
11305 l_rvi_stream_purpose_code IS NULL) OR
11306 (l_rvi_stream_code IS NULL AND
11307 l_rvi_stream_purpose_code IS NOT NULL)) THEN
11308
11309 okl_api.set_message(
11310 G_APP_NAME,
11311 G_INVALID_VALUE,
11312 'CONTRACT_NUM',
11313 l_contract_number, --||'/'||TO_CHAR(p_line_number),
11314 'COL_NAME',
11315 'RVI_STREAM_CODE, RVI_STREAM_PURPOSE_CODE',
11316 'COL_VALUE',
11317 l_rvi_stream_code||', '||l_rvi_stream_purpose_code
11318 );
11319 x_return_status := OKL_API.G_RET_STS_ERROR;
11320 RAISE header_rule_failed;
11321
11322 ELSIF (l_rvi_stream_code IS NOT NULL AND
11323 l_rvi_stream_purpose_code IS NOT NULL) THEN
11324 check_stream_type_code(
11325 x_return_status => x_return_status,
11326 x_msg_count => x_msg_count,
11327 x_msg_data => x_msg_data,
11328 p_stream_type_code => l_rvi_stream_code,
11329 p_stream_purpose => l_rvi_stream_purpose_code,
11330 x_id1 => l_rvi_stream_type_id,
11331 x_name => l_rvi_stream_name
11332 );
11333 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11334 okl_api.set_message(
11335 G_APP_NAME,
11336 G_INVALID_VALUE,
11337 'CONTRACT_NUM',
11338 l_contract_number, --||'/'||TO_CHAR(p_line_number),
11339 'COL_NAME',
11340 'RVI_STREAM_CODE, RVI_STREAM_PURPOSE_CODE',
11341 'COL_VALUE',
11342 l_rvi_stream_code||', '||l_rvi_stream_purpose_code
11343 );
11344 x_return_status := OKL_API.G_RET_STS_ERROR;
11345 RAISE header_rule_failed;
11346 END IF;
11347
11348 debug_message('l_rvi_stream_type_id=' || l_rvi_stream_type_id);
11349 -- Check if the stream type is ID is effective
11350 OPEN rvi_stream_csr (l_rvi_stream_type_id, l_contract_start_date);
11351 FETCH rvi_stream_csr INTO l_yn;
11352
11353 IF rvi_stream_csr%NOTFOUND THEN
11354 CLOSE rvi_stream_csr;
11355 okl_api.set_message(
11356 G_APP_NAME,
11357 G_NO_STRM_TMPL,
11358 'CONTRACT_NUM',
11359 l_contract_number, --||'/'||p_line_number,
11360 'COL_NAME',
11361 'RVI_STREAM_CODE, RVI_STREAM_PURPOSE_CODE',
11362 'COL_VALUE',
11363 l_rvi_stream_code||', '||l_rvi_stream_purpose_code
11364 );
11365 RAISE header_rule_failed;
11366 ELSE
11367 CLOSE rvi_stream_csr;
11368 END IF;
11369 END IF;
11370
11371 l_fee_types_rec.dnz_chr_id := p_chr_id;
11372 l_fee_types_rec.item_id1 := l_rvi_stream_type_id;
11373 OKL_MAINTAIN_FEE_PVT.PROCESS_RVI_STREAM(
11374 p_api_version => 1.0,
11375 p_init_msg_list => OKL_API.G_FALSE,
11376 x_return_status => x_return_status,
11377 x_msg_count => x_msg_count,
11378 x_msg_data => x_msg_data,
11379 p_check_box_value => 'Y',
11380 p_fee_types_rec => l_fee_types_rec,
11381 x_fee_types_rec => x_fee_types_rec);
11382
11383 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11384 raise header_rule_failed;
11385 END IF;
11386
11387
11388 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11389 l_rulv_rec.dnz_chr_id := p_chr_id;
11390 l_rulv_rec.rule_information1 := l_rvi_auto_calculate_flag;
11391 l_rulv_rec.rule_information_category := 'LARVAU';
11392 l_rulv_rec.std_template_yn := 'N';
11393 l_rulv_rec.warn_yn := 'N';
11394
11395 create_rule_group_and_rule(
11396 x_return_status => x_return_status,
11397 x_msg_count => x_msg_count,
11398 x_msg_data => x_msg_data,
11399 p_rgp_id => l_rgp_id,
11400 p_rgpv_rec => l_rgpv_rec,
11401 p_rulv_rec => l_rulv_rec,
11402 x_rgpv_rec => x_rgpv_rec,
11403 x_rulv_rec => x_rulv_rec
11404 );
11405
11406 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11407 raise header_rule_failed;
11408 END IF;
11409
11410 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11411 l_rgp_id := x_rgpv_rec.id;
11412 END IF;
11413 END IF; -- if rvi_auto_calculate_flag = 'Y'
11414 -- Bug 4655611
11415
11416 END IF; -- rvi_auto_calculate_flag
11417
11418 debug_message('------>Rule: LARVIN/LARVAU processed');
11419 l_rulv_rec := NULL;
11420 /* Removed form Rule Definition 05/22/2002
11421 IF (p_header_rec.rvi_guaranteed_amount IS NOT NULL) THEN
11422
11423 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11424 l_rulv_rec.dnz_chr_id := p_chr_id;
11425 l_rulv_rec.rule_information1 := TO_CHAR(p_header_rec.rvi_guaranteed_amount);
11426 l_rulv_rec.rule_information_category := 'LARVAM';
11427 l_rulv_rec.std_template_yn := 'N';
11428 l_rulv_rec.warn_yn := 'N';
11429
11430 END IF; -- rvi_guaranteed_amount
11431
11432 IF (p_header_rec.rvi_present_guaranteed_amount IS NOT NULL) THEN
11433
11434 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11435 l_rulv_rec.dnz_chr_id := p_chr_id;
11436 l_rulv_rec.rule_information2 := TO_CHAR(p_header_rec.rvi_present_guaranteed_amount);
11437 l_rulv_rec.rule_information_category := 'LARVAM';
11438 l_rulv_rec.std_template_yn := 'N';
11439 l_rulv_rec.warn_yn := 'N';
11440
11441 END IF; -- rvi_guaranteed_amount
11442
11443 IF (p_header_rec.rvi_premium_amount IS NOT NULL) THEN
11444
11445 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11446 l_rulv_rec.dnz_chr_id := p_chr_id;
11447 l_rulv_rec.rule_information3 := TO_CHAR(p_header_rec.rvi_premium_amount);
11448 l_rulv_rec.rule_information_category := 'LARVAM';
11449 l_rulv_rec.std_template_yn := 'N';
11450 l_rulv_rec.warn_yn := 'N';
11451
11452 END IF; -- rvi_guaranteed_amount
11453
11454 -- Removed form Rule Definition 05/22/2002
11455 */
11456
11457 l_rvi_rate := TO_CHAR(p_header_rec.rvi_rate);
11458
11459 IF (l_rvi_rate IS NULL
11460 AND
11461 p_header_rec.template_number IS NOT NULL) THEN
11462 get_contract_rules(
11463 x_return_status => x_return_status,
11464 x_msg_count => x_msg_count,
11465 x_msg_data => x_msg_data,
11466 p_chr_id => p_template_id,
11467 p_cle_id => NULL,
11468 p_rgd_code => 'LARVIN',
11469 p_rule_code => 'LARVAM',
11470 x_rulv_tbl => l_rulv_tbl,
11471 x_rule_count => l_rule_count
11472 );
11473
11474 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11475 RAISE header_rule_failed;
11476 END IF;
11477
11478 IF (l_rule_count > 0) THEN
11479 l_rvi_rate := l_rulv_tbl(1).rule_information4;
11480 END IF;
11481 END IF;
11482
11483 IF (l_rvi_rate IS NOT NULL) THEN
11484
11485 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11486 l_rulv_rec.dnz_chr_id := p_chr_id;
11487 l_rulv_rec.rule_information4 := l_rvi_rate;
11488 l_rulv_rec.rule_information_category := 'LARVAM';
11489 l_rulv_rec.std_template_yn := 'N';
11490 l_rulv_rec.warn_yn := 'N';
11491
11492 END IF; -- rvi_guaranteed_amount
11493
11494 create_rule_group_and_rule(
11495 x_return_status => x_return_status,
11496 x_msg_count => x_msg_count,
11497 x_msg_data => x_msg_data,
11498 p_rgp_id => l_rgp_id,
11499 p_rgpv_rec => l_rgpv_rec,
11500 p_rulv_rec => l_rulv_rec,
11501 x_rgpv_rec => x_rgpv_rec,
11502 x_rulv_rec => x_rulv_rec
11503 );
11504
11505 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11506 raise header_rule_failed;
11507 END IF;
11508
11509 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11510 l_rgp_id := x_rgpv_rec.id;
11511 END IF;
11512
11513 debug_message('------>Rule: LARVIN/LARVAM processed');
11514 -- Rule Group LAMXTX
11515 l_rgpv_rec := NULL;
11516 l_rgp_id := NULL;
11517 l_rgpv_rec.rgd_code := 'LAMXTX';
11518 l_rgpv_rec.chr_id := p_chr_id;
11519 l_rgpv_rec.dnz_chr_id := p_chr_id;
11520 l_rgpv_rec.cle_id := NULL;
11521 l_rgpv_rec.rgp_type := 'KRG';
11522
11523 l_rulv_rec := NULL;
11524 l_tax_withholding_flag := p_header_rec.tax_withholding_flag;
11525
11526 IF (l_tax_withholding_flag IS NULL
11527 AND
11528 p_header_rec.template_number IS NOT NULL) THEN
11529 get_contract_rules(
11530 x_return_status => x_return_status,
11531 x_msg_count => x_msg_count,
11532 x_msg_data => x_msg_data,
11533 p_chr_id => p_template_id,
11534 p_cle_id => NULL,
11535 p_rgd_code => 'LAMXTX',
11536 p_rule_code => 'LAUKTX',
11537 x_rulv_tbl => l_rulv_tbl,
11538 x_rule_count => l_rule_count
11539 );
11540
11541 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11542 RAISE header_rule_failed;
11543 END IF;
11544
11545 IF (l_rule_count > 0) THEN
11546 l_tax_withholding_flag := l_rulv_tbl(1).rule_information1;
11547 END IF;
11548 END IF;
11549
11550 IF (l_tax_withholding_flag IS NOT NULL) THEN
11551
11552 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11553 l_rulv_rec.dnz_chr_id := p_chr_id;
11554 l_rulv_rec.rule_information1 := l_tax_withholding_flag;
11555 l_rulv_rec.rule_information_category := 'LAUKTX';
11556 l_rulv_rec.std_template_yn := 'N';
11557 l_rulv_rec.warn_yn := 'N';
11558
11559 create_rule_group_and_rule(
11560 x_return_status => x_return_status,
11561 x_msg_count => x_msg_count,
11562 x_msg_data => x_msg_data,
11563 p_rgp_id => l_rgp_id,
11564 p_rgpv_rec => l_rgpv_rec,
11565 p_rulv_rec => l_rulv_rec,
11566 x_rgpv_rec => x_rgpv_rec,
11567 x_rulv_rec => x_rulv_rec
11568 );
11569
11570 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11571 raise header_rule_failed;
11572 END IF;
11573
11574 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11575 l_rgp_id := x_rgpv_rec.id;
11576 END IF;
11577
11578 END IF; -- tax_withholding_flag
11579
11580 debug_message('------>Rule: LAMXTX/LAUKTX processed');
11581 l_rulv_rec := NULL;
11582
11583 l_tax_calc_formula_name := p_header_rec.tax_calc_formula_name;
11584
11585 IF (l_tax_calc_formula_name IS NULL
11586 AND
11587 p_header_rec.template_number IS NOT NULL) THEN
11588 get_contract_rules(
11589 x_return_status => x_return_status,
11590 x_msg_count => x_msg_count,
11591 x_msg_data => x_msg_data,
11592 p_chr_id => p_template_id,
11593 p_cle_id => NULL,
11594 p_rgd_code => 'LAMXTX',
11595 p_rule_code => 'LAFORM',
11596 x_rulv_tbl => l_rulv_tbl,
11597 x_rule_count => l_rule_count
11598 );
11599
11600 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11601 RAISE header_rule_failed;
11602 END IF;
11603
11604 IF (l_rule_count > 0) THEN
11605 l_tax_calc_formula_name := l_rulv_tbl(1).rule_information1;
11606 END IF;
11607 END IF;
11608
11609 IF (l_tax_calc_formula_name IS NOT NULL) THEN
11610
11611 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11612 l_rulv_rec.dnz_chr_id := p_chr_id;
11613 l_rulv_rec.rule_information1 := l_tax_calc_formula_name;
11614 l_rulv_rec.rule_information_category := 'LAFORM';
11615 l_rulv_rec.std_template_yn := 'N';
11616 l_rulv_rec.warn_yn := 'N';
11617
11618 create_rule_group_and_rule(
11619 x_return_status => x_return_status,
11620 x_msg_count => x_msg_count,
11621 x_msg_data => x_msg_data,
11622 p_rgp_id => l_rgp_id,
11623 p_rgpv_rec => l_rgpv_rec,
11624 p_rulv_rec => l_rulv_rec,
11625 x_rgpv_rec => x_rgpv_rec,
11626 x_rulv_rec => x_rulv_rec
11627 );
11628
11629 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11630 raise header_rule_failed;
11631 END IF;
11632
11633 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11634 l_rgp_id := x_rgpv_rec.id;
11635 END IF;
11636
11637 END IF; -- tax_calc_formula_name
11638
11639 debug_message('------>Rule: LAMXTX/LAFORM processed');
11640
11641 /* Not being used since 11.5.9
11642 Tax Owner rule is getting created from Product
11643
11644 -- Rule Group LATOWN
11645 l_rgpv_rec := NULL;
11646 l_rgp_id := NULL;
11647 l_rgpv_rec.rgd_code := 'LATOWN';
11648 l_rgpv_rec.chr_id := p_chr_id;
11649 l_rgpv_rec.dnz_chr_id := p_chr_id;
11650 l_rgpv_rec.cle_id := NULL;
11651 l_rgpv_rec.rgp_type := 'KRG';
11652
11653 l_rulv_rec := NULL;
11654
11655 l_tax_owner := p_header_rec.tax_owner;
11656
11657 IF (l_tax_owner IS NULL
11658 AND
11659 p_header_rec.template_number IS NOT NULL) THEN
11660 get_contract_rules(
11661 x_return_status => x_return_status,
11662 x_msg_count => x_msg_count,
11663 x_msg_data => x_msg_data,
11664 p_chr_id => p_template_id,
11665 p_cle_id => NULL,
11666 p_rgd_code => 'LATOWN',
11667 p_rule_code => 'LATOWN',
11668 x_rulv_tbl => l_rulv_tbl,
11669 x_rule_count => l_rule_count
11670 );
11671
11672 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11673 RAISE header_rule_failed;
11674 END IF;
11675
11676 IF (l_rule_count > 0) THEN
11677 l_tax_owner := l_rulv_tbl(1).rule_information1;
11678 END IF;
11679 END IF;
11680
11681 IF (l_tax_owner IS NOT NULL) THEN
11682
11683 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11684 l_rulv_rec.dnz_chr_id := p_chr_id;
11685 l_rulv_rec.rule_information1 := l_tax_owner;
11686 l_rulv_rec.rule_information_category := 'LATOWN';
11687 l_rulv_rec.std_template_yn := 'N';
11688 l_rulv_rec.warn_yn := 'N';
11689
11690 create_rule_group_and_rule(
11691 x_return_status => x_return_status,
11692 x_msg_count => x_msg_count,
11693 x_msg_data => x_msg_data,
11694 p_rgp_id => l_rgp_id,
11695 p_rgpv_rec => l_rgpv_rec,
11696 p_rulv_rec => l_rulv_rec,
11697 x_rgpv_rec => x_rgpv_rec,
11698 x_rulv_rec => x_rulv_rec
11699 );
11700
11701 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11702 raise header_rule_failed;
11703 END IF;
11704
11705 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11706 l_rgp_id := x_rgpv_rec.id;
11707 END IF;
11708
11709 END IF; -- tax_owner
11710 */
11711
11712 -- Rule Group LAPACT
11713
11714 l_rgpv_rec := NULL;
11715 l_rgp_id := NULL;
11716 l_rgpv_rec.rgd_code := 'LAPACT';
11717 l_rgpv_rec.chr_id := p_chr_id;
11718 l_rgpv_rec.dnz_chr_id := p_chr_id;
11719 l_rgpv_rec.cle_id := NULL;
11720 l_rgpv_rec.rgp_type := 'KRG';
11721
11722 l_rulv_rec := NULL;
11723
11724 l_private_activity_bond_flag := p_header_rec.private_activity_bond_flag;
11725
11726 IF (l_private_activity_bond_flag IS NULL
11727 AND
11728 p_header_rec.template_number IS NOT NULL) THEN
11729 get_contract_rules(
11730 x_return_status => x_return_status,
11731 x_msg_count => x_msg_count,
11732 x_msg_data => x_msg_data,
11733 p_chr_id => p_template_id,
11734 p_cle_id => NULL,
11735 p_rgd_code => 'LAPACT',
11736 p_rule_code => 'LAPACT',
11737 x_rulv_tbl => l_rulv_tbl,
11738 x_rule_count => l_rule_count
11739 );
11740
11741 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11742 RAISE header_rule_failed;
11743 END IF;
11744
11745 IF (l_rule_count > 0) THEN
11746 l_private_activity_bond_flag := l_rulv_tbl(1).rule_information1;
11747 END IF;
11748 END IF;
11749
11750 IF (l_private_activity_bond_flag IS NOT NULL) THEN
11751 l_rulv_rec := NULL;
11752 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11753 l_rulv_rec.dnz_chr_id := p_chr_id;
11754 l_rulv_rec.rule_information1 := l_private_activity_bond_flag;
11755 l_rulv_rec.rule_information_category := 'LAPACT';
11756 l_rulv_rec.std_template_yn := 'N';
11757 l_rulv_rec.warn_yn := 'N';
11758 END IF;
11759
11760 create_rule_group_and_rule(
11761 x_return_status => x_return_status,
11762 x_msg_count => x_msg_count,
11763 x_msg_data => x_msg_data,
11764 p_rgp_id => l_rgp_id,
11765 p_rgpv_rec => l_rgpv_rec,
11766 p_rulv_rec => l_rulv_rec,
11767 x_rgpv_rec => x_rgpv_rec,
11768 x_rulv_rec => x_rulv_rec
11769 );
11770
11771 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11772 raise header_rule_failed;
11773 END IF;
11774
11775
11776 debug_message('------>Rule: LAPACT/LAPACT processed');
11777 --**************************
11778
11779 -- Rule Group AMLARL
11780
11781 l_rgpv_rec := NULL;
11782 l_rgp_id := NULL;
11783 l_rgpv_rec.rgd_code := 'AMLARL';
11784 l_rgpv_rec.chr_id := p_chr_id;
11785 l_rgpv_rec.dnz_chr_id := p_chr_id;
11786 l_rgpv_rec.cle_id := NULL;
11787 l_rgpv_rec.rgp_type := 'KRG';
11788
11789 l_rulv_rec := NULL;
11790
11791 l_floor_price_formula := p_header_rec.floor_price_formula;
11792 l_remkt_sale_price_formula := p_header_rec.remkt_sale_price_formula;
11793
11794 --debug_message('Floor Price Formula: '|| l_floor_price_formula);
11795 IF (l_floor_price_formula IS NULL
11796 OR
11797 l_remkt_sale_price_formula IS NULL
11798 AND
11799 p_header_rec.template_number IS NOT NULL) THEN
11800 get_contract_rules(
11801 x_return_status => x_return_status,
11802 x_msg_count => x_msg_count,
11803 x_msg_data => x_msg_data,
11804 p_chr_id => p_template_id,
11805 p_cle_id => NULL,
11806 p_rgd_code => 'AMLARL',
11807 p_rule_code => 'AMCFPR',
11808 x_rulv_tbl => l_rulv_tbl,
11809 x_rule_count => l_rule_count
11810 );
11811
11812 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11813 RAISE header_rule_failed;
11814 END IF;
11815
11816 IF (l_rule_count > 0) THEN
11817 l_floor_price_formula := NVL(l_floor_price_formula,l_rulv_tbl(1).rule_information1);
11818 l_remkt_sale_price_formula := NVL(l_remkt_sale_price_formula,l_rulv_tbl(1).rule_information2);
11819 END IF;
11820 END IF;
11821
11822 IF (l_floor_price_formula IS NOT NULL) THEN
11823 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11824 l_rulv_rec.dnz_chr_id := p_chr_id;
11825 l_rulv_rec.rule_information1 := l_floor_price_formula;
11826 l_rulv_rec.rule_information_category := 'AMCFPR';
11827 l_rulv_rec.std_template_yn := 'N';
11828 l_rulv_rec.warn_yn := 'N';
11829 END IF;
11830
11831 IF (l_remkt_sale_price_formula IS NOT NULL) THEN
11832 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11833 l_rulv_rec.dnz_chr_id := p_chr_id;
11834 l_rulv_rec.rule_information2 := l_remkt_sale_price_formula;
11835 l_rulv_rec.rule_information_category := 'AMCFPR';
11836 l_rulv_rec.std_template_yn := 'N';
11837 l_rulv_rec.warn_yn := 'N';
11838 END IF;
11839
11840 create_rule_group_and_rule(
11841 x_return_status => x_return_status,
11842 x_msg_count => x_msg_count,
11843 x_msg_data => x_msg_data,
11844 p_rgp_id => l_rgp_id,
11845 p_rgpv_rec => l_rgpv_rec,
11846 p_rulv_rec => l_rulv_rec,
11847 x_rgpv_rec => x_rgpv_rec,
11848 x_rulv_rec => x_rulv_rec
11849 );
11850
11851 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11852 raise header_rule_failed;
11853 END IF;
11854
11855 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11856 l_rgp_id := x_rgpv_rec.id;
11857 END IF;
11858
11859 debug_message('------>Rule: AMLARL/AMCFPR processed');
11860
11861 -- Rule Group AMREPQ
11862
11863 l_rgpv_rec := NULL;
11864 l_rgp_id := NULL;
11865 l_rgpv_rec.rgd_code := 'AMREPQ';
11866 l_rgpv_rec.chr_id := p_chr_id;
11867 l_rgpv_rec.dnz_chr_id := p_chr_id;
11868 l_rgpv_rec.cle_id := NULL;
11869 l_rgpv_rec.rgp_type := 'KRG';
11870
11871 l_rulv_rec := NULL;
11872
11873 l_repurchase_quote_option := p_header_rec.repurchase_quote_option;
11874 l_repurchase_quote_formula := p_header_rec.repurchase_quote_formula;
11875
11876 IF (l_repurchase_quote_option IS NULL
11877 OR
11878 l_repurchase_quote_formula IS NULL
11879 AND
11880 p_header_rec.template_number IS NOT NULL) THEN
11881 get_contract_rules(
11882 x_return_status => x_return_status,
11883 x_msg_count => x_msg_count,
11884 x_msg_data => x_msg_data,
11885 p_chr_id => p_template_id,
11886 p_cle_id => NULL,
11887 p_rgd_code => 'AMREPQ',
11888 p_rule_code => 'AMARQC',
11889 x_rulv_tbl => l_rulv_tbl,
11890 x_rule_count => l_rule_count
11891 );
11892
11893 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11894 RAISE header_rule_failed;
11895 END IF;
11896
11897 IF (l_rule_count > 0) THEN
11898 l_repurchase_quote_option := NVL(l_repurchase_quote_option,l_rulv_tbl(1).rule_information1);
11899 l_repurchase_quote_formula := NVL(l_repurchase_quote_formula,l_rulv_tbl(1).rule_information2);
11900 END IF;
11901 END IF;
11902
11903 IF (l_repurchase_quote_option IS NOT NULL) THEN
11904 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11905 l_rulv_rec.dnz_chr_id := p_chr_id;
11906 l_rulv_rec.rule_information1 := l_repurchase_quote_option;
11907 l_rulv_rec.rule_information_category := 'AMARQC';
11908 l_rulv_rec.std_template_yn := 'N';
11909 l_rulv_rec.warn_yn := 'N';
11910 END IF;
11911
11912 IF (l_repurchase_quote_formula IS NOT NULL) THEN
11913 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11914 l_rulv_rec.dnz_chr_id := p_chr_id;
11915 l_rulv_rec.rule_information2 := l_repurchase_quote_formula;
11916 l_rulv_rec.rule_information_category := 'AMARQC';
11917 l_rulv_rec.std_template_yn := 'N';
11918 l_rulv_rec.warn_yn := 'N';
11919 END IF;
11920
11921 create_rule_group_and_rule(
11922 x_return_status => x_return_status,
11923 x_msg_count => x_msg_count,
11924 x_msg_data => x_msg_data,
11925 p_rgp_id => l_rgp_id,
11926 p_rgpv_rec => l_rgpv_rec,
11927 p_rulv_rec => l_rulv_rec,
11928 x_rgpv_rec => x_rgpv_rec,
11929 x_rulv_rec => x_rulv_rec
11930 );
11931
11932 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11933 raise header_rule_failed;
11934 END IF;
11935
11936 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
11937 l_rgp_id := x_rgpv_rec.id;
11938 END IF;
11939 debug_message('------>Rule: AMREPQ/AMARQC processed');
11940 l_rulv_rec := NULL;
11941
11942 l_sale_price_option := p_header_rec.sale_price_option;
11943 l_sale_price_amount := TO_CHAR(p_header_rec.sale_price_amount);
11944 l_sale_price_formula := p_header_rec.sale_price_formula;
11945 l_sale_price_prorate := p_header_rec.sale_price_prorate;
11946
11947 IF (l_sale_price_option IS NULL
11948 OR
11949 l_sale_price_amount IS NULL
11950 OR
11951 l_sale_price_formula IS NULL
11952 OR
11953 l_sale_price_prorate IS NULL
11954 AND
11955 p_header_rec.template_number IS NOT NULL) THEN
11956 get_contract_rules(
11957 x_return_status => x_return_status,
11958 x_msg_count => x_msg_count,
11959 x_msg_data => x_msg_data,
11960 p_chr_id => p_template_id,
11961 p_cle_id => NULL,
11962 p_rgd_code => 'AMREPQ',
11963 p_rule_code => 'AMBSPR',
11964 x_rulv_tbl => l_rulv_tbl,
11965 x_rule_count => l_rule_count
11966 );
11967
11968 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
11969 RAISE header_rule_failed;
11970 END IF;
11971
11972 IF (l_rule_count > 0) THEN
11973 l_sale_price_option := NVL(l_sale_price_option,l_rulv_tbl(1).rule_information1);
11974 l_sale_price_amount := NVL(l_sale_price_amount,l_rulv_tbl(1).rule_information2);
11975 l_sale_price_formula := NVL(l_sale_price_formula,l_rulv_tbl(1).rule_information3);
11976 l_sale_price_prorate := NVL(l_sale_price_prorate,l_rulv_tbl(1).rule_information4);
11977 END IF;
11978 END IF;
11979
11980 IF (l_sale_price_option IS NOT NULL) THEN
11981 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11982 l_rulv_rec.dnz_chr_id := p_chr_id;
11983 l_rulv_rec.rule_information1 := l_sale_price_option;
11984 l_rulv_rec.rule_information_category := 'AMBSPR';
11985 l_rulv_rec.std_template_yn := 'N';
11986 l_rulv_rec.warn_yn := 'N';
11987 END IF;
11988
11989 IF (l_sale_price_amount IS NOT NULL) THEN
11990 l_rulv_rec.rgp_id := x_rgpv_rec.id;
11991 l_rulv_rec.dnz_chr_id := p_chr_id;
11992 l_rulv_rec.rule_information2 := l_sale_price_amount;
11993 l_rulv_rec.rule_information_category := 'AMBSPR';
11994 l_rulv_rec.std_template_yn := 'N';
11995 l_rulv_rec.warn_yn := 'N';
11996 END IF;
11997
11998 IF (l_sale_price_formula IS NOT NULL) THEN
11999 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12000 l_rulv_rec.dnz_chr_id := p_chr_id;
12001 l_rulv_rec.rule_information3 := l_sale_price_formula;
12002 l_rulv_rec.rule_information_category := 'AMBSPR';
12003 l_rulv_rec.std_template_yn := 'N';
12004 l_rulv_rec.warn_yn := 'N';
12005 END IF;
12006
12007 IF (l_sale_price_prorate IS NOT NULL) THEN
12008 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12009 l_rulv_rec.dnz_chr_id := p_chr_id;
12010 l_rulv_rec.rule_information4 := l_sale_price_prorate;
12011 l_rulv_rec.rule_information_category := 'AMBSPR';
12012 l_rulv_rec.std_template_yn := 'N';
12013 l_rulv_rec.warn_yn := 'N';
12014 END IF;
12015
12016 create_rule_group_and_rule(
12017 x_return_status => x_return_status,
12018 x_msg_count => x_msg_count,
12019 x_msg_data => x_msg_data,
12020 p_rgp_id => l_rgp_id,
12021 p_rgpv_rec => l_rgpv_rec,
12022 p_rulv_rec => l_rulv_rec,
12023 x_rgpv_rec => x_rgpv_rec,
12024 x_rulv_rec => x_rulv_rec
12025 );
12026
12027 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12028 raise header_rule_failed;
12029 END IF;
12030
12031 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12032 l_rgp_id := x_rgpv_rec.id;
12033 END IF;
12034
12035 debug_message('------>Rule: AMREPQ/AMBSPR processed');
12036 l_rulv_rec := NULL;
12037
12038 l_discount_rate_option := p_header_rec.discount_rate_option;
12039 l_discount_rate_amount := p_header_rec.discount_rate_amount;
12040 l_discount_rate_formula := p_header_rec.discount_rate_formula;
12041 l_discount_rate_prorate := p_header_rec.discount_rate_prorate;
12042
12043 IF (l_discount_rate_option IS NULL
12044 OR
12045 l_discount_rate_amount IS NULL
12046 OR
12047 l_discount_rate_formula IS NULL
12048 OR
12049 l_discount_rate_prorate IS NULL
12050 AND
12051 p_header_rec.template_number IS NOT NULL) THEN
12052 get_contract_rules(
12053 x_return_status => x_return_status,
12054 x_msg_count => x_msg_count,
12055 x_msg_data => x_msg_data,
12056 p_chr_id => p_template_id,
12057 p_cle_id => NULL,
12058 p_rgd_code => 'AMREPQ',
12059 p_rule_code => 'AMCQDR',
12060 x_rulv_tbl => l_rulv_tbl,
12061 x_rule_count => l_rule_count
12062 );
12063
12064 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12065 RAISE header_rule_failed;
12066 END IF;
12067
12068 IF (l_rule_count > 0) THEN
12069 l_discount_rate_option := NVL(l_discount_rate_option,l_rulv_tbl(1).rule_information1);
12070 l_discount_rate_amount := NVL(l_discount_rate_amount,l_rulv_tbl(1).rule_information2);
12071 l_discount_rate_formula := NVL(l_discount_rate_formula,l_rulv_tbl(1).rule_information3);
12072 l_discount_rate_prorate := NVL(l_discount_rate_prorate,l_rulv_tbl(1).rule_information4);
12073 END IF;
12074 END IF;
12075
12076 IF (l_discount_rate_option IS NOT NULL) THEN
12077 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12078 l_rulv_rec.dnz_chr_id := p_chr_id;
12079 l_rulv_rec.rule_information1 := l_discount_rate_option;
12080 l_rulv_rec.rule_information_category := 'AMCQDR';
12081 l_rulv_rec.std_template_yn := 'N';
12082 l_rulv_rec.warn_yn := 'N';
12083 END IF;
12084
12085 IF (l_discount_rate_amount IS NOT NULL) THEN
12086 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12087 l_rulv_rec.dnz_chr_id := p_chr_id;
12088 l_rulv_rec.rule_information2 := l_discount_rate_amount;
12089 l_rulv_rec.rule_information_category := 'AMCQDR';
12090 l_rulv_rec.std_template_yn := 'N';
12091 l_rulv_rec.warn_yn := 'N';
12092 END IF;
12093
12094 IF (l_discount_rate_formula IS NOT NULL) THEN
12095 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12096 l_rulv_rec.dnz_chr_id := p_chr_id;
12097 l_rulv_rec.rule_information3 := l_discount_rate_formula;
12098 l_rulv_rec.rule_information_category := 'AMCQDR';
12099 l_rulv_rec.std_template_yn := 'N';
12100 l_rulv_rec.warn_yn := 'N';
12101 END IF;
12102
12103 IF (l_discount_rate_prorate IS NOT NULL) THEN
12104 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12105 l_rulv_rec.dnz_chr_id := p_chr_id;
12106 l_rulv_rec.rule_information4 := l_discount_rate_prorate;
12107 l_rulv_rec.rule_information_category := 'AMCQDR';
12108 l_rulv_rec.std_template_yn := 'N';
12109 l_rulv_rec.warn_yn := 'N';
12110 END IF;
12111
12112 create_rule_group_and_rule(
12113 x_return_status => x_return_status,
12114 x_msg_count => x_msg_count,
12115 x_msg_data => x_msg_data,
12116 p_rgp_id => l_rgp_id,
12117 p_rgpv_rec => l_rgpv_rec,
12118 p_rulv_rec => l_rulv_rec,
12119 x_rgpv_rec => x_rgpv_rec,
12120 x_rulv_rec => x_rulv_rec
12121 );
12122
12123 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12124 raise header_rule_failed;
12125 END IF;
12126
12127 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12128 l_rgp_id := x_rgpv_rec.id;
12129 END IF;
12130 debug_message('------>Rule: AMREPQ/AMCQDR processed');
12131 l_rulv_rec := NULL;
12132
12133 l_quote_fee_option := p_header_rec.quote_fee_option;
12134 l_quote_fee_amount := TO_CHAR(p_header_rec.quote_fee_amount);
12135 l_quote_fee_formula := p_header_rec.quote_fee_formula;
12136 l_quote_fee_prorate := p_header_rec.quote_fee_prorate;
12137
12138 IF (l_quote_fee_option IS NULL
12139 OR
12140 l_quote_fee_amount IS NULL
12141 OR
12142 l_quote_fee_formula IS NULL
12143 OR
12144 l_quote_fee_prorate IS NULL
12145 AND
12146 p_header_rec.template_number IS NOT NULL) THEN
12147 get_contract_rules(
12148 x_return_status => x_return_status,
12149 x_msg_count => x_msg_count,
12150 x_msg_data => x_msg_data,
12151 p_chr_id => p_template_id,
12152 p_cle_id => NULL,
12153 p_rgd_code => 'AMREPQ',
12154 p_rule_code => 'AMCQFE',
12155 x_rulv_tbl => l_rulv_tbl,
12156 x_rule_count => l_rule_count
12157 );
12158
12159 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12160 RAISE header_rule_failed;
12161 END IF;
12162
12163 IF (l_rule_count > 0) THEN
12164 l_quote_fee_option := NVL(l_quote_fee_option,l_rulv_tbl(1).rule_information1);
12165 l_quote_fee_amount := NVL(l_quote_fee_amount,l_rulv_tbl(1).rule_information2);
12166 l_quote_fee_formula := NVL(l_quote_fee_formula,l_rulv_tbl(1).rule_information3);
12167 l_quote_fee_prorate := NVL(l_quote_fee_prorate,l_rulv_tbl(1).rule_information4);
12168 END IF;
12169 END IF;
12170
12171 IF (l_quote_fee_option IS NOT NULL) THEN
12172 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12173 l_rulv_rec.dnz_chr_id := p_chr_id;
12174 l_rulv_rec.rule_information1 := l_quote_fee_option;
12175 l_rulv_rec.rule_information_category := 'AMCQFE';
12176 l_rulv_rec.std_template_yn := 'N';
12177 l_rulv_rec.warn_yn := 'N';
12178 END IF;
12179
12180 IF (l_quote_fee_amount IS NOT NULL) THEN
12181 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12182 l_rulv_rec.dnz_chr_id := p_chr_id;
12183 l_rulv_rec.rule_information2 := l_quote_fee_amount;
12184 l_rulv_rec.rule_information_category := 'AMCQFE';
12185 l_rulv_rec.std_template_yn := 'N';
12186 l_rulv_rec.warn_yn := 'N';
12187 END IF;
12188
12189 IF (l_quote_fee_formula IS NOT NULL) THEN
12190 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12191 l_rulv_rec.dnz_chr_id := p_chr_id;
12192 l_rulv_rec.rule_information3 := l_quote_fee_formula;
12193 l_rulv_rec.rule_information_category := 'AMCQFE';
12194 l_rulv_rec.std_template_yn := 'N';
12195 l_rulv_rec.warn_yn := 'N';
12196 END IF;
12197
12198 IF (l_quote_fee_prorate IS NOT NULL) THEN
12199 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12200 l_rulv_rec.dnz_chr_id := p_chr_id;
12201 l_rulv_rec.rule_information4 := l_quote_fee_prorate;
12202 l_rulv_rec.rule_information_category := 'AMCQFE';
12203 l_rulv_rec.std_template_yn := 'N';
12204 l_rulv_rec.warn_yn := 'N';
12205 END IF;
12206
12207 create_rule_group_and_rule(
12208 x_return_status => x_return_status,
12209 x_msg_count => x_msg_count,
12210 x_msg_data => x_msg_data,
12211 p_rgp_id => l_rgp_id,
12212 p_rgpv_rec => l_rgpv_rec,
12213 p_rulv_rec => l_rulv_rec,
12214 x_rgpv_rec => x_rgpv_rec,
12215 x_rulv_rec => x_rulv_rec
12216 );
12217
12218 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12219 raise header_rule_failed;
12220 END IF;
12221
12222 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12223 l_rgp_id := x_rgpv_rec.id;
12224 END IF;
12225
12226 debug_message('------>Rule: AMREPQ/AMCQFE processed');
12227 -- Rule Group AMTEOC
12228
12229 l_rgpv_rec := NULL;
12230 l_rgp_id := NULL;
12231 l_rgpv_rec.rgd_code := 'AMTEOC';
12232 l_rgpv_rec.chr_id := p_chr_id;
12233 l_rgpv_rec.dnz_chr_id := p_chr_id;
12234 l_rgpv_rec.cle_id := NULL;
12235 l_rgpv_rec.rgp_type := 'KRG';
12236
12237 l_rulv_rec := NULL;
12238
12239 l_ert_purchase_opt := p_header_rec.ert_purchase_opt;
12240 l_ert_purchase_opt_type := p_header_rec.ert_purchase_opt_type;
12241 l_ert_purchase_opt_amount := TO_CHAR(p_header_rec.ert_purchase_opt_amount);
12242 l_ert_purchase_opt_formula := p_header_rec.ert_purchase_opt_formula;
12243 l_ert_purchase_opt_prorate := p_header_rec.ert_purchase_opt_prorate;
12244 l_ert_purchase_opt_max_opt := p_header_rec.ert_purchase_opt_max_opt;
12245 l_ert_purchase_opt_max_amt := TO_CHAR(p_header_rec.ert_purchase_opt_max_amt);
12246 l_ert_purchase_opt_max_formula := p_header_rec.ert_purchase_opt_max_formula;
12247 l_ert_purchase_opt_min_opt := p_header_rec.ert_purchase_opt_min_opt;
12248 l_ert_purchase_opt_min_amt := TO_CHAR(p_header_rec.ert_purchase_opt_min_amt);
12249 l_ert_purchase_opt_min_formula := p_header_rec.ert_purchase_opt_min_formula;
12250
12251 IF (l_ert_purchase_opt IS NULL
12252 OR
12253 l_ert_purchase_opt_type IS NULL
12254 OR
12255 l_ert_purchase_opt_amount IS NULL
12256 OR
12257 l_ert_purchase_opt_formula IS NULL
12258 OR
12259 l_ert_purchase_opt_prorate IS NULL
12260 OR
12261 l_ert_purchase_opt_max_opt IS NULL
12262 OR
12263 l_ert_purchase_opt_max_amt IS NULL
12264 OR
12265 l_ert_purchase_opt_max_formula IS NULL
12266 OR
12267 l_ert_purchase_opt_min_opt IS NULL
12268 OR
12269 l_ert_purchase_opt_min_amt IS NULL
12270 OR
12271 l_ert_purchase_opt_min_formula IS NULL
12272 AND
12273 p_header_rec.template_number IS NOT NULL) THEN
12274 get_contract_rules(
12275 x_return_status => x_return_status,
12276 x_msg_count => x_msg_count,
12277 x_msg_data => x_msg_data,
12278 p_chr_id => p_template_id,
12279 p_cle_id => NULL,
12280 p_rgd_code => 'AMTEOC',
12281 p_rule_code => 'AMBPOC',
12282 x_rulv_tbl => l_rulv_tbl,
12283 x_rule_count => l_rule_count
12284 );
12285
12286 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12287 RAISE header_rule_failed;
12288 END IF;
12289
12290 IF (l_rule_count > 0) THEN
12291 l_ert_purchase_opt := NVL(l_ert_purchase_opt,l_rulv_tbl(1).rule_information1);
12292 l_ert_purchase_opt_type := NVL(l_ert_purchase_opt_type,l_rulv_tbl(1).rule_information11);
12293 l_ert_purchase_opt_amount := NVL(l_ert_purchase_opt_amount,l_rulv_tbl(1).rule_information2);
12294 l_ert_purchase_opt_formula := NVL(l_ert_purchase_opt_formula,l_rulv_tbl(1).rule_information3);
12295 l_ert_purchase_opt_prorate := NVL(l_ert_purchase_opt_prorate,l_rulv_tbl(1).rule_information4);
12296 l_ert_purchase_opt_max_opt := NVL(l_ert_purchase_opt_max_opt,l_rulv_tbl(1).rule_information5);
12297 l_ert_purchase_opt_max_amt := NVL(l_ert_purchase_opt_max_amt,l_rulv_tbl(1).rule_information6);
12298 l_ert_purchase_opt_max_formula := NVL(l_ert_purchase_opt_max_formula,l_rulv_tbl(1).rule_information7);
12299 l_ert_purchase_opt_min_opt := NVL(l_ert_purchase_opt_min_opt,l_rulv_tbl(1).rule_information8);
12300 l_ert_purchase_opt_min_amt := NVL(l_ert_purchase_opt_min_amt,l_rulv_tbl(1).rule_information9);
12301 l_ert_purchase_opt_min_formula := NVL(l_ert_purchase_opt_min_formula,l_rulv_tbl(1).rule_information10);
12302 END IF;
12303 END IF;
12304
12305 IF (l_ert_purchase_opt IS NOT NULL) THEN
12306 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12307 l_rulv_rec.dnz_chr_id := p_chr_id;
12308 l_rulv_rec.rule_information1 := l_ert_purchase_opt;
12309 l_rulv_rec.rule_information_category := 'AMBPOC';
12310 l_rulv_rec.std_template_yn := 'N';
12311 l_rulv_rec.warn_yn := 'N';
12312 END IF;
12313
12314 IF (l_ert_purchase_opt_type IS NOT NULL) THEN
12315 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12316 l_rulv_rec.dnz_chr_id := p_chr_id;
12317 l_rulv_rec.rule_information11 := l_ert_purchase_opt_type;
12318 l_rulv_rec.rule_information_category := 'AMBPOC';
12319 l_rulv_rec.std_template_yn := 'N';
12320 l_rulv_rec.warn_yn := 'N';
12321 END IF;
12322
12323 IF (l_ert_purchase_opt_amount IS NOT NULL) THEN
12324 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12325 l_rulv_rec.dnz_chr_id := p_chr_id;
12326 l_rulv_rec.rule_information2 := l_ert_purchase_opt_amount;
12327 l_rulv_rec.rule_information_category := 'AMBPOC';
12328 l_rulv_rec.std_template_yn := 'N';
12329 l_rulv_rec.warn_yn := 'N';
12330 END IF;
12331
12332 IF (l_ert_purchase_opt_formula IS NOT NULL) THEN
12333 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12334 l_rulv_rec.dnz_chr_id := p_chr_id;
12335 l_rulv_rec.rule_information3 := l_ert_purchase_opt_formula;
12336 l_rulv_rec.rule_information_category := 'AMBPOC';
12337 l_rulv_rec.std_template_yn := 'N';
12338 l_rulv_rec.warn_yn := 'N';
12339 END IF;
12340
12341 IF (l_ert_purchase_opt_prorate IS NOT NULL) THEN
12342 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12343 l_rulv_rec.dnz_chr_id := p_chr_id;
12344 l_rulv_rec.rule_information4 := l_ert_purchase_opt_prorate;
12345 l_rulv_rec.rule_information_category := 'AMBPOC';
12346 l_rulv_rec.std_template_yn := 'N';
12347 l_rulv_rec.warn_yn := 'N';
12348 END IF;
12349
12350 IF (l_ert_purchase_opt_max_opt IS NOT NULL) THEN
12351 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12352 l_rulv_rec.dnz_chr_id := p_chr_id;
12353 l_rulv_rec.rule_information5 := l_ert_purchase_opt_max_opt;
12354 l_rulv_rec.rule_information_category := 'AMBPOC';
12355 l_rulv_rec.std_template_yn := 'N';
12356 l_rulv_rec.warn_yn := 'N';
12357 END IF;
12358
12359 IF (l_ert_purchase_opt_max_amt IS NOT NULL) THEN
12360 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12361 l_rulv_rec.dnz_chr_id := p_chr_id;
12362 l_rulv_rec.rule_information6 := l_ert_purchase_opt_max_amt;
12363 l_rulv_rec.rule_information_category := 'AMBPOC';
12364 l_rulv_rec.std_template_yn := 'N';
12365 l_rulv_rec.warn_yn := 'N';
12366 END IF;
12367
12368 IF (l_ert_purchase_opt_max_formula IS NOT NULL) THEN
12369 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12370 l_rulv_rec.dnz_chr_id := p_chr_id;
12371 l_rulv_rec.rule_information7 := l_ert_purchase_opt_max_formula;
12372 l_rulv_rec.rule_information_category := 'AMBPOC';
12373 l_rulv_rec.std_template_yn := 'N';
12374 l_rulv_rec.warn_yn := 'N';
12375 END IF;
12376
12377 IF (l_ert_purchase_opt_min_opt IS NOT NULL) THEN
12378 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12379 l_rulv_rec.dnz_chr_id := p_chr_id;
12380 l_rulv_rec.rule_information8 := l_ert_purchase_opt_min_opt;
12381 l_rulv_rec.rule_information_category := 'AMBPOC';
12382 l_rulv_rec.std_template_yn := 'N';
12383 l_rulv_rec.warn_yn := 'N';
12384 END IF;
12385
12386 IF (l_ert_purchase_opt_min_amt IS NOT NULL) THEN
12387 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12388 l_rulv_rec.dnz_chr_id := p_chr_id;
12389 l_rulv_rec.rule_information9 := l_ert_purchase_opt_min_amt;
12390 l_rulv_rec.rule_information_category := 'AMBPOC';
12391 l_rulv_rec.std_template_yn := 'N';
12392 l_rulv_rec.warn_yn := 'N';
12393 END IF;
12394
12395 IF (l_ert_purchase_opt_min_formula IS NOT NULL) THEN
12396 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12397 l_rulv_rec.dnz_chr_id := p_chr_id;
12398 l_rulv_rec.rule_information10 := l_ert_purchase_opt_min_formula;
12399 l_rulv_rec.rule_information_category := 'AMBPOC';
12400 l_rulv_rec.std_template_yn := 'N';
12401 l_rulv_rec.warn_yn := 'N';
12402 END IF;
12403
12404 create_rule_group_and_rule(
12405 x_return_status => x_return_status,
12406 x_msg_count => x_msg_count,
12407 x_msg_data => x_msg_data,
12408 p_rgp_id => l_rgp_id,
12409 p_rgpv_rec => l_rgpv_rec,
12410 p_rulv_rec => l_rulv_rec,
12411 x_rgpv_rec => x_rgpv_rec,
12412 x_rulv_rec => x_rulv_rec
12413 );
12414
12415 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12416 raise header_rule_failed;
12417 END IF;
12418
12419 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12420 l_rgp_id := x_rgpv_rec.id;
12421 END IF;
12422
12423 debug_message('------>Rule: AMTEOC/AMBPOC processed');
12424 -- Rule Group AMTFOC
12425
12426 l_rgpv_rec := NULL;
12427 l_rgp_id := NULL;
12428 l_rgpv_rec.rgd_code := 'AMTFOC';
12429 l_rgpv_rec.chr_id := p_chr_id;
12430 l_rgpv_rec.dnz_chr_id := p_chr_id;
12431 l_rgpv_rec.cle_id := NULL;
12432 l_rgpv_rec.rgp_type := 'KRG';
12433
12434 l_rulv_rec := NULL;
12435
12436 l_eot_purchase_opt := p_header_rec.eot_purchase_opt;
12437 l_eot_purchase_opt_type := p_header_rec.eot_purchase_opt_type;
12438 l_eot_purchase_opt_amount := TO_CHAR(p_header_rec.eot_purchase_opt_amount);
12439 l_eot_purchase_opt_formula := p_header_rec.eot_purchase_opt_formula;
12440 l_eot_purchase_opt_prorate := p_header_rec.eot_purchase_opt_prorate;
12441 l_eot_purchase_opt_max_opt := p_header_rec.eot_purchase_opt_max_opt;
12442 l_eot_purchase_opt_max_amt := TO_CHAR(p_header_rec.eot_purchase_opt_max_amt);
12443 l_eot_purchase_opt_max_formula := p_header_rec.eot_purchase_opt_max_formula;
12444 l_eot_purchase_opt_min_opt := p_header_rec.eot_purchase_opt_min_opt;
12445 l_eot_purchase_opt_min_amt := TO_CHAR(p_header_rec.eot_purchase_opt_min_amt);
12446 l_eot_purchase_opt_min_formula := p_header_rec.eot_purchase_opt_min_formula;
12447
12448 IF (l_eot_purchase_opt IS NULL
12449 OR
12450 l_eot_purchase_opt_type IS NULL
12451 OR
12452 l_eot_purchase_opt_amount IS NULL
12453 OR
12454 l_eot_purchase_opt_formula IS NULL
12455 OR
12456 l_eot_purchase_opt_prorate IS NULL
12457 OR
12458 l_eot_purchase_opt_max_opt IS NULL
12459 OR
12460 l_eot_purchase_opt_max_amt IS NULL
12461 OR
12462 l_eot_purchase_opt_max_formula IS NULL
12463 OR
12464 l_eot_purchase_opt_min_opt IS NULL
12465 OR
12466 l_eot_purchase_opt_min_amt IS NULL
12467 OR
12468 l_eot_purchase_opt_min_formula IS NULL
12469 AND
12470 p_header_rec.template_number IS NOT NULL) THEN
12471 get_contract_rules(
12472 x_return_status => x_return_status,
12473 x_msg_count => x_msg_count,
12474 x_msg_data => x_msg_data,
12475 p_chr_id => p_template_id,
12476 p_cle_id => NULL,
12477 p_rgd_code => 'AMTFOC',
12478 p_rule_code => 'AMBPOC',
12479 x_rulv_tbl => l_rulv_tbl,
12480 x_rule_count => l_rule_count
12481 );
12482
12483 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12484 RAISE header_rule_failed;
12485 END IF;
12486
12487 IF (l_rule_count > 0) THEN
12488 l_eot_purchase_opt := NVL(l_eot_purchase_opt,l_rulv_tbl(1).rule_information1);
12489 l_eot_purchase_opt_type := NVL(l_eot_purchase_opt_type,l_rulv_tbl(1).rule_information11);
12490 l_eot_purchase_opt_amount := NVL(l_eot_purchase_opt_amount,l_rulv_tbl(1).rule_information2);
12491 l_eot_purchase_opt_formula := NVL(l_eot_purchase_opt_formula,l_rulv_tbl(1).rule_information3);
12492 l_eot_purchase_opt_prorate := NVL(l_eot_purchase_opt_prorate,l_rulv_tbl(1).rule_information4);
12493 l_eot_purchase_opt_max_opt := NVL(l_eot_purchase_opt_max_opt,l_rulv_tbl(1).rule_information5);
12494 l_eot_purchase_opt_max_amt := NVL(l_eot_purchase_opt_max_amt,l_rulv_tbl(1).rule_information6);
12495 l_eot_purchase_opt_max_formula := NVL(l_eot_purchase_opt_max_formula,l_rulv_tbl(1).rule_information7);
12496 l_eot_purchase_opt_min_opt := NVL(l_eot_purchase_opt_min_opt,l_rulv_tbl(1).rule_information8);
12497 l_eot_purchase_opt_min_amt := NVL(l_eot_purchase_opt_min_amt,l_rulv_tbl(1).rule_information9);
12498 l_eot_purchase_opt_min_formula := NVL(l_eot_purchase_opt_min_formula,l_rulv_tbl(1).rule_information10);
12499 END IF;
12500 END IF;
12501
12502 IF (l_eot_purchase_opt IS NOT NULL) THEN
12503 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12504 l_rulv_rec.dnz_chr_id := p_chr_id;
12505 l_rulv_rec.rule_information1 := l_eot_purchase_opt;
12506 l_rulv_rec.rule_information_category := 'AMBPOC';
12507 l_rulv_rec.std_template_yn := 'N';
12508 l_rulv_rec.warn_yn := 'N';
12509 END IF;
12510
12511 IF (l_eot_purchase_opt_type IS NOT NULL) THEN
12512 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12513 l_rulv_rec.dnz_chr_id := p_chr_id;
12514 l_rulv_rec.rule_information11 := l_eot_purchase_opt_type;
12515 l_rulv_rec.rule_information_category := 'AMBPOC';
12516 l_rulv_rec.std_template_yn := 'N';
12517 l_rulv_rec.warn_yn := 'N';
12518 END IF;
12519
12520 IF (l_eot_purchase_opt_amount IS NOT NULL) THEN
12521 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12522 l_rulv_rec.dnz_chr_id := p_chr_id;
12523 l_rulv_rec.rule_information2 := l_eot_purchase_opt_amount;
12524 l_rulv_rec.rule_information_category := 'AMBPOC';
12525 l_rulv_rec.std_template_yn := 'N';
12526 l_rulv_rec.warn_yn := 'N';
12527 END IF;
12528
12529 IF (l_eot_purchase_opt_formula IS NOT NULL) THEN
12530 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12531 l_rulv_rec.dnz_chr_id := p_chr_id;
12532 l_rulv_rec.rule_information3 := l_eot_purchase_opt_formula;
12533 l_rulv_rec.rule_information_category := 'AMBPOC';
12534 l_rulv_rec.std_template_yn := 'N';
12535 l_rulv_rec.warn_yn := 'N';
12536 END IF;
12537
12538 IF (l_eot_purchase_opt_prorate IS NOT NULL) THEN
12539 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12540 l_rulv_rec.dnz_chr_id := p_chr_id;
12541 l_rulv_rec.rule_information4 := l_eot_purchase_opt_prorate;
12542 l_rulv_rec.rule_information_category := 'AMBPOC';
12543 l_rulv_rec.std_template_yn := 'N';
12544 l_rulv_rec.warn_yn := 'N';
12545 END IF;
12546
12547 IF (l_eot_purchase_opt_max_opt IS NOT NULL) THEN
12548 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12549 l_rulv_rec.dnz_chr_id := p_chr_id;
12550 l_rulv_rec.rule_information5 := l_eot_purchase_opt_max_opt;
12551 l_rulv_rec.rule_information_category := 'AMBPOC';
12552 l_rulv_rec.std_template_yn := 'N';
12553 l_rulv_rec.warn_yn := 'N';
12554 END IF;
12555
12556 IF (l_eot_purchase_opt_max_amt IS NOT NULL) THEN
12557 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12558 l_rulv_rec.dnz_chr_id := p_chr_id;
12559 l_rulv_rec.rule_information6 := l_eot_purchase_opt_max_amt;
12560 l_rulv_rec.rule_information_category := 'AMBPOC';
12561 l_rulv_rec.std_template_yn := 'N';
12562 l_rulv_rec.warn_yn := 'N';
12563 END IF;
12564
12565 IF (l_eot_purchase_opt_max_formula IS NOT NULL) THEN
12566 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12567 l_rulv_rec.dnz_chr_id := p_chr_id;
12568 l_rulv_rec.rule_information7 := l_eot_purchase_opt_max_formula;
12569 l_rulv_rec.rule_information_category := 'AMBPOC';
12570 l_rulv_rec.std_template_yn := 'N';
12571 l_rulv_rec.warn_yn := 'N';
12572 END IF;
12573
12574 IF (l_eot_purchase_opt_min_opt IS NOT NULL) THEN
12575 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12576 l_rulv_rec.dnz_chr_id := p_chr_id;
12577 l_rulv_rec.rule_information8 := l_eot_purchase_opt_min_opt;
12578 l_rulv_rec.rule_information_category := 'AMBPOC';
12579 l_rulv_rec.std_template_yn := 'N';
12580 l_rulv_rec.warn_yn := 'N';
12581 END IF;
12582
12583 IF (l_eot_purchase_opt_min_amt IS NOT NULL) THEN
12584 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12585 l_rulv_rec.dnz_chr_id := p_chr_id;
12586 l_rulv_rec.rule_information9 := l_eot_purchase_opt_min_amt;
12587 l_rulv_rec.rule_information_category := 'AMBPOC';
12588 l_rulv_rec.std_template_yn := 'N';
12589 l_rulv_rec.warn_yn := 'N';
12590 END IF;
12591
12592 IF (l_eot_purchase_opt_min_formula IS NOT NULL) THEN
12593 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12594 l_rulv_rec.dnz_chr_id := p_chr_id;
12595 l_rulv_rec.rule_information10 := l_eot_purchase_opt_min_formula;
12596 l_rulv_rec.rule_information_category := 'AMBPOC';
12597 l_rulv_rec.std_template_yn := 'N';
12598 l_rulv_rec.warn_yn := 'N';
12599 END IF;
12600
12601 create_rule_group_and_rule(
12602 x_return_status => x_return_status,
12603 x_msg_count => x_msg_count,
12604 x_msg_data => x_msg_data,
12605 p_rgp_id => l_rgp_id,
12606 p_rgpv_rec => l_rgpv_rec,
12607 p_rulv_rec => l_rulv_rec,
12608 x_rgpv_rec => x_rgpv_rec,
12609 x_rulv_rec => x_rulv_rec
12610 );
12611
12612 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12613 raise header_rule_failed;
12614 END IF;
12615
12616 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12617 l_rgp_id := x_rgpv_rec.id;
12618 END IF;
12619
12620 debug_message('------>Rule: AMTFOC/AMBPOC processed');
12621
12622 l_rulv_rec := NULL;
12623
12624 l_eot_auto_proc_purchase_opt := p_header_rec.eot_auto_proc_purchase_opt;
12625
12626 IF (l_eot_auto_proc_purchase_opt IS NULL
12627 AND
12628 p_header_rec.template_number IS NOT NULL) THEN
12629 get_contract_rules(
12630 x_return_status => x_return_status,
12631 x_msg_count => x_msg_count,
12632 x_msg_data => x_msg_data,
12633 p_chr_id => p_template_id,
12634 p_cle_id => NULL,
12635 p_rgd_code => 'AMTFOC',
12636 p_rule_code => 'AMTINV',
12637 x_rulv_tbl => l_rulv_tbl,
12638 x_rule_count => l_rule_count
12639 );
12640
12641 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12642 RAISE header_rule_failed;
12643 END IF;
12644
12645 IF (l_rule_count > 0) THEN
12646 l_eot_auto_proc_purchase_opt := NVL(l_eot_auto_proc_purchase_opt,l_rulv_tbl(1).rule_information1);
12647 END IF;
12648 END IF;
12649
12650 IF (l_eot_auto_proc_purchase_opt IS NOT NULL) THEN
12651 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12652 l_rulv_rec.dnz_chr_id := p_chr_id;
12653 l_rulv_rec.rule_information1 := l_eot_auto_proc_purchase_opt;
12654 l_rulv_rec.rule_information_category := 'AMTINV';
12655 l_rulv_rec.std_template_yn := 'N';
12656 l_rulv_rec.warn_yn := 'N';
12657 END IF;
12658
12659 create_rule_group_and_rule(
12660 x_return_status => x_return_status,
12661 x_msg_count => x_msg_count,
12662 x_msg_data => x_msg_data,
12663 p_rgp_id => l_rgp_id,
12664 p_rgpv_rec => l_rgpv_rec,
12665 p_rulv_rec => l_rulv_rec,
12666 x_rgpv_rec => x_rgpv_rec,
12667 x_rulv_rec => x_rulv_rec
12668 );
12669
12670 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12671 raise header_rule_failed;
12672 END IF;
12673
12674 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12675 l_rgp_id := x_rgpv_rec.id;
12676 END IF;
12677
12678 debug_message('------>Rule: AMTFOC/AMTINV processed');
12679
12680 -- Rule Group AMTQPR
12681
12682 l_rgpv_rec := NULL;
12683 l_rgp_id := NULL;
12684 l_rgpv_rec.rgd_code := 'AMTQPR';
12685 l_rgpv_rec.chr_id := p_chr_id;
12686 l_rgpv_rec.dnz_chr_id := p_chr_id;
12687 l_rgpv_rec.cle_id := NULL;
12688 l_rgpv_rec.rgp_type := 'KRG';
12689
12690 l_rulv_rec := NULL;
12691
12692 -- cklee bug# 3440442 bug# 3440442
12693 IF (NVL(p_header_rec.tqp_erl_termination_alwd_flag,'N') NOT IN ('Y','N')) THEN
12694 okl_api.set_message(
12695 G_APP_NAME,
12696 G_INVALID_VALUE,
12697 'CONTRACT_NUM',
12698 p_header_rec.contract_number_old,
12699 'COL_NAME',
12700 'TQP_ERL_TERMINATION_ALWD_FLAG',
12701 'COL_VALUE',
12702 p_header_rec.tqp_erl_termination_alwd_flag
12703 );
12704
12705 x_return_status := OKL_API.G_RET_STS_ERROR;
12706
12707 raise header_rule_failed;
12708 END IF;
12709 -- cklee bug# 3440442 bug# 3440442
12710
12711 l_tqp_erl_term_alwd_flag := p_header_rec.tqp_erl_termination_alwd_flag;
12712
12713 IF (l_tqp_erl_term_alwd_flag IS NULL
12714 AND
12715 p_header_rec.template_number IS NOT NULL) THEN
12716 get_contract_rules(
12717 x_return_status => x_return_status,
12718 x_msg_count => x_msg_count,
12719 x_msg_data => x_msg_data,
12720 p_chr_id => p_template_id,
12721 p_cle_id => NULL,
12722 p_rgd_code => 'AMTQPR',
12723 p_rule_code => 'AMCTTA',
12724 x_rulv_tbl => l_rulv_tbl,
12725 x_rule_count => l_rule_count
12726 );
12727
12728 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12729 RAISE header_rule_failed;
12730 END IF;
12731
12732 IF (l_rule_count > 0) THEN
12733 l_tqp_erl_term_alwd_flag := NVL(l_tqp_erl_term_alwd_flag,l_rulv_tbl(1).rule_information1);
12734 END IF;
12735 END IF;
12736
12737 IF (l_tqp_erl_term_alwd_flag IS NOT NULL) THEN
12738 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12739 l_rulv_rec.dnz_chr_id := p_chr_id;
12740 l_rulv_rec.rule_information1 := l_tqp_erl_term_alwd_flag;
12741 l_rulv_rec.rule_information_category := 'AMCTTA';
12742 l_rulv_rec.std_template_yn := 'N';
12743 l_rulv_rec.warn_yn := 'N';
12744 END IF;
12745
12746 create_rule_group_and_rule(
12747 x_return_status => x_return_status,
12748 x_msg_count => x_msg_count,
12749 x_msg_data => x_msg_data,
12750 p_rgp_id => l_rgp_id,
12751 p_rgpv_rec => l_rgpv_rec,
12752 p_rulv_rec => l_rulv_rec,
12753 x_rgpv_rec => x_rgpv_rec,
12754 x_rulv_rec => x_rulv_rec
12755 );
12756
12757 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12758 raise header_rule_failed;
12759 END IF;
12760
12761 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12762 l_rgp_id := x_rgpv_rec.id;
12763 END IF;
12764 debug_message('------>Rule: AMTQPR/AMCTTA processed');
12765 l_rulv_rec := NULL;
12766
12767 l_tqp_prt_term_alwd_flag := p_header_rec.tqp_prt_termination_alwd_flag;
12768
12769 IF (l_tqp_prt_term_alwd_flag IS NULL
12770 AND
12771 p_header_rec.template_number IS NOT NULL) THEN
12772 get_contract_rules(
12773 x_return_status => x_return_status,
12774 x_msg_count => x_msg_count,
12775 x_msg_data => x_msg_data,
12776 p_chr_id => p_template_id,
12777 p_cle_id => NULL,
12778 p_rgd_code => 'AMTQPR',
12779 p_rule_code => 'AMPTQA',
12780 x_rulv_tbl => l_rulv_tbl,
12781 x_rule_count => l_rule_count
12782 );
12783
12784 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12785 RAISE header_rule_failed;
12786 END IF;
12787
12788 IF (l_rule_count > 0) THEN
12789 l_tqp_prt_term_alwd_flag := NVL(l_tqp_prt_term_alwd_flag,l_rulv_tbl(1).rule_information1);
12790 END IF;
12791 END IF;
12792
12793 IF (l_tqp_prt_term_alwd_flag IS NOT NULL) THEN
12794 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12795 l_rulv_rec.dnz_chr_id := p_chr_id;
12796 l_rulv_rec.rule_information1 := l_tqp_prt_term_alwd_flag;
12797 l_rulv_rec.rule_information_category := 'AMPTQA';
12798 l_rulv_rec.std_template_yn := 'N';
12799 l_rulv_rec.warn_yn := 'N';
12800 END IF;
12801
12802 create_rule_group_and_rule(
12803 x_return_status => x_return_status,
12804 x_msg_count => x_msg_count,
12805 x_msg_data => x_msg_data,
12806 p_rgp_id => l_rgp_id,
12807 p_rgpv_rec => l_rgpv_rec,
12808 p_rulv_rec => l_rulv_rec,
12809 x_rgpv_rec => x_rgpv_rec,
12810 x_rulv_rec => x_rulv_rec
12811 );
12812
12813 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12814 raise header_rule_failed;
12815 END IF;
12816
12817 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12818 l_rgp_id := x_rgpv_rec.id;
12819 END IF;
12820
12821 debug_message('------>Rule: AMTQPR/AMPTQA processed');
12822 l_rulv_rec := NULL;
12823
12824 l_quote_effective_days := TO_CHAR(p_header_rec.quote_effective_days);
12825 l_quote_eff_max_days := TO_CHAR(p_header_rec.quote_eff_max_days);
12826
12827 IF (l_quote_effective_days IS NULL
12828 OR
12829 l_quote_eff_max_days IS NULL
12830 AND
12831 p_header_rec.template_number IS NOT NULL) THEN
12832 get_contract_rules(
12833 x_return_status => x_return_status,
12834 x_msg_count => x_msg_count,
12835 x_msg_data => x_msg_data,
12836 p_chr_id => p_template_id,
12837 p_cle_id => NULL,
12838 p_rgd_code => 'AMTQPR',
12839 p_rule_code => 'AMQTEF',
12840 x_rulv_tbl => l_rulv_tbl,
12841 x_rule_count => l_rule_count
12842 );
12843
12844 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12845 RAISE header_rule_failed;
12846 END IF;
12847
12848 IF (l_rule_count > 0) THEN
12849 l_quote_effective_days := NVL(l_quote_effective_days,l_rulv_tbl(1).rule_information1);
12850 l_quote_eff_max_days := NVL(l_quote_eff_max_days, l_rulv_tbl(1).rule_information2);
12851 END IF;
12852 END IF;
12853
12854 IF (l_quote_effective_days IS NOT NULL) THEN
12855 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12856 l_rulv_rec.dnz_chr_id := p_chr_id;
12857 l_rulv_rec.rule_information1 := l_quote_effective_days;
12858 l_rulv_rec.rule_information_category := 'AMQTEF';
12859 l_rulv_rec.std_template_yn := 'N';
12860 l_rulv_rec.warn_yn := 'N';
12861 END IF;
12862
12863 IF (l_quote_eff_max_days IS NOT NULL) THEN
12864 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12865 l_rulv_rec.dnz_chr_id := p_chr_id;
12866 l_rulv_rec.rule_information2 := l_quote_eff_max_days;
12867 l_rulv_rec.rule_information_category := 'AMQTEF';
12868 l_rulv_rec.std_template_yn := 'N';
12869 l_rulv_rec.warn_yn := 'N';
12870 END IF;
12871
12872 create_rule_group_and_rule(
12873 x_return_status => x_return_status,
12874 x_msg_count => x_msg_count,
12875 x_msg_data => x_msg_data,
12876 p_rgp_id => l_rgp_id,
12877 p_rgpv_rec => l_rgpv_rec,
12878 p_rulv_rec => l_rulv_rec,
12879 x_rgpv_rec => x_rgpv_rec,
12880 x_rulv_rec => x_rulv_rec
12881 );
12882
12883 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12884 raise header_rule_failed;
12885 END IF;
12886
12887 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12888 l_rgp_id := x_rgpv_rec.id;
12889 END IF;
12890 debug_message('------>Rule: AMTQPR/AMQTEF processed');
12891 l_rulv_rec := NULL;
12892
12893 l_eot_tolerance_days := TO_CHAR(p_header_rec.eot_tolerance_days);
12894
12895 IF (l_eot_tolerance_days IS NULL
12896 AND
12897 p_header_rec.template_number IS NOT NULL) THEN
12898 get_contract_rules(
12899 x_return_status => x_return_status,
12900 x_msg_count => x_msg_count,
12901 x_msg_data => x_msg_data,
12902 p_chr_id => p_template_id,
12903 p_cle_id => NULL,
12904 p_rgd_code => 'AMTQPR',
12905 p_rule_code => 'AMTSET',
12906 x_rulv_tbl => l_rulv_tbl,
12907 x_rule_count => l_rule_count
12908 );
12909
12910 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12911 RAISE header_rule_failed;
12912 END IF;
12913
12914 IF (l_rule_count > 0) THEN
12915 l_eot_tolerance_days := NVL(l_eot_tolerance_days,l_rulv_tbl(1).rule_information1);
12916 END IF;
12917 END IF;
12918
12919 IF (l_eot_tolerance_days IS NOT NULL) THEN
12920 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12921 l_rulv_rec.dnz_chr_id := p_chr_id;
12922 l_rulv_rec.rule_information1 := l_eot_tolerance_days;
12923 l_rulv_rec.rule_information_category := 'AMTSET';
12924 l_rulv_rec.std_template_yn := 'N';
12925 l_rulv_rec.warn_yn := 'N';
12926 END IF;
12927
12928 create_rule_group_and_rule(
12929 x_return_status => x_return_status,
12930 x_msg_count => x_msg_count,
12931 x_msg_data => x_msg_data,
12932 p_rgp_id => l_rgp_id,
12933 p_rgpv_rec => l_rgpv_rec,
12934 p_rulv_rec => l_rulv_rec,
12935 x_rgpv_rec => x_rgpv_rec,
12936 x_rulv_rec => x_rulv_rec
12937 );
12938
12939 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12940 raise header_rule_failed;
12941 END IF;
12942
12943 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
12944 l_rgp_id := x_rgpv_rec.id;
12945 END IF;
12946
12947 debug_message('------>Rule: AMTQPR/AMTSET processed');
12948
12949 -- Send bill of sale, manual quote, First term date
12950
12951 l_rulv_rec := NULL;
12952
12953 l_send_bill_sale := p_header_rec.send_bill_sale;
12954
12955 IF (l_send_bill_sale IS NULL
12956 AND
12957 p_header_rec.template_number IS NOT NULL) THEN
12958 get_contract_rules(
12959 x_return_status => x_return_status,
12960 x_msg_count => x_msg_count,
12961 x_msg_data => x_msg_data,
12962 p_chr_id => p_template_id,
12963 p_cle_id => NULL,
12964 p_rgd_code => 'AMTQPR',
12965 p_rule_code => 'AMFBOS',
12966 x_rulv_tbl => l_rulv_tbl,
12967 x_rule_count => l_rule_count
12968 );
12969
12970 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
12971 RAISE header_rule_failed;
12972 END IF;
12973
12974 IF (l_rule_count > 0) THEN
12975 l_send_bill_sale := NVL(l_send_bill_sale,l_rulv_tbl(1).rule_information1);
12976 END IF;
12977 END IF;
12978
12979 IF (l_send_bill_sale IS NOT NULL) THEN
12980 l_rulv_rec.rgp_id := x_rgpv_rec.id;
12981 l_rulv_rec.dnz_chr_id := p_chr_id;
12982 l_rulv_rec.rule_information1 := l_send_bill_sale;
12983 l_rulv_rec.rule_information_category := 'AMFBOS';
12984 l_rulv_rec.std_template_yn := 'N';
12985 l_rulv_rec.warn_yn := 'N';
12986 END IF;
12987
12988 create_rule_group_and_rule(
12989 x_return_status => x_return_status,
12990 x_msg_count => x_msg_count,
12991 x_msg_data => x_msg_data,
12992 p_rgp_id => l_rgp_id,
12993 p_rgpv_rec => l_rgpv_rec,
12994 p_rulv_rec => l_rulv_rec,
12995 x_rgpv_rec => x_rgpv_rec,
12996 x_rulv_rec => x_rulv_rec
12997 );
12998
12999 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13000 raise header_rule_failed;
13001 END IF;
13002
13003 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13004 l_rgp_id := x_rgpv_rec.id;
13005 END IF;
13006 debug_message('------>Rule: AMTQPR/AMFBOS processed');
13007
13008 l_rulv_rec := NULL;
13009
13010 l_manual_quotes_only := p_header_rec.manual_quotes_only;
13011
13012 IF (l_manual_quotes_only IS NULL
13013 AND
13014 p_header_rec.template_number IS NOT NULL) THEN
13015 get_contract_rules(
13016 x_return_status => x_return_status,
13017 x_msg_count => x_msg_count,
13018 x_msg_data => x_msg_data,
13019 p_chr_id => p_template_id,
13020 p_cle_id => NULL,
13021 p_rgd_code => 'AMTQPR',
13022 p_rule_code => 'AMCMTQ',
13023 x_rulv_tbl => l_rulv_tbl,
13024 x_rule_count => l_rule_count
13025 );
13026
13027 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13028 RAISE header_rule_failed;
13029 END IF;
13030
13031 IF (l_rule_count > 0) THEN
13032 l_manual_quotes_only := NVL(l_manual_quotes_only,l_rulv_tbl(1).rule_information1);
13033 END IF;
13034 END IF;
13035
13036 IF (l_manual_quotes_only IS NOT NULL) THEN
13037 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13038 l_rulv_rec.dnz_chr_id := p_chr_id;
13039 l_rulv_rec.rule_information1 := l_manual_quotes_only;
13040 l_rulv_rec.rule_information_category := 'AMCMTQ';
13041 l_rulv_rec.std_template_yn := 'N';
13042 l_rulv_rec.warn_yn := 'N';
13043 END IF;
13044
13045 create_rule_group_and_rule(
13046 x_return_status => x_return_status,
13047 x_msg_count => x_msg_count,
13048 x_msg_data => x_msg_data,
13049 p_rgp_id => l_rgp_id,
13050 p_rgpv_rec => l_rgpv_rec,
13051 p_rulv_rec => l_rulv_rec,
13052 x_rgpv_rec => x_rgpv_rec,
13053 x_rulv_rec => x_rulv_rec
13054 );
13055
13056 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13057 raise header_rule_failed;
13058 END IF;
13059
13060 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13061 l_rgp_id := x_rgpv_rec.id;
13062 END IF;
13063 debug_message('------>Rule: AMTQPR/AMCMTQ processed');
13064
13065 l_rulv_rec := NULL;
13066
13067 l_first_termination_date := get_canonical_date(p_header_rec.first_termination_date);
13068
13069 IF (l_first_termination_date IS NULL
13070 AND
13071 p_header_rec.template_number IS NOT NULL) THEN
13072 get_contract_rules(
13073 x_return_status => x_return_status,
13074 x_msg_count => x_msg_count,
13075 x_msg_data => x_msg_data,
13076 p_chr_id => p_template_id,
13077 p_cle_id => NULL,
13078 p_rgd_code => 'AMTQPR',
13079 p_rule_code => 'AMDFTD',
13080 x_rulv_tbl => l_rulv_tbl,
13081 x_rule_count => l_rule_count
13082 );
13083
13084 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13085 RAISE header_rule_failed;
13086 END IF;
13087
13088 IF (l_rule_count > 0) THEN
13089 l_first_termination_date := NVL(l_first_termination_date,l_rulv_tbl(1).rule_information1);
13090 END IF;
13091 END IF;
13092
13093 IF (l_first_termination_date IS NOT NULL) THEN
13094 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13095 l_rulv_rec.dnz_chr_id := p_chr_id;
13096 l_rulv_rec.rule_information1 := l_first_termination_date;
13097 l_rulv_rec.rule_information_category := 'AMDFTD';
13098 l_rulv_rec.std_template_yn := 'N';
13099 l_rulv_rec.warn_yn := 'N';
13100 END IF;
13101
13102 create_rule_group_and_rule(
13103 x_return_status => x_return_status,
13104 x_msg_count => x_msg_count,
13105 x_msg_data => x_msg_data,
13106 p_rgp_id => l_rgp_id,
13107 p_rgpv_rec => l_rgpv_rec,
13108 p_rulv_rec => l_rulv_rec,
13109 x_rgpv_rec => x_rgpv_rec,
13110 x_rulv_rec => x_rulv_rec
13111 );
13112
13113 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13114 raise header_rule_failed;
13115 END IF;
13116
13117 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13118 l_rgp_id := x_rgpv_rec.id;
13119 END IF;
13120 debug_message('------>Rule: AMTQPR/AMDFTD processed');
13121
13122 -- Rule Group AMTPAR
13123
13124 l_rgpv_rec := NULL;
13125 l_rgp_id := NULL;
13126 l_rgpv_rec.rgd_code := 'AMTPAR';
13127 l_rgpv_rec.chr_id := p_chr_id;
13128 l_rgpv_rec.dnz_chr_id := p_chr_id;
13129 l_rgpv_rec.cle_id := NULL;
13130 l_rgpv_rec.rgp_type := 'KRG';
13131
13132 l_rulv_rec := NULL;
13133
13134 l_prt_termination_approval_req := p_header_rec.prt_termination_approval_req;
13135
13136 IF (l_prt_termination_approval_req IS NULL
13137 AND
13138 p_header_rec.template_number IS NOT NULL) THEN
13139 get_contract_rules(
13140 x_return_status => x_return_status,
13141 x_msg_count => x_msg_count,
13142 x_msg_data => x_msg_data,
13143 p_chr_id => p_template_id,
13144 p_cle_id => NULL,
13145 p_rgd_code => 'AMTPAR',
13146 p_rule_code => 'AMAPRE',
13147 x_rulv_tbl => l_rulv_tbl,
13148 x_rule_count => l_rule_count
13149 );
13150
13151 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13152 RAISE header_rule_failed;
13153 END IF;
13154
13155 IF (l_rule_count > 0) THEN
13156 l_prt_termination_approval_req := l_rulv_tbl(1).rule_information1;
13157 END IF;
13158 END IF;
13159
13160 IF (l_prt_termination_approval_req IS NOT NULL) THEN
13161 l_rulv_rec := NULL;
13162 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13163 l_rulv_rec.dnz_chr_id := p_chr_id;
13164 l_rulv_rec.rule_information1 := l_prt_termination_approval_req;
13165 l_rulv_rec.rule_information_category := 'AMAPRE';
13166 l_rulv_rec.std_template_yn := 'N';
13167 l_rulv_rec.warn_yn := 'N';
13168 END IF;
13169
13170 create_rule_group_and_rule(
13171 x_return_status => x_return_status,
13172 x_msg_count => x_msg_count,
13173 x_msg_data => x_msg_data,
13174 p_rgp_id => l_rgp_id,
13175 p_rgpv_rec => l_rgpv_rec,
13176 p_rulv_rec => l_rulv_rec,
13177 x_rgpv_rec => x_rgpv_rec,
13178 x_rulv_rec => x_rulv_rec
13179 );
13180
13181 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13182 raise header_rule_failed;
13183 END IF;
13184
13185 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13186 l_rgp_id := x_rgpv_rec.id;
13187 END IF;
13188 debug_message('------>Rule: AMTPAR/AMAPRE processed');
13189 l_rulv_rec := NULL;
13190
13191 l_prt_termination_allowed_flag := p_header_rec.prt_termination_allowed_flag;
13192
13193 IF (l_prt_termination_allowed_flag IS NULL
13194 AND
13195 p_header_rec.template_number IS NOT NULL) THEN
13196 get_contract_rules(
13197 x_return_status => x_return_status,
13198 x_msg_count => x_msg_count,
13199 x_msg_data => x_msg_data,
13200 p_chr_id => p_template_id,
13201 p_cle_id => NULL,
13202 p_rgd_code => 'AMTPAR',
13203 p_rule_code => 'AMPTQA',
13204 x_rulv_tbl => l_rulv_tbl,
13205 x_rule_count => l_rule_count
13206 );
13207
13208 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13209 RAISE header_rule_failed;
13210 END IF;
13211
13212 IF (l_rule_count > 0) THEN
13213 l_prt_termination_allowed_flag := l_rulv_tbl(1).rule_information1;
13214 END IF;
13215 END IF;
13216
13217 IF (l_prt_termination_allowed_flag IS NOT NULL) THEN
13218 l_rulv_rec := NULL;
13219 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13220 l_rulv_rec.dnz_chr_id := p_chr_id;
13221 l_rulv_rec.rule_information1 := l_prt_termination_allowed_flag;
13222 l_rulv_rec.rule_information_category := 'AMPTQA';
13223 l_rulv_rec.std_template_yn := 'N';
13224 l_rulv_rec.warn_yn := 'N';
13225 END IF;
13226
13227 create_rule_group_and_rule(
13228 x_return_status => x_return_status,
13229 x_msg_count => x_msg_count,
13230 x_msg_data => x_msg_data,
13231 p_rgp_id => l_rgp_id,
13232 p_rgpv_rec => l_rgpv_rec,
13233 p_rulv_rec => l_rulv_rec,
13234 x_rgpv_rec => x_rgpv_rec,
13235 x_rulv_rec => x_rulv_rec
13236 );
13237
13238 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13239 raise header_rule_failed;
13240 END IF;
13241
13242 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13243 l_rgp_id := x_rgpv_rec.id;
13244 END IF;
13245
13246 debug_message('------>Rule: AMTPAR/AMPTQA processed');
13247 -- Rule Group AMTPAR
13248
13249 l_rgpv_rec := NULL;
13250 l_rgp_id := NULL;
13251 l_rgpv_rec.rgd_code := 'AMTGAL';
13252 l_rgpv_rec.chr_id := p_chr_id;
13253 l_rgpv_rec.dnz_chr_id := p_chr_id;
13254 l_rgpv_rec.cle_id := NULL;
13255 l_rgpv_rec.rgp_type := 'KRG';
13256 l_rulv_rec := NULL;
13257
13258
13259 l_gain_loss_approval_req := p_header_rec.gain_loss_approval_req;
13260
13261 IF (l_gain_loss_approval_req IS NULL
13262 AND
13263 p_header_rec.template_number IS NOT NULL) THEN
13264
13265 get_contract_rules(
13266 x_return_status => x_return_status,
13267 x_msg_count => x_msg_count,
13268 x_msg_data => x_msg_data,
13269 p_chr_id => p_template_id,
13270 p_cle_id => NULL,
13271 p_rgd_code => 'AMTGAL',
13272 p_rule_code => 'AMAPRE',
13273 x_rulv_tbl => l_rulv_tbl,
13274 x_rule_count => l_rule_count
13275 );
13276
13277 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13278 RAISE header_rule_failed;
13279 END IF;
13280
13281 IF (l_rule_count > 0) THEN
13282 l_gain_loss_approval_req := l_rulv_tbl(1).rule_information1;
13283 END IF;
13284 END IF;
13285
13286 IF (l_gain_loss_approval_req IS NOT NULL) THEN
13287 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13288 l_rulv_rec.dnz_chr_id := p_chr_id;
13289 l_rulv_rec.rule_information1 := l_gain_loss_approval_req;
13290 l_rulv_rec.rule_information_category := 'AMAPRE';
13291 l_rulv_rec.std_template_yn := 'N';
13292 l_rulv_rec.warn_yn := 'N';
13293 END IF;
13294
13295 create_rule_group_and_rule(
13296 x_return_status => x_return_status,
13297 x_msg_count => x_msg_count,
13298 x_msg_data => x_msg_data,
13299 p_rgp_id => l_rgp_id,
13300 p_rgpv_rec => l_rgpv_rec,
13301 p_rulv_rec => l_rulv_rec,
13302 x_rgpv_rec => x_rgpv_rec,
13303 x_rulv_rec => x_rulv_rec
13304 );
13305
13306 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13307 raise header_rule_failed;
13308 END IF;
13309
13310 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13311 l_rgp_id := x_rgpv_rec.id;
13312 END IF;
13313 debug_message('------>Rule: AMTGAL/AMAPRE processed');
13314 l_rulv_rec := NULL;
13315
13316 l_gain_loss_net_quote_opt := p_header_rec.gain_loss_net_quote_opt;
13317 l_gain_loss_net_quote_amt := TO_CHAR(p_header_rec.gain_loss_net_quote_amt);
13318 l_gain_loss_net_quote_formula := p_header_rec.gain_loss_net_quote_formula;
13319 l_gain_loss_tolrn_allwd := p_header_rec.gain_loss_tolerance_allowed;
13320 l_gain_loss_tolrnc_allwd_amt := p_header_rec.gain_loss_tolrnc_allwd_amt;
13321 l_gain_loss_tolrnc_allwd_frml := p_header_rec.gain_loss_tolrnc_allwd_frml;
13322 l_gain_loss_tolrnc_basis := p_header_rec.gain_loss_tolrnc_basis;
13323 l_gain_loss_apprv_proc_frml := p_header_rec.gain_loss_apprv_proc_frml;
13324
13325 IF (l_gain_loss_net_quote_opt IS NULL
13326 OR
13327 l_gain_loss_net_quote_amt IS NULL
13328 OR
13329 l_gain_loss_net_quote_formula IS NULL
13330 OR
13331 l_gain_loss_tolrn_allwd IS NULL
13332 OR
13333 l_gain_loss_tolrnc_allwd_amt IS NULL
13334 OR
13335 l_gain_loss_tolrnc_allwd_frml IS NULL
13336 OR
13337 l_gain_loss_tolrnc_basis IS NULL
13338 OR
13339 l_gain_loss_apprv_proc_frml IS NULL
13340 AND
13341 p_header_rec.template_number IS NOT NULL) THEN
13342
13343 get_contract_rules(
13344 x_return_status => x_return_status,
13345 x_msg_count => x_msg_count,
13346 x_msg_data => x_msg_data,
13347 p_chr_id => p_template_id,
13348 p_cle_id => NULL,
13349 p_rgd_code => 'AMTGAL',
13350 p_rule_code => 'AMGALO',
13351 x_rulv_tbl => l_rulv_tbl,
13352 x_rule_count => l_rule_count
13353 );
13354
13355 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13356 RAISE header_rule_failed;
13357 END IF;
13358
13359 IF (l_rule_count > 0) THEN
13360 l_gain_loss_net_quote_opt := NVL(l_gain_loss_net_quote_opt,l_rulv_tbl(1).rule_information1);
13361 l_gain_loss_net_quote_amt := NVL(l_gain_loss_net_quote_amt,l_rulv_tbl(1).rule_information2);
13362 l_gain_loss_net_quote_formula := NVL(l_gain_loss_net_quote_formula,l_rulv_tbl(1).rule_information3);
13363 l_gain_loss_tolrn_allwd := NVL(l_gain_loss_tolrn_allwd,l_rulv_tbl(1).rule_information7);
13364 l_gain_loss_tolrnc_allwd_amt := NVL(l_gain_loss_tolrnc_allwd_amt,l_rulv_tbl(1).rule_information4);
13365 l_gain_loss_tolrnc_allwd_frml := NVL(l_gain_loss_tolrnc_allwd_frml,l_rulv_tbl(1).rule_information6);
13366 l_gain_loss_tolrnc_basis := NVL(l_gain_loss_tolrnc_basis,l_rulv_tbl(1).rule_information5);
13367 l_gain_loss_apprv_proc_frml := NVL(l_gain_loss_apprv_proc_frml,l_rulv_tbl(1).rule_information8);
13368 END IF;
13369 END IF;
13370
13371 IF (l_gain_loss_net_quote_opt IS NOT NULL) THEN
13372 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13373 l_rulv_rec.dnz_chr_id := p_chr_id;
13374 l_rulv_rec.rule_information1 := l_gain_loss_net_quote_opt;
13375 l_rulv_rec.rule_information_category := 'AMGALO';
13376 l_rulv_rec.std_template_yn := 'N';
13377 l_rulv_rec.warn_yn := 'N';
13378 END IF;
13379
13380 IF (l_gain_loss_net_quote_amt IS NOT NULL) THEN
13381 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13382 l_rulv_rec.dnz_chr_id := p_chr_id;
13383 l_rulv_rec.rule_information2 := l_gain_loss_net_quote_amt;
13384 l_rulv_rec.rule_information_category := 'AMGALO';
13385 l_rulv_rec.std_template_yn := 'N';
13386 l_rulv_rec.warn_yn := 'N';
13387 END IF;
13388
13389 IF (l_gain_loss_net_quote_formula IS NOT NULL) THEN
13390 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13391 l_rulv_rec.dnz_chr_id := p_chr_id;
13392 l_rulv_rec.rule_information3 := l_gain_loss_net_quote_formula;
13393 l_rulv_rec.rule_information_category := 'AMGALO';
13394 l_rulv_rec.std_template_yn := 'N';
13395 l_rulv_rec.warn_yn := 'N';
13396 END IF;
13397
13398 IF (l_gain_loss_tolrn_allwd IS NOT NULL) THEN
13399 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13400 l_rulv_rec.dnz_chr_id := p_chr_id;
13401 l_rulv_rec.rule_information7 := l_gain_loss_tolrn_allwd;
13402 l_rulv_rec.rule_information_category := 'AMGALO';
13403 l_rulv_rec.std_template_yn := 'N';
13404 l_rulv_rec.warn_yn := 'N';
13405 END IF;
13406
13407 IF (l_gain_loss_tolrnc_allwd_amt IS NOT NULL) THEN
13408 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13409 l_rulv_rec.dnz_chr_id := p_chr_id;
13410 l_rulv_rec.rule_information4 := l_gain_loss_tolrnc_allwd_amt;
13411 l_rulv_rec.rule_information_category := 'AMGALO';
13412 l_rulv_rec.std_template_yn := 'N';
13413 l_rulv_rec.warn_yn := 'N';
13414 END IF;
13415
13416 IF (l_gain_loss_tolrnc_allwd_frml IS NOT NULL) THEN
13417 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13418 l_rulv_rec.dnz_chr_id := p_chr_id;
13419 l_rulv_rec.rule_information6 := l_gain_loss_tolrnc_allwd_frml;
13420 l_rulv_rec.rule_information_category := 'AMGALO';
13421 l_rulv_rec.std_template_yn := 'N';
13422 l_rulv_rec.warn_yn := 'N';
13423 END IF;
13424
13425 IF (l_gain_loss_tolrnc_basis IS NOT NULL) THEN
13426 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13427 l_rulv_rec.dnz_chr_id := p_chr_id;
13428 l_rulv_rec.rule_information5 := l_gain_loss_tolrnc_basis;
13429 l_rulv_rec.rule_information_category := 'AMGALO';
13430 l_rulv_rec.std_template_yn := 'N';
13431 l_rulv_rec.warn_yn := 'N';
13432 END IF;
13433
13434 IF (l_gain_loss_apprv_proc_frml IS NOT NULL) THEN
13435 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13436 l_rulv_rec.dnz_chr_id := p_chr_id;
13437 l_rulv_rec.rule_information8 := l_gain_loss_apprv_proc_frml;
13438 l_rulv_rec.rule_information_category := 'AMGALO';
13439 l_rulv_rec.std_template_yn := 'N';
13440 l_rulv_rec.warn_yn := 'N';
13441 END IF;
13442
13443 create_rule_group_and_rule(
13444 x_return_status => x_return_status,
13445 x_msg_count => x_msg_count,
13446 x_msg_data => x_msg_data,
13447 p_rgp_id => l_rgp_id,
13448 p_rgpv_rec => l_rgpv_rec,
13449 p_rulv_rec => l_rulv_rec,
13450 x_rgpv_rec => x_rgpv_rec,
13451 x_rulv_rec => x_rulv_rec
13452 );
13453
13454 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13455 raise header_rule_failed;
13456 END IF;
13457
13458 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13459 l_rgp_id := x_rgpv_rec.id;
13460 END IF;
13461 debug_message('------>Rule: AMTGAL/AMGALO processed');
13462
13463 -- Rule Group AMQR1R
13464
13465 l_rgpv_rec := NULL;
13466 l_rgp_id := NULL;
13467 l_rgpv_rec.rgd_code := 'AMQR1R';
13468 l_rgpv_rec.chr_id := p_chr_id;
13469 l_rgpv_rec.dnz_chr_id := p_chr_id;
13470 l_rgpv_rec.cle_id := NULL;
13471 l_rgpv_rec.rgp_type := 'KRG';
13472 l_rulv_rec := NULL;
13473
13474 l_quote_rcpt_contract_role := p_header_rec.quote_rcpt_contract_role;
13475
13476 IF (l_quote_rcpt_contract_role IS NULL
13477 AND
13478 p_header_rec.template_number IS NOT NULL) THEN
13479 get_contract_rules(
13480 x_return_status => x_return_status,
13481 x_msg_count => x_msg_count,
13482 x_msg_data => x_msg_data,
13483 p_chr_id => p_template_id,
13484 p_cle_id => NULL,
13485 p_rgd_code => 'AMQR1R',
13486 p_rule_code => 'AMLCRO',
13487 x_rulv_tbl => l_rulv_tbl,
13488 x_rule_count => l_rule_count
13489 );
13490
13491 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13492 RAISE header_rule_failed;
13493 END IF;
13494
13495 IF (l_rule_count > 0) THEN
13496 l_quote_rcpt_contract_role := l_rulv_tbl(1).rule_information1;
13497 END IF;
13498 END IF;
13499
13500 IF (l_quote_rcpt_contract_role IS NOT NULL) THEN
13501 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13502 l_rulv_rec.dnz_chr_id := p_chr_id;
13503 l_rulv_rec.rule_information1 := l_quote_rcpt_contract_role;
13504 l_rulv_rec.rule_information_category := 'AMLCRO';
13505 l_rulv_rec.std_template_yn := 'N';
13506 l_rulv_rec.warn_yn := 'N';
13507 END IF;
13508
13509 create_rule_group_and_rule(
13510 x_return_status => x_return_status,
13511 x_msg_count => x_msg_count,
13512 x_msg_data => x_msg_data,
13513 p_rgp_id => l_rgp_id,
13514 p_rgpv_rec => l_rgpv_rec,
13515 p_rulv_rec => l_rulv_rec,
13516 x_rgpv_rec => x_rgpv_rec,
13517 x_rulv_rec => x_rulv_rec
13518 );
13519
13520 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13521 raise header_rule_failed;
13522 END IF;
13523
13524 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13525 l_rgp_id := x_rgpv_rec.id;
13526 END IF;
13527
13528 debug_message('------>Rule: AMQR1R/AMLCRO processed');
13529
13530 l_rulv_rec := NULL;
13531
13532 l_quote_rcpt_addl_rcpt_role := p_header_rec.quote_rcpt_addl_rcpt_role;
13533 l_quote_rcpt_alloc_ptg := p_header_rec.quote_rcpt_alloc_ptg;
13534
13535 IF (( l_quote_rcpt_addl_rcpt_role IS NULL
13536 OR
13537 l_quote_rcpt_alloc_ptg IS NULL
13538 )
13539 AND
13540 p_header_rec.template_number IS NOT NULL) THEN
13541 get_contract_rules(
13542 x_return_status => x_return_status,
13543 x_msg_count => x_msg_count,
13544 x_msg_data => x_msg_data,
13545 p_chr_id => p_template_id,
13546 p_cle_id => NULL,
13547 p_rgd_code => 'AMQR1R',
13548 p_rule_code => 'AMLCRP',
13549 x_rulv_tbl => l_rulv_tbl,
13550 x_rule_count => l_rule_count
13551 );
13552
13553 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13554 RAISE header_rule_failed;
13555 END IF;
13556
13557 IF (l_rule_count > 0) THEN
13558 l_quote_rcpt_addl_rcpt_role := NVL(l_quote_rcpt_addl_rcpt_role,l_rulv_tbl(1).rule_information1);
13559 l_quote_rcpt_alloc_ptg := NVL(l_quote_rcpt_alloc_ptg,l_rulv_tbl(1).rule_information2);
13560 END IF;
13561 END IF;
13562
13563 IF (l_quote_rcpt_addl_rcpt_role IS NOT NULL) THEN
13564 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13565 l_rulv_rec.dnz_chr_id := p_chr_id;
13566 l_rulv_rec.rule_information1 := l_quote_rcpt_addl_rcpt_role;
13567 l_rulv_rec.rule_information_category := 'AMLCRP';
13568 l_rulv_rec.std_template_yn := 'N';
13569 l_rulv_rec.warn_yn := 'N';
13570 END IF;
13571
13572 IF (l_quote_rcpt_alloc_ptg IS NOT NULL) THEN
13573 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13574 l_rulv_rec.dnz_chr_id := p_chr_id;
13575 l_rulv_rec.rule_information2 := l_quote_rcpt_alloc_ptg;
13576 l_rulv_rec.rule_information_category := 'AMLCRP';
13577 l_rulv_rec.std_template_yn := 'N';
13578 l_rulv_rec.warn_yn := 'N';
13579 END IF;
13580
13581 create_rule_group_and_rule(
13582 x_return_status => x_return_status,
13583 x_msg_count => x_msg_count,
13584 x_msg_data => x_msg_data,
13585 p_rgp_id => l_rgp_id,
13586 p_rgpv_rec => l_rgpv_rec,
13587 p_rulv_rec => l_rulv_rec,
13588 x_rgpv_rec => x_rgpv_rec,
13589 x_rulv_rec => x_rulv_rec
13590 );
13591
13592 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13593 raise header_rule_failed;
13594 END IF;
13595
13596 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13597 l_rgp_id := x_rgpv_rec.id;
13598 END IF;
13599
13600 debug_message('------>Rule: AMQR1R/AMLCRP processed');
13601
13602 -- Rule Group AMQR5A
13603
13604 l_rgpv_rec := NULL;
13605 l_rgp_id := NULL;
13606 l_rgpv_rec.rgd_code := 'AMQR5A';
13607 l_rgpv_rec.chr_id := p_chr_id;
13608 l_rgpv_rec.dnz_chr_id := p_chr_id;
13609 l_rgpv_rec.cle_id := NULL;
13610 l_rgpv_rec.rgp_type := 'KRG';
13611 l_rulv_rec := NULL;
13612
13613 l_quote_approver_contract_role := p_header_rec.quote_approver_contract_role;
13614
13615 IF (l_quote_approver_contract_role IS NULL
13616 AND
13617 p_header_rec.template_number IS NOT NULL) THEN
13618 get_contract_rules(
13619 x_return_status => x_return_status,
13620 x_msg_count => x_msg_count,
13621 x_msg_data => x_msg_data,
13622 p_chr_id => p_template_id,
13623 p_cle_id => NULL,
13624 p_rgd_code => 'AMQR5A',
13625 p_rule_code => 'AMLCAP',
13626 x_rulv_tbl => l_rulv_tbl,
13627 x_rule_count => l_rule_count
13628 );
13629
13630 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13631 RAISE header_rule_failed;
13632 END IF;
13633
13634 IF (l_rule_count > 0) THEN
13635 l_quote_approver_contract_role := l_rulv_tbl(1).rule_information1;
13636 END IF;
13637 END IF;
13638
13639 IF (l_quote_approver_contract_role IS NOT NULL) THEN
13640 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13641 l_rulv_rec.dnz_chr_id := p_chr_id;
13642 l_rulv_rec.rule_information1 := l_quote_approver_contract_role;
13643 l_rulv_rec.rule_information_category := 'AMLCAP';
13644 l_rulv_rec.std_template_yn := 'N';
13645 l_rulv_rec.warn_yn := 'N';
13646 END IF;
13647
13648 create_rule_group_and_rule(
13649 x_return_status => x_return_status,
13650 x_msg_count => x_msg_count,
13651 x_msg_data => x_msg_data,
13652 p_rgp_id => l_rgp_id,
13653 p_rgpv_rec => l_rgpv_rec,
13654 p_rulv_rec => l_rulv_rec,
13655 x_rgpv_rec => x_rgpv_rec,
13656 x_rulv_rec => x_rulv_rec
13657 );
13658
13659 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13660 raise header_rule_failed;
13661 END IF;
13662
13663 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13664 l_rgp_id := x_rgpv_rec.id;
13665 END IF;
13666
13667 debug_message('------>Rule: AMQR5A/AMLCAP processed');
13668
13669 l_quote_apprvr_adv_notice_role := p_header_rec.quote_apprvr_adv_notice_role;
13670 l_quote_approver_delay_days := p_header_rec.quote_approver_delay_days;
13671
13672 IF ((l_quote_apprvr_adv_notice_role IS NULL
13673 OR
13674 l_quote_approver_delay_days IS NULL
13675 )
13676 AND
13677 p_header_rec.template_number IS NOT NULL) THEN
13678 get_contract_rules(
13679 x_return_status => x_return_status,
13680 x_msg_count => x_msg_count,
13681 x_msg_data => x_msg_data,
13682 p_chr_id => p_template_id,
13683 p_cle_id => NULL,
13684 p_rgd_code => 'AMQR5A',
13685 p_rule_code => 'AMLCAV',
13686 x_rulv_tbl => l_rulv_tbl,
13687 x_rule_count => l_rule_count
13688 );
13689
13690 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13691 RAISE header_rule_failed;
13692 END IF;
13693
13694 IF (l_rule_count > 0) THEN
13695 l_quote_apprvr_adv_notice_role := NVL(l_quote_apprvr_adv_notice_role, l_rulv_tbl(1).rule_information1);
13696 l_quote_approver_delay_days := NVL(l_quote_approver_delay_days, l_rulv_tbl(1).rule_information2);
13697 END IF;
13698 END IF;
13699
13700 IF (l_quote_apprvr_adv_notice_role IS NOT NULL) THEN
13701 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13702 l_rulv_rec.dnz_chr_id := p_chr_id;
13703 l_rulv_rec.rule_information1 := l_quote_apprvr_adv_notice_role;
13704 l_rulv_rec.rule_information_category := 'AMLCAV';
13705 l_rulv_rec.std_template_yn := 'N';
13706 l_rulv_rec.warn_yn := 'N';
13707 END IF;
13708
13709 IF (l_quote_approver_delay_days IS NOT NULL) THEN
13710 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13711 l_rulv_rec.dnz_chr_id := p_chr_id;
13712 l_rulv_rec.rule_information2 := l_quote_approver_delay_days;
13713 l_rulv_rec.rule_information_category := 'AMLCAV';
13714 l_rulv_rec.std_template_yn := 'N';
13715 l_rulv_rec.warn_yn := 'N';
13716 END IF;
13717
13718 create_rule_group_and_rule(
13719 x_return_status => x_return_status,
13720 x_msg_count => x_msg_count,
13721 x_msg_data => x_msg_data,
13722 p_rgp_id => l_rgp_id,
13723 p_rgpv_rec => l_rgpv_rec,
13724 p_rulv_rec => l_rulv_rec,
13725 x_rgpv_rec => x_rgpv_rec,
13726 x_rulv_rec => x_rulv_rec
13727 );
13728
13729 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13730 raise header_rule_failed;
13731 END IF;
13732
13733 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13734 l_rgp_id := x_rgpv_rec.id;
13735 END IF;
13736
13737 debug_message('------>Rule: AMQR5A/AMLCAV processed');
13738
13739 -- Rule Group AMQR9F
13740
13741 l_rgpv_rec := NULL;
13742 l_rgp_id := NULL;
13743 l_rgpv_rec.rgd_code := 'AMQR9F';
13744 l_rgpv_rec.chr_id := p_chr_id;
13745 l_rgpv_rec.dnz_chr_id := p_chr_id;
13746 l_rgpv_rec.cle_id := NULL;
13747 l_rgpv_rec.rgp_type := 'KRG';
13748 l_rulv_rec := NULL;
13749
13750 l_quote_crtsy_cp_cntrc_role := p_header_rec.quote_crtsy_copy_contract_role;
13751
13752 IF (l_quote_crtsy_cp_cntrc_role IS NULL
13753 AND
13754 p_header_rec.template_number IS NOT NULL) THEN
13755 get_contract_rules(
13756 x_return_status => x_return_status,
13757 x_msg_count => x_msg_count,
13758 x_msg_data => x_msg_data,
13759 p_chr_id => p_template_id,
13760 p_cle_id => NULL,
13761 p_rgd_code => 'AMQR9F',
13762 p_rule_code => 'AMLCCO',
13763 x_rulv_tbl => l_rulv_tbl,
13764 x_rule_count => l_rule_count
13765 );
13766
13767 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13768 RAISE header_rule_failed;
13769 END IF;
13770
13771 IF (l_rule_count > 0) THEN
13772 l_quote_crtsy_cp_cntrc_role := l_rulv_tbl(1).rule_information1;
13773 END IF;
13774 END IF;
13775
13776 IF (l_quote_crtsy_cp_cntrc_role IS NOT NULL) THEN
13777 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13778 l_rulv_rec.dnz_chr_id := p_chr_id;
13779 l_rulv_rec.rule_information1 := l_quote_crtsy_cp_cntrc_role;
13780 l_rulv_rec.rule_information_category := 'AMLCCO';
13781 l_rulv_rec.std_template_yn := 'N';
13782 l_rulv_rec.warn_yn := 'N';
13783 END IF;
13784
13785 create_rule_group_and_rule(
13786 x_return_status => x_return_status,
13787 x_msg_count => x_msg_count,
13788 x_msg_data => x_msg_data,
13789 p_rgp_id => l_rgp_id,
13790 p_rgpv_rec => l_rgpv_rec,
13791 p_rulv_rec => l_rulv_rec,
13792 x_rgpv_rec => x_rgpv_rec,
13793 x_rulv_rec => x_rulv_rec
13794 );
13795
13796 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13797 raise header_rule_failed;
13798 END IF;
13799
13800 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13801 l_rgp_id := x_rgpv_rec.id;
13802 END IF;
13803
13804 debug_message('------>Rule: AMQR9F/AMLCCO processed');
13805
13806 -- Rule Group AMTEWC
13807
13808 l_rgpv_rec := NULL;
13809 l_rgp_id := NULL;
13810 l_rgpv_rec.rgd_code := 'AMTEWC';
13811 l_rgpv_rec.chr_id := p_chr_id;
13812 l_rgpv_rec.dnz_chr_id := p_chr_id;
13813 l_rgpv_rec.cle_id := NULL;
13814 l_rgpv_rec.rgp_type := 'KRG';
13815 l_rulv_rec := NULL;
13816
13817 l_ert_quote_calc_term_option := p_header_rec.ert_quote_calc_term_option;
13818 l_ert_quote_calc_term_formula := p_header_rec.ert_quote_calc_term_formula;
13819
13820 IF (l_ert_quote_calc_term_option IS NULL
13821 OR
13822 l_ert_quote_calc_term_formula IS NULL
13823 AND
13824 p_header_rec.template_number IS NOT NULL) THEN
13825 get_contract_rules(
13826 x_return_status => x_return_status,
13827 x_msg_count => x_msg_count,
13828 x_msg_data => x_msg_data,
13829 p_chr_id => p_template_id,
13830 p_cle_id => NULL,
13831 p_rgd_code => 'AMTEWC',
13832 p_rule_code => 'AMATQC',
13833 x_rulv_tbl => l_rulv_tbl,
13834 x_rule_count => l_rule_count
13835 );
13836
13837 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13838 RAISE header_rule_failed;
13839 END IF;
13840
13841 IF (l_rule_count > 0) THEN
13842 l_ert_quote_calc_term_option := NVL(l_ert_quote_calc_term_option,l_rulv_tbl(1).rule_information1);
13843 l_ert_quote_calc_term_formula := NVL(l_ert_quote_calc_term_formula,l_rulv_tbl(1).rule_information2);
13844 END IF;
13845 END IF;
13846
13847 IF (l_ert_quote_calc_term_option IS NOT NULL) THEN
13848 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13849 l_rulv_rec.dnz_chr_id := p_chr_id;
13850 l_rulv_rec.rule_information1 := l_ert_quote_calc_term_option;
13851 l_rulv_rec.rule_information_category := 'AMATQC';
13852 l_rulv_rec.std_template_yn := 'N';
13853 l_rulv_rec.warn_yn := 'N';
13854 END IF;
13855
13856 IF (l_ert_quote_calc_term_formula IS NOT NULL) THEN
13857 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13858 l_rulv_rec.dnz_chr_id := p_chr_id;
13859 l_rulv_rec.rule_information2 := l_ert_quote_calc_term_formula;
13860 l_rulv_rec.rule_information_category := 'AMATQC';
13861 l_rulv_rec.std_template_yn := 'N';
13862 l_rulv_rec.warn_yn := 'N';
13863 END IF;
13864
13865 create_rule_group_and_rule(
13866 x_return_status => x_return_status,
13867 x_msg_count => x_msg_count,
13868 x_msg_data => x_msg_data,
13869 p_rgp_id => l_rgp_id,
13870 p_rgpv_rec => l_rgpv_rec,
13871 p_rulv_rec => l_rulv_rec,
13872 x_rgpv_rec => x_rgpv_rec,
13873 x_rulv_rec => x_rulv_rec
13874 );
13875
13876 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13877 raise header_rule_failed;
13878 END IF;
13879
13880 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13881 l_rgp_id := x_rgpv_rec.id;
13882 END IF;
13883 debug_message('------>Rule: AMTEWC/AMATQC processed');
13884 l_rulv_rec := NULL;
13885
13886 l_ert_contract_oblig_opt := p_header_rec.ert_contract_oblig_opt;
13887 l_ert_contract_oblig_amount := TO_CHAR(p_header_rec.ert_contract_oblig_amount);
13888 l_ert_contract_oblig_formula := p_header_rec.ert_contract_oblig_formula;
13889 l_ert_contract_oblig_prorate := p_header_rec.ert_contract_oblig_prorate;
13890
13891 IF (l_ert_contract_oblig_opt IS NULL
13892 OR
13893 l_ert_contract_oblig_amount IS NULL
13894 OR
13895 l_ert_contract_oblig_formula IS NULL
13896 OR
13897 l_ert_contract_oblig_prorate IS NULL
13898 AND
13899 p_header_rec.template_number IS NOT NULL) THEN
13900 get_contract_rules(
13901 x_return_status => x_return_status,
13902 x_msg_count => x_msg_count,
13903 x_msg_data => x_msg_data,
13904 p_chr_id => p_template_id,
13905 p_cle_id => NULL,
13906 p_rgd_code => 'AMTEWC',
13907 p_rule_code => 'AMBCOC',
13908 x_rulv_tbl => l_rulv_tbl,
13909 x_rule_count => l_rule_count
13910 );
13911
13912 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13913 RAISE header_rule_failed;
13914 END IF;
13915
13916 IF (l_rule_count > 0) THEN
13917 l_ert_contract_oblig_opt := NVL(l_ert_contract_oblig_opt,l_rulv_tbl(1).rule_information1);
13918 l_ert_contract_oblig_amount := NVL(l_ert_contract_oblig_amount,l_rulv_tbl(1).rule_information2);
13919 l_ert_contract_oblig_formula := NVL(l_ert_contract_oblig_formula,l_rulv_tbl(1).rule_information3);
13920 l_ert_contract_oblig_prorate := NVL(l_ert_contract_oblig_prorate,l_rulv_tbl(1).rule_information4);
13921 END IF;
13922 END IF;
13923
13924 IF (l_ert_contract_oblig_opt IS NOT NULL) THEN
13925 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13926 l_rulv_rec.dnz_chr_id := p_chr_id;
13927 l_rulv_rec.rule_information1 := l_ert_contract_oblig_opt;
13928 l_rulv_rec.rule_information_category := 'AMBCOC';
13929 l_rulv_rec.std_template_yn := 'N';
13930 l_rulv_rec.warn_yn := 'N';
13931 END IF;
13932
13933 IF (l_ert_contract_oblig_amount IS NOT NULL) THEN
13934 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13935 l_rulv_rec.dnz_chr_id := p_chr_id;
13936 l_rulv_rec.rule_information2 := l_ert_contract_oblig_amount;
13937 l_rulv_rec.rule_information_category := 'AMBCOC';
13938 l_rulv_rec.std_template_yn := 'N';
13939 l_rulv_rec.warn_yn := 'N';
13940 END IF;
13941
13942 IF (l_ert_contract_oblig_formula IS NOT NULL) THEN
13943 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13944 l_rulv_rec.dnz_chr_id := p_chr_id;
13945 l_rulv_rec.rule_information3 := l_ert_contract_oblig_formula;
13946 l_rulv_rec.rule_information_category := 'AMBCOC';
13947 l_rulv_rec.std_template_yn := 'N';
13948 l_rulv_rec.warn_yn := 'N';
13949 END IF;
13950
13951 IF (l_ert_contract_oblig_prorate IS NOT NULL) THEN
13952 l_rulv_rec.rgp_id := x_rgpv_rec.id;
13953 l_rulv_rec.dnz_chr_id := p_chr_id;
13954 l_rulv_rec.rule_information4 := l_ert_contract_oblig_prorate;
13955 l_rulv_rec.rule_information_category := 'AMBCOC';
13956 l_rulv_rec.std_template_yn := 'N';
13957 l_rulv_rec.warn_yn := 'N';
13958 END IF;
13959
13960 create_rule_group_and_rule(
13961 x_return_status => x_return_status,
13962 x_msg_count => x_msg_count,
13963 x_msg_data => x_msg_data,
13964 p_rgp_id => l_rgp_id,
13965 p_rgpv_rec => l_rgpv_rec,
13966 p_rulv_rec => l_rulv_rec,
13967 x_rgpv_rec => x_rgpv_rec,
13968 x_rulv_rec => x_rulv_rec
13969 );
13970
13971 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
13972 raise header_rule_failed;
13973 END IF;
13974
13975 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
13976 l_rgp_id := x_rgpv_rec.id;
13977 END IF;
13978 debug_message('------>Rule: AMTEWC/AMBCOC processed');
13979 l_rulv_rec := NULL;
13980
13981 l_ert_disc_rate_opt := p_header_rec.ert_disc_rate_opt;
13982 l_ert_disc_rate_amount := TO_CHAR(p_header_rec.ert_disc_rate_amount);
13983 l_ert_disc_rate_formula := p_header_rec.ert_disc_rate_formula;
13984 l_ert_disc_rate_prorate := p_header_rec.ert_disc_rate_prorate;
13985
13986 IF (l_ert_disc_rate_opt IS NULL
13987 OR
13988 l_ert_disc_rate_amount IS NULL
13989 OR
13990 l_ert_disc_rate_formula IS NULL
13991 OR
13992 l_ert_disc_rate_prorate IS NULL
13993 AND
13994 p_header_rec.template_number IS NOT NULL) THEN
13995 get_contract_rules(
13996 x_return_status => x_return_status,
13997 x_msg_count => x_msg_count,
13998 x_msg_data => x_msg_data,
13999 p_chr_id => p_template_id,
14000 p_cle_id => NULL,
14001 p_rgd_code => 'AMTEWC',
14002 p_rule_code => 'AMCQDR',
14003 x_rulv_tbl => l_rulv_tbl,
14004 x_rule_count => l_rule_count
14005 );
14006
14007 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14008 RAISE header_rule_failed;
14009 END IF;
14010
14011 IF (l_rule_count > 0) THEN
14012 l_ert_disc_rate_opt := NVL(l_ert_disc_rate_opt,l_rulv_tbl(1).rule_information1);
14013 l_ert_disc_rate_amount := NVL(l_ert_disc_rate_amount,l_rulv_tbl(1).rule_information2);
14014 l_ert_disc_rate_formula := NVL(l_ert_disc_rate_formula,l_rulv_tbl(1).rule_information3);
14015 l_ert_disc_rate_prorate := NVL(l_ert_disc_rate_prorate,l_rulv_tbl(1).rule_information4);
14016 END IF;
14017 END IF;
14018
14019 IF (l_ert_disc_rate_opt IS NOT NULL) THEN
14020 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14021 l_rulv_rec.dnz_chr_id := p_chr_id;
14022 l_rulv_rec.rule_information1 := l_ert_disc_rate_opt;
14023 l_rulv_rec.rule_information_category := 'AMCQDR';
14024 l_rulv_rec.std_template_yn := 'N';
14025 l_rulv_rec.warn_yn := 'N';
14026 END IF;
14027
14028 IF (l_ert_disc_rate_amount IS NOT NULL) THEN
14029 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14030 l_rulv_rec.dnz_chr_id := p_chr_id;
14031 l_rulv_rec.rule_information2 := l_ert_disc_rate_amount;
14032 l_rulv_rec.rule_information_category := 'AMCQDR';
14033 l_rulv_rec.std_template_yn := 'N';
14034 l_rulv_rec.warn_yn := 'N';
14035 END IF;
14036
14037 IF (l_ert_disc_rate_formula IS NOT NULL) THEN
14038 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14039 l_rulv_rec.dnz_chr_id := p_chr_id;
14040 l_rulv_rec.rule_information3 := l_ert_disc_rate_formula;
14041 l_rulv_rec.rule_information_category := 'AMCQDR';
14042 l_rulv_rec.std_template_yn := 'N';
14043 l_rulv_rec.warn_yn := 'N';
14044 END IF;
14045
14046 IF (l_ert_disc_rate_prorate IS NOT NULL) THEN
14047 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14048 l_rulv_rec.dnz_chr_id := p_chr_id;
14049 l_rulv_rec.rule_information4 := l_ert_disc_rate_prorate;
14050 l_rulv_rec.rule_information_category := 'AMCQDR';
14051 l_rulv_rec.std_template_yn := 'N';
14052 l_rulv_rec.warn_yn := 'N';
14053 END IF;
14054
14055 create_rule_group_and_rule(
14056 x_return_status => x_return_status,
14057 x_msg_count => x_msg_count,
14058 x_msg_data => x_msg_data,
14059 p_rgp_id => l_rgp_id,
14060 p_rgpv_rec => l_rgpv_rec,
14061 p_rulv_rec => l_rulv_rec,
14062 x_rgpv_rec => x_rgpv_rec,
14063 x_rulv_rec => x_rulv_rec
14064 );
14065
14066 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14067 raise header_rule_failed;
14068 END IF;
14069
14070 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14071 l_rgp_id := x_rgpv_rec.id;
14072 END IF;
14073 debug_message('------>Rule: AMTEWC/AMCQDR processed');
14074 l_rulv_rec := NULL;
14075
14076 l_ert_quote_fee_opt := p_header_rec.ert_quote_fee_opt;
14077 l_ert_quote_fee_amount := TO_CHAR(p_header_rec.ert_quote_fee_amount);
14078 l_ert_quote_fee_formula := p_header_rec.ert_quote_fee_formula;
14079 l_ert_quote_fee_prorate := p_header_rec.ert_quote_fee_prorate;
14080
14081 IF (l_ert_quote_fee_opt IS NULL
14082 OR
14083 l_ert_quote_fee_amount IS NULL
14084 OR
14085 l_ert_quote_fee_formula IS NULL
14086 OR
14087 l_ert_quote_fee_prorate IS NULL
14088 AND
14089 p_header_rec.template_number IS NOT NULL) THEN
14090 get_contract_rules(
14091 x_return_status => x_return_status,
14092 x_msg_count => x_msg_count,
14093 x_msg_data => x_msg_data,
14094 p_chr_id => p_template_id,
14095 p_cle_id => NULL,
14096 p_rgd_code => 'AMTEWC',
14097 p_rule_code => 'AMCQFE',
14098 x_rulv_tbl => l_rulv_tbl,
14099 x_rule_count => l_rule_count
14100 );
14101
14102 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14103 RAISE header_rule_failed;
14104 END IF;
14105
14106 IF (l_rule_count > 0) THEN
14107 l_ert_quote_fee_opt := NVL(l_ert_quote_fee_opt,l_rulv_tbl(1).rule_information1);
14108 l_ert_quote_fee_amount := NVL(l_ert_quote_fee_amount,l_rulv_tbl(1).rule_information2);
14109 l_ert_quote_fee_formula := NVL(l_ert_quote_fee_formula,l_rulv_tbl(1).rule_information3);
14110 l_ert_quote_fee_prorate := NVL(l_ert_quote_fee_prorate,l_rulv_tbl(1).rule_information4);
14111 END IF;
14112 END IF;
14113
14114 IF (l_ert_quote_fee_opt IS NOT NULL) THEN
14115 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14116 l_rulv_rec.dnz_chr_id := p_chr_id;
14117 l_rulv_rec.rule_information1 := l_ert_quote_fee_opt;
14118 l_rulv_rec.rule_information_category := 'AMCQFE';
14119 l_rulv_rec.std_template_yn := 'N';
14120 l_rulv_rec.warn_yn := 'N';
14121 END IF;
14122
14123 IF (l_ert_quote_fee_amount IS NOT NULL) THEN
14124 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14125 l_rulv_rec.dnz_chr_id := p_chr_id;
14126 l_rulv_rec.rule_information2 := l_ert_quote_fee_amount;
14127 l_rulv_rec.rule_information_category := 'AMCQFE';
14128 l_rulv_rec.std_template_yn := 'N';
14129 l_rulv_rec.warn_yn := 'N';
14130 END IF;
14131
14132 IF (l_ert_quote_fee_formula IS NOT NULL) THEN
14133 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14134 l_rulv_rec.dnz_chr_id := p_chr_id;
14135 l_rulv_rec.rule_information3 := l_ert_quote_fee_formula;
14136 l_rulv_rec.rule_information_category := 'AMCQFE';
14137 l_rulv_rec.std_template_yn := 'N';
14138 l_rulv_rec.warn_yn := 'N';
14139 END IF;
14140
14141 IF (l_ert_quote_fee_prorate IS NOT NULL) THEN
14142 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14143 l_rulv_rec.dnz_chr_id := p_chr_id;
14144 l_rulv_rec.rule_information4 := l_ert_quote_fee_prorate;
14145 l_rulv_rec.rule_information_category := 'AMCQFE';
14146 l_rulv_rec.std_template_yn := 'N';
14147 l_rulv_rec.warn_yn := 'N';
14148 END IF;
14149
14150 create_rule_group_and_rule(
14151 x_return_status => x_return_status,
14152 x_msg_count => x_msg_count,
14153 x_msg_data => x_msg_data,
14154 p_rgp_id => l_rgp_id,
14155 p_rgpv_rec => l_rgpv_rec,
14156 p_rulv_rec => l_rulv_rec,
14157 x_rgpv_rec => x_rgpv_rec,
14158 x_rulv_rec => x_rulv_rec
14159 );
14160
14161 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14162 raise header_rule_failed;
14163 END IF;
14164
14165 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14166 l_rgp_id := x_rgpv_rec.id;
14167 END IF;
14168 debug_message('------>Rule: AMTEWC/AMCQFE processed');
14169 l_rulv_rec := NULL;
14170
14171 l_ert_return_fee_option := p_header_rec.ert_return_fee_option;
14172 l_ert_return_fee_amount := TO_CHAR(p_header_rec.ert_return_fee_amount);
14173 l_ert_return_fee_formula := p_header_rec.ert_return_fee_formula;
14174 l_ert_return_fee_prorate := p_header_rec.ert_return_fee_prorate;
14175
14176 IF (l_ert_return_fee_option IS NULL
14177 OR
14178 l_ert_return_fee_amount IS NULL
14179 OR
14180 l_ert_return_fee_formula IS NULL
14181 OR
14182 l_ert_return_fee_prorate IS NULL
14183 AND
14184 p_header_rec.template_number IS NOT NULL) THEN
14185 get_contract_rules(
14186 x_return_status => x_return_status,
14187 x_msg_count => x_msg_count,
14188 x_msg_data => x_msg_data,
14189 p_chr_id => p_template_id,
14190 p_cle_id => NULL,
14191 p_rgd_code => 'AMTEWC',
14192 p_rule_code => 'AMCRFE',
14193 x_rulv_tbl => l_rulv_tbl,
14194 x_rule_count => l_rule_count
14195 );
14196
14197 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14198 RAISE header_rule_failed;
14199 END IF;
14200
14201 IF (l_rule_count > 0) THEN
14202 l_ert_return_fee_option := NVL(l_ert_return_fee_option,l_rulv_tbl(1).rule_information1);
14203 l_ert_return_fee_amount := NVL(l_ert_return_fee_amount,l_rulv_tbl(1).rule_information2);
14204 l_ert_return_fee_formula := NVL(l_ert_return_fee_formula,l_rulv_tbl(1).rule_information3);
14205 l_ert_return_fee_prorate := NVL(l_ert_return_fee_prorate,l_rulv_tbl(1).rule_information4);
14206 END IF;
14207 END IF;
14208
14209 IF (l_ert_return_fee_option IS NOT NULL) THEN
14210 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14211 l_rulv_rec.dnz_chr_id := p_chr_id;
14212 l_rulv_rec.rule_informaTion1 := l_ert_return_fee_option;
14213 l_rulv_rec.rule_information_category := 'AMCRFE';
14214 l_rulv_rec.std_template_yn := 'N';
14215 l_rulv_rec.warn_yn := 'N';
14216 END IF;
14217
14218 IF (l_ert_return_fee_amount IS NOT NULL) THEN
14219 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14220 l_rulv_rec.dnz_chr_id := p_chr_id;
14221 l_rulv_rec.rule_information2 := l_ert_return_fee_amount;
14222 l_rulv_rec.rule_information_category := 'AMCRFE';
14223 l_rulv_rec.std_template_yn := 'N';
14224 l_rulv_rec.warn_yn := 'N';
14225 END IF;
14226
14227 IF (l_ert_return_fee_formula IS NOT NULL) THEN
14228 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14229 l_rulv_rec.dnz_chr_id := p_chr_id;
14230 l_rulv_rec.rule_information3 := l_ert_return_fee_formula;
14231 l_rulv_rec.rule_information_category := 'AMCRFE';
14232 l_rulv_rec.std_template_yn := 'N';
14233 l_rulv_rec.warn_yn := 'N';
14234 END IF;
14235
14236 IF (l_ert_return_fee_prorate IS NOT NULL) THEN
14237 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14238 l_rulv_rec.dnz_chr_id := p_chr_id;
14239 l_rulv_rec.rule_information4 := l_ert_return_fee_prorate;
14240 l_rulv_rec.rule_information_category := 'AMCRFE';
14241 l_rulv_rec.std_template_yn := 'N';
14242 l_rulv_rec.warn_yn := 'N';
14243 END IF;
14244
14245 create_rule_group_and_rule(
14246 x_return_status => x_return_status,
14247 x_msg_count => x_msg_count,
14248 x_msg_data => x_msg_data,
14249 p_rgp_id => l_rgp_id,
14250 p_rgpv_rec => l_rgpv_rec,
14251 p_rulv_rec => l_rulv_rec,
14252 x_rgpv_rec => x_rgpv_rec,
14253 x_rulv_rec => x_rulv_rec
14254 );
14255
14256 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14257 raise header_rule_failed;
14258 END IF;
14259
14260 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14261 l_rgp_id := x_rgpv_rec.id;
14262 END IF;
14263 debug_message('------>Rule: AMTEWC/AMCRFE processed');
14264 l_rulv_rec := NULL;
14265
14266 l_ert_roll_inctv_option := p_header_rec.ert_roll_inctv_option;
14267 l_ert_roll_inctv_amount := TO_CHAR(p_header_rec.ert_roll_inctv_amount);
14268 l_ert_roll_inctv_formula := p_header_rec.ert_roll_inctv_formula;
14269 l_ert_roll_inctv_prorate := p_header_rec.ert_roll_inctv_prorate;
14270
14271 IF (l_ert_roll_inctv_option IS NULL
14272 OR
14273 l_ert_roll_inctv_amount IS NULL
14274 OR
14275 l_ert_roll_inctv_formula IS NULL
14276 OR
14277 l_ert_roll_inctv_prorate IS NULL
14278 AND
14279 p_header_rec.template_number IS NOT NULL) THEN
14280 get_contract_rules(
14281 x_return_status => x_return_status,
14282 x_msg_count => x_msg_count,
14283 x_msg_data => x_msg_data,
14284 p_chr_id => p_template_id,
14285 p_cle_id => NULL,
14286 p_rgd_code => 'AMTEWC',
14287 p_rule_code => 'AMCRIN',
14288 x_rulv_tbl => l_rulv_tbl,
14289 x_rule_count => l_rule_count
14290 );
14291
14292 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14293 RAISE header_rule_failed;
14294 END IF;
14295
14296 IF (l_rule_count > 0) THEN
14297 l_ert_roll_inctv_option := NVL(l_ert_roll_inctv_option,l_rulv_tbl(1).rule_information1);
14298 l_ert_roll_inctv_amount := NVL(l_ert_roll_inctv_amount,l_rulv_tbl(1).rule_information2);
14299 l_ert_roll_inctv_formula := NVL(l_ert_roll_inctv_formula,l_rulv_tbl(1).rule_information3);
14300 l_ert_roll_inctv_prorate := NVL(l_ert_roll_inctv_prorate,l_rulv_tbl(1).rule_information4);
14301 END IF;
14302 END IF;
14303
14304 IF (l_ert_roll_inctv_option IS NOT NULL) THEN
14305 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14306 l_rulv_rec.dnz_chr_id := p_chr_id;
14307 l_rulv_rec.rule_informaTion1 := l_ert_roll_inctv_option;
14308 l_rulv_rec.rule_information_category := 'AMCRIN';
14309 l_rulv_rec.std_template_yn := 'N';
14310 l_rulv_rec.warn_yn := 'N';
14311 END IF;
14312
14313 IF (l_ert_roll_inctv_amount IS NOT NULL) THEN
14314 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14315 l_rulv_rec.dnz_chr_id := p_chr_id;
14316 l_rulv_rec.rule_information2 := l_ert_roll_inctv_amount;
14317 l_rulv_rec.rule_information_category := 'AMCRIN';
14318 l_rulv_rec.std_template_yn := 'N';
14319 l_rulv_rec.warn_yn := 'N';
14320 END IF;
14321
14322 IF (l_ert_roll_inctv_formula IS NOT NULL) THEN
14323 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14324 l_rulv_rec.dnz_chr_id := p_chr_id;
14325 l_rulv_rec.rule_information3 := l_ert_roll_inctv_formula;
14326 l_rulv_rec.rule_information_category := 'AMCRIN';
14327 l_rulv_rec.std_template_yn := 'N';
14328 l_rulv_rec.warn_yn := 'N';
14329 END IF;
14330
14331 IF (l_ert_roll_inctv_prorate IS NOT NULL) THEN
14332 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14333 l_rulv_rec.dnz_chr_id := p_chr_id;
14334 l_rulv_rec.rule_information4 := l_ert_roll_inctv_prorate;
14335 l_rulv_rec.rule_information_category := 'AMCRIN';
14336 l_rulv_rec.std_template_yn := 'N';
14337 l_rulv_rec.warn_yn := 'N';
14338 END IF;
14339
14340 create_rule_group_and_rule(
14341 x_return_status => x_return_status,
14342 x_msg_count => x_msg_count,
14343 x_msg_data => x_msg_data,
14344 p_rgp_id => l_rgp_id,
14345 p_rgpv_rec => l_rgpv_rec,
14346 p_rulv_rec => l_rulv_rec,
14347 x_rgpv_rec => x_rgpv_rec,
14348 x_rulv_rec => x_rulv_rec
14349 );
14350
14351 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14352 raise header_rule_failed;
14353 END IF;
14354
14355 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14356 l_rgp_id := x_rgpv_rec.id;
14357 END IF;
14358 debug_message('------>Rule: AMTEWC/AMCRIN processed');
14359 l_rulv_rec := NULL;
14360
14361 l_ert_secu_dep_dispo_option := p_header_rec.ert_secu_dep_dispo_option;
14362 l_ert_secu_dep_dispo_amount := TO_CHAR(p_header_rec.ert_secu_dep_dispo_amount);
14363 l_ert_secu_dep_dispo_formula := p_header_rec.ert_secu_dep_dispo_formula;
14364 l_ert_secu_dep_dispo_prorate := p_header_rec.ert_secu_dep_dispo_prorate;
14365
14366 IF (l_ert_secu_dep_dispo_option IS NULL
14367 OR
14368 l_ert_secu_dep_dispo_amount IS NULL
14369 OR
14370 l_ert_secu_dep_dispo_formula IS NULL
14371 OR
14372 l_ert_secu_dep_dispo_prorate IS NULL
14373 AND
14374 p_header_rec.template_number IS NOT NULL) THEN
14375 get_contract_rules(
14376 x_return_status => x_return_status,
14377 x_msg_count => x_msg_count,
14378 x_msg_data => x_msg_data,
14379 p_chr_id => p_template_id,
14380 p_cle_id => NULL,
14381 p_rgd_code => 'AMTEWC',
14382 p_rule_code => 'AMCSDD',
14383 x_rulv_tbl => l_rulv_tbl,
14384 x_rule_count => l_rule_count
14385 );
14386
14387 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14388 RAISE header_rule_failed;
14389 END IF;
14390
14391 IF (l_rule_count > 0) THEN
14392 l_ert_secu_dep_dispo_option := NVL(l_ert_secu_dep_dispo_option,l_rulv_tbl(1).rule_information1);
14393 l_ert_secu_dep_dispo_amount := NVL(l_ert_secu_dep_dispo_amount,l_rulv_tbl(1).rule_information2);
14394 l_ert_secu_dep_dispo_formula := NVL(l_ert_secu_dep_dispo_formula,l_rulv_tbl(1).rule_information3);
14395 l_ert_secu_dep_dispo_prorate := NVL(l_ert_secu_dep_dispo_prorate,l_rulv_tbl(1).rule_information4);
14396 END IF;
14397 END IF;
14398
14399 IF (l_ert_secu_dep_dispo_option IS NOT NULL) THEN
14400 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14401 l_rulv_rec.dnz_chr_id := p_chr_id;
14402 l_rulv_rec.rule_informaTion1 := l_ert_secu_dep_dispo_option;
14403 l_rulv_rec.rule_information_category := 'AMCSDD';
14404 l_rulv_rec.std_template_yn := 'N';
14405 l_rulv_rec.warn_yn := 'N';
14406 END IF;
14407
14408 IF (l_ert_secu_dep_dispo_amount IS NOT NULL) THEN
14409 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14410 l_rulv_rec.dnz_chr_id := p_chr_id;
14411 l_rulv_rec.rule_information2 := l_ert_secu_dep_dispo_amount;
14412 l_rulv_rec.rule_information_category := 'AMCSDD';
14413 l_rulv_rec.std_template_yn := 'N';
14414 l_rulv_rec.warn_yn := 'N';
14415 END IF;
14416
14417 IF (l_ert_secu_dep_dispo_formula IS NOT NULL) THEN
14418 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14419 l_rulv_rec.dnz_chr_id := p_chr_id;
14420 l_rulv_rec.rule_information3 := l_ert_secu_dep_dispo_formula;
14421 l_rulv_rec.rule_information_category := 'AMCSDD';
14422 l_rulv_rec.std_template_yn := 'N';
14423 l_rulv_rec.warn_yn := 'N';
14424 END IF;
14425
14426 IF (l_ert_secu_dep_dispo_prorate IS NOT NULL) THEN
14427 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14428 l_rulv_rec.dnz_chr_id := p_chr_id;
14429 l_rulv_rec.rule_information4 := l_ert_secu_dep_dispo_prorate;
14430 l_rulv_rec.rule_information_category := 'AMCSDD';
14431 l_rulv_rec.std_template_yn := 'N';
14432 l_rulv_rec.warn_yn := 'N';
14433 END IF;
14434
14435 create_rule_group_and_rule(
14436 x_return_status => x_return_status,
14437 x_msg_count => x_msg_count,
14438 x_msg_data => x_msg_data,
14439 p_rgp_id => l_rgp_id,
14440 p_rgpv_rec => l_rgpv_rec,
14441 p_rulv_rec => l_rulv_rec,
14442 x_rgpv_rec => x_rgpv_rec,
14443 x_rulv_rec => x_rulv_rec
14444 );
14445
14446 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14447 raise header_rule_failed;
14448 END IF;
14449
14450 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14451 l_rgp_id := x_rgpv_rec.id;
14452 END IF;
14453 debug_message('------>Rule: AMTEWC/AMCSDD processed');
14454 l_rulv_rec := NULL;
14455
14456 l_ert_term_penalty_option := p_header_rec.ert_term_penalty_option;
14457 l_ert_term_penalty_amount := TO_CHAR(p_header_rec.ert_term_penalty_amount);
14458 l_ert_term_penalty_formula := p_header_rec.ert_term_penalty_formula;
14459 l_ert_term_penalty_prorate := p_header_rec.ert_term_penalty_prorate;
14460 l_ert_term_penalty_cap_option := p_header_rec.ert_term_penalty_cap_option;
14461 l_ert_term_penalty_cap_amount := TO_CHAR(p_header_rec.ert_term_penalty_cap_amount);
14462 l_ert_term_penalty_cap_formula := p_header_rec.ert_term_penalty_cap_formula;
14463
14464 IF (l_ert_term_penalty_option IS NULL
14465 OR
14466 l_ert_term_penalty_amount IS NULL
14467 OR
14468 l_ert_term_penalty_formula IS NULL
14469 OR
14470 l_ert_term_penalty_prorate IS NULL
14471 OR
14472 l_ert_term_penalty_cap_option IS NULL
14473 OR
14474 l_ert_term_penalty_cap_amount IS NULL
14475 OR
14476 l_ert_term_penalty_cap_formula IS NULL
14477 AND
14478 p_header_rec.template_number IS NOT NULL) THEN
14479 get_contract_rules(
14480 x_return_status => x_return_status,
14481 x_msg_count => x_msg_count,
14482 x_msg_data => x_msg_data,
14483 p_chr_id => p_template_id,
14484 p_cle_id => NULL,
14485 p_rgd_code => 'AMTEWC',
14486 p_rule_code => 'AMCTPE',
14487 x_rulv_tbl => l_rulv_tbl,
14488 x_rule_count => l_rule_count
14489 );
14490
14491 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14492 RAISE header_rule_failed;
14493 END IF;
14494
14495 IF (l_rule_count > 0) THEN
14496 l_ert_term_penalty_option := NVL(l_ert_term_penalty_option,l_rulv_tbl(1).rule_information1);
14497 l_ert_term_penalty_amount := NVL(l_ert_term_penalty_amount,l_rulv_tbl(1).rule_information2);
14498 l_ert_term_penalty_formula := NVL(l_ert_term_penalty_formula,l_rulv_tbl(1).rule_information3);
14499 l_ert_term_penalty_prorate := NVL(l_ert_term_penalty_prorate,l_rulv_tbl(1).rule_information4);
14500 l_ert_term_penalty_cap_option := NVL(l_ert_term_penalty_cap_option,l_rulv_tbl(1).rule_information5);
14501 l_ert_term_penalty_cap_amount := NVL(l_ert_term_penalty_cap_amount,l_rulv_tbl(1).rule_information6);
14502 l_ert_term_penalty_cap_formula := NVL(l_ert_term_penalty_cap_formula,l_rulv_tbl(1).rule_information7);
14503 END IF;
14504 END IF;
14505
14506 IF (l_ert_term_penalty_option IS NOT NULL) THEN
14507 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14508 l_rulv_rec.dnz_chr_id := p_chr_id;
14509 l_rulv_rec.rule_informaTion1 := l_ert_term_penalty_option;
14510 l_rulv_rec.rule_information_category := 'AMCTPE';
14511 l_rulv_rec.std_template_yn := 'N';
14512 l_rulv_rec.warn_yn := 'N';
14513 END IF;
14514
14515 IF (l_ert_term_penalty_amount IS NOT NULL) THEN
14516 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14517 l_rulv_rec.dnz_chr_id := p_chr_id;
14518 l_rulv_rec.rule_information2 := l_ert_term_penalty_amount;
14519 l_rulv_rec.rule_information_category := 'AMCTPE';
14520 l_rulv_rec.std_template_yn := 'N';
14521 l_rulv_rec.warn_yn := 'N';
14522 END IF;
14523
14524 IF (l_ert_term_penalty_formula IS NOT NULL) THEN
14525 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14526 l_rulv_rec.dnz_chr_id := p_chr_id;
14527 l_rulv_rec.rule_information3 := l_ert_term_penalty_formula;
14528 l_rulv_rec.rule_information_category := 'AMCTPE';
14529 l_rulv_rec.std_template_yn := 'N';
14530 l_rulv_rec.warn_yn := 'N';
14531 END IF;
14532
14533 IF (l_ert_term_penalty_prorate IS NOT NULL) THEN
14534 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14535 l_rulv_rec.dnz_chr_id := p_chr_id;
14536 l_rulv_rec.rule_information4 := l_ert_term_penalty_prorate;
14537 l_rulv_rec.rule_information_category := 'AMCTPE';
14538 l_rulv_rec.std_template_yn := 'N';
14539 l_rulv_rec.warn_yn := 'N';
14540 END IF;
14541
14542 IF (l_ert_term_penalty_cap_option IS NOT NULL) THEN
14543 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14544 l_rulv_rec.dnz_chr_id := p_chr_id;
14545 l_rulv_rec.rule_informaTion5 := l_ert_term_penalty_cap_option;
14546 l_rulv_rec.rule_information_category := 'AMCTPE';
14547 l_rulv_rec.std_template_yn := 'N';
14548 l_rulv_rec.warn_yn := 'N';
14549 END IF;
14550
14551 IF (l_ert_term_penalty_cap_amount IS NOT NULL) THEN
14552 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14553 l_rulv_rec.dnz_chr_id := p_chr_id;
14554 l_rulv_rec.rule_information6 := l_ert_term_penalty_cap_amount;
14555 l_rulv_rec.rule_information_category := 'AMCTPE';
14556 l_rulv_rec.std_template_yn := 'N';
14557 l_rulv_rec.warn_yn := 'N';
14558 END IF;
14559
14560 IF (l_ert_term_penalty_cap_formula IS NOT NULL) THEN
14561 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14562 l_rulv_rec.dnz_chr_id := p_chr_id;
14563 l_rulv_rec.rule_information7 := l_ert_term_penalty_cap_formula;
14564 l_rulv_rec.rule_information_category := 'AMCTPE';
14565 l_rulv_rec.std_template_yn := 'N';
14566 l_rulv_rec.warn_yn := 'N';
14567 END IF;
14568
14569 create_rule_group_and_rule(
14570 x_return_status => x_return_status,
14571 x_msg_count => x_msg_count,
14572 x_msg_data => x_msg_data,
14573 p_rgp_id => l_rgp_id,
14574 p_rgpv_rec => l_rgpv_rec,
14575 p_rulv_rec => l_rulv_rec,
14576 x_rgpv_rec => x_rgpv_rec,
14577 x_rulv_rec => x_rulv_rec
14578 );
14579
14580 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14581 raise header_rule_failed;
14582 END IF;
14583
14584 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14585 l_rgp_id := x_rgpv_rec.id;
14586 END IF;
14587 debug_message('------>Rule: AMTEWC/AMCTPE processed');
14588 l_rulv_rec := NULL;
14589
14590 l_ert_est_prop_tax_option := p_header_rec.ert_est_prop_tax_option;
14591 l_ert_est_prop_tax_amount := TO_CHAR(p_header_rec.ert_est_prop_tax_amount);
14592 l_ert_est_prop_tax_formula := p_header_rec.ert_est_prop_tax_formula;
14593 l_ert_est_prop_tax_prorate := p_header_rec.ert_est_prop_tax_prorate;
14594
14595 IF (l_ert_est_prop_tax_option IS NULL
14596 OR
14597 l_ert_est_prop_tax_amount IS NULL
14598 OR
14599 l_ert_est_prop_tax_formula IS NULL
14600 OR
14601 l_ert_est_prop_tax_prorate IS NULL
14602 AND
14603 p_header_rec.template_number IS NOT NULL) THEN
14604 get_contract_rules(
14605 x_return_status => x_return_status,
14606 x_msg_count => x_msg_count,
14607 x_msg_data => x_msg_data,
14608 p_chr_id => p_template_id,
14609 p_cle_id => NULL,
14610 p_rgd_code => 'AMTEWC',
14611 p_rule_code => 'AMPRTX',
14612 x_rulv_tbl => l_rulv_tbl,
14613 x_rule_count => l_rule_count
14614 );
14615
14616 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14617 RAISE header_rule_failed;
14618 END IF;
14619
14620 IF (l_rule_count > 0) THEN
14621 l_ert_est_prop_tax_option := NVL(l_ert_est_prop_tax_option,l_rulv_tbl(1).rule_information1);
14622 l_ert_est_prop_tax_amount := NVL(l_ert_est_prop_tax_amount,l_rulv_tbl(1).rule_information2);
14623 l_ert_est_prop_tax_formula := NVL(l_ert_est_prop_tax_formula,l_rulv_tbl(1).rule_information3);
14624 l_ert_est_prop_tax_prorate := NVL(l_ert_est_prop_tax_prorate,l_rulv_tbl(1).rule_information4);
14625 END IF;
14626 END IF;
14627
14628 IF (l_ert_est_prop_tax_option IS NOT NULL) THEN
14629 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14630 l_rulv_rec.dnz_chr_id := p_chr_id;
14631 l_rulv_rec.rule_informaTion1 := l_ert_est_prop_tax_option;
14632 l_rulv_rec.rule_information_category := 'AMPRTX';
14633 l_rulv_rec.std_template_yn := 'N';
14634 l_rulv_rec.warn_yn := 'N';
14635 END IF;
14636
14637 IF (l_ert_est_prop_tax_amount IS NOT NULL) THEN
14638 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14639 l_rulv_rec.dnz_chr_id := p_chr_id;
14640 l_rulv_rec.rule_information2 := l_ert_est_prop_tax_amount;
14641 l_rulv_rec.rule_information_category := 'AMPRTX';
14642 l_rulv_rec.std_template_yn := 'N';
14643 l_rulv_rec.warn_yn := 'N';
14644 END IF;
14645
14646 IF (l_ert_est_prop_tax_formula IS NOT NULL) THEN
14647 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14648 l_rulv_rec.dnz_chr_id := p_chr_id;
14649 l_rulv_rec.rule_information3 := l_ert_est_prop_tax_formula;
14650 l_rulv_rec.rule_information_category := 'AMPRTX';
14651 l_rulv_rec.std_template_yn := 'N';
14652 l_rulv_rec.warn_yn := 'N';
14653 END IF;
14654
14655 IF (l_ert_est_prop_tax_prorate IS NOT NULL) THEN
14656 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14657 l_rulv_rec.dnz_chr_id := p_chr_id;
14658 l_rulv_rec.rule_information4 := l_ert_est_prop_tax_prorate;
14659 l_rulv_rec.rule_information_category := 'AMPRTX';
14660 l_rulv_rec.std_template_yn := 'N';
14661 l_rulv_rec.warn_yn := 'N';
14662 END IF;
14663
14664 create_rule_group_and_rule(
14665 x_return_status => x_return_status,
14666 x_msg_count => x_msg_count,
14667 x_msg_data => x_msg_data,
14668 p_rgp_id => l_rgp_id,
14669 p_rgpv_rec => l_rgpv_rec,
14670 p_rulv_rec => l_rulv_rec,
14671 x_rgpv_rec => x_rgpv_rec,
14672 x_rulv_rec => x_rulv_rec
14673 );
14674
14675 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14676 raise header_rule_failed;
14677 END IF;
14678
14679 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14680 l_rgp_id := x_rgpv_rec.id;
14681 END IF;
14682 debug_message('------>Rule: AMTEWC/AMPRTX processed');
14683 l_rulv_rec := NULL;
14684
14685 l_ert_contr_fees_option := p_header_rec.ert_contr_fees_option;
14686
14687 IF (l_ert_contr_fees_option IS NULL
14688 AND
14689 p_header_rec.template_number IS NOT NULL) THEN
14690 get_contract_rules(
14691 x_return_status => x_return_status,
14692 x_msg_count => x_msg_count,
14693 x_msg_data => x_msg_data,
14694 p_chr_id => p_template_id,
14695 p_cle_id => NULL,
14696 p_rgd_code => 'AMTEWC',
14697 p_rule_code => 'AMYFEE',
14698 x_rulv_tbl => l_rulv_tbl,
14699 x_rule_count => l_rule_count
14700 );
14701
14702 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14703 RAISE header_rule_failed;
14704 END IF;
14705
14706 IF (l_rule_count > 0) THEN
14707 l_ert_contr_fees_option := NVL(l_ert_contr_fees_option,l_rulv_tbl(1).rule_information1);
14708 END IF;
14709 END IF;
14710
14711 IF (l_ert_contr_fees_option IS NOT NULL) THEN
14712 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14713 l_rulv_rec.dnz_chr_id := p_chr_id;
14714 l_rulv_rec.rule_information1 := l_ert_contr_fees_option;
14715 l_rulv_rec.rule_information_category := 'AMYFEE';
14716 l_rulv_rec.std_template_yn := 'N';
14717 l_rulv_rec.warn_yn := 'N';
14718 END IF;
14719
14720 create_rule_group_and_rule(
14721 x_return_status => x_return_status,
14722 x_msg_count => x_msg_count,
14723 x_msg_data => x_msg_data,
14724 p_rgp_id => l_rgp_id,
14725 p_rgpv_rec => l_rgpv_rec,
14726 p_rulv_rec => l_rulv_rec,
14727 x_rgpv_rec => x_rgpv_rec,
14728 x_rulv_rec => x_rulv_rec
14729 );
14730
14731 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14732 raise header_rule_failed;
14733 END IF;
14734
14735 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14736 l_rgp_id := x_rgpv_rec.id;
14737 END IF;
14738 debug_message('------>Rule: AMTEWC/AMYFEE processed');
14739 l_rulv_rec := NULL;
14740
14741 l_ert_outstnd_bal_option := p_header_rec.ert_outstnd_bal_option;
14742
14743 IF (l_ert_outstnd_bal_option IS NULL
14744 AND
14745 p_header_rec.template_number IS NOT NULL) THEN
14746 get_contract_rules(
14747 x_return_status => x_return_status,
14748 x_msg_count => x_msg_count,
14749 x_msg_data => x_msg_data,
14750 p_chr_id => p_template_id,
14751 p_cle_id => NULL,
14752 p_rgd_code => 'AMTEWC',
14753 p_rule_code => 'AMYOUB',
14754 x_rulv_tbl => l_rulv_tbl,
14755 x_rule_count => l_rule_count
14756 );
14757
14758 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14759 RAISE header_rule_failed;
14760 END IF;
14761
14762 IF (l_rule_count > 0) THEN
14763 l_ert_outstnd_bal_option := l_rulv_tbl(1).rule_information1;
14764 END IF;
14765 END IF;
14766
14767 IF (l_ert_outstnd_bal_option IS NOT NULL) THEN
14768 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14769 l_rulv_rec.dnz_chr_id := p_chr_id;
14770 l_rulv_rec.rule_information1 := l_ert_outstnd_bal_option;
14771 l_rulv_rec.rule_information_category := 'AMYOUB';
14772 l_rulv_rec.std_template_yn := 'N';
14773 l_rulv_rec.warn_yn := 'N';
14774 END IF;
14775
14776 create_rule_group_and_rule(
14777 x_return_status => x_return_status,
14778 x_msg_count => x_msg_count,
14779 x_msg_data => x_msg_data,
14780 p_rgp_id => l_rgp_id,
14781 p_rgpv_rec => l_rgpv_rec,
14782 p_rulv_rec => l_rulv_rec,
14783 x_rgpv_rec => x_rgpv_rec,
14784 x_rulv_rec => x_rulv_rec
14785 );
14786
14787 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14788 raise header_rule_failed;
14789 END IF;
14790
14791 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14792 l_rgp_id := x_rgpv_rec.id;
14793 END IF;
14794 debug_message('------>Rule: AMTEWC/AMYOUB processed');
14795 l_rulv_rec := NULL;
14796
14797 l_ert_serv_mant_option := p_header_rec.ert_serv_mant_option;
14798 l_ert_serv_mant_frml := p_header_rec.ert_serv_mant_frml;
14799
14800 IF ((l_ert_serv_mant_option IS NULL
14801 OR
14802 l_ert_serv_mant_frml IS NULL
14803 )
14804 AND
14805 p_header_rec.template_number IS NOT NULL) THEN
14806 get_contract_rules(
14807 x_return_status => x_return_status,
14808 x_msg_count => x_msg_count,
14809 x_msg_data => x_msg_data,
14810 p_chr_id => p_template_id,
14811 p_cle_id => NULL,
14812 p_rgd_code => 'AMTEWC',
14813 p_rule_code => 'AMYSAM',
14814 x_rulv_tbl => l_rulv_tbl,
14815 x_rule_count => l_rule_count
14816 );
14817
14818 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14819 RAISE header_rule_failed;
14820 END IF;
14821
14822 IF (l_rule_count > 0) THEN
14823 l_ert_serv_mant_option := NVL(l_ert_serv_mant_option,l_rulv_tbl(1).rule_information1);
14824 l_ert_serv_mant_frml := NVL(l_ert_serv_mant_frml,l_rulv_tbl(1).rule_information2);
14825 END IF;
14826 END IF;
14827
14828 IF (l_ert_serv_mant_option IS NOT NULL) THEN
14829 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14830 l_rulv_rec.dnz_chr_id := p_chr_id;
14831 l_rulv_rec.rule_information1 := l_ert_serv_mant_option;
14832 l_rulv_rec.rule_information_category := 'AMYSAM';
14833 l_rulv_rec.std_template_yn := 'N';
14834 l_rulv_rec.warn_yn := 'N';
14835 END IF;
14836
14837 IF (l_ert_serv_mant_frml IS NOT NULL) THEN
14838 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14839 l_rulv_rec.dnz_chr_id := p_chr_id;
14840 l_rulv_rec.rule_information2 := l_ert_serv_mant_frml;
14841 l_rulv_rec.rule_information_category := 'AMYSAM';
14842 l_rulv_rec.std_template_yn := 'N';
14843 l_rulv_rec.warn_yn := 'N';
14844 END IF;
14845
14846 create_rule_group_and_rule(
14847 x_return_status => x_return_status,
14848 x_msg_count => x_msg_count,
14849 x_msg_data => x_msg_data,
14850 p_rgp_id => l_rgp_id,
14851 p_rgpv_rec => l_rgpv_rec,
14852 p_rulv_rec => l_rulv_rec,
14853 x_rgpv_rec => x_rgpv_rec,
14854 x_rulv_rec => x_rulv_rec
14855 );
14856
14857 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14858 raise header_rule_failed;
14859 END IF;
14860
14861 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14862 l_rgp_id := x_rgpv_rec.id;
14863 END IF;
14864
14865 debug_message('------>Rule: AMTEWC/AMYSAM processed');
14866
14867 /**** AKP Copied from here for AMTEWC 4067094 ***/
14868 l_rulv_rec := NULL;
14869
14870 l_ert_absorbed_fee_frml := p_header_rec.ert_absorbed_fee_frml;
14871
14872 IF (l_ert_absorbed_fee_frml IS NULL
14873 AND
14874 p_header_rec.template_number IS NOT NULL) THEN
14875 get_contract_rules(
14876 x_return_status => x_return_status,
14877 x_msg_count => x_msg_count,
14878 x_msg_data => x_msg_data,
14879 p_chr_id => p_template_id,
14880 p_cle_id => NULL,
14881 p_rgd_code => 'AMTEWC',
14882 p_rule_code => 'AMAFEE',
14883 x_rulv_tbl => l_rulv_tbl,
14884 x_rule_count => l_rule_count
14885 );
14886
14887 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14888 RAISE header_rule_failed;
14889 END IF;
14890
14891 IF (l_rule_count > 0) THEN
14892 l_ert_absorbed_fee_frml := l_rulv_tbl(1).rule_information3;
14893 END IF;
14894 END IF;
14895
14896 IF (l_ert_absorbed_fee_frml IS NOT NULL) THEN
14897 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14898 l_rulv_rec.dnz_chr_id := p_chr_id;
14899 l_rulv_rec.rule_information3 := l_ert_absorbed_fee_frml;
14900 l_rulv_rec.rule_information_category := 'AMAFEE';
14901 l_rulv_rec.std_template_yn := 'N';
14902 l_rulv_rec.warn_yn := 'N';
14903 END IF;
14904
14905 create_rule_group_and_rule(
14906 x_return_status => x_return_status,
14907 x_msg_count => x_msg_count,
14908 x_msg_data => x_msg_data,
14909 p_rgp_id => l_rgp_id,
14910 p_rgpv_rec => l_rgpv_rec,
14911 p_rulv_rec => l_rulv_rec,
14912 x_rgpv_rec => x_rgpv_rec,
14913 x_rulv_rec => x_rulv_rec
14914 );
14915
14916 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14917 raise header_rule_failed;
14918 END IF;
14919
14920 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14921 l_rgp_id := x_rgpv_rec.id;
14922 END IF;
14923
14924 debug_message('------>Rule: AMTEWC/AMAFEE processed');
14925
14926 l_rulv_rec := NULL;
14927
14928 l_ert_expense_fee_frml := p_header_rec.ert_expense_fee_frml;
14929
14930 IF (l_ert_expense_fee_frml IS NULL
14931 AND
14932 p_header_rec.template_number IS NOT NULL) THEN
14933 get_contract_rules(
14934 x_return_status => x_return_status,
14935 x_msg_count => x_msg_count,
14936 x_msg_data => x_msg_data,
14937 p_chr_id => p_template_id,
14938 p_cle_id => NULL,
14939 p_rgd_code => 'AMTEWC',
14940 p_rule_code => 'AMEFEE',
14941 x_rulv_tbl => l_rulv_tbl,
14942 x_rule_count => l_rule_count
14943 );
14944
14945 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14946 RAISE header_rule_failed;
14947 END IF;
14948
14949 IF (l_rule_count > 0) THEN
14950 l_ert_expense_fee_frml := l_rulv_tbl(1).rule_information3;
14951 END IF;
14952 END IF;
14953
14954 IF (l_ert_expense_fee_frml IS NOT NULL) THEN
14955 l_rulv_rec.rgp_id := x_rgpv_rec.id;
14956 l_rulv_rec.dnz_chr_id := p_chr_id;
14957 l_rulv_rec.rule_information3 := l_ert_expense_fee_frml;
14958 l_rulv_rec.rule_information_category := 'AMEFEE';
14959 l_rulv_rec.std_template_yn := 'N';
14960 l_rulv_rec.warn_yn := 'N';
14961 END IF;
14962
14963 create_rule_group_and_rule(
14964 x_return_status => x_return_status,
14965 x_msg_count => x_msg_count,
14966 x_msg_data => x_msg_data,
14967 p_rgp_id => l_rgp_id,
14968 p_rgpv_rec => l_rgpv_rec,
14969 p_rulv_rec => l_rulv_rec,
14970 x_rgpv_rec => x_rgpv_rec,
14971 x_rulv_rec => x_rulv_rec
14972 );
14973
14974 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
14975 raise header_rule_failed;
14976 END IF;
14977
14978 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
14979 l_rgp_id := x_rgpv_rec.id;
14980 END IF;
14981
14982 debug_message('------>Rule: AMTEWC/AMEFEE processed');
14983
14984 l_rulv_rec := NULL;
14985
14986 l_ert_financed_fee_frml := p_header_rec.ert_financed_fee_frml;
14987
14988 IF (l_ert_financed_fee_frml IS NULL
14989 AND
14990 p_header_rec.template_number IS NOT NULL) THEN
14991 get_contract_rules(
14992 x_return_status => x_return_status,
14993 x_msg_count => x_msg_count,
14994 x_msg_data => x_msg_data,
14995 p_chr_id => p_template_id,
14996 p_cle_id => NULL,
14997 p_rgd_code => 'AMTEWC',
14998 p_rule_code => 'AMFFEE',
14999 x_rulv_tbl => l_rulv_tbl,
15000 x_rule_count => l_rule_count
15001 );
15002
15003 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15004 RAISE header_rule_failed;
15005 END IF;
15006
15007 IF (l_rule_count > 0) THEN
15008 l_ert_financed_fee_frml := l_rulv_tbl(1).rule_information3;
15009 END IF;
15010 END IF;
15011
15012 IF (l_ert_financed_fee_frml IS NOT NULL) THEN
15013 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15014 l_rulv_rec.dnz_chr_id := p_chr_id;
15015 l_rulv_rec.rule_information3 := l_ert_financed_fee_frml;
15016 l_rulv_rec.rule_information_category := 'AMFFEE';
15017 l_rulv_rec.std_template_yn := 'N';
15018 l_rulv_rec.warn_yn := 'N';
15019 END IF;
15020
15021 create_rule_group_and_rule(
15022 x_return_status => x_return_status,
15023 x_msg_count => x_msg_count,
15024 x_msg_data => x_msg_data,
15025 p_rgp_id => l_rgp_id,
15026 p_rgpv_rec => l_rgpv_rec,
15027 p_rulv_rec => l_rulv_rec,
15028 x_rgpv_rec => x_rgpv_rec,
15029 x_rulv_rec => x_rulv_rec
15030 );
15031
15032 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15033 raise header_rule_failed;
15034 END IF;
15035
15036 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15037 l_rgp_id := x_rgpv_rec.id;
15038 END IF;
15039
15040 debug_message('------>Rule: AMTEWC/AMFFEE processed');
15041
15042 l_rulv_rec := NULL;
15043
15044 l_ert_general_fee_frml := p_header_rec.ert_general_fee_frml;
15045
15046 IF (l_ert_general_fee_frml IS NULL
15047 AND
15048 p_header_rec.template_number IS NOT NULL) THEN
15049 get_contract_rules(
15050 x_return_status => x_return_status,
15051 x_msg_count => x_msg_count,
15052 x_msg_data => x_msg_data,
15053 p_chr_id => p_template_id,
15054 p_cle_id => NULL,
15055 p_rgd_code => 'AMTEWC',
15056 p_rule_code => 'AMGFEE',
15057 x_rulv_tbl => l_rulv_tbl,
15058 x_rule_count => l_rule_count
15059 );
15060
15061 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15062 RAISE header_rule_failed;
15063 END IF;
15064
15065 IF (l_rule_count > 0) THEN
15066 l_ert_general_fee_frml := l_rulv_tbl(1).rule_information3;
15067 END IF;
15068 END IF;
15069
15070 IF (l_ert_general_fee_frml IS NOT NULL) THEN
15071 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15072 l_rulv_rec.dnz_chr_id := p_chr_id;
15073 l_rulv_rec.rule_information3 := l_ert_general_fee_frml;
15074 l_rulv_rec.rule_information_category := 'AMGFEE';
15075 l_rulv_rec.std_template_yn := 'N';
15076 l_rulv_rec.warn_yn := 'N';
15077 END IF;
15078
15079 create_rule_group_and_rule(
15080 x_return_status => x_return_status,
15081 x_msg_count => x_msg_count,
15082 x_msg_data => x_msg_data,
15083 p_rgp_id => l_rgp_id,
15084 p_rgpv_rec => l_rgpv_rec,
15085 p_rulv_rec => l_rulv_rec,
15086 x_rgpv_rec => x_rgpv_rec,
15087 x_rulv_rec => x_rulv_rec
15088 );
15089
15090 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15091 raise header_rule_failed;
15092 END IF;
15093
15094 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15095 l_rgp_id := x_rgpv_rec.id;
15096 END IF;
15097
15098 debug_message('------>Rule: AMTEWC/AMGFEE processed');
15099
15100 l_rulv_rec := NULL;
15101
15102 l_ert_income_fee_frml := p_header_rec.ert_income_fee_frml;
15103
15104 IF (l_ert_income_fee_frml IS NULL
15105 AND
15106 p_header_rec.template_number IS NOT NULL) THEN
15107 get_contract_rules(
15108 x_return_status => x_return_status,
15109 x_msg_count => x_msg_count,
15110 x_msg_data => x_msg_data,
15111 p_chr_id => p_template_id,
15112 p_cle_id => NULL,
15113 p_rgd_code => 'AMTEWC',
15114 p_rule_code => 'AMIFEE',
15115 x_rulv_tbl => l_rulv_tbl,
15116 x_rule_count => l_rule_count
15117 );
15118
15119 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15120 RAISE header_rule_failed;
15121 END IF;
15122
15123 IF (l_rule_count > 0) THEN
15124 l_ert_income_fee_frml := l_rulv_tbl(1).rule_information3;
15125 END IF;
15126 END IF;
15127
15128 IF (l_ert_income_fee_frml IS NOT NULL) THEN
15129 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15130 l_rulv_rec.dnz_chr_id := p_chr_id;
15131 l_rulv_rec.rule_information3 := l_ert_income_fee_frml;
15132 l_rulv_rec.rule_information_category := 'AMIFEE';
15133 l_rulv_rec.std_template_yn := 'N';
15134 l_rulv_rec.warn_yn := 'N';
15135 END IF;
15136
15137 create_rule_group_and_rule(
15138 x_return_status => x_return_status,
15139 x_msg_count => x_msg_count,
15140 x_msg_data => x_msg_data,
15141 p_rgp_id => l_rgp_id,
15142 p_rgpv_rec => l_rgpv_rec,
15143 p_rulv_rec => l_rulv_rec,
15144 x_rgpv_rec => x_rgpv_rec,
15145 x_rulv_rec => x_rulv_rec
15146 );
15147
15148 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15149 raise header_rule_failed;
15150 END IF;
15151
15152 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15153 l_rgp_id := x_rgpv_rec.id;
15154 END IF;
15155
15156 debug_message('------>Rule: AMTEWC/AMIFEE processed');
15157
15158 l_rulv_rec := NULL;
15159
15160 l_ert_misc_fee_frml := p_header_rec.ert_misc_fee_frml;
15161
15162 IF (l_ert_misc_fee_frml IS NULL
15163 AND
15164 p_header_rec.template_number IS NOT NULL) THEN
15165 get_contract_rules(
15166 x_return_status => x_return_status,
15167 x_msg_count => x_msg_count,
15168 x_msg_data => x_msg_data,
15169 p_chr_id => p_template_id,
15170 p_cle_id => NULL,
15171 p_rgd_code => 'AMTEWC',
15172 p_rule_code => 'AMMFEE',
15173 x_rulv_tbl => l_rulv_tbl,
15174 x_rule_count => l_rule_count
15175 );
15176
15177 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15178 RAISE header_rule_failed;
15179 END IF;
15180
15181 IF (l_rule_count > 0) THEN
15182 l_ert_misc_fee_frml := l_rulv_tbl(1).rule_information3;
15183 END IF;
15184 END IF;
15185
15186 IF (l_ert_misc_fee_frml IS NOT NULL) THEN
15187 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15188 l_rulv_rec.dnz_chr_id := p_chr_id;
15189 l_rulv_rec.rule_information3 := l_ert_misc_fee_frml;
15190 l_rulv_rec.rule_information_category := 'AMMFEE';
15191 l_rulv_rec.std_template_yn := 'N';
15192 l_rulv_rec.warn_yn := 'N';
15193 END IF;
15194
15195 create_rule_group_and_rule(
15196 x_return_status => x_return_status,
15197 x_msg_count => x_msg_count,
15198 x_msg_data => x_msg_data,
15199 p_rgp_id => l_rgp_id,
15200 p_rgpv_rec => l_rgpv_rec,
15201 p_rulv_rec => l_rulv_rec,
15202 x_rgpv_rec => x_rgpv_rec,
15203 x_rulv_rec => x_rulv_rec
15204 );
15205
15206 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15207 raise header_rule_failed;
15208 END IF;
15209
15210 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15211 l_rgp_id := x_rgpv_rec.id;
15212 END IF;
15213
15214 debug_message('------>Rule: AMTEWC/AMMFEE processed');
15215
15216 l_rulv_rec := NULL;
15217
15218 l_ert_passthru_fee_frml := p_header_rec.ert_passthru_fee_frml;
15219
15220 IF (l_ert_passthru_fee_frml IS NULL
15221 AND
15222 p_header_rec.template_number IS NOT NULL) THEN
15223 get_contract_rules(
15224 x_return_status => x_return_status,
15225 x_msg_count => x_msg_count,
15226 x_msg_data => x_msg_data,
15227 p_chr_id => p_template_id,
15228 p_cle_id => NULL,
15229 p_rgd_code => 'AMTEWC',
15230 p_rule_code => 'AMPFEE',
15231 x_rulv_tbl => l_rulv_tbl,
15232 x_rule_count => l_rule_count
15233 );
15234
15235 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15236 RAISE header_rule_failed;
15237 END IF;
15238
15239 IF (l_rule_count > 0) THEN
15240 l_ert_passthru_fee_frml := l_rulv_tbl(1).rule_information3;
15241 END IF;
15242 END IF;
15243
15244 IF (l_ert_passthru_fee_frml IS NOT NULL) THEN
15245 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15246 l_rulv_rec.dnz_chr_id := p_chr_id;
15247 l_rulv_rec.rule_information3 := l_ert_passthru_fee_frml;
15248 l_rulv_rec.rule_information_category := 'AMPFEE';
15249 l_rulv_rec.std_template_yn := 'N';
15250 l_rulv_rec.warn_yn := 'N';
15251 END IF;
15252
15253 create_rule_group_and_rule(
15254 x_return_status => x_return_status,
15255 x_msg_count => x_msg_count,
15256 x_msg_data => x_msg_data,
15257 p_rgp_id => l_rgp_id,
15258 p_rgpv_rec => l_rgpv_rec,
15259 p_rulv_rec => l_rulv_rec,
15260 x_rgpv_rec => x_rgpv_rec,
15261 x_rulv_rec => x_rulv_rec
15262 );
15263
15264 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15265 raise header_rule_failed;
15266 END IF;
15267
15268 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15269 l_rgp_id := x_rgpv_rec.id;
15270 END IF;
15271
15272 debug_message('------>Rule: AMTEWC/AMPFEE processed');
15273
15274 l_rulv_rec := NULL;
15275
15276 l_ert_rollover_fee_frml := p_header_rec.ert_rollover_fee_frml;
15277
15278 IF (l_ert_rollover_fee_frml IS NULL
15279 AND
15280 p_header_rec.template_number IS NOT NULL) THEN
15281 get_contract_rules(
15282 x_return_status => x_return_status,
15283 x_msg_count => x_msg_count,
15284 x_msg_data => x_msg_data,
15285 p_chr_id => p_template_id,
15286 p_cle_id => NULL,
15287 p_rgd_code => 'AMTEWC',
15288 p_rule_code => 'AMRFEE',
15289 x_rulv_tbl => l_rulv_tbl,
15290 x_rule_count => l_rule_count
15291 );
15292
15293 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15294 RAISE header_rule_failed;
15295 END IF;
15296
15297 IF (l_rule_count > 0) THEN
15298 l_ert_rollover_fee_frml := l_rulv_tbl(1).rule_information3;
15299 END IF;
15300 END IF;
15301
15302 IF (l_ert_rollover_fee_frml IS NOT NULL) THEN
15303 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15304 l_rulv_rec.dnz_chr_id := p_chr_id;
15305 l_rulv_rec.rule_information3 := l_ert_rollover_fee_frml;
15306 l_rulv_rec.rule_information_category := 'AMRFEE';
15307 l_rulv_rec.std_template_yn := 'N';
15308 l_rulv_rec.warn_yn := 'N';
15309 END IF;
15310
15311 create_rule_group_and_rule(
15312 x_return_status => x_return_status,
15313 x_msg_count => x_msg_count,
15314 x_msg_data => x_msg_data,
15315 p_rgp_id => l_rgp_id,
15316 p_rgpv_rec => l_rgpv_rec,
15317 p_rulv_rec => l_rulv_rec,
15318 x_rgpv_rec => x_rgpv_rec,
15319 x_rulv_rec => x_rulv_rec
15320 );
15321
15322 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15323 raise header_rule_failed;
15324 END IF;
15325
15326 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15327 l_rgp_id := x_rgpv_rec.id;
15328 END IF;
15329
15330 debug_message('------>Rule: AMTEWC/AMRFEE processed');
15331 /**** AKP Copied to here for AMTEWC 4067094 ***/
15332
15333 -- Rule Group AMTFWC
15334
15335 l_rgpv_rec := NULL;
15336 l_rgp_id := NULL;
15337 l_rgpv_rec.rgd_code := 'AMTFWC';
15338 l_rgpv_rec.chr_id := p_chr_id;
15339 l_rgpv_rec.dnz_chr_id := p_chr_id;
15340 l_rgpv_rec.cle_id := NULL;
15341 l_rgpv_rec.rgp_type := 'KRG';
15342
15343 l_rulv_rec := NULL;
15344
15345 l_eot_quote_calc_term_option := p_header_rec.eot_quote_calc_term_option;
15346 l_eot_quote_calc_term_formula := p_header_rec.eot_quote_calc_term_formula;
15347
15348 IF (l_eot_quote_calc_term_option IS NULL
15349 OR
15350 l_eot_quote_calc_term_formula IS NULL
15351 AND
15352 p_header_rec.template_number IS NOT NULL) THEN
15353 get_contract_rules(
15354 x_return_status => x_return_status,
15355 x_msg_count => x_msg_count,
15356 x_msg_data => x_msg_data,
15357 p_chr_id => p_template_id,
15358 p_cle_id => NULL,
15359 p_rgd_code => 'AMTFWC',
15360 p_rule_code => 'AMATQC',
15361 x_rulv_tbl => l_rulv_tbl,
15362 x_rule_count => l_rule_count
15363 );
15364
15365 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15366 RAISE header_rule_failed;
15367 END IF;
15368
15369 IF (l_rule_count > 0) THEN
15370 l_eot_quote_calc_term_option := NVL(l_eot_quote_calc_term_option,l_rulv_tbl(1).rule_information1);
15371 l_eot_quote_calc_term_formula := NVL(l_eot_quote_calc_term_formula,l_rulv_tbl(1).rule_information2);
15372 END IF;
15373 END IF;
15374
15375 IF (l_eot_quote_calc_term_option IS NOT NULL) THEN
15376 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15377 l_rulv_rec.dnz_chr_id := p_chr_id;
15378 l_rulv_rec.rule_information1 := l_eot_quote_calc_term_option;
15379 l_rulv_rec.rule_information_category := 'AMATQC';
15380 l_rulv_rec.std_template_yn := 'N';
15381 l_rulv_rec.warn_yn := 'N';
15382 END IF;
15383
15384 IF (l_eot_quote_calc_term_formula IS NOT NULL) THEN
15385 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15386 l_rulv_rec.dnz_chr_id := p_chr_id;
15387 l_rulv_rec.rule_information2 := l_eot_quote_calc_term_formula;
15388 l_rulv_rec.rule_information_category := 'AMATQC';
15389 l_rulv_rec.std_template_yn := 'N';
15390 l_rulv_rec.warn_yn := 'N';
15391 END IF;
15392
15393 create_rule_group_and_rule(
15394 x_return_status => x_return_status,
15395 x_msg_count => x_msg_count,
15396 x_msg_data => x_msg_data,
15397 p_rgp_id => l_rgp_id,
15398 p_rgpv_rec => l_rgpv_rec,
15399 p_rulv_rec => l_rulv_rec,
15400 x_rgpv_rec => x_rgpv_rec,
15401 x_rulv_rec => x_rulv_rec
15402 );
15403
15404 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15405 raise header_rule_failed;
15406 END IF;
15407
15408 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15409 l_rgp_id := x_rgpv_rec.id;
15410 END IF;
15411 debug_message('------>Rule: AMTFWC/AMATQC processed');
15412 l_rulv_rec := NULL;
15413
15414 l_eot_contract_oblig_opt := p_header_rec.eot_contract_oblig_opt;
15415 l_eot_contract_oblig_amount := TO_CHAR(p_header_rec.eot_contract_oblig_amount);
15416 l_eot_contract_oblig_formula := p_header_rec.eot_contract_oblig_formula;
15417 l_eot_contract_oblig_prorate := p_header_rec.eot_contract_oblig_prorate;
15418
15419 IF (l_eot_contract_oblig_opt IS NULL
15420 OR
15421 l_eot_contract_oblig_amount IS NULL
15422 OR
15423 l_eot_contract_oblig_formula IS NULL
15424 OR
15425 l_eot_contract_oblig_prorate IS NULL
15426 AND
15427 p_header_rec.template_number IS NOT NULL) THEN
15428 get_contract_rules(
15429 x_return_status => x_return_status,
15430 x_msg_count => x_msg_count,
15431 x_msg_data => x_msg_data,
15432 p_chr_id => p_template_id,
15433 p_cle_id => NULL,
15434 p_rgd_code => 'AMTFWC',
15435 p_rule_code => 'AMBCOC',
15436 x_rulv_tbl => l_rulv_tbl,
15437 x_rule_count => l_rule_count
15438 );
15439
15440 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15441 RAISE header_rule_failed;
15442 END IF;
15443
15444 IF (l_rule_count > 0) THEN
15445 l_eot_contract_oblig_opt := NVL(l_eot_contract_oblig_opt,l_rulv_tbl(1).rule_information1);
15446 l_eot_contract_oblig_amount := NVL(l_eot_contract_oblig_amount,l_rulv_tbl(1).rule_information2);
15447 l_eot_contract_oblig_formula := NVL(l_eot_contract_oblig_formula,l_rulv_tbl(1).rule_information3);
15448 l_eot_contract_oblig_prorate := NVL(l_eot_contract_oblig_prorate,l_rulv_tbl(1).rule_information4);
15449 END IF;
15450 END IF;
15451
15452 IF (l_eot_contract_oblig_opt IS NOT NULL) THEN
15453 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15454 l_rulv_rec.dnz_chr_id := p_chr_id;
15455 l_rulv_rec.rule_information1 := l_eot_contract_oblig_opt;
15456 l_rulv_rec.rule_information_category := 'AMBCOC';
15457 l_rulv_rec.std_template_yn := 'N';
15458 l_rulv_rec.warn_yn := 'N';
15459 END IF;
15460
15461 IF (l_eot_contract_oblig_amount IS NOT NULL) THEN
15462 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15463 l_rulv_rec.dnz_chr_id := p_chr_id;
15464 l_rulv_rec.rule_information2 := l_eot_contract_oblig_amount;
15465 l_rulv_rec.rule_information_category := 'AMBCOC';
15466 l_rulv_rec.std_template_yn := 'N';
15467 l_rulv_rec.warn_yn := 'N';
15468 END IF;
15469
15470 IF (l_eot_contract_oblig_formula IS NOT NULL) THEN
15471 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15472 l_rulv_rec.dnz_chr_id := p_chr_id;
15473 l_rulv_rec.rule_information3 := l_eot_contract_oblig_formula;
15474 l_rulv_rec.rule_information_category := 'AMBCOC';
15475 l_rulv_rec.std_template_yn := 'N';
15476 l_rulv_rec.warn_yn := 'N';
15477 END IF;
15478
15479 IF (l_eot_contract_oblig_prorate IS NOT NULL) THEN
15480 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15481 l_rulv_rec.dnz_chr_id := p_chr_id;
15482 l_rulv_rec.rule_information4 := l_eot_contract_oblig_prorate;
15483 l_rulv_rec.rule_information_category := 'AMBCOC';
15484 l_rulv_rec.std_template_yn := 'N';
15485 l_rulv_rec.warn_yn := 'N';
15486 END IF;
15487
15488 create_rule_group_and_rule(
15489 x_return_status => x_return_status,
15490 x_msg_count => x_msg_count,
15491 x_msg_data => x_msg_data,
15492 p_rgp_id => l_rgp_id,
15493 p_rgpv_rec => l_rgpv_rec,
15494 p_rulv_rec => l_rulv_rec,
15495 x_rgpv_rec => x_rgpv_rec,
15496 x_rulv_rec => x_rulv_rec
15497 );
15498
15499 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15500 raise header_rule_failed;
15501 END IF;
15502
15503 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15504 l_rgp_id := x_rgpv_rec.id;
15505 END IF;
15506 debug_message('------>Rule: AMTFWC/AMBCOC processed');
15507 l_rulv_rec := NULL;
15508
15509 l_eot_disc_rate_opt := p_header_rec.eot_disc_rate_opt;
15510 l_eot_disc_rate_amount := TO_CHAR(p_header_rec.eot_disc_rate_amount);
15511 l_eot_disc_rate_formula := p_header_rec.eot_disc_rate_formula;
15512 l_eot_disc_rate_prorate := p_header_rec.eot_disc_rate_prorate;
15513
15514 IF (l_eot_disc_rate_opt IS NULL
15515 OR
15516 l_eot_disc_rate_amount IS NULL
15517 OR
15518 l_eot_disc_rate_formula IS NULL
15519 OR
15520 l_eot_disc_rate_prorate IS NULL
15521 AND
15522 p_header_rec.template_number IS NOT NULL) THEN
15523 get_contract_rules(
15524 x_return_status => x_return_status,
15525 x_msg_count => x_msg_count,
15526 x_msg_data => x_msg_data,
15527 p_chr_id => p_template_id,
15528 p_cle_id => NULL,
15529 p_rgd_code => 'AMTFWC',
15530 p_rule_code => 'AMCQDR',
15531 x_rulv_tbl => l_rulv_tbl,
15532 x_rule_count => l_rule_count
15533 );
15534
15535 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15536 RAISE header_rule_failed;
15537 END IF;
15538
15539 IF (l_rule_count > 0) THEN
15540 l_eot_disc_rate_opt := NVL(l_eot_disc_rate_opt,l_rulv_tbl(1).rule_information1);
15541 l_eot_disc_rate_amount := NVL(l_eot_disc_rate_amount,l_rulv_tbl(1).rule_information2);
15542 l_eot_disc_rate_formula := NVL(l_eot_disc_rate_formula,l_rulv_tbl(1).rule_information3);
15543 l_eot_disc_rate_prorate := NVL(l_eot_disc_rate_prorate,l_rulv_tbl(1).rule_information4);
15544 END IF;
15545 END IF;
15546
15547 IF (l_eot_disc_rate_opt IS NOT NULL) THEN
15548 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15549 l_rulv_rec.dnz_chr_id := p_chr_id;
15550 l_rulv_rec.rule_information1 := l_eot_disc_rate_opt;
15551 l_rulv_rec.rule_information_category := 'AMCQDR';
15552 l_rulv_rec.std_template_yn := 'N';
15553 l_rulv_rec.warn_yn := 'N';
15554 END IF;
15555
15556 IF (l_eot_disc_rate_amount IS NOT NULL) THEN
15557 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15558 l_rulv_rec.dnz_chr_id := p_chr_id;
15559 l_rulv_rec.rule_information2 := l_eot_disc_rate_amount;
15560 l_rulv_rec.rule_information_category := 'AMCQDR';
15561 l_rulv_rec.std_template_yn := 'N';
15562 l_rulv_rec.warn_yn := 'N';
15563 END IF;
15564
15565 IF (l_eot_disc_rate_formula IS NOT NULL) THEN
15566 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15567 l_rulv_rec.dnz_chr_id := p_chr_id;
15568 l_rulv_rec.rule_information3 := l_eot_disc_rate_formula;
15569 l_rulv_rec.rule_information_category := 'AMCQDR';
15570 l_rulv_rec.std_template_yn := 'N';
15571 l_rulv_rec.warn_yn := 'N';
15572 END IF;
15573
15574 IF (l_eot_disc_rate_prorate IS NOT NULL) THEN
15575 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15576 l_rulv_rec.dnz_chr_id := p_chr_id;
15577 l_rulv_rec.rule_information4 := l_eot_disc_rate_prorate;
15578 l_rulv_rec.rule_information_category := 'AMCQDR';
15579 l_rulv_rec.std_template_yn := 'N';
15580 l_rulv_rec.warn_yn := 'N';
15581 END IF;
15582
15583 create_rule_group_and_rule(
15584 x_return_status => x_return_status,
15585 x_msg_count => x_msg_count,
15586 x_msg_data => x_msg_data,
15587 p_rgp_id => l_rgp_id,
15588 p_rgpv_rec => l_rgpv_rec,
15589 p_rulv_rec => l_rulv_rec,
15590 x_rgpv_rec => x_rgpv_rec,
15591 x_rulv_rec => x_rulv_rec
15592 );
15593
15594 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15595 raise header_rule_failed;
15596 END IF;
15597
15598 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15599 l_rgp_id := x_rgpv_rec.id;
15600 END IF;
15601 debug_message('------>Rule: AMTFWC/AMCQDR processed');
15602 l_rulv_rec := NULL;
15603
15604 l_eot_quote_fee_opt := p_header_rec.eot_quote_fee_opt;
15605 l_eot_quote_fee_amount := TO_CHAR(p_header_rec.eot_quote_fee_amount);
15606 l_eot_quote_fee_formula := p_header_rec.eot_quote_fee_formula;
15607 l_eot_quote_fee_prorate := p_header_rec.eot_quote_fee_prorate;
15608
15609 IF (l_eot_quote_fee_opt IS NULL
15610 OR
15611 l_eot_quote_fee_amount IS NULL
15612 OR
15613 l_eot_quote_fee_formula IS NULL
15614 OR
15615 l_eot_quote_fee_prorate IS NULL
15616 AND
15617 p_header_rec.template_number IS NOT NULL) THEN
15618 get_contract_rules(
15619 x_return_status => x_return_status,
15620 x_msg_count => x_msg_count,
15621 x_msg_data => x_msg_data,
15622 p_chr_id => p_template_id,
15623 p_cle_id => NULL,
15624 p_rgd_code => 'AMTFWC',
15625 p_rule_code => 'AMCQFE',
15626 x_rulv_tbl => l_rulv_tbl,
15627 x_rule_count => l_rule_count
15628 );
15629
15630 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15631 RAISE header_rule_failed;
15632 END IF;
15633
15634 IF (l_rule_count > 0) THEN
15635 l_eot_quote_fee_opt := NVL(l_eot_quote_fee_opt,l_rulv_tbl(1).rule_information1);
15636 l_eot_quote_fee_amount := NVL(l_eot_quote_fee_amount,l_rulv_tbl(1).rule_information2);
15637 l_eot_quote_fee_formula := NVL(l_eot_quote_fee_formula,l_rulv_tbl(1).rule_information3);
15638 l_eot_quote_fee_prorate := NVL(l_eot_quote_fee_prorate,l_rulv_tbl(1).rule_information4);
15639 END IF;
15640 END IF;
15641
15642 IF (l_eot_quote_fee_opt IS NOT NULL) THEN
15643 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15644 l_rulv_rec.dnz_chr_id := p_chr_id;
15645 l_rulv_rec.rule_information1 := l_eot_quote_fee_opt;
15646 l_rulv_rec.rule_information_category := 'AMCQFE';
15647 l_rulv_rec.std_template_yn := 'N';
15648 l_rulv_rec.warn_yn := 'N';
15649 END IF;
15650
15651 IF (l_eot_quote_fee_amount IS NOT NULL) THEN
15652 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15653 l_rulv_rec.dnz_chr_id := p_chr_id;
15654 l_rulv_rec.rule_information2 := l_eot_quote_fee_amount;
15655 l_rulv_rec.rule_information_category := 'AMCQFE';
15656 l_rulv_rec.std_template_yn := 'N';
15657 l_rulv_rec.warn_yn := 'N';
15658 END IF;
15659
15660 IF (l_eot_quote_fee_formula IS NOT NULL) THEN
15661 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15662 l_rulv_rec.dnz_chr_id := p_chr_id;
15663 l_rulv_rec.rule_information3 := l_eot_quote_fee_formula;
15664 l_rulv_rec.rule_information_category := 'AMCQFE';
15665 l_rulv_rec.std_template_yn := 'N';
15666 l_rulv_rec.warn_yn := 'N';
15667 END IF;
15668
15669 IF (l_eot_quote_fee_prorate IS NOT NULL) THEN
15670 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15671 l_rulv_rec.dnz_chr_id := p_chr_id;
15672 l_rulv_rec.rule_information4 := l_eot_quote_fee_prorate;
15673 l_rulv_rec.rule_information_category := 'AMCQFE';
15674 l_rulv_rec.std_template_yn := 'N';
15675 l_rulv_rec.warn_yn := 'N';
15676 END IF;
15677
15678 create_rule_group_and_rule(
15679 x_return_status => x_return_status,
15680 x_msg_count => x_msg_count,
15681 x_msg_data => x_msg_data,
15682 p_rgp_id => l_rgp_id,
15683 p_rgpv_rec => l_rgpv_rec,
15684 p_rulv_rec => l_rulv_rec,
15685 x_rgpv_rec => x_rgpv_rec,
15686 x_rulv_rec => x_rulv_rec
15687 );
15688
15689 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15690 raise header_rule_failed;
15691 END IF;
15692
15693 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15694 l_rgp_id := x_rgpv_rec.id;
15695 END IF;
15696 debug_message('------>Rule: AMTFWC/AMCQFE processed');
15697 l_rulv_rec := NULL;
15698
15699 l_eot_return_fee_option := p_header_rec.eot_return_fee_option;
15700 l_eot_return_fee_amount := TO_CHAR(p_header_rec.eot_return_fee_amount);
15701 l_eot_return_fee_formula := p_header_rec.eot_return_fee_formula;
15702 l_eot_return_fee_prorate := p_header_rec.eot_return_fee_prorate;
15703
15704 IF (l_eot_return_fee_option IS NULL
15705 OR
15706 l_eot_return_fee_amount IS NULL
15707 OR
15708 l_eot_return_fee_formula IS NULL
15709 OR
15710 l_eot_return_fee_prorate IS NULL
15711 AND
15712 p_header_rec.template_number IS NOT NULL) THEN
15713 get_contract_rules(
15714 x_return_status => x_return_status,
15715 x_msg_count => x_msg_count,
15716 x_msg_data => x_msg_data,
15717 p_chr_id => p_template_id,
15718 p_cle_id => NULL,
15719 p_rgd_code => 'AMTFWC',
15720 p_rule_code => 'AMCRFE',
15721 x_rulv_tbl => l_rulv_tbl,
15722 x_rule_count => l_rule_count
15723 );
15724
15725 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15726 RAISE header_rule_failed;
15727 END IF;
15728
15729 IF (l_rule_count > 0) THEN
15730 l_eot_return_fee_option := NVL(l_eot_return_fee_option,l_rulv_tbl(1).rule_information1);
15731 l_eot_return_fee_amount := NVL(l_eot_return_fee_amount,l_rulv_tbl(1).rule_information2);
15732 l_eot_return_fee_formula := NVL(l_eot_return_fee_formula,l_rulv_tbl(1).rule_information3);
15733 l_eot_return_fee_prorate := NVL(l_eot_return_fee_prorate,l_rulv_tbl(1).rule_information4);
15734 END IF;
15735 END IF;
15736
15737 IF (l_eot_return_fee_option IS NOT NULL) THEN
15738 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15739 l_rulv_rec.dnz_chr_id := p_chr_id;
15740 l_rulv_rec.rule_informaTion1 := l_eot_return_fee_option;
15741 l_rulv_rec.rule_information_category := 'AMCRFE';
15742 l_rulv_rec.std_template_yn := 'N';
15743 l_rulv_rec.warn_yn := 'N';
15744 END IF;
15745
15746 IF (l_eot_return_fee_amount IS NOT NULL) THEN
15747 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15748 l_rulv_rec.dnz_chr_id := p_chr_id;
15749 l_rulv_rec.rule_information2 := l_eot_return_fee_amount;
15750 l_rulv_rec.rule_information_category := 'AMCRFE';
15751 l_rulv_rec.std_template_yn := 'N';
15752 l_rulv_rec.warn_yn := 'N';
15753 END IF;
15754
15755 IF (l_eot_return_fee_formula IS NOT NULL) THEN
15756 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15757 l_rulv_rec.dnz_chr_id := p_chr_id;
15758 l_rulv_rec.rule_information3 := l_eot_return_fee_formula;
15759 l_rulv_rec.rule_information_category := 'AMCRFE';
15760 l_rulv_rec.std_template_yn := 'N';
15761 l_rulv_rec.warn_yn := 'N';
15762 END IF;
15763
15764 IF (l_eot_return_fee_prorate IS NOT NULL) THEN
15765 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15766 l_rulv_rec.dnz_chr_id := p_chr_id;
15767 l_rulv_rec.rule_information4 := l_eot_return_fee_prorate;
15768 l_rulv_rec.rule_information_category := 'AMCRFE';
15769 l_rulv_rec.std_template_yn := 'N';
15770 l_rulv_rec.warn_yn := 'N';
15771 END IF;
15772
15773 create_rule_group_and_rule(
15774 x_return_status => x_return_status,
15775 x_msg_count => x_msg_count,
15776 x_msg_data => x_msg_data,
15777 p_rgp_id => l_rgp_id,
15778 p_rgpv_rec => l_rgpv_rec,
15779 p_rulv_rec => l_rulv_rec,
15780 x_rgpv_rec => x_rgpv_rec,
15781 x_rulv_rec => x_rulv_rec
15782 );
15783
15784 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15785 raise header_rule_failed;
15786 END IF;
15787
15788 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15789 l_rgp_id := x_rgpv_rec.id;
15790 END IF;
15791 debug_message('------>Rule: AMTFWC/AMCRFE processed');
15792 l_rulv_rec := NULL;
15793
15794 l_eot_roll_inctv_option := p_header_rec.eot_roll_inctv_option;
15795 l_eot_roll_inctv_amount := TO_CHAR(p_header_rec.eot_roll_inctv_amount);
15796 l_eot_roll_inctv_formula := p_header_rec.eot_roll_inctv_formula;
15797 l_eot_roll_inctv_prorate := p_header_rec.eot_roll_inctv_prorate;
15798
15799 IF (l_eot_roll_inctv_option IS NULL
15800 OR
15801 l_eot_roll_inctv_amount IS NULL
15802 OR
15803 l_eot_roll_inctv_formula IS NULL
15804 OR
15805 l_eot_roll_inctv_prorate IS NULL
15806 AND
15807 p_header_rec.template_number IS NOT NULL) THEN
15808 get_contract_rules(
15809 x_return_status => x_return_status,
15810 x_msg_count => x_msg_count,
15811 x_msg_data => x_msg_data,
15812 p_chr_id => p_template_id,
15813 p_cle_id => NULL,
15814 p_rgd_code => 'AMTFWC',
15815 p_rule_code => 'AMCRIN',
15816 x_rulv_tbl => l_rulv_tbl,
15817 x_rule_count => l_rule_count
15818 );
15819
15820 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15821 RAISE header_rule_failed;
15822 END IF;
15823
15824 IF (l_rule_count > 0) THEN
15825 l_eot_roll_inctv_option := NVL(l_eot_roll_inctv_option,l_rulv_tbl(1).rule_information1);
15826 l_eot_roll_inctv_amount := NVL(l_eot_roll_inctv_amount,l_rulv_tbl(1).rule_information2);
15827 l_eot_roll_inctv_formula := NVL(l_eot_roll_inctv_formula,l_rulv_tbl(1).rule_information3);
15828 l_eot_roll_inctv_prorate := NVL(l_eot_roll_inctv_prorate,l_rulv_tbl(1).rule_information4);
15829 END IF;
15830 END IF;
15831
15832 IF (l_eot_roll_inctv_option IS NOT NULL) THEN
15833 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15834 l_rulv_rec.dnz_chr_id := p_chr_id;
15835 l_rulv_rec.rule_informaTion1 := l_eot_roll_inctv_option;
15836 l_rulv_rec.rule_information_category := 'AMCRIN';
15837 l_rulv_rec.std_template_yn := 'N';
15838 l_rulv_rec.warn_yn := 'N';
15839 END IF;
15840
15841 IF (l_eot_roll_inctv_amount IS NOT NULL) THEN
15842 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15843 l_rulv_rec.dnz_chr_id := p_chr_id;
15844 l_rulv_rec.rule_information2 := l_eot_roll_inctv_amount;
15845 l_rulv_rec.rule_information_category := 'AMCRIN';
15846 l_rulv_rec.std_template_yn := 'N';
15847 l_rulv_rec.warn_yn := 'N';
15848 END IF;
15849
15850 IF (l_eot_roll_inctv_formula IS NOT NULL) THEN
15851 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15852 l_rulv_rec.dnz_chr_id := p_chr_id;
15853 l_rulv_rec.rule_information3 := l_eot_roll_inctv_formula;
15854 l_rulv_rec.rule_information_category := 'AMCRIN';
15855 l_rulv_rec.std_template_yn := 'N';
15856 l_rulv_rec.warn_yn := 'N';
15857 END IF;
15858
15859 IF (l_eot_roll_inctv_prorate IS NOT NULL) THEN
15860 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15861 l_rulv_rec.dnz_chr_id := p_chr_id;
15862 l_rulv_rec.rule_information4 := l_eot_roll_inctv_prorate;
15863 l_rulv_rec.rule_information_category := 'AMCRIN';
15864 l_rulv_rec.std_template_yn := 'N';
15865 l_rulv_rec.warn_yn := 'N';
15866 END IF;
15867
15868 create_rule_group_and_rule(
15869 x_return_status => x_return_status,
15870 x_msg_count => x_msg_count,
15871 x_msg_data => x_msg_data,
15872 p_rgp_id => l_rgp_id,
15873 p_rgpv_rec => l_rgpv_rec,
15874 p_rulv_rec => l_rulv_rec,
15875 x_rgpv_rec => x_rgpv_rec,
15876 x_rulv_rec => x_rulv_rec
15877 );
15878
15879 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15880 raise header_rule_failed;
15881 END IF;
15882
15883 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15884 l_rgp_id := x_rgpv_rec.id;
15885 END IF;
15886 debug_message('------>Rule: AMTFWC/AMCRIN processed');
15887 l_rulv_rec := NULL;
15888
15889 l_eot_secu_dep_dispo_option := p_header_rec.eot_secu_dep_dispo_option;
15890 l_eot_secu_dep_dispo_amount := TO_CHAR(p_header_rec.eot_secu_dep_dispo_amount);
15891 l_eot_secu_dep_dispo_formula := p_header_rec.eot_secu_dep_dispo_formula;
15892 l_eot_secu_dep_dispo_prorate := p_header_rec.eot_secu_dep_dispo_prorate;
15893
15894 IF (l_eot_secu_dep_dispo_option IS NULL
15895 OR
15896 l_eot_secu_dep_dispo_amount IS NULL
15897 OR
15898 l_eot_secu_dep_dispo_formula IS NULL
15899 OR
15900 l_eot_secu_dep_dispo_prorate IS NULL
15901 AND
15902 p_header_rec.template_number IS NOT NULL) THEN
15903 get_contract_rules(
15904 x_return_status => x_return_status,
15905 x_msg_count => x_msg_count,
15906 x_msg_data => x_msg_data,
15907 p_chr_id => p_template_id,
15908 p_cle_id => NULL,
15909 p_rgd_code => 'AMTFWC',
15910 p_rule_code => 'AMCSDD',
15911 x_rulv_tbl => l_rulv_tbl,
15912 x_rule_count => l_rule_count
15913 );
15914
15915 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15916 RAISE header_rule_failed;
15917 END IF;
15918
15919 IF (l_rule_count > 0) THEN
15920 l_eot_secu_dep_dispo_option := NVL(l_eot_secu_dep_dispo_option,l_rulv_tbl(1).rule_information1);
15921 l_eot_secu_dep_dispo_amount := NVL(l_eot_secu_dep_dispo_amount,l_rulv_tbl(1).rule_information2);
15922 l_eot_secu_dep_dispo_formula := NVL(l_eot_secu_dep_dispo_formula,l_rulv_tbl(1).rule_information3);
15923 l_eot_secu_dep_dispo_prorate := NVL(l_eot_secu_dep_dispo_prorate,l_rulv_tbl(1).rule_information4);
15924 END IF;
15925 END IF;
15926
15927 IF (l_eot_secu_dep_dispo_option IS NOT NULL) THEN
15928 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15929 l_rulv_rec.dnz_chr_id := p_chr_id;
15930 l_rulv_rec.rule_informaTion1 := l_eot_secu_dep_dispo_option;
15931 l_rulv_rec.rule_information_category := 'AMCSDD';
15932 l_rulv_rec.std_template_yn := 'N';
15933 l_rulv_rec.warn_yn := 'N';
15934 END IF;
15935
15936 IF (l_eot_secu_dep_dispo_amount IS NOT NULL) THEN
15937 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15938 l_rulv_rec.dnz_chr_id := p_chr_id;
15939 l_rulv_rec.rule_information2 := l_eot_secu_dep_dispo_amount;
15940 l_rulv_rec.rule_information_category := 'AMCSDD';
15941 l_rulv_rec.std_template_yn := 'N';
15942 l_rulv_rec.warn_yn := 'N';
15943 END IF;
15944
15945 IF (l_eot_secu_dep_dispo_formula IS NOT NULL) THEN
15946 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15947 l_rulv_rec.dnz_chr_id := p_chr_id;
15948 l_rulv_rec.rule_information3 := l_eot_secu_dep_dispo_formula;
15949 l_rulv_rec.rule_information_category := 'AMCSDD';
15950 l_rulv_rec.std_template_yn := 'N';
15951 l_rulv_rec.warn_yn := 'N';
15952 END IF;
15953
15954 IF (l_eot_secu_dep_dispo_prorate IS NOT NULL) THEN
15955 l_rulv_rec.rgp_id := x_rgpv_rec.id;
15956 l_rulv_rec.dnz_chr_id := p_chr_id;
15957 l_rulv_rec.rule_information4 := l_eot_secu_dep_dispo_prorate;
15958 l_rulv_rec.rule_information_category := 'AMCSDD';
15959 l_rulv_rec.std_template_yn := 'N';
15960 l_rulv_rec.warn_yn := 'N';
15961 END IF;
15962
15963 create_rule_group_and_rule(
15964 x_return_status => x_return_status,
15965 x_msg_count => x_msg_count,
15966 x_msg_data => x_msg_data,
15967 p_rgp_id => l_rgp_id,
15968 p_rgpv_rec => l_rgpv_rec,
15969 p_rulv_rec => l_rulv_rec,
15970 x_rgpv_rec => x_rgpv_rec,
15971 x_rulv_rec => x_rulv_rec
15972 );
15973
15974 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
15975 raise header_rule_failed;
15976 END IF;
15977
15978 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
15979 l_rgp_id := x_rgpv_rec.id;
15980 END IF;
15981 debug_message('------>Rule: AMTFWC/AMCSDD processed');
15982 l_rulv_rec := NULL;
15983
15984 l_eot_term_penalty_option := p_header_rec.eot_term_penalty_option;
15985 l_eot_term_penalty_amount := TO_CHAR(p_header_rec.eot_term_penalty_amount);
15986 l_eot_term_penalty_formula := p_header_rec.eot_term_penalty_formula;
15987 l_eot_term_penalty_prorate := p_header_rec.eot_term_penalty_prorate;
15988 l_eot_term_penalty_cap_option := p_header_rec.eot_term_penalty_cap_option;
15989 l_eot_term_penalty_cap_amount := TO_CHAR(p_header_rec.eot_term_penalty_cap_amount);
15990 l_eot_term_penalty_cap_formula := p_header_rec.eot_term_penalty_cap_formula;
15991
15992 IF (l_eot_term_penalty_option IS NULL
15993 OR
15994 l_eot_term_penalty_amount IS NULL
15995 OR
15996 l_eot_term_penalty_formula IS NULL
15997 OR
15998 l_eot_term_penalty_prorate IS NULL
15999 OR
16000 l_eot_term_penalty_cap_option IS NULL
16001 OR
16002 l_eot_term_penalty_cap_amount IS NULL
16003 OR
16004 l_eot_term_penalty_cap_formula IS NULL
16005 AND
16006 p_header_rec.template_number IS NOT NULL) THEN
16007 get_contract_rules(
16008 x_return_status => x_return_status,
16009 x_msg_count => x_msg_count,
16010 x_msg_data => x_msg_data,
16011 p_chr_id => p_template_id,
16012 p_cle_id => NULL,
16013 p_rgd_code => 'AMTFWC',
16014 p_rule_code => 'AMCTPE',
16015 x_rulv_tbl => l_rulv_tbl,
16016 x_rule_count => l_rule_count
16017 );
16018
16019 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16020 RAISE header_rule_failed;
16021 END IF;
16022
16023 IF (l_rule_count > 0) THEN
16024 l_eot_term_penalty_option := NVL(l_eot_term_penalty_option,l_rulv_tbl(1).rule_information1);
16025 l_eot_term_penalty_amount := NVL(l_eot_term_penalty_amount,l_rulv_tbl(1).rule_information2);
16026 l_eot_term_penalty_formula := NVL(l_eot_term_penalty_formula,l_rulv_tbl(1).rule_information3);
16027 l_eot_term_penalty_prorate := NVL(l_eot_term_penalty_prorate,l_rulv_tbl(1).rule_information4);
16028 l_eot_term_penalty_cap_option := NVL(l_eot_term_penalty_cap_option,l_rulv_tbl(1).rule_information5);
16029 l_eot_term_penalty_cap_amount := NVL(l_eot_term_penalty_cap_amount,l_rulv_tbl(1).rule_information6);
16030 l_eot_term_penalty_cap_formula := NVL(l_eot_term_penalty_cap_formula,l_rulv_tbl(1).rule_information7);
16031 END IF;
16032 END IF;
16033
16034 IF (l_eot_term_penalty_option IS NOT NULL) THEN
16035 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16036 l_rulv_rec.dnz_chr_id := p_chr_id;
16037 l_rulv_rec.rule_informaTion1 := l_eot_term_penalty_option;
16038 l_rulv_rec.rule_information_category := 'AMCTPE';
16039 l_rulv_rec.std_template_yn := 'N';
16040 l_rulv_rec.warn_yn := 'N';
16041 END IF;
16042
16043 IF (l_eot_term_penalty_amount IS NOT NULL) THEN
16044 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16045 l_rulv_rec.dnz_chr_id := p_chr_id;
16046 l_rulv_rec.rule_information2 := l_eot_term_penalty_amount;
16047 l_rulv_rec.rule_information_category := 'AMCTPE';
16048 l_rulv_rec.std_template_yn := 'N';
16049 l_rulv_rec.warn_yn := 'N';
16050 END IF;
16051
16052 IF (l_eot_term_penalty_formula IS NOT NULL) THEN
16053 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16054 l_rulv_rec.dnz_chr_id := p_chr_id;
16055 l_rulv_rec.rule_information3 := l_eot_term_penalty_formula;
16056 l_rulv_rec.rule_information_category := 'AMCTPE';
16057 l_rulv_rec.std_template_yn := 'N';
16058 l_rulv_rec.warn_yn := 'N';
16059 END IF;
16060
16061 IF (l_eot_term_penalty_prorate IS NOT NULL) THEN
16062 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16063 l_rulv_rec.dnz_chr_id := p_chr_id;
16064 l_rulv_rec.rule_information4 := l_eot_term_penalty_prorate;
16065 l_rulv_rec.rule_information_category := 'AMCTPE';
16066 l_rulv_rec.std_template_yn := 'N';
16067 l_rulv_rec.warn_yn := 'N';
16068 END IF;
16069
16070 IF (l_eot_term_penalty_cap_option IS NOT NULL) THEN
16071 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16072 l_rulv_rec.dnz_chr_id := p_chr_id;
16073 l_rulv_rec.rule_informaTion5 := l_eot_term_penalty_cap_option;
16074 l_rulv_rec.rule_information_category := 'AMCTPE';
16075 l_rulv_rec.std_template_yn := 'N';
16076 l_rulv_rec.warn_yn := 'N';
16077 END IF;
16078
16079 IF (l_eot_term_penalty_cap_amount IS NOT NULL) THEN
16080 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16081 l_rulv_rec.dnz_chr_id := p_chr_id;
16082 l_rulv_rec.rule_information6 := l_eot_term_penalty_cap_amount;
16083 l_rulv_rec.rule_information_category := 'AMCTPE';
16084 l_rulv_rec.std_template_yn := 'N';
16085 l_rulv_rec.warn_yn := 'N';
16086 END IF;
16087
16088 IF (l_eot_term_penalty_cap_formula IS NOT NULL) THEN
16089 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16090 l_rulv_rec.dnz_chr_id := p_chr_id;
16091 l_rulv_rec.rule_information7 := l_eot_term_penalty_cap_formula;
16092 l_rulv_rec.rule_information_category := 'AMCTPE';
16093 l_rulv_rec.std_template_yn := 'N';
16094 l_rulv_rec.warn_yn := 'N';
16095 END IF;
16096
16097 create_rule_group_and_rule(
16098 x_return_status => x_return_status,
16099 x_msg_count => x_msg_count,
16100 x_msg_data => x_msg_data,
16101 p_rgp_id => l_rgp_id,
16102 p_rgpv_rec => l_rgpv_rec,
16103 p_rulv_rec => l_rulv_rec,
16104 x_rgpv_rec => x_rgpv_rec,
16105 x_rulv_rec => x_rulv_rec
16106 );
16107
16108 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16109 raise header_rule_failed;
16110 END IF;
16111
16112 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16113 l_rgp_id := x_rgpv_rec.id;
16114 END IF;
16115 debug_message('------>Rule: AMTFWC/AMCTPE processed');
16116 l_rulv_rec := NULL;
16117
16118 l_eot_est_prop_tax_option := p_header_rec.eot_est_prop_tax_option;
16119 l_eot_est_prop_tax_amount := TO_CHAR(p_header_rec.eot_est_prop_tax_amount);
16120 l_eot_est_prop_tax_formula := p_header_rec.eot_est_prop_tax_formula;
16121 l_eot_est_prop_tax_prorate := p_header_rec.eot_est_prop_tax_prorate;
16122
16123 IF (l_eot_est_prop_tax_option IS NULL
16124 OR
16125 l_eot_est_prop_tax_amount IS NULL
16126 OR
16127 l_eot_est_prop_tax_formula IS NULL
16128 OR
16129 l_eot_est_prop_tax_prorate IS NULL
16130 AND
16131 p_header_rec.template_number IS NOT NULL) THEN
16132 get_contract_rules(
16133 x_return_status => x_return_status,
16134 x_msg_count => x_msg_count,
16135 x_msg_data => x_msg_data,
16136 p_chr_id => p_template_id,
16137 p_cle_id => NULL,
16138 p_rgd_code => 'AMTFWC',
16139 p_rule_code => 'AMPRTX',
16140 x_rulv_tbl => l_rulv_tbl,
16141 x_rule_count => l_rule_count
16142 );
16143
16144 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16145 RAISE header_rule_failed;
16146 END IF;
16147
16148 IF (l_rule_count > 0) THEN
16149 l_eot_est_prop_tax_option := NVL(l_eot_est_prop_tax_option,l_rulv_tbl(1).rule_information1);
16150 l_eot_est_prop_tax_amount := NVL(l_eot_est_prop_tax_amount,l_rulv_tbl(1).rule_information2);
16151 l_eot_est_prop_tax_formula := NVL(l_eot_est_prop_tax_formula,l_rulv_tbl(1).rule_information3);
16152 l_eot_est_prop_tax_prorate := NVL(l_eot_est_prop_tax_prorate,l_rulv_tbl(1).rule_information4);
16153 END IF;
16154 END IF;
16155
16156 IF (l_eot_est_prop_tax_option IS NOT NULL) THEN
16157 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16158 l_rulv_rec.dnz_chr_id := p_chr_id;
16159 l_rulv_rec.rule_informaTion1 := l_eot_est_prop_tax_option;
16160 l_rulv_rec.rule_information_category := 'AMPRTX';
16161 l_rulv_rec.std_template_yn := 'N';
16162 l_rulv_rec.warn_yn := 'N';
16163 END IF;
16164
16165 IF (l_eot_est_prop_tax_amount IS NOT NULL) THEN
16166 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16167 l_rulv_rec.dnz_chr_id := p_chr_id;
16168 l_rulv_rec.rule_information2 := l_eot_est_prop_tax_amount;
16169 l_rulv_rec.rule_information_category := 'AMPRTX';
16170 l_rulv_rec.std_template_yn := 'N';
16171 l_rulv_rec.warn_yn := 'N';
16172 END IF;
16173
16174 IF (l_eot_est_prop_tax_formula IS NOT NULL) THEN
16175 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16176 l_rulv_rec.dnz_chr_id := p_chr_id;
16177 l_rulv_rec.rule_information3 := l_eot_est_prop_tax_formula;
16178 l_rulv_rec.rule_information_category := 'AMPRTX';
16179 l_rulv_rec.std_template_yn := 'N';
16180 l_rulv_rec.warn_yn := 'N';
16181 END IF;
16182
16183 IF (l_eot_est_prop_tax_prorate IS NOT NULL) THEN
16184 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16185 l_rulv_rec.dnz_chr_id := p_chr_id;
16186 l_rulv_rec.rule_information4 := l_eot_est_prop_tax_prorate;
16187 l_rulv_rec.rule_information_category := 'AMPRTX';
16188 l_rulv_rec.std_template_yn := 'N';
16189 l_rulv_rec.warn_yn := 'N';
16190 END IF;
16191
16192 create_rule_group_and_rule(
16193 x_return_status => x_return_status,
16194 x_msg_count => x_msg_count,
16195 x_msg_data => x_msg_data,
16196 p_rgp_id => l_rgp_id,
16197 p_rgpv_rec => l_rgpv_rec,
16198 p_rulv_rec => l_rulv_rec,
16199 x_rgpv_rec => x_rgpv_rec,
16200 x_rulv_rec => x_rulv_rec
16201 );
16202
16203 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16204 raise header_rule_failed;
16205 END IF;
16206
16207 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16208 l_rgp_id := x_rgpv_rec.id;
16209 END IF;
16210 debug_message('------>Rule: AMTFWC/AMPRTX processed');
16211 l_rulv_rec := NULL;
16212
16213 l_eot_contr_fees_option := p_header_rec.eot_contr_fees_option;
16214
16215 IF (l_eot_contr_fees_option IS NULL
16216 AND
16217 p_header_rec.template_number IS NOT NULL) THEN
16218 get_contract_rules(
16219 x_return_status => x_return_status,
16220 x_msg_count => x_msg_count,
16221 x_msg_data => x_msg_data,
16222 p_chr_id => p_template_id,
16223 p_cle_id => NULL,
16224 p_rgd_code => 'AMTFWC',
16225 p_rule_code => 'AMYFEE',
16226 x_rulv_tbl => l_rulv_tbl,
16227 x_rule_count => l_rule_count
16228 );
16229
16230 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16231 RAISE header_rule_failed;
16232 END IF;
16233
16234 IF (l_rule_count > 0) THEN
16235 l_eot_contr_fees_option := NVL(l_eot_contr_fees_option,l_rulv_tbl(1).rule_information1);
16236 END IF;
16237 END IF;
16238
16239 IF (l_eot_contr_fees_option IS NOT NULL) THEN
16240 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16241 l_rulv_rec.dnz_chr_id := p_chr_id;
16242 l_rulv_rec.rule_information1 := l_eot_contr_fees_option;
16243 l_rulv_rec.rule_information_category := 'AMYFEE';
16244 l_rulv_rec.std_template_yn := 'N';
16245 l_rulv_rec.warn_yn := 'N';
16246 END IF;
16247
16248 create_rule_group_and_rule(
16249 x_return_status => x_return_status,
16250 x_msg_count => x_msg_count,
16251 x_msg_data => x_msg_data,
16252 p_rgp_id => l_rgp_id,
16253 p_rgpv_rec => l_rgpv_rec,
16254 p_rulv_rec => l_rulv_rec,
16255 x_rgpv_rec => x_rgpv_rec,
16256 x_rulv_rec => x_rulv_rec
16257 );
16258
16259 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16260 raise header_rule_failed;
16261 END IF;
16262
16263 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16264 l_rgp_id := x_rgpv_rec.id;
16265 END IF;
16266 debug_message('------>Rule: AMTFWC/AMYFEE processed');
16267 l_rulv_rec := NULL;
16268
16269 l_eot_outstnd_bal_option := p_header_rec.eot_outstnd_bal_option;
16270
16271 IF (l_eot_outstnd_bal_option IS NULL
16272 AND
16273 p_header_rec.template_number IS NOT NULL) THEN
16274 get_contract_rules(
16275 x_return_status => x_return_status,
16276 x_msg_count => x_msg_count,
16277 x_msg_data => x_msg_data,
16278 p_chr_id => p_template_id,
16279 p_cle_id => NULL,
16280 p_rgd_code => 'AMTFWC',
16281 p_rule_code => 'AMYOUB',
16282 x_rulv_tbl => l_rulv_tbl,
16283 x_rule_count => l_rule_count
16284 );
16285
16286 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16287 RAISE header_rule_failed;
16288 END IF;
16289
16290 IF (l_rule_count > 0) THEN
16291 l_eot_outstnd_bal_option := l_rulv_tbl(1).rule_information1;
16292 END IF;
16293 END IF;
16294
16295 IF (l_eot_outstnd_bal_option IS NOT NULL) THEN
16296 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16297 l_rulv_rec.dnz_chr_id := p_chr_id;
16298 l_rulv_rec.rule_information1 := l_eot_outstnd_bal_option;
16299 l_rulv_rec.rule_information_category := 'AMYOUB';
16300 l_rulv_rec.std_template_yn := 'N';
16301 l_rulv_rec.warn_yn := 'N';
16302 END IF;
16303
16304 create_rule_group_and_rule(
16305 x_return_status => x_return_status,
16306 x_msg_count => x_msg_count,
16307 x_msg_data => x_msg_data,
16308 p_rgp_id => l_rgp_id,
16309 p_rgpv_rec => l_rgpv_rec,
16310 p_rulv_rec => l_rulv_rec,
16311 x_rgpv_rec => x_rgpv_rec,
16312 x_rulv_rec => x_rulv_rec
16313 );
16314
16315 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16316 raise header_rule_failed;
16317 END IF;
16318
16319 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16320 l_rgp_id := x_rgpv_rec.id;
16321 END IF;
16322 debug_message('------>Rule: AMTFWC/AMYOUB processed');
16323 l_rulv_rec := NULL;
16324
16325 l_eot_serv_mant_option := p_header_rec.eot_serv_mant_option;
16326 l_eot_serv_mant_frml := p_header_rec.eot_serv_mant_frml;
16327
16328 IF ((l_eot_serv_mant_option IS NULL
16329 OR
16330 l_eot_serv_mant_frml IS NULL
16331 )
16332 AND
16333 p_header_rec.template_number IS NOT NULL) THEN
16334 get_contract_rules(
16335 x_return_status => x_return_status,
16336 x_msg_count => x_msg_count,
16337 x_msg_data => x_msg_data,
16338 p_chr_id => p_template_id,
16339 p_cle_id => NULL,
16340 p_rgd_code => 'AMTFWC',
16341 p_rule_code => 'AMYSAM',
16342 x_rulv_tbl => l_rulv_tbl,
16343 x_rule_count => l_rule_count
16344 );
16345
16346 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16347 RAISE header_rule_failed;
16348 END IF;
16349
16350 IF (l_rule_count > 0) THEN
16351 l_eot_serv_mant_option := NVL(l_eot_serv_mant_option,l_rulv_tbl(1).rule_information1);
16352 l_eot_serv_mant_frml := NVL(l_eot_serv_mant_frml,l_rulv_tbl(1).rule_information2);
16353 END IF;
16354 END IF;
16355
16356 IF (l_eot_serv_mant_option IS NOT NULL) THEN
16357 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16358 l_rulv_rec.dnz_chr_id := p_chr_id;
16359 l_rulv_rec.rule_information1 := l_eot_serv_mant_option;
16360 l_rulv_rec.rule_information_category := 'AMYSAM';
16361 l_rulv_rec.std_template_yn := 'N';
16362 l_rulv_rec.warn_yn := 'N';
16363 END IF;
16364
16365 IF (l_eot_serv_mant_frml IS NOT NULL) THEN
16366 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16367 l_rulv_rec.dnz_chr_id := p_chr_id;
16368 l_rulv_rec.rule_information2 := l_eot_serv_mant_frml;
16369 l_rulv_rec.rule_information_category := 'AMYSAM';
16370 l_rulv_rec.std_template_yn := 'N';
16371 l_rulv_rec.warn_yn := 'N';
16372 END IF;
16373
16374 create_rule_group_and_rule(
16375 x_return_status => x_return_status,
16376 x_msg_count => x_msg_count,
16377 x_msg_data => x_msg_data,
16378 p_rgp_id => l_rgp_id,
16379 p_rgpv_rec => l_rgpv_rec,
16380 p_rulv_rec => l_rulv_rec,
16381 x_rgpv_rec => x_rgpv_rec,
16382 x_rulv_rec => x_rulv_rec
16383 );
16384
16385 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16386 raise header_rule_failed;
16387 END IF;
16388
16389 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16390 l_rgp_id := x_rgpv_rec.id;
16391 END IF;
16392
16393 debug_message('------>Rule: AMTFWC/AMYSAM processed');
16394
16395 /**** AKP Copied from here for AMTFWC 4067094 ***/
16396 l_rulv_rec := NULL;
16397
16398 l_eot_absorbed_fee_frml := p_header_rec.eot_absorbed_fee_frml;
16399
16400 IF (l_eot_absorbed_fee_frml IS NULL
16401 AND
16402 p_header_rec.template_number IS NOT NULL) THEN
16403 get_contract_rules(
16404 x_return_status => x_return_status,
16405 x_msg_count => x_msg_count,
16406 x_msg_data => x_msg_data,
16407 p_chr_id => p_template_id,
16408 p_cle_id => NULL,
16409 p_rgd_code => 'AMTFWC',
16410 p_rule_code => 'AMAFEE',
16411 x_rulv_tbl => l_rulv_tbl,
16412 x_rule_count => l_rule_count
16413 );
16414
16415 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16416 RAISE header_rule_failed;
16417 END IF;
16418
16419 IF (l_rule_count > 0) THEN
16420 l_eot_absorbed_fee_frml := l_rulv_tbl(1).rule_information3;
16421 END IF;
16422 END IF;
16423
16424 IF (l_eot_absorbed_fee_frml IS NOT NULL) THEN
16425 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16426 l_rulv_rec.dnz_chr_id := p_chr_id;
16427 l_rulv_rec.rule_information3 := l_eot_absorbed_fee_frml;
16428 l_rulv_rec.rule_information_category := 'AMAFEE';
16429 l_rulv_rec.std_template_yn := 'N';
16430 l_rulv_rec.warn_yn := 'N';
16431 END IF;
16432
16433 create_rule_group_and_rule(
16434 x_return_status => x_return_status,
16435 x_msg_count => x_msg_count,
16436 x_msg_data => x_msg_data,
16437 p_rgp_id => l_rgp_id,
16438 p_rgpv_rec => l_rgpv_rec,
16439 p_rulv_rec => l_rulv_rec,
16440 x_rgpv_rec => x_rgpv_rec,
16441 x_rulv_rec => x_rulv_rec
16442 );
16443
16444 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16445 raise header_rule_failed;
16446 END IF;
16447
16448 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16449 l_rgp_id := x_rgpv_rec.id;
16450 END IF;
16451
16452 debug_message('------>Rule: AMTFWC/AMAFEE processed');
16453
16454 l_rulv_rec := NULL;
16455
16456 l_eot_expense_fee_frml := p_header_rec.eot_expense_fee_frml;
16457
16458 IF (l_eot_expense_fee_frml IS NULL
16459 AND
16460 p_header_rec.template_number IS NOT NULL) THEN
16461 get_contract_rules(
16462 x_return_status => x_return_status,
16463 x_msg_count => x_msg_count,
16464 x_msg_data => x_msg_data,
16465 p_chr_id => p_template_id,
16466 p_cle_id => NULL,
16467 p_rgd_code => 'AMTFWC',
16468 p_rule_code => 'AMEFEE',
16469 x_rulv_tbl => l_rulv_tbl,
16470 x_rule_count => l_rule_count
16471 );
16472
16473 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16474 RAISE header_rule_failed;
16475 END IF;
16476
16477 IF (l_rule_count > 0) THEN
16478 l_eot_expense_fee_frml := l_rulv_tbl(1).rule_information3;
16479 END IF;
16480 END IF;
16481
16482 IF (l_eot_expense_fee_frml IS NOT NULL) THEN
16483 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16484 l_rulv_rec.dnz_chr_id := p_chr_id;
16485 l_rulv_rec.rule_information3 := l_eot_expense_fee_frml;
16486 l_rulv_rec.rule_information_category := 'AMEFEE';
16487 l_rulv_rec.std_template_yn := 'N';
16488 l_rulv_rec.warn_yn := 'N';
16489 END IF;
16490
16491 create_rule_group_and_rule(
16492 x_return_status => x_return_status,
16493 x_msg_count => x_msg_count,
16494 x_msg_data => x_msg_data,
16495 p_rgp_id => l_rgp_id,
16496 p_rgpv_rec => l_rgpv_rec,
16497 p_rulv_rec => l_rulv_rec,
16498 x_rgpv_rec => x_rgpv_rec,
16499 x_rulv_rec => x_rulv_rec
16500 );
16501
16502 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16503 raise header_rule_failed;
16504 END IF;
16505
16506 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16507 l_rgp_id := x_rgpv_rec.id;
16508 END IF;
16509
16510 debug_message('------>Rule: AMTFWC/AMEFEE processed');
16511
16512 l_rulv_rec := NULL;
16513
16514 l_eot_financed_fee_frml := p_header_rec.eot_financed_fee_frml;
16515
16516 IF (l_eot_financed_fee_frml IS NULL
16517 AND
16518 p_header_rec.template_number IS NOT NULL) THEN
16519 get_contract_rules(
16520 x_return_status => x_return_status,
16521 x_msg_count => x_msg_count,
16522 x_msg_data => x_msg_data,
16523 p_chr_id => p_template_id,
16524 p_cle_id => NULL,
16525 p_rgd_code => 'AMTFWC',
16526 p_rule_code => 'AMFFEE',
16527 x_rulv_tbl => l_rulv_tbl,
16528 x_rule_count => l_rule_count
16529 );
16530
16531 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16532 RAISE header_rule_failed;
16533 END IF;
16534
16535 IF (l_rule_count > 0) THEN
16536 l_eot_financed_fee_frml := l_rulv_tbl(1).rule_information3;
16537 END IF;
16538 END IF;
16539
16540 IF (l_eot_financed_fee_frml IS NOT NULL) THEN
16541 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16542 l_rulv_rec.dnz_chr_id := p_chr_id;
16543 l_rulv_rec.rule_information3 := l_eot_financed_fee_frml;
16544 l_rulv_rec.rule_information_category := 'AMFFEE';
16545 l_rulv_rec.std_template_yn := 'N';
16546 l_rulv_rec.warn_yn := 'N';
16547 END IF;
16548
16549 create_rule_group_and_rule(
16550 x_return_status => x_return_status,
16551 x_msg_count => x_msg_count,
16552 x_msg_data => x_msg_data,
16553 p_rgp_id => l_rgp_id,
16554 p_rgpv_rec => l_rgpv_rec,
16555 p_rulv_rec => l_rulv_rec,
16556 x_rgpv_rec => x_rgpv_rec,
16557 x_rulv_rec => x_rulv_rec
16558 );
16559
16560 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16561 raise header_rule_failed;
16562 END IF;
16563
16564 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16565 l_rgp_id := x_rgpv_rec.id;
16566 END IF;
16567
16568 debug_message('------>Rule: AMTFWC/AMFFEE processed');
16569
16570 l_rulv_rec := NULL;
16571
16572 l_eot_general_fee_frml := p_header_rec.eot_general_fee_frml;
16573
16574 IF (l_eot_general_fee_frml IS NULL
16575 AND
16576 p_header_rec.template_number IS NOT NULL) THEN
16577 get_contract_rules(
16578 x_return_status => x_return_status,
16579 x_msg_count => x_msg_count,
16580 x_msg_data => x_msg_data,
16581 p_chr_id => p_template_id,
16582 p_cle_id => NULL,
16583 p_rgd_code => 'AMTFWC',
16584 p_rule_code => 'AMGFEE',
16585 x_rulv_tbl => l_rulv_tbl,
16586 x_rule_count => l_rule_count
16587 );
16588
16589 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16590 RAISE header_rule_failed;
16591 END IF;
16592
16593 IF (l_rule_count > 0) THEN
16594 l_eot_general_fee_frml := l_rulv_tbl(1).rule_information3;
16595 END IF;
16596 END IF;
16597
16598 IF (l_eot_general_fee_frml IS NOT NULL) THEN
16599 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16600 l_rulv_rec.dnz_chr_id := p_chr_id;
16601 l_rulv_rec.rule_information3 := l_eot_general_fee_frml;
16602 l_rulv_rec.rule_information_category := 'AMGFEE';
16603 l_rulv_rec.std_template_yn := 'N';
16604 l_rulv_rec.warn_yn := 'N';
16605 END IF;
16606
16607 create_rule_group_and_rule(
16608 x_return_status => x_return_status,
16609 x_msg_count => x_msg_count,
16610 x_msg_data => x_msg_data,
16611 p_rgp_id => l_rgp_id,
16612 p_rgpv_rec => l_rgpv_rec,
16613 p_rulv_rec => l_rulv_rec,
16614 x_rgpv_rec => x_rgpv_rec,
16615 x_rulv_rec => x_rulv_rec
16616 );
16617
16618 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16619 raise header_rule_failed;
16620 END IF;
16621
16622 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16623 l_rgp_id := x_rgpv_rec.id;
16624 END IF;
16625
16626 debug_message('------>Rule: AMTFWC/AMGFEE processed');
16627
16628 l_rulv_rec := NULL;
16629
16630 l_eot_income_fee_frml := p_header_rec.eot_income_fee_frml;
16631
16632 IF (l_eot_income_fee_frml IS NULL
16633 AND
16634 p_header_rec.template_number IS NOT NULL) THEN
16635 get_contract_rules(
16636 x_return_status => x_return_status,
16637 x_msg_count => x_msg_count,
16638 x_msg_data => x_msg_data,
16639 p_chr_id => p_template_id,
16640 p_cle_id => NULL,
16641 p_rgd_code => 'AMTFWC',
16642 p_rule_code => 'AMIFEE',
16643 x_rulv_tbl => l_rulv_tbl,
16644 x_rule_count => l_rule_count
16645 );
16646
16647 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16648 RAISE header_rule_failed;
16649 END IF;
16650
16651 IF (l_rule_count > 0) THEN
16652 l_eot_income_fee_frml := l_rulv_tbl(1).rule_information3;
16653 END IF;
16654 END IF;
16655
16656 IF (l_eot_income_fee_frml IS NOT NULL) THEN
16657 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16658 l_rulv_rec.dnz_chr_id := p_chr_id;
16659 l_rulv_rec.rule_information3 := l_eot_income_fee_frml;
16660 l_rulv_rec.rule_information_category := 'AMIFEE';
16661 l_rulv_rec.std_template_yn := 'N';
16662 l_rulv_rec.warn_yn := 'N';
16663 END IF;
16664
16665 create_rule_group_and_rule(
16666 x_return_status => x_return_status,
16667 x_msg_count => x_msg_count,
16668 x_msg_data => x_msg_data,
16669 p_rgp_id => l_rgp_id,
16670 p_rgpv_rec => l_rgpv_rec,
16671 p_rulv_rec => l_rulv_rec,
16672 x_rgpv_rec => x_rgpv_rec,
16673 x_rulv_rec => x_rulv_rec
16674 );
16675
16676 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16677 raise header_rule_failed;
16678 END IF;
16679
16680 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16681 l_rgp_id := x_rgpv_rec.id;
16682 END IF;
16683
16684 debug_message('------>Rule: AMTFWC/AMIFEE processed');
16685
16686 l_rulv_rec := NULL;
16687
16688 l_eot_misc_fee_frml := p_header_rec.eot_misc_fee_frml;
16689
16690 IF (l_eot_misc_fee_frml IS NULL
16691 AND
16692 p_header_rec.template_number IS NOT NULL) THEN
16693 get_contract_rules(
16694 x_return_status => x_return_status,
16695 x_msg_count => x_msg_count,
16696 x_msg_data => x_msg_data,
16697 p_chr_id => p_template_id,
16698 p_cle_id => NULL,
16699 p_rgd_code => 'AMTFWC',
16700 p_rule_code => 'AMMFEE',
16701 x_rulv_tbl => l_rulv_tbl,
16702 x_rule_count => l_rule_count
16703 );
16704
16705 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16706 RAISE header_rule_failed;
16707 END IF;
16708
16709 IF (l_rule_count > 0) THEN
16710 l_eot_misc_fee_frml := l_rulv_tbl(1).rule_information3;
16711 END IF;
16712 END IF;
16713
16714 IF (l_eot_misc_fee_frml IS NOT NULL) THEN
16715 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16716 l_rulv_rec.dnz_chr_id := p_chr_id;
16717 l_rulv_rec.rule_information3 := l_eot_misc_fee_frml;
16718 l_rulv_rec.rule_information_category := 'AMMFEE';
16719 l_rulv_rec.std_template_yn := 'N';
16720 l_rulv_rec.warn_yn := 'N';
16721 END IF;
16722
16723 create_rule_group_and_rule(
16724 x_return_status => x_return_status,
16725 x_msg_count => x_msg_count,
16726 x_msg_data => x_msg_data,
16727 p_rgp_id => l_rgp_id,
16728 p_rgpv_rec => l_rgpv_rec,
16729 p_rulv_rec => l_rulv_rec,
16730 x_rgpv_rec => x_rgpv_rec,
16731 x_rulv_rec => x_rulv_rec
16732 );
16733
16734 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16735 raise header_rule_failed;
16736 END IF;
16737
16738 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16739 l_rgp_id := x_rgpv_rec.id;
16740 END IF;
16741
16742 debug_message('------>Rule: AMTFWC/AMMFEE processed');
16743
16744 l_rulv_rec := NULL;
16745
16746 l_eot_passthru_fee_frml := p_header_rec.eot_passthru_fee_frml;
16747
16748 IF (l_eot_passthru_fee_frml IS NULL
16749 AND
16750 p_header_rec.template_number IS NOT NULL) THEN
16751 get_contract_rules(
16752 x_return_status => x_return_status,
16753 x_msg_count => x_msg_count,
16754 x_msg_data => x_msg_data,
16755 p_chr_id => p_template_id,
16756 p_cle_id => NULL,
16757 p_rgd_code => 'AMTFWC',
16758 p_rule_code => 'AMPFEE',
16759 x_rulv_tbl => l_rulv_tbl,
16760 x_rule_count => l_rule_count
16761 );
16762
16763 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16764 RAISE header_rule_failed;
16765 END IF;
16766
16767 IF (l_rule_count > 0) THEN
16768 l_eot_passthru_fee_frml := l_rulv_tbl(1).rule_information3;
16769 END IF;
16770 END IF;
16771
16772 IF (l_eot_passthru_fee_frml IS NOT NULL) THEN
16773 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16774 l_rulv_rec.dnz_chr_id := p_chr_id;
16775 l_rulv_rec.rule_information3 := l_eot_passthru_fee_frml;
16776 l_rulv_rec.rule_information_category := 'AMPFEE';
16777 l_rulv_rec.std_template_yn := 'N';
16778 l_rulv_rec.warn_yn := 'N';
16779 END IF;
16780
16781 create_rule_group_and_rule(
16782 x_return_status => x_return_status,
16783 x_msg_count => x_msg_count,
16784 x_msg_data => x_msg_data,
16785 p_rgp_id => l_rgp_id,
16786 p_rgpv_rec => l_rgpv_rec,
16787 p_rulv_rec => l_rulv_rec,
16788 x_rgpv_rec => x_rgpv_rec,
16789 x_rulv_rec => x_rulv_rec
16790 );
16791
16792 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16793 raise header_rule_failed;
16794 END IF;
16795
16796 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16797 l_rgp_id := x_rgpv_rec.id;
16798 END IF;
16799
16800 debug_message('------>Rule: AMTFWC/AMPFEE processed');
16801
16802 l_rulv_rec := NULL;
16803
16804 l_eot_rollover_fee_frml := p_header_rec.eot_rollover_fee_frml;
16805
16806 IF (l_eot_rollover_fee_frml IS NULL
16807 AND
16808 p_header_rec.template_number IS NOT NULL) THEN
16809 get_contract_rules(
16810 x_return_status => x_return_status,
16811 x_msg_count => x_msg_count,
16812 x_msg_data => x_msg_data,
16813 p_chr_id => p_template_id,
16814 p_cle_id => NULL,
16815 p_rgd_code => 'AMTFWC',
16816 p_rule_code => 'AMRFEE',
16817 x_rulv_tbl => l_rulv_tbl,
16818 x_rule_count => l_rule_count
16819 );
16820
16821 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16822 RAISE header_rule_failed;
16823 END IF;
16824
16825 IF (l_rule_count > 0) THEN
16826 l_eot_rollover_fee_frml := l_rulv_tbl(1).rule_information3;
16827 END IF;
16828 END IF;
16829
16830 IF (l_eot_rollover_fee_frml IS NOT NULL) THEN
16831 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16832 l_rulv_rec.dnz_chr_id := p_chr_id;
16833 l_rulv_rec.rule_information3 := l_eot_rollover_fee_frml;
16834 l_rulv_rec.rule_information_category := 'AMRFEE';
16835 l_rulv_rec.std_template_yn := 'N';
16836 l_rulv_rec.warn_yn := 'N';
16837 END IF;
16838
16839 create_rule_group_and_rule(
16840 x_return_status => x_return_status,
16841 x_msg_count => x_msg_count,
16842 x_msg_data => x_msg_data,
16843 p_rgp_id => l_rgp_id,
16844 p_rgpv_rec => l_rgpv_rec,
16845 p_rulv_rec => l_rulv_rec,
16846 x_rgpv_rec => x_rgpv_rec,
16847 x_rulv_rec => x_rulv_rec
16848 );
16849
16850 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16851 raise header_rule_failed;
16852 END IF;
16853
16854 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
16855 l_rgp_id := x_rgpv_rec.id;
16856 END IF;
16857
16858 debug_message('------>Rule: AMTFWC/AMRFEE processed');
16859 /**** AKP Copied to here for AMTFWC 4067094 ***/
16860
16861 /*
16862 * Adding Lien and Title Rules at contract header
16863 *
16864 */
16865 -- Rule Group LAAFLG
16866
16867 l_rgpv_rec := NULL;
16868 l_rgp_id := NULL;
16869 l_rgpv_rec.rgd_code := 'LAAFLG';
16870 l_rgpv_rec.chr_id := p_chr_id;
16871 l_rgpv_rec.dnz_chr_id := p_chr_id;
16872 l_rgpv_rec.cle_id := NULL;
16873 l_rgpv_rec.rgp_type := 'KRG';
16874
16875 l_rulv_rec := NULL;
16876
16877 IF (p_header_rec.lien_holder_name IS NOT NULL
16878 OR
16879 p_header_rec.lien_holder_id IS NOT NULL) THEN
16880
16881 l_lien_holder_id := get_lien_holder(
16882 x_return_status => x_return_status,
16883 p_lien_holder_name => p_header_rec.lien_holder_name,
16884 p_lien_holder_id => p_header_rec.lien_holder_id
16885 );
16886 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16887 okl_api.set_message(
16888 G_APP_NAME,
16889 G_INVALID_VALUE,
16890 'CONTRACT_NUM',
16891 p_header_rec.contract_number_old,
16892 'COL_NAME',
16893 'LIEN_HOLDER_NAME, ID',
16894 'COL_VALUE',
16895 p_header_rec.lien_holder_name||', '||p_header_rec.lien_holder_id
16896 );
16897 RAISE header_rule_failed;
16898 END IF;
16899
16900 END IF;
16901
16902 l_lien_type := p_header_rec.lien_type;
16903 l_filing_number := p_header_rec.filing_number;
16904 l_filing_date := get_canonicaL_date(p_header_rec.filing_date);
16905 l_filing_status := p_header_rec.filing_status ;
16906 l_jurisdiction := p_header_rec.jurisdiction ;
16907 l_sub_jurisdiction := p_header_rec.sub_jurisdiction ;
16908 l_lien_expiration_date := get_canonicaL_date(p_header_rec.lien_expiration_date);
16909 l_lien_continuation_number := p_header_rec.lien_continuation_number;
16910 l_lien_continuation_date := get_canonicaL_date(p_header_rec.lien_continuation_date);
16911
16912 IF (l_lien_type IS NULL
16913 OR
16914 l_filing_number IS NULL
16915 OR
16916 l_filing_date IS NULL
16917 OR
16918 l_filing_status IS NULL
16919 OR
16920 l_lien_holder_id IS NULL
16921 OR
16922 l_jurisdiction IS NULL
16923 OR
16924 l_sub_jurisdiction IS NULL
16925 OR
16926 l_lien_expiration_date IS NULL
16927 OR
16928 l_lien_continuation_number IS NULL
16929 OR
16930 l_lien_continuation_date IS NULL
16931 AND
16932 p_header_rec.template_number IS NOT NULL) THEN
16933
16934 get_contract_rules(
16935 x_return_status => x_return_status,
16936 x_msg_count => x_msg_count,
16937 x_msg_data => x_msg_data,
16938 p_chr_id => p_template_id,
16939 p_cle_id => NULL,
16940 p_rgd_code => 'LAAFLG',
16941 p_rule_code => 'LAFLLN',
16942 x_rulv_tbl => l_rulv_tbl,
16943 x_rule_count => l_rule_count
16944 );
16945
16946 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
16947 RAISE header_rule_failed;
16948 END IF;
16949
16950 IF (l_rule_count > 0) THEN
16951 l_lien_type := NVL(l_lien_type, l_Rulv_tbl(1).rule_information1);
16952 l_filing_number := NVL(l_filing_number, l_rulv_tbl(1).rule_information2);
16953 l_filing_date := NVL(l_filing_date, l_rulv_tbl(1).rule_information3);
16954 l_filing_status := NVL(l_filing_status, l_rulv_tbl(1).rule_information4);
16955 l_jurisdiction := NVL(l_jurisdiction, l_rulv_tbl(1).rule_information5);
16956 l_sub_jurisdiction := NVL(l_sub_jurisdiction, l_rulv_tbl(1).rule_information6);
16957 l_lien_expiration_date := NVL(l_lien_expiration_date, l_rulv_tbl(1).rule_information7);
16958 l_lien_continuation_number := NVL(l_lien_continuation_number, l_rulv_tbl(1).rule_information8);
16959 l_lien_continuation_date := NVL(l_lien_continuation_date, l_rulv_tbl(1).rule_information9);
16960 l_lien_holder_id := NVL(l_lien_holder_id, l_rulv_tbl(1).object1_id1);
16961 END IF;
16962 END IF;
16963
16964 IF (l_lien_type IS NOT NULL) THEN
16965 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16966 l_rulv_rec.dnz_chr_id := p_chr_id;
16967 l_rulv_rec.rule_information1 := l_lien_type;
16968 l_rulv_rec.rule_information_category := 'LAFLLN';
16969 l_rulv_rec.std_template_yn := 'N';
16970 l_rulv_rec.warn_yn := 'N';
16971 END IF;
16972
16973 IF (l_filing_number IS NOT NULL) THEN
16974 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16975 l_rulv_rec.dnz_chr_id := p_chr_id;
16976 l_rulv_rec.rule_information2 := l_filing_number;
16977 l_rulv_rec.rule_information_category := 'LAFLLN';
16978 l_rulv_rec.std_template_yn := 'N';
16979 l_rulv_rec.warn_yn := 'N';
16980 END IF;
16981
16982 IF (l_filing_date IS NOT NULL) THEN
16983 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16984 l_rulv_rec.dnz_chr_id := p_chr_id;
16985 l_rulv_rec.rule_information3 := l_filing_date;
16986 l_rulv_rec.rule_information_category := 'LAFLLN';
16987 l_rulv_rec.std_template_yn := 'N';
16988 l_rulv_rec.warn_yn := 'N';
16989 END IF;
16990
16991 IF (l_filing_status IS NOT NULL) THEN
16992 l_rulv_rec.rgp_id := x_rgpv_rec.id;
16993 l_rulv_rec.dnz_chr_id := p_chr_id;
16994 l_rulv_rec.rule_information4 := l_filing_status;
16995 l_rulv_rec.rule_information_category := 'LAFLLN';
16996 l_rulv_rec.std_template_yn := 'N';
16997 l_rulv_rec.warn_yn := 'N';
16998 END IF;
16999
17000 IF (l_jurisdiction IS NOT NULL) THEN
17001 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17002 l_rulv_rec.dnz_chr_id := p_chr_id;
17003 l_rulv_rec.rule_information5 := l_jurisdiction;
17004 l_rulv_rec.rule_information_category := 'LAFLLN';
17005 l_rulv_rec.std_template_yn := 'N';
17006 l_rulv_rec.warn_yn := 'N';
17007 END IF;
17008
17009 IF (l_sub_jurisdiction IS NOT NULL) THEN
17010 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17011 l_rulv_rec.dnz_chr_id := p_chr_id;
17012 l_rulv_rec.rule_information6 := l_sub_jurisdiction;
17013 l_rulv_rec.rule_information_category := 'LAFLLN';
17014 l_rulv_rec.std_template_yn := 'N';
17015 l_rulv_rec.warn_yn := 'N';
17016 END IF;
17017
17018 IF (l_lien_expiration_date IS NOT NULL) THEN
17019 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17020 l_rulv_rec.dnz_chr_id := p_chr_id;
17021 l_rulv_rec.rule_information7 := l_lien_expiration_date;
17022 l_rulv_rec.rule_information_category := 'LAFLLN';
17023 l_rulv_rec.std_template_yn := 'N';
17024 l_rulv_rec.warn_yn := 'N';
17025 END IF;
17026
17027 IF (l_lien_continuation_number IS NOT NULL) THEN
17028 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17029 l_rulv_rec.dnz_chr_id := p_chr_id;
17030 l_rulv_rec.rule_information8 := l_lien_continuation_number;
17031 l_rulv_rec.rule_information_category := 'LAFLLN';
17032 l_rulv_rec.std_template_yn := 'N';
17033 l_rulv_rec.warn_yn := 'N';
17034 END IF;
17035
17036 IF (l_lien_continuation_date IS NOT NULL) THEN
17037 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17038 l_rulv_rec.dnz_chr_id := p_chr_id;
17039 l_rulv_rec.rule_information9 := l_lien_continuation_date;
17040 l_rulv_rec.rule_information_category := 'LAFLLN';
17041 l_rulv_rec.std_template_yn := 'N';
17042 l_rulv_rec.warn_yn := 'N';
17043 END IF;
17044
17045 IF (l_lien_holder_id IS NOT NULL) THEN
17046 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17047 l_rulv_rec.dnz_chr_id := p_chr_id;
17048 l_rulv_rec.jtot_object1_code := 'OKX_PARTY';
17049 l_rulv_rec.object1_id1 := l_lien_holder_id;
17050 l_rulv_rec.object1_id2 := '#';
17051 l_rulv_rec.rule_information_category := 'LAFLLN';
17052 l_rulv_rec.std_template_yn := 'N';
17053 l_rulv_rec.warn_yn := 'N';
17054 END IF;
17055
17056 create_rule_group_and_rule(
17057 x_return_status => x_return_status,
17058 x_msg_count => x_msg_count,
17059 x_msg_data => x_msg_data,
17060 p_rgp_id => l_rgp_id,
17061 p_rgpv_rec => l_rgpv_rec,
17062 p_rulv_rec => l_rulv_rec,
17063 x_rgpv_rec => x_rgpv_rec,
17064 x_rulv_rec => x_rulv_rec
17065 );
17066
17067 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17068 raise header_rule_failed;
17069 END IF;
17070
17071 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17072 l_rgp_id := x_rgpv_rec.id;
17073 END IF;
17074 debug_message('------>Rule: LAAFLG/LAFLLN processed');
17075 l_rulv_rec := NULL;
17076
17077 l_title_type := p_header_rec.title_type ;
17078 l_title_issuer_name := p_header_rec.title_issuer_name ;
17079 l_title_issuer_id := p_header_rec.title_issuer_id ;
17080 l_title_date := get_canonicaL_date(p_header_rec.title_date);
17081 l_title_number := p_header_rec.title_number ;
17082 l_registration_number := p_header_rec.registration_number ;
17083 l_location := p_header_rec.location ;
17084 l_title_custodian_name := p_header_rec.title_custodian_name ;
17085 l_title_custodian_id := p_header_rec.title_custodian_id ;
17086 l_payee_site := p_header_rec.payee_site ;
17087 l_registration_location := p_header_rec.registration_location ;
17088 l_reg_expiration_date := get_canonicaL_date(p_header_rec.reg_expiration_date);
17089
17090 x_title_issuer_id := NULL;
17091 IF (l_title_issuer_name IS NOT NULL
17092 OR
17093 l_title_issuer_id IS NOT NULL) THEN
17094
17095 get_party_id(
17096 x_return_status => x_return_status,
17097 x_msg_count => x_msg_count,
17098 x_msg_data => x_msg_data,
17099 p_contract_number => p_header_rec.contract_number_old,
17100 p_line_number => NULL,
17101 p_party_id => l_title_issuer_id,
17102 p_party_number => l_title_issuer_name,
17103 x_party_id => x_title_issuer_id
17104 );
17105
17106 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17107 RAISE header_rule_failed;
17108 END IF;
17109 END IF;
17110
17111 x_title_custodian_id := NULL;
17112 IF (l_title_custodian_name IS NOT NULL
17113 OR
17114 l_title_custodian_id IS NOT NULL) THEN
17115
17116 get_party_id(
17117 x_return_status => x_return_status,
17118 x_msg_count => x_msg_count,
17119 x_msg_data => x_msg_data,
17120 p_contract_number => p_header_rec.contract_number_old,
17121 p_line_number => NULL,
17122 p_party_id => l_title_custodian_id,
17123 p_party_number => l_title_custodian_name,
17124 x_party_id => x_title_custodian_id
17125 );
17126
17127 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17128 RAISE header_rule_failed;
17129 END IF;
17130 END IF;
17131
17132 IF (l_title_type IS NULL
17133 OR
17134 x_title_issuer_id IS NULL
17135 OR
17136 l_title_date IS NULL
17137 OR
17138 l_title_number IS NULL
17139 OR
17140 l_registration_number IS NULL
17141 OR
17142 l_location IS NULL
17143 OR
17144 x_title_custodian_id IS NULL
17145 OR
17146 l_payee_site IS NULL
17147 OR
17148 l_registration_location IS NULL
17149 OR
17150 l_reg_expiration_date IS NULL
17151 AND
17152 p_header_rec.template_number IS NOT NULL) THEN
17153 get_contract_rules(
17154 x_return_status => x_return_status,
17155 x_msg_count => x_msg_count,
17156 x_msg_data => x_msg_data,
17157 p_chr_id => p_template_id,
17158 p_cle_id => NULL,
17159 p_rgd_code => 'LAAFLG',
17160 p_rule_code => 'LAFLTL',
17161 x_rulv_tbl => l_rulv_tbl,
17162 x_rule_count => l_rule_count
17163 );
17164
17165 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17166 RAISE header_rule_failed;
17167 END IF;
17168
17169 IF (l_rule_count > 0) THEN
17170 l_title_type := NVL(l_title_type, l_rulv_tbl(1).rule_information1);
17171 l_title_issuer_id := NVL(x_title_issuer_id, l_rulv_tbl(1).object1_id1);
17172 l_title_date := NVL(l_title_date, l_rulv_tbl(1).rule_information2);
17173 l_title_number := NVL(l_title_number, l_rulv_tbl(1).rule_information3);
17174 l_registration_number := NVL(l_registration_number, l_rulv_tbl(1).rule_information4);
17175 l_location := NVL(l_location, l_rulv_tbl(1).rule_information5);
17176 l_title_custodian_id := NVL(x_title_custodian_id, l_rulv_tbl(1).object2_id1);
17177 l_payee_site := NVL(l_payee_site, l_rulv_tbl(1).rule_information6);
17178 l_registration_location := NVL(l_registration_location, l_rulv_tbl(1).rule_information7);
17179 l_reg_expiration_date := NVL(l_reg_expiration_date, l_rulv_tbl(1).rule_information8);
17180 END IF;
17181 END IF;
17182
17183 IF (l_title_type IS NOT NULL) THEN
17184 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17185 l_rulv_rec.dnz_chr_id := p_chr_id;
17186 l_rulv_rec.rule_information1 := l_title_type;
17187 l_rulv_rec.rule_information_category := 'LAFLTL';
17188 l_rulv_rec.std_template_yn := 'N';
17189 l_rulv_rec.warn_yn := 'N';
17190 END IF;
17191
17192 IF (l_title_date IS NOT NULL) THEN
17193 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17194 l_rulv_rec.dnz_chr_id := p_chr_id;
17195 l_rulv_rec.rule_information2 := l_title_date;
17196 l_rulv_rec.rule_information_category := 'LAFLTL';
17197 l_rulv_rec.std_template_yn := 'N';
17198 l_rulv_rec.warn_yn := 'N';
17199 END IF;
17200
17201 IF (l_title_number IS NOT NULL) THEN
17202 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17203 l_rulv_rec.dnz_chr_id := p_chr_id;
17204 l_rulv_rec.rule_information3 := l_title_number;
17205 l_rulv_rec.rule_information_category := 'LAFLTL';
17206 l_rulv_rec.std_template_yn := 'N';
17207 l_rulv_rec.warn_yn := 'N';
17208 END IF;
17209
17210 IF (l_registration_number IS NOT NULL) THEN
17211 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17212 l_rulv_rec.dnz_chr_id := p_chr_id;
17213 l_rulv_rec.rule_information4 := l_registration_number;
17214 l_rulv_rec.rule_information_category := 'LAFLTL';
17215 l_rulv_rec.std_template_yn := 'N';
17216 l_rulv_rec.warn_yn := 'N';
17217 END IF;
17218
17219 IF (l_location IS NOT NULL) THEN
17220 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17221 l_rulv_rec.dnz_chr_id := p_chr_id;
17222 l_rulv_rec.rule_information5 := l_location;
17223 l_rulv_rec.rule_information_category := 'LAFLTL';
17224 l_rulv_rec.std_template_yn := 'N';
17225 l_rulv_rec.warn_yn := 'N';
17226 END IF;
17227
17228 IF (l_payee_site IS NOT NULL) THEN
17229 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17230 l_rulv_rec.dnz_chr_id := p_chr_id;
17231 l_rulv_rec.rule_information6 := l_payee_site;
17232 l_rulv_rec.rule_information_category := 'LAFLTL';
17233 l_rulv_rec.std_template_yn := 'N';
17234 l_rulv_rec.warn_yn := 'N';
17235 END IF;
17236
17237 IF (l_registration_location IS NOT NULL) THEN
17238 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17239 l_rulv_rec.dnz_chr_id := p_chr_id;
17240 l_rulv_rec.rule_information7 := l_registration_location;
17241 l_rulv_rec.rule_information_category := 'LAFLTL';
17242 l_rulv_rec.std_template_yn := 'N';
17243 l_rulv_rec.warn_yn := 'N';
17244 END IF;
17245
17246 IF (l_reg_expiration_date IS NOT NULL) THEN
17247 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17248 l_rulv_rec.dnz_chr_id := p_chr_id;
17249 l_rulv_rec.rule_information8 := l_reg_expiration_date;
17250 l_rulv_rec.rule_information_category := 'LAFLTL';
17251 l_rulv_rec.std_template_yn := 'N';
17252 l_rulv_rec.warn_yn := 'N';
17253 END IF;
17254
17255 IF (l_title_issuer_id IS NOT NULL) THEN
17256 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17257 l_rulv_rec.dnz_chr_id := p_chr_id;
17258 l_rulv_rec.jtot_object1_code := 'OKX_PARTY';
17259 l_rulv_rec.object1_id1 := x_title_issuer_id;
17260 l_rulv_rec.object1_id2 := '#';
17261 l_rulv_rec.rule_information_category := 'LAFLTL';
17262 l_rulv_rec.std_template_yn := 'N';
17263 l_rulv_rec.warn_yn := 'N';
17264 END IF;
17265
17266 IF (l_title_custodian_id IS NOT NULL) THEN
17267 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17268 l_rulv_rec.dnz_chr_id := p_chr_id;
17269 l_rulv_rec.jtot_object1_code := 'OKX_PARTY';
17270 l_rulv_rec.object2_id1 := x_title_custodian_id;
17271 l_rulv_rec.object2_id2 := '#';
17272 l_rulv_rec.rule_information_category := 'LAFLTL';
17273 l_rulv_rec.std_template_yn := 'N';
17274 l_rulv_rec.warn_yn := 'N';
17275 END IF;
17276
17277 create_rule_group_and_rule(
17278 x_return_status => x_return_status,
17279 x_msg_count => x_msg_count,
17280 x_msg_data => x_msg_data,
17281 p_rgp_id => l_rgp_id,
17282 p_rgpv_rec => l_rgpv_rec,
17283 p_rulv_rec => l_rulv_rec,
17284 x_rgpv_rec => x_rgpv_rec,
17285 x_rulv_rec => x_rulv_rec
17286 );
17287
17288 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17289 raise header_rule_failed;
17290 END IF;
17291
17292 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17293 l_rgp_id := x_rgpv_rec.id;
17294 END IF;
17295 debug_message('------>Rule: LAAFLG/LAFLTL processed');
17296
17297 /*
17298 * Adding Contract Portfolio Rules at contract header
17299 *
17300 */
17301 -- Rule Group AMCOPO
17302
17303 l_rgpv_rec := NULL;
17304 l_rgp_id := NULL;
17305 l_rgpv_rec.rgd_code := 'AMCOPO';
17306 l_rgpv_rec.chr_id := p_chr_id;
17307 l_rgpv_rec.dnz_chr_id := p_chr_id;
17308 l_rgpv_rec.cle_id := NULL;
17309 l_rgpv_rec.rgp_type := 'KRG';
17310
17311 l_rulv_rec := NULL;
17312
17313 l_prtfl_approval_req := p_header_rec.prtfl_approval_req;
17314
17315 IF (l_prtfl_approval_req IS NULL
17316 AND
17317 p_header_rec.template_number IS NOT NULL) THEN
17318 get_contract_rules(
17319 x_return_status => x_return_status,
17320 x_msg_count => x_msg_count,
17321 x_msg_data => x_msg_data,
17322 p_chr_id => p_template_id,
17323 p_cle_id => NULL,
17324 p_rgd_code => 'AMCOPO',
17325 p_rule_code => 'AMAPRE',
17326 x_rulv_tbl => l_rulv_tbl,
17327 x_rule_count => l_rule_count
17328 );
17329
17330 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17331 RAISE header_rule_failed;
17332 END IF;
17333
17334 IF (l_rule_count > 0) THEN
17335 l_prtfl_approval_req := NVL(l_prtfl_approval_req, l_rulv_tbl(1).rule_information1);
17336 END IF;
17337 END IF;
17338
17339 IF (l_prtfl_approval_req IS NOT NULL) THEN
17340 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17341 l_rulv_rec.dnz_chr_id := p_chr_id;
17342 l_rulv_rec.rule_information1 := l_prtfl_approval_req;
17343 l_rulv_rec.rule_information_category := 'AMAPRE';
17344 l_rulv_rec.std_template_yn := 'N';
17345 l_rulv_rec.warn_yn := 'N';
17346 END IF;
17347
17348 create_rule_group_and_rule(
17349 x_return_status => x_return_status,
17350 x_msg_count => x_msg_count,
17351 x_msg_data => x_msg_data,
17352 p_rgp_id => l_rgp_id,
17353 p_rgpv_rec => l_rgpv_rec,
17354 p_rulv_rec => l_rulv_rec,
17355 x_rgpv_rec => x_rgpv_rec,
17356 x_rulv_rec => x_rulv_rec
17357 );
17358
17359 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17360 raise header_rule_failed;
17361 END IF;
17362
17363 debug_message('------>Rule: AMCOPO/AMAPRE processed');
17364
17365 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17366 l_rgp_id := x_rgpv_rec.id;
17367 END IF;
17368 l_rulv_rec := NULL;
17369
17370 l_prtfl_assgn_group := p_header_rec.prtfl_assgn_group;
17371
17372 IF (l_prtfl_assgn_group IS NULL
17373 AND
17374 p_header_rec.template_number IS NOT NULL) THEN
17375 get_contract_rules(
17376 x_return_status => x_return_status,
17377 x_msg_count => x_msg_count,
17378 x_msg_data => x_msg_data,
17379 p_chr_id => p_template_id,
17380 p_cle_id => NULL,
17381 p_rgd_code => 'AMCOPO',
17382 p_rule_code => 'AMPRAG',
17383 x_rulv_tbl => l_rulv_tbl,
17384 x_rule_count => l_rule_count
17385 );
17386
17387 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17388 RAISE header_rule_failed;
17389 END IF;
17390
17391 IF (l_rule_count > 0) THEN
17392 l_prtfl_assgn_group := NVL(l_prtfl_assgn_group, l_rulv_tbl(1).rule_information1);
17393 END IF;
17394 END IF;
17395
17396 IF (l_prtfl_assgn_group IS NOT NULL) THEN
17397 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17398 l_rulv_rec.dnz_chr_id := p_chr_id;
17399 l_rulv_rec.rule_information1 := l_prtfl_assgn_group;
17400 l_rulv_rec.rule_information_category := 'AMPRAG';
17401 l_rulv_rec.std_template_yn := 'N';
17402 l_rulv_rec.warn_yn := 'N';
17403 END IF;
17404
17405 create_rule_group_and_rule(
17406 x_return_status => x_return_status,
17407 x_msg_count => x_msg_count,
17408 x_msg_data => x_msg_data,
17409 p_rgp_id => l_rgp_id,
17410 p_rgpv_rec => l_rgpv_rec,
17411 p_rulv_rec => l_rulv_rec,
17412 x_rgpv_rec => x_rgpv_rec,
17413 x_rulv_rec => x_rulv_rec
17414 );
17415
17416 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17417 raise header_rule_failed;
17418 END IF;
17419
17420 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17421 l_rgp_id := x_rgpv_rec.id;
17422 END IF;
17423 debug_message('------>Rule: AMCOPO/AMPRAG processed');
17424 l_rulv_rec := NULL;
17425
17426 l_prtfl_budget_amt_opt := p_header_rec.prtfl_budget_amt_opt;
17427 l_prtfl_budget_fixed_amt := TO_CHAR(p_header_rec.prtfl_budget_fixed_amt);
17428 l_prtfl_budget_amt_formula := p_header_rec.prtfl_budget_amt_formula;
17429
17430 IF (l_prtfl_budget_amt_opt IS NULL
17431 OR
17432 l_prtfl_budget_fixed_amt IS NULL
17433 OR
17434 l_prtfl_budget_amt_formula IS NULL
17435 AND
17436 p_header_rec.template_number IS NOT NULL) THEN
17437 get_contract_rules(
17438 x_return_status => x_return_status,
17439 x_msg_count => x_msg_count,
17440 x_msg_data => x_msg_data,
17441 p_chr_id => p_template_id,
17442 p_cle_id => NULL,
17443 p_rgd_code => 'AMCOPO',
17444 p_rule_code => 'AMPRBA',
17445 x_rulv_tbl => l_rulv_tbl,
17446 x_rule_count => l_rule_count
17447 );
17448
17449 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17450 RAISE header_rule_failed;
17451 END IF;
17452
17453 IF (l_rule_count > 0) THEN
17454 l_prtfl_budget_amt_opt := NVL(l_prtfl_budget_amt_opt, l_rulv_tbl(1).rule_information1);
17455 l_prtfl_budget_fixed_amt := NVL(l_prtfl_budget_fixed_amt, l_rulv_tbl(1).rule_information2);
17456 l_prtfl_budget_amt_formula := NVL(l_prtfl_budget_amt_formula, l_rulv_tbl(1).rule_information3);
17457 END IF;
17458 END IF;
17459
17460 IF (l_prtfl_budget_amt_opt = 'NOT_APPLICABLE') THEN -- 4912795
17461 l_prtfl_budget_fixed_amt := NULL;
17462 l_prtfl_budget_amt_formula := NULL;
17463 END IF;
17464
17465 IF (l_prtfl_budget_amt_opt IS NOT NULL) THEN
17466 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17467 l_rulv_rec.dnz_chr_id := p_chr_id;
17468 l_rulv_rec.rule_information1 := l_prtfl_budget_amt_opt;
17469 l_rulv_rec.rule_information_category := 'AMPRBA';
17470 l_rulv_rec.std_template_yn := 'N';
17471 l_rulv_rec.warn_yn := 'N';
17472 END IF;
17473
17474 IF (l_prtfl_budget_fixed_amt IS NOT NULL) THEN
17475 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17476 l_rulv_rec.dnz_chr_id := p_chr_id;
17477 l_rulv_rec.rule_information2 := l_prtfl_budget_fixed_amt;
17478 l_rulv_rec.rule_information_category := 'AMPRBA';
17479 l_rulv_rec.std_template_yn := 'N';
17480 l_rulv_rec.warn_yn := 'N';
17481 END IF;
17482
17483 IF (l_prtfl_budget_amt_formula IS NOT NULL) THEN
17484 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17485 l_rulv_rec.dnz_chr_id := p_chr_id;
17486 l_rulv_rec.rule_information3 := l_prtfl_budget_amt_formula;
17487 l_rulv_rec.rule_information_category := 'AMPRBA';
17488 l_rulv_rec.std_template_yn := 'N';
17489 l_rulv_rec.warn_yn := 'N';
17490 END IF;
17491
17492 create_rule_group_and_rule(
17493 x_return_status => x_return_status,
17494 x_msg_count => x_msg_count,
17495 x_msg_data => x_msg_data,
17496 p_rgp_id => l_rgp_id,
17497 p_rgpv_rec => l_rgpv_rec,
17498 p_rulv_rec => l_rulv_rec,
17499 x_rgpv_rec => x_rgpv_rec,
17500 x_rulv_rec => x_rulv_rec
17501 );
17502
17503 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17504 raise header_rule_failed;
17505 END IF;
17506
17507 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17508 l_rgp_id := x_rgpv_rec.id;
17509 END IF;
17510 debug_message('------>Rule: AMCOPO/AMPRBA processed');
17511 l_rulv_rec := NULL;
17512
17513 l_prtfl_days_from_con_expr := p_header_rec.prtfl_days_from_con_expr;
17514
17515 IF (l_prtfl_days_from_con_expr IS NULL
17516 AND
17517 p_header_rec.template_number IS NOT NULL) THEN
17518 get_contract_rules(
17519 x_return_status => x_return_status,
17520 x_msg_count => x_msg_count,
17521 x_msg_data => x_msg_data,
17522 p_chr_id => p_template_id,
17523 p_cle_id => NULL,
17524 p_rgd_code => 'AMCOPO',
17525 p_rule_code => 'AMPRED',
17526 x_rulv_tbl => l_rulv_tbl,
17527 x_rule_count => l_rule_count
17528 );
17529
17530 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17531 RAISE header_rule_failed;
17532 END IF;
17533
17534 IF (l_rule_count > 0) THEN
17535 l_prtfl_days_from_con_expr := NVL(l_prtfl_days_from_con_expr, l_rulv_tbl(1).rule_information1);
17536 END IF;
17537 END IF;
17538
17539 IF (l_prtfl_days_from_con_expr IS NOT NULL) THEN
17540 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17541 l_rulv_rec.dnz_chr_id := p_chr_id;
17542 l_rulv_rec.rule_information1 := l_prtfl_days_from_con_expr;
17543 l_rulv_rec.rule_information_category := 'AMPRED';
17544 l_rulv_rec.std_template_yn := 'N';
17545 l_rulv_rec.warn_yn := 'N';
17546 END IF;
17547
17548 create_rule_group_and_rule(
17549 x_return_status => x_return_status,
17550 x_msg_count => x_msg_count,
17551 x_msg_data => x_msg_data,
17552 p_rgp_id => l_rgp_id,
17553 p_rgpv_rec => l_rgpv_rec,
17554 p_rulv_rec => l_rulv_rec,
17555 x_rgpv_rec => x_rgpv_rec,
17556 x_rulv_rec => x_rulv_rec
17557 );
17558
17559 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17560 raise header_rule_failed;
17561 END IF;
17562
17563 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17564 l_rgp_id := x_rgpv_rec.id;
17565 END IF;
17566 l_rulv_rec := NULL;
17567
17568 l_prtfl_strategy := p_header_rec.prtfl_strategy;
17569
17570 IF (l_prtfl_strategy IS NULL
17571 AND
17572 p_header_rec.template_number IS NOT NULL) THEN
17573 get_contract_rules(
17574 x_return_status => x_return_status,
17575 x_msg_count => x_msg_count,
17576 x_msg_data => x_msg_data,
17577 p_chr_id => p_template_id,
17578 p_cle_id => NULL,
17579 p_rgd_code => 'AMCOPO',
17580 p_rule_code => 'AMPRST',
17581 x_rulv_tbl => l_rulv_tbl,
17582 x_rule_count => l_rule_count
17583 );
17584
17585 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17586 RAISE header_rule_failed;
17587 END IF;
17588
17589 IF (l_rule_count > 0) THEN
17590 l_prtfl_strategy := NVL(l_prtfl_strategy, l_rulv_tbl(1).rule_information1);
17591 END IF;
17592 END IF;
17593
17594 IF (l_prtfl_strategy IS NOT NULL) THEN
17595 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17596 l_rulv_rec.dnz_chr_id := p_chr_id;
17597 l_rulv_rec.rule_information1 := l_prtfl_strategy;
17598 l_rulv_rec.rule_information_category := 'AMPRST';
17599 l_rulv_rec.std_template_yn := 'N';
17600 l_rulv_rec.warn_yn := 'N';
17601 END IF;
17602
17603 create_rule_group_and_rule(
17604 x_return_status => x_return_status,
17605 x_msg_count => x_msg_count,
17606 x_msg_data => x_msg_data,
17607 p_rgp_id => l_rgp_id,
17608 p_rgpv_rec => l_rgpv_rec,
17609 p_rulv_rec => l_rulv_rec,
17610 x_rgpv_rec => x_rgpv_rec,
17611 x_rulv_rec => x_rulv_rec
17612 );
17613
17614 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17615 raise header_rule_failed;
17616 END IF;
17617
17618 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17619 l_rgp_id := x_rgpv_rec.id;
17620 END IF;
17621 debug_message('------>Rule: AMCOPO/AMPRST processed');
17622 l_rulv_rec := NULL;
17623
17624 /*
17625 * Adding Taxes and Duties rule at contract header
17626 *
17627 */
17628 -- Rule Group LAHDTX
17629
17630 l_rgpv_rec := NULL;
17631 l_rgp_id := NULL;
17632 l_rgpv_rec.rgd_code := 'LAHDTX';
17633 l_rgpv_rec.chr_id := p_chr_id;
17634 l_rgpv_rec.dnz_chr_id := p_chr_id;
17635 l_rgpv_rec.cle_id := NULL;
17636 l_rgpv_rec.rgp_type := 'KRG';
17637
17638 l_rulv_rec := NULL;
17639
17640 l_prop_tax_applicable := p_header_rec.prop_tax_applicable;
17641 l_prop_tax_lease_rep := p_header_rec.prop_tax_lease_rep;
17642 -- Added by rravikir (Fix for Bug 3947959)
17643 l_prop_tax_bill_method := p_header_rec.prop_tax_bill_method;
17644 -- End
17645
17646 IF (l_prop_tax_applicable IS NULL
17647 OR
17648 l_prop_tax_lease_rep IS NULL
17649 -- Added by rravikir (Fix for Bug 3947959)
17650 OR
17651 l_prop_tax_bill_method IS NULL
17652 -- End
17653 AND
17654 p_header_rec.template_number IS NOT NULL) THEN
17655 get_contract_rules(
17656 x_return_status => x_return_status,
17657 x_msg_count => x_msg_count,
17658 x_msg_data => x_msg_data,
17659 p_chr_id => p_template_id,
17660 p_cle_id => NULL,
17661 p_rgd_code => 'LAHDTX',
17662 p_rule_code => 'LAPRTX',
17663 x_rulv_tbl => l_rulv_tbl,
17664 x_rule_count => l_rule_count
17665 );
17666
17667 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17668 RAISE header_rule_failed;
17669 END IF;
17670
17671 IF (l_rule_count > 0) THEN
17672 l_prop_tax_applicable := NVL(l_prop_tax_applicable, l_rulv_tbl(1).rule_information1);
17673 l_prop_tax_lease_rep := NVL(l_prop_tax_lease_rep, l_rulv_tbl(1).rule_information2);
17674 -- Added by rravikir (Fix for Bug 3947959)
17675 l_prop_tax_bill_method := NVL(l_prop_tax_bill_method, l_rulv_tbl(1).rule_information3);
17676 -- End
17677 END IF;
17678 END IF;
17679
17680 IF (l_prop_tax_applicable IS NOT NULL) THEN
17681 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17682 l_rulv_rec.dnz_chr_id := p_chr_id;
17683 l_rulv_rec.rule_information1 := l_prop_tax_applicable;
17684 l_rulv_rec.rule_information_category := 'LAPRTX';
17685 l_rulv_rec.std_template_yn := 'N';
17686 l_rulv_rec.warn_yn := 'N';
17687 END IF;
17688
17689 IF (l_prop_tax_lease_rep IS NOT NULL) THEN
17690 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17691 l_rulv_rec.dnz_chr_id := p_chr_id;
17692 l_rulv_rec.rule_information2 := l_prop_tax_lease_rep;
17693 l_rulv_rec.rule_information_category := 'LAPRTX';
17694 l_rulv_rec.std_template_yn := 'N';
17695 l_rulv_rec.warn_yn := 'N';
17696 END IF;
17697
17698 -- Added by rravikir (Fix for Bug 3947959)
17699 IF (l_prop_tax_bill_method IS NOT NULL) THEN
17700 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17701 l_rulv_rec.dnz_chr_id := p_chr_id;
17702 l_rulv_rec.rule_information3 := l_prop_tax_bill_method;
17703 l_rulv_rec.rule_information_category := 'LAPRTX';
17704 l_rulv_rec.std_template_yn := 'N';
17705 l_rulv_rec.warn_yn := 'N';
17706 END IF;
17707 -- End
17708 create_rule_group_and_rule(
17709 x_return_status => x_return_status,
17710 x_msg_count => x_msg_count,
17711 x_msg_data => x_msg_data,
17712 p_rgp_id => l_rgp_id,
17713 p_rgpv_rec => l_rgpv_rec,
17714 p_rulv_rec => l_rulv_rec,
17715 x_rgpv_rec => x_rgpv_rec,
17716 x_rulv_rec => x_rulv_rec
17717 );
17718
17719 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17720 raise header_rule_failed;
17721 END IF;
17722
17723 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17724 l_rgp_id := x_rgpv_rec.id;
17725 END IF;
17726 debug_message('------>Rule: LAHDTX/LAPRTX processed');
17727 l_rulv_rec := NULL;
17728
17729 l_mex_tax_sub_basic_wthld := p_header_rec.mex_tax_sub_basic_wthld;
17730 l_mex_tax_calc_formula := p_header_rec.mex_tax_calc_formula;
17731
17732
17733 IF (l_mex_tax_sub_basic_wthld IS NULL
17734 OR
17735 l_mex_tax_calc_formula IS NULL
17736 AND
17737 p_header_rec.template_number IS NOT NULL) THEN
17738 get_contract_rules(
17739 x_return_status => x_return_status,
17740 x_msg_count => x_msg_count,
17741 x_msg_data => x_msg_data,
17742 p_chr_id => p_template_id,
17743 p_cle_id => NULL,
17744 p_rgd_code => 'LAHDTX',
17745 p_rule_code => 'LAMETX',
17746 x_rulv_tbl => l_rulv_tbl,
17747 x_rule_count => l_rule_count
17748 );
17749
17750 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17751 RAISE header_rule_failed;
17752 END IF;
17753
17754 IF (l_rule_count > 0) THEN
17755 l_mex_tax_sub_basic_wthld := NVL(l_mex_tax_sub_basic_wthld, l_rulv_tbl(1).rule_information1);
17756 l_mex_tax_calc_formula := NVL(l_mex_tax_calc_formula, l_rulv_tbl(1).rule_information2);
17757 END IF;
17758 END IF;
17759
17760 IF (l_mex_tax_sub_basic_wthld IS NOT NULL) THEN
17761 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17762 l_rulv_rec.dnz_chr_id := p_chr_id;
17763 l_rulv_rec.rule_information1 := l_mex_tax_sub_basic_wthld;
17764 l_rulv_rec.rule_information_category := 'LAMETX';
17765 l_rulv_rec.std_template_yn := 'N';
17766 l_rulv_rec.warn_yn := 'N';
17767 END IF;
17768
17769 IF (l_mex_tax_calc_formula IS NOT NULL) THEN
17770 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17771 l_rulv_rec.dnz_chr_id := p_chr_id;
17772 l_rulv_rec.rule_information2 := l_mex_tax_calc_formula;
17773 l_rulv_rec.rule_information_category := 'LAMETX';
17774 l_rulv_rec.std_template_yn := 'N';
17775 l_rulv_rec.warn_yn := 'N';
17776 END IF;
17777
17778 create_rule_group_and_rule(
17779 x_return_status => x_return_status,
17780 x_msg_count => x_msg_count,
17781 x_msg_data => x_msg_data,
17782 p_rgp_id => l_rgp_id,
17783 p_rgpv_rec => l_rgpv_rec,
17784 p_rulv_rec => l_rulv_rec,
17785 x_rgpv_rec => x_rgpv_rec,
17786 x_rulv_rec => x_rulv_rec
17787 );
17788
17789 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17790 raise header_rule_failed;
17791 END IF;
17792
17793 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17794 l_rgp_id := x_rgpv_rec.id;
17795 END IF;
17796 debug_message('------>Rule: LAHDTX/LAMETX processed');
17797 l_rulv_rec := NULL;
17798
17799 l_aus_tax_stamp_duty := p_header_rec.aus_tax_stamp_duty;
17800
17801 IF (l_aus_tax_stamp_duty IS NULL
17802 AND
17803 p_header_rec.template_number IS NOT NULL) THEN
17804 get_contract_rules(
17805 x_return_status => x_return_status,
17806 x_msg_count => x_msg_count,
17807 x_msg_data => x_msg_data,
17808 p_chr_id => p_template_id,
17809 p_cle_id => NULL,
17810 p_rgd_code => 'LAHDTX',
17811 p_rule_code => 'LAAUTX',
17812 x_rulv_tbl => l_rulv_tbl,
17813 x_rule_count => l_rule_count
17814 );
17815
17816 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17817 RAISE header_rule_failed;
17818 END IF;
17819
17820 IF (l_rule_count > 0) THEN
17821 l_aus_tax_stamp_duty := NVL(l_aus_tax_stamp_duty, l_rulv_tbl(1).rule_information1);
17822 END IF;
17823 END IF;
17824
17825 IF (l_aus_tax_stamp_duty IS NOT NULL) THEN
17826 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17827 l_rulv_rec.dnz_chr_id := p_chr_id;
17828 l_rulv_rec.rule_information1 := l_aus_tax_stamp_duty;
17829 l_rulv_rec.rule_information_category := 'LAAUTX';
17830 l_rulv_rec.std_template_yn := 'N';
17831 l_rulv_rec.warn_yn := 'N';
17832 END IF;
17833
17834 create_rule_group_and_rule(
17835 x_return_status => x_return_status,
17836 x_msg_count => x_msg_count,
17837 x_msg_data => x_msg_data,
17838 p_rgp_id => l_rgp_id,
17839 p_rgpv_rec => l_rgpv_rec,
17840 p_rulv_rec => l_rulv_rec,
17841 x_rgpv_rec => x_rgpv_rec,
17842 x_rulv_rec => x_rulv_rec
17843 );
17844
17845 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17846 raise header_rule_failed;
17847 END IF;
17848
17849 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17850 l_rgp_id := x_rgpv_rec.id;
17851 END IF;
17852 debug_message('------>Rule: LAHDTX/LAAUTX processed');
17853 l_rulv_rec := NULL;
17854
17855 l_st_upd_lines_from_contract := p_header_rec.st_update_lines_from_contract;
17856 l_st_interest_disclosed := p_header_rec.st_interest_disclosed;
17857 l_st_transfer_of_title := p_header_rec.st_transfer_of_title;
17858 l_st_sale_and_lease_back := p_header_rec.st_sale_and_lease_back;
17859 l_st_purchase_of_lease := p_header_rec.st_purchase_of_lease;
17860 l_st_equipment_usage := p_header_rec.st_equipment_usage;
17861 l_st_equipment_age := p_header_rec.st_equipment_age;
17862
17863
17864 IF (l_st_upd_lines_from_contract IS NULL
17865 OR
17866 l_st_interest_disclosed IS NULL
17867 OR
17868 l_st_transfer_of_title IS NULL
17869 OR
17870 l_st_sale_and_lease_back IS NULL
17871 OR
17872 l_st_purchase_of_lease IS NULL
17873 OR
17874 l_st_equipment_usage IS NULL
17875 OR
17876 l_st_equipment_age IS NULL
17877 AND
17878 p_header_rec.template_number IS NOT NULL) THEN
17879 get_contract_rules(
17880 x_return_status => x_return_status,
17881 x_msg_count => x_msg_count,
17882 x_msg_data => x_msg_data,
17883 p_chr_id => p_template_id,
17884 p_cle_id => NULL,
17885 p_rgd_code => 'LAHDTX',
17886 p_rule_code => 'LASTCL',
17887 x_rulv_tbl => l_rulv_tbl,
17888 x_rule_count => l_rule_count
17889 );
17890
17891 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17892 RAISE header_rule_failed;
17893 END IF;
17894
17895 IF (l_rule_count > 0) THEN
17896 l_st_upd_lines_from_contract := NVL(l_st_upd_lines_from_contract, l_rulv_tbl(1).rule_information1);
17897 l_st_interest_disclosed := NVL(l_st_interest_disclosed, l_rulv_tbl(1).rule_information2);
17898 l_st_transfer_of_title := NVL(l_st_transfer_of_title, l_rulv_tbl(1).rule_information3);
17899 l_st_sale_and_lease_back := NVL(l_st_sale_and_lease_back, l_rulv_tbl(1).rule_information4);
17900 l_st_purchase_of_lease := NVL(l_st_purchase_of_lease, l_rulv_tbl(1).rule_information5);
17901 l_st_equipment_usage := NVL(l_st_equipment_usage, l_rulv_tbl(1).rule_information6);
17902 l_st_equipment_age := NVL(l_st_equipment_age, l_rulv_tbl(1).rule_information7);
17903 END IF;
17904 END IF;
17905
17906 IF (l_st_upd_lines_from_contract IS NOT NULL) THEN
17907 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17908 l_rulv_rec.dnz_chr_id := p_chr_id;
17909 l_rulv_rec.rule_information1 := l_st_upd_lines_from_contract;
17910 l_rulv_rec.rule_information_category := 'LASTCL';
17911 l_rulv_rec.std_template_yn := 'N';
17912 l_rulv_rec.warn_yn := 'N';
17913 END IF;
17914
17915 IF (l_st_interest_disclosed IS NOT NULL) THEN
17916 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17917 l_rulv_rec.dnz_chr_id := p_chr_id;
17918 l_rulv_rec.rule_information2 := l_st_interest_disclosed;
17919 l_rulv_rec.rule_information_category := 'LASTCL';
17920 l_rulv_rec.std_template_yn := 'N';
17921 l_rulv_rec.warn_yn := 'N';
17922 END IF;
17923
17924 IF (l_st_transfer_of_title IS NOT NULL) THEN
17925 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17926 l_rulv_rec.dnz_chr_id := p_chr_id;
17927 l_rulv_rec.rule_information3 := l_st_transfer_of_title;
17928 l_rulv_rec.rule_information_category := 'LASTCL';
17929 l_rulv_rec.std_template_yn := 'N';
17930 l_rulv_rec.warn_yn := 'N';
17931 END IF;
17932
17933 IF (l_st_sale_and_lease_back IS NOT NULL) THEN
17934 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17935 l_rulv_rec.dnz_chr_id := p_chr_id;
17936 l_rulv_rec.rule_information4 := l_st_sale_and_lease_back;
17937 l_rulv_rec.rule_information_category := 'LASTCL';
17938 l_rulv_rec.std_template_yn := 'N';
17939 l_rulv_rec.warn_yn := 'N';
17940 END IF;
17941
17942 IF (l_st_purchase_of_lease IS NOT NULL) THEN
17943 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17944 l_rulv_rec.dnz_chr_id := p_chr_id;
17945 l_rulv_rec.rule_information5 := l_st_purchase_of_lease;
17946 l_rulv_rec.rule_information_category := 'LASTCL';
17947 l_rulv_rec.std_template_yn := 'N';
17948 l_rulv_rec.warn_yn := 'N';
17949 END IF;
17950
17951 IF (l_st_equipment_usage IS NOT NULL) THEN
17952 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17953 l_rulv_rec.dnz_chr_id := p_chr_id;
17954 l_rulv_rec.rule_information6 := l_st_equipment_usage;
17955 l_rulv_rec.rule_information_category := 'LASTCL';
17956 l_rulv_rec.std_template_yn := 'N';
17957 l_rulv_rec.warn_yn := 'N';
17958 END IF;
17959
17960 IF (l_st_equipment_age IS NOT NULL) THEN
17961 l_rulv_rec.rgp_id := x_rgpv_rec.id;
17962 l_rulv_rec.dnz_chr_id := p_chr_id;
17963 l_rulv_rec.rule_information7 := l_st_equipment_age;
17964 l_rulv_rec.rule_information_category := 'LASTCL';
17965 l_rulv_rec.std_template_yn := 'N';
17966 l_rulv_rec.warn_yn := 'N';
17967 END IF;
17968
17969 create_rule_group_and_rule(
17970 x_return_status => x_return_status,
17971 x_msg_count => x_msg_count,
17972 x_msg_data => x_msg_data,
17973 p_rgp_id => l_rgp_id,
17974 p_rgpv_rec => l_rgpv_rec,
17975 p_rulv_rec => l_rulv_rec,
17976 x_rgpv_rec => x_rgpv_rec,
17977 x_rulv_rec => x_rulv_rec
17978 );
17979
17980 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
17981 raise header_rule_failed;
17982 END IF;
17983
17984 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
17985 l_rgp_id := x_rgpv_rec.id;
17986 END IF;
17987 debug_message('------>Rule: LAHDTX/LASTCL processed');
17988 l_rulv_rec := NULL;
17989
17990 l_st_asset_upfront_tax := p_header_rec.st_asset_upfront_tax;
17991 l_st_bill_stream_type_code := p_header_rec.st_bill_stream_type_code;
17992 l_st_bill_stream_purpose_code := p_header_rec.st_bill_stream_purpose_code;
17993 l_st_bill_stream_id := NULL;
17994 l_st_fin_stream_type_code := p_header_rec.st_fin_stream_type_code;
17995 l_st_fin_stream_purpose_code := p_header_rec.st_fin_stream_purpose_code;
17996 l_st_fin_stream_id := NULL;
17997 l_st_cap_stream_type_code := p_header_rec.st_cap_stream_type_code;
17998 l_st_cap_stream_purpose_code := p_header_rec.st_cap_stream_purpose_code;
17999 l_st_cap_stream_id := NULL;
18000
18001 --R12B ebTax change
18002 l_st_tax_schedule_applies_flag := p_header_rec.st_tax_schedule_applies_flag;
18003
18004 IF (l_st_bill_stream_type_code IS NOT NULL
18005 AND
18006 l_st_bill_stream_purpose_code IS NOT NULL) THEN
18007 check_stream_type_code(
18008 x_return_status => x_return_status,
18009 x_msg_count => x_msg_count,
18010 x_msg_data => x_msg_data,
18011 p_stream_type_code => l_st_bill_stream_type_code,
18012 p_stream_purpose => l_st_bill_stream_purpose_code,
18013 x_id1 => l_id1,
18014 x_name => l_st_stream_name
18015 );
18016 l_st_bill_stream_id := l_id1;
18017
18018 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18019 okl_api.set_message(
18020 G_APP_NAME,
18021 G_INVALID_VALUE,
18022 'CONTRACT_NUM',
18023 p_header_rec.contract_number_old,
18024 'COL_NAME',
18025 'ST_BILL_STREAM_TYPE_CODE, ST_BILL_STREAM_PURPOSE_CODE',
18026 'COL_VALUE',
18027 l_st_bill_stream_type_code||', '||l_st_bill_stream_purpose_code
18028 );
18029 x_return_status := OKL_API.G_RET_STS_ERROR;
18030 RAISE header_rule_failed;
18031 END IF;
18032 END IF;
18033
18034 IF (l_st_fin_stream_type_code IS NOT NULL
18035 AND
18036 l_st_fin_stream_purpose_code IS NOT NULL) THEN
18037 check_stream_type_code(
18038 x_return_status => x_return_status,
18039 x_msg_count => x_msg_count,
18040 x_msg_data => x_msg_data,
18041 p_stream_type_code => l_st_fin_stream_type_code,
18042 p_stream_purpose => l_st_fin_stream_purpose_code,
18043 x_id1 => l_id1,
18044 x_name => l_st_stream_name
18045 );
18046 l_st_fin_stream_id := l_id1;
18047
18048 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18049 okl_api.set_message(
18050 G_APP_NAME,
18051 G_INVALID_VALUE,
18052 'CONTRACT_NUM',
18053 p_header_rec.contract_number_old,
18054 'COL_NAME',
18055 'ST_FIN_STREAM_TYPE_CODE, ST_FIN_STREAM_PURPOSE_CODE',
18056 'COL_VALUE',
18057 l_st_fin_stream_type_code||', '||l_st_fin_stream_purpose_code
18058 );
18059 x_return_status := OKL_API.G_RET_STS_ERROR;
18060 RAISE header_rule_failed;
18061 END IF;
18062 END IF;
18063
18064 IF (l_st_cap_stream_type_code IS NOT NULL
18065 AND
18066 l_st_cap_stream_purpose_code IS NOT NULL) THEN
18067 check_stream_type_code(
18068 x_return_status => x_return_status,
18069 x_msg_count => x_msg_count,
18070 x_msg_data => x_msg_data,
18071 p_stream_type_code => l_st_cap_stream_type_code,
18072 p_stream_purpose => l_st_cap_stream_purpose_code,
18073 x_id1 => l_id1,
18074 x_name => l_st_stream_name
18075 );
18076 l_st_cap_stream_id := l_id1;
18077
18078 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18079 okl_api.set_message(
18080 G_APP_NAME,
18081 G_INVALID_VALUE,
18082 'CONTRACT_NUM',
18083 p_header_rec.contract_number_old,
18084 'COL_NAME',
18085 'ST_CAP_STREAM_TYPE_CODE, ST_CAP_STREAM_PURPOSE_CODE',
18086 'COL_VALUE',
18087 l_st_cap_stream_type_code||', '||l_st_cap_stream_purpose_code
18088 );
18089 x_return_status := OKL_API.G_RET_STS_ERROR;
18090 RAISE header_rule_failed;
18091 END IF;
18092 END IF;
18093
18094 IF (l_st_asset_upfront_tax IS NULL
18095 OR
18096 l_st_bill_stream_ID IS NULL
18097 OR
18098 l_st_fin_stream_ID IS NULL
18099 OR
18100 l_st_cap_stream_ID IS NULL
18101 OR
18102 l_st_tax_schedule_applies_flag is NULL -- R12B ebTax change
18103 AND
18104 p_header_rec.template_number IS NOT NULL) THEN
18105
18106 get_contract_rules(
18107 x_return_status => x_return_status,
18108 x_msg_count => x_msg_count,
18109 x_msg_data => x_msg_data,
18110 p_chr_id => p_template_id,
18111 p_cle_id => NULL,
18112 p_rgd_code => 'LAHDTX',
18113 p_rule_code => 'LASTPR',
18114 x_rulv_tbl => l_rulv_tbl,
18115 x_rule_count => l_rule_count
18116 );
18117
18118 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18119 RAISE header_rule_failed;
18120 END IF;
18121
18122 IF (l_rule_count > 0) THEN
18123 l_st_asset_upfront_tax := NVL(l_st_asset_upfront_tax, l_rulv_tbl(1).rule_information1);
18124 l_st_bill_stream_id := NVL(l_st_bill_stream_id, l_rulv_tbl(1).rule_information2);
18125 l_st_fin_stream_id := NVL(l_st_fin_stream_id, l_rulv_tbl(1).rule_information3);
18126 l_st_cap_stream_id := NVL(l_st_cap_stream_id, l_rulv_tbl(1).rule_information4);
18127 --R12B ebtax change
18128 l_st_tax_schedule_applies_flag := NVL(l_st_tax_schedule_applies_flag, l_rulv_tbl(1).rule_information5);
18129 END IF;
18130 END IF;
18131
18132 IF (l_st_asset_upfront_tax IS NOT NULL) THEN
18133 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18134 l_rulv_rec.dnz_chr_id := p_chr_id;
18135 l_rulv_rec.rule_information1 := l_st_asset_upfront_tax;
18136 l_rulv_rec.rule_information_category := 'LASTPR';
18137 l_rulv_rec.std_template_yn := 'N';
18138 l_rulv_rec.warn_yn := 'N';
18139 END IF;
18140
18141 IF (l_st_bill_stream_id IS NOT NULL) THEN
18142 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18143 l_rulv_rec.dnz_chr_id := p_chr_id;
18144 l_rulv_rec.rule_information2 := l_st_bill_stream_id;
18145 l_rulv_rec.rule_information_category := 'LASTPR';
18146 l_rulv_rec.std_template_yn := 'N';
18147 l_rulv_rec.warn_yn := 'N';
18148 END IF;
18149
18150 IF (l_st_fin_stream_id IS NOT NULL) THEN
18151 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18152 l_rulv_rec.dnz_chr_id := p_chr_id;
18153 l_rulv_rec.rule_information3 := l_st_fin_stream_id;
18154 l_rulv_rec.rule_information_category := 'LASTPR';
18155 l_rulv_rec.std_template_yn := 'N';
18156 l_rulv_rec.warn_yn := 'N';
18157 END IF;
18158
18159 IF (l_st_cap_stream_id IS NOT NULL) THEN
18160 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18161 l_rulv_rec.dnz_chr_id := p_chr_id;
18162 l_rulv_rec.rule_information4 := l_st_cap_stream_id;
18163 l_rulv_rec.rule_information_category := 'LASTPR';
18164 l_rulv_rec.std_template_yn := 'N';
18165 l_rulv_rec.warn_yn := 'N';
18166 END IF;
18167
18168 -- R12 ebtax change - START
18169
18170 IF (l_st_tax_schedule_applies_flag IS NOT NULL) THEN
18171 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18172 l_rulv_rec.dnz_chr_id := p_chr_id;
18173 l_rulv_rec.rule_information5 := l_st_tax_schedule_applies_flag;
18174 l_rulv_rec.rule_information_category := 'LASTPR';
18175 l_rulv_rec.std_template_yn := 'N';
18176 l_rulv_rec.warn_yn := 'N';
18177 ELSIF (l_st_tax_schedule_applies_flag IS NULL) THEN
18178
18179 -- R12B ebTax: Fetch Tax Schedule Flag from system options
18180 -- if it was not supplied during import
18181
18182 OPEN c_tax_schedule_yn;
18183 FETCH c_tax_schedule_yn INTO l_tax_schedule_yn;
18184 CLOSE c_tax_schedule_yn;
18185
18186 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18187 l_rulv_rec.dnz_chr_id := p_chr_id;
18188 l_rulv_rec.rule_information5 := l_tax_schedule_yn;
18189 l_rulv_rec.rule_information_category := 'LASTPR';
18190 l_rulv_rec.std_template_yn := 'N';
18191 l_rulv_rec.warn_yn := 'N';
18192 END IF;
18193
18194 -- R12 ebtax change - END
18195
18196 create_rule_group_and_rule(
18197 x_return_status => x_return_status,
18198 x_msg_count => x_msg_count,
18199 x_msg_data => x_msg_data,
18200 p_rgp_id => l_rgp_id,
18201 p_rgpv_rec => l_rgpv_rec,
18202 p_rulv_rec => l_rulv_rec,
18203 x_rgpv_rec => x_rgpv_rec,
18204 x_rulv_rec => x_rulv_rec
18205 );
18206
18207 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18208 raise header_rule_failed;
18209 END IF;
18210
18211 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
18212 l_rgp_id := x_rgpv_rec.id;
18213 END IF;
18214 debug_message('------>Rule: LAHDTX/LASTPR processed');
18215 l_rulv_rec := NULL;
18216 return;
18217
18218 EXCEPTION
18219
18220 WHEN header_rule_failed THEN
18221 x_return_status := OKL_API.G_RET_STS_ERROR;
18222 debug_message('------>Error with: '||l_rgpv_rec.rgd_code);
18223 debug_message('------>Rule Catg: '|| l_rulv_rec.rule_information_category);
18224
18225 WHEN OTHERS THEN
18226 okl_api.set_message(
18227 G_APP_NAME,
18228 G_UNEXPECTED_ERROR,
18229 'OKL_SQLCODE',
18230 SQLCODE,
18231 'OKL_SQLERRM',
18232 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
18233 );
18234
18235 x_return_status := OKL_API.G_RET_STS_ERROR;
18236 debug_message('Others : '||l_progress);
18237
18238 END create_header_rules;
18239
18240 ------------------------------------------------------------------------------
18241 -- PROCEDURE create_contact
18242 -- It creates contact and
18243 -- stacks Error, if any, and returns ERROR status to calling process.
18244 -- Calls:
18245 -- None
18246 -- Called By:
18247 -- load_input_record
18248 ------------------------------------------------------------------------------
18249 PROCEDURE create_contact(
18250 x_return_status OUT NOCOPY VARCHAR2,
18251 x_msg_count OUT NOCOPY NUMBER,
18252 x_msg_data OUT NOCOPY VARCHAR2,
18253 p_contract_header_id IN okc_k_headers_v.id%TYPE,
18254 p_contract_number_old IN okl_header_interface.contract_number_old%TYPE,
18255 p_salesperson_id IN okl_header_interface.salesperson_id%TYPE,
18256 p_salesperson_name IN okl_header_interface.salesperson_name%TYPE,
18257 p_authoring_org_id IN okl_header_interface.authoring_org_id%TYPE,
18258 p_lessor_id IN NUMBER
18259 ) IS
18260
18261 l_proc_name VARCHAR2(35) := 'CREATE_CONTRACT';
18262 x_salesperson_id NUMBER;
18263 l_ctcv_rec OKL_OKC_MIGRATION_PVT.ctcv_rec_type;
18264 x_ctcv_rec OKL_OKC_MIGRATION_PVT.ctcv_rec_type;
18265 l_id NUMBER;
18266 contact_failed EXCEPTION;
18267
18268 CURSOR sale_csr (p_salesrep_id NUMBER,
18269 p_salesrep_name VARCHAR2,
18270 p_org_id NUMBER) IS
18271 SELECT id1
18272 FROM okx_salesreps_v
18273 WHERE (( id1 = p_salesrep_id
18274 AND
18275 p_salesrep_id IS NOT NULL
18276 )
18277 OR
18278 ( name = p_salesrep_name
18279 AND
18280 p_salesrep_name IS NOT NULL
18281 )
18282 )
18283 AND org_id = p_org_id;
18284
18285 BEGIN
18286
18287 IF (p_salesperson_id IS NOT NULL
18288 OR
18289 p_salesperson_name IS NOT NULL) THEN
18290 OPEN sale_csr (p_salesperson_id,
18291 p_salesperson_name,
18292 p_authoring_org_id);
18293 FETCH sale_csr INTO l_id;
18294 IF sale_csr%NOTFOUND THEN
18295 okl_api.set_message(
18296 G_APP_NAME,
18297 G_INVALID_VALUE,
18298 'COL_NAME',
18299 'SALESPERSON_NAME, ID',
18300 'COL_VALUE',
18301 p_salesperson_name||', '||p_salesperson_id,
18302 'CONTRACT_NUM',
18303 p_contract_number_old
18304 );
18305 RAISE contact_failed;
18306 END IF;
18307 CLOSE sale_csr;
18308
18309 x_salesperson_id := l_id;
18310 END IF;
18311
18312
18313 IF (x_salesperson_id IS NOT NULL) THEN
18314 l_ctcv_rec.cpl_id := p_lessor_id;
18315 l_ctcv_rec.dnz_chr_id := p_contract_header_id;
18316 l_ctcv_rec.cro_code := 'SALESPERSON';
18317 l_ctcv_rec.jtot_object1_code := 'OKX_SALEPERS';
18318 l_ctcv_rec.object1_id1 := x_salesperson_id;
18319 l_ctcv_rec.object1_id2 := '#';
18320
18321 OKL_OKC_MIGRATION_PVT.create_contact(
18322 p_api_version => 1.0,
18323 x_return_status => x_return_status,
18324 x_msg_count => x_msg_count,
18325 x_msg_data => x_msg_data,
18326 p_ctcv_rec => l_ctcv_rec,
18327 x_ctcv_rec => x_ctcv_rec);
18328 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18329 x_return_status := OKL_API.G_RET_STS_ERROR;
18330 raise contact_failed;
18331 END IF;
18332
18333 END IF;
18334
18335 return;
18336
18337 EXCEPTION
18338 WHEN contact_failed THEN
18339 x_return_status := OKL_API.G_RET_STS_ERROR;
18340
18341 WHEN OTHERS THEN
18342 okl_api.set_message(
18343 G_APP_NAME,
18344 G_UNEXPECTED_ERROR,
18345 'OKL_SQLCODE',
18346 SQLCODE,
18347 'OKL_SQLERRM',
18348 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
18349 );
18350
18351 x_return_status := OKL_API.G_RET_STS_ERROR;
18352
18353
18354 END create_contact;
18355
18356 ------------------------------------------------------------------------------
18357 -- PROCEDURE get_ship_to_site
18358 -- It gets Ship to site id from number and
18359 -- stacks Error, if any, and returns ERROR status to calling process.
18360 -- Calls:
18361 -- None
18362 -- Called By:
18363 -- process_party_role
18364 ------------------------------------------------------------------------------
18365 PROCEDURE get_ship_to_site(
18366 x_return_status OUT NOCOPY VARCHAR2,
18367 x_msg_count OUT NOCOPY NUMBER,
18368 x_msg_data OUT NOCOPY VARCHAR2,
18369 p_contract_number IN okc_k_headers_v.contract_number%TYPE,
18370 p_line_number IN okc_k_lines_v.line_number%TYPE,
18371 p_auth_org_id IN NUMBER,
18372 p_ship_to_site_number IN okx_party_site_uses_v.party_site_number%TYPE,
18373 p_ship_to_site_id IN okx_party_site_uses_v.party_site_id%TYPE,
18374 x_ship_to_site_id OUT NOCOPY okx_party_site_uses_v.party_site_id%TYPE
18375 ) IS
18376
18377 CURSOR ship_csr (p_site_id NUMBER,
18378 p_site_number VARCHAR2,
18379 p_customer_id NUMBER) IS
18380 SELECT party_site_id
18381 FROM okx_party_site_uses_v
18382 WHERE ((party_site_number = p_site_number
18383 AND
18384 p_site_number IS NOT NULL)
18385 OR
18386 (id1 = p_site_id
18387 AND
18388 p_site_id IS NOT NULL
18389 )
18390 )
18391 AND site_use_type = 'SHIP_TO'
18392 AND party_id = p_customer_id
18393 AND status = 'A';
18394
18395 CURSOR cust_ship_csr (p_party_site_id NUMBER,
18396 p_cust_acct_id NUMBER,
18397 p_org_id NUMBER) IS
18398 SELECT site_use.id1
18399 FROM okx_cust_site_uses_v site_use,
18400 hz_cust_acct_sites_all site
18401 WHERE site.cust_acct_site_id = site_use.cust_acct_site_id
18402 AND site_use.party_site_id = p_party_site_id
18403 AND site_use.org_id = p_org_id
18404 AND site.org_id = p_org_id
18405 AND site_use.site_use_code = 'SHIP_TO'
18406 AND site_use.cust_account_id = p_cust_acct_id
18407 AND site_use.b_status = 'A'
18408 AND site.status = 'A';
18409
18410 l_proc_name VARCHAR2(35) := 'GET_SHIP_TO_SITE';
18411 l_cust_site_id NUMBER;
18412 l_party_site_id NUMBER;
18413 ship_failed EXCEPTION;
18414
18415 BEGIN
18416
18417 x_return_status := OKL_API.G_RET_STS_SUCCESS;
18418 debug_message(l_proc_name);
18419 debug_message('Customer: '|| g_customer_id);
18420 debug_message('Cust Acc: '|| g_customer_account_id);
18421 debug_message('p_ship_to_site_id: '|| p_ship_to_site_id);
18422
18423 OPEN ship_csr (p_ship_to_site_id,
18424 p_ship_to_site_number,
18425 g_customer_id);
18426 FETCH ship_csr INTO l_party_site_id;
18427 IF (ship_csr%NOTFOUND) THEN
18428 RAISE ship_failed;
18429 END IF;
18430 CLOSE ship_csr;
18431
18432 debug_message('Party Site: '||l_party_site_id);
18433 debug_message('Org : '||p_auth_org_id);
18434 OPEN cust_ship_csr (l_party_site_id,
18435 g_customer_account_id,
18436 p_auth_org_id);
18437 FETCH cust_ship_csr INTO l_cust_site_id;
18438 IF (cust_ship_csr%NOTFOUND) THEN
18439 RAISE ship_failed;
18440 END IF;
18441 CLOSE cust_ship_csr;
18442
18443 debug_message('Cust Site: ' || l_cust_site_id);
18444 x_ship_to_site_id := l_cust_site_id;
18445
18446 RETURN;
18447
18448 EXCEPTION
18449 WHEN ship_failed THEN
18450 IF (ship_csr%ISOPEN) THEN
18451 CLOSE ship_csr;
18452 END IF;
18453 IF (cust_ship_csr%ISOPEN) THEN
18454 CLOSE cust_ship_csr;
18455 END IF;
18456 okl_api.set_message(
18457 G_APP_NAME,
18458 G_INVALID_VALUE,
18459 'COL_NAME',
18460 'SHIP_TO_SITE, ID',
18461 'COL_VALUE',
18462 p_ship_to_site_number||', '||p_ship_to_site_id,
18463 'CONTRACT_NUM',
18464 p_contract_number||'/'||p_line_number
18465 );
18466 x_return_status := OKL_API.G_RET_STS_ERROR;
18467
18468 END get_ship_to_site;
18469
18470 ------------------------------------------------------------------------------
18471 -- PROCEDURE get_guarantor_address
18472 -- It gets Gurarantor Address ID from given address and
18473 -- stacks Error, if any, and returns ERROR status to calling process.
18474 -- Calls:
18475 -- None
18476 -- Called By:
18477 -- process_party_role
18478 ------------------------------------------------------------------------------
18479 PROCEDURE get_guarantor_address(
18480 x_return_status OUT NOCOPY VARCHAR2,
18481 x_msg_count OUT NOCOPY NUMBER,
18482 x_msg_data OUT NOCOPY VARCHAR2,
18483 p_contract_number IN okc_k_headers_v.contract_number%TYPE,
18484 p_line_number IN okc_k_lines_v.line_number%TYPE,
18485 p_guarantor_site_number IN okl_party_roles_interface.guarantor_site_number%TYPE,
18486 p_guarantor_site_id IN okl_party_roles_interface.guarantor_site_id%TYPE,
18487 x_guarantor_site_id OUT NOCOPY okl_party_roles_interface.guarantor_site_id%TYPE
18488 ) IS
18489
18490 CURSOR gaddr_csr (p_site_id NUMBER,
18491 p_site_number VARCHAR2) IS
18492 SELECT id1
18493 FROM okx_party_sites_v
18494 WHERE ( party_site_number = p_site_number
18495 AND
18496 p_site_number IS NOT NULL)
18497 OR ( id1 = p_site_id
18498 AND
18499 p_site_id IS NOT NULL);
18500
18501 l_id NUMBER;
18502 gaddr_failed EXCEPTION;
18503
18504 BEGIN
18505
18506 x_return_status := OKL_API.G_RET_STS_SUCCESS;
18507 OPEN gaddr_csr (p_guarantor_site_id,
18508 p_guarantor_site_number);
18509 FETCH gaddr_csr INTO l_id;
18510 IF (gaddr_csr%NOTFOUND) THEN
18511 RAISE gaddr_failed;
18512 END IF;
18513
18514 CLOSE gaddr_csr;
18515 x_guarantor_site_id := l_id;
18516
18517 RETURN;
18518
18519 EXCEPTION
18520 WHEN gaddr_failed THEN
18521 IF (gaddr_csr%ISOPEN) THEN
18522 CLOSE gaddr_csr;
18523 END IF;
18524 okl_api.set_message(
18525 G_APP_NAME,
18526 G_INVALID_VALUE,
18527 'COL_NAME',
18528 'GUARANTOR_SITE, ID',
18529 'COL_VALUE',
18530 p_guarantor_site_number||', '||p_guarantor_site_id,
18531 'CONTRACT_NUM',
18532 p_contract_number||'/'||p_line_number
18533 );
18534 x_return_status := OKL_API.G_RET_STS_ERROR;
18535
18536 END get_guarantor_address;
18537
18538 ------------------------------------------------------------------------------
18539 -- PROCEDURE get_rrd_id
18540 -- It gets RRD_ID for Guarantor and
18541 -- stacks Error, if any, and returns ERROR status to calling process.
18542 -- Calls:
18543 -- None
18544 -- Called By:
18545 -- process_party_role
18546 ------------------------------------------------------------------------------
18547 PROCEDURE get_rrd_id(
18548 x_return_status OUT NOCOPY VARCHAR2,
18549 p_rgd_code IN VARCHAR2,
18550 p_rle_code IN VARCHAR2,
18551 x_rrd_id OUT NOCOPY NUMBER
18552 ) IS
18553 CURSOR rrd_csr (p_rgd_code VARCHAR2,
18554 p_rle_code VARCHAR2) IS
18555 SELECT rrd.id
18556 FROM okc_rg_role_defs rrd,
18557 okc_subclass_rg_defs srd,
18558 okc_subclass_roles srl
18559 WHERE rrd.srd_id = srd.id
18560 AND rrd.sre_id = srl.id
18561 AND srd.scs_code = 'LEASE'
18562 AND srd.rgd_code = p_rgd_code --'LAGRDT'
18563 AND srl.scs_code = 'LEASE'
18564 AND srl.rle_code = p_rle_code; --'GUARANTOR'
18565
18566 l_id NUMBER:= NULL;
18567
18568 BEGIN
18569
18570 OPEN rrd_csr (p_rgd_code,
18571 p_rle_code);
18572 FETCH rrd_csr INTO l_id;
18573 IF rrd_csr%NOTFOUND THEN
18574 x_return_status := OKL_API.G_RET_STS_ERROR;
18575 END IF;
18576 CLOSE rrd_csr;
18577
18578 x_rrd_id := l_id;
18579 return;
18580
18581 EXCEPTION
18582 WHEN OTHERS THEN
18583 x_return_status := OKL_API.G_RET_STS_ERROR;
18584 END get_rrd_id;
18585
18586
18587
18588 ------------------------------------------------------------------------------
18589 -- PROCEDURE create_private_label
18590 -- It create party roles and rules for PRIVATE_LABEL information and
18591 -- stacks Error, if any, and returns ERROR status to calling process.
18592 -- Calls:
18593 -- None
18594 -- Called By:
18595 ------------------------------------------------------------------------------
18596 PROCEDURE create_private_label (
18597 x_return_status OUT NOCOPY VARCHAR2,
18598 x_msg_count OUT NOCOPY NUMBER,
18599 x_msg_data OUT NOCOPY VARCHAR2,
18600 p_chr_id IN NUMBER,
18601 p_contract_number IN okc_k_headers_v.contract_number%TYPE,
18602 p_label_number IN VARCHAR2,
18603 p_label_id IN NUMBER,
18604 p_label_url IN VARCHAR2
18605 ) IS
18606
18607 CURSOR party_csr (p_private_label_number VARCHAR2,
18608 p_private_label_id NUMBER) IS
18609 SELECT id1
18610 FROM okx_parties_v
18611 WHERE ((party_number = p_private_label_number
18612 AND
18613 p_private_label_number IS NOT NULL)
18614 OR
18615 (id1 = p_private_label_id
18616 AND
18617 p_private_label_id IS NOT NULL
18618 )
18619 );
18620
18621 l_proc_name VARCHAR2(35) := 'CREATE_PRIVATE_LABEL';
18622 p_cplv_rec cplv_rec_type;
18623 x_cplv_rec cplv_rec_type;
18624 l_rgpv_rec rgpv_rec_type;
18625 x_rgpv_rec rgpv_rec_type;
18626 l_rulv_rec rulv_rec_type;
18627 x_rulv_rec rulv_rec_type;
18628 l_rmpv_rec rmpv_rec_type;
18629 x_rmpv_rec rmpv_rec_type;
18630
18631 l_rgp_id NUMBER;
18632 x_rrd_id NUMBER;
18633 l_id NUMBER;
18634
18635 party_failed EXCEPTION;
18636
18637 l_kplv_rec kplv_rec_type;
18638 x_kplv_rec kplv_rec_type;
18639
18640 BEGIN
18641
18642 x_return_status := OKL_API.G_RET_STS_SUCCESS;
18643
18644 IF (p_label_number IS NOT NULL
18645 OR
18646 p_label_id IS NOT NULL) THEN
18647
18648 OPEN party_csr (p_label_number,
18649 p_label_id);
18650 FETCH party_csr INTO l_id;
18651
18652 IF party_csr%NOTFOUND THEN
18653 RAISE party_failed;
18654 END IF;
18655 CLOSE party_csr;
18656
18657 p_cplv_rec := NULL;
18658 p_cplv_rec.chr_id := p_chr_id;
18659 p_cplv_rec.dnz_chr_id := p_chr_id;
18660 p_cplv_rec.cle_id := NULL; -- always at header level
18661 p_cplv_rec.object1_id1 := TO_CHAR(l_id);
18662 p_cplv_rec.object1_id2 := '#';
18663 p_cplv_rec.jtot_object1_code := 'OKX_PARTY';
18664 p_cplv_rec.rle_code := 'PRIVATE_LABEL';
18665
18666 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
18667 p_api_version => 1.0,
18668 p_init_msg_list => OKL_API.G_FALSE,
18669 x_return_status => x_return_status,
18670 x_msg_count => x_msg_count,
18671 x_msg_data => x_msg_data,
18672 p_cplv_rec => p_cplv_rec,
18673 p_kplv_rec => l_kplv_rec,
18674 x_cplv_rec => x_cplv_rec,
18675 x_kplv_rec => x_kplv_rec
18676 );
18677
18678 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18679 RAISE party_failed;
18680 END IF;
18681
18682 l_rgpv_rec := NULL;
18683 l_rgp_id := NULL;
18684 l_rgpv_rec.rgd_code := 'LALABL';
18685 l_rgpv_rec.chr_id := p_chr_id;
18686 l_rgpv_rec.dnz_chr_id := p_chr_id;
18687 l_rgpv_rec.cle_id := NULL; -- always at header level
18688 l_rgpv_rec.rgp_type := 'KRG';
18689
18690 l_rulv_rec := NULL;
18691
18692 IF (p_label_url IS NOT NULL) THEN
18693
18694 l_rulv_rec.rgp_id := x_rgpv_rec.id;
18695 l_rulv_rec.dnz_chr_id := p_chr_id;
18696 l_rulv_rec.rule_information1 := p_label_url;
18697 l_rulv_rec.rule_information_category := 'LALOGO';
18698 l_rulv_rec.std_template_yn := 'N';
18699 l_rulv_rec.warn_yn := 'N';
18700
18701 create_rule_group_and_rule(
18702 x_return_status => x_return_status,
18703 x_msg_count => x_msg_count,
18704 x_msg_data => x_msg_data,
18705 p_rgp_id => l_rgp_id,
18706 p_rgpv_rec => l_rgpv_rec,
18707 p_rulv_rec => l_rulv_rec,
18708 x_rgpv_rec => x_rgpv_rec,
18709 x_rulv_rec => x_rulv_rec
18710 );
18711
18712 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18713 raise party_failed;
18714 END IF;
18715
18716 get_rrd_id(
18717 x_return_status => x_return_status,
18718 p_rgd_code => 'LALABL',
18719 p_rle_code => 'PRIVATE_LABEL',
18720 x_rrd_id => x_rrd_id
18721 );
18722 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18723 okl_api.set_message(
18724 G_APP_NAME,
18725 G_LABEL_SETUP_ERROR,
18726 'CONTRACT_NUM',
18727 p_contract_number
18728 );
18729 x_return_status := OKL_API.G_RET_STS_ERROR;
18730 RAISE party_failed;
18731 END IF;
18732
18733 l_rmpv_rec.rgp_id := x_rgpv_rec.id;
18734 l_rmpv_rec.cpl_id := x_cplv_rec.id;
18735 l_rmpv_rec.rrd_id := x_rrd_id;
18736 l_rmpv_rec.dnz_chr_id := p_chr_id;
18737
18738 okl_rule_pub.create_rg_mode_pty_role(
18739 p_api_version => 1.0,
18740 p_init_msg_list => OKL_API.G_FALSE,
18741 x_return_status => x_return_status,
18742 x_msg_count => x_msg_count,
18743 x_msg_data => x_msg_data,
18744 p_rmpv_rec => l_rmpv_rec,
18745 x_rmpv_rec => x_rmpv_rec
18746 );
18747 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18748 x_return_status := OKL_API.G_RET_STS_ERROR;
18749 raise party_failed;
18750 END IF;
18751
18752 END IF; --label_url
18753
18754 END IF; --private_label
18755
18756 EXCEPTION
18757 WHEN party_failed THEN
18758 IF party_csr%ISOPEN THEN
18759 CLOSE party_csr;
18760 END IF;
18761 okl_api.set_message(
18762 G_APP_NAME,
18763 G_INVALID_VALUE,
18764 'COL_NAME',
18765 'PRIVATE_LABEL_NUMBER, ID',
18766 'COL_VALUE',
18767 p_label_number||', '||p_label_id,
18768 'CONTRACT_NUM',
18769 p_contract_number
18770 );
18771 x_return_status := OKL_API.G_RET_STS_ERROR;
18772
18773 END create_private_label;
18774
18775 -- strat cklee 02/16/2004 bug# 3440442
18776 ------------------------------------------------------------------------------
18777 -- PROCEDURE validate_3rd_party_insurance
18778 -- It validate 3rd party insurence policy and
18779 -- stacks Error, if any, and returns ERROR status to calling process.
18780 -- Calls:
18781 -- None
18782 -- Called By:
18783 ------------------------------------------------------------------------------
18784
18785 PROCEDURE validate_3rd_party_insurance (
18786 x_return_status OUT NOCOPY VARCHAR2,
18787 x_msg_count OUT NOCOPY NUMBER,
18788 x_msg_data OUT NOCOPY VARCHAR2,
18789 p_intf_header IN intf_h_rec_type,
18790 x_intf_header OUT NOCOPY intf_h_rec_type
18791 ) IS
18792 v_3rd_party_insurance_failed EXCEPTION;
18793
18794 l_proc_name varchar2(150) := 'OKL_HEADER_INTERFACE: validate_3rd_party_insurance';
18795 l_progress varchar2(150);
18796
18797 l_intf_header intf_h_rec_type := p_intf_header;
18798
18799 intf_party_rec intf_party_rec_type;
18800
18801 BEGIN
18802
18803 x_return_status := OKL_API.G_RET_STS_SUCCESS;
18804 --
18805 -- 1. validation
18806 --
18807 -- 3rd party insurace
18808 -- 1. insurance company name/site
18809 IF ((p_intf_header.insurance_company_name IS NOT NULL OR
18810 p_intf_header.insurance_company_id IS NOT NULL OR
18811 p_intf_header.insurance_company_number IS NOT NULL)
18812 AND
18813 (p_intf_header.insurance_company_site_name IS NOT NULL OR
18814 p_intf_header.insurance_company_site_id IS NOT NULL OR
18815 p_intf_header.insurance_company_site_number IS NOT NULL)) THEN
18816
18817
18818 intf_party_rec.contract_number := p_intf_header.contract_number_old;
18819 intf_party_rec.line_number := NULL;
18820 intf_party_rec.party_category_code := G_INSURER;
18821
18822 intf_party_rec.party_id := p_intf_header.insurance_company_id;
18823 intf_party_rec.party_name := p_intf_header.insurance_company_name;
18824 intf_party_rec.party_number := p_intf_header.insurance_company_number;
18825 intf_party_rec.party_site_id := p_intf_header.insurance_company_site_id;
18826 intf_party_rec.party_site_name := p_intf_header.insurance_company_site_name;
18827 intf_party_rec.party_site_number := p_intf_header.insurance_company_site_number;
18828 intf_party_rec.intf_party_id := G_INSURANCE_COMPANY_ID;
18829 intf_party_rec.intf_party_name := G_INSURANCE_COMPANY_NAME;
18830 intf_party_rec.intf_party_number := G_INSURANCE_COMPANY_NUMBER;
18831 intf_party_rec.intf_party_site_id := G_INSURANCE_COMPANY_SITE_ID;
18832 intf_party_rec.intf_party_site_name := G_INSURANCE_COMPANY_SITE_NAME;
18833 intf_party_rec.intf_party_site_number:= G_INSURANCE_COMPANY_SITE_NUM;
18834
18835
18836 get_party(
18837 x_return_status => x_return_status,
18838 x_msg_count => x_msg_count,
18839 x_msg_data => x_msg_data,
18840 p_intf_party_rec => intf_party_rec,
18841 x_party_id => l_intf_header.insurance_company_id,
18842 x_party_site_id => l_intf_header.insurance_company_site_id
18843 );
18844
18845 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18846 RAISE v_3rd_party_insurance_failed;
18847 END IF;
18848 END IF;
18849 l_progress := 'validate insurance company name/site';
18850
18851 -- 3. agent name/site
18852 IF ((p_intf_header.agent_name IS NOT NULL OR
18853 p_intf_header.agent_id IS NOT NULL OR
18854 p_intf_header.agent_number IS NOT NULL)
18855 AND
18856 (p_intf_header.agent_address_site_name IS NOT NULL OR
18857 p_intf_header.agent_address_site_id IS NOT NULL OR
18858 p_intf_header.agent_address_site_number IS NOT NULL)) THEN
18859
18860
18861 intf_party_rec.contract_number := p_intf_header.contract_number_old;
18862 intf_party_rec.line_number := NULL;
18863 intf_party_rec.party_category_code := G_INSURANCE_AGENT;
18864
18865 intf_party_rec.party_id := p_intf_header.agent_id;
18866 intf_party_rec.party_name := p_intf_header.agent_name;
18867 intf_party_rec.party_number := p_intf_header.agent_number;
18868 intf_party_rec.party_site_id := p_intf_header.agent_address_site_id;
18869 intf_party_rec.party_site_name := p_intf_header.agent_address_site_name;
18870 intf_party_rec.party_site_number := p_intf_header.agent_address_site_number;
18871 intf_party_rec.intf_party_id := G_AGENT_ID;
18872 intf_party_rec.intf_party_name := G_AGENT_NAME;
18873 intf_party_rec.intf_party_number := G_AGENT_NUMBER;
18874 intf_party_rec.intf_party_site_id := G_AGENT_ADDRESS_SITE_ID;
18875 intf_party_rec.intf_party_site_name := G_AGENT_ADDRESS_SITE_NAME;
18876 intf_party_rec.intf_party_site_number:= G_AGENT_ADDRESS_SITE_NUMBER;
18877
18878
18879 get_party(
18880 x_return_status => x_return_status,
18881 x_msg_count => x_msg_count,
18882 x_msg_data => x_msg_data,
18883 p_intf_party_rec => intf_party_rec,
18884 x_party_id => l_intf_header.agent_id,
18885 x_party_site_id => l_intf_header.agent_address_site_id
18886 );
18887
18888 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18889 RAISE v_3rd_party_insurance_failed;
18890 END IF;
18891 END IF;
18892 l_progress := 'validate insurance agent name/address site';
18893
18894
18895 IF (NVL(p_intf_header.LESSOR_INSURED_FLAG,'N') NOT IN ('Y','N')) THEN
18896 okl_api.set_message(
18897 G_APP_NAME,
18898 G_INVALID_VALUE,
18899 'CONTRACT_NUM',
18900 p_intf_header.contract_number_old,
18901 'COL_NAME',
18902 'LESSOR_INSURED_FLAG',
18903 'COL_VALUE',
18904 p_intf_header.LESSOR_INSURED_FLAG
18905 );
18906
18907 x_return_status := OKL_API.G_RET_STS_ERROR;
18908
18909 RAISE v_3rd_party_insurance_failed;
18910 END IF;
18911 l_progress := 'validate LESSOR_INSURED_FLAG';
18912
18913 IF (NVL(p_intf_header.LESSOR_PAYEE_FLAG,'N') NOT IN ('Y','N')) THEN
18914 okl_api.set_message(
18915 G_APP_NAME,
18916 G_INVALID_VALUE,
18917 'CONTRACT_NUM',
18918 p_intf_header.contract_number_old,
18919 'COL_NAME',
18920 'LESSOR_PAYEE_FLAG',
18921 'COL_VALUE',
18922 p_intf_header.LESSOR_PAYEE_FLAG
18923 );
18924
18925 x_return_status := OKL_API.G_RET_STS_ERROR;
18926
18927 RAISE v_3rd_party_insurance_failed;
18928 END IF;
18929 l_progress := 'validate LESSOR_PAYEE_FLAG';
18930
18931 -- assign to out record
18932 x_intf_header := l_intf_header;
18933
18934 EXCEPTION
18935 WHEN v_3rd_party_insurance_failed THEN
18936 x_return_status := OKL_API.G_RET_STS_ERROR;
18937 debug_message(l_proc_name ||': '||l_progress);
18938
18939 WHEN OTHERS THEN
18940 x_return_status := OKL_API.G_RET_STS_ERROR;
18941 debug_message(l_proc_name ||': '||l_progress);
18942
18943 END validate_3rd_party_insurance;
18944
18945 ------------------------------------------------------------------------------
18946 -- PROCEDURE create_3rd_party_insurance
18947 -- It create 3rd party insurence policy and
18948 -- stacks Error, if any, and returns ERROR status to calling process.
18949 -- Calls:
18950 -- None
18951 -- Called By:
18952 ------------------------------------------------------------------------------
18953
18954 PROCEDURE create_3rd_party_insurance (
18955 x_return_status OUT NOCOPY VARCHAR2,
18956 x_msg_count OUT NOCOPY NUMBER,
18957 x_msg_data OUT NOCOPY VARCHAR2,
18958 p_intf_header IN intf_h_rec_type,
18959 p_chr_id IN NUMBER
18960 ) IS
18961 e_3rd_party_insurance_failed EXCEPTION;
18962
18963 l_proc_name varchar2(150) := 'OKL_HEADER_INTERFACE: create_3rd_party_insurance';
18964 l_progress varchar2(150);
18965
18966 x_intf_header intf_h_rec_type;
18967
18968 l_ipyv_rec okl_ipy_pvt.ipyv_rec_type;
18969 x_ipyv_rec okl_ipy_pvt.ipyv_rec_type;
18970
18971 BEGIN
18972
18973 x_return_status := OKL_API.G_RET_STS_SUCCESS;
18974 --
18975 -- 1. validation
18976 --
18977 validate_3rd_party_insurance(x_return_status => x_return_status,
18978 x_msg_count => x_msg_count,
18979 x_msg_data => x_msg_data,
18980 p_intf_header => p_intf_header,
18981 x_intf_header => x_intf_header
18982 );
18983
18984
18985 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
18986 raise e_3rd_party_insurance_failed;
18987 END IF;
18988
18989 --
18990 -- 2. create record
18991 --
18992
18993 l_ipyv_rec.ipy_type := 'THIRD_PARTY_POLICY';
18994 l_ipyv_rec.khr_id := p_chr_id;
18995
18996 l_ipyv_rec.policy_number := x_intf_header.POLICY_NUMBER;
18997 l_ipyv_rec.date_from := x_intf_header.POLICY_EFFECTIVE_FROM;
18998 l_ipyv_rec.date_to := x_intf_header.POLICY_EFFECTIVE_TO;
18999 l_ipyv_rec.covered_amount := x_intf_header.COVERED_AMOUNT;
19000 l_ipyv_rec.deductible := x_intf_header.DEDUCTIBLE_AMOUNT;
19001 l_ipyv_rec.endorsement := x_intf_header.ENDORSEMENT;
19002 l_ipyv_rec.name_of_insured := x_intf_header.NAME_OF_INSURED;
19003 l_ipyv_rec.lessor_insured_yn := x_intf_header.LESSOR_INSURED_FLAG;
19004 l_ipyv_rec.lessor_payee_yn := x_intf_header.LESSOR_PAYEE_FLAG;
19005
19006 l_ipyv_rec.isu_id := x_intf_header.insurance_company_id;
19007 l_ipyv_rec.agency_site_id := x_intf_header.insurance_company_site_id;
19008
19009 l_ipyv_rec.int_id := x_intf_header.agent_id;
19010 l_ipyv_rec.agent_site_id := x_intf_header.agent_address_site_id;
19011
19012 l_ipyv_rec.date_proof_required := x_intf_header.PROOF_DUE_DATE;
19013 l_ipyv_rec.date_proof_provided := x_intf_header.PROOF_PROVIDED_DATE;
19014
19015 OKL_INS_POLICIES_PUB.INSERT_INS_POLICIES(
19016 p_api_version => 1.0,
19017 p_init_msg_list => OKL_API.G_FALSE,
19018 x_return_status => x_return_status,
19019 x_msg_count => x_msg_count,
19020 x_msg_data => x_msg_data,
19021 p_ipyv_rec => l_ipyv_rec,
19022 x_ipyv_rec => x_ipyv_rec
19023 );
19024
19025 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19026 RAISE e_3rd_party_insurance_failed;
19027 END IF;
19028 l_progress := 'Create 3rd insurance record';
19029
19030 EXCEPTION
19031 WHEN e_3rd_party_insurance_failed THEN
19032 x_return_status := OKL_API.G_RET_STS_ERROR;
19033 debug_message(l_proc_name ||': '||l_progress);
19034
19035 WHEN OTHERS THEN
19036 x_return_status := OKL_API.G_RET_STS_ERROR;
19037 debug_message(l_proc_name ||': '||l_progress);
19038
19039 END create_3rd_party_insurance;
19040
19041 -- end cklee 02/16/2004 bug# 3440442
19042 ------------------------------------------------------------------------------
19043 -- PROCEDURE get_vendor_paygroup
19044 -- It returns vendor Pay-group info and
19045 -- stacks Error, if any, and returns ERROR status to calling process.
19046 -- Calls:
19047 -- None
19048 -- Called By:
19049 ------------------------------------------------------------------------------
19050 FUNCTION get_vendor_paygroup(
19051 x_return_status OUT NOCOPY VARCHAR2,
19052 p_contract_number IN OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
19053 p_line_number IN OKL_LINES_INTERFACE.LINE_NUMBER%TYPE,
19054 p_auth_org_id IN OKL_HEADER_INTERFACE.authoring_org_id%TYPE,
19055 p_vendor_paysite_id IN OKL_LINES_INTERFACE.VENDOR_PAYSITE_ID%TYPE
19056 )
19057 RETURN NUMBER IS
19058 CURSOR paygroup_csr (p_paysite_id NUMBER,
19059 p_org_id NUMBER) IS
19060 SELECT pay_group_lookup_code
19061 FROM po_vendor_sites_all
19062 WHERE vendor_site_id = p_vendor_paysite_id
19063 AND org_id = p_auth_org_id;
19064
19065 l_paygroup po_vendor_sites_all.pay_group_lookup_code%TYPE;
19066 BEGIN
19067
19068 x_return_status := OKL_API.G_RET_STS_SUCCESS;
19069
19070 OPEN paygroup_csr (p_vendor_paysite_id,
19071 p_auth_org_id);
19072 FETCH paygroup_csr INTO l_paygroup;
19073 IF paygroup_csr%NOTFOUND THEN
19074 CLOSE paygroup_csr;
19075 RETURN NULL;
19076 ELSE
19077 CLOSE paygroup_csr;
19078 RETURN l_paygroup;
19079 END IF;
19080
19081
19082 END get_vendor_paygroup;
19083
19084 ------------------------------------------------------------------------------
19085 -- PROCEDURE process_party_role
19086 -- It Process Party Role Interafce Records at Contract Line level and Header Level as well and
19087 -- stacks Error, if any, and returns ERROR status to calling process.
19088 -- Calls:
19089 -- get_vendor_id
19090 -- get_party_id
19091 -- get_rrd_id
19092 -- Called By:
19093 -- load_input_record
19094 ------------------------------------------------------------------------------
19095 PROCEDURE process_party_role(
19096 x_return_status OUT NOCOPY VARCHAR2,
19097 x_msg_count OUT NOCOPY NUMBER,
19098 x_msg_data OUT NOCOPY VARCHAR2,
19099 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
19100 p_chr_id IN okc_k_headers_v.id%TYPE,
19101 p_auth_org_id IN okl_header_interface.authoring_org_id%TYPE,
19102 p_line_number IN okc_k_lines_v.line_number%TYPE,
19103 p_line_type IN okl_lines_interface.line_type%TYPE,
19104 p_fin_cle_id IN NUMBER,
19105 p_model_cle_id IN NUMBER,
19106 p_service_line_id IN NUMBER,
19107 p_fee_line_id IN NUMBER,
19108 p_usage_line_id IN NUMBER,
19109 p_asset_vendor_name IN okl_party_roles_interface.asset_vendor_name%TYPE,
19110 p_asset_vendor_id IN okl_party_roles_interface.asset_vendor_id%TYPE,
19111 p_service_vendor_name IN okl_party_roles_interface.service_vendor_name%TYPE,
19112 p_service_vendor_id IN okl_party_roles_interface.service_vendor_id%TYPE,
19113 p_fees_vendor_name IN okl_party_roles_interface.fees_vendor_name%TYPE,
19114 p_fees_vendor_id IN okl_party_roles_interface.fees_vendor_id%TYPE,
19115 p_guarantor_number IN okl_party_roles_interface.guarantor_number%TYPE,
19116 p_guarantor_id IN okl_party_roles_interface.guarantor_id%TYPE,
19117 p_dealer_name IN okl_party_roles_interface.dealer_name%TYPE,
19118 p_dealer_id IN okl_party_roles_interface.dealer_id%TYPE,
19119 p_guarantor_type IN okl_party_roles_interface.guarantor_type%TYPE,
19120 p_guarantee_type IN okl_party_roles_interface.guarantee_type%TYPE,
19121 p_guaranteed_amount IN okl_party_roles_interface.guaranteed_amount%TYPE,
19122 p_guarantee_date IN okl_party_roles_interface.guarantee_date%TYPE,
19123 p_guarantee_comment IN okl_party_roles_interface.guarantee_comment%TYPE,
19124 p_guarantor_site_number IN okl_party_roles_interface.guarantor_site_number%TYPE,
19125 p_guarantor_site_id IN okl_party_roles_interface.guarantor_site_id%TYPE,
19126 p_payment_term IN okl_lines_interface.payment_term%TYPE,
19127 p_payment_term_id IN okl_lines_interface.payment_term_id%TYPE,
19128 p_vendor_paysite_id IN okl_lines_interface.vendor_paysite_id%TYPE,
19129 p_vendor_paysite_name IN okl_lines_interface.vendor_paysite_name%TYPE,
19130 p_vendor_payment_method IN okl_lines_interface.vendor_payment_method%TYPE,
19131 p_passthrough_percent IN okl_lines_interface.passthrough_percent%TYPE,
19132 p_passthrough_basis_code IN okl_lines_interface.passthrough_basis_code%TYPE,
19133 p_billable_vendor_id IN okl_party_roles_interface.billable_vendor_id%TYPE,
19134 p_billable_vendor_name IN okl_party_roles_interface.billable_vendor_name%TYPE,
19135 p_vend_as_customer_number IN okl_party_roles_interface.vend_as_customer_number%TYPE,
19136 p_vend_as_customer_id IN okl_party_roles_interface.vend_as_customer_id%TYPE,
19137 p_vend_as_cust_acc_id IN okl_party_roles_interface.vend_as_customer_acc_id%TYPE,
19138 p_vend_as_cust_acc_number IN okl_party_roles_interface.vend_as_customer_acc_number%TYPE,
19139 p_vend_bill_to_addr_id IN okl_party_roles_interface.vend_bill_to_addr_id%TYPE,
19140 p_vend_bill_to_addr IN okl_party_roles_interface.vend_bill_to_addr%TYPE,
19141 p_vend_payment_method_id IN okl_party_roles_interface.vend_payment_method_id%TYPE,
19142 p_vend_payment_method IN okl_party_roles_interface.vend_payment_method%TYPE,
19143 p_vend_bank_acc_id IN okl_party_roles_interface.vend_bank_acc_id%TYPE,
19144 p_vend_bank_acc_number IN okl_party_roles_interface.vend_bank_acc_number%TYPE,
19145 p_vend_invoice_format_id IN okl_party_roles_interface.vend_invoice_format_id%TYPE,
19146 p_vend_invoice_format_code IN okl_party_roles_interface.vend_invoice_format_code%TYPE,
19147 p_vend_review_invoice_flag IN okl_party_roles_interface.vend_review_invoice_flag%TYPE,
19148 p_vend_reason_for_inv_review IN okl_party_roles_interface.vend_reason_for_inv_review%TYPE,
19149 p_vend_inv_review_until_date IN okl_party_roles_interface.vend_inv_review_until_date%TYPE,
19150 p_pth_base_vendor_site_code IN okl_party_roles_interface.pth_base_vendor_site_code%TYPE,
19151 p_pth_base_vendor_site_id IN okl_party_roles_interface.pth_base_vendor_site_id%TYPE,
19152 p_pth_base_paygroup_code IN okl_party_roles_interface.pth_base_paygroup_code%TYPE,
19153 p_pth_base_pmnt_term_code IN okl_party_roles_interface.pth_base_pmnt_term_code%TYPE,
19154 p_pth_base_pmnt_term_id IN okl_party_roles_interface.pth_base_pmnt_term_id%TYPE,
19155 p_pth_base_pmnt_basis IN okl_party_roles_interface.pth_base_pmnt_basis%TYPE,
19156 p_pth_base_pmnt_start_date IN okl_party_roles_interface.pth_base_pmnt_start_date%TYPE,
19157 p_pth_base_pmnt_method_code IN okl_party_roles_interface.pth_base_pmnt_method_code%TYPE,
19158 p_pth_base_pmnt_freq IN okl_party_roles_interface.pth_base_pmnt_freq%TYPE,
19159 p_pth_base_pmnt_remit_days IN okl_party_roles_interface.pth_base_pmnt_remit_days%TYPE,
19160 p_pth_base_disb_basis IN okl_party_roles_interface.pth_base_disb_basis%TYPE,
19161 p_pth_base_disb_fixed_amount IN okl_party_roles_interface.pth_base_disb_fixed_amount%TYPE,
19162 p_pth_base_disb_pct IN okl_party_roles_interface.pth_base_disb_pct%TYPE,
19163 p_pth_base_proc_fee_basis IN okl_party_roles_interface.pth_base_proc_fee_basis%TYPE,
19164 p_pth_base_proc_fee_fixed_amt IN okl_party_roles_interface.pth_base_proc_fee_fixed_amt%TYPE,
19165 p_pth_base_proc_pct IN okl_party_roles_interface.pth_base_proc_pct%TYPE,
19166 p_pth_evg_vendor_site_code IN okl_party_roles_interface.pth_evg_vendor_site_code%TYPE,
19167 p_pth_evg_vendor_site_id IN okl_party_roles_interface.pth_evg_vendor_site_id%TYPE,
19168 p_pth_evg_paygroup_code IN okl_party_roles_interface.pth_evg_paygroup_code%TYPE,
19169 p_pth_evg_pmnt_term_code IN okl_party_roles_interface.pth_evg_pmnt_term_code%TYPE,
19170 p_pth_evg_pmnt_term_id IN okl_party_roles_interface.pth_evg_pmnt_term_id%TYPE,
19171 p_pth_evg_pmnt_basis IN okl_party_roles_interface.pth_evg_pmnt_basis%TYPE,
19172 p_pth_evg_pmnt_start_date IN okl_party_roles_interface.pth_evg_pmnt_start_date%TYPE,
19173 p_pth_evg_pmnt_method_code IN okl_party_roles_interface.pth_evg_pmnt_method_code%TYPE,
19174 p_pth_evg_pmnt_freq IN okl_party_roles_interface.pth_evg_pmnt_freq%TYPE,
19175 p_pth_evg_pmnt_remit_days IN okl_party_roles_interface.pth_evg_pmnt_remit_days%TYPE,
19176 p_pth_evg_disb_basis IN okl_party_roles_interface.pth_evg_disb_basis%TYPE,
19177 p_pth_evg_disb_fixed_amount IN okl_party_roles_interface.pth_evg_disb_fixed_amount%TYPE,
19178 p_pth_evg_disb_pct IN okl_party_roles_interface.pth_evg_disb_pct%TYPE,
19179 p_pth_evg_proc_fee_basis IN okl_party_roles_interface.pth_evg_proc_fee_basis%TYPE,
19180 p_pth_evg_proc_fee_fixed_amt IN okl_party_roles_interface.pth_evg_proc_fee_fixed_amt%TYPE,
19181 p_pth_evg_proc_pct IN okl_party_roles_interface.pth_evg_proc_pct%TYPE,
19182 p_attribute_category IN okl_party_roles_interface.attribute_category%TYPE,
19183 p_attribute1 IN okl_party_roles_interface.attribute1%TYPE,
19184 p_attribute2 IN okl_party_roles_interface.attribute2%TYPE,
19185 p_attribute3 IN okl_party_roles_interface.attribute3%TYPE,
19186 p_attribute4 IN okl_party_roles_interface.attribute4%TYPE,
19187 p_attribute5 IN okl_party_roles_interface.attribute5%TYPE,
19188 p_attribute6 IN okl_party_roles_interface.attribute6%TYPE,
19189 p_attribute7 IN okl_party_roles_interface.attribute7%TYPE,
19190 p_attribute8 IN okl_party_roles_interface.attribute8%TYPE,
19191 p_attribute9 IN okl_party_roles_interface.attribute9%TYPE,
19192 p_attribute10 IN okl_party_roles_interface.attribute10%TYPE,
19193 p_attribute11 IN okl_party_roles_interface.attribute11%TYPE,
19194 p_attribute12 IN okl_party_roles_interface.attribute12%TYPE,
19195 p_attribute13 IN okl_party_roles_interface.attribute13%TYPE,
19196 p_attribute14 IN okl_party_roles_interface.attribute14%TYPE,
19197 p_attribute15 IN okl_party_roles_interface.attribute15%TYPE
19198 ) IS
19199 l_proc_name VARCHAR2(35) := 'PROCESS_PARTY_ROLE';
19200 party_role_failed EXCEPTION;
19201 l_progress VARCHAR2(10);
19202
19203 p_cplv_rec cplv_rec_type;
19204 x_cplv_rec cplv_rec_type;
19205 l_rgpv_rec rgpv_rec_type;
19206 x_rgpv_rec rgpv_rec_type;
19207 l_rulv_rec rulv_rec_type;
19208 x_rulv_rec rulv_rec_type;
19209 l_rmpv_rec rmpv_rec_type;
19210 x_rmpv_rec rmpv_rec_type;
19211 l_rgp_id NUMBER;
19212
19213 x_asset_vendor_id NUMBER := NULL;
19214 x_service_vendor_id NUMBER := NULL;
19215 x_fees_vendor_id NUMBER := NULL;
19216 x_guarantor_id NUMBER := NULL;
19217 x_rrd_id NUMBER := NULL;
19218 x_guarantor_site_id NUMBER;
19219 x_payment_term_id1 VARCHAR2(240);
19220 x_pay_site_id1 VARCHAR2(240);
19221 x_payment_method_id1 VARCHAR2(240);
19222
19223 CURSOR customer_csr (p_customer_number OKX_PARTIES_V.PARTY_NUMBER%TYPE,
19224 p_customer_id OKX_PARTIES_V.ID1%TYPE) IS
19225 SELECT id1
19226 FROM okx_parties_v
19227 WHERE ((party_number = p_customer_number
19228 AND
19229 p_customer_number IS NOT NULL
19230 )
19231 OR
19232 (id1 = p_customer_id
19233 AND
19234 p_customer_id IS NOT NULL
19235 )
19236 );
19237
19238 CURSOR pmnt_basis_csr (p_payment_basis OKL_PARTY_PAYMENT_DTLS.payment_basis%TYPE) IS
19239 SELECT 'Y'
19240 FROM FND_LOOKUPS
19241 WHERE lookup_type = 'OKL_PAYMENT_BASIS'
19242 AND nvl(enabled_flag,'N') = 'Y'
19243 AND sysdate between nvl(start_date_active,sysdate) and nvl(end_date_active,sysdate)
19244 AND lookup_code = p_payment_basis;
19245
19246 CURSOR disb_basis_csr (p_disbursement_basis OKL_PARTY_PAYMENT_DTLS.disbursement_basis%TYPE) IS
19247 SELECT 'Y'
19248 FROM FND_LOOKUPS
19249 WHERE lookup_type = 'OKL_DISBURSE_BASIS'
19250 AND nvl(enabled_flag,'N') = 'Y'
19251 AND sysdate between nvl(start_date_active,sysdate) and nvl(end_date_active,sysdate)
19252 AND lookup_code = p_disbursement_basis;
19253
19254 CURSOR proc_fee_basis_csr (p_processing_fee_basis OKL_PARTY_PAYMENT_DTLS.disbursement_basis%TYPE) IS
19255 SELECT 'Y'
19256 FROM FND_LOOKUPS
19257 WHERE lookup_type = 'OKL_PROC_FEE_BASIS'
19258 AND nvl(enabled_flag,'N') = 'Y'
19259 AND sysdate between nvl(start_date_active,sysdate) and nvl(end_date_active,sysdate)
19260 AND lookup_code = p_processing_fee_basis;
19261
19262 l_vend_cust_id NUMBER;
19263 l_vend_cust_acc_id NUMBER;
19264 x_billable_vendor_id NUMBER;
19265 l_vend_bill_to_addr_id NUMBER;
19266 l_vend_payment_method_id NUMBER;
19267 l_vend_bank_acc_id NUMBER;
19268 l_vend_invoice_format_id NUMBER;
19269 l_vend_invoice_format_name VARCHAR2(450);
19270
19271 -- pass through
19272 l_paygroup_code po_vendor_sites_all.pay_group_lookup_code%TYPE;
19273 l_base_pmnt_dtls_rec ppydv_rec_type;
19274 l_evg_pmnt_dtls_rec ppydv_rec_type;
19275 l_pmnt_dtls_tbl_in ppydv_tbl_type;
19276 l_pmnt_dtls_tbl_out ppydv_tbl_type;
19277 l_counter NUMBER := 0;
19278 rec_exists_yn VARCHAR2(1);
19279
19280 l_kplv_rec kplv_rec_type;
19281 x_kplv_rec kplv_rec_type;
19282
19283 l_evg_cont_pmnt_dtls_rec ppydv_rec_type;
19284 l_cont_pmnt_dtls_tbl_in ppydv_tbl_type;
19285 l_cont_pmnt_dtls_tbl_out ppydv_tbl_type;
19286 BEGIN
19287
19288 x_return_status := OKL_API.G_RET_STS_SUCCESS;
19289 debug_message(l_proc_name);
19290
19291 IF (p_asset_vendor_id IS NOT NULL) THEN
19292 x_asset_vendor_id := p_asset_vendor_id;
19293 ELSIF (p_asset_vendor_name IS NOT NULL) THEN
19294 get_vendor_id (
19295 x_return_status => x_return_status,
19296 x_msg_count => x_msg_count,
19297 x_msg_data => x_msg_data,
19298 p_contract_number => p_contract_number,
19299 p_line_number => p_line_number,
19300 x_vendor_id => x_asset_vendor_id,
19301 p_vendor_name => p_asset_vendor_name
19302 );
19303 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19304 RAISE party_role_failed;
19305 END IF;
19306 END IF;
19307
19308 IF (p_billable_vendor_id IS NOT NULL
19309 OR
19310 p_billable_vendor_name IS NOT NULL) THEN
19311
19312 IF (p_vend_as_customer_id IS NOT NULL
19313 OR
19314 p_vend_as_customer_number IS NOT NULL) THEN
19315
19316 OPEN customer_csr(p_vend_as_customer_number,
19317 p_vend_as_customer_id);
19318
19319 FETCH customer_csr INTO l_vend_cust_id;
19320 IF customer_csr%NOTFOUND THEN
19321 okl_api.set_message(
19322 G_APP_NAME,
19323 G_INVALID_VALUE,
19324 'CONTRACT_NUM',
19325 p_contract_number,
19326 'COL_NAME',
19327 'VENDOR AS CUSTOMER ACCOUNT',
19328 'COL_VALUE',
19329 p_vend_as_customer_id||', '||p_vend_as_customer_number
19330 );
19331 x_return_status := OKL_API.G_RET_STS_ERROR;
19332 RAISE party_role_failed;
19333 END IF;
19334
19335 CLOSE customer_csr;
19336 ELSE
19337 okl_api.set_message(
19338 G_APP_NAME,
19339 G_MISSING_VALUE,
19340 'CONTRACT_NUM',
19341 p_contract_number,
19342 'COL_NAME',
19343 'VENDOR AS CUSTOMER'
19344 );
19345 x_return_status := OKL_API.G_RET_STS_ERROR;
19346 RAISE party_role_failed;
19347 END IF; -- Vend as customer
19348
19349 IF (p_vend_as_cust_acc_id IS NOT NULL
19350 OR
19351 p_vend_as_cust_acc_number IS NOT NULL) THEN
19352
19353 get_customer_account_id(
19354 x_return_status => x_return_status,
19355 x_msg_count => x_msg_count,
19356 x_msg_data => x_msg_data,
19357 p_contract_number => p_contract_number,
19358 p_customer_id => l_vend_cust_id,
19359 p_customer_account_id => p_vend_as_cust_acc_id,
19360 p_customer_account_number => p_vend_as_cust_acc_number,
19361 x_customer_account_id => l_vend_cust_acc_id
19362 );
19363
19364 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19365 x_return_status := OKL_API.G_RET_STS_ERROR;
19366 raise party_role_failed;
19367 END IF;
19368
19369 debug_message('------>l_vend_cust_acc_id : '||l_vend_cust_acc_id);
19370 ELSE
19371 okl_api.set_message(
19372 G_APP_NAME,
19373 G_MISSING_VALUE,
19374 'CONTRACT_NUM',
19375 p_contract_number,
19376 'COL_NAME',
19377 'VENDOR AS CUSTOMER ACCOUNT'
19378 );
19379 x_return_status := OKL_API.G_RET_STS_ERROR;
19380 RAISE party_role_failed;
19381 END IF; -- vend as cust acct
19382
19383 IF (p_vend_bill_to_addr_id IS NOT NULL
19384 OR
19385 p_vend_bill_to_addr IS NOT NULL) THEN
19386 get_bill_to_address_id(
19387 x_return_status => x_return_status,
19388 x_msg_count => x_msg_count,
19389 x_msg_data => x_msg_data,
19390 p_contract_number => p_contract_number,
19391 p_auth_org_id => p_auth_org_id,
19392 p_bill_to_address_id => p_vend_bill_to_addr_id,
19393 p_bill_to_address => p_vend_bill_to_addr,
19394 p_customer_account_id => l_vend_cust_acc_id,
19395 x_bill_to_address_id => l_vend_bill_to_addr_id
19396 );
19397
19398 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19399 x_return_status := OKL_API.G_RET_STS_ERROR;
19400 raise party_role_failed;
19401 END IF;
19402 ELSE
19403 okl_api.set_message(
19404 G_APP_NAME,
19405 G_MISSING_VALUE,
19406 'CONTRACT_NUM',
19407 p_contract_number,
19408 'COL_NAME',
19409 'VENDOR BILL TO ADDRESS'
19410 );
19411 x_return_status := OKL_API.G_RET_STS_ERROR;
19412 RAISE party_role_failed;
19413 END IF; -- vend bill to addr
19414
19415 END IF; -- billable vendor info
19416
19417 debug_message('------>l_vend_bill_to_addr_id : '||l_vend_bill_to_addr_id);
19418 debug_message('------> Asset Vendor id: '||x_asset_vendor_id);
19419
19420 IF (x_asset_vendor_id IS NOT NULL) THEN
19421 p_cplv_rec := NULL;
19422
19423 IF (p_line_number IS NOT NULL) THEN
19424 p_cplv_rec.chr_id := NULL;
19425 p_cplv_rec.dnz_chr_id := p_chr_id;
19426 IF ((p_pth_evg_vendor_site_code is NOT NULL) OR
19427 (p_pth_evg_vendor_site_id is NOT NULL)) THEN
19428 p_cplv_rec.cle_id := p_fin_cle_id; -- PASS THROUGH VENDOR
19429 ELSE
19430 p_cplv_rec.cle_id := p_model_cle_id; -- ASSET VENDOR
19431 END IF;
19432 ELSE
19433 p_cplv_rec.chr_id := p_chr_id;
19434 p_cplv_rec.dnz_chr_id := p_chr_id;
19435 p_cplv_rec.cle_id := NULL;
19436
19437 -- Contract addl field, Bug 4558486, for party role at header level and asset vendor only
19438
19439 debug_message('Party role DFF...'||'Vendor name/id: '||p_asset_vendor_name||'/'||p_asset_vendor_id);
19440
19441 l_kplv_rec.validate_dff_yn := 'Y'; -- always validate DFF
19442 l_kplv_rec.attribute_category := p_attribute_category;
19443 debug_message('attribute_category: '||l_kplv_rec.attribute_category);
19444 l_kplv_rec.attribute1 := p_attribute1;
19445 debug_message('attribute1: '||l_kplv_rec.attribute1);
19446 l_kplv_rec.attribute2 := p_attribute2;
19447 debug_message('attribute2: '||l_kplv_rec.attribute2);
19448 l_kplv_rec.attribute3 := p_attribute3;
19449 l_kplv_rec.attribute4 := p_attribute4;
19450 l_kplv_rec.attribute5 := p_attribute5;
19451 l_kplv_rec.attribute6 := p_attribute6;
19452 l_kplv_rec.attribute7 := p_attribute7;
19453 l_kplv_rec.attribute8 := p_attribute8;
19454 l_kplv_rec.attribute9 := p_attribute9;
19455 l_kplv_rec.attribute10 := p_attribute10;
19456 l_kplv_rec.attribute11 := p_attribute11;
19457 l_kplv_rec.attribute12 := p_attribute12;
19458 l_kplv_rec.attribute13 := p_attribute13;
19459 l_kplv_rec.attribute14 := p_attribute14;
19460 l_kplv_rec.attribute15 := p_attribute15;
19461 -- Contract addl field, Bug 4558486
19462
19463 END IF;
19464
19465 p_cplv_rec.object1_id1 := TO_CHAR(x_asset_vendor_id);
19466 p_cplv_rec.object1_id2 := '#';
19467 p_cplv_rec.jtot_object1_code := 'OKX_VENDOR';
19468 p_cplv_rec.rle_code := 'OKL_VENDOR';
19469
19470 p_cplv_rec.bill_to_site_use_id := l_vend_bill_to_addr_id;
19471 p_cplv_rec.cust_acct_id := l_vend_cust_acc_id;
19472
19473 --OKL_OKC_MIGRATION_PVT.create_k_party_role( -- Bug 4558486
19474 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
19475 p_api_version => 1.0,
19476 p_init_msg_list => OKL_API.G_FALSE,
19477 x_return_status => x_return_status,
19478 x_msg_count => x_msg_count,
19479 x_msg_data => x_msg_data,
19480 p_cplv_rec => p_cplv_rec,
19481 p_kplv_rec => l_kplv_rec,
19482 x_cplv_rec => x_cplv_rec,
19483 x_kplv_rec => x_kplv_rec
19484 );
19485
19486 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19487 RAISE party_role_failed;
19488 END IF;
19489 END IF; -- asset vendor
19490
19491 debug_message('------>Asset vendor processed');
19492
19493 -- Evergreen Passthru at header
19494 IF (g_evg_cont_pmnt_hdr.id IS NOT NULL) THEN
19495 NULL;
19496 END IF;
19497
19498 -- Evergreen Passthru at header
19499
19500 IF (p_line_type = 'SERVICE') THEN
19501 IF (p_service_vendor_id IS NOT NULL) THEN
19502 x_service_vendor_id := p_service_vendor_id;
19503 ELSIF (p_service_vendor_name IS NOT NULL) THEN
19504 get_vendor_id (
19505 x_return_status => x_return_status,
19506 x_msg_count => x_msg_count,
19507 x_msg_data => x_msg_data,
19508 p_contract_number => p_contract_number,
19509 p_line_number => p_line_number,
19510 x_vendor_id => x_service_vendor_id,
19511 p_vendor_name => p_service_vendor_name
19512 );
19513 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19514 RAISE party_role_failed;
19515 END IF;
19516 END IF;
19517
19518 IF (x_service_vendor_id IS NOT NULL) THEN
19519 p_cplv_rec := NULL;
19520 l_kplv_rec := NULL;
19521
19522 IF (p_line_number IS NOT NULL) THEN
19523 p_cplv_rec.chr_id := NULL;
19524 p_cplv_rec.dnz_chr_id := p_chr_id;
19525 p_cplv_rec.cle_id := p_service_line_id;
19526 ELSE
19527 p_cplv_rec.chr_id := p_chr_id;
19528 p_cplv_rec.dnz_chr_id := p_chr_id;
19529 p_cplv_rec.cle_id := NULL;
19530 END IF;
19531 p_cplv_rec.object1_id1 := TO_CHAR(x_service_vendor_id);
19532 p_cplv_rec.object1_id2 := '#';
19533 p_cplv_rec.jtot_object1_code := 'OKX_VENDOR';
19534 p_cplv_rec.rle_code := 'OKL_VENDOR';
19535
19536 p_cplv_rec.bill_to_site_use_id := l_vend_bill_to_addr_id;
19537 p_cplv_rec.cust_acct_id := l_vend_cust_acc_id;
19538
19539 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
19540 p_api_version => 1.0,
19541 p_init_msg_list => OKL_API.G_FALSE,
19542 x_return_status => x_return_status,
19543 x_msg_count => x_msg_count,
19544 x_msg_data => x_msg_data,
19545 p_cplv_rec => p_cplv_rec,
19546 p_kplv_rec => l_kplv_rec,
19547 x_cplv_rec => x_cplv_rec,
19548 x_kplv_rec => x_kplv_rec
19549 );
19550
19551 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19552 RAISE party_role_failed;
19553 END IF;
19554
19555 debug_message('------>Party Roles Created');
19556
19557 /* Passthru is moved to OKL table,do not need rule group LAPSTH
19558
19559 okl_contract_top_line_pub.validate_passthru_rule(
19560 p_api_version => 1.0,
19561 p_init_msg_list => OKL_API.G_FALSE,
19562 x_return_status => x_return_status,
19563 x_msg_count => x_msg_count,
19564 x_msg_data => x_msg_data,
19565 p_line_id => p_service_line_id,
19566 p_vendor_id => x_service_vendor_id,
19567 p_payment_term => p_payment_term,
19568 p_payment_term_id => p_payment_term_id,
19569 p_pay_to_site => p_vendor_paysite_name,
19570 p_pay_to_site_id => p_vendor_paysite_id,
19571 p_payment_method_code => p_vendor_payment_method,
19572 x_payment_term_id1 => x_payment_term_id1,
19573 x_pay_site_id1 => x_pay_site_id1,
19574 x_payment_method_id1 => x_payment_method_id1
19575 );
19576
19577 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19578 RAISE party_role_failed;
19579 END IF;
19580 -- Rule Group LAPSTH
19581 l_rgpv_rec := NULL;
19582 l_rgp_id := NULL;
19583 l_rgpv_rec.rgd_code := 'LAPSTH';
19584 l_rgpv_rec.chr_id := NULL;
19585 l_rgpv_rec.dnz_chr_id := p_chr_id;
19586 l_rgpv_rec.cle_id := p_service_line_id;
19587 l_rgpv_rec.rgp_type := 'KRG';
19588
19589 l_rulv_rec := NULL;
19590
19591 --debug_message('Term: '||x_payment_term_id1);
19592
19593 IF (x_payment_term_id1 IS NOT NULL) THEN
19594
19595 l_rulv_rec.jtot_object1_code := 'OKX_PPAYTERM';
19596 l_rulv_rec.object1_id1 := x_payment_term_id1;
19597 l_rulv_rec.object1_id2 := '#';
19598 l_rulv_rec.rgp_id := x_rgpv_rec.id;
19599 l_rulv_rec.dnz_chr_id := p_chr_id;
19600 l_rulv_rec.rule_information_category := 'LAPTR';
19601 l_rulv_rec.std_template_yn := 'N';
19602 l_rulv_rec.warn_yn := 'N';
19603 END IF;
19604
19605 create_rule_group_and_rule(
19606 x_return_status => x_return_status,
19607 x_msg_count => x_msg_count,
19608 x_msg_data => x_msg_data,
19609 p_rgp_id => l_rgp_id,
19610 p_rgpv_rec => l_rgpv_rec,
19611 p_rulv_rec => l_rulv_rec,
19612 x_rgpv_rec => x_rgpv_rec,
19613 x_rulv_rec => x_rulv_rec
19614 );
19615 l_progress := '1.2';
19616 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19617 raise party_role_failed;
19618 END IF;
19619
19620 debug_message('------>Rule: LAPSTH/LAPTR processed');
19621
19622 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
19623 l_rgp_id := x_rgpv_rec.id;
19624 END IF;
19625
19626 l_rulv_rec := NULL;
19627 --debug_message('Site: '||x_pay_site_id1);
19628 IF (x_pay_site_id1 IS NOT NULL) THEN
19629
19630 l_rulv_rec.jtot_object1_code := 'OKX_PAYTO';
19631 l_rulv_rec.object1_id1 := x_pay_site_id1;
19632 l_rulv_rec.object1_id2 := '#';
19633 l_rulv_rec.rgp_id := x_rgpv_rec.id;
19634 l_rulv_rec.dnz_chr_id := p_chr_id;
19635 l_rulv_rec.rule_information_category := 'LAPTO';
19636 l_rulv_rec.std_template_yn := 'N';
19637 l_rulv_rec.warn_yn := 'N';
19638 END IF;
19639
19640 create_rule_group_and_rule(
19641 x_return_status => x_return_status,
19642 x_msg_count => x_msg_count,
19643 x_msg_data => x_msg_data,
19644 p_rgp_id => l_rgp_id,
19645 p_rgpv_rec => l_rgpv_rec,
19646 p_rulv_rec => l_rulv_rec,
19647 x_rgpv_rec => x_rgpv_rec,
19648 x_rulv_rec => x_rulv_rec
19649 );
19650 l_progress := '1.2';
19651 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19652 raise party_role_failed;
19653 END IF;
19654
19655 debug_message('------>Rule: LAPSTH/LAPTO processed');
19656 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
19657 l_rgp_id := x_rgpv_rec.id;
19658 END IF;
19659
19660 l_rulv_rec := NULL;
19661 --debug_message('Pay method: '||x_payment_method_id1);
19662 IF (x_payment_method_id1 IS NOT NULL) THEN
19663
19664
19665 --l_rulv_rec.jtot_object1_code := 'OKX_PPAYTERM';
19666 --l_rulv_rec.object1_id1 := x_payment_method_id1;
19667 --l_rulv_rec.object1_id2 := '#';
19668
19669 l_rulv_rec.rule_information1 := x_payment_method_id1;
19670 l_rulv_rec.rgp_id := x_rgpv_rec.id;
19671 l_rulv_rec.dnz_chr_id := p_chr_id;
19672 l_rulv_rec.rule_information_category := 'LAVPMT';
19673 l_rulv_rec.std_template_yn := 'N';
19674 l_rulv_rec.warn_yn := 'N';
19675 END IF;
19676
19677 create_rule_group_and_rule(
19678 x_return_status => x_return_status,
19679 x_msg_count => x_msg_count,
19680 x_msg_data => x_msg_data,
19681 p_rgp_id => l_rgp_id,
19682 p_rgpv_rec => l_rgpv_rec,
19683 p_rulv_rec => l_rulv_rec,
19684 x_rgpv_rec => x_rgpv_rec,
19685 x_rulv_rec => x_rulv_rec
19686 );
19687 l_progress := '1.2';
19688 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19689 raise party_role_failed;
19690 END IF;
19691
19692 debug_message('------>Rule: LAPSTH/LAVPMT processed');
19693 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
19694 l_rgp_id := x_rgpv_rec.id;
19695 END IF;
19696
19697 l_rulv_rec := NULL;
19698
19699 IF (p_passthrough_percent IS NOT NULL) THEN
19700 l_rulv_rec.rule_information1 := p_passthrough_percent;
19701 l_rulv_rec.rgp_id := x_rgpv_rec.id;
19702 l_rulv_rec.dnz_chr_id := p_chr_id;
19703 l_rulv_rec.rule_information_category := 'LAPTPR';
19704 l_rulv_rec.std_template_yn := 'N';
19705 l_rulv_rec.warn_yn := 'N';
19706 END IF;
19707
19708 create_rule_group_and_rule(
19709 x_return_status => x_return_status,
19710 x_msg_count => x_msg_count,
19711 x_msg_data => x_msg_data,
19712 p_rgp_id => l_rgp_id,
19713 p_rgpv_rec => l_rgpv_rec,
19714 p_rulv_rec => l_rulv_rec,
19715 x_rgpv_rec => x_rgpv_rec,
19716 x_rulv_rec => x_rulv_rec
19717 );
19718
19719 l_progress := '1.5';
19720 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19721 raise party_role_failed;
19722 END IF;
19723
19724 debug_message('------>Rule: LAPSTH/LAPTRP processed');
19725
19726 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
19727 l_rgp_id := x_rgpv_rec.id;
19728 END IF;
19729
19730 l_rulv_rec := NULL;
19731 IF (p_passthrough_basis_code IS NOT NULL) THEN
19732 l_rulv_rec.rule_information1 := p_passthrough_basis_code;
19733 l_rulv_rec.rgp_id := x_rgpv_rec.id;
19734 l_rulv_rec.dnz_chr_id := p_chr_id;
19735 l_rulv_rec.rule_information_category := 'LAPTBC';
19736 l_rulv_rec.std_template_yn := 'N';
19737 l_rulv_rec.warn_yn := 'N';
19738 END IF;
19739
19740 create_rule_group_and_rule(
19741 x_return_status => x_return_status,
19742 x_msg_count => x_msg_count,
19743 x_msg_data => x_msg_data,
19744 p_rgp_id => l_rgp_id,
19745 p_rgpv_rec => l_rgpv_rec,
19746 p_rulv_rec => l_rulv_rec,
19747 x_rgpv_rec => x_rgpv_rec,
19748 x_rulv_rec => x_rulv_rec
19749 );
19750
19751 l_progress := '1.6';
19752 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19753 raise party_role_failed;
19754 END IF;
19755
19756 debug_message('------>Rule: LAPSTH/LAPTBC processed');
19757 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
19758 l_rgp_id := x_rgpv_rec.id;
19759 END IF;
19760 */
19761 END IF; -- service vendor
19762
19763 END IF;
19764
19765 --debug_message('Fees vendor: '||p_fees_vendor_name);
19766 --debug_message('Line Type: '|| p_line_type);
19767
19768 IF (p_line_type = 'FEE') THEN
19769 --debug_message('Inside FEE line type');
19770 IF (p_fees_vendor_id IS NOT NULL) THEN
19771 x_fees_vendor_id := p_fees_vendor_id;
19772 ELSIF (p_fees_vendor_name IS NOT NULL) THEN
19773 get_vendor_id (
19774 x_return_status => x_return_status,
19775 x_msg_count => x_msg_count,
19776 x_msg_data => x_msg_data,
19777 p_contract_number => p_contract_number,
19778 p_line_number => p_line_number,
19779 x_vendor_id => x_fees_vendor_id,
19780 p_vendor_name => p_fees_vendor_name
19781 );
19782 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19783 RAISE party_role_failed;
19784 END IF;
19785 END IF;
19786
19787 debug_message('------>FEE Vendor ID: '||x_fees_vendor_id);
19788 IF (x_fees_vendor_id IS NOT NULL) THEN
19789
19790 p_cplv_rec := NULL;
19791 l_kplv_rec := NULL;
19792
19793 IF (p_line_number IS NOT NULL) THEN
19794 p_cplv_rec.chr_id := NULL;
19795 p_cplv_rec.dnz_chr_id := p_chr_id;
19796 p_cplv_rec.cle_id := p_fee_line_id;
19797 ELSE
19798 p_cplv_rec.chr_id := p_chr_id;
19799 p_cplv_rec.dnz_chr_id := p_chr_id;
19800 p_cplv_rec.cle_id := NULL;
19801 END IF;
19802 p_cplv_rec.object1_id1 := TO_CHAR(x_fees_vendor_id);
19803 p_cplv_rec.object1_id2 := '#';
19804 p_cplv_rec.jtot_object1_code := 'OKX_VENDOR';
19805 p_cplv_rec.rle_code := 'OKL_VENDOR';
19806
19807 p_cplv_rec.bill_to_site_use_id := l_vend_bill_to_addr_id;
19808 p_cplv_rec.cust_acct_id := l_vend_cust_acc_id;
19809
19810 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
19811 p_api_version => 1.0,
19812 p_init_msg_list => OKL_API.G_FALSE,
19813 x_return_status => x_return_status,
19814 x_msg_count => x_msg_count,
19815 x_msg_data => x_msg_data,
19816 p_cplv_rec => p_cplv_rec,
19817 p_kplv_rec => l_kplv_rec,
19818 x_cplv_rec => x_cplv_rec,
19819 x_kplv_rec => x_kplv_rec
19820 );
19821
19822 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19823 RAISE party_role_failed;
19824 END IF;
19825
19826 debug_message('------>Fee Vendor Processed');
19827
19828 /* Passthru is moved to OKL table,do not need rule group LAPSTH
19829
19830 okl_contract_top_line_pub.validate_passthru_rule(
19831 p_api_version => 1.0,
19832 p_init_msg_list => OKL_API.G_FALSE,
19833 x_return_status => x_return_status,
19834 x_msg_count => x_msg_count,
19835 x_msg_data => x_msg_data,
19836 p_line_id => p_fee_line_id,
19837 p_vendor_id => x_fees_vendor_id,
19838 p_payment_term => p_payment_term,
19839 p_payment_term_id => p_payment_term_id,
19840 p_pay_to_site => p_vendor_paysite_name,
19841 p_pay_to_site_id => p_vendor_paysite_id,
19842 p_payment_method_code => p_vendor_payment_method,
19843 x_payment_term_id1 => x_payment_term_id1,
19844 x_pay_site_id1 => x_pay_site_id1,
19845 x_payment_method_id1 => x_payment_method_id1
19846 );
19847
19848 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19849 RAISE party_role_failed;
19850 END IF;
19851
19852 -- Rule Group LAPSTH
19853 l_rgpv_rec := NULL;
19854 l_rgp_id := NULL;
19855 l_rgpv_rec.rgd_code := 'LAPSTH';
19856 l_rgpv_rec.chr_id := NULL;
19857 l_rgpv_rec.dnz_chr_id := p_chr_id;
19858 l_rgpv_rec.cle_id := p_fee_line_id;
19859 l_rgpv_rec.rgp_type := 'KRG';
19860
19861 l_rulv_rec := NULL;
19862
19863 --debug_message('Term: '||x_payment_term_id1);
19864
19865 IF (x_payment_term_id1 IS NOT NULL) THEN
19866
19867 l_rulv_rec.jtot_object1_code := 'OKX_PPAYTERM';
19868 l_rulv_rec.object1_id1 := x_payment_term_id1;
19869 l_rulv_rec.object1_id2 := '#';
19870 l_rulv_rec.rgp_id := x_rgpv_rec.id;
19871 l_rulv_rec.dnz_chr_id := p_chr_id;
19872 l_rulv_rec.rule_information_category := 'LAPTR';
19873 l_rulv_rec.std_template_yn := 'N';
19874 l_rulv_rec.warn_yn := 'N';
19875 END IF;
19876
19877 create_rule_group_and_rule(
19878 x_return_status => x_return_status,
19879 x_msg_count => x_msg_count,
19880 x_msg_data => x_msg_data,
19881 p_rgp_id => l_rgp_id,
19882 p_rgpv_rec => l_rgpv_rec,
19883 p_rulv_rec => l_rulv_rec,
19884 x_rgpv_rec => x_rgpv_rec,
19885 x_rulv_rec => x_rulv_rec
19886 );
19887 l_progress := '1.2';
19888 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19889 raise party_role_failed;
19890 END IF;
19891
19892 debug_message('------>Fee Rule: LAPSTH/LAPTR processed');
19893 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
19894 l_rgp_id := x_rgpv_rec.id;
19895 END IF;
19896 l_rulv_rec := NULL;
19897 --debug_message('Site: '||x_pay_site_id1);
19898 IF (x_pay_site_id1 IS NOT NULL) THEN
19899
19900 l_rulv_rec.jtot_object1_code := 'OKX_PAYTO';
19901 l_rulv_rec.object1_id1 := x_pay_site_id1;
19902 l_rulv_rec.object1_id2 := '#';
19903 l_rulv_rec.rgp_id := x_rgpv_rec.id;
19904 l_rulv_rec.dnz_chr_id := p_chr_id;
19905 l_rulv_rec.rule_information_category := 'LAPTO';
19906 l_rulv_rec.std_template_yn := 'N';
19907 l_rulv_rec.warn_yn := 'N';
19908 END IF;
19909
19910 create_rule_group_and_rule(
19911 x_return_status => x_return_status,
19912 x_msg_count => x_msg_count,
19913 x_msg_data => x_msg_data,
19914 p_rgp_id => l_rgp_id,
19915 p_rgpv_rec => l_rgpv_rec,
19916 p_rulv_rec => l_rulv_rec,
19917 x_rgpv_rec => x_rgpv_rec,
19918 x_rulv_rec => x_rulv_rec
19919 );
19920 l_progress := '1.2';
19921 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19922 raise party_role_failed;
19923 END IF;
19924
19925 debug_message('------>Fee Rule: LAPSTH/LAPTO processed');
19926 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
19927 l_rgp_id := x_rgpv_rec.id;
19928 END IF;
19929
19930 l_rulv_rec := NULL;
19931 --debug_message('Pay method: '||x_payment_method_id1);
19932 IF (x_payment_method_id1 IS NOT NULL) THEN
19933
19934
19935 --l_rulv_rec.jtot_object1_code := 'OKX_PPAYTERM';
19936 --l_rulv_rec.object1_id1 := x_payment_method_id1;
19937 --l_rulv_rec.object1_id2 := '#';
19938
19939 l_rulv_rec.rule_information1 := x_payment_method_id1;
19940 l_rulv_rec.rgp_id := x_rgpv_rec.id;
19941 l_rulv_rec.dnz_chr_id := p_chr_id;
19942 l_rulv_rec.rule_information_category := 'LAVPMT';
19943 l_rulv_rec.std_template_yn := 'N';
19944 l_rulv_rec.warn_yn := 'N';
19945 END IF;
19946
19947 create_rule_group_and_rule(
19948 x_return_status => x_return_status,
19949 x_msg_count => x_msg_count,
19950 x_msg_data => x_msg_data,
19951 p_rgp_id => l_rgp_id,
19952 p_rgpv_rec => l_rgpv_rec,
19953 p_rulv_rec => l_rulv_rec,
19954 x_rgpv_rec => x_rgpv_rec,
19955 x_rulv_rec => x_rulv_rec
19956 );
19957 l_progress := '1.2';
19958 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19959 raise party_role_failed;
19960 END IF;
19961
19962 debug_message('------>Fee Rule: LAPSTH/LAVPMT processed');
19963 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
19964 l_rgp_id := x_rgpv_rec.id;
19965 END IF;
19966
19967 l_rulv_rec := NULL;
19968
19969 IF (p_passthrough_percent IS NOT NULL) THEN
19970 l_rulv_rec.rule_information1 := p_passthrough_percent;
19971 l_rulv_rec.rgp_id := x_rgpv_rec.id;
19972 l_rulv_rec.dnz_chr_id := p_chr_id;
19973 l_rulv_rec.rule_information_category := 'LAPTPR';
19974 l_rulv_rec.std_template_yn := 'N';
19975 l_rulv_rec.warn_yn := 'N';
19976 END IF;
19977
19978 create_rule_group_and_rule(
19979 x_return_status => x_return_status,
19980 x_msg_count => x_msg_count,
19981 x_msg_data => x_msg_data,
19982 p_rgp_id => l_rgp_id,
19983 p_rgpv_rec => l_rgpv_rec,
19984 p_rulv_rec => l_rulv_rec,
19985 x_rgpv_rec => x_rgpv_rec,
19986 x_rulv_rec => x_rulv_rec
19987 );
19988
19989 l_progress := '1.5';
19990 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
19991 raise party_role_failed;
19992 END IF;
19993
19994 debug_message('------>Fee Rule: LAPSTH/LAPTPR processed');
19995 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
19996 l_rgp_id := x_rgpv_rec.id;
19997 END IF;
19998
19999 l_rulv_rec := NULL;
20000 IF (p_passthrough_basis_code IS NOT NULL) THEN
20001 l_rulv_rec.rule_information1 := p_passthrough_basis_code;
20002 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20003 l_rulv_rec.dnz_chr_id := p_chr_id;
20004 l_rulv_rec.rule_information_category := 'LAPTBC';
20005 l_rulv_rec.std_template_yn := 'N';
20006 l_rulv_rec.warn_yn := 'N';
20007 END IF;
20008
20009 create_rule_group_and_rule(
20010 x_return_status => x_return_status,
20011 x_msg_count => x_msg_count,
20012 x_msg_data => x_msg_data,
20013 p_rgp_id => l_rgp_id,
20014 p_rgpv_rec => l_rgpv_rec,
20015 p_rulv_rec => l_rulv_rec,
20016 x_rgpv_rec => x_rgpv_rec,
20017 x_rulv_rec => x_rulv_rec
20018 );
20019
20020 l_progress := '1.6';
20021 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20022 raise party_role_failed;
20023 END IF;
20024
20025 debug_message('------>Fee Rule: LAPSTH/LAPTBC processed');
20026 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20027 l_rgp_id := x_rgpv_rec.id;
20028 END IF;
20029 */
20030 END IF; -- Fees vendor
20031 END IF;
20032
20033 x_guarantor_id := NULL;
20034 IF (p_guarantor_id IS NOT NULl
20035 OR
20036 p_guarantor_number IS NOT NULL) THEN
20037 get_party_id(
20038 x_return_status => x_return_status,
20039 x_msg_count => x_msg_count,
20040 x_msg_data => x_msg_data,
20041 p_contract_number => p_contract_number,
20042 p_line_number => p_line_number,
20043 p_party_id => p_guarantor_id,
20044 p_party_number => p_guarantor_number,
20045 x_party_id => x_guarantor_id
20046 );
20047 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20048 RAISE party_role_failed;
20049 END IF;
20050 END IF;
20051
20052 debug_message('------>Guarantor id: '||x_guarantor_id);
20053
20054 IF (x_guarantor_id IS NOT NULL) THEN
20055
20056 -- Contract addl field, Bug 4558486, for party role at header level and asset vendor only
20057
20058 debug_message('Guarantor DFF...'||x_guarantor_id);
20059
20060 l_kplv_rec.validate_dff_yn := 'Y'; -- always validate DFF
20061 l_kplv_rec.attribute_category := p_attribute_category;
20062 debug_message('attribute_category: '||l_kplv_rec.attribute_category);
20063 l_kplv_rec.attribute1 := p_attribute1;
20064 debug_message('attribute1: '||l_kplv_rec.attribute1);
20065 l_kplv_rec.attribute2 := p_attribute2;
20066 debug_message('attribute2: '||l_kplv_rec.attribute2);
20067 l_kplv_rec.attribute3 := p_attribute3;
20068 l_kplv_rec.attribute4 := p_attribute4;
20069 l_kplv_rec.attribute5 := p_attribute5;
20070 l_kplv_rec.attribute6 := p_attribute6;
20071 l_kplv_rec.attribute7 := p_attribute7;
20072 l_kplv_rec.attribute8 := p_attribute8;
20073 l_kplv_rec.attribute9 := p_attribute9;
20074 l_kplv_rec.attribute10 := p_attribute10;
20075 l_kplv_rec.attribute11 := p_attribute11;
20076 l_kplv_rec.attribute12 := p_attribute12;
20077 l_kplv_rec.attribute13 := p_attribute13;
20078 l_kplv_rec.attribute14 := p_attribute14;
20079 l_kplv_rec.attribute15 := p_attribute15;
20080 -- Contract addl field, Bug 4558486
20081
20082 p_cplv_rec := NULL;
20083 p_cplv_rec.chr_id := p_chr_id;
20084 p_cplv_rec.dnz_chr_id := p_chr_id;
20085 p_cplv_rec.cle_id := NULL; -- always at header level
20086 p_cplv_rec.object1_id1 := TO_CHAR(x_guarantor_id);
20087 p_cplv_rec.object1_id2 := '#';
20088 p_cplv_rec.jtot_object1_code := 'OKX_PARTY';
20089 p_cplv_rec.rle_code := 'GUARANTOR';
20090
20091 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
20092 p_api_version => 1.0,
20093 p_init_msg_list => OKL_API.G_FALSE,
20094 x_return_status => x_return_status,
20095 x_msg_count => x_msg_count,
20096 x_msg_data => x_msg_data,
20097 p_cplv_rec => p_cplv_rec,
20098 p_kplv_rec => l_kplv_rec,
20099 x_cplv_rec => x_cplv_rec,
20100 x_kplv_rec => x_kplv_rec
20101 );
20102
20103 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20104 RAISE party_role_failed;
20105 END IF;
20106
20107 l_rgpv_rec := NULL;
20108 l_rgp_id := NULL;
20109 l_rgpv_rec.rgd_code := 'LAGRDT';
20110 l_rgpv_rec.chr_id := p_chr_id;
20111 l_rgpv_rec.dnz_chr_id := p_chr_id;
20112 l_rgpv_rec.cle_id := NULL; -- always at header level
20113 l_rgpv_rec.rgp_type := 'KRG';
20114
20115 l_rulv_rec := NULL;
20116 IF (p_guarantor_type IS NOT NULL) THEN
20117
20118 l_progress := 'P1.2';
20119
20120 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20121 l_rulv_rec.dnz_chr_id := p_chr_id;
20122 l_rulv_rec.rule_information1 := p_guarantor_type;
20123 l_rulv_rec.rule_information_category := 'LAGRNP';
20124 l_rulv_rec.std_template_yn := 'N';
20125 l_rulv_rec.warn_yn := 'N';
20126 END IF;
20127
20128 IF (p_guarantor_site_number IS NOT NULL
20129 OR
20130 p_guarantor_site_id IS NOT NULL
20131 ) THEN
20132 get_guarantor_address(
20133 x_return_status => x_return_status,
20134 x_msg_count => x_msg_count,
20135 x_msg_data => x_msg_data,
20136 p_contract_number => p_contract_number,
20137 p_line_number => p_line_number,
20138 p_guarantor_site_number => p_guarantor_site_number,
20139 p_guarantor_site_id => p_guarantor_site_id,
20140 x_guarantor_site_id => x_guarantor_site_id
20141 );
20142
20143 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20144 RAISE party_role_failed;
20145 END IF;
20146
20147 l_rulv_rec.jtot_object1_code := 'OKL_PARTYSITE'; -- Bug 5024651 'OKX_PARTSITE';
20148 l_rulv_rec.object1_id1 := TO_CHAR(x_guarantor_site_id);
20149 l_rulv_rec.object1_id2 := '#';
20150 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20151 l_rulv_rec.dnz_chr_id := p_chr_id;
20152 l_rulv_rec.rule_information_category := 'LAGRNP';
20153 l_rulv_rec.std_template_yn := 'N';
20154 l_rulv_rec.warn_yn := 'N';
20155
20156 END IF;
20157
20158 create_rule_group_and_rule(
20159 x_return_status => x_return_status,
20160 x_msg_count => x_msg_count,
20161 x_msg_data => x_msg_data,
20162 p_rgp_id => l_rgp_id,
20163 p_rgpv_rec => l_rgpv_rec,
20164 p_rulv_rec => l_rulv_rec,
20165 x_rgpv_rec => x_rgpv_rec,
20166 x_rulv_rec => x_rulv_rec
20167 );
20168
20169 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20170 raise party_role_failed;
20171 END IF;
20172
20173 debug_message('------>Fee Rule: LAGRDT/LAGRNP processed');
20174 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20175 l_rgp_id := x_rgpv_rec.id;
20176 END IF;
20177
20178 IF (p_guarantor_type IS NOT NULL) THEN
20179
20180 l_progress := 'P1.4';
20181 get_rrd_id(
20182 x_return_status => x_return_status,
20183 p_rgd_code => 'LAGRDT',
20184 p_rle_code => 'GUARANTOR',
20185 x_rrd_id => x_rrd_id
20186 );
20187 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20188 okl_api.set_message(
20189 G_APP_NAME,
20190 G_GUARANTOR_SETUP_ERROR,
20191 'CONTRACT_NUM',
20192 p_contract_number
20193 );
20194 x_return_status := OKL_API.G_RET_STS_ERROR;
20195 RAISE party_role_failed;
20196 END IF;
20197
20198 l_rmpv_rec.rgp_id := x_rgpv_rec.id;
20199 l_rmpv_rec.cpl_id := x_cplv_rec.id;
20200 l_rmpv_rec.rrd_id := x_rrd_id;
20201 l_rmpv_rec.dnz_chr_id := p_chr_id;
20202
20203 okl_rule_pub.create_rg_mode_pty_role(
20204 p_api_version => 1.0,
20205 p_init_msg_list => OKL_API.G_FALSE,
20206 x_return_status => x_return_status,
20207 x_msg_count => x_msg_count,
20208 x_msg_data => x_msg_data,
20209 p_rmpv_rec => l_rmpv_rec,
20210 x_rmpv_rec => x_rmpv_rec
20211 );
20212 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20213 x_return_status := OKL_API.G_RET_STS_ERROR;
20214 raise party_role_failed;
20215 END IF;
20216
20217 debug_message('------>Guaraontor type processed');
20218
20219 END IF; -- guarantor_type
20220
20221 l_rulv_rec := NULL;
20222 IF (p_guarantee_type IS NOT NULL) THEN
20223
20224 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20225 l_rulv_rec.dnz_chr_id := p_chr_id;
20226 l_rulv_rec.rule_information1 := p_guarantee_type;
20227 l_rulv_rec.rule_information_category := 'LAGRNT';
20228 l_rulv_rec.std_template_yn := 'N';
20229 l_rulv_rec.warn_yn := 'N';
20230
20231 END IF; -- guarantee_type
20232
20233 IF (p_guaranteed_amount IS NOT NULL) THEN
20234
20235 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20236 l_rulv_rec.dnz_chr_id := p_chr_id;
20237 l_rulv_rec.rule_information2 := TO_CHAR(p_guaranteed_amount);
20238 l_rulv_rec.rule_information_category := 'LAGRNT';
20239 l_rulv_rec.std_template_yn := 'N';
20240 l_rulv_rec.warn_yn := 'N';
20241 END IF; -- guaranteed_amount
20242
20243 IF (p_guarantee_date IS NOT NULL) THEN
20244
20245 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20246 l_rulv_rec.dnz_chr_id := p_chr_id;
20247 l_rulv_rec.rule_information3 := get_canonicaL_date(p_guarantee_date);
20248 l_rulv_rec.rule_information_category := 'LAGRNT';
20249 l_rulv_rec.std_template_yn := 'N';
20250 l_rulv_rec.warn_yn := 'N';
20251
20252 END IF; -- guarantee_date
20253
20254 IF (p_guarantee_comment IS NOT NULL) THEN
20255
20256 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20257 l_rulv_rec.dnz_chr_id := p_chr_id;
20258 l_rulv_rec.rule_information4 := p_guarantee_comment;
20259 l_rulv_rec.rule_information_category := 'LAGRNT';
20260 l_rulv_rec.std_template_yn := 'N';
20261 l_rulv_rec.warn_yn := 'N';
20262
20263 END IF; -- guarantee_comment
20264
20265 create_rule_group_and_rule(
20266 x_return_status => x_return_status,
20267 x_msg_count => x_msg_count,
20268 x_msg_data => x_msg_data,
20269 p_rgp_id => l_rgp_id,
20270 p_rgpv_rec => l_rgpv_rec,
20271 p_rulv_rec => l_rulv_rec,
20272 x_rgpv_rec => x_rgpv_rec,
20273 x_rulv_rec => x_rulv_rec
20274 );
20275
20276 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20277 raise party_role_failed;
20278 END IF;
20279
20280 debug_message('------>Rule: LAGRDT/LAGRNT processed');
20281
20282 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20283 l_rgp_id := x_rgpv_rec.id;
20284 END IF;
20285
20286 END IF; -- guarantor_id
20287
20288 -- Create Vendor Billing info, if any
20289 IF (p_billable_vendor_id IS NOT NULL) THEN
20290 x_billable_vendor_id := p_billable_vendor_id;
20291 ELSIF
20292 (p_billable_vendor_name IS NOT NULL) THEN
20293 get_vendor_id (
20294 x_return_status => x_return_status,
20295 x_msg_count => x_msg_count,
20296 x_msg_data => x_msg_data,
20297 p_contract_number => p_contract_number,
20298 p_line_number => p_line_number,
20299 x_vendor_id => x_billable_vendor_id,
20300 p_vendor_name => p_billable_vendor_name
20301 );
20302 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20303 RAISE party_role_failed;
20304 END IF;
20305 END IF;
20306
20307 debug_message('------>Billable Vendor id: '||x_billable_vendor_id);
20308
20309 IF (x_billable_vendor_id IS NOT NULL) THEN
20310
20311 -- Create billing detail
20312 IF (x_billable_vendor_id <> x_asset_vendor_id) THEN
20313 okl_api.set_message(
20314 G_APP_NAME,
20315 G_BILL_VENDOR_INVALID,
20316 'CONTRACT_NUM',
20317 p_contract_number,
20318 'VENDOR',
20319 p_billable_vendor_id||', '||p_billable_vendor_name
20320 );
20321 x_return_status := OKL_API.G_RET_STS_ERROR;
20322 RAISE party_role_failed;
20323 END IF;
20324
20325 l_rgpv_rec := NULL;
20326 l_rgp_id := NULL;
20327 l_rgpv_rec.rgd_code := 'LAVENB';
20328 l_rgpv_rec.chr_id := p_chr_id;
20329 l_rgpv_rec.dnz_chr_id := p_chr_id;
20330 l_rgpv_rec.cle_id := NULL; -- always at header level
20331 l_rgpv_rec.rgp_type := 'KRG';
20332
20333 l_rulv_rec := NULL;
20334
20335 /* Check above , Rule migration impact
20336 IF (p_vend_as_customer_id IS NOT NULL
20337 OR
20338 p_vend_as_customer_number IS NOT NULL) THEN
20339
20340 OPEN customer_csr(p_vend_as_customer_number,
20341 p_vend_as_customer_id);
20342
20343 FETCH customer_csr INTO l_vend_cust_id;
20344 IF customer_csr%NOTFOUND THEN
20345 okl_api.set_message(
20346 G_APP_NAME,
20347 G_INVALID_VALUE,
20348 'CONTRACT_NUM',
20349 p_contract_number,
20350 'COL_NAME',
20351 'VENDOR AS CUSTOMER ACCOUNT',
20352 'COL_VALUE',
20353 p_vend_as_customer_id||', '||p_vend_as_customer_number
20354 );
20355 x_return_status := OKL_API.G_RET_STS_ERROR;
20356 RAISE party_role_failed;
20357 END IF;
20358
20359 CLOSE customer_csr;
20360 */
20361 IF (l_vend_cust_id IS NOT NULL) THEN
20362
20363 l_rulv_rec.jtot_object1_code := 'OKX_PARTY';
20364 l_rulv_rec.object1_id1 := TO_CHAR(l_vend_cust_id);
20365 l_rulv_rec.object1_id2 := '#';
20366 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20367 l_rulv_rec.dnz_chr_id := p_chr_id;
20368 l_rulv_rec.rule_information_category := 'LAVENC';
20369 l_rulv_rec.std_template_yn := 'N';
20370 l_rulv_rec.warn_yn := 'N';
20371
20372 create_rule_group_and_rule(
20373 x_return_status => x_return_status,
20374 x_msg_count => x_msg_count,
20375 x_msg_data => x_msg_data,
20376 p_rgp_id => l_rgp_id,
20377 p_rgpv_rec => l_rgpv_rec,
20378 p_rulv_rec => l_rulv_rec,
20379 x_rgpv_rec => x_rgpv_rec,
20380 x_rulv_rec => x_rulv_rec
20381 );
20382
20383 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20384 raise party_role_failed;
20385 END IF;
20386
20387 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20388 l_rgp_id := x_rgpv_rec.id;
20389 END IF;
20390 l_rulv_rec := NULL;
20391
20392 ELSE
20393 okl_api.set_message(
20394 G_APP_NAME,
20395 G_MISSING_VALUE,
20396 'CONTRACT_NUM',
20397 p_contract_number,
20398 'COL_NAME',
20399 'VENDOR AS CUSTOMER'
20400 );
20401 x_return_status := OKL_API.G_RET_STS_ERROR;
20402 RAISE party_role_failed;
20403 END IF;
20404
20405 /* Rule Migration
20406 IF (p_vend_as_cust_acc_id IS NOT NULL
20407 OR
20408 p_vend_as_cust_acc_number IS NOT NULL) THEN
20409
20410 get_customer_account_id(
20411 x_return_status => x_return_status,
20412 x_msg_count => x_msg_count,
20413 x_msg_data => x_msg_data,
20414 p_contract_number => p_contract_number,
20415 p_customer_id => l_vend_cust_id,
20416 p_customer_account_id => p_vend_as_cust_acc_id,
20417 p_customer_account_number => p_vend_as_cust_acc_number,
20418 x_customer_account_id => l_vend_cust_acc_id
20419 );
20420
20421 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20422 x_return_status := OKL_API.G_RET_STS_ERROR;
20423 raise party_role_failed;
20424 END IF;
20425
20426 debug_message('------>l_vend_cust_acc_id : '||l_vend_cust_acc_id);
20427
20428 l_rulv_rec.jtot_object1_code := 'OKX_CUSTACCT';
20429 l_rulv_rec.object1_id1 := TO_CHAR(l_vend_cust_acc_id);
20430 l_rulv_rec.object1_id2 := '#';
20431 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20432 l_rulv_rec.dnz_chr_id := p_chr_id;
20433 l_rulv_rec.rule_information_category := 'CAN';
20434 l_rulv_rec.std_template_yn := 'N';
20435 l_rulv_rec.warn_yn := 'N';
20436
20437 create_rule_group_and_rule(
20438 x_return_status => x_return_status,
20439 x_msg_count => x_msg_count,
20440 x_msg_data => x_msg_data,
20441 p_rgp_id => l_rgp_id,
20442 p_rgpv_rec => l_rgpv_rec,
20443 p_rulv_rec => l_rulv_rec,
20444 x_rgpv_rec => x_rgpv_rec,
20445 x_rulv_rec => x_rulv_rec
20446 );
20447
20448 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20449 raise party_role_failed;
20450 END IF;
20451
20452 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20453 l_rgp_id := x_rgpv_rec.id;
20454 END IF;
20455 l_rulv_rec := NULL;
20456 ELSE
20457 okl_api.set_message(
20458 G_APP_NAME,
20459 G_MISSING_VALUE,
20460 'CONTRACT_NUM',
20461 p_contract_number,
20462 'COL_NAME',
20463 'VENDOR AS CUSTOMER ACCOUNT'
20464 );
20465 x_return_status := OKL_API.G_RET_STS_ERROR;
20466 RAISE party_role_failed;
20467 END IF;
20468 */
20469
20470 /* Rule Migration
20471 IF (p_vend_bill_to_addr_id IS NOT NULL
20472 OR
20473 p_vend_bill_to_addr IS NOT NULL) THEN
20474 get_bill_to_address_id(
20475 x_return_status => x_return_status,
20476 x_msg_count => x_msg_count,
20477 x_msg_data => x_msg_data,
20478 p_contract_number => p_contract_number,
20479 p_auth_org_id => p_auth_org_id,
20480 p_bill_to_address_id => p_vend_bill_to_addr_id,
20481 p_bill_to_address => p_vend_bill_to_addr,
20482 p_customer_account_id => l_vend_cust_acc_id,
20483 x_bill_to_address_id => l_vend_bill_to_addr_id
20484 );
20485
20486 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20487 x_return_status := OKL_API.G_RET_STS_ERROR;
20488 raise party_role_failed;
20489 END IF;
20490
20491 debug_message('------>l_vend_bill_to_addr_id : '||l_vend_bill_to_addr_id);
20492 l_rulv_rec.jtot_object1_code := 'OKX_BILLTO';
20493 l_rulv_rec.object1_id1 := TO_CHAR(l_vend_bill_to_addr_id);
20494 l_rulv_rec.object1_id2 := '#';
20495 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20496 l_rulv_rec.dnz_chr_id := p_chr_id;
20497 l_rulv_rec.rule_information_category := 'BTO';
20498 l_rulv_rec.std_template_yn := 'N';
20499 l_rulv_rec.warn_yn := 'N';
20500
20501 create_rule_group_and_rule(
20502 x_return_status => x_return_status,
20503 x_msg_count => x_msg_count,
20504 x_msg_data => x_msg_data,
20505 p_rgp_id => l_rgp_id,
20506 p_rgpv_rec => l_rgpv_rec,
20507 p_rulv_rec => l_rulv_rec,
20508 x_rgpv_rec => x_rgpv_rec,
20509 x_rulv_rec => x_rulv_rec
20510 );
20511
20512 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20513 raise party_role_failed;
20514 END IF;
20515
20516 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20517 l_rgp_id := x_rgpv_rec.id;
20518 END IF;
20519 l_rulv_rec := NULL;
20520 ELSE
20521 okl_api.set_message(
20522 G_APP_NAME,
20523 G_MISSING_VALUE,
20524 'CONTRACT_NUM',
20525 p_contract_number,
20526 'COL_NAME',
20527 'VENDOR BILL TO ADDRESS'
20528 );
20529 x_return_status := OKL_API.G_RET_STS_ERROR;
20530 RAISE party_role_failed;
20531 END IF;
20532 */
20533
20534 IF (p_vend_payment_method_id IS NOT NULL
20535 OR
20536 p_vend_payment_method IS NOT NULL) THEN
20537 get_payment_method_id(
20538 x_return_status => x_return_status,
20539 x_msg_count => x_msg_count,
20540 x_msg_data => x_msg_data,
20541 p_contract_number => p_contract_number,
20542 p_customer_account_id => l_vend_cust_acc_id,
20543 p_bill_to_address_id => l_vend_bilL_to_addr_id,
20544 p_payment_method_id => p_vend_payment_method_id,
20545 p_payment_method => p_vend_payment_method,
20546 x_payment_method_id => l_vend_payment_method_id
20547 );
20548
20549 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20550 x_return_status := OKL_API.G_RET_STS_ERROR;
20551 raise party_role_failed;
20552 END IF;
20553
20554 IF (l_vend_payment_method_id IS NOT NULL) THEN
20555 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20556 l_rulv_rec.dnz_chr_id := p_chr_id;
20557 l_rulv_rec.jtot_object1_code := 'OKX_RCPTMTH';
20558 l_rulv_rec.object1_id1 := TO_CHAR(l_vend_payment_method_id);
20559 l_rulv_rec.object1_id2 := '#';
20560 l_rulv_rec.rule_information_category := 'LAPMTH';
20561 l_rulv_rec.std_template_yn := 'N';
20562 l_rulv_rec.warn_yn := 'N';
20563 END IF;
20564
20565 --debug_message('Payment Method: '||l_vend_payment_method_id);
20566
20567 create_rule_group_and_rule(
20568 x_return_status => x_return_status,
20569 x_msg_count => x_msg_count,
20570 x_msg_data => x_msg_data,
20571 p_rgp_id => l_rgp_id,
20572 p_rgpv_rec => l_rgpv_rec,
20573 p_rulv_rec => l_rulv_rec,
20574 x_rgpv_rec => x_rgpv_rec,
20575 x_rulv_rec => x_rulv_rec
20576 );
20577
20578 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20579 x_return_status := OKL_API.G_RET_STS_ERROR;
20580 raise party_role_failed;
20581 END IF;
20582
20583 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20584 l_rgp_id := x_rgpv_rec.id;
20585 END IF;
20586
20587 l_rulv_rec := NULL;
20588
20589 END IF;
20590
20591 IF (p_vend_bank_acc_id IS NOT NULL
20592 OR
20593 p_vend_bank_acc_number IS NOT NULL) THEN
20594 get_bank_account_id(
20595 x_return_status => x_return_status,
20596 x_msg_count => x_msg_count,
20597 x_msg_data => x_msg_data,
20598 p_contract_number => p_contract_number,
20599 p_auth_org_id => p_auth_org_id,
20600 p_bank_account_id => p_vend_bank_acc_id,
20601 p_bank_account_number => p_vend_bank_acc_number,
20602 p_customer_account_id => l_vend_cust_acc_id,
20603 p_cust_site_id => l_vend_bill_to_addr_id,
20604 x_bank_account_id => l_vend_bank_acc_id
20605 );
20606 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20607 x_return_status := OKL_API.G_RET_STS_ERROR;
20608 raise party_role_failed;
20609 END IF;
20610
20611 IF (l_vend_bank_acc_id IS NOT NULL) THEN
20612 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20613 l_rulv_rec.dnz_chr_id := p_chr_id;
20614 l_rulv_rec.jtot_object1_code := 'OKX_CUSTBKAC';
20615 l_rulv_rec.object1_id1 := TO_CHAR(l_vend_bank_acc_id);
20616 l_rulv_rec.object1_id2 := '#';
20617 l_rulv_rec.rule_information_category := 'LABACC';
20618 l_rulv_rec.std_template_yn := 'N';
20619 l_rulv_rec.warn_yn := 'N';
20620 END IF;
20621
20622 debug_message('Bank Acc: '|| l_vend_bank_acc_id);
20623
20624 create_rule_group_and_rule(
20625 x_return_status => x_return_status,
20626 x_msg_count => x_msg_count,
20627 x_msg_data => x_msg_data,
20628 p_rgp_id => l_rgp_id,
20629 p_rgpv_rec => l_rgpv_rec,
20630 p_rulv_rec => l_rulv_rec,
20631 x_rgpv_rec => x_rgpv_rec,
20632 x_rulv_rec => x_rulv_rec
20633 );
20634
20635 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20636 x_return_status := OKL_API.G_RET_STS_ERROR;
20637 raise party_role_failed;
20638 END IF;
20639
20640 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20641 l_rgp_id := x_rgpv_rec.id;
20642 END IF;
20643 l_rulv_rec := NULL;
20644
20645 END IF; -- vend_bank_account
20646
20647 IF (p_vend_invoice_format_id IS NOT NULL
20648 OR
20649 p_vend_invoice_format_code IS NOT NULL) THEN
20650 get_invoice_format_id(
20651 x_return_status => x_return_status,
20652 x_msg_count => x_msg_count,
20653 x_msg_data => x_msg_data,
20654 p_contract_number => p_contract_number,
20655 p_invoice_format_id => p_vend_invoice_format_id,
20656 p_invoice_format_code => p_vend_invoice_format_code,
20657 x_invoice_format_id => l_vend_invoice_format_id,
20658 x_invoice_format_name => l_vend_invoice_format_name
20659 );
20660
20661 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20662 x_return_status := OKL_API.G_RET_STS_ERROR;
20663 raise party_role_failed;
20664 END IF;
20665
20666 debug_message('Invoice Format: '||l_vend_invoice_format_name);
20667
20668 IF (l_vend_invoice_format_name IS NOT NULL) THEN
20669 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20670 l_rulv_rec.dnz_chr_id := p_chr_id;
20671 l_rulv_rec.rule_information1 := l_vend_invoice_format_name;
20672 l_rulv_rec.rule_information_category := 'LAINVD';
20673 l_rulv_rec.std_template_yn := 'N';
20674 l_rulv_rec.warn_yn := 'N';
20675 END IF;
20676 END IF;
20677
20678 IF (p_vend_review_invoice_flag IS NOT NULL) THEN
20679 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20680 l_rulv_rec.dnz_chr_id := p_chr_id;
20681 l_rulv_rec.rule_information4 := p_vend_review_invoice_flag;
20682 l_rulv_rec.rule_information_category := 'LAINVD';
20683 l_rulv_rec.std_template_yn := 'N';
20684 l_rulv_rec.warn_yn := 'N';
20685 END IF;
20686
20687 create_rule_group_and_rule(
20688 x_return_status => x_return_status,
20689 x_msg_count => x_msg_count,
20690 x_msg_data => x_msg_data,
20691 p_rgp_id => l_rgp_id,
20692 p_rgpv_rec => l_rgpv_rec,
20693 p_rulv_rec => l_rulv_rec,
20694 x_rgpv_rec => x_rgpv_rec,
20695 x_rulv_rec => x_rulv_rec
20696 );
20697
20698 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20699 x_return_status := OKL_API.G_RET_STS_ERROR;
20700 raise party_role_failed;
20701 END IF;
20702
20703 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20704 l_rgp_id := x_rgpv_rec.id;
20705 END IF;
20706 l_rulv_rec := NULL;
20707
20708 IF (p_vend_reason_for_inv_review IS NOT NULL) THEN
20709 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20710 l_rulv_rec.dnz_chr_id := p_chr_id;
20711 l_rulv_rec.rule_information1 := p_vend_reason_for_inv_review;
20712 l_rulv_rec.rule_information_category := 'LAINPR';
20713 l_rulv_rec.std_template_yn := 'N';
20714 l_rulv_rec.warn_yn := 'N';
20715 END IF;
20716
20717 IF (p_vend_inv_review_until_date IS NOT NULL) THEN
20718 l_rulv_rec.rgp_id := x_rgpv_rec.id;
20719 l_rulv_rec.dnz_chr_id := p_chr_id;
20720 l_rulv_rec.rule_information2 := get_canonical_date(p_vend_inv_review_until_date);
20721 l_rulv_rec.rule_information_category := 'LAINPR';
20722 l_rulv_rec.std_template_yn := 'N';
20723 l_rulv_rec.warn_yn := 'N';
20724 END IF;
20725
20726 create_rule_group_and_rule(
20727 x_return_status => x_return_status,
20728 x_msg_count => x_msg_count,
20729 x_msg_data => x_msg_data,
20730 p_rgp_id => l_rgp_id,
20731 p_rgpv_rec => l_rgpv_rec,
20732 p_rulv_rec => l_rulv_rec,
20733 x_rgpv_rec => x_rgpv_rec,
20734 x_rulv_rec => x_rulv_rec
20735 );
20736
20737 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20738 x_return_status := OKL_API.G_RET_STS_ERROR;
20739 raise party_role_failed;
20740 END IF;
20741
20742 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
20743 l_rgp_id := x_rgpv_rec.id;
20744 END IF;
20745 l_rulv_rec := NULL;
20746
20747 IF (l_rgp_id IS NOT NULL) THEN
20748 get_rrd_id(
20749 x_return_status => x_return_status,
20750 p_rgd_code => 'LAVENB',
20751 p_rle_code => 'OKL_VENDOR',
20752 x_rrd_id => x_rrd_id
20753 );
20754 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20755 okl_api.set_message(
20756 G_APP_NAME,
20757 G_GUARANTOR_SETUP_ERROR,
20758 'CONTRACT_NUM',
20759 p_contract_number
20760 );
20761 x_return_status := OKL_API.G_RET_STS_ERROR;
20762 RAISE party_role_failed;
20763 END IF;
20764
20765 p_cplv_rec := NULL;
20766 p_cplv_rec.chr_id := p_chr_id;
20767 p_cplv_rec.dnz_chr_id := p_chr_id;
20768 p_cplv_rec.cle_id := NULL; -- always at header level
20769 p_cplv_rec.object1_id1 := TO_CHAR(x_billable_vendor_id);
20770 p_cplv_rec.object1_id2 := '#';
20771 p_cplv_rec.jtot_object1_code := 'OKX_PARTY';
20772 p_cplv_rec.rle_code := 'OKL_VENDOR';
20773
20774 p_cplv_rec.bill_to_site_use_id := l_vend_bill_to_addr_id;
20775 p_cplv_rec.cust_acct_id := l_vend_cust_acc_id;
20776
20777 debug_message('------>Vendor Bill to :'||l_vend_bill_to_addr_id);
20778 debug_message('------>Vendor Cust Acct :'||l_vend_cust_acc_id);
20779
20780 l_rmpv_rec.rgp_id := l_rgp_id;
20781 l_rmpv_rec.cpl_id := x_cplv_rec.id;
20782 l_rmpv_rec.rrd_id := x_rrd_id;
20783 l_rmpv_rec.dnz_chr_id := p_chr_id;
20784
20785 okl_rule_pub.create_rg_mode_pty_role(
20786 p_api_version => 1.0,
20787 p_init_msg_list => OKL_API.G_FALSE,
20788 x_return_status => x_return_status,
20789 x_msg_count => x_msg_count,
20790 x_msg_data => x_msg_data,
20791 p_rmpv_rec => l_rmpv_rec,
20792 x_rmpv_rec => x_rmpv_rec
20793 );
20794 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20795 x_return_status := OKL_API.G_RET_STS_ERROR;
20796 raise party_role_failed;
20797 END IF;
20798 END IF;
20799 END IF; -- Billable Vendor process
20800
20801
20802 -- Assume that the existence of pay thru is driven by vendor pay site information
20803 IF (p_line_number is NOT NULL) THEN
20804 debug_message ('Processing passthrough for line number : '||p_line_number);
20805 IF (g_base_pmnt_hdr.id IS NOT NULL) THEN
20806 IF (p_line_type in ('SERVICE', 'FEE')) THEN
20807 IF ((p_pth_base_vendor_site_code IS NOT NULL) OR
20808 (p_pth_base_vendor_site_id IS NOT NULL)) THEN
20809
20810 IF (p_line_type = 'SERVICE') THEN
20811 l_base_pmnt_dtls_rec.vendor_id := x_service_vendor_id;
20812 ELSIF (p_line_type = 'FEE') THEN
20813 l_base_pmnt_dtls_rec.vendor_id := x_fees_vendor_id;
20814 END IF;
20815 l_base_pmnt_dtls_rec.cpl_id := x_cplv_rec.id;
20816 l_base_pmnt_dtls_rec.pay_site_id := get_vendor_paysite( x_return_status => x_return_status,
20817 p_contract_number => p_contract_number,
20818 p_line_number => p_line_number,
20819 p_vendor_paysite_name => p_pth_base_vendor_site_code,
20820 p_vendor_paysite_id => p_pth_base_vendor_site_id
20821 );
20822 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20823 raise party_role_failed;
20824 END IF;
20825
20826 IF (p_pth_base_pmnt_term_code is NOT NULL OR
20827 p_pth_base_pmnt_term_id IS NOT NULL ) THEN
20828 l_base_pmnt_dtls_rec.payment_term_id := get_payment_term(
20829 x_return_status => x_return_status,
20830 p_contract_number => p_contract_number,
20831 p_line_number => p_line_number,
20832 p_payment_term => p_pth_base_pmnt_term_code,
20833 p_payment_term_id => p_pth_base_pmnt_term_id
20834 );
20835
20836 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20837 raise party_role_failed;
20838 END IF;
20839
20840 ELSE
20841 okl_api.set_message(
20842 G_APP_NAME,
20843 G_MISSING_VALUE,
20844 'CONTRACT_NUM',
20845 p_contract_number,
20846 'COL_NAME',
20847 'PASSTHROUGH PAYMENT TERM'
20848 );
20849 END IF;
20850 l_paygroup_code := NULL;
20851 IF (p_pth_base_paygroup_code IS NULL) THEN
20852 l_paygroup_code := get_vendor_paygroup(
20853 x_return_status => x_return_status,
20854 p_contract_number => p_contract_number,
20855 p_line_number => p_line_number,
20856 p_auth_org_id => p_auth_org_id,
20857 p_vendor_paysite_id => p_pth_base_vendor_site_id
20858 );
20859
20860 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
20861 raise party_role_failed;
20862 END IF;
20863
20864 IF (l_paygroup_code IS NOT NULL) THEN
20865 l_base_pmnt_dtls_rec.pay_group_code := l_paygroup_code;
20866 ELSE
20867 okl_api.set_message(
20868 G_APP_NAME,
20869 G_MISSING_VALUE_FOR_LINE,
20870 'CONTRACT_NUM',
20871 p_contract_number||'/'||TO_CHAR(p_line_number),
20872 'COL_NAME',
20873 'PTH_BASE_PAYGROUP_CODE',
20874 'LINE',
20875 p_line_type
20876 );
20877 raise party_role_failed;
20878 END IF;
20879
20880
20881 ELSE
20882 l_base_pmnt_dtls_rec.pay_group_code := p_pth_base_paygroup_code;
20883 END IF;
20884
20885 IF (p_pth_base_pmnt_basis is NULL) THEN
20886 l_base_pmnt_dtls_rec.payment_basis := 'PROCESS_DATE';
20887 ELSE
20888 OPEN pmnt_basis_csr(p_pth_base_pmnt_basis);
20889 FETCH pmnt_basis_csr INTO rec_exists_yn;
20890 IF (pmnt_basis_csr%NOTFOUND) THEN
20891 okl_api.set_message(
20892 G_APP_NAME,
20893 G_INVALID_VALUE,
20894 'CONTRACT_NUM',
20895 p_contract_number||'/'||TO_CHAR(p_line_number),
20896 'COL_NAME',
20897 'PTH_BASE_PMNT_BASIS',
20898 'COL_VALUE',
20899 p_pth_base_pmnt_basis
20900 );
20901 CLOSE pmnt_basis_csr;
20902 raise party_role_failed;
20903 ELSE
20904 l_base_pmnt_dtls_rec.payment_basis := p_pth_base_pmnt_basis;
20905 CLOSE pmnt_basis_csr;
20906 END IF;
20907 END IF;
20908
20909 IF ((p_pth_base_pmnt_basis = 'SCHEDULED') AND
20910 (p_pth_base_pmnt_start_date IS NULL)) THEN
20911 okl_api.set_message(
20912 G_APP_NAME,
20913 G_MISSING_VALUE_FOR_LINE,
20914 'CONTRACT_NUM',
20915 p_contract_number||'/'||TO_CHAR(p_line_number),
20916 'COL_NAME',
20917 'PTH_BASE_PMNT_START_DATE',
20918 'LINE',
20919 p_line_type
20920 );
20921 raise party_role_failed;
20922 ELSE
20923 l_base_pmnt_dtls_rec.payment_start_date := p_pth_base_pmnt_start_date;
20924 END IF;
20925
20926 IF ((p_pth_base_pmnt_basis = 'SCHEDULED') AND
20927 (p_pth_base_pmnt_freq IS NULL)) THEN
20928 okl_api.set_message(
20929 G_APP_NAME,
20930 G_MISSING_VALUE_FOR_LINE,
20931 'CONTRACT_NUM',
20932 p_contract_number||'/'||TO_CHAR(p_line_number),
20933 'COL_NAME',
20934 'PTH_BASE_PMNT_FREQ',
20935 'LINE',
20936 p_line_type
20937 );
20938 raise party_role_failed;
20939 ELSE
20940 l_base_pmnt_dtls_rec.payment_frequency := p_pth_base_pmnt_freq;
20941 END IF;
20942 l_base_pmnt_dtls_rec.payment_hdr_id := g_base_pmnt_hdr.id;
20943 l_base_pmnt_dtls_rec.payment_method_code := p_pth_base_pmnt_method_code;
20944
20945 IF ((p_pth_base_pmnt_basis = 'PROCESS_DATE') AND
20946 (p_pth_base_pmnt_remit_days IS NULL)) THEN
20947 okl_api.set_message(
20948 G_APP_NAME,
20949 G_MISSING_VALUE_FOR_LINE,
20950 'CONTRACT_NUM',
20951 p_contract_number||'/'||TO_CHAR(p_line_number),
20952 'COL_NAME',
20953 'PTH_BASE_PMNT_REMIT_DAYS',
20954 'LINE',
20955 p_line_type
20956 );
20957 raise party_role_failed;
20958 ELSE
20959 l_base_pmnt_dtls_rec.remit_days := p_pth_base_pmnt_remit_days;
20960 END IF;
20961
20962 IF (p_pth_base_disb_basis is NOT NULL) THEN
20963 OPEN disb_basis_csr(p_pth_base_disb_basis);
20964 FETCH disb_basis_csr INTO rec_exists_yn;
20965 IF (disb_basis_csr%NOTFOUND) THEN
20966 okl_api.set_message(
20967 G_APP_NAME,
20968 G_INVALID_VALUE,
20969 'CONTRACT_NUM',
20970 p_contract_number||'/'||TO_CHAR(p_line_number),
20971 'COL_NAME',
20972 'PTH_BASE_DISB_BASIS',
20973 'COL_VALUE',
20974 p_pth_base_disb_basis
20975 );
20976 CLOSE disb_basis_csr;
20977 raise party_role_failed;
20978 ELSE
20979 l_base_pmnt_dtls_rec.disbursement_basis := p_pth_base_disb_basis;
20980 CLOSE disb_basis_csr;
20981 END IF;
20982 ELSE
20983 okl_api.set_message(
20984 G_APP_NAME,
20985 G_MISSING_VALUE_FOR_LINE,
20986 'CONTRACT_NUM',
20987 p_contract_number||'/'||TO_CHAR(p_line_number),
20988 'COL_NAME',
20989 'PTH_BASE_DISB_BASIS',
20990 'LINE',
20991 p_line_type
20992 );
20993 END IF;
20994
20995 IF ((p_pth_base_disb_basis = 'AMOUNT')) THEN
20996 IF (p_pth_base_disb_fixed_amount IS NULL) THEN
20997 okl_api.set_message(
20998 G_APP_NAME,
20999 G_MISSING_VALUE_FOR_LINE,
21000 'CONTRACT_NUM',
21001 p_contract_number||'/'||TO_CHAR(p_line_number),
21002 'COL_NAME',
21003 'PTH_BASE_DISB_FIXED_AMOUNT',
21004 'LINE',
21005 p_line_type
21006 );
21007 raise party_role_failed;
21008 ELSE
21009 l_base_pmnt_dtls_rec.disbursement_fixed_amount := p_pth_base_disb_fixed_amount;
21010 END IF;
21011 END IF;
21012
21013 IF ((p_pth_base_disb_basis = 'PERCENT')) THEN
21014 IF (p_pth_base_disb_pct IS NULL) THEN
21015 okl_api.set_message(
21016 G_APP_NAME,
21017 G_MISSING_VALUE_FOR_LINE,
21018 'CONTRACT_NUM',
21019 p_contract_number||'/'||TO_CHAR(p_line_number),
21020 'COL_NAME',
21021 'PTH_BASE_DISB_PCT',
21022 'LINE',
21023 p_line_type
21024 );
21025 raise party_role_failed;
21026 ELSE
21027 l_base_pmnt_dtls_rec.disbursement_percent := p_pth_base_disb_pct;
21028 END IF;
21029 END IF;
21030
21031 IF (p_pth_base_proc_fee_basis is NOT NULL) THEN
21032 OPEN proc_fee_basis_csr(p_pth_base_proc_fee_basis);
21033 FETCH proc_fee_basis_csr INTO rec_exists_yn;
21034 IF (proc_fee_basis_csr%NOTFOUND) THEN
21035 okl_api.set_message(
21036 G_APP_NAME,
21037 G_INVALID_VALUE,
21038 'CONTRACT_NUM',
21039 p_contract_number||'/'||TO_CHAR(p_line_number),
21040 'COL_NAME',
21041 'PTH_BASE_PROC_FEE_BASIS',
21042 'COL_VALUE',
21043 p_pth_base_proc_fee_basis
21044 );
21045 CLOSE proc_fee_basis_csr;
21046 raise party_role_failed;
21047 ELSE
21048 l_base_pmnt_dtls_rec.processing_fee_basis := p_pth_base_proc_fee_basis;
21049 CLOSE proc_fee_basis_csr;
21050 END IF;
21051 END IF;
21052
21053 IF ((p_pth_base_proc_fee_basis = 'AMOUNT')) THEN
21054 IF (p_pth_base_proc_fee_fixed_amt IS NULL) THEN
21055 okl_api.set_message(
21056 G_APP_NAME,
21057 G_MISSING_VALUE_FOR_LINE,
21058 'CONTRACT_NUM',
21059 p_contract_number||'/'||TO_CHAR(p_line_number),
21060 'COL_NAME',
21061 'PTH_BASE_PROC_FEE_FIXED_AMT',
21062 'LINE',
21063 p_line_type
21064 );
21065 raise party_role_failed;
21066 ELSE
21067 l_base_pmnt_dtls_rec.processing_fee_fixed_amount := p_pth_base_proc_fee_fixed_amt;
21068 END IF;
21069 END IF;
21070
21071 IF ((p_pth_base_proc_fee_basis = 'PERCENT')) THEN
21072 IF (p_pth_base_proc_pct IS NULL) THEN
21073 okl_api.set_message(
21074 G_APP_NAME,
21075 G_MISSING_VALUE_FOR_LINE,
21076 'CONTRACT_NUM',
21077 p_contract_number||'/'||TO_CHAR(p_line_number),
21078 'COL_NAME',
21079 'PTH_BASE_PROC_PCT',
21080 'LINE',
21081 p_line_type
21082 );
21083 raise party_role_failed;
21084 ELSE
21085 l_base_pmnt_dtls_rec.processing_fee_percent := p_pth_base_proc_pct;
21086 END IF;
21087 END IF;
21088 l_counter := l_counter + 1;
21089 l_pmnt_dtls_tbl_in(l_counter) := l_base_pmnt_dtls_rec;
21090
21091 END IF;
21092 END IF;
21093 END IF;
21094
21095
21096 IF (g_evg_pmnt_hdr.id IS NOT NULL) THEN
21097 IF (p_line_type in ('ASSET', 'SERVICE', 'FEE')) THEN
21098 IF ((p_pth_evg_vendor_site_code IS NOT NULL) OR
21099 (p_pth_evg_vendor_site_id IS NOT NULL)) THEN
21100 IF (p_line_type = 'ASSET') THEN
21101 l_evg_pmnt_dtls_rec.vendor_id := x_asset_vendor_id;
21102 ELSIF (p_line_type = 'SERVICE') THEN
21103 l_evg_pmnt_dtls_rec.vendor_id := x_service_vendor_id;
21104 ELSE
21105 l_evg_pmnt_dtls_rec.vendor_id := x_fees_vendor_id;
21106 END IF;
21107 l_evg_pmnt_dtls_rec.cpl_id := x_cplv_rec.id;
21108 l_evg_pmnt_dtls_rec.pay_site_id := get_vendor_paysite( x_return_status => x_return_status,
21109 p_contract_number => p_contract_number,
21110 p_line_number => p_line_number,
21111 p_vendor_paysite_name => p_pth_evg_vendor_site_code,
21112 p_vendor_paysite_id => p_pth_evg_vendor_site_id
21113 );
21114 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21115 raise party_role_failed;
21116 END IF;
21117
21118 IF (p_pth_evg_pmnt_term_code is NOT NULL OR
21119 p_pth_evg_pmnt_term_id IS NOT NULL ) THEN
21120 l_evg_pmnt_dtls_rec.payment_term_id := get_payment_term(
21121 x_return_status => x_return_status,
21122 p_contract_number => p_contract_number,
21123 p_line_number => p_line_number,
21124 p_payment_term => p_pth_evg_pmnt_term_code,
21125 p_payment_term_id => p_pth_evg_pmnt_term_id
21126 );
21127
21128 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21129 raise party_role_failed;
21130 END IF;
21131
21132 ELSE
21133 okl_api.set_message(
21134 G_APP_NAME,
21135 G_MISSING_VALUE,
21136 'CONTRACT_NUM',
21137 p_contract_number,
21138 'COL_NAME',
21139 'PTH_EVG_PMNT_TERM_CODE'
21140 );
21141 END IF;
21142 l_paygroup_code := NULL;
21143 IF (p_pth_evg_paygroup_code IS NULL) THEN
21144 l_paygroup_code := get_vendor_paygroup(
21145 x_return_status => x_return_status,
21146 p_contract_number => p_contract_number,
21147 p_line_number => p_line_number,
21148 p_auth_org_id => p_auth_org_id,
21149 p_vendor_paysite_id => p_pth_evg_vendor_site_id
21150 );
21151
21152 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21153 raise party_role_failed;
21154 END IF;
21155
21156 IF (l_paygroup_code IS NOT NULL) THEN
21157 l_evg_pmnt_dtls_rec.pay_group_code := l_paygroup_code;
21158 ELSE
21159 okl_api.set_message(
21160 G_APP_NAME,
21161 G_MISSING_VALUE_FOR_LINE,
21162 'CONTRACT_NUM',
21163 p_contract_number||'/'||TO_CHAR(p_line_number),
21164 'COL_NAME',
21165 'PTH_EVG_PAYGROUP_CODE',
21166 'LINE',
21167 p_line_type
21168 );
21169 raise party_role_failed;
21170 END IF;
21171 ELSE
21172 l_evg_pmnt_dtls_rec.pay_group_code := p_pth_evg_paygroup_code;
21173 END IF;
21174 IF (p_pth_evg_pmnt_basis is NULL) THEN
21175 l_evg_pmnt_dtls_rec.payment_basis := 'PROCESS_DATE';
21176 ELSE
21177 OPEN pmnt_basis_csr(p_pth_evg_pmnt_basis);
21178 FETCH pmnt_basis_csr INTO rec_exists_yn;
21179 IF (pmnt_basis_csr%NOTFOUND) THEN
21180 okl_api.set_message(
21181 G_APP_NAME,
21182 G_INVALID_VALUE,
21183 'CONTRACT_NUM',
21184 p_contract_number||'/'||TO_CHAR(p_line_number),
21185 'COL_NAME',
21186 'PTH_EVG_PMNT_BASIS',
21187 'COL_VALUE',
21188 p_pth_evg_pmnt_basis
21189 );
21190 CLOSE pmnt_basis_csr;
21191 raise party_role_failed;
21192 ELSE
21193 l_evg_pmnt_dtls_rec.payment_basis := p_pth_evg_pmnt_basis;
21194 CLOSE pmnt_basis_csr;
21195 END IF;
21196 END IF;
21197 l_evg_pmnt_dtls_rec.payment_hdr_id := g_evg_pmnt_hdr.id;
21198 l_evg_pmnt_dtls_rec.payment_method_code := p_pth_evg_pmnt_method_code;
21199
21200 IF ((p_pth_evg_pmnt_basis = 'PROCESS_DATE') AND
21201 (p_pth_evg_pmnt_remit_days IS NULL)) THEN
21202 okl_api.set_message(
21203 G_APP_NAME,
21204 G_MISSING_VALUE_FOR_LINE,
21205 'CONTRACT_NUM',
21206 p_contract_number||'/'||TO_CHAR(p_line_number),
21207 'COL_NAME',
21208 'PTH_EVG_PMNT_REMIT_DAYS',
21209 'LINE',
21210 p_line_type
21211 );
21212 raise party_role_failed;
21213 ELSE
21214 l_evg_pmnt_dtls_rec.remit_days := p_pth_evg_pmnt_remit_days;
21215 END IF;
21216 IF (p_pth_evg_disb_basis is NOT NULL) THEN
21217 OPEN disb_basis_csr(p_pth_evg_disb_basis);
21218 FETCH disb_basis_csr INTO rec_exists_yn;
21219 IF (disb_basis_csr%NOTFOUND) THEN
21220 okl_api.set_message(
21221 G_APP_NAME,
21222 G_INVALID_VALUE,
21223 'CONTRACT_NUM',
21224 p_contract_number||'/'||TO_CHAR(p_line_number),
21225 'COL_NAME',
21226 'PTH_EVG_DISB_BASIS',
21227 'COL_VALUE',
21228 p_pth_evg_disb_basis
21229 );
21230 CLOSE disb_basis_csr;
21231 raise party_role_failed;
21232 ELSE
21233 l_evg_pmnt_dtls_rec.disbursement_basis := p_pth_evg_disb_basis;
21234 CLOSE disb_basis_csr;
21235 END IF;
21236 ELSE
21237 okl_api.set_message(
21238 G_APP_NAME,
21239 G_MISSING_VALUE_FOR_LINE,
21240 'CONTRACT_NUM',
21241 p_contract_number||'/'||TO_CHAR(p_line_number),
21242 'COL_NAME',
21243 'PTH_EVG_DISB_BASIS',
21244 'LINE',
21245 p_line_type
21246 );
21247 END IF;
21248 IF ((p_pth_evg_disb_basis = 'AMOUNT')) THEN
21249 IF (p_pth_evg_disb_fixed_amount IS NULL) THEN
21250 okl_api.set_message(
21251 G_APP_NAME,
21252 G_MISSING_VALUE_FOR_LINE,
21253 'CONTRACT_NUM',
21254 p_contract_number||'/'||TO_CHAR(p_line_number),
21255 'COL_NAME',
21256 'PTH_EVG_DISB_FIXED_AMOUNT',
21257 'LINE',
21258 p_line_type
21259 );
21260 raise party_role_failed;
21261 ELSE
21262 l_evg_pmnt_dtls_rec.disbursement_fixed_amount := p_pth_evg_disb_fixed_amount;
21263 END IF;
21264 END IF;
21265 IF ((p_pth_evg_disb_basis = 'PERCENT')) THEN
21266 IF (p_pth_evg_disb_pct IS NULL) THEN
21267 okl_api.set_message(
21268 G_APP_NAME,
21269 G_MISSING_VALUE_FOR_LINE,
21270 'CONTRACT_NUM',
21271 p_contract_number||'/'||TO_CHAR(p_line_number),
21272 'COL_NAME',
21273 'PTH_EVG_DISB_PCT',
21274 'LINE',
21275 p_line_type
21276 );
21277 raise party_role_failed;
21278 ELSE
21279 l_evg_pmnt_dtls_rec.disbursement_percent := p_pth_evg_disb_pct;
21280 END IF;
21281 END IF;
21282
21283 IF (p_pth_evg_proc_fee_basis is NOT NULL) THEN
21284 OPEN proc_fee_basis_csr(p_pth_evg_proc_fee_basis);
21285 FETCH proc_fee_basis_csr INTO rec_exists_yn;
21286 IF (proc_fee_basis_csr%NOTFOUND) THEN
21287 okl_api.set_message(
21288 G_APP_NAME,
21289 G_INVALID_VALUE,
21290 'CONTRACT_NUM',
21291 p_contract_number||'/'||TO_CHAR(p_line_number),
21292 'COL_NAME',
21293 'PTH_EVG_PROC_FEE_BASIS',
21294 'COL_VALUE',
21295 p_pth_evg_proc_fee_basis
21296 );
21297 CLOSE proc_fee_basis_csr;
21298 raise party_role_failed;
21299 ELSE
21300 l_evg_pmnt_dtls_rec.processing_fee_basis := p_pth_evg_proc_fee_basis;
21301 CLOSE proc_fee_basis_csr;
21302 END IF;
21303 END IF;
21304 IF ((p_pth_evg_proc_fee_basis = 'AMOUNT')) THEN
21305 IF (p_pth_evg_proc_fee_fixed_amt IS NULL) THEN
21306 okl_api.set_message(
21307 G_APP_NAME,
21308 G_MISSING_VALUE_FOR_LINE,
21309 'CONTRACT_NUM',
21310 p_contract_number||'/'||TO_CHAR(p_line_number),
21311 'COL_NAME',
21312 'PTH_EVG_PROC_FEE_FIXED_AMT',
21313 'LINE',
21314 p_line_type
21315 );
21316 raise party_role_failed;
21317 ELSE
21318 l_evg_pmnt_dtls_rec.processing_fee_fixed_amount := p_pth_evg_proc_fee_fixed_amt;
21319 END IF;
21320 END IF;
21321
21322 IF ((p_pth_evg_proc_fee_basis = 'PERCENT')) THEN
21323 IF (p_pth_evg_proc_pct IS NULL) THEN
21324 okl_api.set_message(
21325 G_APP_NAME,
21326 G_MISSING_VALUE_FOR_LINE,
21327 'CONTRACT_NUM',
21328 p_contract_number||'/'||TO_CHAR(p_line_number),
21329 'COL_NAME',
21330 'PTH_EVG_PROC_PCT',
21331 'LINE',
21332 p_line_type
21333 );
21334 raise party_role_failed;
21335 ELSE
21336 l_evg_pmnt_dtls_rec.processing_fee_percent := p_pth_evg_proc_pct;
21337 END IF;
21338 END IF;
21339 l_counter := l_counter + 1;
21340 l_pmnt_dtls_tbl_in(l_counter) := l_evg_pmnt_dtls_rec;
21341
21342 END IF;
21343 END IF;
21344 END IF;
21345 END IF;
21346 debug_message ('No. of records in payment dtls table : '||l_pmnt_dtls_tbl_in.count);
21347
21348 IF (l_pmnt_dtls_tbl_in.COUNT > 0) THEN
21349 okl_party_payments_pvt.create_party_payment_dtls(
21350 p_api_version => 1.0,
21351 x_return_status => x_return_status,
21352 x_msg_count => x_msg_count,
21353 x_msg_data => x_msg_data,
21354 p_ppydv_tbl => l_pmnt_dtls_tbl_in,
21355 x_ppydv_tbl => l_pmnt_dtls_tbl_out
21356 );
21357
21358 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21359 x_return_status := OKL_API.G_RET_STS_ERROR;
21360 RAISE party_role_failed;
21361 END IF;
21362 END IF;
21363
21364 -- Create evergreen payment dtls if header exists
21365 debug_message('Create evergreen payment dtls if header exists');
21366 debug_message('Cont Evg pmnt hdr id: '||g_evg_cont_pmnt_hdr.id);
21367 l_evg_cont_pmnt_dtls_rec := NULL;
21368 IF (g_evg_cont_pmnt_hdr.id IS NOT NULL) THEN
21369 IF (p_line_number IS NULL) THEN -- header only
21370 IF ((p_pth_evg_vendor_site_code IS NOT NULL) OR
21371 (p_pth_evg_vendor_site_id IS NOT NULL)) THEN
21372 l_evg_cont_pmnt_dtls_rec.vendor_id := x_asset_vendor_id;
21373 l_evg_cont_pmnt_dtls_rec.cpl_id := x_cplv_rec.id;
21374 l_evg_cont_pmnt_dtls_rec.pay_site_id := get_vendor_paysite( x_return_status => x_return_status,
21375 p_contract_number => p_contract_number,
21376 p_line_number => p_line_number,
21377 p_vendor_paysite_name => p_pth_evg_vendor_site_code,
21378 p_vendor_paysite_id => p_pth_evg_vendor_site_id
21379 );
21380 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21381 raise party_role_failed;
21382 END IF;
21383
21384 IF (p_pth_evg_pmnt_term_code is NOT NULL OR
21385 p_pth_evg_pmnt_term_id IS NOT NULL ) THEN
21386 l_evg_cont_pmnt_dtls_rec.payment_term_id := get_payment_term(
21387 x_return_status => x_return_status,
21388 p_contract_number => p_contract_number,
21389 p_line_number => p_line_number,
21390 p_payment_term => p_pth_evg_pmnt_term_code,
21391 p_payment_term_id => p_pth_evg_pmnt_term_id
21392 );
21393
21394 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21395 raise party_role_failed;
21396 END IF;
21397
21398 ELSE
21399 okl_api.set_message(
21400 G_APP_NAME,
21401 G_MISSING_VALUE,
21402 'CONTRACT_NUM',
21403 p_contract_number,
21404 'COL_NAME',
21405 'PTH_EVG_PMNT_TERM_CODE'
21406 );
21407 END IF;
21408 l_paygroup_code := NULL;
21409 IF (p_pth_evg_paygroup_code IS NULL) THEN
21410 l_paygroup_code := get_vendor_paygroup(
21411 x_return_status => x_return_status,
21412 p_contract_number => p_contract_number,
21413 p_line_number => p_line_number,
21414 p_auth_org_id => p_auth_org_id,
21415 p_vendor_paysite_id => p_pth_evg_vendor_site_id
21416 );
21417
21418 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21419 raise party_role_failed;
21420 END IF;
21421
21422 IF (l_paygroup_code IS NOT NULL) THEN
21423 l_evg_cont_pmnt_dtls_rec.pay_group_code := l_paygroup_code;
21424 ELSE
21425 okl_api.set_message(
21426 G_APP_NAME,
21427 G_MISSING_VALUE_FOR_LINE,
21428 'CONTRACT_NUM',
21429 p_contract_number||'/'||TO_CHAR(p_line_number),
21430 'COL_NAME',
21431 'PTH_EVG_PAYGROUP_CODE',
21432 'LINE',
21433 p_line_type
21434 );
21435 raise party_role_failed;
21436 END IF;
21437 ELSE
21438 l_evg_cont_pmnt_dtls_rec.pay_group_code := p_pth_evg_paygroup_code;
21439 END IF;
21440 IF (p_pth_evg_pmnt_basis is NULL) THEN
21441 l_evg_cont_pmnt_dtls_rec.payment_basis := 'PROCESS_DATE';
21442 ELSE
21443 OPEN pmnt_basis_csr(p_pth_evg_pmnt_basis);
21444 FETCH pmnt_basis_csr INTO rec_exists_yn;
21445 IF (pmnt_basis_csr%NOTFOUND) THEN
21446 okl_api.set_message(
21447 G_APP_NAME,
21448 G_INVALID_VALUE,
21449 'CONTRACT_NUM',
21450 p_contract_number||'/'||TO_CHAR(p_line_number),
21451 'COL_NAME',
21452 'PTH_EVG_PMNT_BASIS',
21453 'COL_VALUE',
21454 p_pth_evg_pmnt_basis
21455 );
21456 CLOSE pmnt_basis_csr;
21457 raise party_role_failed;
21458 ELSE
21459 l_evg_cont_pmnt_dtls_rec.payment_basis := p_pth_evg_pmnt_basis;
21460 CLOSE pmnt_basis_csr;
21461 END IF;
21462 END IF;
21463 l_evg_cont_pmnt_dtls_rec.payment_hdr_id := g_evg_cont_pmnt_hdr.id;
21464 l_evg_cont_pmnt_dtls_rec.payment_method_code := p_pth_evg_pmnt_method_code;
21465
21466 IF ((p_pth_evg_pmnt_basis = 'PROCESS_DATE') AND
21467 (p_pth_evg_pmnt_remit_days IS NULL)) THEN
21468 okl_api.set_message(
21469 G_APP_NAME,
21470 G_MISSING_VALUE_FOR_LINE,
21471 'CONTRACT_NUM',
21472 p_contract_number||'/'||TO_CHAR(p_line_number),
21473 'COL_NAME',
21474 'PTH_EVG_PMNT_REMIT_DAYS',
21475 'LINE',
21476 p_line_type
21477 );
21478 raise party_role_failed;
21479 ELSE
21480 l_evg_cont_pmnt_dtls_rec.remit_days := p_pth_evg_pmnt_remit_days;
21481 END IF;
21482 IF (p_pth_evg_disb_basis is NOT NULL) THEN
21483 OPEN disb_basis_csr(p_pth_evg_disb_basis);
21484 FETCH disb_basis_csr INTO rec_exists_yn;
21485 IF (disb_basis_csr%NOTFOUND) THEN
21486 okl_api.set_message(
21487 G_APP_NAME,
21488 G_INVALID_VALUE,
21489 'CONTRACT_NUM',
21490 p_contract_number||'/'||TO_CHAR(p_line_number),
21491 'COL_NAME',
21492 'PTH_EVG_DISB_BASIS',
21493 'COL_VALUE',
21494 p_pth_evg_disb_basis
21495 );
21496 CLOSE disb_basis_csr;
21497 raise party_role_failed;
21498 ELSE
21499 l_evg_cont_pmnt_dtls_rec.disbursement_basis := p_pth_evg_disb_basis;
21500 CLOSE disb_basis_csr;
21501 END IF;
21502 ELSE
21503 okl_api.set_message(
21504 G_APP_NAME,
21505 G_MISSING_VALUE_FOR_LINE,
21506 'CONTRACT_NUM',
21507 p_contract_number||'/'||TO_CHAR(p_line_number),
21508 'COL_NAME',
21509 'PTH_EVG_DISB_BASIS',
21510 'LINE',
21511 p_line_type
21512 );
21513 END IF;
21514 IF ((p_pth_evg_disb_basis = 'AMOUNT')) THEN
21515 IF (p_pth_evg_disb_fixed_amount IS NULL) THEN
21516 okl_api.set_message(
21517 G_APP_NAME,
21518 G_MISSING_VALUE_FOR_LINE,
21519 'CONTRACT_NUM',
21520 p_contract_number||'/'||TO_CHAR(p_line_number),
21521 'COL_NAME',
21522 'PTH_EVG_DISB_FIXED_AMOUNT',
21523 'LINE',
21524 p_line_type
21525 );
21526 raise party_role_failed;
21527 ELSE
21528 l_evg_cont_pmnt_dtls_rec.disbursement_fixed_amount := p_pth_evg_disb_fixed_amount;
21529 END IF;
21530 END IF;
21531 IF ((p_pth_evg_disb_basis = 'PERCENT')) THEN
21532 IF (p_pth_evg_disb_pct IS NULL) THEN
21533 okl_api.set_message(
21534 G_APP_NAME,
21535 G_MISSING_VALUE_FOR_LINE,
21536 'CONTRACT_NUM',
21537 p_contract_number||'/'||TO_CHAR(p_line_number),
21538 'COL_NAME',
21539 'PTH_EVG_DISB_PCT',
21540 'LINE',
21541 p_line_type
21542 );
21543 raise party_role_failed;
21544 ELSE
21545 l_evg_cont_pmnt_dtls_rec.disbursement_percent := p_pth_evg_disb_pct;
21546 END IF;
21547 END IF;
21548
21549 IF (p_pth_evg_proc_fee_basis is NOT NULL) THEN
21550 OPEN proc_fee_basis_csr(p_pth_evg_proc_fee_basis);
21551 FETCH proc_fee_basis_csr INTO rec_exists_yn;
21552 IF (proc_fee_basis_csr%NOTFOUND) THEN
21553 okl_api.set_message(
21554 G_APP_NAME,
21555 G_INVALID_VALUE,
21556 'CONTRACT_NUM',
21557 p_contract_number||'/'||TO_CHAR(p_line_number),
21558 'COL_NAME',
21559 'PTH_EVG_PROC_FEE_BASIS',
21560 'COL_VALUE',
21561 p_pth_evg_proc_fee_basis
21562 );
21563 CLOSE proc_fee_basis_csr;
21564 raise party_role_failed;
21565 ELSE
21566 l_evg_cont_pmnt_dtls_rec.processing_fee_basis := p_pth_evg_proc_fee_basis;
21567 CLOSE proc_fee_basis_csr;
21568 END IF;
21569 END IF;
21570 IF ((p_pth_evg_proc_fee_basis = 'AMOUNT')) THEN
21571 IF (p_pth_evg_proc_fee_fixed_amt IS NULL) THEN
21572 okl_api.set_message(
21573 G_APP_NAME,
21574 G_MISSING_VALUE_FOR_LINE,
21575 'CONTRACT_NUM',
21576 p_contract_number||'/'||TO_CHAR(p_line_number),
21577 'COL_NAME',
21578 'PTH_EVG_PROC_FEE_FIXED_AMT',
21579 'LINE',
21580 p_line_type
21581 );
21582 raise party_role_failed;
21583 ELSE
21584 l_evg_cont_pmnt_dtls_rec.processing_fee_fixed_amount := p_pth_evg_proc_fee_fixed_amt;
21585 END IF;
21586 END IF;
21587
21588 IF ((p_pth_evg_proc_fee_basis = 'PERCENT')) THEN
21589 IF (p_pth_evg_proc_pct IS NULL) THEN
21590 okl_api.set_message(
21591 G_APP_NAME,
21592 G_MISSING_VALUE_FOR_LINE,
21593 'CONTRACT_NUM',
21594 p_contract_number||'/'||TO_CHAR(p_line_number),
21595 'COL_NAME',
21596 'PTH_EVG_PROC_PCT',
21597 'LINE',
21598 p_line_type
21599 );
21600 raise party_role_failed;
21601 ELSE
21602 l_evg_cont_pmnt_dtls_rec.processing_fee_percent := p_pth_evg_proc_pct;
21603 END IF;
21604 END IF;
21605 l_counter := l_counter + 1;
21606 l_cont_pmnt_dtls_tbl_in(l_counter) := l_evg_cont_pmnt_dtls_rec;
21607
21608 END IF; -- vendor_site_code is not null
21609 END IF; -- p_line_number is null
21610 END IF; -- g_evg_cont_pmnt_hdr.id is not null
21611
21612 debug_message ('No. of records in payment dtls table : '||l_cont_pmnt_dtls_tbl_in.count);
21613
21614 IF (l_cont_pmnt_dtls_tbl_in.COUNT > 0) THEN
21615 okl_party_payments_pvt.create_party_payment_dtls(
21616 p_api_version => 1.0,
21617 x_return_status => x_return_status,
21618 x_msg_count => x_msg_count,
21619 x_msg_data => x_msg_data,
21620 p_ppydv_tbl => l_cont_pmnt_dtls_tbl_in,
21621 x_ppydv_tbl => l_cont_pmnt_dtls_tbl_out
21622 );
21623
21624 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21625 x_return_status := OKL_API.G_RET_STS_ERROR;
21626 RAISE party_role_failed;
21627 END IF;
21628 END IF;
21629 debug_message('Contract evergreen dtls end.');
21630 -- Create evergreen payment dtls if header exists
21631
21632 debug_message('------>Party role done');
21633 return;
21634
21635 EXCEPTION
21636
21637 WHEN party_role_failed THEN
21638 x_return_status := OKL_API.G_RET_STS_ERROR;
21639 debug_message(l_proc_name ||': '||l_progress);
21640
21641 WHEN OTHERS THEN
21642 debug_message(l_proc_name ||': '||l_progress);
21643
21644 END process_party_role;
21645
21646 ------------------------------------------------------------------------------
21647 -- PROCEDURE process_term
21648 -- It Process Terms Interafce Records at Contract Line level and Header Level as well and
21649 -- stacks Error, if any, and returns ERROR status to calling process.
21650 -- Calls:
21651 -- get_bill_to_address_id
21652 -- get_bank_account_id
21653 -- get_invoice_format_id
21654 -- get_payment_method_id
21655 -- Called By:
21656 -- load_input_record
21657 ------------------------------------------------------------------------------
21658 PROCEDURE process_term(
21659 x_return_status OUT NOCOPY VARCHAR2,
21660 x_msg_count OUT NOCOPY NUMBER,
21661 x_msg_data OUT NOCOPY VARCHAR2,
21662 p_contract_number IN okc_k_headers_v.contract_number%TYPE,
21663 p_chr_id IN okc_k_headers_v.id%TYPE,
21664 p_auth_org_id IN okl_header_interface.authoring_org_id%TYPE,
21665 p_line_number IN okc_k_lines_v.line_number%TYPE,
21666 p_line_type IN okl_lines_interface.line_type%TYPE,
21667 p_cle_id IN okc_k_lines_v.id%TYPE,
21668 p_bill_to_address_id IN okl_terms_interface.bill_to_address_id%TYPE,
21669 p_bill_to_address IN okl_terms_interface.bill_to_address%TYPE,
21670 p_bank_account_id IN okl_terms_interface.bank_account_id%TYPE,
21671 p_bank_account_number IN okl_terms_interface.bank_account_number%TYPE,
21672 p_reason_for_invoice_review IN okl_terms_interface.reason_for_invoice_review%TYPE,
21673 p_invoice_review_until_date IN okl_terms_interface.invoice_review_until_date%TYPE,
21674 p_invoice_format_id IN okl_terms_interface.invoice_format_id%TYPE,
21675 p_invoice_format_code IN okl_terms_interface.invoice_format_code%TYPE,
21676 p_review_invoice_flag IN okl_terms_interface.review_invoice_flag%TYPE,
21677 p_payment_method_id IN okl_terms_interface.payment_method_id%TYPE,
21678 p_payment_method IN okl_terms_interface.payment_method%TYPE,
21679 p_prescribed_asset_flag IN okl_terms_interface.prescribed_asset_flag%TYPE,
21680 p_cash_appl_rule_name IN okl_terms_interface.cash_appl_rule_name%TYPE
21681 ) IS
21682
21683 l_proc_name VARCHAR2(35) := 'PROCESS_TERM';
21684 term_failed EXCEPTION;
21685
21686 -- Rule Rec
21687 x_rgpv_rec rgpv_rec_type;
21688 l_rgpv_rec rgpv_rec_type;
21689
21690 l_rulv_rec rulv_rec_type;
21691 x_rulv_rec rulv_rec_type;
21692
21693 l_clev_rec clev_rec_type;
21694 x_clev_rec clev_rec_type;
21695 l_klev_rec klev_rec_type;
21696 x_klev_rec klev_rec_type;
21697
21698 x_bank_account_id NUMBER := NULL;
21699 x_bill_to_address_id NUMBER := NULL;
21700 x_invoice_format_id NUMBER := NULL;
21701 x_payment_method_id NUMBER := NULL;
21702 x_invoice_format_name okl_invoice_formats_v.name%TYPE;
21703 l_rgp_id NUMBER;
21704
21705 x_cash_appl_rule_id OKL_BPD_ACTIVE_CSH_RLS_V.ID1%TYPE;
21706 BEGIN
21707
21708 x_return_status := OKL_API.G_RET_STS_SUCCESS;
21709 debug_message(l_proc_name);
21710
21711 IF (p_line_type = 'ASSET') THEN
21712
21713 l_rgpv_rec := NULL;
21714 l_rgp_id := NULL;
21715 l_rgpv_rec.rgd_code := 'LABILL';
21716 l_rgpv_rec.chr_id := NULL;
21717 l_rgpv_rec.dnz_chr_id := p_chr_id;
21718 l_rgpv_rec.cle_id := p_cle_id;
21719 l_rgpv_rec.rgp_type := 'KRG';
21720
21721 debug_message('------>Cust Acct: '||g_customer_account_id);
21722
21723 IF (g_customer_account_id IS NOT NULL) THEN -- customer account is provided at header interface
21724 get_bill_to_address_id(
21725 x_return_status => x_return_status,
21726 x_msg_count => x_msg_count,
21727 x_msg_data => x_msg_data,
21728 p_contract_number => p_contract_number,
21729 p_auth_org_id => p_auth_org_id,
21730 p_bill_to_address_id => p_bill_to_address_id,
21731 p_bill_to_address => p_bill_to_address,
21732 p_customer_account_id => g_customer_account_id,
21733 x_bill_to_address_id => x_bill_to_address_id
21734 );
21735
21736 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21737 x_return_status := OKL_API.G_RET_STS_ERROR;
21738 raise term_failed;
21739 END IF;
21740
21741 END IF; --g_customer_account_id
21742
21743 l_rulv_rec := NULL;
21744
21745 -- cklee bug# 3440442 bug# 3440442
21746 debug_message('------>prescribed_asset_flag: '||p_prescribed_asset_flag);
21747 IF (p_prescribed_asset_flag IS NOT NULL) THEN
21748
21749 IF (NVL(p_prescribed_asset_flag,'N') NOT IN ('Y','N')) THEN
21750 okl_api.set_message(
21751 G_APP_NAME,
21752 G_INVALID_VALUE,
21753 'CONTRACT_NUM',
21754 p_contract_number,
21755 'COL_NAME',
21756 'PRESCRIBED_ASSET_FLAG',
21757 'COL_VALUE',
21758 p_prescribed_asset_flag
21759 );
21760
21761 x_return_status := OKL_API.G_RET_STS_ERROR;
21762 raise term_failed;
21763
21764 END IF;
21765
21766 -- Update prescribed_asset_flag
21767 l_clev_rec.id := p_cle_id;
21768 -- l_clev_rec.dnz_chr_id := p_chr_id;
21769 l_klev_rec.prescribed_asset_yn := p_prescribed_asset_flag;
21770
21771 okl_contract_pub.update_contract_line(
21772 p_api_version => 1.0,
21773 p_init_msg_list => OKL_API.G_FALSE,
21774 x_return_status => x_return_status,
21775 x_msg_count => x_msg_count,
21776 x_msg_data => x_msg_data,
21777 p_clev_rec => l_clev_rec,
21778 p_klev_rec => l_klev_rec,
21779 x_clev_rec => x_clev_rec,
21780 x_klev_rec => x_klev_rec
21781 );
21782
21783 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21784 x_return_status := OKL_API.G_RET_STS_ERROR;
21785 raise term_failed;
21786 END IF;
21787
21788 debug_message('------>prescribed_asset_flag updated: '||x_klev_rec.prescribed_asset_yn);
21789 END IF;
21790 -- cklee bug# 3440442 bug# 3440442
21791
21792
21793 debug_message('------>Bill to ID: '||x_bill_to_address_id);
21794
21795 IF (x_bill_to_address_id IS NOT NULL) THEN
21796
21797 -- Update asset line with BTO information
21798 l_clev_rec.id := p_cle_id;
21799 --l_clev_rec.dnz_chr_id := p_chr_id;
21800 l_clev_rec.bill_to_site_use_id := x_bill_to_address_id;
21801
21802 okl_contract_pub.update_contract_line(
21803 p_api_version => 1.0,
21804 p_init_msg_list => OKL_API.G_FALSE,
21805 x_return_status => x_return_status,
21806 x_msg_count => x_msg_count,
21807 x_msg_data => x_msg_data,
21808 p_clev_rec => l_clev_rec,
21809 p_klev_rec => l_klev_rec,
21810 x_clev_rec => x_clev_rec,
21811 x_klev_rec => x_klev_rec
21812 );
21813
21814 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21815 x_return_status := OKL_API.G_RET_STS_ERROR;
21816 raise term_failed;
21817 END IF;
21818
21819 debug_message('------>Bill to updated: '||x_clev_rec.bill_to_site_use_id);
21820
21821 /* Rule Migration
21822
21823 l_rulv_rec.jtot_object1_code := 'OKX_BILLTO';
21824 l_rulv_rec.object1_id1 := TO_CHAR(x_bill_to_address_id);
21825 l_rulv_rec.object1_id2 := '#';
21826 l_rulv_rec.rgp_id := x_rgpv_rec.id;
21827 l_rulv_rec.dnz_chr_id := p_chr_id;
21828 l_rulv_rec.rule_information_category := 'BTO';
21829 l_rulv_rec.std_template_yn := 'N';
21830 l_rulv_rec.warn_yn := 'N';
21831
21832 create_rule_group_and_rule(
21833 x_return_status => x_return_status,
21834 x_msg_count => x_msg_count,
21835 x_msg_data => x_msg_data,
21836 p_rgp_id => l_rgp_id,
21837 p_rgpv_rec => l_rgpv_rec,
21838 p_rulv_rec => l_rulv_rec,
21839 x_rgpv_rec => x_rgpv_rec,
21840 x_rulv_rec => x_rulv_rec
21841 );
21842
21843 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21844 raise term_failed;
21845 END IF;
21846
21847 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
21848 l_rgp_id := x_rgpv_rec.id;
21849 END IF;
21850 */
21851 IF (p_bank_account_id IS NOT NULL
21852 OR
21853 p_bank_account_number IS NOT NULL) THEN
21854 get_bank_account_id(
21855 x_return_status => x_return_status,
21856 x_msg_count => x_msg_count,
21857 x_msg_data => x_msg_data,
21858 p_contract_number => p_contract_number,
21859 p_auth_org_id => p_auth_org_id,
21860 p_bank_account_id => p_bank_account_id,
21861 p_bank_account_number => p_bank_account_number,
21862 p_customer_account_id => g_customer_account_id,
21863 p_cust_site_id => x_bill_to_address_id,
21864 x_bank_account_id => x_bank_account_id
21865 );
21866 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21867 x_return_status := OKL_API.G_RET_STS_ERROR;
21868 raise term_failed;
21869 END IF;
21870 END IF;
21871
21872 l_rulv_rec := NULL;
21873 IF (x_bank_account_id IS NOT NULL) THEN
21874
21875 l_rulv_rec.jtot_object1_code := 'OKX_CUSTBKAC';
21876 l_rulv_rec.object1_id1 := TO_CHAR(x_bank_account_id);
21877 l_rulv_rec.object1_id2 := '#';
21878 l_rulv_rec.rgp_id := x_rgpv_rec.id;
21879 l_rulv_rec.dnz_chr_id := p_chr_id;
21880 l_rulv_rec.rule_information_category := 'LABACC';
21881 l_rulv_rec.std_template_yn := 'N';
21882 l_rulv_rec.warn_yn := 'N';
21883
21884 create_rule_group_and_rule(
21885 x_return_status => x_return_status,
21886 x_msg_count => x_msg_count,
21887 x_msg_data => x_msg_data,
21888 p_rgp_id => l_rgp_id,
21889 p_rgpv_rec => l_rgpv_rec,
21890 p_rulv_rec => l_rulv_rec,
21891 x_rgpv_rec => x_rgpv_rec,
21892 x_rulv_rec => x_rulv_rec
21893 );
21894
21895 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21896 raise term_failed;
21897 END IF;
21898
21899 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
21900 l_rgp_id := x_rgpv_rec.id;
21901 END IF;
21902
21903 END IF; --bank_account
21904
21905 IF (p_reason_for_invoice_review IS NOT NULL) THEN -- Bug# 3650522
21906 OKL_API.SET_MESSAGE(
21907 G_APP_NAME,
21908 G_VALUE_NOT_ALLOWED,
21909 'CONTRACT_NUM',
21910 p_contract_number,
21911 'LINE_NUM',
21912 p_line_number,
21913 'COL_NAME',
21914 'REASON_FOR_INVOICE_REVIEW'
21915 );
21916
21917 x_return_status := OKL_API.G_RET_STS_ERROR;
21918
21919 END IF;
21920
21921 IF (p_invoice_review_until_date IS NOT NULL) THEN -- Bug# 3650522
21922 OKL_API.SET_MESSAGE(
21923 G_APP_NAME,
21924 G_VALUE_NOT_ALLOWED,
21925 'CONTRACT_NUM',
21926 p_contract_number,
21927 'LINE_NUM',
21928 p_line_number,
21929 'COL_NAME',
21930 'INVOICE_REVIEW_UNTIL_DATE'
21931 );
21932
21933 x_return_status := OKL_API.G_RET_STS_ERROR;
21934
21935 END IF;
21936
21937 /* not required, Bug# 3650522
21938 debug_message('------>Before review invoice');
21939 l_rulv_rec := NULL;
21940 IF (p_reason_for_invoice_review IS NOT NULL) THEN
21941
21942 l_rulv_rec.rgp_id := x_rgpv_rec.id;
21943 l_rulv_rec.dnz_chr_id := p_chr_id;
21944 l_rulv_rec.rule_information1 := p_reason_for_invoice_review;
21945 l_rulv_rec.rule_information_category := 'LAINPR';
21946 l_rulv_rec.std_template_yn := 'N';
21947 l_rulv_rec.warn_yn := 'N';
21948
21949 END IF; --reason for invoice review
21950
21951 IF (p_invoice_review_until_date IS NOT NULL) THEN
21952
21953 l_rulv_rec.rgp_id := x_rgpv_rec.id;
21954 l_rulv_rec.dnz_chr_id := p_chr_id;
21955 l_rulv_rec.rule_information2 := get_canonical_date(p_invoice_review_until_date);
21956 l_rulv_rec.rule_information_category := 'LAINPR';
21957 l_rulv_rec.std_template_yn := 'N';
21958 l_rulv_rec.warn_yn := 'N';
21959
21960 END IF; -- invoice review until date
21961
21962 create_rule_group_and_rule(
21963 x_return_status => x_return_status,
21964 x_msg_count => x_msg_count,
21965 x_msg_data => x_msg_data,
21966 p_rgp_id => l_rgp_id,
21967 p_rgpv_rec => l_rgpv_rec,
21968 p_rulv_rec => l_rulv_rec,
21969 x_rgpv_rec => x_rgpv_rec,
21970 x_rulv_rec => x_rulv_rec
21971 );
21972
21973 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
21974 raise term_failed;
21975 END IF;
21976 */
21977 /* Bug# 4284166 : not required
21978
21979 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
21980 l_rgp_id := x_rgpv_rec.id;
21981 END IF;
21982 */
21983
21984 IF (p_invoice_format_id IS NOT NULL
21985 OR
21986 p_invoice_format_code IS NOT NULL) THEN -- Bug# 3650522
21987 OKL_API.SET_MESSAGE(
21988 G_APP_NAME,
21989 G_VALUE_NOT_ALLOWED,
21990 'CONTRACT_NUM',
21991 p_contract_number,
21992 'LINE_NUM',
21993 p_line_number,
21994 'COL_NAME',
21995 'INVOICE_FORMAT_ID/_CODE'
21996 );
21997
21998 x_return_status := OKL_API.G_RET_STS_ERROR;
21999
22000 END IF;
22001
22002 /* not required, Bug# 3650522
22003 debug_message('------>Before invoice format');
22004
22005 IF (p_invoice_format_id IS NOT NULL
22006 OR
22007 p_invoice_format_code IS NOT NULL) THEN
22008 get_invoice_format_id(
22009 x_return_status => x_return_status,
22010 x_msg_count => x_msg_count,
22011 x_msg_data => x_msg_data,
22012 p_contract_number => p_contract_number,
22013 p_invoice_format_id => p_invoice_format_id,
22014 p_invoice_format_code => p_invoice_format_code,
22015 x_invoice_format_id => x_invoice_format_id,
22016 x_invoice_format_name => x_invoice_format_name
22017 );
22018
22019 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22020 x_return_status := OKL_API.G_RET_STS_ERROR;
22021 raise term_failed;
22022 END IF;
22023 END IF;
22024
22025 debug_message('------>Invoice format ID: '||x_invoice_format_id);
22026 */
22027
22028 IF (p_cash_appl_rule_name IS NOT NULL) THEN -- Bug# 3650522
22029 OKL_API.SET_MESSAGE(
22030 G_APP_NAME,
22031 G_VALUE_NOT_ALLOWED,
22032 'CONTRACT_NUM',
22033 p_contract_number,
22034 'LINE_NUM',
22035 p_line_number,
22036 'COL_NAME',
22037 'CASH_APPL_RULE_NAME'
22038 );
22039
22040 x_return_status := OKL_API.G_RET_STS_ERROR;
22041
22042 END IF;
22043
22044 IF (p_review_invoice_flag IS NOT NULL) THEN -- Bug# 3650522
22045 OKL_API.SET_MESSAGE(
22046 G_APP_NAME,
22047 G_VALUE_NOT_ALLOWED,
22048 'CONTRACT_NUM',
22049 p_contract_number,
22050 'LINE_NUM',
22051 p_line_number,
22052 'COL_NAME',
22053 'REVIEW_INVOICE_FLAG'
22054 );
22055
22056 x_return_status := OKL_API.G_RET_STS_ERROR;
22057
22058 END IF;
22059
22060 /* Not required, Bug# 3650522
22061 IF (p_cash_appl_rule_name IS NOT NULL) THEN
22062 get_cash_appl_rule_id (
22063 x_return_status => x_return_status,
22064 x_msg_count => x_msg_count,
22065 x_msg_data => x_msg_data,
22066 p_contract_number => p_contract_number||'/'||p_line_number,
22067 p_org_id => p_auth_org_id,
22068 p_cash_appl_rule_name => p_cash_appl_rule_name,
22069 x_cash_appl_rule_id => x_cash_appl_rule_id
22070 );
22071
22072 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22073 x_return_status := OKL_API.G_RET_STS_ERROR;
22074 raise term_failed;
22075 END IF;
22076 END IF;
22077
22078 l_rulv_rec := NULL;
22079
22080 IF (x_cash_appl_rule_id IS NOT NULL) THEN
22081 l_rulv_rec.jtot_object1_code := 'OKL_CASHAPPL';
22082 l_rulv_rec.object1_id1 := TO_CHAR(x_cash_appl_rule_id);
22083 l_rulv_rec.object1_id2 := '#';
22084 l_rulv_rec.rgp_id := x_rgpv_rec.id;
22085 l_rulv_rec.dnz_chr_id := p_chr_id;
22086 l_rulv_rec.rule_information_category := 'LAINVD';
22087 l_rulv_rec.std_template_yn := 'N';
22088 l_rulv_rec.warn_yn := 'N';
22089 END IF;
22090
22091 IF (x_invoice_format_id IS NOT NULL) THEN
22092
22093 l_rulv_rec.rgp_id := x_rgpv_rec.id;
22094 l_rulv_rec.dnz_chr_id := p_chr_id;
22095 --l_rulv_rec.rule_information4 := TO_CHAR(x_invoice_format_id);
22096 l_rulv_rec.rule_information1 := x_invoice_format_name; --TO_CHAR(x_invoice_format_id);
22097 l_rulv_rec.rule_information_category := 'LAINVD';
22098 l_rulv_rec.std_template_yn := 'N';
22099 l_rulv_rec.warn_yn := 'N';
22100
22101 END IF; -- invoice format id
22102
22103 IF (p_review_invoice_flag IS NOT NULL) THEN
22104
22105 l_rulv_rec.rgp_id := x_rgpv_rec.id;
22106 l_rulv_rec.dnz_chr_id := p_chr_id;
22107 --l_rulv_rec.rule_information1 := p_review_invoice_flag;
22108 l_rulv_rec.rule_information4 := NVL(p_review_invoice_flag, 'N');
22109 l_rulv_rec.rule_information_category := 'LAINVD';
22110 l_rulv_rec.std_template_yn := 'N';
22111 l_rulv_rec.warn_yn := 'N';
22112
22113 END IF; -- reveiew invoice flag
22114
22115 create_rule_group_and_rule(
22116 x_return_status => x_return_status,
22117 x_msg_count => x_msg_count,
22118 x_msg_data => x_msg_data,
22119 p_rgp_id => l_rgp_id,
22120 p_rgpv_rec => l_rgpv_rec,
22121 p_rulv_rec => l_rulv_rec,
22122 x_rgpv_rec => x_rgpv_rec,
22123 x_rulv_rec => x_rulv_rec
22124 );
22125
22126 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22127 raise term_failed;
22128 END IF;
22129 */
22130 /* Bug# 4284166 : not required
22131
22132 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
22133 l_rgp_id := x_rgpv_rec.id;
22134 END IF;
22135 */
22136 --
22137 -- status set to error if the following billing parameters are
22138 -- populated.
22139 -- 1. Cash Application Rule
22140 -- 2. Invoice Format
22141 -- 3. Review Invoice
22142 -- 4. Reason for Review
22143 -- 5. Review until Date
22144 --
22145 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN -- Bug# 3650522
22146 RAISE term_failed;
22147 END IF;
22148
22149 debug_message('------>Before Payment Method');
22150 IF (p_payment_method_id IS NOT NULL
22151 OR
22152 p_payment_method IS NOT NULL) THEN
22153 get_payment_method_id(
22154 x_return_status => x_return_status,
22155 x_msg_count => x_msg_count,
22156 x_msg_data => x_msg_data,
22157 p_contract_number => p_contract_number,
22158 p_customer_account_id => g_customer_account_id,
22159 p_bill_to_address_id => x_bill_to_address_id, -- got from get_bill_to_address_id() above
22160 p_payment_method_id => p_payment_method_id,
22161 p_payment_method => p_payment_method,
22162 x_payment_method_id => x_payment_method_id
22163 );
22164
22165 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22166 x_return_status := OKL_API.G_RET_STS_ERROR;
22167 raise term_failed;
22168 END IF;
22169 END IF;
22170
22171 l_rulv_rec := NULL;
22172 IF (x_payment_method_id IS NOT NULL) THEN
22173
22174 l_rulv_rec.rgp_id := x_rgpv_rec.id;
22175 l_rulv_rec.dnz_chr_id := p_chr_id;
22176 l_rulv_rec.jtot_object1_code := 'OKX_RCPTMTH';
22177 l_rulv_rec.object1_id1 := TO_CHAR(x_payment_method_id);
22178 l_rulv_rec.object1_id2 := '#';
22179 l_rulv_rec.rule_information_category := 'LAPMTH';
22180 l_rulv_rec.std_template_yn := 'N';
22181 l_rulv_rec.warn_yn := 'N';
22182
22183 create_rule_group_and_rule(
22184 x_return_status => x_return_status,
22185 x_msg_count => x_msg_count,
22186 x_msg_data => x_msg_data,
22187 p_rgp_id => l_rgp_id,
22188 p_rgpv_rec => l_rgpv_rec,
22189 p_rulv_rec => l_rulv_rec,
22190 x_rgpv_rec => x_rgpv_rec,
22191 x_rulv_rec => x_rulv_rec
22192 );
22193
22194 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22195 raise term_failed;
22196 END IF;
22197
22198 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136
22199 l_rgp_id := x_rgpv_rec.id;
22200 END IF;
22201
22202 END IF; -- payment method id
22203
22204 debug_message('------>After payment method');
22205 END IF; -- bill_to_address
22206 END IF; -- Line type
22207
22208 return;
22209
22210 EXCEPTION
22211
22212 WHEN term_failed THEN
22213 x_return_status := OKL_API.G_RET_STS_ERROR;
22214
22215 END process_term;
22216
22217 ------------------------------------------------------------------------------
22218 -- PROCEDURE create_payment_rule_group
22219 -- It creates Rule Group and Rule related to Payments and
22220 -- stacks Error, if any, and returns ERROR status to calling process.
22221 -- Calls:
22222 -- check_stream_type_code
22223 -- Called By:
22224 -- load_input_record
22225 ------------------------------------------------------------------------------
22226 PROCEDURE create_payment_rule_group(
22227 x_return_status OUT NOCOPY VARCHAR2,
22228 x_msg_count OUT NOCOPY NUMBER,
22229 x_msg_data OUT NOCOPY VARCHAR2,
22230 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
22231 p_line_number IN okl_lines_interface.line_number%TYPE,
22232 p_payment_type_code IN VARCHAR2,
22233 p_stream_purpose IN okl_payments_interface.stream_purpose_code%TYPE,
22234 p_chr_id IN NUMBER,
22235 p_cle_id IN NUMBER,
22236 p_rg_id IN NUMBER,
22237 x_rgp_id OUT NOCOPY NUMBER,
22238 x_slh_rulv_rec OUT NOCOPY rulv_rec_type
22239 ) IS
22240 l_proc_name VARCHAR2(35) := 'CREATE_PAYMENT_RULE_GROUP';
22241 x_id1 okl_strmtyp_source_v.id1%TYPE;
22242 pay_rule_failed EXCEPTION;
22243
22244 l_rulv_rec rulv_rec_type;
22245 l_rgpv_rec rgpv_rec_type;
22246 x_rgpv_rec rgpv_rec_type;
22247
22248 l_present_yn VARCHAR2(1);
22249 l_payment_stream_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
22250
22251 --Bug# 6112766:Start
22252 CURSOR get_rule_group_info(p_chr_id okc_k_headers_b.id%TYPE,
22253 p_cle_id okc_k_lines_v.id%TYPE) IS
22254 SELECT rgp.id
22255 FROM okc_rule_groups_b rgp
22256 WHERE rgp.dnz_chr_id = p_chr_id
22257 AND rgp.cle_id = p_cle_id
22258 AND rgp.rgd_code = 'LALEVL'
22259 AND rgp.rgp_type = 'KRG';
22260 ln_rgp_id OKC_RULE_GROUPS_V.ID%TYPE;
22261
22262 rule_group_failed EXCEPTION;
22263 l_rgp_id OKC_RULE_GROUPS_V.ID%TYPE;
22264
22265 --Bug# 6112766: End
22266
22267 BEGIN
22268
22269 x_return_status := OKL_API.G_RET_STS_SUCCESS;
22270
22271 debug_message('------>create_payment_rule_group'); --cklee
22272
22273 check_stream_type_code(
22274 x_return_status => x_return_status,
22275 x_msg_count => x_msg_count,
22276 x_msg_data => x_msg_data,
22277 p_stream_type_code => p_payment_type_code,
22278 p_stream_purpose => p_stream_purpose,
22279 x_id1 => x_id1,
22280 x_name => l_payment_stream_name
22281 );
22282
22283 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22284 okl_api.set_message(
22285 G_APP_NAME,
22286 G_INVALID_VALUE,
22287 'CONTRACT_NUM',
22288 p_contract_number||'/'||p_line_number,
22289 'COL_NAME',
22290 'PAYMENT_TYPE_CODE, STREAM_PURPOSE_CODE',
22291 'COL_VALUE',
22292 p_payment_type_code||', '||p_stream_purpose
22293 );
22294 x_return_status := OKL_API.G_RET_STS_ERROR;
22295 RAISE pay_rule_failed;
22296 END IF;
22297
22298 --
22299 -- UDS 10/27
22300 -- Check whether the stream is present in template for this contract
22301 --
22302 l_present_yn := '?';
22303 l_present_yn := OKL_STREAMS_UTIL.strm_tmpt_contains_strm_type
22304 (p_khr_id => p_chr_id,
22305 p_sty_id => x_id1
22306 );
22307
22308 IF (l_present_yn <> 'Y') THEN
22309 okl_api.set_message(
22310 G_APP_NAME,
22311 G_NO_STRM_TMPL,
22312 'CONTRACT_NUM',
22313 p_contract_number||'/'||p_line_number,
22314 'COL_NAME',
22315 'PAYMENT_TYPE_CODE, STREAM_PURPOSE_CODE',
22316 'COL_VALUE',
22317 p_payment_type_code||', '||p_stream_purpose
22318 );
22319
22320 raise pay_rule_failed;
22321
22322 END IF;
22323 --Bug# 6112766
22324 l_rgp_id :=p_rg_id;
22325 --check for the property tax code
22326 IF ((p_stream_purpose IN ('DOWN_PAYMENT', 'ESTIMATED_PROPERTY_TAX'))
22327 AND (l_rgp_id IS NULL)) THEN
22328 OPEN get_rule_group_info(p_chr_id, p_cle_id);
22329 FETCH get_rule_group_info into l_rgp_id;
22330 IF get_rule_group_info%NOTFOUND THEN
22331 --start:| 04-Jun-08 cklee Fixed bug: 7152082 |
22332 -- RAISE rule_group_failed; -- cklee
22333 l_rgp_id := NULL;
22334 --end:| 04-Jun-08 cklee Fixed bug: 7152082 |
22335 END IF;
22336 CLOSE get_rule_group_info;
22337 END IF;
22338 --Bug# 6112766: End
22339 -- IF (p_rg_id IS NULL) THEN
22340 IF (l_rgp_id IS NULL OR l_rgp_id = OKC_API.G_MISS_NUM) THEN -- cklee bug #7429136 --Bug# 6112766
22341 IF (p_line_number IS NOT NULL) THEN -- line level rule group
22342 l_rgpv_rec := NULL;
22343 l_rgpv_rec.rgd_code := 'LALEVL';
22344 l_rgpv_rec.chr_id := NULL;
22345 l_rgpv_rec.dnz_chr_id := p_chr_id;
22346 l_rgpv_rec.cle_id := p_cle_id;
22347 l_rgpv_rec.rgp_type := 'KRG';
22348 ELSE -- header level rule group
22349 l_rgpv_rec := NULL;
22350 l_rgpv_rec.rgd_code := 'LALEVL';
22351 l_rgpv_rec.chr_id := p_chr_id;
22352 l_rgpv_rec.dnz_chr_id := p_chr_id;
22353 l_rgpv_rec.cle_id := NULL;
22354 l_rgpv_rec.rgp_type := 'KRG';
22355 END IF;
22356
22357 OKL_RULE_PUB.create_rule_group(
22358 p_api_version => 1.0,
22359 p_init_msg_list => OKL_API.G_FALSE,
22360 x_return_status => x_return_status,
22361 x_msg_count => x_msg_count,
22362 x_msg_data => x_msg_data,
22363 p_rgpv_rec => l_rgpv_rec,
22364 x_rgpv_rec => x_rgpv_rec
22365 );
22366 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22367 raise pay_rule_failed;
22368 END IF;
22369
22370 x_rgp_id := x_rgpv_rec.id;
22371 ELSE
22372 --Bug# 6112766 :Start
22373 -- x_rgp_id := p_rg_id;
22374 x_rgp_id := l_rgp_id;
22375 --Bug# 6112766: End
22376 END IF;
22377
22378 l_rulv_rec := NULL;
22379 l_rulv_rec.jtot_object1_code := 'OKL_STRMTYP';
22380 l_rulv_rec.object1_id1 := TO_CHAR(x_id1);
22381 l_rulv_rec.object1_id2 := '#';
22382 l_rulv_rec.rgp_id := x_rgp_id;
22383 l_rulv_rec.dnz_chr_id := p_chr_id;
22384 l_rulv_rec.rule_information_category := 'LASLH';
22385 l_rulv_rec.std_template_yn := 'N';
22386 l_rulv_rec.warn_yn := 'N';
22387
22388 OKL_RULE_PUB.create_rule(
22389 p_api_version => 1.0,
22390 p_init_msg_list => OKL_API.G_FALSE,
22391 x_return_status => x_return_status,
22392 x_msg_count => x_msg_count,
22393 x_msg_data => x_msg_data,
22394 p_rulv_rec => l_rulv_rec,
22395 x_rulv_rec => x_slh_rulv_rec
22396 );
22397
22398 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22399 x_return_status := OKL_API.G_RET_STS_ERROR;
22400 raise pay_rule_failed;
22401 END IF;
22402
22403 RETURN;
22404
22405 EXCEPTION
22406 --Bug# 6112766 :Start
22407 WHEN rule_group_failed THEN
22408 IF get_rule_group_info%ISOPEN THEN
22409 CLOSE get_rule_group_info;
22410 END IF;
22411 x_return_status := OKL_API.G_RET_STS_ERROR;
22412 --Bug# 6112766: End
22413 WHEN pay_rule_failed THEN
22414 x_return_status := OKL_API.G_RET_STS_ERROR;
22415 END create_payment_rule_group;
22416
22417
22418 ------------------------------------------------------------------------------
22419 -- PROCEDURE create_payment_other_rules
22420 -- It creates some more rules for payment under rule group created by procedure: create_payment_rule_group and
22421 -- stacks Error, if any, and returns ERROR status to calling process.
22422 -- Calls:
22423 -- check_payment_frequency_code
22424 -- Called By:
22425 -- load_input_record
22426 ------------------------------------------------------------------------------
22427 PROCEDURE create_payment_other_rules(
22428 x_return_status OUT NOCOPY VARCHAR2,
22429 x_msg_count OUT NOCOPY NUMBER,
22430 x_msg_data OUT NOCOPY VARCHAR2,
22431 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
22432 p_line_number IN okl_lines_interface.line_number%TYPE,
22433 p_payment_sch_number IN okl_payments_interface.payment_schedule_number%TYPE,
22434 p_payment_freq_code IN okl_payments_interface.payment_frequency_code%TYPE,
22435 p_arrears_flag IN okl_payments_interface.arrears_flag%TYPE,
22436 p_advance_payments IN okl_payments_interface.advance_payments%TYPE,
22437 p_payment_amount IN okl_payments_interface.payment_amount%TYPE,
22438 p_start_date IN okl_payments_interface.start_date%TYPE,
22439 p_number_of_periods IN okl_payments_interface.number_of_periods%TYPE,
22440 p_rate IN okl_payments_interface.rate%TYPE,
22441 p_comments IN okl_payments_interface.comments%TYPE,
22442 p_stub_days IN okl_payments_interface.stub_days%TYPE,
22443 p_stub_amount IN okl_payments_interface.stub_amount%TYPE,
22444 p_slh_rulv_rec IN rulv_rec_type,
22445 p_chr_id IN NUMBER,
22446 p_cle_id IN NUMBER,
22447 p_rgp_id IN NUMBER
22448 ) IS
22449
22450 l_proc_name VARCHAR2(35) := 'CREATE_PAYMENT_OTHER_RULES';
22451 x_id1 okx_tuom_v.ID1%TYPE;
22452 x_uom_code okx_tuom_v.uom_code%TYPE;
22453 pay_other_failed EXCEPTION;
22454
22455 l_rulv_rec rulv_rec_type;
22456 x_rulv_rec rulv_rec_type;
22457
22458 l_rulv_tbl rulv_tbl_type;
22459 x_rulv_tbl rulv_tbl_type;
22460
22461 BEGIN
22462
22463 x_return_status := OKL_API.G_RET_STS_ERROR;
22464
22465 l_rulv_rec := NULL;
22466 l_rulv_rec.rgp_id := p_rgp_id;
22467 l_rulv_rec.dnz_chr_id := p_chr_id;
22468 l_rulv_rec.rule_information1 := TO_CHAR(p_payment_sch_number);
22469 l_rulv_rec.rule_information_category := 'LASLL';
22470 l_rulv_rec.std_template_yn := 'N';
22471 l_rulv_rec.warn_yn := 'N';
22472
22473 check_payment_frequency_code(
22474 x_return_status => x_return_status,
22475 x_msg_count => x_msg_count,
22476 x_msg_data => x_msg_data,
22477 p_payment_freq_code => p_payment_freq_code,
22478 x_id1 => x_id1,
22479 x_uom_code => x_uom_code
22480 );
22481 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22482 okl_api.set_message(
22483 G_APP_NAME,
22484 G_INVALID_VALUE,
22485 'CONTRACT_NUM',
22486 p_contract_number||'/'||p_line_number,
22487 'COL_NAME',
22488 'PAYMENT_FREQUENCY_CODE',
22489 'COL_VALUE',
22490 p_payment_freq_code
22491 );
22492 x_return_status := OKL_API.G_RET_STS_ERROR;
22493 RAISE pay_other_failed;
22494 END IF;
22495
22496 l_rulv_rec.jtot_object1_code := 'OKL_TUOM';
22497 l_rulv_rec.object1_id1 := x_id1;
22498 l_rulv_rec.object1_id2 := '#';
22499
22500 l_rulv_rec.rule_information10 := p_arrears_flag;
22501 l_rulv_rec.rule_information5 := TO_CHAR(p_advance_payments);
22502
22503 IF (p_payment_amount IS NULL) THEN
22504 l_rulv_rec.rule_information6 := TO_CHAR(p_rate * p_number_of_periods);
22505 ELSE
22506 l_rulv_rec.rule_information6 := TO_CHAR(p_payment_amount);
22507 END IF;
22508
22509 -- l_rulv_rec.rule_information2 := get_canonicaL_date(p_start_date);
22510 l_rulv_rec.rule_information2 := NULL; -- for stub logic
22511 l_rulv_rec.rule_information3 := TO_CHAR(p_number_of_periods);
22512
22513 IF (p_comments IS NOT NULL) THEN
22514 l_rulv_rec.rule_information9 := p_comments;
22515 END IF;
22516
22517 l_rulv_rec.rule_information7 := p_stub_days;
22518 l_rulv_rec.rule_information8 := p_stub_amount;
22519
22520 -- link with SLH
22521 l_rulv_rec.jtot_object2_code := 'OKL_STRMHDR';
22522 l_rulv_rec.object2_id1 := p_slh_rulv_rec.id;
22523 l_rulv_rec.object2_id2 := '#';
22524
22525 /* Not needed now
22526 --
22527 -- populate rulv_tbl structure and call
22528 -- new payment stub routine to create LASLLs
22529 --
22530 l_rulv_tbl(1).rgp_id := l_rulv_rec.rgp_id;
22531 l_rulv_tbl(1).dnz_chr_id := l_rulv_rec.dnz_chr_id;
22532 l_rulv_tbl(1).rule_information1 := l_rulv_rec.rule_information1;
22533 l_rulv_tbl(1).rule_information_category := l_rulv_rec.rule_information_category;
22534 l_rulv_tbl(1).std_template_yn := l_rulv_rec.std_template_yn;
22535 l_rulv_tbl(1).warn_yn := l_rulv_rec.warn_yn;
22536 l_rulv_tbl(1).jtot_object1_code := l_rulv_rec.jtot_object1_code;
22537 l_rulv_tbl(1).object1_id1 := l_rulv_rec.object1_id1;
22538 l_rulv_tbl(1).object1_id2 := l_rulv_rec.object1_id2;
22539
22540 l_rulv_tbl(1).rule_information10 := l_rulv_rec.rule_information10;
22541 l_rulv_tbl(1).rule_information5 := l_rulv_rec.rule_information5;
22542 l_rulv_tbl(1).rule_information6 := l_rulv_rec.rule_information6;
22543 l_rulv_tbl(1).rule_information2 := l_rulv_rec.rule_information2;
22544 l_rulv_tbl(1).rule_information3 := l_rulv_rec.rule_information3;
22545 l_rulv_tbl(1).rule_information9 := l_rulv_rec.rule_information9;
22546
22547 l_rulv_tbl(1).rule_information7 := l_rulv_rec.rule_information7;
22548 l_rulv_tbl(1).rule_information8 := l_rulv_rec.rule_information8;
22549
22550 l_rulv_tbl(1).jtot_object2_code := l_rulv_rec.jtot_object2_code;
22551 l_rulv_tbl(1).object2_id1 := l_rulv_rec.object2_id1;
22552 l_rulv_tbl(1).object2_id2 := l_rulv_rec.object2_id2;
22553
22554 okl_la_payments_pvt_1.create_rule(
22555 p_api_version => 1.0,
22556 p_init_msg_list => OKL_API.G_FALSE,
22557 x_return_status => x_return_status,
22558 x_msg_count => x_msg_count,
22559 x_msg_data => x_msg_data,
22560 p_rulv_tbl => l_rulv_tbl,
22561 x_rulv_tbl => x_rulv_tbl
22562 );
22563
22564 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22565 x_return_status := OKL_API.G_RET_STS_ERROR;
22566 RAISE pay_other_failed;
22567 END IF;
22568 */
22569
22570 OKL_RULE_PUB.create_rule(
22571 p_api_version => 1.0,
22572 p_init_msg_list => OKL_API.G_FALSE,
22573 x_return_status => x_return_status,
22574 x_msg_count => x_msg_count,
22575 x_msg_data => x_msg_data,
22576 p_rulv_rec => l_rulv_rec,
22577 x_rulv_rec => x_rulv_rec
22578 );
22579
22580 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22581 x_return_status := OKL_API.G_RET_STS_ERROR;
22582 RAISE pay_other_failed;
22583 END IF;
22584
22585 -- Now calculate payment start date
22586 OKL_LA_PAYMENTS_PVT.calculate_details(
22587 p_api_version => 1.0,
22588 p_init_msg_list => OKL_API.G_FALSE,
22589 x_return_status => x_return_status,
22590 x_msg_count => x_msg_count,
22591 x_msg_data => x_msg_data,
22592 p_chr_id => p_chr_id,
22593 p_rgp_id => p_rgp_id,
22594 p_slh_id => p_slh_rulv_rec.id,
22595 structure => NULL,
22596 frequency => NULL,
22597 arrears => NULL,
22598 -- Bug# 6438785
22599 p_validate_date_yn => 'N'
22600 );
22601
22602 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
22603 x_return_status := OKL_API.G_RET_STS_ERROR;
22604 RAISE pay_other_failed;
22605 END IF;
22606
22607 RETURN;
22608
22609 EXCEPTION
22610 WHEN pay_other_failed THEN
22611 x_return_status := OKL_API.G_RET_STS_ERROR;
22612
22613 END create_payment_other_rules;
22614
22615 ------------------------------------------------------------------------------
22616 -- PROCEDURE get_inventory_org_item_id
22617 -- It retrives Inventory Organization and Item Id and
22618 -- stacks Error, if any, and returns ERROR status to calling process.
22619 -- Calls:
22620 -- None
22621 -- Called By:
22622 -- process_other_line
22623 -- load_input_record
22624 ------------------------------------------------------------------------------
22625 PROCEDURE get_inventory_org_item_id(
22626 x_return_status OUT NOCOPY VARCHAR2,
22627 x_msg_count OUT NOCOPY NUMBER,
22628 x_msg_data OUT NOCOPY VARCHAR2,
22629 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
22630 p_line_number IN okl_lines_interface.line_number%TYPE,
22631 p_line_type IN okl_lines_interface.line_type%TYPE,
22632 p_inventory_org_id IN okl_header_interface.inventory_organization_id%TYPE,
22633 p_inventory_item_id IN okl_lines_interface.inventory_item_id%TYPE,
22634 p_inventory_item_name IN okl_lines_interface.inventory_item_name%TYPE,
22635 x_inventory_org_id OUT NOCOPY NUMBER,
22636 x_inventory_item_id OUT NOCOPY NUMBER
22637 ) IS
22638 l_proc_name VARCHAR2(35) := 'GET_INVENTORY_ORG_ITEM_ID';
22639 inv_org_failed EXCEPTION;
22640 l_org_id NUMBER;
22641 l_item_id NUMBER;
22642
22643 CURSOR org_csr (p_inventory_org_id NUMBER) IS
22644 SELECT organization_id
22645 FROM hr_all_organization_units
22646 WHERE organization_id = p_inventory_org_id
22647 AND SYSDATE BETWEEN NVL(date_from, SYSDATE) AND NVL(date_to, SYSDATE);
22648
22649 /*
22650 CURSOR org_csr (p_inventory_org_name VARCHAR2,
22651 p_inventory_org_id NUMBER) IS
22652 SELECT organization_id
22653 FROM hr_all_organization_units
22654 WHERE ((name = p_inventory_org_name
22655 AND
22656 p_inventory_org_name IS NOT NULL)
22657 OR
22658 (organization_id = p_inventory_org_id
22659 AND
22660 p_inventory_org_id IS NOT NULL
22661 )
22662 )
22663 AND SYSDATE BETWEEN NVL(date_from, SYSDATE) AND NVL(date_to, SYSDATE);
22664 */
22665 CURSOR item_csr (p_inventory_org_id NUMBER,
22666 p_inventory_item_id NUMBER,
22667 p_inventory_item_name VARCHAR2) IS
22668 SELECT inventory_item_id
22669 FROM mtl_system_items
22670 WHERE ((segment1 = p_inventory_item_name
22671 AND
22672 p_inventory_item_name IS NOT NULL)
22673 OR
22674 (inventory_item_id = p_inventory_item_id
22675 AND
22676 p_inventory_item_id IS NOT NULL
22677 )
22678 )
22679 AND organization_id = p_inventory_org_id
22680 AND SYSDATE BETWEEN NVL(start_date_active, SYSDATE) AND NVL(end_date_active, SYSDATE);
22681
22682 CURSOR service_item_csr (p_inventory_org_id NUMBER,
22683 p_inventory_item_id NUMBER,
22684 p_inventory_item_name VARCHAR2) IS
22685 SELECT id1
22686 FROM okx_system_items_v
22687 WHERE ((name = p_inventory_item_name
22688 AND
22689 p_inventory_item_name IS NOT NULL)
22690 OR
22691 (id1 = p_inventory_item_id
22692 AND
22693 p_inventory_item_id IS NOT NULL
22694 )
22695 )
22696 AND service_item_flag = 'Y'
22697 AND vendor_warranty_flag = 'N'
22698 AND organization_id = p_inventory_org_id
22699 AND SYSDATE BETWEEN NVL(start_date_active, SYSDATE) AND NVL(end_date_active, SYSDATE);
22700
22701 BEGIN
22702
22703 x_return_status := OKL_API.G_RET_STS_SUCCESS;
22704
22705 OPEN org_csr(p_inventory_org_id);
22706 FETCH org_csr INTO l_org_id;
22707
22708 IF org_csr%NOTFOUND THEN
22709 okl_api.set_message(
22710 G_APP_NAME,
22711 G_INVALID_VALUE,
22712 'CONTRACT_NUM',
22713 p_contract_number,
22714 'COL_NAME',
22715 'INVENTORY_ORGANIZATION_ID',
22716 'COL_VALUE',
22717 p_inventory_org_id
22718 );
22719 RAISE inv_org_failed;
22720 END IF;
22721 CLOSE org_csr;
22722 x_inventory_org_id := l_org_id;
22723
22724 IF (p_line_type = 'ASSET') or (p_line_type = 'ASSET_ADDON') THEN
22725 OPEN item_csr (x_inventory_org_id,
22726 p_inventory_item_id,
22727 p_inventory_item_name);
22728 FETCH item_csr into l_item_id;
22729 IF item_csr%NOTFOUND THEN
22730 okl_api.set_message(
22731 G_APP_NAME,
22732 G_INVALID_VALUE,
22733 'CONTRACT_NUM',
22734 p_contract_number||'/'||p_line_number,
22735 'COL_NAME',
22736 'INVENTORY_ITEM_ID, NAME: ',
22737 'COL_VALUE',
22738 p_inventory_item_id||', '||p_inventory_item_name
22739 );
22740 RAISE inv_org_failed;
22741 END IF;
22742 CLOSE item_csr;
22743 ELSIF (p_line_type = 'SERVICE') THEN
22744 OPEN service_item_csr (x_inventory_org_id,
22745 p_inventory_item_id,
22746 p_inventory_item_name);
22747 FETCH service_item_csr into l_item_id;
22748 IF service_item_csr%NOTFOUND THEN
22749 okl_api.set_message(
22750 G_APP_NAME,
22751 G_INVALID_VALUE,
22752 'CONTRACT_NUM',
22753 p_contract_number||'/'||p_line_number,
22754 'COL_NAME',
22755 'INVENTORY_ITEM_ID, NAME: ',
22756 'COL_VALUE',
22757 p_inventory_item_id||', '||p_inventory_item_name
22758 );
22759 RAISE inv_org_failed;
22760 END IF;
22761 CLOSE service_item_csr;
22762 END IF; --line type
22763 x_inventory_item_id := l_item_id;
22764
22765 return;
22766
22767 EXCEPTION
22768
22769 WHEN inv_org_failed THEN
22770 IF org_csr%ISOPEN THEN
22771 CLOSE org_csr;
22772 END IF;
22773 IF item_csr%ISOPEN THEN
22774 CLOSE item_csr;
22775 END IF;
22776 IF service_item_csr%ISOPEN THEN
22777 CLOSE service_item_csr;
22778 END IF;
22779 x_return_status := OKL_API.G_RET_STS_ERROR;
22780
22781 WHEN OTHERS THEN
22782 okl_api.set_message(
22783 G_APP_NAME,
22784 G_UNEXPECTED_ERROR,
22785 'OKL_SQLCODE',
22786 SQLCODE,
22787 'OKL_SQLERRM',
22788 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
22789 );
22790 x_return_status := OKL_API.G_RET_STS_ERROR;
22791
22792 END get_inventory_org_item_id;
22793
22794 ------------------------------------------------------------------------------
22795 -- PROCEDURE get_asset_id
22796 -- It retrives Asset ID for given asset number and
22797 -- stacks Error, if any, and returns ERROR status to calling process.
22798 -- Calls:
22799 -- None
22800 -- Called By:
22801 -- load_input_record
22802 ------------------------------------------------------------------------------
22803 PROCEDURE get_asset_id(
22804 x_return_status OUT NOCOPY VARCHAR2,
22805 x_msg_count OUT NOCOPY NUMBER,
22806 x_msg_data OUT NOCOPY VARCHAR2,
22807 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
22808 p_line_number IN okl_lines_interface.line_number%TYPE,
22809 p_asset_number IN okl_lines_interface.asset_number%TYPE,
22810 x_id1 OUT NOCOPY okx_assets_v.id1%TYPE,
22811 x_id2 OUT NOCOPY okx_assets_v.id2%TYPE
22812 ) IS
22813
22814 l_proc_name VARCHAR2(35) := 'GET_ASSET_ID';
22815 asset_failed EXCEPTION;
22816 l_id1 okx_assets_v.id1%TYPE;
22817 l_id2 okx_assets_v.id2%TYPE;
22818
22819 CURSOR asset_csr (p_asset_number VARCHAR2) IS
22820 SELECT id1,
22821 id2
22822 FROM okx_assets_v
22823 WHERE asset_number = p_asset_number
22824 AND SYSDATE BETWEEN NVL(start_date_active, SYSDATE) AND NVL(end_date_active, SYSDATE);
22825
22826 BEGIN
22827 x_return_status := OKL_API.G_RET_STS_SUCCESS;
22828
22829 OPEN asset_csr (p_asset_number);
22830 FETCH asset_csr INTO l_id1,
22831 l_id2;
22832 IF asset_csr%NOTFOUND THEN
22833 okl_api.set_message(
22834 G_APP_NAME,
22835 G_INVALID_VALUE,
22836 'CONTRACT_NUM',
22837 p_contract_number||'/'||p_line_number,
22838 'COL_NAME',
22839 'ASSET_NUMBER',
22840 'COL_VALUE',
22841 p_asset_number
22842 );
22843 RAISE asset_failed;
22844 END IF;
22845
22846 CLOSE asset_csr;
22847
22848 x_id1 := l_id1;
22849 x_id2 := l_id2;
22850
22851 return;
22852
22853 EXCEPTION
22854 WHEN asset_failed THEN
22855
22856 IF asset_csr%ISOPEN THEN
22857 CLOSE asset_csr;
22858 END IF;
22859
22860 x_return_status := OKL_API.G_RET_STS_ERROR;
22861
22862 END get_asset_id;
22863
22864 ------------------------------------------------------------------------------
22865 -- PROCEDURE get_asset_key_id
22866 -- It retrives ASSET_KEY segments
22867 -- Calls:
22868 -- None
22869 -- Called By:
22870 -- load_input_record
22871 ------------------------------------------------------------------------------
22872
22873 PROCEDURE get_asset_key_id(
22874 x_return_status OUT NOCOPY VARCHAR2,
22875 x_msg_count OUT NOCOPY NUMBER,
22876 x_msg_data OUT NOCOPY VARCHAR2,
22877 p_contract_number IN okc_k_headers_v.contract_number%TYPE,
22878 p_line_number IN okc_k_lines_v.line_number%TYPE,
22879 p_comb_id IN NUMBER,
22880 p_segment1 IN VARCHAR2,
22881 p_segment2 IN VARCHAR2,
22882 p_segment3 IN VARCHAR2,
22883 p_segment4 IN VARCHAR2,
22884 p_segment5 IN VARCHAR2,
22885 p_segment6 IN VARCHAR2,
22886 p_segment7 IN VARCHAR2,
22887 p_segment8 IN VARCHAR2,
22888 p_segment9 IN VARCHAR2,
22889 p_segment10 IN VARCHAR2,
22890 x_comb_id OUT NOCOPY NUMBER
22891 ) IS
22892
22893 CURSOR flex_asset_key_csr (p_segment1 VARCHAR2,
22894 p_segment2 VARCHAR2,
22895 p_segment3 VARCHAR2,
22896 p_segment4 VARCHAR2,
22897 p_segment5 VARCHAR2,
22898 p_segment6 VARCHAR2,
22899 p_segment7 VARCHAR2,
22900 p_segment8 VARCHAR2,
22901 p_segment9 VARCHAR2,
22902 p_segment10 VARCHAR2 ) IS
22903 SELECT code_combination_id
22904 FROM fa_asset_keywords
22905 WHERE (segment1 = p_segment1
22906 OR
22907 p_segment1 IS NULL)
22908 AND (segment2 = p_segment2
22909 OR
22910 p_segment2 IS NULL)
22911 AND (segment2 = p_segment2
22912 OR
22913 p_segment2 IS NULL)
22914 AND (segment3 = p_segment3
22915 OR
22916 p_segment3 IS NULL)
22917 AND (segment4 = p_segment4
22918 OR
22919 p_segment4 IS NULL)
22920 AND (segment5 = p_segment5
22921 OR
22922 p_segment5 IS NULL)
22923 AND (segment6 = p_segment6
22924 OR
22925 p_segment6 IS NULL)
22926 AND (segment7 = p_segment7
22927 OR
22928 p_segment7 IS NULL)
22929 AND (segment8 = p_segment8
22930 OR
22931 p_segment8 IS NULL)
22932 AND (segment9 = p_segment9
22933 OR
22934 p_segment9 IS NULL)
22935 AND (segment10 = p_segment10
22936 OR
22937 p_segment10 IS NULL)
22938 AND enabled_flag <> 'N'
22939 AND TRUNC(SYSDATE) BETWEEN NVL(TRUNC(start_date_active), TRUNC(SYSDATE)) AND NVL(TRUNC(end_date_active), TRUNC(SYSDATE));
22940
22941 l_id NUMBER;
22942 asset_key_failed EXCEPTION;
22943 l_proc_name VARCHAR2(35) := 'GET_ASSET_KEY_ID';
22944
22945 BEGIN
22946
22947 x_return_status := OKL_API.G_RET_STS_SUCCESS;
22948 debug_message(l_proc_name);
22949
22950 IF (p_comb_id IS NOT NULL) THEN
22951 x_comb_id := p_comb_id;
22952 ELSIF (p_segment1 IS NOT NULL
22953 OR
22954 p_segment2 IS NOT NULL
22955 OR
22956 p_segment3 IS NOT NULL
22957 OR
22958 p_segment4 IS NOT NULL
22959 OR
22960 p_segment5 IS NOT NULL
22961 OR
22962 p_segment6 IS NOT NULL
22963 OR
22964 p_segment7 IS NOT NULL
22965 OR
22966 p_segment8 IS NOT NULL
22967 OR
22968 p_segment9 IS NOT NULL
22969 OR
22970 p_segment10 IS NOT NULL) THEN
22971
22972 debug_message('Asset key segment1: '||p_segment1);
22973 OPEN flex_asset_key_csr(
22974 p_segment1,
22975 p_segment2,
22976 p_segment3,
22977 p_segment4,
22978 p_segment5,
22979 p_segment6,
22980 p_segment7,
22981 p_segment8,
22982 p_segment9,
22983 p_segment10);
22984 FETCH flex_asset_key_csr INTO l_id;
22985 IF flex_asset_key_csr%NOTFOUND THEN
22986 raise asset_key_failed;
22987 END IF;
22988 x_comb_id := l_id;
22989 END IF;
22990
22991 EXCEPTION
22992 WHEN asset_key_failed THEN
22993 IF flex_asset_key_csr%ISOPEN THEN
22994 CLOSE flex_asset_key_csr;
22995 END IF;
22996
22997 okl_api.set_message(
22998 G_APP_NAME,
22999 G_INVALID_COMBINATION,
23000 'CONTRACT_NUM',
23001 p_contract_number||'/'||p_line_number,
23002 'COMB_TYPE',
23003 'ASSET_KEY'
23004 );
23005 x_return_status := OKL_API.G_RET_STS_ERROR;
23006
23007 WHEN OTHERS THEN
23008 okl_api.set_message(
23009 G_APP_NAME,
23010 G_UNEXPECTED_ERROR,
23011 'OKL_SQLCODE',
23012 SQLCODE,
23013 'OKL_SQLERRM',
23014 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
23015 );
23016 x_return_status := OKL_API.G_RET_STS_ERROR;
23017
23018 END get_asset_key_id;
23019
23020 ------------------------------------------------------------------------------
23021 -- PROCEDURE get_flexid
23022 -- It retrives Flex Value ID from Segments value for ASSET_CATEGORY and ASSET_LOCATION and
23023 -- stacks Error, if any, and returns ERROR status to calling process.
23024 -- Calls:
23025 -- None
23026 -- Called By:
23027 -- load_input_record
23028 ------------------------------------------------------------------------------
23029
23030 PROCEDURE get_flexid(
23031 x_return_status OUT NOCOPY VARCHAR2,
23032 x_msg_count OUT NOCOPY NUMBER,
23033 x_msg_data OUT NOCOPY VARCHAR2,
23034 p_contract_number IN okc_k_headers_v.contract_number%TYPE,
23035 p_line_number IN okc_k_lines_v.line_number%TYPE,
23036 p_type IN VARCHAR2,
23037 p_comb_id IN NUMBER,
23038 p_segment1 IN VARCHAR2,
23039 p_segment2 IN VARCHAR2,
23040 p_segment3 IN VARCHAR2,
23041 p_segment4 IN VARCHAR2,
23042 p_segment5 IN VARCHAR2,
23043 p_segment6 IN VARCHAR2,
23044 p_segment7 IN VARCHAR2,
23045 x_comb_id OUT NOCOPY NUMBER
23046 ) IS
23047 CURSOR flex_cat_csr (p_segment1 VARCHAR2,
23048 p_segment2 VARCHAR2,
23049 p_segment3 VARCHAR2,
23050 p_segment4 VARCHAR2,
23051 p_segment5 VARCHAR2,
23052 p_segment6 VARCHAR2,
23053 p_segment7 VARCHAR2 ) IS
23054 SELECT category_id
23055 FROM FA_CATEGORIES_B
23056 WHERE (segment1 = NVL(p_segment1,'NULL') OR segment1 IS NULL)
23057 AND (segment2 = NVL(p_segment2,'NULL') OR segment2 is NULL)
23058 AND (segment3 = NVL(p_segment3,'NULL') OR segment3 IS NULL)
23059 AND (segment4 = NVL(p_segment4,'NULL') OR segment4 IS NULL)
23060 AND (segment5 = NVL(p_segment5,'NULL') OR segment5 IS NULL)
23061 AND (segment6 = NVL(p_segment6,'NULL') OR segment6 IS NULL)
23062 AND (segment7 = NVL(p_segment7,'NULL') OR segment7 IS NULL)
23063 AND enabled_flag <> 'N'
23064 AND SYSDATE BETWEEN NVL(start_date_active, SYSDATE) AND NVL(end_date_active, SYSDATE);
23065
23066 CURSOR flex_loc_csr (p_segment1 VARCHAR2,
23067 p_segment2 VARCHAR2,
23068 p_segment3 VARCHAR2,
23069 p_segment4 VARCHAR2,
23070 p_segment5 VARCHAR2,
23071 p_segment6 VARCHAR2,
23072 p_segment7 VARCHAR2 ) IS
23073 SELECT location_id
23074 FROM okx_ast_locs_v
23075 WHERE (segment1 = NVL(P_segment1,'NULL') OR segment1 IS NULL)
23076 AND (segment2 = NVL(p_segment2,'NULL') OR segment2 is NULL)
23077 AND (segment3 = NVL(p_segment3,'NULL') OR segment3 IS NULL)
23078 AND (segment4 = NVL(p_segment4,'NULL') OR segment4 IS NULL)
23079 AND (segment5 = NVL(p_segment5,'NULL') OR segment5 IS NULL)
23080 AND (segment6 = NVL(p_segment6,'NULL') OR segment6 IS NULL)
23081 AND (segment7 = NVL(p_segment7,'NULL') OR segment7 IS NULL)
23082 AND enabled_flag <> 'N'
23083 AND SYSDATE BETWEEN NVL(start_date_active, SYSDATE) AND NVL(end_date_active, SYSDATE);
23084
23085 l_id NUMBER;
23086 flex_failed EXCEPTION;
23087
23088 BEGIN
23089
23090 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23091
23092 IF (p_comb_id IS NOT NULL) THEN
23093 x_comb_id := p_comb_id;
23094 ELSIF (p_segment1 IS NOT NULL
23095 OR
23096 p_segment2 IS NOT NULL
23097 OR
23098 p_segment3 IS NOT NULL
23099 OR
23100 p_segment4 IS NOT NULL
23101 OR
23102 p_segment5 IS NOT NULL
23103 OR
23104 p_segment6 IS NOT NULL
23105 OR
23106 p_segment7 IS NOT NULL) THEN
23107 IF (p_type = 'ASSET_CATEGORY') THEN
23108 OPEN flex_cat_csr(
23109 p_segment1,
23110 p_segment2,
23111 p_segment3,
23112 p_segment4,
23113 p_segment5,
23114 p_segment6,
23115 p_segment7);
23116 FETCH flex_cat_csr INTO l_id;
23117 IF flex_cat_csr%NOTFOUND THEN
23118 raise flex_failed;
23119 END IF;
23120 x_comb_id := l_id;
23121 ELSIF (p_type = 'ASSET_LOCATION') THEN
23122 OPEN flex_loc_csr(
23123 p_segment1,
23124 p_segment2,
23125 p_segment3,
23126 p_segment4,
23127 p_segment5,
23128 p_segment6,
23129 p_segment7);
23130 FETCH flex_loc_csr INTO l_id;
23131 IF flex_loc_csr%NOTFOUND THEN
23132 raise flex_failed;
23133 END IF;
23134 x_comb_id := l_id;
23135 END IF;
23136 END IF;
23137
23138 RETURN;
23139 EXCEPTION
23140 WHEN flex_failed THEN
23141 IF flex_cat_csr%ISOPEN THEN
23142 CLOSE flex_cat_csr;
23143 ELSIF flex_loc_csr%ISOPEN THEN
23144 CLOSE flex_loc_csr;
23145 END IF;
23146
23147 okl_api.set_message(
23148 G_APP_NAME,
23149 G_INVALID_COMBINATION,
23150 'CONTRACT_NUM',
23151 p_contract_number||'/'||p_line_number,
23152 'COMB_TYPE',
23153 p_type
23154 );
23155 x_return_status := OKL_API.G_RET_STS_ERROR;
23156
23157 WHEN OTHERS THEN
23158 x_return_status := OKL_API.G_RET_STS_ERROR;
23159
23160 END get_flexid;
23161
23162 ------------------------------------------------------------------------------
23163 -- PROCEDURE get_install_site_id
23164 -- It retrives Install Site Id from Install Site Name and
23165 -- stacks Error, if any, and returns ERROR status to calling process.
23166 -- Calls:
23167 -- None
23168 -- Called By:
23169 -- load_input_record
23170 ------------------------------------------------------------------------------
23171 PROCEDURE get_install_site_id(
23172 x_return_status OUT NOCOPY VARCHAR2,
23173 x_msg_count OUT NOCOPY NUMBER,
23174 x_msg_data OUT NOCOPY VARCHAR2,
23175 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
23176 p_line_number IN okl_lines_interface.line_number%TYPE,
23177 p_install_site_id IN okl_lines_interface.install_site_id%TYPE,
23178 p_install_site_number IN okl_lines_interface.install_site_number%TYPE,
23179 x_install_site_id OUT NOCOPY okl_lines_interface.install_site_id%TYPE
23180 ) IS
23181 l_proc_name VARCHAR2(35) := 'GET_INSTALL_SITE_ID';
23182 install_failed EXCEPTION;
23183 l_id1 okx_party_site_uses_v.id1%TYPE;
23184
23185 CURSOR install_csr (p_install_site_name okx_party_site_uses_v.name%TYPE,
23186 p_install_site_id okx_party_site_uses_v.id1%TYPE) IS
23187 SELECT id1
23188 FROM okx_party_site_uses_v
23189 WHERE ((party_site_number = p_install_site_name
23190 AND
23191 p_install_site_number IS NOT NULL)
23192 OR
23193 (id1 = p_install_site_id
23194 AND
23195 p_install_site_id IS NOT NULL
23196 )
23197 )
23198 AND site_use_type = 'INSTALL_AT'
23199 AND party_id = g_customer_id
23200 AND status = 'A';
23201
23202 BEGIN
23203 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23204
23205 OPEN install_csr (p_install_site_number,
23206 p_install_site_id);
23207 FETCH install_csr INTO l_id1;
23208
23209 IF install_csr%NOTFOUND THEN
23210 RAISE install_failed;
23211 END IF;
23212
23213 CLOSE install_csr;
23214 x_install_site_id := l_id1;
23215
23216 EXCEPTION
23217 WHEN install_failed THEN
23218 IF install_csr%ISOPEN THEN
23219 CLOSE install_csr;
23220 END IF;
23221 okl_api.set_message(
23222 G_APP_NAME,
23223 G_INVALID_VALUE,
23224 'CONTRACT_NUM',
23225 p_contract_number||'/'||p_line_number,
23226 'COL_NAME',
23227 'INSTALL_SITE_ID, NAME: ',
23228 'COL_VALUE',
23229 p_install_site_id||', '||p_install_site_number
23230 );
23231 x_return_status := OKL_API.G_RET_STS_ERROR;
23232
23233 END get_install_site_id;
23234
23235 ------------------------------------------------------------------------------
23236 -- PROCEDURE get_lse_id
23237 -- It retrives Line Style id for Contract Lines and
23238 -- stacks Error, if any, and returns ERROR status to calling process.
23239 -- Calls:
23240 -- Called By:
23241 -- process_other_line
23242 -- load_input_record
23243 ------------------------------------------------------------------------------
23244 PROCEDURE get_lse_id(
23245 x_return_status OUT NOCOPY VARCHAR2,
23246 x_msg_count OUT NOCOPY NUMBER,
23247 x_msg_data OUT NOCOPY VARCHAR2,
23248 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
23249 p_line_number IN okl_lines_interface.line_number%TYPE,
23250 p_lty_code IN VARCHAR2,
23251 p_top_line_lty_code IN VARCHAR2,
23252 x_lse_id OUT NOCOPY NUMBER
23253 ) IS
23254
23255 l_proc_name VARCHAR2(35) := 'GET_LSE_ID';
23256 lse_failed EXCEPTION;
23257 l_id NUMBER;
23258
23259 CURSOR top_lse_csr (p_lty_code VARCHAR2) IS
23260 SELECT id
23261 FROM OKC_LINE_STYLES_B ols,
23262 okc_subclass_top_line ostl
23263 WHERE LTY_CODE = p_lty_code
23264 AND ostl.scs_code = 'LEASE'
23265 AND ols.id = ostl.lse_id;
23266
23267 CURSOR sub_lse_csr (p_lty_code VARCHAR2,
23268 p_top_line_lty_code VARCHAR2) IS
23269 SELECT ols2.id
23270 FROM okc_line_styles_v ols1,
23271 okc_line_styles_v ols2,
23272 okc_subclass_top_line ostl
23273 WHERE ostl.scs_code = 'LEASE'
23274 AND ostl.lse_id = ols1.id
23275 AND ols1.lty_code = p_top_line_lty_code
23276 AND ols2.lty_code = p_lty_code
23277 AND ols2.lse_parent_id = ostl.lse_id;
23278
23279 BEGIN
23280
23281 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23282
23283 IF (p_top_line_lty_code IS NULL) THEN
23284 OPEN top_lse_csr(p_lty_code);
23285 FETCH top_lse_csr INTO l_id;
23286 IF top_lse_csr%NOTFOUND THEN
23287 okl_api.set_message(
23288 G_APP_NAME,
23289 G_INVALID_LTY_CODE,
23290 'LTY_CODE',
23291 p_lty_code,
23292 'CONTRACT_NUM',
23293 p_contract_number||'/'||p_line_number
23294 );
23295 RAISE lse_failed;
23296 END IF;
23297 CLOSE top_lse_csr;
23298
23299 x_lse_id := l_id;
23300 ELSE
23301 OPEN sub_lse_csr(p_lty_code,
23302 p_top_line_lty_code);
23303 FETCH sub_lse_csr INTO l_id;
23304 IF sub_lse_csr%NOTFOUND THEN
23305 okl_api.set_message(
23306 G_APP_NAME,
23307 G_INVALID_LTY_CODE,
23308 'LTY_CODE',
23309 p_lty_code,
23310 'CONTRACT_NUM',
23311 p_contract_number||'/'||p_line_number
23312 );
23313 RAISE lse_failed;
23314 END IF;
23315 CLOSE sub_lse_csr;
23316
23317 x_lse_id := l_id;
23318 END IF;
23319
23320 return;
23321
23322 EXCEPTION
23323 WHEN lse_failed THEN
23324 IF top_lse_csr%ISOPEN THEN
23325 CLOSE top_lse_csr;
23326 END IF;
23327 IF sub_lse_csr%ISOPEN THEN
23328 CLOSE sub_lse_csr;
23329 END IF;
23330 x_return_status := OKL_API.G_RET_STS_ERROR;
23331 END get_lse_id;
23332
23333 ------------------------------------------------------------------------------
23334 -- PROCEDURE validate_real_est
23335 -- It validates real estate record if applicable and
23336 -- stacks Error, if any, and returns ERROR status to calling process.
23337 -- Calls:
23338 -- Called By:
23339 -- process_other_line
23340 -- load_input_record
23341 ------------------------------------------------------------------------------
23342 PROCEDURE validate_real_est(
23343 x_return_status OUT NOCOPY VARCHAR2,
23344 x_msg_count OUT NOCOPY NUMBER,
23345 x_msg_data OUT NOCOPY VARCHAR2,
23346 p_intf_line IN OKL_LINES_INTERFACE%ROWTYPE
23347 ) IS
23348
23349 l_proc_name VARCHAR2(150) := 'OKL_LINES_INTERFACE: validate_real_est';
23350 l_progress varchar2(150);
23351 l_dummy number;
23352 l_prc boolean := false;
23353
23354 validate_real_est_failed EXCEPTION;
23355
23356 cursor c_prc (p_prc_code VARCHAR2) is
23357 select 1
23358 from fnd_lookups lok
23359 where lok.lookup_type = 'OKL_PROPERTY_CLASS_OPTIONS'
23360 and lok.lookup_code = p_prc_code;
23361
23362
23363 BEGIN
23364
23365 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23366
23367 -- real estate required columns check
23368 IF ((p_intf_line.real_est_init_direct_cost IS NOT NULL or
23369 p_intf_line.real_est_refinance_amt IS NOT NULL or
23370 p_intf_line.real_est_net_footage_rentable IS NOT NULL or
23371 p_intf_line.real_est_gross_footage IS NOT NULL or
23372 p_intf_line.real_est_property_class_code IS NOT NULL)
23373 AND
23374 NOT(p_intf_line.real_est_init_direct_cost IS NOT NULL and
23375 p_intf_line.real_est_refinance_amt IS NOT NULL and
23376 p_intf_line.real_est_net_footage_rentable IS NOT NULL and
23377 p_intf_line.real_est_property_class_code IS NOT NULL and
23378 p_intf_line.real_est_gross_footage IS NOT NULL)) THEN
23379
23380
23381 okl_api.set_message(
23382 G_APP_NAME,
23383 G_MISSING_VALUE_FOR_LINE,
23384 'CONTRACT_NUM',
23385 p_intf_line.contract_number_old||'/'||TO_CHAR(p_intf_line.line_number),
23386 'COL_NAME',
23387 --
23388 'REAL_EST_INIT_DIRECT_COST OR '||
23389 'REAL_EST_REFINANCE_AMT OR '||
23390 'REAL_EST_GROSS_FOOTAGE OR '||
23391 'REAL_EST_NET_FOOTAGE_RENTABLE OR '||
23392 'REAL_EST_PROPERTY_CLASS_CODE',
23393 --
23394 'LINE',
23395 p_intf_line.line_type
23396 );
23397
23398 raise validate_real_est_failed;
23399
23400 END IF;
23401 l_progress := 'Check required columns for real estate';
23402
23403 IF (p_intf_line.real_est_property_class_code IS NOT NULL) THEN
23404
23405 OPEN c_prc(p_intf_line.real_est_property_class_code);
23406 FETCH c_prc INTO l_dummy;
23407 l_prc := c_prc%NOTFOUND;
23408 CLOSE c_prc;
23409
23410 IF (l_prc) THEN
23411
23412 okl_api.set_message(
23413 G_APP_NAME,
23414 G_INVALID_VALUE,
23415 'CONTRACT_NUM',
23416 p_intf_line.contract_number_old,
23417 'COL_NAME',
23418 'REAL_EST_PROPERTY_CLASS_CODE',
23419 'COL_VALUE',
23420 p_intf_line.REAL_EST_PROPERTY_CLASS_CODE
23421 );
23422
23423 raise validate_real_est_failed;
23424 END IF;
23425 END IF;
23426 l_progress := 'Check property class code';
23427
23428 return;
23429
23430 EXCEPTION
23431 WHEN validate_real_est_failed THEN
23432 x_return_status := OKL_API.G_RET_STS_ERROR;
23433 debug_message(l_proc_name ||': '||l_progress);
23434 WHEN OTHERS THEN
23435 x_return_status := OKL_API.G_RET_STS_ERROR;
23436 debug_message(l_proc_name ||': '||l_progress);
23437
23438 END validate_real_est;
23439
23440 ------------------------------------------------------------------------------
23441 -- PROCEDURE get_link_asset_id
23442 -- It gets line id for Financial Asset Line (TOP) corrsponding to ASSET_NUMBER provided and
23443 -- stacks Error, if any, and returns ERROR status to calling process.
23444 -- Calls:
23445 -- None
23446 -- Called By:
23447 -- process_other_line
23448 ------------------------------------------------------------------------------
23449 PROCEDURE get_link_asset_id(
23450 x_return_status OUT NOCOPY VARCHAR2,
23451 x_msg_count OUT NOCOPY NUMBER,
23452 x_msg_data OUT NOCOPY VARCHAR2,
23453 p_asset_number IN okl_lines_interface.asset_number%TYPE,
23454 p_contract_number IN okc_k_headers_v.contract_number%TYPE,
23455 p_chr_id IN okc_k_headers_v.id%TYPE,
23456 p_line_number IN okc_k_lines_v.line_number%TYPE,
23457 x_asset_line_id OUT NOCOPY okc_k_lines_v.id%TYPE
23458 ) IS
23459
23460 l_proc_name VARCHAR2(35) := 'GET_LINK_ASSET_ID';
23461 fin_failed EXCEPTION;
23462 l_line_id okc_k_lines_v.id%TYPE;
23463
23464 CURSOR fin_csr (p_chr_id NUMBER,
23465 p_asset_number VARCHAR2) IS
23466 SELECT id
23467 FROM okc_k_lines_v
23468 WHERE name = p_asset_number
23469 AND chr_id = p_chr_id
23470 AND lse_id = (
23471 SELECT id
23472 FROM okc_line_styles_v
23473 WHERE lty_code = 'FREE_FORM1' -- to determine TOP line
23474 );
23475 BEGIN
23476 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23477 OPEN fin_csr (p_chr_id,
23478 p_asset_number);
23479 FETCH fin_csr INTO l_line_id;
23480
23481 IF fin_csr%NOTFOUND THEN
23482 okl_api.set_message(
23483 G_APP_NAME,
23484 G_FIN_ASSET_ERROR,
23485 'CONTRACT_NUM',
23486 p_contract_number,
23487 'LINE_NUM',
23488 p_line_number,
23489 'ASSET_NUM',
23490 p_asset_number
23491 );
23492 raise fin_failed;
23493 END IF;
23494
23495 CLOSE fin_csr;
23496
23497 x_asset_line_id := l_line_id;
23498 --debug_message('ID: '||x_asset_line_id);
23499 RETURN;
23500
23501 EXCEPTION
23502 WHEN fin_failed THEN
23503 IF fin_csr%ISOPEN THEN
23504 CLOSE fin_csr;
23505 END IF;
23506 x_return_status := OKL_API.G_RET_STS_ERROR;
23507
23508 WHEN OTHERS THEN
23509 okl_api.set_message(
23510 G_APP_NAME,
23511 G_UNEXPECTED_ERROR,
23512 'OKL_SQLCODE',
23513 SQLCODE,
23514 'OKL_SQLERRM',
23515 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
23516 );
23517 x_return_status := OKL_API.G_RET_STS_ERROR;
23518 END get_link_asset_id;
23519
23520 ------------------------------------------------------------------------------
23521 -- PROCEDURE validate_usage_other_line
23522 -- It validates association between Usage Line Item and Inventory Item at Model Line and
23523 -- stacks Error, if any, and returns ERROR status to calling process.
23524 -- Calls:
23525 -- Called By:
23526 ------------------------------------------------------------------------------
23527 PROCEDURE validate_usage_item_assoc(
23528 x_return_status OUT NOCOPY VARCHAR2,
23529 x_msg_count OUT NOCOPY NUMBER,
23530 x_msg_data OUT NOCOPY VARCHAR2,
23531 p_contract_number IN VARCHAR2,
23532 p_line_number IN NUMBER,
23533 p_asset_line_id IN NUMBER,
23534 p_usage_item_id IN okl_lines_interface.usage_item_id%TYPE,
23535 p_usage_item_name IN VARCHAR2,
23536 p_inv_org_id IN NUMBER
23537 ) IS
23538 l_proc_name VARCHAR2(35) := 'VALIDATE_USAGE_ITEM_ASSOC';
23539 CURSOR assoc_csr (p_usage_item_id NUMBER,
23540 p_asset_line_id NUMBER) IS
23541 SELECT 'Y'
23542 FROM okc_k_items_v item,
23543 okl_k_lines_full_v model,
23544 okc_line_styles_v style,
23545 cs_counters cc,
23546 cs_ctr_associations assoc
23547 WHERE model.lse_id = style.id
23548 AND model.id = item.cle_id
23549 AND model.cle_id = p_asset_line_id
23550 AND style.lty_code = 'ITEM'
23551 AND cc.counter_group_id = assoc.counter_group_id
23552 AND cc.usage_item_id = p_usage_item_id
23553 AND assoc.source_object_id = item.object1_id1;
23554
23555 assoc_failed EXCEPTION;
23556 l_dummy VARCHAR2(1);
23557 BEGIN
23558
23559 debug_message(l_proc_name);
23560 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23561
23562 l_dummy := 'N';
23563 OPEN assoc_csr(p_usage_item_id,
23564 p_asset_line_id);
23565 FETCH assoc_csr INTO l_dummy;
23566 IF (assoc_csr%NOTFOUND
23567 OR
23568 l_dummy = 'N') THEN
23569 okl_api.set_message(
23570 G_APP_NAME,
23571 G_INVALID_USAGE_ITEM_ASSOC,
23572 'CONTRACT_NUM',
23573 p_contract_number||'/'||p_line_number,
23574 'USAGE_ITEM',
23575 p_usage_item_name||', '||p_usage_item_id
23576 );
23577 RAISE assoc_failed;
23578 END IF;
23579 CLOSE assoc_csr;
23580
23581 RETURN;
23582
23583 EXCEPTION
23584 WHEN assoc_failed THEN
23585 IF assoc_csr%ISOPEN THEN
23586 CLOSE assoc_csr;
23587 END IF;
23588 x_return_status := OKL_API.G_RET_STS_ERROR;
23589 END validate_usage_item_assoc;
23590
23591 ------------------------------------------------------------------------------
23592 -- PROCEDURE validate_term_quote
23593 -- It validates termination quote used for Rollover fee line and returns
23594 -- quote ID to caller and
23595 -- stacks Error, if any, and returns ERROR status to calling process.
23596 -- Calls:
23597 -- Called By:
23598 ------------------------------------------------------------------------------
23599 PROCEDURE validate_term_quote(
23600 x_return_status OUT NOCOPY VARCHAR2,
23601 x_msg_count OUT NOCOPY NUMBER,
23602 x_msg_data OUT NOCOPY VARCHAR2,
23603 p_chr_id IN NUMBER,
23604 p_contract_number IN VARCHAR2,
23605 p_line_number IN NUMBER,
23606 p_term_quote_id IN okl_lines_interface.termination_quote_id%TYPE,
23607 p_term_quote_number IN okl_lines_interface.termination_quote_number%TYPE,
23608 x_term_quote_id OUT NOCOPY okl_lines_interface.termination_quote_id%TYPE
23609 ) IS
23610
23611 l_proc_name VARCHAR2(35) := 'VALIDATE_TERM_QUOTE';
23612 l_quote_id NUMBER;
23613 quote_failed EXCEPTION;
23614
23615 CURSOR qte_csr (p_qte_number VARCHAR2) IS
23616 SELECT id
23617 FROM okl_trx_quotes_b
23618 WHERE quote_number = p_qte_number;
23619
23620 BEGIN
23621
23622 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23623
23624 IF (p_term_quote_number IS NOT NULL) THEN
23625 OPEN qte_csr (p_term_quote_number);
23626 FETCH qte_csr INTO l_quote_id;
23627 IF (qte_csr%NOTFOUND) THEN
23628 okl_api.set_message(
23629 G_APP_NAME,
23630 G_INVALID_VALUE,
23631 'CONTRACT_NUM',
23632 p_contract_number||'/'||p_line_number,
23633 'COL_NAME',
23634 'TERMINATION_QUOTE_NUMBER',
23635 'COL_VALUE',
23636 p_term_quote_number
23637 );
23638
23639 RAISE quote_failed;
23640 END IF;
23641 CLOSE qte_csr;
23642 ELSE
23643 l_quote_id := p_term_quote_id;
23644 END IF;
23645
23646 -- validate quote
23647 okl_maintain_fee_pvt.validate_rollover_feeLine(
23648 p_api_version => 1.0,
23649 p_init_msg_list => OKL_API.G_FALSE,
23650 x_return_status => x_return_status,
23651 x_msg_count => x_msg_count,
23652 x_msg_data => x_msg_data,
23653 p_chr_id => p_chr_id,
23654 p_qte_id => l_quote_id
23655 --p_for_qa_check => 'T'
23656 );
23657
23658 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
23659 RAISE quote_failed;
23660 END IF;
23661
23662 x_term_quote_id := l_quote_id;
23663
23664 RETURN;
23665
23666 EXCEPTION
23667 WHEN quote_failed THEN
23668 x_return_status := OKL_API.G_RET_STS_ERROR;
23669 IF (qte_csr%ISOPEN) THEN
23670 CLOSE qte_csr;
23671 END IF;
23672
23673 END validate_term_quote;
23674
23675 ------------------------------------------------------------------------------
23676 -- PROCEDURE create_party_payment_hdr
23677 -- This procedure creates payment headers for pass throughs associated with Asset, Serive, and Fee lines
23678 -- stacks Error, if any, and returns ERROR status to calling process.
23679 -- Calls:
23680 --
23681 -- Called By:
23682 --
23683 ------------------------------------------------------------------------------
23684 PROCEDURE create_party_payment_hdr(
23685 x_return_status OUT NOCOPY VARCHAR2,
23686 x_msg_count OUT NOCOPY NUMBER,
23687 x_msg_data OUT NOCOPY VARCHAR2,
23688 p_contract_id IN okc_k_headers_b.id%TYPE,
23689 p_line_id IN okc_k_lines_b.id%TYPE,
23690 p_line_type IN okl_lines_interface.line_type%TYPE,
23691 p_pth_start_date IN okl_party_payment_hdr.passthru_start_date%TYPE,
23692 p_pth_base_payout_basis IN okl_party_payment_hdr.payout_basis%TYPE,
23693 p_pth_base_stream_code IN okl_lines_interface.pth_base_stream_code%TYPE,
23694 p_pth_base_stream_purpose_code IN okl_lines_interface.pth_base_stream_purpose_code%TYPE,
23695 p_pth_evg_payout_basis IN okl_party_payment_hdr.payout_basis%TYPE,
23696 p_pth_payout_basis_formula IN okl_party_payment_hdr.payout_basis_formula%TYPE,
23697 p_pth_evg_stream_code IN okl_lines_interface.pth_evg_stream_code%TYPE,
23698 p_pth_evg_stream_purpose_code IN okl_lines_interface.pth_evg_stream_purpose_code%TYPE,
23699 x_party_pmnt_hdr_tbl OUT NOCOPY okl_party_payments_pvt.pphv_tbl_type
23700 ) IS
23701
23702 l_proc_name VARCHAR2(35) := 'CREATE_PARTY_PAYMENT_HDR';
23703 l_return_status VARCHAR2(1);
23704 l_base_stream_type_id okl_strmtyp_source_v.id1%TYPE;
23705 l_evg_stream_type_id okl_strmtyp_source_v.id1%TYPE;
23706 l_yn VARCHAR2(1) := 'N';
23707 l_base_pmnt_hdr pphv_rec_type := NULL;
23708 l_evg_pmnt_hdr pphv_rec_type := NULL;
23709 l_pmnt_hdr_tbl_in pphv_tbl_type;
23710 l_pmnt_hdr_tbl_out pphv_tbl_type;
23711 l_counter NUMBER := 0;
23712 l_contract_number okc_k_headers_b.contract_number%TYPE;
23713 l_contract_start_date okc_k_headers_b.start_date%TYPE;
23714 party_pmnt_header_failed EXCEPTION;
23715 l_stream_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
23716
23717 CURSOR contract_csr (p_contract_id NUMBER) is
23718 SELECT contract_number, start_date
23719 FROM okl_k_headers_full_v
23720 WHERE id = p_contract_id;
23721
23722 CURSOR passthru_stream_csr (p_sty_id number, p_contract_start_date date) IS
23723 SELECT 'Y'
23724 FROM okl_stream_types_uv STL
23725 WHERE STL.id = p_sty_id
23726 AND STL.start_date <= p_contract_start_date
23727 AND (STL.end_date >= p_contract_start_date OR STL.end_date IS NULL);
23728
23729 BEGIN
23730
23731 x_return_status := OKL_API.G_RET_STS_SUCCESS;
23732
23733 OPEN contract_csr(p_contract_id);
23734 FETCH contract_csr INTO l_contract_number,l_contract_start_date;
23735
23736 IF contract_csr%NOTFOUND THEN
23737 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
23738 CLOSE contract_csr;
23739 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
23740 p_msg_name => G_LLA_CHR_ID);
23741 RAISE party_pmnt_header_failed;
23742 END IF;
23743
23744 CLOSE contract_csr;
23745
23746 IF (p_pth_base_stream_code IS NOT NULL AND
23747 p_pth_base_stream_purpose_code IS NOT NULL) THEN
23748 -- Derive the stream type ID
23749 check_stream_type_code(
23750 x_return_status => l_return_status,
23751 x_msg_count => x_msg_count,
23752 x_msg_data => x_msg_data,
23753 p_stream_type_code => p_pth_base_stream_code,
23754 p_stream_purpose => p_pth_base_stream_purpose_code,
23755 x_id1 => l_base_stream_type_id,
23756 x_name => l_stream_name
23757 );
23758 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
23759 okl_api.set_message(
23760 G_APP_NAME,
23761 G_INVALID_VALUE,
23762 'CONTRACT_NUM',
23763 l_contract_number, --||'/'||TO_CHAR(p_line_number),
23764 'COL_NAME',
23765 'PTH_BASE_STREAM_CODE, PTH_BASE_STREAM_PURPOSE_CODE',
23766 'COL_VALUE',
23767 p_pth_base_stream_code||', '||p_pth_base_stream_purpose_code
23768 );
23769 x_return_status := OKL_API.G_RET_STS_ERROR;
23770 RAISE party_pmnt_header_failed;
23771 END IF;
23772
23773 -- Check if the stream type is ID is effective
23774 OPEN passthru_stream_csr (l_base_stream_type_id, l_contract_start_date);
23775 FETCH passthru_stream_csr INTO l_yn;
23776
23777 IF passthru_stream_csr%NOTFOUND THEN
23778 CLOSE passthru_stream_csr;
23779 okl_api.set_message(
23780 G_APP_NAME,
23781 G_NO_STRM_TMPL,
23782 'CONTRACT_NUM',
23783 l_contract_number, --||'/'||p_line_number,
23784 'COL_NAME',
23785 'PTH_BASE_STREAM_CODE, PTH_BASE_STREAM_PURPOSE_CODE',
23786 'COL_VALUE',
23787 p_pth_base_stream_code||', '||p_pth_base_stream_purpose_code
23788 );
23789 RAISE party_pmnt_header_failed;
23790 ELSE
23791 CLOSE passthru_stream_csr;
23792 END IF;
23793 END IF;
23794
23795 IF (p_pth_evg_stream_code IS NOT NULL AND
23796 p_pth_evg_stream_purpose_code IS NOT NULL) THEN
23797 -- Derive the stream type ID
23798 check_stream_type_code(
23799 x_return_status => l_return_status,
23800 x_msg_count => x_msg_count,
23801 x_msg_data => x_msg_data,
23802 p_stream_type_code => p_pth_evg_stream_code,
23803 p_stream_purpose => p_pth_evg_stream_purpose_code,
23804 x_id1 => l_evg_stream_type_id,
23805 x_name => l_stream_name
23806 );
23807 IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
23808 okl_api.set_message(
23809 G_APP_NAME,
23810 G_INVALID_VALUE,
23811 'CONTRACT_NUM',
23812 l_contract_number, --||'/'||TO_CHAR(p_line_number),
23813 'COL_NAME',
23814 'PTH_EVG_STREAM_CODE, PTH_EVG_STREAM_PURPOSE_CODE',
23815 'COL_VALUE',
23816 p_pth_evg_stream_code||', '||p_pth_evg_stream_purpose_code
23817 );
23818 x_return_status := OKL_API.G_RET_STS_ERROR;
23819 RAISE party_pmnt_header_failed;
23820 END IF;
23821
23822 -- Check if the stream type is ID is effective
23823 OPEN passthru_stream_csr (l_evg_stream_type_id, l_contract_start_date);
23824 FETCH passthru_stream_csr INTO l_yn;
23825
23826 IF passthru_stream_csr%NOTFOUND THEN
23827 CLOSE passthru_stream_csr;
23828 okl_api.set_message(
23829 G_APP_NAME,
23830 G_NO_STRM_TMPL,
23831 'CONTRACT_NUM',
23832 l_contract_number, --||'/'||p_line_number,
23833 'COL_NAME',
23834 'PTH_EVG_STREAM_CODE, PTH_EVG_STREAM_PURPOSE_CODE',
23835 'COL_VALUE',
23836 p_pth_evg_stream_code||', '||p_pth_evg_stream_purpose_code
23837 );
23838 RAISE party_pmnt_header_failed;
23839 ELSE
23840 CLOSE passthru_stream_csr;
23841 END IF;
23842 END IF;
23843
23844 IF ((p_line_type = 'ASSET') AND (p_pth_evg_payout_basis IS NOT NULL)) THEN
23845 l_evg_pmnt_hdr.dnz_chr_id := p_contract_id;
23846 l_evg_pmnt_hdr.cle_id := p_line_id;
23847 l_evg_pmnt_hdr.payout_basis := p_pth_evg_payout_basis;
23848 l_evg_pmnt_hdr.payout_basis_formula := p_pth_payout_basis_formula;
23849 l_evg_pmnt_hdr.passthru_term := 'EVERGREEN';
23850 l_evg_pmnt_hdr.passthru_stream_type_id := l_evg_stream_type_id;
23851
23852 ELSIF (p_line_type in ('SERVICE','FEE')) THEN
23853 IF (p_pth_base_payout_basis IS NOT NULL) THEN
23854 l_base_pmnt_hdr.passthru_start_date := p_pth_start_date;
23855 l_base_pmnt_hdr.dnz_chr_id := p_contract_id;
23856 l_base_pmnt_hdr.cle_id := p_line_id;
23857 l_base_pmnt_hdr.payout_basis := p_pth_base_payout_basis;
23858 l_base_pmnt_hdr.passthru_term := 'BASE';
23859 l_base_pmnt_hdr.passthru_stream_type_id := l_base_stream_type_id;
23860 END IF;
23861
23862 IF (p_pth_evg_payout_basis IS NOT NULL) THEN
23863 l_evg_pmnt_hdr.dnz_chr_id := p_contract_id;
23864 l_evg_pmnt_hdr.cle_id := p_line_id;
23865 l_evg_pmnt_hdr.payout_basis := p_pth_evg_payout_basis;
23866 l_evg_pmnt_hdr.payout_basis_formula := p_pth_payout_basis_formula;
23867 l_evg_pmnt_hdr.passthru_term := 'EVERGREEN';
23868 l_evg_pmnt_hdr.passthru_stream_type_id := l_evg_stream_type_id;
23869
23870 END IF;
23871
23872 ELSIF (p_line_type IS NULL) THEN -- Evergreen pth at contract header
23873 l_evg_pmnt_hdr.dnz_chr_id := p_contract_id;
23874 l_evg_pmnt_hdr.cle_id := NULL;
23875 l_evg_pmnt_hdr.payout_basis := p_pth_evg_payout_basis;
23876 l_evg_pmnt_hdr.payout_basis_formula := p_pth_payout_basis_formula;
23877 l_evg_pmnt_hdr.passthru_term := 'EVERGREEN';
23878 l_evg_pmnt_hdr.passthru_stream_type_id := l_evg_stream_type_id;
23879 END IF;
23880
23881 IF (l_base_pmnt_hdr.dnz_chr_id IS NOT NULL) THEN
23882 l_counter := l_counter + 1;
23883 l_pmnt_hdr_tbl_in(l_counter) := l_base_pmnt_hdr;
23884 END IF;
23885
23886 IF (l_evg_pmnt_hdr.dnz_chr_id IS NOT NULL) THEN
23887 l_counter := l_counter + 1;
23888 l_pmnt_hdr_tbl_in(l_counter) := l_evg_pmnt_hdr;
23889 END IF;
23890
23891 IF (l_pmnt_hdr_tbl_in.COUNT > 0) THEN
23892 okl_party_payments_pvt.create_party_payment_hdr(
23893 p_api_version => 1.0,
23894 x_return_status => x_return_status,
23895 x_msg_count => x_msg_count,
23896 x_msg_data => x_msg_data,
23897 p_pphv_tbl => l_pmnt_hdr_tbl_in,
23898 x_pphv_tbl => l_pmnt_hdr_tbl_out
23899 );
23900 x_party_pmnt_hdr_tbl := l_pmnt_hdr_tbl_out;
23901
23902 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
23903 x_return_status := OKL_API.G_RET_STS_ERROR;
23904 RAISE party_pmnt_header_failed;
23905 END IF;
23906 END IF;
23907
23908 RETURN;
23909
23910 EXCEPTION
23911 WHEN party_pmnt_header_failed THEN
23912 x_return_status := OKL_API.G_RET_STS_ERROR;
23913
23914 END create_party_payment_hdr;
23915
23916 ------------------------------------------------------------------------------
23917 -- PROCEDURE process_other_line
23918 -- It process SERVICE, FEE lines and calls API to create reecord in respective tables and
23919 -- stacks Error, if any, and returns ERROR status to calling process.
23920 -- Calls:
23921 -- get_link_asset_id
23922 -- get_lse_id
23923 -- get_inventory_org_item_id
23924 -- Called By:
23925 -- load_input_record
23926 ------------------------------------------------------------------------------
23927 PROCEDURE process_other_line(
23928 x_return_status OUT NOCOPY VARCHAR2,
23929 x_msg_count OUT NOCOPY NUMBER,
23930 x_msg_data OUT NOCOPY VARCHAR2,
23931 p_contract_number IN okl_header_interface.contract_number_old%TYPE,
23932 p_chr_id IN okc_k_headers_v.id%TYPE,
23933 p_line_number IN okl_lines_interface.line_number%TYPE,
23934 p_line_type IN okl_lines_interface.line_type%TYPE,
23935 p_line_type_prev IN okl_lines_interface.line_type%TYPE,
23936 p_inv_item_id IN okl_lines_interface.inventory_item_id%TYPE,
23937 p_inv_org_id IN okl_header_interface.inventory_organization_id%TYPE,
23938 p_line_amount IN okl_lines_interface.amount%TYPE,
23939 p_link_asset_amount IN okl_lines_interface.link_asset_amount%TYPE,
23940 p_init_direct_cost IN okl_lines_interface.initial_direct_cost%TYPE,
23941 p_fee_code IN okl_lines_interface.fee_code%TYPE,
23942 p_stream_purpose IN okl_lines_interface.stream_purpose_code%TYPE,
23943 p_fee_type IN okl_lines_interface.fee_type%TYPE,
23944 p_asset_number IN okl_lines_interface.asset_number%TYPE,
23945 p_currency_code IN okl_lines_interface.currency_code%TYPE,
23946 p_usage_item_name IN okl_lines_interface.usage_item_name%TYPE,
23947 p_usage_item_id IN okl_lines_interface.usage_item_id%TYPE,
23948 p_header_start_date IN DATE,
23949 p_header_end_date IN DATE,
23950 p_line_start_date IN DATE,
23951 p_line_end_date IN DATE,
23952 p_inv_item_id_prev IN okl_lines_interface.inventory_item_id%TYPE,
23953 p_term_quote_id IN OKL_LINES_INTERFACE.TERMINATION_QUOTE_ID%TYPE,
23954 p_term_quote_number IN OKL_LINES_INTERFACE.TERMINATION_QUOTE_NUMBER%TYPE,
23955 x_inv_item_id_prev OUT NOCOPY okl_lines_interface.inventory_item_id%TYPE,
23956 p_cle_id IN okl_k_lines_v.id%TYPE,
23957 x_cle_id OUT NOCOPY okc_k_lines_v.id%TYPE,
23958 x_sub_cle_id OUT NOCOPY okc_k_lines_v.id%TYPE, -- Bug# 3110115
23959 p_new_line_flag IN okl_lines_interface.explicit_new_line_flag%TYPE,
23960 p_pth_base_payout_basis IN okl_lines_interface.pth_base_payout_basis%TYPE,
23961 p_pth_base_stream_code IN okl_lines_interface.pth_base_stream_code%TYPE,
23962 p_pth_base_stream_purpose_code IN okl_lines_interface.pth_base_stream_purpose_code%TYPE,
23963 p_pth_start_date IN okl_lines_interface.pth_start_date%TYPE,
23964 p_pth_evg_payout_basis IN okl_lines_interface.pth_evg_payout_basis%TYPE,
23965 p_pth_payout_basis_formula IN okl_lines_interface.pth_payout_basis_formula%TYPE,
23966 p_pth_evg_stream_code IN okl_lines_interface.pth_evg_stream_code%TYPE,
23967 p_pth_evg_stream_purpose_code IN okl_lines_interface.pth_evg_stream_purpose_code%TYPE,
23968 p_fee_purpose_code IN okl_lines_interface.fee_purpose_code%TYPE
23969 ) IS
23970 l_proc_name VARCHAR2(35) := 'PROCESS_OTHER_LINE';
23971 x_lse_id okc_line_styles_v.id%TYPE;
23972 x_inv_org_id NUMBER;
23973 x_inv_item_id NUMBER;
23974 x_asset_line_id okc_k_lines_v.id%TYPE;
23975 l_lty_code okc_line_styles_v.lty_code%TYPE;
23976 l_link_lty_code okc_line_styles_v.lty_code%TYPE;
23977 l_link_top_code VARCHAR2(35);
23978 x_stream_type_id NUMBER;
23979 x_usage_item_id NUMBER;
23980 x_usage_id2 NUMBER;
23981
23982 p_klev_rec klev_rec_type;
23983 p_clev_rec clev_rec_type;
23984 x_klev_rec klev_rec_type;
23985 x_clev_rec clev_rec_type;
23986
23987 l_klev_rec klev_rec_type;
23988 l_clev_rec clev_rec_type;
23989 l_capital_amount okl_k_lines.capital_amount%type;
23990
23991 p_cimv_rec okl_okc_migration_pvt.cimv_rec_type;
23992 x_cimv_rec okl_okc_migration_pvt.cimv_rec_type;
23993
23994 service_failed EXCEPTION;
23995 l_progress VARCHAR2(10) := '100.1';
23996
23997 l_fee_types_rec fee_types_rec_type;
23998 x_fee_types_rec fee_types_rec_type;
23999
24000 x_term_quote_id NUMBER;
24001
24002 CURSOR fee_vendor_csr (p_contract_number OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
24003 p_line_number OKL_LINES_INTERFACE.LINE_NUMBER%TYPE) IS
24004 SELECT fees_vendor_name,
24005 fees_vendor_id
24006 FROM okl_party_roles_interface
24007 WHERE contract_number_old = p_contract_number
24008 AND line_number = p_line_number;
24009
24010 CURSOR capital_amount(p_line_id OKL_K_LINES.ID%TYPE)
24011 IS
24012 SELECT nvl(capital_amount , 0)
24013 from okl_k_lines
24014 where id = p_line_id;
24015
24016 CURSOR service_item_csr (p_inv_item_id OKX_SYSTEM_ITEMS_V.ID1%TYPE,
24017 p_inv_org_id OKX_SYSTEM_ITEMS_V.ID2%TYPE) IS
24018 SELECT name
24019 FROM okx_system_items_v
24020 WHERE id1 = p_inv_item_id
24021 AND id2 = p_inv_org_id;
24022
24023 l_fee_vendor_name OKL_PARTY_ROLES_INTERFACE.FEES_VENDOR_NAME%TYPE;
24024 l_fee_vendor_id OKL_PARTY_ROLES_INTERFACE.FEES_VENDOR_ID%TYPE;
24025
24026 l_service_item_name OKX_SYSTEM_ITEMS_V.NAME%TYPE;
24027
24028 -- passthrough
24029 x_party_pmnt_hdr_tbl_out pphv_tbl_type;
24030 l_counter NUMBER;
24031 -- passthrough
24032
24033 l_stream_name OKL_STRMTYP_SOURCE_V.NAME%TYPE;
24034
24035 BEGIN
24036
24037 x_return_status := OKL_API.G_RET_STS_SUCCESS;
24038 p_klev_rec := NULL;
24039 p_clev_rec := NULL;
24040
24041 -- Set line_type based parameters
24042
24043 IF (p_line_type = 'SERVICE') THEN -- SERVICE line
24044 l_lty_code := 'SOLD_SERVICE';
24045 l_link_lty_code := 'LINK_SERV_ASSET';
24046 l_link_top_code := 'OKX_SERVICE';
24047 ELSIF (p_line_type = 'FEE') THEN -- FEE line
24048 l_lty_code := 'FEE';
24049 l_link_lty_code := 'LINK_FEE_ASSET';
24050 l_link_top_code := 'OKL_STRMTYP';
24051 ELSIF (p_line_type = 'USAGE') THEN -- USAGE line
24052 l_lty_code := 'USAGE';
24053 l_link_lty_code := 'LINK_USAGE_ASSET';
24054 l_link_top_code := NULL; --'OKL_USAGE';
24055 END IF;
24056
24057 l_progress := '100.2';
24058 x_inv_item_id := p_inv_item_id;
24059 x_inv_org_id := p_inv_org_id;
24060
24061 IF (p_line_type = 'FEE') THEN
24062
24063 check_stream_type_code(
24064 x_return_status => x_return_status,
24065 x_msg_count => x_msg_count,
24066 x_msg_data => x_msg_data,
24067 p_stream_type_code => p_fee_code,
24068 p_stream_purpose => p_stream_purpose,
24069 x_id1 => x_stream_type_id,
24070 x_name => l_stream_name
24071 );
24072 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24073 x_return_status := OKL_API.G_RET_STS_ERROR;
24074 RAISE service_failed;
24075 END IF;
24076
24077
24078 --
24079 -- UDS 10/27
24080 -- Check whether the stream is present in template for this contract
24081 --
24082
24083 x_inv_item_id := x_stream_type_id;
24084
24085 /* Added on check_line_literal
24086 validate_fee_type(
24087 x_return_status => x_return_status,
24088 p_fee_type => p_fee_type
24089 );
24090
24091 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24092 okl_api.set_message(
24093 G_APP_NAME,
24094 G_INVALID_VALUE,
24095 'CONTRACT_NUM',
24096 p_contract_number,
24097 'COL_NAME',
24098 'FEE_TYPE',
24099 'COL_VALUE',
24100 p_fee_type
24101 );
24102 RAISE service_failed;
24103 END IF;
24104 */
24105
24106 ELSIF (p_line_type = 'USAGE') THEN
24107 get_usage_item_id(
24108 x_return_status => x_return_status,
24109 p_usage_item_name => p_usage_item_name,
24110 p_usage_item_id => p_usage_item_id,
24111 p_org_id => p_inv_org_id,
24112 x_usage_item_id => x_usage_item_id,
24113 x_usage_id2 => x_usage_id2
24114 );
24115 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24116 okl_api.set_message(
24117 G_APP_NAME,
24118 G_INVALID_VALUE,
24119 'CONTRACT_NUM',
24120 p_contract_number,
24121 'COL_NAME',
24122 'USAGE_ITEM_NAME, ID',
24123 'COL_VALUE',
24124 p_usage_item_name||', '||p_usage_item_id
24125 );
24126 RAISE service_failed;
24127 END IF;
24128
24129 x_inv_item_id := x_usage_item_id;
24130 END IF;
24131
24132 l_progress := '100.3';
24133
24134 debug_message('------>Line number: '||p_line_number);
24135 debug_message('------>Prev Line type: '||p_line_type_prev);
24136 debug_message('------>Curr Line type: '||p_line_type);
24137 debug_message('------>Prec Item id : '||p_inv_item_id_prev);
24138 debug_message('------>Curr Item id : '||x_inv_item_id);
24139 -- Dont' create Top Line for same Item and Line type, create link_asset line only
24140 -- Bug 4092764: creaet top line if explicit_new_line_flag = 'Y'
24141 --
24142 -- Check for validity of the same flag
24143 -- If item and/or line type does not match
24144 -- but explicit_new_line_flag = 'N'
24145 -- raise error
24146
24147 IF ( (p_inv_item_id_prev <> x_inv_item_id
24148 OR
24149 p_line_type_prev <> p_line_type)
24150 AND
24151 p_new_line_flag = 'N') THEN
24152 okl_api.set_message(
24153 G_APP_NAME,
24154 G_INVALID_NEW_LINE_REQ,
24155 'CONTRACT_NUM',
24156 p_contract_number,
24157 'LINE_TYPE',
24158 p_line_type||'/'||p_line_number,
24159 'NEW_LINE_FLAG',
24160 p_new_line_flag
24161 );
24162 RAISE service_failed;
24163 END IF;
24164
24165 IF (p_inv_item_id_prev <> x_inv_item_id
24166 OR
24167 p_line_type_prev <> p_line_type
24168 OR
24169 NVL(p_new_line_flag, 'N') = 'Y'
24170 ) THEN -- for same inventory item create link asset line only
24171
24172 --create a blank TOP line
24173
24174 get_lse_id(
24175 x_return_status => x_return_status,
24176 x_msg_count => x_msg_count,
24177 x_msg_data => x_msg_data,
24178 p_contract_number => p_contract_number,
24179 p_line_number => p_line_number,
24180 p_lty_code => l_lty_code,
24181 p_top_line_lty_code => NULL,
24182 x_lse_id => x_lse_id
24183 );
24184 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24185 x_return_status := OKL_API.G_RET_STS_ERROR;
24186 RAISE service_failed;
24187 END IF;
24188 p_clev_rec.chr_id := p_chr_id;
24189 p_clev_rec.dnz_chr_id := p_chr_id;
24190 p_clev_rec.lse_id := x_lse_id;
24191 p_clev_rec.line_number := p_line_number;
24192 p_clev_rec.sts_code := 'NEW';
24193 p_clev_rec.exception_yn := 'N';
24194 p_clev_rec.display_sequence := 1;
24195 p_clev_rec.currency_code := p_currency_code;
24196 p_klev_rec.amount := p_line_amount;
24197 p_klev_rec.initial_direct_cost := p_init_direct_cost;
24198 p_klev_rec.fee_type := p_fee_type;
24199
24200 --
24201 -- Populate capital amount for CAPITALIZED FEE line
24202 -- Bug 3449762
24203 --
24204 IF ( p_line_type = 'FEE'
24205 AND
24206 p_fee_type = 'CAPITALIZED' ) THEN
24207 p_klev_rec.capital_amount := p_line_amount;
24208 END IF; -- capitalized fee
24209
24210 IF ( p_line_type = 'FEE'
24211 AND
24212 p_klev_rec.initial_direct_cost IS NOT NULL
24213 AND
24214 p_klev_rec.initial_direct_cost > p_klev_rec.amount) THEN
24215
24216 OKL_API.SET_MESSAGE(
24217 G_APP_NAME,
24218 G_INIT_DIRC_COST,
24219 'CONTRACT_NUM',
24220 p_contract_number,
24221 'LINE_NUM',
24222 p_line_number
24223 );
24224
24225 x_return_status := OKL_API.G_RET_STS_ERROR;
24226 RAISE service_failed;
24227
24228 END IF;
24229
24230 p_clev_rec.start_date := NVL(p_line_start_date, p_header_start_date);
24231 p_clev_rec.end_date := NVL(p_line_end_date,p_header_end_date);
24232
24233 /*
24234 --
24235 -- Rollover Fee line validation
24236 --
24237 IF (p_line_type = 'FEE'
24238 AND
24239 p_fee_type = 'ROLLOVER') THEN
24240
24241 validate_term_quote(
24242 x_return_status => x_return_status,
24243 x_msg_count => x_msg_count,
24244 x_msg_data => x_msg_data,
24245 p_chr_id => p_chr_id,
24246 p_contract_number => p_contract_number,
24247 p_line_number => p_line_number,
24248 p_term_quote_id => p_term_quote_id,
24249 p_term_quote_number => p_term_quote_number,
24250 x_term_quote_id => x_term_quote_id
24251 );
24252
24253 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24254 x_return_status := OKL_API.G_RET_STS_ERROR;
24255 RAISE service_failed;
24256 END IF;
24257
24258 p_klev_rec.qte_id := x_term_quote_id;
24259
24260 END IF; -- end Rollover
24261 */
24262 -- service name
24263 IF (p_line_type = 'SERVICE') THEN
24264 l_service_item_name := NULL;
24265
24266 OPEN service_item_csr(p_inv_item_id,
24267 p_inv_org_id);
24268 FETCH service_item_csr INTO l_service_item_name;
24269 CLOSE service_item_csr;
24270
24271 p_clev_rec.name := l_service_item_name;
24272 ELSIF (p_line_type = 'FEE') THEN
24273 p_klev_rec.fee_purpose_code := p_fee_purpose_code;
24274 p_clev_rec.name := l_stream_name;
24275 END IF;
24276 -- Fee type validation
24277 IF (p_line_type = 'FEE') THEN
24278
24279
24280 debug_message('------>Validate Fee TYpe');
24281
24282 l_fee_types_rec.dnz_chr_id := p_chr_id;
24283 l_fee_types_rec.fee_type := p_fee_type;
24284 l_fee_types_rec.item_id1 := x_inv_item_id;
24285 l_fee_types_rec.item_id2 := '#';
24286 l_fee_types_rec.effective_from := p_clev_rec.start_date;
24287 l_fee_types_rec.effective_to := p_clev_rec.end_date;
24288 l_fee_types_rec.amount := p_line_amount;
24289 l_fee_types_rec.initial_direct_cost := p_init_direct_cost;
24290
24291 l_fee_vendor_name := NULL;
24292 l_fee_vendor_id := NULL;
24293
24294 OPEN fee_vendor_csr(p_contract_number,
24295 p_line_number);
24296 FETCH fee_vendor_csr INTO l_fee_vendor_name,
24297 l_fee_vendor_id;
24298 CLOSE fee_vendor_csr;
24299
24300 IF (l_fee_vendor_name IS NOT NULL) THEN
24301
24302 get_vendor_id (
24303 x_return_status => x_return_status,
24304 x_msg_count => x_msg_count,
24305 x_msg_data => x_msg_data,
24306 p_contract_number => p_contract_number,
24307 p_line_number => p_line_number,
24308 x_vendor_id => l_fee_vendor_id,
24309 p_vendor_name => l_fee_vendor_name
24310 );
24311
24312 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24313 RAISE service_failed;
24314 END IF;
24315 END IF;
24316
24317 l_fee_types_rec.party_id1 := l_fee_vendor_id;
24318 l_fee_types_rec.party_id2 := '#';
24319
24320 l_fee_types_rec.roll_qt := p_term_quote_number;
24321 l_fee_types_rec.qte_id := p_term_quote_id;
24322
24323 okl_maintain_fee_pvt.validate_fee_type(
24324 p_api_version => 1.0,
24325 p_init_msg_list => OKL_API.G_FALSE,
24326 x_return_status => x_return_status,
24327 x_msg_count => x_msg_count,
24328 x_msg_data => x_msg_data,
24329 p_fee_types_rec => l_fee_types_rec,
24330 x_fee_types_rec => x_fee_types_rec
24331 );
24332
24333 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24334 RAISE service_failed;
24335 END IF;
24336
24337 debug_message('=====> Qte ID: '||x_fee_types_rec.qte_id);
24338 p_klev_rec.qte_id := x_fee_types_rec.qte_id;
24339
24340 END IF; -- fee type validation
24341
24342 okl_contract_pub.create_contract_line(
24343 p_api_version => 1.0,
24344 p_init_msg_list => OKL_API.G_FALSE,
24345 x_return_status => x_return_status,
24346 x_msg_count => x_msg_count,
24347 x_msg_data => x_msg_data,
24348 p_clev_rec => p_clev_rec,
24349 p_klev_rec => p_klev_rec,
24350 x_clev_rec => x_clev_rec,
24351 x_klev_rec => x_klev_rec
24352 );
24353
24354 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24355 x_return_status := OKL_API.G_RET_STS_ERROR;
24356 RAISE service_failed;
24357 END IF;
24358
24359 x_cle_id := x_clev_rec.id;
24360 l_progress := '100.4';
24361
24362 -- create item line to link TOP line, created above, to MTL_SYSTEM_ITEMS
24363
24364 p_cimv_rec := NULL;
24365 p_cimv_rec.cle_id := x_cle_id;
24366 p_cimv_rec.chr_id := p_chr_id;
24367 p_cimv_rec.dnz_chr_id := p_chr_id;
24368
24369 IF (p_line_type = 'USAGE') THEN
24370 p_cimv_rec.object1_id1 := NULL;
24371 p_cimv_rec.object1_id2 := NULL;
24372 p_cimv_rec.jtot_object1_code := NULL;
24373 ELSIF (p_line_type = 'FEE') THEN
24374 p_cimv_rec.object1_id1 := x_stream_type_id;
24375 p_cimv_rec.object1_id2 := '#';
24376 p_cimv_rec.jtot_object1_code := l_link_top_code;
24377 ELSE
24378 p_cimv_rec.object1_id1 := x_inv_item_id;
24379 p_cimv_rec.object1_id2 := x_inv_org_id;
24380 p_cimv_rec.jtot_object1_code := l_link_top_code;
24381 END IF;
24382
24383 p_cimv_rec.exception_yn := 'N';
24384
24385 OKL_OKC_MIGRATION_PVT.create_contract_item(
24386 p_api_version => 1.0,
24387 p_init_msg_list => OKL_API.G_FALSE,
24388 x_return_status => x_return_status,
24389 x_msg_count => x_msg_count,
24390 x_msg_data => x_msg_data,
24391 p_cimv_rec => p_cimv_rec,
24392 x_cimv_rec => x_cimv_rec
24393 );
24394 l_progress := '100.5';
24395 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24396 x_return_status := OKL_API.G_RET_STS_ERROR;
24397 RAISE service_failed;
24398 END IF;
24399
24400 debug_message('Top line created for line# : '|| p_line_number);
24401 -- passthrough
24402 IF ((p_pth_base_payout_basis is NOT NULL) OR (p_pth_evg_payout_basis is NOT NULL)) THEN
24403 IF ((p_line_type = 'SERVICE') OR
24404 ((p_line_type = 'FEE') AND (p_fee_type = 'PASSTHROUGH'))) THEN
24405 debug_message('------>Create party payment starts for SERVICE / FEE : ' || p_line_type || '/'|| p_line_number);
24406 create_party_payment_hdr(
24407 x_return_status => x_return_status,
24408 x_msg_count => x_msg_count,
24409 x_msg_data => x_msg_data,
24410 p_contract_id => x_clev_rec.dnz_chr_id,
24411 p_line_id => x_clev_rec.id,
24412 p_line_type => p_line_type,
24413 p_pth_start_date => p_pth_start_date,
24414 p_pth_base_payout_basis => p_pth_base_payout_basis,
24415 p_pth_base_stream_code => p_pth_base_stream_code,
24416 p_pth_base_stream_purpose_code => p_pth_base_stream_purpose_code,
24417 p_pth_evg_payout_basis => p_pth_evg_payout_basis,
24418 p_pth_payout_basis_formula => p_pth_payout_basis_formula,
24419 p_pth_evg_stream_code => p_pth_evg_stream_code,
24420 p_pth_evg_stream_purpose_code => p_pth_evg_stream_purpose_code,
24421 x_party_pmnt_hdr_tbl => x_party_pmnt_hdr_tbl_out
24422 );
24423 debug_message('------>Create party payment ends '||x_return_status);
24424 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24425 x_return_status := OKL_API.G_RET_STS_ERROR;
24426 RAISE service_failed;
24427 END IF;
24428 END IF;
24429 IF (x_party_pmnt_hdr_tbl_out.COUNT > 0 )THEN
24430 l_counter := x_party_pmnt_hdr_tbl_out.FIRST;
24431 LOOP
24432 IF (x_party_pmnt_hdr_tbl_out(l_counter).passthru_term = 'BASE') THEN
24433 g_base_pmnt_hdr := x_party_pmnt_hdr_tbl_out(l_counter);
24434 ELSIF (x_party_pmnt_hdr_tbl_out(l_counter).passthru_term = 'EVERGREEN') THEN
24435 g_evg_pmnt_hdr := x_party_pmnt_hdr_tbl_out(l_counter);
24436 END IF;
24437 EXIT WHEN (l_counter = x_party_pmnt_hdr_tbl_out.LAST);
24438 l_counter := x_party_pmnt_hdr_tbl_out.NEXT(l_counter);
24439 END LOOP;
24440 END IF;
24441 END IF;
24442 ELSE
24443 x_cle_id := p_cle_id; -- use previous TOP line ID
24444 END IF; --inv_item_id
24445
24446
24447 IF (p_asset_number IS NOT NULL) THEN
24448
24449 -- create link asset line only in case asset link is present
24450 -- and link it to blank TOP line
24451 get_lse_id(
24452 x_return_status => x_return_status,
24453 x_msg_count => x_msg_count,
24454 x_msg_data => x_msg_data,
24455 p_contract_number => p_contract_number,
24456 p_line_number => p_line_number,
24457 p_lty_code => l_link_lty_code,
24458 p_top_line_lty_code => l_lty_code,
24459 x_lse_id => x_lse_id
24460 );
24461 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24462 x_return_status := OKL_API.G_RET_STS_ERROR;
24463 RAISE service_failed;
24464 END IF;
24465
24466 p_clev_rec.cle_id := x_cle_id;
24467 p_clev_rec.chr_id := NULL;
24468 p_clev_rec.dnz_chr_id := p_chr_id;
24469 p_clev_rec.lse_id := x_lse_id;
24470 p_clev_rec.line_number := p_line_number;
24471 p_clev_rec.name := p_asset_number;
24472 p_clev_rec.sts_code := 'NEW';
24473 p_clev_rec.exception_yn := 'N';
24474 p_clev_rec.display_sequence := 1;
24475 /*
24476 IF(p_line_start_date IS NULL) THEN
24477 p_clev_rec.start_date := p_line_start_date;
24478 ELSE
24479 p_clev_rec.start_date := p_header_start_date;
24480 END IF;
24481 */
24482 p_clev_rec.start_date := NVL(p_line_start_date, p_header_start_date);
24483 p_clev_rec.end_date := NVL(p_line_end_date,p_header_end_date);
24484 p_clev_rec.currency_code := p_currency_code;
24485
24486 --Bug 4688098
24487 -- p_klev_rec.capital_amount := p_link_asset_amount;
24488 IF ( p_line_type = 'FEE' AND p_fee_type = 'CAPITALIZED' )
24489 OR ( p_line_type = 'SERVICE')
24490 THEN
24491 p_klev_rec.capital_amount := p_link_asset_amount;
24492 ELSE
24493 p_klev_rec.amount :=p_link_asset_amount;
24494 END IF ;
24495 --Bug 4688098 : end
24496
24497
24498 okl_contract_pub.create_contract_line(
24499 p_api_version => 1.0,
24500 p_init_msg_list => OKL_API.G_FALSE,
24501 x_return_status => x_return_status,
24502 x_msg_count => x_msg_count,
24503 x_msg_data => x_msg_data,
24504 p_clev_rec => p_clev_rec,
24505 p_klev_rec => p_klev_rec,
24506 x_clev_rec => x_clev_rec,
24507 x_klev_rec => x_klev_rec
24508 );
24509 l_progress := '100.6';
24510
24511 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24512 x_return_status := OKL_API.G_RET_STS_ERROR;
24513 RAISE service_failed;
24514 END IF;
24515
24516 x_sub_cle_id := x_clev_rec.id; -- ID of the sub-line, Bug# 3110115
24517
24518 --link this line to financial asset line
24519 get_link_asset_id(
24520 x_return_status => x_return_status,
24521 x_msg_count => x_msg_count,
24522 x_msg_data => x_msg_data,
24523 p_asset_number => p_asset_number,
24524 p_contract_number => p_contract_number,
24525 p_chr_id => p_chr_id,
24526 p_line_number => p_line_number,
24527 x_asset_line_id => x_asset_line_id
24528 );
24529
24530 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24531 x_return_status := OKL_API.G_RET_STS_ERROR;
24532 RAISE service_failed;
24533 END IF;
24534
24535 --
24536 -- Validate Usage Item here
24537 -- check for association between Usage Item and Inventory Item for USAGE line
24538 --
24539 IF (p_line_type = 'USAGE') THEN
24540 validate_usage_item_assoc(
24541 x_return_status => x_return_status,
24542 x_msg_count => x_msg_count,
24543 x_msg_data => x_msg_data,
24544 p_contract_number => p_contract_number,
24545 p_line_number => p_line_number,
24546 p_asset_line_id => x_asset_line_id,
24547 p_usage_item_name => p_usage_item_name,
24548 p_usage_item_id => x_usage_item_id,
24549 p_inv_org_id => x_inv_org_id
24550 );
24551 l_progress := '100.7';
24552 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24553 RAISE service_failed;
24554 END IF;
24555 END IF;
24556
24557 p_cimv_rec := NULL;
24558 p_cimv_rec.cle_id := x_clev_rec.id;
24559 p_cimv_rec.chr_id := p_chr_id;
24560 p_cimv_rec.dnz_chr_id := p_chr_id;
24561 p_cimv_rec.object1_id1 := x_asset_line_id;
24562 p_cimv_rec.object1_id2 := '#';
24563 p_cimv_rec.jtot_object1_code := 'OKX_COVASST';
24564 p_cimv_rec.exception_yn := 'N';
24565
24566 okl_okc_migration_pvt.create_contract_item(
24567 p_api_version => 1.0,
24568 p_init_msg_list => OKL_API.G_FALSE,
24569 x_return_status => x_return_status,
24570 x_msg_count => x_msg_count,
24571 x_msg_data => x_msg_data,
24572 p_cimv_rec => p_cimv_rec,
24573 x_cimv_rec => x_cimv_rec
24574 );
24575 l_progress := '100.8';
24576 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24577 x_return_status := OKL_API.G_RET_STS_ERROR;
24578 RAISE service_failed;
24579 END IF;
24580
24581 -- Bug 4190051 Start
24582
24583 IF ( p_line_type = 'FEE' AND p_fee_type = 'CAPITALIZED' ) THEN
24584 null; -- Update asset x_asset_line_id with p_link_asset_amount
24585 l_clev_rec.id := x_asset_line_id;
24586 l_klev_rec.id := x_asset_line_id;
24587
24588 OPEN capital_amount(x_asset_line_id);
24589 FETCH capital_amount into l_capital_amount;
24590 CLOSE capital_amount;
24591
24592 /*begin
24593 select nvl(capital_amount , 0)
24594 into l_capital_amount
24595 from okl_k_lines
24596 where id = x_asset_line_id;
24597 end;*/
24598 l_klev_rec.capital_amount := p_link_asset_amount + l_capital_amount;
24599
24600 okl_contract_pub.update_contract_line
24601 (p_api_version => 1.0,
24602 p_init_msg_list => OKL_API.G_FALSE,
24603 x_return_status => x_return_status,
24604 x_msg_count => x_msg_count,
24605 x_msg_data => x_msg_data,
24606 p_clev_rec => l_clev_rec,
24607 p_klev_rec => l_klev_rec,
24608 x_clev_rec => x_clev_rec,
24609 x_klev_rec => x_klev_rec);
24610 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
24611 RAISE OKL_API.G_EXCEPTION_ERROR;
24612 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
24613 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
24614 END IF;
24615
24616 END IF; -- capitalized fee
24617
24618 -- Bug 4190051 Finish
24619
24620 END IF; -- p_asset_number IS NOT NULL
24621
24622 IF (p_line_type = 'FEE') THEN
24623 x_inv_item_id_prev := x_stream_type_id; -- to keep login in-line with SERVICE and USAGE line
24624 ELSIF (p_line_type = 'USAGE') THEN
24625 x_inv_item_id_prev := x_usage_item_id;
24626 ELSE
24627 x_inv_item_id_prev := x_inv_item_id; --copy current inventory item id to _prev
24628 END IF;
24629
24630 RETURN;
24631
24632 EXCEPTION
24633 WHEN service_failed THEN
24634 x_return_status := OKL_API.G_RET_STS_ERROR;
24635
24636 WHEN OTHERS THEN
24637 debug_message(l_progress);
24638
24639 okl_api.set_message(
24640 G_APP_NAME,
24641 G_UNEXPECTED_ERROR,
24642 'OKL_SQLCODE',
24643 SQLCODE,
24644 'OKL_SQLERRM',
24645 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
24646 );
24647 x_return_status := OKL_API.G_RET_STS_ERROR;
24648
24649 END process_other_line;
24650
24651 ------------------------------------------------------------------------------
24652 -- PROCEDURE get_qcl_id
24653 -- It returns qcl_id for QA checker to run
24654 -- Calls:
24655 -- Called By:
24656 ------------------------------------------------------------------------------
24657
24658 PROCEDURE get_qcl_id(
24659 x_return_status OUT NOCOPY VARCHAR2,
24660 p_qcl_name IN VARCHAR2,
24661 x_qcl_id OUT NOCOPY NUMBER) IS
24662
24663 CURSOR qcl_csr (p_qcL_name VARCHAR2) IS
24664 SELECT id
24665 FROM okc_qa_check_lists_v
24666 WHERE name = p_qcl_name;
24667
24668 l_id NUMBER;
24669
24670 BEGIN
24671
24672 x_return_status := OKL_API.G_RET_STS_SUCCESS;
24673
24674 OPEN qcl_csr(p_qcl_name);
24675 FETCH qcl_csr INTO l_id;
24676 CLOSE qcl_csr;
24677
24678 x_qcl_id := l_id;
24679
24680 END get_qcl_id;
24681
24682 ------------------------------------------------------------------------------
24683 -- PROCEDURE validate_credit_line
24684 -- It validates credit line against customer and customer account of the
24685 -- contract to be imported
24686 -- Calls:
24687 -- Called By:
24688 ------------------------------------------------------------------------------
24689 PROCEDURE validate_credit_line(
24690 x_return_status OUT NOCOPY VARCHAR2,
24691 x_msg_count OUT NOCOPY NUMBER,
24692 x_msg_data OUT NOCOPY VARCHAR2,
24693 p_contract_number IN OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE,
24694 p_template_id IN NUMBER,
24695 p_credit_line_id IN NUMBER,
24696 p_customer_id IN OKL_HEADER_INTERFACE.CUSTOMER_ID%TYPE,
24697 p_customer_number IN OKL_HEADER_INTERFACE.CUSTOMER_NUMBER%TYPE,
24698 p_customer_account_id IN OKL_HEADER_INTERFACE.CUSTOMER_ACCOUNT_ID%TYPE,
24699 p_customer_account_number IN OKL_HEADER_INTERFACE.CUSTOMER_ACCOUNT_NUMBER%TYPE,
24700 p_start_date IN OKL_HEADER_INTERFACE.START_DATE%TYPE,
24701 p_template_start_date IN OKL_HEADER_INTERFACE.START_DATE%TYPE
24702 ) IS
24703
24704 CURSOR customer_csr (p_customer_number OKX_PARTIES_V.PARTY_NUMBER%TYPE,
24705 p_customer_id OKX_PARTIES_V.ID1%TYPE) IS
24706 SELECT id1
24707 FROM okx_parties_v
24708 WHERE ((party_number = p_customer_number
24709 AND
24710 p_customer_number IS NOT NULL
24711 )
24712 OR
24713 (id1 = p_customer_id
24714 AND
24715 p_customer_id IS NOT NULL
24716 )
24717 );
24718
24719 CURSOR temp_st_dt_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
24720 SELECT start_date
24721 FROM okc_k_headers_v
24722 WHERE id = p_chr_id;
24723
24724 CURSOR temp_cust_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
24725 --Fixed Bug # 5484903
24726 SELECT object1_id1
24727 FROM okc_k_party_roles_b
24728 WHERE dnz_chr_id = p_chr_id
24729 AND chr_id = dnz_chr_id
24730 AND jtot_object1_code = 'OKX_PARTY'
24731 AND rle_code = 'LESSEE' ;
24732
24733 CURSOR temp_cust_acc_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
24734 SELECT cust_acct_id
24735 FROM okc_k_headers_b
24736 WHERE id = p_chr_id;
24737
24738 CURSOR credit_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
24739 p_main_start_date OKC_K_HEADERS_V.START_DATE%TYPE) IS
24740 SELECT 'Y'
24741 FROM okc_k_headers_v
24742 WHERE id = p_chr_id
24743 AND end_date >= p_main_start_date;
24744
24745 l_customer_id OKX_PARTIES_V.ID1%TYPE;
24746 l_customer_account_id OKX_CUSTOMER_ACCOUNTS_V.ID1%TYPE;
24747 l_credit_customer_id OKX_PARTIES_V.ID1%TYPE;
24748 l_credit_customer_account_id OKX_CUSTOMER_ACCOUNTS_V.ID1%TYPE;
24749 l_rule_count NUMBER;
24750 l_rulv_tbl rulv_tbl_type;
24751 l_ok VARCHAR2(1) := '?';
24752
24753 credit_line_failed EXCEPTION;
24754
24755 BEGIN
24756
24757 x_return_status := OKL_API.G_RET_STS_SUCCESS;
24758 /* 4414408
24759 IF (p_customer_id IS NULL
24760 AND
24761 p_customer_number IS NULL) THEN
24762
24763 -- get from template
24764
24765 l_customer_id := NULL;
24766 OPEN temp_cust_csr(p_template_id);
24767 FETCH temp_cust_csr INTO l_customer_id;
24768 CLOSE temp_cust_csr;
24769
24770 ELSE
24771 l_customer_id := NULL;
24772 OPEN customer_csr (p_customer_number,
24773 p_customer_id);
24774 FETCH customer_csr INTO l_customer_id;
24775 CLOSE customer_csr;
24776
24777 END IF;
24778 */
24779 l_customer_id := p_customer_id;
24780 debug_message('----->customer: '||l_customer_id);
24781
24782 /* 4414408
24783 IF (p_customer_account_id IS NULL
24784 AND
24785 p_customer_account_number IS NULL) THEN
24786
24787 -- get from template
24788
24789 l_rule_count := 0;
24790 l_customer_account_id := NULL;
24791
24792 -- Rule Migration
24793 -- get_contract_rules(
24794 -- x_return_status => x_return_status,
24795 -- x_msg_count => x_msg_count,
24796 -- x_msg_data => x_msg_data,
24797 -- p_chr_id => p_template_id,
24798 -- p_cle_id => NULL,
24799 -- p_rgd_code => 'LACAN',
24800 -- p_rule_code => 'CAN',
24801 -- x_rulv_tbl => l_rulv_tbl,
24802 -- x_rule_count => l_rule_count
24803 -- );
24804
24805 -- IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24806 -- RAISE credit_line_failed;
24807 -- END IF;
24808
24809 -- IF (l_rule_count > 0) THEN
24810 -- l_customer_account_id := TO_NUMBER(l_rulv_tbl(1).object1_id1);
24811 -- END IF;
24812
24813
24814 ELSE
24815 get_customer_account_id(
24816 x_return_status => x_return_status,
24817 x_msg_count => x_msg_count,
24818 x_msg_data => x_msg_data,
24819 p_contract_number => p_contract_number,
24820 p_customer_account_id => p_customer_account_id,
24821 p_customer_account_number => p_customer_account_number,
24822 x_customer_account_id => l_customer_account_id
24823 );
24824
24825 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24826 x_return_status := OKL_API.G_RET_STS_ERROR;
24827 RAISE credit_line_failed;
24828 END IF;
24829 END IF;
24830 */
24831 l_customer_account_id := p_customer_account_id;
24832 debug_message('----->customer Acc: '||l_customer_account_id);
24833 --
24834 -- get customer_id and customer_account_id
24835 -- for credit line contract
24836 --
24837
24838 l_credit_customer_id := NULL;
24839 OPEN temp_cust_csr(p_credit_line_id);
24840 FETCH temp_cust_csr INTO l_credit_customer_id;
24841 CLOSE temp_cust_csr;
24842
24843 l_rule_count := 0;
24844 l_credit_customer_account_id := NULL;
24845
24846 OPEN temp_cust_acc_csr (p_credit_line_id);
24847 FETCH temp_cust_acc_csr INTO l_credit_customer_account_id;
24848 CLOSE temp_cust_acc_csr;
24849
24850 /* Rule migration
24851 get_contract_rules(
24852 x_return_status => x_return_status,
24853 x_msg_count => x_msg_count,
24854 x_msg_data => x_msg_data,
24855 p_chr_id => p_credit_line_id,
24856 p_cle_id => NULL,
24857 p_rgd_code => 'LACAN',
24858 p_rule_code => 'CAN',
24859 x_rulv_tbl => l_rulv_tbl,
24860 x_rule_count => l_rule_count
24861 );
24862
24863 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
24864 RAISE credit_line_failed;
24865 END IF;
24866
24867 IF (l_rule_count > 0) THEN
24868 l_credit_customer_account_id := TO_NUMBER(l_rulv_tbl(1).object1_id1);
24869 END IF;
24870 */
24871
24872 debug_message('----->Credit customer: '||l_credit_customer_id||', '||l_credit_customer_account_id);
24873
24874 IF (l_customer_id <> NVL(l_credit_customer_id, -1)
24875 OR
24876 l_customer_account_id <> NVL(l_credit_customer_account_id, -1)) THEN
24877 RAISE credit_line_failed;
24878 END IF;
24879
24880 -- check for end_date on credit line contract
24881 l_ok := '?';
24882 OPEN credit_csr (p_credit_line_id,
24883 nvl(p_start_date,p_template_start_date));
24884 FETCH credit_csr INTO l_ok;
24885 CLOSE credit_csr;
24886
24887 debug_message('Flag: '||l_ok);
24888
24889 IF (l_ok <> 'Y') THEN
24890 RAISE credit_line_failed;
24891 END IF;
24892
24893 EXCEPTION
24894 WHEN credit_line_failed THEN
24895 x_return_status := OKL_API.G_RET_STS_ERROR;
24896 END validate_credit_line;
24897
24898 ------------------------------------------------------------------------------
24899 -- PROCEDURE contract_after_yield
24900 -- Call this process after SuperTrump returns with yield. Call this process
24901 -- from OKL_LA_STREAM_PVT.UPDATE_CONTRACT_YIELD for every contract
24902 -- Calls:
24903 -- Called By:
24904 ------------------------------------------------------------------------------
24905 PROCEDURE contract_after_yield(
24906 p_api_version IN NUMBER,
24907 p_init_msg_list IN VARCHAR2,
24908 x_return_status OUT NOCOPY VARCHAR2,
24909 x_msg_count OUT NOCOPY NUMBER,
24910 x_msg_data OUT NOCOPY VARCHAR2,
24911 p_chr_id IN OKC_K_HEADERS_V.ID%TYPE
24912 ) IS
24913
24914 l_api_name VARCHAR2(35) := 'contract_after_yield';
24915 l_proc_name VARCHAR2(35) := 'CONTRACT_AFTER_YIELD';
24916 l_api_version NUMBER := 1.0;
24917
24918 after_yield_failed EXCEPTION;
24919
24920 CURSOR contract_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
24921 SELECT contract_number,
24922 orig_system_reference1
24923 FROM okc_k_headers_v
24924 WHERE id = p_chr_id
24925 AND orig_system_source_code = 'OKL_IMPORT';
24926
24927 CURSOR stage_csr (p_contract_number OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE) IS
24928 SELECT import_request_stage
24929 FROM okl_header_interface
24930 WHERE contract_number = p_contract_number
24931 AND status = 'INTERFACED';
24932
24933 l_contract_number OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE;
24934 l_orig_contract OKC_K_HEADERS_V.ORIG_SYSTEM_REFERENCE1%TYPE;
24935 l_import_stage OKC_K_HEADERS_V.STS_CODE%TYPE;
24936 BEGIN
24937
24938 x_return_status := OKL_API.G_RET_STS_SUCCESS;
24939 debug_message(l_proc_name);
24940 x_return_status := OKL_API.START_ACTIVITY(
24941 p_api_name => l_api_name,
24942 p_pkg_name => G_PKG_NAME,
24943 p_init_msg_list => p_init_msg_list,
24944 l_api_version => l_api_version,
24945 p_api_version => p_api_version,
24946 p_api_type => G_API_TYPE,
24947 x_return_status => x_return_status);
24948
24949 -- check if activity started successfully
24950 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
24951 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
24952 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) then
24953 raise OKL_API.G_EXCEPTION_ERROR;
24954 END IF;
24955
24956 l_contract_number := '?';
24957 OPEN contract_csr (p_chr_id);
24958 FETCH contract_csr INTO l_contract_number,
24959 l_orig_contract;
24960 IF contract_csr%NOTFOUND THEN
24961 RAISE after_yield_failed;
24962 END IF;
24963 CLOSE contract_csr;
24964
24965 l_import_stage := '?';
24966 IF (l_contract_number <> '?') THEN
24967 OPEN stage_csr(l_contract_number);
24968 FETCH stage_csr INTO l_import_stage;
24969 CLOSE stage_csr;
24970 END IF;
24971
24972 IF (l_import_stage IN ('COMPLETE','APPROVED', 'BOOKED')) THEN
24973
24974 IF (l_import_stage = 'COMPLETE') THEN
24975 --
24976 -- Generate Journal Entries
24977 --
24978 debug_message('Calling : okl_contract_book_pub.generate_journal_entries');
24979 okl_contract_book_pub.generate_journal_entries(
24980 p_api_version => p_api_version,
24981 p_init_msg_list => p_init_msg_list,
24982 p_commit => Okl_Api.G_FALSE,
24983 p_contract_id => p_chr_id,
24984 p_transaction_type => 'Booking',
24985 p_draft_yn => Okc_Api.G_TRUE,
24986 x_return_status => x_return_status,
24987 x_msg_count => x_msg_count,
24988 x_msg_data => x_msg_data
24989 );
24990 /*
24991 --
24992 Do not want to handle and throw exception
24993 which might cause Yield Generation to go for toss
24994 --
24995 */
24996 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
24997 RAISE after_yield_failed;
24998 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
24999 RAISE after_yield_failed;
25000 END IF;
25001
25002 ELSIF (l_import_stage = 'APPROVED') THEN
25003 --
25004 -- Generate Journal Entries
25005 --
25006 debug_message('Calling : okl_contract_book_pub.generate_journal_entries');
25007 okl_contract_book_pub.generate_journal_entries(
25008 p_api_version => p_api_version,
25009 p_init_msg_list => p_init_msg_list,
25010 p_commit => Okl_Api.G_FALSE,
25011 p_contract_id => p_chr_id,
25012 p_transaction_type => 'Booking',
25013 p_draft_yn => Okc_Api.G_TRUE,
25014 x_return_status => x_return_status,
25015 x_msg_count => x_msg_count,
25016 x_msg_data => x_msg_data
25017 );
25018
25019 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
25020 RAISE after_yield_failed;
25021 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
25022 RAISE after_yield_failed;
25023 END IF;
25024
25025 --Bug# 2566822 : AME/WF integration in approval process
25026 --debug_message('Calling : okl_contract_book_pub.submit_for_approval');
25027 debug_message('Calling : okl_contract_book_pvt.approve_contract');
25028 --
25029 -- Submit for Approval
25030 --
25031 --Bug# 2566822 : AME/WF integration in approval process
25032 --okl_contract_book_pub.submit_for_approval(
25033 okl_contract_book_pvt.approve_contract(
25034 p_api_version => p_api_version,
25035 p_init_msg_list => p_init_msg_list,
25036 x_return_status => x_return_status,
25037 x_msg_count => x_msg_count,
25038 x_msg_data => x_msg_data,
25039 p_chr_id => p_chr_id
25040 );
25041
25042 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
25043 RAISE after_yield_failed;
25044 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
25045 RAISE after_yield_failed;
25046 END IF;
25047
25048 ELSIF (l_import_stage = 'BOOKED') THEN
25049 --
25050 -- Generate Journal Entries
25051 --
25052 debug_message('Calling : okl_contract_book_pub.generate_journal_entries');
25053
25054 okl_contract_book_pub.generate_journal_entries(
25055 p_api_version => p_api_version,
25056 p_init_msg_list => p_init_msg_list,
25057 p_commit => Okl_Api.G_FALSE,
25058 p_contract_id => p_chr_id,
25059 p_transaction_type => 'Booking',
25060 p_draft_yn => Okc_Api.G_TRUE,
25061 x_return_status => x_return_status,
25062 x_msg_count => x_msg_count,
25063 x_msg_data => x_msg_data
25064 );
25065
25066 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
25067 RAISE after_yield_failed;
25068 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
25069 RAISE after_yield_failed;
25070 END IF;
25071
25072
25073 --Bug# 2566822 : AME/WF integration in approval process
25074 --debug_message('Calling : okl_contract_book_pub.submit_for_approval');
25075 debug_message('Calling : okl_contract_book_pvt.approve_contract');
25076 --
25077 -- Submit for Approval
25078 --
25079 --Bug# 2566822 : AME/WF integration in approval process
25080 --okl_contract_book_pub.submit_for_approval(
25081 okl_contract_book_pvt.approve_contract(
25082 p_api_version => p_api_version,
25083 p_init_msg_list => p_init_msg_list,
25084 x_return_status => x_return_status,
25085 x_msg_count => x_msg_count,
25086 x_msg_data => x_msg_data,
25087 p_chr_id => p_chr_id
25088 );
25089
25090 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
25091 RAISE after_yield_failed;
25092 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
25093 RAISE after_yield_failed;
25094 END IF;
25095
25096
25097 debug_message('Calling : okl_contract_book_pub.activate_contract');
25098 okl_contract_book_pub.activate_contract(
25099 p_api_version => p_api_version,
25100 p_init_msg_list => p_init_msg_list,
25101 x_return_status => x_return_status,
25102 x_msg_count => x_msg_count,
25103 x_msg_data => x_msg_data,
25104 p_chr_id => p_chr_id
25105 );
25106
25107 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
25108 RAISE after_yield_failed;
25109 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
25110 RAISE after_yield_failed;
25111 END IF;
25112
25113 -- R12B Authoring OA Migration
25114 -- Update the status of the Submit Contract task to Complete
25115 OKL_BOOK_CONTROLLER_PVT.update_book_controller_trx(
25116 p_api_version => p_api_version,
25117 p_init_msg_list => p_init_msg_list,
25118 x_return_status => x_return_status,
25119 x_msg_count => x_msg_count,
25120 x_msg_data => x_msg_data,
25121 p_khr_id => p_chr_id ,
25122 p_prog_short_name => OKL_BOOK_CONTROLLER_PVT.G_SUBMIT_CONTRACT,
25123 p_progress_status => OKL_BOOK_CONTROLLER_PVT.G_PROG_STS_COMPLETE);
25124
25125 IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
25126 RAISE after_yield_failed;
25127 ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
25128 RAISE after_yield_failed;
25129 END IF;
25130
25131 END IF; -- import_stage
25132
25133 END IF;
25134
25135 Update_Interface_Status(
25136 p_contract_number => l_orig_contract,
25137 p_new_contract_number => l_contract_number,
25138 p_status => 'FINAL',
25139 x_return_status => x_return_status
25140 );
25141
25142 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
25143 RAISE after_yield_failed;
25144 END IF;
25145
25146 OKL_API.END_ACTIVITY(x_msg_count => x_msg_count,
25147 x_msg_data => x_msg_data);
25148
25149
25150 RETURN;
25151
25152 EXCEPTION
25153 when after_yield_failed THEN
25154 IF contract_csr%ISOPEN THEN
25155 CLOSE contract_csr;
25156 END IF;
25157 x_return_status := OKL_API.G_RET_STS_SUCCESS; -- to allow Yield process to complete SUCCESSFULLY
25158
25159 when OKL_API.G_EXCEPTION_ERROR then
25160 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
25161 p_api_name => l_api_name,
25162 p_pkg_name => G_PKG_NAME,
25163 p_exc_name => 'OKL_API.G_RET_STS_ERROR',
25164 x_msg_count => x_msg_count,
25165 x_msg_data => x_msg_data,
25166 p_api_type => G_API_TYPE);
25167
25168
25169 when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
25170 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
25171 p_api_name => l_api_name,
25172 p_pkg_name => G_PKG_NAME,
25173 p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
25174 x_msg_count => x_msg_count,
25175 x_msg_data => x_msg_data,
25176 p_api_type => G_API_TYPE);
25177
25178 when OTHERS then
25179 x_return_status := OKL_API.HANDLE_EXCEPTIONS(
25180 p_api_name => l_api_name,
25181 p_pkg_name => G_PKG_NAME,
25182 p_exc_name => 'OTHERS',
25183 x_msg_count => x_msg_count,
25184 x_msg_data => x_msg_data,
25185 p_api_type => G_API_TYPE);
25186
25187 END contract_after_yield;
25188
25189 ------------------------------------------------------------------------------
25190 -- PROCEDURE contract_further_process
25191 -- It process contract beyond status 'NEW'. It calls QA Checker and finally submits
25192 -- request to generate streams and
25193 -- stacks Error, if any, and returns ERROR status to calling process.
25194 -- Calls:
25195 -- Called By:
25196 -- process_record
25197 ------------------------------------------------------------------------------
25198 PROCEDURE contract_further_process(
25199 p_init_msg_list IN VARCHAR2,
25200 x_return_status OUT NOCOPY VARCHAR2,
25201 x_msg_count OUT NOCOPY NUMBER,
25202 x_msg_data OUT NOCOPY VARCHAR2,
25203 p_chr_id IN OKC_K_HEADERS_V.ID%TYPE,
25204 p_import_stage IN VARCHAR2
25205 ) IS
25206 l_api_name VARCHAR2(35) := 'create_rebook_contract';
25207 l_proc_name VARCHAR2(35) := 'CREATE_REBOOK_CONTRACT';
25208 l_api_version CONSTANT NUMBER := 1;
25209 l_qa_check_status VARCHAR2(1) := 'S';
25210
25211 l_qcl_id NUMBER;
25212 l_msg_tbl Okl_Qa_Check_Pub.msg_tbl_type;
25213 x_trx_number NUMBER;
25214 x_trx_status VARCHAR2(100);
25215
25216 -- R12B Authoring OA Migration
25217 l_upfront_tax_status VARCHAR2(1) := 'S';
25218
25219 BEGIN
25220
25221 x_return_status := OKL_API.G_RET_STS_SUCCESS;
25222
25223 IF (p_import_stage IN ('PASSED','COMPLETE','APPROVED','BOOKED')) THEN
25224 /* 4414408
25225 get_qcl_id(
25226 x_return_status => x_return_status,
25227 p_qcl_name => 'OKL LA QA CHECK LIST',
25228 x_qcl_id => l_qcl_id);
25229
25230 debug_message('ID : '||l_qcl_id);
25231 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
25232 */
25233 --fnd_file.put_line(fnd_file.output, 'Running QA Checker...');
25234 debug_message('ID : '||g_qcl_id);
25235 write_to_log('Running QA Checker...');
25236 okl_contract_book_pub.execute_qa_check_list(
25237 p_api_version => 1.0,
25238 p_init_msg_list => OKL_API.G_FALSE,
25239 x_return_status => x_return_status,
25240 x_msg_count => x_msg_count,
25241 x_msg_data => x_msg_data,
25242 p_qcl_id => g_qcl_id, -- 4414408
25243 p_chr_id => p_chr_id,
25244 x_msg_tbl => l_msg_tbl
25245 );
25246
25247 FOR i IN 1..l_msg_tbl.LAST
25248 LOOP
25249 IF (l_msg_tbl(i).error_status <> 'S') THEN
25250
25251 write_to_log('Name : '||l_msg_tbl(i).name);
25252 write_to_log('Description : '||l_msg_tbl(i).description);
25253 write_to_log('Error Status: '||l_msg_tbl(i).error_status);
25254 write_to_log('Data : '||l_msg_tbl(i).data);
25255
25256 END IF;
25257
25258 IF (l_msg_tbl(i).error_status = 'E') THEN
25259 l_qa_check_status := 'E';
25260 END IF;
25261 END LOOP;
25262
25263 debug_message('After 1st Qa Checker '|| l_qa_check_status);
25264 commit;
25265
25266 -- END IF; -- Success
25267
25268 -- R12B Authoring OA Migration
25269 -- Call API to calculate upfront tax if QA check is complete
25270 IF (l_qa_check_status = 'S') THEN
25271
25272 OKL_CONTRACT_BOOK_PVT.calculate_upfront_tax(
25273 p_api_version => 1.0,
25274 p_init_msg_list => OKL_API.G_FALSE,
25275 x_return_status => x_return_status,
25276 x_msg_count => x_msg_count,
25277 x_msg_data => x_msg_data,
25278 p_chr_id => p_chr_id,
25279 x_process_status => l_upfront_tax_status);
25280
25281 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
25282 commit;
25283 ELSE
25284 report_error(x_msg_count, x_msg_data);
25285 rollback;
25286 l_upfront_tax_status := 'E';
25287 END IF;
25288
25289 END IF;
25290
25291 END IF; -- Import Stage
25292
25293 debug_message('QA Error Status: '||l_qa_check_status);
25294
25295 IF (p_import_stage IN ('COMPLETE', 'APPROVED', 'BOOKED')) THEN
25296 -- R12B Authoring OA Migration
25297 -- If Upfront Tax is complete, then call API to generate streams
25298 IF (l_upfront_tax_status = 'S') THEN
25299 --IF (l_qa_check_status = 'S') THEN
25300
25301 --fnd_file.put_line(fnd_file.output, 'Submitting Request to generate Streams....');
25302 write_to_log('Submitting Request to generate Streams....');
25303
25304 --OKL_GENERATE_STREAMS_PUB.GENERATE_STREAMS(
25305 OKL_LA_STREAM_PUB.GEN_INTR_EXTR_STREAM (
25306 p_api_version => 1.0,
25307 p_init_msg_list => OKL_API.G_FALSE,
25308 p_khr_id => p_chr_id,
25309 p_generation_ctx_code => 'AUTH',
25310 x_trx_number => x_trx_number,
25311 x_trx_status => x_trx_status,
25312 x_return_status => x_return_status,
25313 x_msg_count => x_msg_count,
25314 x_msg_data => x_msg_data
25315 );
25316
25317 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
25318 commit; -- required for stream generation
25319 --fnd_file.put_line(fnd_file.output,'Req ID: '||x_trx_number);
25320 write_to_log('Req ID: '||x_trx_number);
25321 ELSE
25322 report_error(
25323 x_msg_count, x_msg_data);
25324 rollback;
25325 END IF;
25326 END IF; -- upfront tax status
25327 END IF; -- import_stage
25328
25329 RETURN;
25330
25331 EXCEPTION
25332 WHEN OTHERS THEN
25333
25334 okl_api.set_message(
25335 G_APP_NAME,
25336 G_UNEXPECTED_ERROR,
25337 'OKL_SQLCODE',
25338 SQLCODE,
25339 'OKL_SQLERRM',
25340 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
25341 );
25342 x_return_status := OKL_API.G_RET_STS_ERROR;
25343
25344 report_error (
25345 x_msg_count => x_msg_count,
25346 x_msg_data => x_msg_data
25347 );
25348
25349 END contract_further_process;
25350
25351 PROCEDURE get_tal_id(
25352 x_return_status OUT NOCOPY VARCHAR2,
25353 p_fa_line_id IN NUMBER,
25354 x_tal_id OUT NOCOPY NUMBER
25355 ) IS
25356
25357 CURSOR tal_csr (p_id NUMBER) IS
25358 SELECT id
25359 FROM okl_txl_assets_v
25360 WHERE kle_id = p_id;
25361
25362 tal_failed EXCEPTION;
25363 l_id NUMBER;
25364
25365 BEGIN
25366 x_return_status := OKL_API.G_RET_STS_SUCCESS;
25367 OPEN tal_csr(p_fa_line_id);
25368 FETCH tal_csr INTO l_id;
25369 IF tal_csr%NOTFOUND THEN
25370 RAISE tal_failed;
25371 END IF;
25372 CLOSE tal_csr;
25373 x_tal_id := l_id;
25374 RETURN;
25375 EXCEPTION
25376 WHEN tal_failed THEN
25377 IF tal_csr%ISOPEN THEN
25378 CLOSE tal_csr;
25379 END IF;
25380 okl_api.set_message(
25381 G_APP_NAME,
25382 G_OKL_TXD_ID
25383 );
25384 x_return_status := OKL_API.G_RET_STS_ERROR;
25385 END get_tal_id;
25386
25387 ------------------------------------------------------------------------------
25388 -- PROCEDURE populate_header_rec
25389 -- It checks template contract and interface data to populate final header record and
25390 -- stacks Error, if any, and returns ERROR status to calling process.
25391 -- Calls:
25392 --
25393 -- Called By:
25394 --
25395 ------------------------------------------------------------------------------
25396 PROCEDURE populate_header_rec(
25397 x_return_status OUT NOCOPY VARCHAR2,
25398 x_msg_count OUT NOCOPY NUMBER,
25399 x_msg_data OUT NOCOPY VARCHAR2,
25400 p_temp_header IN template_h_rec_type,
25401 p_intf_header IN intf_h_rec_type,
25402 x_chrv_rec OUT NOCOPY chrv_rec_type,
25403 x_khrv_rec OUT NOCOPY khrv_rec_type
25404 ) IS
25405 l_proc_name VARCHAR2(35) := 'POPULATE_HEADER_REC';
25406 -- l_qcl_id NUMBER;
25407 x_program_agreement_id OKC_K_HEADERS_V.ID%TYPE;
25408 x_product_id NUMBER;
25409
25410 CURSOR customer_csr (p_customer_number OKX_PARTIES_V.PARTY_NUMBER%TYPE,
25411 p_customer_id OKX_PARTIES_V.ID1%TYPE) IS
25412 SELECT id1
25413 FROM okx_parties_v
25414 WHERE ((party_number = p_customer_number
25415 AND
25416 p_customer_number IS NOT NULL
25417 )
25418 OR
25419 (id1 = p_customer_id
25420 AND
25421 p_customer_id IS NOT NULL
25422 )
25423 );
25424
25425 l_id1 OKX_PARTIES_V.ID1%TYPE;
25426 x_customer_account_id NUMBER;
25427 x_bill_to_address_id NUMBER;
25428 pop_header_failed EXCEPTION;
25429
25430 BEGIN
25431
25432 -- Bug 4350579 start
25433 -- Validation from check
25434 --
25435 x_return_status := check_header_literal (
25436 p_contract_number => p_intf_header.contract_number_old,
25437 p_template_id => p_temp_header.id,
25438 p_application_code => p_intf_header.application_code,
25439 p_contract_category => NVL(p_intf_header.contract_category,p_temp_header.scs_code),
25440 p_import_request_stage => p_intf_header.import_request_stage,
25441 p_converted_account => NVL(p_intf_header.converted_account,
25442 p_temp_header.converted_account_yn),
25443 p_security_deposit_hold_flag => p_intf_header.security_deposit_hold_flag,
25444 p_security_deposit_net_flag => p_intf_header.security_deposit_net_flag,
25445 p_review_invoice_flag => p_intf_header.review_invoice_flag,
25446 p_date_signed => NVL(p_intf_header.date_signed,p_temp_header.date_signed),
25447 p_start_date => NVL(p_intf_header.start_date,p_temp_header.start_date),
25448 p_date_approved => NVL(p_intf_header.date_approved,p_temp_header.date_approved),
25449 p_term => NVL(p_intf_header.term,p_temp_header.term_duration),
25450 p_accepted_date => NVL(p_intf_header.accepted_date,p_temp_header.accepted_date),
25451 p_deal_type_code => NVL(p_intf_header.deal_type_code,p_temp_header.deal_type),
25452 p_bill_to_address => p_intf_header.bill_to_address,
25453 p_bill_to_address_id => p_intf_header.bill_to_address_id,
25454 p_authoring_org_id => NVL(p_intf_header.authoring_org_id,
25455 p_temp_header.authoring_org_id),
25456 p_inv_organization_id => NVL(p_intf_header.inventory_organization_id,
25457 p_temp_header.inv_organization_id),
25458 p_customer_account_number => p_intf_header.customer_account_number,
25459 p_customer_account_id => p_intf_header.customer_account_id,
25460 p_eot_purchase_opt_type => p_intf_header.eot_purchase_opt_type,
25461 p_expected_delivery_date => p_intf_header.expected_delivery_date,
25462 p_currency_code => NVL(p_intf_header.currency_code,
25463 p_temp_header.currency_code)
25464 );
25465
25466 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
25467 x_return_status := OKL_API.G_RET_STS_ERROR;
25468 RAISE pop_header_failed;
25469 END IF;
25470
25471
25472 -- Bug 4350579 end
25473
25474 x_chrv_rec.sts_code := 'NEW';
25475 x_chrv_rec.scs_code := NVL(p_intf_header.contract_category, p_temp_header.scs_code);
25476 x_chrv_rec.contract_number := p_intf_header.contract_number;
25477 x_chrv_rec.currency_code := NVL(p_intf_header.currency_code, p_temp_header.currency_code);
25478 x_chrv_rec.cust_po_number := NVL(p_intf_header.customer_po_number, p_temp_header.cust_po_number);
25479 x_chrv_rec.short_description := NVL(p_intf_header.contract_description, p_temp_header.short_description);
25480 x_chrv_rec.description := NVL(p_intf_header.contract_description, p_temp_header.description);
25481 x_chrv_rec.date_approved := NVL(p_intf_header.date_approved, p_temp_header.date_approved);
25482 x_chrv_rec.archived_yn := 'N';
25483 x_chrv_rec.deleted_yn := 'N';
25484 x_chrv_rec.cust_po_number_req_yn := 'N';
25485 x_chrv_rec.pre_pay_req_yn := 'N';
25486 x_chrv_rec.template_yn := 'N';
25487 x_chrv_rec.chr_type := 'CYA';
25488 x_chrv_rec.date_signed := NVL(p_intf_header.date_signed, p_temp_header.date_signed);
25489 x_chrv_rec.start_date := NVL(p_intf_header.start_date, NVL(p_temp_header.start_date, SYSDATE));
25490 -- Added by asahoo for Bug#5416376
25491 x_chrv_rec.end_date := OKL_LLA_UTIL_PVT.calculate_end_date(nvl(x_chrv_rec.start_date, SYSDATE),
25492 nvl(p_intf_header.term,NVL(p_temp_header.term_duration, 0)));
25493 x_chrv_rec.authoring_org_id := NVL(p_intf_header.authoring_org_id, p_temp_header.authoring_org_id);
25494 x_chrv_rec.inv_organization_id := NVL(p_intf_header.inventory_organization_id, p_temp_header.inv_organization_id);
25495 x_chrv_rec.buy_or_sell := 'S';
25496 x_chrv_rec.issue_or_receive := 'I';
25497 x_chrv_rec.orig_system_source_code := 'OKL_IMPORT'; -- p_intf_header.contract_source; Only one source for 1st release
25498 x_chrv_rec.orig_system_reference1 := p_intf_header.contract_number_old;
25499
25500 -- Validated customer
25501 l_id1 := NULL;
25502 OPEN customer_csr (p_intf_header.customer_number,
25503 p_intf_header.customer_id);
25504 FETCH customer_csr INTO l_id1;
25505 CLOSE customer_csr;
25506
25507 IF (l_id1 IS NOT NULL) THEN
25508 g_customer_id := l_id1;
25509 ELSE
25510 okl_api.set_message(
25511 G_APP_NAME,
25512 G_INVALID_VALUE,
25513 'CONTRACT_NUM',
25514 p_intf_header.contract_number_old,
25515 'COL_NAME',
25516 'CUSTOMER_ID, NUMBER: ',
25517 'COL_VALUE',
25518 p_intf_header.customer_id||', '||p_intf_header.customer_number
25519 );
25520
25521 x_return_status := OKL_API.G_RET_STS_ERROR;
25522 RAISE pop_header_failed;
25523 END IF;
25524
25525 x_customer_account_id := NULL;
25526 IF (p_intf_header.customer_account_id IS NOT NULL
25527 OR
25528 p_intf_header.customer_account_number IS NOT NULL) THEN
25529 get_customer_account_id(
25530 x_return_status => x_return_status,
25531 x_msg_count => x_msg_count,
25532 x_msg_data => x_msg_data,
25533 p_contract_number => p_intf_header.contract_number_old,
25534 p_customer_id => g_customer_id,
25535 p_customer_account_id => p_intf_header.customer_account_id,
25536 p_customer_account_number => p_intf_header.customer_account_number,
25537 x_customer_account_id => x_customer_account_id
25538 );
25539 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
25540 x_return_status := OKL_API.G_RET_STS_ERROR;
25541 RAISE pop_header_failed;
25542 END IF;
25543 ELSIF (p_intf_header.template_number IS NOT NULL) THEN
25544 x_customer_account_id := p_temp_header.cust_acct_id;
25545 END IF;
25546
25547 IF (x_customer_account_id IS NULL
25548 AND
25549 p_intf_header.import_request_stage <> 'NEW') THEN
25550 okl_api.set_message(
25551 G_APP_NAME,
25552 G_MISSING_VALUE_FOR_STAGE,
25553 'CONTRACT_NUM',
25554 p_intf_header.contract_number_old,
25555 'COL_NAME',
25556 'CUSTOMER_ACCOUNT',
25557 'STAGE',
25558 p_intf_header.import_request_stage
25559 );
25560 x_return_status := OKL_API.G_RET_STS_ERROR;
25561 RAISE pop_header_failed;
25562 END IF;
25563
25564 x_chrv_rec.cust_acct_id := x_customer_account_id;
25565 g_customer_account_id := x_customer_account_id;
25566
25567 x_bill_to_address_id := NULL;
25568 IF (p_intf_header.bill_to_address_id IS NOT NULL
25569 OR
25570 p_intf_header.bill_to_address IS NOT NULL) THEN
25571 get_bill_to_address_id(
25572 x_return_status => x_return_status,
25573 x_msg_count => x_msg_count,
25574 x_msg_data => x_msg_data,
25575 p_contract_number => p_intf_header.contract_number,
25576 p_auth_org_id => p_intf_header.authoring_org_id,
25577 p_bill_to_address_id => p_intf_header.bill_to_address_id,
25578 p_bill_to_address => p_intf_header.bill_to_address,
25579 p_customer_account_id => x_customer_account_id,
25580 x_bill_to_address_id => x_bill_to_address_id
25581 );
25582 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
25583 x_return_status := OKL_API.G_RET_STS_ERROR;
25584 RAISE pop_header_failed;
25585 END IF;
25586
25587 ELSIF (p_intf_header.template_number IS NOT NULL) THEN
25588 x_bill_to_address_id := p_temp_header.bill_to_site_use_id;
25589 END IF;
25590
25591 IF (x_bill_to_address_id IS NULL
25592 AND
25593 p_intf_header.import_request_stage <> 'NEW') THEN
25594 okl_api.set_message(
25595 G_APP_NAME,
25596 G_MISSING_VALUE_FOR_STAGE,
25597 'CONTRACT_NUM',
25598 p_intf_header.contract_number_old,
25599 'COL_NAME',
25600 'BILL_TO_ADDRESS',
25601 'STAGE',
25602 p_intf_header.import_request_stage
25603 );
25604 x_return_status := OKL_API.G_RET_STS_ERROR;
25605 RAISE pop_header_failed;
25606 END IF;
25607
25608 g_bill_to_address_id := x_bill_to_address_id;
25609 x_chrv_rec.bill_to_site_use_id := x_bill_to_address_id;
25610
25611 /* 4414408
25612 get_qcl_id(
25613 x_return_status => x_return_status,
25614 p_qcl_name => 'OKL LA QA CHECK LIST',
25615 x_qcl_id => l_qcl_id
25616 );
25617 */
25618
25619 x_chrv_rec.qcl_id := g_qcl_id;
25620
25621 --
25622 -- Bug 3990456
25623 -- For template import populate
25624 -- orig_system_id1 and template_used columns
25625 --
25626 IF (p_temp_header.id IS NOT NULL) THEN
25627 x_chrv_rec.orig_system_id1 := p_temp_header.id;
25628 x_chrv_rec.template_used := p_temp_header.contract_number;
25629 END IF;
25630
25631 IF (NVL(p_intf_header.program_agreement_id,p_temp_header.khr_id) IS NOT NULL
25632 OR
25633 p_intf_header.program_agreement_number IS NOT NULL) THEN
25634
25635 x_return_status := get_prog_agreement_id(
25636 p_scs_code => 'PROGRAM',
25637 p_agreement_number => p_intf_header.program_agreement_number,
25638 p_agreement_id => NVL(p_intf_header.program_agreement_id,
25639 p_temp_header.khr_id),
25640 p_auth_org_id => x_chrv_rec.authoring_org_id,
25641 x_agreement_id => x_program_agreement_id
25642 );
25643
25644 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
25645 okl_api.set_message(
25646 G_APP_NAME,
25647 G_INVALID_VALUE,
25648 'CONTRACT_NUM',
25649 p_intf_header.contract_number_old,
25650 'COL_NAME',
25651 'PROGRAM_AGREEMENT_ID, NUMBER: ',
25652 'COL_VALUE',
25653 p_intf_header.program_agreement_id||', '||p_intf_header.program_agreement_number
25654 );
25655 RAISE pop_header_failed;
25656 END IF;
25657 x_khrv_rec.khr_id := x_program_agreement_id;
25658 ELSE
25659 x_khrv_rec.khr_id := p_temp_header.khr_id;
25660 END IF;
25661
25662 IF (p_intf_header.product_id IS NOT NULL
25663 OR
25664 p_intf_header.product_name IS NOT NULL) THEN
25665 x_return_status := get_product_id(p_product_id => p_intf_header.product_id,
25666 p_product_name => p_intf_header.product_name,
25667 x_product_id => x_product_id );
25668
25669 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
25670 okl_api.set_message(
25671 G_APP_NAME,
25672 G_INVALID_VALUE,
25673 'CONTRACT_NUM',
25674 p_intf_header.contract_number_old,
25675 'COL_NAME',
25676 'PRODUCT_ID, NAME: ',
25677 'COL_VALUE',
25678 p_intf_header.product_id||', '||p_intf_header.product_name
25679 );
25680
25681 x_return_status := OKL_API.G_RET_STS_ERROR;
25682
25683 RAISE pop_header_failed;
25684 END IF;
25685 x_khrv_rec.pdt_id := x_product_id;
25686 ELSE
25687 x_khrv_rec.pdt_id := p_temp_header.pdt_id;
25688 END IF;
25689
25690 IF (NVL(p_intf_header.assignable_yn,'N') NOT IN ('Y','N')) THEN
25691 okl_api.set_message(
25692 G_APP_NAME,
25693 G_INVALID_VALUE,
25694 'CONTRACT_NUM',
25695 p_intf_header.contract_number_old,
25696 'COL_NAME',
25697 'ASSIGNABLE_YN',
25698 'COL_VALUE',
25699 p_intf_header.assignable_yn
25700 );
25701
25702 x_return_status := OKL_API.G_RET_STS_ERROR;
25703
25704 RAISE pop_header_failed;
25705 END IF;
25706
25707 -- start cklee bug# 3440442
25708 IF (NVL(p_intf_header.prefunding_eligible_flag,'N') NOT IN ('Y','N')) THEN
25709 okl_api.set_message(
25710 G_APP_NAME,
25711 G_INVALID_VALUE,
25712 'CONTRACT_NUM',
25713 p_intf_header.contract_number_old,
25714 'COL_NAME',
25715 'PREFUNDING_ELIGIBLE_FLAG',
25716 'COL_VALUE',
25717 p_intf_header.prefunding_eligible_flag
25718 );
25719
25720 x_return_status := OKL_API.G_RET_STS_ERROR;
25721
25722 RAISE pop_header_failed;
25723 END IF;
25724 -- end cklee bug# 3440442
25725
25726 x_khrv_rec.amd_code := NVL(p_intf_header.acceptance_method_code, p_temp_header.amd_code);
25727 x_khrv_rec.converted_account_yn := NVL(p_intf_header.converted_account, p_temp_header.converted_account_yn);
25728
25729 /* Not used since 11.5.9, Product is defaulting deal_type_code
25730 x_khrv_rec.deal_type := NVL(p_intf_header.deal_type_code, p_temp_header.deal_type);
25731 */
25732 x_khrv_rec.expected_delivery_date := NVL(p_intf_header.expected_delivery_date, p_temp_header.expected_delivery_date);
25733 x_khrv_rec.accepted_date := NVL(p_intf_header.accepted_date, p_temp_header.accepted_date);
25734 x_khrv_rec.term_duration := NVL(p_intf_header.term, p_temp_header.term_duration);
25735 x_khrv_rec.currency_conversion_type := NVL(p_intf_header.currency_conversion_type,
25736 p_temp_header.currency_conversion_type);
25737 x_khrv_rec.currency_conversion_rate := NVL(p_intf_header.currency_conversion_rate,
25738 p_temp_header.currency_conversion_rate);
25739 x_khrv_rec.currency_conversion_date := NVL(p_intf_header.currency_conversion_date,
25740 p_temp_header.currency_conversion_date);
25741 x_khrv_rec.assignable_yn := NVL(p_intf_header.assignable_yn,p_temp_header.assignable_yn);
25742 x_khrv_rec.prefunding_eligible_yn := NVL(p_intf_header.prefunding_eligible_flag,p_temp_header.prefunding_eligible_yn);
25743 x_khrv_rec.credit_act_yn := NVL(p_intf_header.consumer_credit_act_deal_flag,
25744 p_temp_header.credit_act_yn); -- dedey for bug 4637590
25745
25746 -- Contract addl field, Bug 4558486
25747
25748 debug_message('Contract DFF...');
25749
25750 x_khrv_rec.validate_dff_yn := 'Y'; -- always validate DFF
25751 x_khrv_rec.attribute_category := NVL(p_intf_header.attribute_category,
25752 p_temp_header.attribute_category);
25753 debug_message('attribute_category: '||x_khrv_rec.attribute_category);
25754 x_khrv_rec.attribute1 := NVL(p_intf_header.attribute1,
25755 p_temp_header.attribute1);
25756 debug_message('attribute1: '||x_khrv_rec.attribute1);
25757 x_khrv_rec.attribute2 := NVL(p_intf_header.attribute2,
25758 p_temp_header.attribute2);
25759 debug_message('attribute2: '||x_khrv_rec.attribute2);
25760 x_khrv_rec.attribute3 := NVL(p_intf_header.attribute3,
25761 p_temp_header.attribute3);
25762 x_khrv_rec.attribute4 := NVL(p_intf_header.attribute4,
25763 p_temp_header.attribute4);
25764 x_khrv_rec.attribute5 := NVL(p_intf_header.attribute5,
25765 p_temp_header.attribute5);
25766 x_khrv_rec.attribute6 := NVL(p_intf_header.attribute6,
25767 p_temp_header.attribute6);
25768 x_khrv_rec.attribute7 := NVL(p_intf_header.attribute7,
25769 p_temp_header.attribute7);
25770 x_khrv_rec.attribute8 := NVL(p_intf_header.attribute8,
25771 p_temp_header.attribute8);
25772 x_khrv_rec.attribute9 := NVL(p_intf_header.attribute9,
25773 p_temp_header.attribute9);
25774 x_khrv_rec.attribute10 := NVL(p_intf_header.attribute10,
25775 p_temp_header.attribute10);
25776 x_khrv_rec.attribute11 := NVL(p_intf_header.attribute11,
25777 p_temp_header.attribute11);
25778 x_khrv_rec.attribute12 := NVL(p_intf_header.attribute12,
25779 p_temp_header.attribute12);
25780 x_khrv_rec.attribute13 := NVL(p_intf_header.attribute13,
25781 p_temp_header.attribute13);
25782 x_khrv_rec.attribute14 := NVL(p_intf_header.attribute14,
25783 p_temp_header.attribute14);
25784 x_khrv_rec.attribute15 := NVL(p_intf_header.attribute15,
25785 p_temp_header.attribute15);
25786 -- Contract addl field, Bug 4558486
25787
25788
25789 RETURN;
25790
25791 EXCEPTION
25792 WHEN pop_header_failed THEN
25793 NULL; -- caller will handle appropriate exception
25794 END populate_header_rec;
25795
25796 ------------------------------------------------------------------------------
25797 -- PROCEDURE check_payment_level
25798 -- This procedure determines payment level for SERVICE and FEE lines.
25799 -- If asset_number column is populated at SERVICE and FEE lines, payment
25800 -- will be attached to sub-line level.
25801 --
25802 -- If asset_number column is not populated at SERVICE and FEE lines, payment
25803 -- will be attached to top-line level.
25804 --
25805 -- Calls:
25806 -- Called By:
25807 -- load_input_record
25808 ------------------------------------------------------------------------------
25809 PROCEDURE check_payment_level(
25810 x_return_status OUT NOCOPY VARCHAR2,
25811 x_msg_count OUT NOCOPY VARCHAR2,
25812 x_msg_data OUT NOCOPY VARCHAR2,
25813 p_contract_number IN OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
25814 p_line_number IN OKL_LINES_INTERFACE.LINE_NUMBER%TYPE,
25815 x_payment_level OUT NOCOPY VARCHAR2
25816 ) IS
25817
25818 l_proc_name VARCHAR2(35) := 'CHECK_PAYMENT_LEVEL';
25819
25820 CURSOR line_csr (p_cont_number OKL_HEADER_INTERFACE.CONTRACT_NUMBER_OLD%TYPE,
25821 p_line OKL_LINES_INTERFACE.LINE_NUMBER%TYPE) IS
25822 SELECT line_type,
25823 asset_number
25824 FROM okl_lines_interface
25825 WHERE contract_number_old = p_cont_number
25826 AND line_number = p_line;
25827
25828 l_line_type OKL_LINES_INTERFACE.LINE_TYPE%TYPE;
25829 l_asset_number OKL_LINES_INTERFACE.ASSET_NUMBER%TYPE;
25830
25831 BEGIN
25832 x_return_status := OKL_API.G_RET_STS_SUCCESS;
25833 debug_message(l_proc_name);
25834
25835 x_payment_level := 'TOP'; -- default
25836
25837 l_line_type := NULL;
25838 l_asset_number := NULL;
25839
25840 OPEN line_csr (p_contract_number,
25841 p_line_number);
25842 FETCH line_csr INTO l_line_type,
25843 l_asset_number;
25844 CLOSE line_csr;
25845
25846 IF (l_line_type IN ('SERVICE', 'FEE')) THEN
25847 IF (l_asset_number IS NOT NULL) THEN
25848 x_payment_level := 'SUB';
25849 ELSE
25850 x_payment_level := 'TOP';
25851 END IF;
25852 ELSE
25853 x_payment_level := 'TOP'; -- For other lines attach payment at TOP level only
25854 END IF;
25855
25856 EXCEPTION
25857 WHEN OTHERS THEN
25858 okl_api.set_message(
25859 G_APP_NAME,
25860 G_UNEXPECTED_ERROR,
25861 'OKL_SQLCODE',
25862 SQLCODE,
25863 'OKL_SQLERRM',
25864 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
25865 );
25866 x_return_status := OKL_API.G_RET_STS_ERROR;
25867
25868 END check_payment_level;
25869
25870
25871 ------------------------------------------------------------------------------
25872 -- PROCEDURE create_lessee_as_vendor
25873 -- This procedure creates lessee as vendor and attach pay site to it
25874 -- Calls:
25875 -- Called By:
25876 -- load_input_record
25877 ------------------------------------------------------------------------------
25878 PROCEDURE create_lessee_as_vendor(
25879 x_return_status OUT NOCOPY VARCHAR2,
25880 x_msg_count OUT NOCOPY NUMBER,
25881 x_msg_data OUT NOCOPY VARCHAR2,
25882 p_chr_id IN NUMBER,
25883 p_contract_num IN VARCHAR2,
25884 p_cpl_id IN NUMBER,
25885 p_lessee_vendor_id IN NUMBER,
25886 p_lessee_vendor_name IN VARCHAR2,
25887 p_lessee_site_id IN NUMBER,
25888 p_lessee_site_code IN VARCHAR2,
25889 p_authoring_org_id IN NUMBER
25890 ) IS
25891
25892 l_proc_name VARCHAR2(35) := 'CREATE_LESSEE_AS_VENDOR';
25893 CURSOR vendor_csr (p_vendor_id NUMBER,
25894 p_vendor_name VARCHAR2) IS
25895 SELECT vendor_id
25896 FROM po_vendors
25897 WHERE ( (vendor_id = p_vendor_id
25898 AND
25899 p_vendor_id IS NOT NULL
25900 )
25901 OR (
25902 vendor_name = p_vendor_name
25903 AND
25904 p_vendor_name IS NOT NULL
25905 )
25906 );
25907
25908 CURSOR vendor_site_csr (p_vendor_id NUMBER,
25909 p_site_id NUMBER,
25910 p_site_code VARCHAR2,
25911 p_auth_org_id NUMBER) IS
25912 select vendor_site_id
25913 from po_vendor_sites_all
25914 where ( (vendor_site_id = p_site_id
25915 AND
25916 p_site_id IS NOT NULL)
25917 OR
25918 (vendor_site_code = p_site_code
25919 AND
25920 p_site_code IS NOT NULL)
25921 )
25922 and org_id = p_auth_org_id
25923 and vendor_id = p_vendor_id;
25924
25925 l_vendor_id po_vendors.vendor_id%TYPE;
25926 l_vendor_site_id po_vendor_sites_all.vendor_site_id%TYPE;
25927 l_ppydv_rec ppydv_rec_type;
25928 x_ppydv_rec ppydv_rec_type;
25929
25930 lessee_failed EXCEPTION;
25931
25932 BEGIN
25933
25934 x_return_status := OKL_API.G_RET_STS_SUCCESS;
25935 debug_message(l_proc_name);
25936
25937 debug_message('------>Vendor: '||p_lessee_vendor_id||', '||p_lessee_vendor_name);
25938 debug_message('------>Vendor Site: '||p_lessee_site_id||', '||p_lessee_site_code);
25939
25940 IF (p_lessee_vendor_id IS NOT NULL
25941 OR
25942 p_lessee_vendor_name IS NOT NULL) THEN
25943
25944 -- Check vendor
25945 OPEN vendor_csr (p_lessee_vendor_id,
25946 p_lessee_vendor_name);
25947 FETCH vendor_csr INTO l_vendor_id;
25948 IF vendor_csr%NOTFOUND THEN
25949 okl_api.set_message(
25950 G_APP_NAME,
25951 G_INVALID_VALUE,
25952 'CONTRACT_NUM',
25953 p_contract_num,
25954 'COL_NAME',
25955 'LESSEE_AS_VENDOR_ID OR LESSEE_AS_VENDOR_NAME',
25956 'COL_VALUE',
25957 p_lessee_vendor_id||', '||p_lessee_vendor_name
25958 );
25959 RAISE lessee_failed;
25960 END IF;
25961 CLOSE vendor_csr;
25962
25963 debug_message('------> Vendor valid');
25964 -- Check vendor Pay site
25965 OPEN vendor_site_csr(l_vendor_id,
25966 p_lessee_site_id,
25967 p_lessee_site_code,
25968 p_authoring_org_id);
25969
25970 FETCH vendor_site_csr INTO l_vendor_site_id;
25971 IF vendor_site_csr%NOTFOUND THEN
25972 okl_api.set_message(
25973 G_APP_NAME,
25974 G_INVALID_VALUE,
25975 'CONTRACT_NUM',
25976 p_contract_num,
25977 'COL_NAME',
25978 'LESSEE_AS_VENDOR_SITE_ID OR LESSEE_AS_VENDOR_SITE_CODE',
25979 'COL_VALUE',
25980 p_lessee_site_id||', '||p_lessee_site_code
25981 );
25982 RAISE lessee_failed;
25983 END IF;
25984 CLOSE vendor_site_csr;
25985 debug_message('------> Vendor site valid');
25986
25987 -- create lessee as vendor here
25988 l_ppydv_rec.cpl_id := p_cpl_id;
25989 l_ppydv_rec.vendor_id := l_vendor_id;
25990 l_ppydv_rec.pay_site_id := l_vendor_site_id;
25991
25992 debug_message('------> Before creation of lessee as vendor');
25993 okl_lessee_as_vendor_pvt.create_lessee_as_vendor(
25994 p_api_version => 1.0,
25995 p_init_msg_list => OKL_API.G_FALSE,
25996 x_return_status => x_return_status,
25997 x_msg_count => x_msg_count,
25998 x_msg_data => x_msg_data,
25999 p_chr_id => p_chr_id,
26000 p_ppydv_rec => l_ppydv_rec,
26001 x_ppydv_rec => x_ppydv_rec
26002 );
26003
26004 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26005 RAISE lessee_failed;
26006 END IF;
26007 debug_message('------> After creation of lessee as vendor '||x_return_status);
26008
26009 END IF; -- vendor_id NOT NULL
26010
26011 EXCEPTION
26012 WHEN lessee_failed THEN
26013 IF vendor_csr%ISOPEN THEN
26014 CLOSE vendor_csr;
26015 END IF;
26016 IF vendor_site_csr%ISOPEN THEN
26017 CLOSE vendor_site_csr;
26018 END IF;
26019 x_return_status := OKL_API.G_RET_STS_ERROR;
26020
26021 WHEN OTHERS THEN
26022 okl_api.set_message(
26023 G_APP_NAME,
26024 G_UNEXPECTED_ERROR,
26025 'OKL_SQLCODE',
26026 SQLCODE,
26027 'OKL_SQLERRM',
26028 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
26029 );
26030 x_return_status := OKL_API.G_RET_STS_ERROR;
26031
26032 END create_lessee_as_vendor;
26033
26034 ------------------------------------------------------------------------------
26035 -- PROCEDURE get_txd_id
26036 -- This procedure gets okl_txd_assets_b.id, required to update in case of
26037 -- released asset import with mutiple tax books.
26038 -- Calls:
26039 -- Called By:
26040 -- load_input_record
26041 ------------------------------------------------------------------------------
26042 PROCEDURE get_txd_id (
26043 x_return_status OUT NOCOPY VARCHAR2,
26044 x_msg_count OUT NOCOPY NUMBER,
26045 x_msg_data OUT NOCOPY VARCHAR2,
26046 p_contract_number IN VARCHAR2,
26047 p_tal_id IN NUMBER,
26048 p_tax_book IN VARCHAR2,
26049 x_txd_id OUT NOCOPY OKL_TXD_ASSETS_B.ID%TYPE
26050 ) IS
26051
26052 CURSOR txd_csr (p_tal_id NUMBER,
26053 p_tax_book VARCHAR2) IS
26054 SELECT id
26055 FROM okl_txd_assets_b
26056 WHERE tal_id = p_tal_id
26057 AND tax_book = p_tax_book;
26058
26059 l_proc_name VARCHAR2(35) := 'GET_TXD_ID';
26060 BEGIN
26061
26062 x_return_status := OKL_API.G_RET_STS_SUCCESS;
26063 debug_message(l_proc_name);
26064
26065 OPEN txd_csr (p_tal_id,
26066 p_tax_book);
26067 FETCH txd_csr INTO x_txd_id;
26068 IF (txd_csr%NOTFOUND) THEN
26069 okl_api.set_message(
26070 G_APP_NAME,
26071 G_INVALID_VALUE,
26072 'CONTRACT_NUM',
26073 p_contract_number,
26074 'COL_NAME',
26075 'TAX_BOOK',
26076 'COL_VALUE',
26077 p_tax_book
26078 );
26079
26080 x_return_status := OKL_API.G_RET_STS_ERROR;
26081 END IF;
26082 CLOSE txd_csr;
26083
26084 EXCEPTION
26085
26086 WHEN OTHERS THEN
26087
26088 okl_api.set_message(
26089 G_APP_NAME,
26090 G_UNEXPECTED_ERROR,
26091 'OKL_SQLCODE',
26092 SQLCODE,
26093 'OKL_SQLERRM',
26094 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
26095 );
26096 x_return_status := OKL_API.G_RET_STS_ERROR;
26097 END get_txd_id;
26098
26099 ------------------------------------------------------------------------------
26100 -- PROCEDURE create_release_asset_rule
26101 -- This procedure creates release asset rule at contract header
26102 -- Calls:
26103 -- Called By:
26104 -- load_input_record
26105 ------------------------------------------------------------------------------
26106 PROCEDURE create_release_asset_rule(
26107 x_return_status OUT NOCOPY VARCHAR2,
26108 x_msg_count OUT NOCOPY NUMBER,
26109 x_msg_data OUT NOCOPY VARCHAR2,
26110 p_chr_id IN NUMBER,
26111 p_release_asset_flag IN VARCHAR2
26112 ) IS
26113
26114 l_proc_name VARCHAR2(35) := 'CREATE_RELEASE_ASSET_RULE';
26115
26116 l_rgpv_rec rgpv_rec_type;
26117 x_rgpv_rec rgpv_rec_type;
26118
26119 l_rulv_rec rulv_rec_type;
26120 x_rulv_rec rulv_rec_type;
26121
26122 l_rgp_id NUMBER := NULL;
26123 rel_rule_failed EXCEPTION;
26124
26125 BEGIN
26126
26127 x_return_status := OKL_API.G_RET_STS_SUCCESS;
26128 debug_message(l_proc_name);
26129
26130 l_rgpv_rec := NULL;
26131 l_rgp_id := NULL;
26132
26133 l_rgpv_rec.rgd_code := 'LARLES';
26134 l_rgpv_rec.chr_id := p_chr_id;
26135 l_rgpv_rec.dnz_chr_id := p_chr_id;
26136 l_rgpv_rec.cle_id := NULL;
26137 l_rgpv_rec.rgp_type := 'KRG';
26138
26139 l_rulv_rec := NULL;
26140
26141 l_rulv_rec.dnz_chr_id := p_chr_id;
26142 l_rulv_rec.rule_information_category := 'LARLES';
26143 l_rulv_rec.rule_information1 := p_release_asset_flag;
26144 l_rulv_rec.std_template_yn := 'N';
26145 l_rulv_rec.warn_yn := 'N';
26146
26147 create_rule_group_and_rule(
26148 x_return_status => x_return_status,
26149 x_msg_count => x_msg_count,
26150 x_msg_data => x_msg_data,
26151 p_rgp_id => l_rgp_id,
26152 p_rgpv_rec => l_rgpv_rec,
26153 p_rulv_rec => l_rulv_rec,
26154 x_rgpv_rec => x_rgpv_rec,
26155 x_rulv_rec => x_rulv_rec
26156 );
26157
26158 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26159 raise rel_rule_failed;
26160 END IF;
26161
26162 debug_message('------>Rule: LARLES/LARLES processed');
26163
26164 EXCEPTION
26165
26166 WHEN rel_rule_failed THEN
26167 x_return_status := OKL_API.G_RET_STS_ERROR;
26168
26169 WHEN OTHERS THEN
26170 okl_api.set_message(
26171 G_APP_NAME,
26172 G_UNEXPECTED_ERROR,
26173 'OKL_SQLCODE',
26174 SQLCODE,
26175 'OKL_SQLERRM',
26176 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
26177 );
26178 x_return_status := OKL_API.G_RET_STS_ERROR;
26179 END create_release_asset_rule;
26180
26181 ------------------------------------------------------------------------------
26182 -- PROCEDURE process_release_asset
26183 -- This procedure creates asset line using released asset
26184 -- Calls:
26185 -- Called By:
26186 -- load_input_record
26187 ------------------------------------------------------------------------------
26188
26189 PROCEDURE process_release_asset(
26190 x_return_status OUT NOCOPY VARCHAR2,
26191 x_msg_count OUT NOCOPY NUMBER,
26192 x_msg_data OUT NOCOPY VARCHAR2,
26193 p_chr_id IN VARCHAR2,
26194 p_contract_number IN VARCHAR2,
26195 p_asset_number IN VARCHAR2,
26196 p_asset_id IN OKL_LA_RELEASE_ASSETS_UV.ASSET_ID%TYPE,
26197 p_line_number IN NUMBER,
26198 p_install_site_id IN okl_lines_interface.install_site_id%TYPE,
26199 p_install_site_num IN okl_lines_interface.install_site_number%TYPE,
26200 p_unit_price IN okl_lines_interface.original_cost%TYPE,
26201 p_deprn_method IN okl_lines_interface.depreciation_method_code%TYPE,
26202 p_life_in_months IN okl_lines_interface.life_in_months%TYPE,
26203 p_deprn_rate IN okl_lines_interface.depreciation_rate%TYPE,
26204 p_asset_location_id IN okl_lines_interface.asset_location_id%TYPE,
26205 p_asset_loc_segment1 IN okl_lines_interface.asset_location_segment1%TYPE,
26206 p_asset_loc_segment2 IN okl_lines_interface.asset_location_segment2%TYPE,
26207 p_asset_loc_segment3 IN okl_lines_interface.asset_location_segment3%TYPE,
26208 p_asset_loc_segment4 IN okl_lines_interface.asset_location_segment4%TYPE,
26209 p_asset_loc_segment5 IN okl_lines_interface.asset_location_segment5%TYPE,
26210 p_asset_loc_segment6 IN okl_lines_interface.asset_location_segment6%TYPE,
26211 p_asset_loc_segment7 IN okl_lines_interface.asset_location_segment7%TYPE,
26212 p_salvage_value IN okl_lines_interface.salvage_value%TYPE,
26213 p_salvage_ptg IN okl_lines_interface.salvage_value_percent%TYPE,
26214 p_residual_grnty_amt IN okl_lines_interface.residual_amount_guarantee%TYPE,
26215 p_residual_code IN okl_lines_interface.guarantor_type_code%TYPE,
26216 p_residual_ptg IN okl_lines_interface.residual_percent%TYPE,
26217 p_residual_amt IN okl_lines_interface.residual_amount%TYPE,
26218 p_tax_book IN okl_lines_interface.tax_book%TYPE,
26219 p_tax_deprn IN okl_lines_interface.deprn_method_tax%TYPE,
26220 p_tax_life_in_mnth IN okl_lines_interface.life_in_months_tax%TYPE,
26221 p_tax_deprn_rate IN okl_lines_interface.deprn_rate_tax%TYPE,
26222 p_pth_base_payout_basis IN okl_lines_interface.pth_base_payout_basis%TYPE,
26223 p_pth_base_stream_code IN okl_lines_interface.pth_base_stream_code%TYPE,
26224 p_pth_base_stream_purpose_code IN okl_lines_interface.pth_base_stream_purpose_code%TYPE,
26225 p_pth_start_date IN okl_lines_interface.pth_start_date%TYPE,
26226 p_pth_evg_payout_basis IN okl_lines_interface.pth_evg_payout_basis%TYPE,
26227 p_pth_payout_basis_formula IN okl_lines_interface.pth_payout_basis_formula%TYPE,
26228 p_pth_evg_stream_code IN okl_lines_interface.pth_evg_stream_code%TYPE,
26229 p_pth_evg_stream_purpose_code IN okl_lines_interface.pth_evg_stream_purpose_code%TYPE,
26230 p_attribute_category IN okl_lines_interface.attribute_category%TYPE,
26231 p_attribute1 IN okl_lines_interface.attribute1%TYPE,
26232 p_attribute2 IN okl_lines_interface.attribute2%TYPE,
26233 p_attribute3 IN okl_lines_interface.attribute3%TYPE,
26234 p_attribute4 IN okl_lines_interface.attribute4%TYPE,
26235 p_attribute5 IN okl_lines_interface.attribute5%TYPE,
26236 p_attribute6 IN okl_lines_interface.attribute6%TYPE,
26237 p_attribute7 IN okl_lines_interface.attribute7%TYPE,
26238 p_attribute8 IN okl_lines_interface.attribute8%TYPE,
26239 p_attribute9 IN okl_lines_interface.attribute9%TYPE,
26240 p_attribute10 IN okl_lines_interface.attribute10%TYPE,
26241 p_attribute11 IN okl_lines_interface.attribute11%TYPE,
26242 p_attribute12 IN okl_lines_interface.attribute12%TYPE,
26243 p_attribute13 IN okl_lines_interface.attribute13%TYPE,
26244 p_attribute14 IN okl_lines_interface.attribute14%TYPE,
26245 p_attribute15 IN okl_lines_interface.attribute15%TYPE,
26246 x_clev_fin_rec OUT NOCOPY clev_rec_type,
26247 x_clev_model_rec OUT NOCOPY clev_rec_type,
26248 x_clev_fa_rec OUT NOCOPY clev_rec_type,
26249 x_clev_ib_rec OUT NOCOPY clev_rec_type
26250 ) IS
26251
26252 l_proc_name VARCHAR2(35) := 'PROCESS_RELEASE_ASSET';
26253 release_failed EXCEPTION;
26254
26255 l_clev_fin_rec clev_rec_type;
26256 l_klev_fin_rec klev_rec_type;
26257 l_clev_fa_rec clev_rec_type;
26258 l_cimv_fa_rec cimv_rec_type;
26259 l_talv_fa_rec talv_rec_type;
26260 l_itiv_ib_tbl itiv_tbl_type;
26261 l_cimv_model_rec cimv_rec_type;
26262 x_lse_id NUMBER;
26263 x_comb_id NUMBER;
26264 x_install_site_id NUMBER;
26265
26266 x_txd_id NUMBER;
26267 l_tal_id NUMBER;
26268
26269 l_adpv_rec adpv_rec_type;
26270 x_adpv_rec adpv_rec_type;
26271
26272 x_party_pmnt_hdr_tbl_out pphv_tbl_type;
26273 l_counter NUMBER;
26274
26275 BEGIN
26276
26277 x_return_status := OKL_API.G_RET_STS_SUCCESS;
26278 debug_message(l_proc_name);
26279
26280 debug_message('------> Contract id: '||p_chr_id);
26281 debug_message('------> Asset id: '||p_asset_id);
26282
26283 debug_message('------> Residual : '||p_residual_ptg||'/'||p_residual_amt);
26284 debug_message('------> Unit Price : '||p_unit_price);
26285 l_cimv_fa_rec.object1_id1 := p_asset_id;
26286 l_cimv_fa_rec.object1_id2 := '#';
26287 l_clev_fin_rec.dnz_chr_id := p_chr_id;
26288
26289 IF (p_unit_price IS NOT NULL) THEN
26290 l_clev_fin_rec.price_unit := p_unit_price;
26291 l_talv_fa_rec.original_cost := p_unit_price;
26292 END IF;
26293
26294 IF (p_residual_grnty_amt IS NOT NULL) THEN
26295 l_klev_fin_rec.residual_grnty_amount := p_residual_grnty_amt;
26296 END IF;
26297
26298 IF (p_residual_ptg IS NOT NULL) THEN
26299 l_klev_fin_rec.residual_percentage := p_residual_ptg;
26300 END IF;
26301
26302 IF (p_residual_amt IS NOT NULL) THEN
26303 l_klev_fin_rec.residual_value := p_residual_amt;
26304 END IF;
26305 l_klev_fin_rec.residual_code := NVL(p_residual_code,'NONE');
26306
26307 IF (p_deprn_method IS NOT NULL) THEN
26308 l_talv_fa_rec.deprn_method := p_deprn_method;
26309 END IF;
26310
26311 IF (p_life_in_months IS NOT NULL) THEN
26312 l_talv_fa_rec.life_in_months := p_life_in_months;
26313 END IF;
26314
26315 IF (p_deprn_rate IS NOT NULL) THEN
26316 l_talv_fa_rec.deprn_rate := p_deprn_rate;
26317 END IF;
26318
26319 IF (p_salvage_value IS NOT NULL) THEN
26320 l_talv_fa_rec.salvage_value := p_salvage_value;
26321 END IF;
26322
26323 IF (p_salvage_value IS NOT NULL) THEN
26324 l_talv_fa_rec.percent_salvage_value := p_salvage_ptg;
26325 END IF;
26326
26327 x_comb_id := NULL;
26328 get_flexid(
26329 x_return_status => x_return_status,
26330 x_msg_count => x_msg_count,
26331 x_msg_data => x_msg_data,
26332 p_type => 'ASSET_LOCATION',
26333 p_contract_number => p_contract_number,
26334 p_line_number => p_line_number,
26335 p_comb_id => p_asset_location_id,
26336 p_segment1 => p_asset_loc_segment1,
26337 p_segment2 => p_asset_loc_segment2,
26338 p_segment3 => p_asset_loc_segment3,
26339 p_segment4 => p_asset_loc_segment4,
26340 p_segment5 => p_asset_loc_segment5,
26341 p_segment6 => p_asset_loc_segment6,
26342 p_segment7 => p_asset_loc_segment7,
26343 x_comb_id => x_comb_id
26344 );
26345 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26346 x_return_status := OKL_API.G_RET_STS_ERROR;
26347 RAISE release_failed;
26348 END IF;
26349
26350 IF (x_comb_id IS NOT NULL) THEN
26351 l_talv_fa_rec.fa_location_id := x_comb_id;
26352 END IF;
26353
26354 IF (p_install_site_id IS NOT NULL
26355 OR
26356 p_install_site_num IS NOT NULL) THEN
26357 get_install_site_id(
26358 x_return_status => x_return_status,
26359 x_msg_count => x_msg_count,
26360 x_msg_data => x_msg_data,
26361 p_contract_number => p_contract_number,
26362 p_line_number => p_line_number,
26363 p_install_site_id => p_install_site_id,
26364 p_install_site_number => p_install_site_num,
26365 x_install_site_id => x_install_site_id
26366 );
26367
26368 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26369 x_return_status := OKL_API.G_RET_STS_ERROR;
26370 RAISE release_failed;
26371 END IF;
26372 l_itiv_ib_tbl(1).object_id1_new := x_install_site_id;
26373 END IF;
26374
26375 -- Contract addl field, Bug 4558486
26376
26377 debug_message('Contract release Asset line DFF...'||'Line#: '||p_line_number);
26378
26379 l_klev_fin_rec.validate_dff_yn := 'Y'; -- always validate DFF
26380 l_klev_fin_rec.attribute_category := p_attribute_category;
26381 debug_message('attribute_category: '||l_klev_fin_rec.attribute_category);
26382 l_klev_fin_rec.attribute1 := p_attribute1;
26383 debug_message('attribute1: '||l_klev_fin_rec.attribute1);
26384 l_klev_fin_rec.attribute2 := p_attribute2;
26385 debug_message('attribute2: '||l_klev_fin_rec.attribute2);
26386 l_klev_fin_rec.attribute3 := p_attribute3;
26387 l_klev_fin_rec.attribute4 := p_attribute4;
26388 l_klev_fin_rec.attribute5 := p_attribute5;
26389 l_klev_fin_rec.attribute6 := p_attribute6;
26390 l_klev_fin_rec.attribute7 := p_attribute7;
26391 l_klev_fin_rec.attribute8 := p_attribute8;
26392 l_klev_fin_rec.attribute9 := p_attribute9;
26393 l_klev_fin_rec.attribute10 := p_attribute10;
26394 l_klev_fin_rec.attribute11 := p_attribute11;
26395 l_klev_fin_rec.attribute12 := p_attribute12;
26396 l_klev_fin_rec.attribute13 := p_attribute13;
26397 l_klev_fin_rec.attribute14 := p_attribute14;
26398 l_klev_fin_rec.attribute15 := p_attribute15;
26399 -- Contract addl field, Bug 4558486
26400
26401 debug_message('======>Before calling create_all_line');
26402 okl_create_kle_pvt.Create_all_line(
26403 p_api_version => 1.0,
26404 p_init_msg_list => OKL_API.G_FALSE,
26405 x_return_status => x_return_status,
26406 x_msg_count => x_msg_count,
26407 x_msg_data => x_msg_data,
26408 p_new_yn => 'N',
26409 p_asset_number => NULL, --p_asset_number,
26410 p_clev_fin_rec => l_clev_fin_rec,
26411 p_klev_fin_rec => l_klev_fin_rec,
26412 p_cimv_model_rec => l_cimv_model_rec,
26413 p_clev_fa_rec => l_clev_fa_rec,
26414 p_cimv_fa_rec => l_cimv_fa_rec,
26415 p_talv_fa_rec => l_talv_fa_rec,
26416 p_itiv_ib_tbl => l_itiv_ib_tbl,
26417 x_clev_fin_rec => x_clev_fin_rec,
26418 x_clev_model_rec => x_clev_model_rec,
26419 x_clev_fa_rec => x_clev_fa_rec,
26420 x_clev_ib_rec => x_clev_ib_rec
26421 );
26422
26423 debug_message('======>After calling create_all_line '||x_return_status);
26424
26425 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26426 x_return_status := OKL_API.G_RET_STS_ERROR;
26427 RAISE release_failed;
26428 END IF;
26429
26430 debug_message('------> clev_fin_rec.id: '||x_clev_fin_rec.id);
26431 debug_message('------> clev_model_rec.id: '||x_clev_model_rec.id);
26432 debug_message('------> clev_fa_rec.id: '||x_clev_fa_rec.id);
26433 debug_message('------> clev_ib_rec.id: '||x_clev_ib_rec.id);
26434
26435 debug_message('------>Line created');
26436
26437 IF (p_pth_evg_payout_basis is NOT NULL) THEN
26438 debug_message('------>Create party payment starts for Released Asset: '||p_asset_number || '/ '|| p_line_number);
26439 create_party_payment_hdr(
26440 x_return_status => x_return_status,
26441 x_msg_count => x_msg_count,
26442 x_msg_data => x_msg_data,
26443 p_contract_id => x_clev_fin_rec.dnz_chr_id,
26444 p_line_id => x_clev_fin_rec.id,
26445 p_line_type => 'ASSET',
26446 p_pth_start_date => p_pth_start_date,
26447 p_pth_base_payout_basis => p_pth_base_payout_basis,
26448 p_pth_base_stream_code => p_pth_base_stream_code,
26449 p_pth_base_stream_purpose_code => p_pth_base_stream_purpose_code,
26450 p_pth_evg_payout_basis => p_pth_evg_payout_basis,
26451 p_pth_payout_basis_formula => p_pth_payout_basis_formula,
26452 p_pth_evg_stream_code => p_pth_evg_stream_code,
26453 p_pth_evg_stream_purpose_code => p_pth_evg_stream_purpose_code,
26454 x_party_pmnt_hdr_tbl => x_party_pmnt_hdr_tbl_out
26455 );
26456
26457 debug_message('------>Create party payment ends '||x_return_status);
26458 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26459 x_return_status := OKL_API.G_RET_STS_ERROR;
26460 RAISE release_failed;
26461 END IF;
26462 IF (x_party_pmnt_hdr_tbl_out.COUNT > 0 )THEN
26463 l_counter := x_party_pmnt_hdr_tbl_out.FIRST;
26464 LOOP
26465 IF (x_party_pmnt_hdr_tbl_out(l_counter).passthru_term = 'BASE') THEN
26466 g_base_pmnt_hdr := x_party_pmnt_hdr_tbl_out(l_counter);
26467 ELSIF (x_party_pmnt_hdr_tbl_out(l_counter).passthru_term = 'EVERGREEN') THEN
26468 g_evg_pmnt_hdr := x_party_pmnt_hdr_tbl_out(l_counter);
26469 END IF;
26470 EXIT WHEN (l_counter = x_party_pmnt_hdr_tbl_out.LAST);
26471 l_counter := x_party_pmnt_hdr_tbl_out.NEXT(l_counter);
26472 END LOOP;
26473 END IF;
26474 END IF;
26475
26476 -- Update TXD record for tax book, only if tax book is present
26477 IF (p_tax_book IS NOT NULL) THEN
26478 get_tal_id(
26479 x_return_status => x_return_status,
26480 p_fa_line_id => x_clev_fa_rec.id,
26481 x_tal_id => l_tal_id);
26482
26483 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26484 x_return_status := OKL_API.G_RET_STS_ERROR;
26485 RAISE release_failed;
26486 END IF;
26487
26488 debug_message('------> tal_id : '||l_tal_id);
26489
26490 get_txd_id (
26491 x_return_status => x_return_status,
26492 x_msg_count => x_msg_count,
26493 x_msg_data => x_msg_data,
26494 p_contract_number => p_contract_number,
26495 p_tal_id => l_tal_id,
26496 p_tax_book => p_tax_book,
26497 x_txd_id => x_txd_id
26498 );
26499
26500 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26501 x_return_status := OKL_API.G_RET_STS_ERROR;
26502 RAISE release_failed;
26503 END IF;
26504
26505 l_adpv_rec.id := x_txd_id;
26506 l_adpv_rec.asset_number := p_asset_number;
26507 l_adpv_rec.tal_id := l_tal_id;
26508
26509 IF (p_tax_deprn IS NOT NULL) THEN
26510 l_adpv_rec.deprn_method_tax := p_tax_deprn;
26511 END IF;
26512
26513 IF (p_tax_deprn_rate IS NOT NULL) THEN
26514 l_adpv_rec.deprn_rate_tax := p_tax_deprn_rate;
26515 END IF;
26516
26517 IF (p_tax_life_in_mnth IS NOT NULL) THEN
26518 l_adpv_rec.life_in_months_tax := p_tax_life_in_mnth;
26519 END IF;
26520
26521 okl_txd_assets_pub.update_txd_asset_def(
26522 p_api_version => 1.0,
26523 p_init_msg_list => OKL_API.G_FALSE,
26524 x_return_status => x_return_status,
26525 x_msg_count => x_msg_count,
26526 x_msg_data => x_msg_data,
26527 p_adpv_rec => l_adpv_rec,
26528 x_adpv_rec => x_adpv_rec
26529 );
26530
26531 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26532 x_return_status := OKL_API.G_RET_STS_ERROR;
26533 RAISE release_failed;
26534 END IF;
26535
26536 debug_message('------>TXD Line Updated');
26537
26538 END IF; -- p_asset_number not null
26539
26540 EXCEPTION
26541
26542 WHEN release_failed THEN
26543 x_return_status := OKL_API.G_RET_STS_ERROR;
26544
26545 WHEN OTHERS THEN
26546 okl_api.set_message(
26547 G_APP_NAME,
26548 G_UNEXPECTED_ERROR,
26549 'OKL_SQLCODE',
26550 SQLCODE,
26551 'OKL_SQLERRM',
26552 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
26553 );
26554 x_return_status := OKL_API.G_RET_STS_ERROR;
26555
26556 END process_release_asset;
26557
26558 ------------------------------------------------------------------------------
26559 -- PROCEDURE process_addon
26560 -- This procedure processes and creates addon line for each asset.
26561 -- Calls:
26562 -- Called By:
26563 -- load_input_record
26564 ------------------------------------------------------------------------------
26565
26566 PROCEDURE process_addon(
26567 x_return_status OUT NOCOPY VARCHAR2,
26568 x_msg_count OUT NOCOPY NUMBER,
26569 x_msg_data OUT NOCOPY VARCHAR2,
26570 p_auth_org_id IN NUMBER,
26571 p_contract_num IN VARCHAR2,
26572 p_chr_id IN NUMBER,
26573 p_fa_cle_id IN NUMBER,
26574 p_asset_num IN VARCHAR2,
26575 p_model_line_id IN NUMBER,
26576 p_number_of_items IN NUMBER
26577 ) IS
26578
26579 subtype clev_tbl_type is OKL_CREATE_KLE_PUB.clev_tbl_type;
26580 subtype klev_tbl_type is OKL_CREATE_KLE_PUB.klev_tbl_type;
26581 subtype cimv_tbl_type is OKL_CREATE_KLE_PUB.cimv_tbl_type;
26582
26583 -- Not needed these following three lines : AKP
26584 /*subtype clev_rec_type is OKL_CREATE_KLE_PUB.clev_rec_type;
26585 subtype klev_rec_type is OKL_CREATE_KLE_PUB.klev_rec_type;
26586 subtype cimv_rec_type is OKL_CREATE_KLE_PUB.cimv_rec_type; */
26587
26588 l_clev_tbl clev_tbl_type;
26589 l_klev_tbl klev_tbl_type;
26590 l_cimv_tbl cimv_tbl_type;
26591
26592 x_clev_tbl clev_tbl_type;
26593 x_klev_tbl klev_tbl_type;
26594 x_cimv_tbl cimv_tbl_type;
26595
26596 l_clev_rec clev_rec_type;
26597 l_klev_rec klev_rec_type;
26598 x_fin_clev_rec clev_rec_type;
26599 x_fin_klev_rec klev_rec_type;
26600 l_cimv_rec cimv_rec_type;
26601
26602 l_proc_name VARCHAR2(35):= 'PROCESS_ADDON';
26603 addon_failed EXCEPTION;
26604
26605 x_inventory_org_id NUMBER;
26606 x_inventory_item_id NUMBER;
26607
26608 x_asset_vendor_id NUMBER;
26609 p_cplv_rec cplv_rec_type;
26610 x_cplv_rec cplv_rec_type;
26611 l_kplv_rec kplv_rec_type;
26612 x_kplv_rec kplv_rec_type;
26613
26614 x_ship_to_site_id okx_party_site_uses_v.id1%TYPE;
26615 p_sidv_rec sidv_rec_type;
26616 x_sidv_rec sidv_rec_type;
26617
26618 CURSOR addon_csr (p_contract_number VARCHAR2,
26619 p_asset_number VARCHAR2) IS
26620 SELECT *
26621 FROM okl_lines_interface
26622 WHERE line_type = 'ASSET_ADDON'
26623 AND contract_number_old = p_contract_number
26624 AND asset_number = p_asset_number;
26625
26626 CURSOR okl_party_csr (p_contract_number_old VARCHAR2,
26627 p_line_number NUMBER) IS
26628 SELECT *
26629 FROM okl_party_roles_interface
26630 WHERE contract_number_old = p_contract_number_old
26631 AND ( (line_number = p_line_number
26632 AND
26633 p_line_number IS NOT NULL
26634 )
26635 OR
26636 (line_number IS NULL
26637 AND
26638 p_line_number IS NULL
26639 )
26640 );
26641
26642 BEGIN
26643
26644 x_return_status := OKL_API.G_RET_STS_SUCCESS;
26645 debug_message(l_proc_name);
26646
26647 FOR addon_rec IN addon_csr (p_contract_num,
26648 p_asset_num)
26649 LOOP
26650 debug_message('Processing Addon line number: '||addon_rec.line_number);
26651 -- validate addon
26652
26653 -- Get Item and Organization Info, for All line type
26654 IF (addon_rec.inventory_item_id IS NOT NULL
26655 OR
26656 addon_rec.inventory_item_name IS NOT NULL) THEN
26657 get_inventory_org_item_id(
26658 x_return_status => x_return_status,
26659 x_msg_count => x_msg_count,
26660 x_msg_data => x_msg_data,
26661 p_contract_number => p_contract_num,
26662 p_line_number => addon_rec.line_number,
26663 p_line_type => addon_rec.line_type,
26664 p_inventory_org_id => p_auth_org_id,
26665 p_inventory_item_id => addon_rec.inventory_item_id,
26666 p_inventory_item_name => addon_rec.inventory_item_name,
26667 x_inventory_org_id => x_inventory_org_id,
26668 x_inventory_item_id => x_inventory_item_id
26669 );
26670
26671 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26672 x_return_status := OKL_API.G_RET_STS_ERROR;
26673 RAISE addon_failed;
26674 END IF;
26675
26676 -- Populate records and call create addon api
26677 l_clev_rec.cle_id := p_model_line_id;
26678 l_clev_rec.dnz_chr_id := p_chr_id;
26679 l_clev_rec.comments := addon_rec.DESCRIPTION;
26680 l_clev_rec.price_unit := addon_rec.ORIGINAL_COST;
26681 l_clev_rec.exception_yn := 'N';
26682
26683 l_klev_rec.MANUFACTURER_NAME := addon_rec.MAKE;
26684 l_klev_rec.MODEL_NUMBER := addon_rec.MODEL;
26685 l_klev_rec.YEAR_OF_MANUFACTURE := addon_rec.YEAR_OF_MANUFACTURE;
26686
26687 l_cimv_rec.object1_id1 := x_inventory_item_id;
26688 l_cimv_rec.object1_id2 := x_inventory_org_id;
26689 l_cimv_rec.exception_yn := 'N';
26690 l_cimv_rec.number_of_items := p_number_of_items;
26691
26692 l_clev_tbl(1) := l_clev_rec;
26693 l_klev_tbl(1) := l_klev_rec;
26694 l_cimv_tbl(1) := l_cimv_rec;
26695
26696 okl_create_kle_pub.create_add_on_line(
26697 p_api_version => 1,
26698 p_init_msg_list => OKC_API.G_FALSE,
26699 x_return_status => x_return_status,
26700 x_msg_count => x_msg_count,
26701 x_msg_data => x_msg_data,
26702 p_new_yn => 'Y',
26703 p_asset_number => p_asset_num,
26704 p_clev_tbl => l_clev_tbl,
26705 p_klev_tbl => l_klev_tbl,
26706 p_cimv_tbl => l_cimv_tbl,
26707 x_clev_tbl => x_clev_tbl,
26708 x_klev_tbl => x_klev_tbl,
26709 x_fin_clev_rec => x_fin_clev_rec,
26710 x_fin_klev_rec => x_fin_klev_rec,
26711 x_cimv_tbl => x_cimv_tbl);
26712
26713 debug_message('x_clev_tbl(1).id=' || x_clev_tbl(1).ID);
26714 --debug_message('x_klev_tbl(1).id=' || x_klev_tbl(1).ID);
26715 --debug_message('x_fin_clev_tbl(1).id=' || x_fin_clev_tbl(1).ID);
26716 --debug_message('x_fin_klev_tbl(1).id=' || x_fin_klev_tbl(1).ID);
26717 --debug_message('x_cimv_tbl(1).id=' || x_cimv_tbl(1).ID);
26718
26719 debug_message('After create_add_on_line: x_return_status=' || x_return_status);
26720 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26721 RAISE addon_failed;
26722 END IF;
26723
26724 -- Do process party role
26725 FOR okl_party_rec IN okl_party_csr(p_contract_num, addon_rec.line_number)
26726 LOOP
26727 IF (okl_party_rec.ASSET_VENDOR_ID IS NOT NULL) THEN
26728 x_asset_vendor_id := okl_party_rec.ASSET_VENDOR_ID;
26729 ELSE
26730 get_vendor_id (
26731 x_return_status => x_return_status,
26732 x_msg_count => x_msg_count,
26733 x_msg_data => x_msg_data,
26734 p_contract_number => p_contract_num,
26735 p_line_number => addon_rec.line_number,
26736 x_vendor_id => x_asset_vendor_id,
26737 p_vendor_name => okl_party_rec.ASSET_VENDOR_NAME
26738 );
26739 debug_message('Addon:x_asset_vendor_id=' || x_asset_vendor_id);
26740 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26741 RAISE addon_failed;
26742 END IF;
26743 END IF;
26744
26745 IF (x_asset_vendor_id IS NOT NULL) THEN
26746 p_cplv_rec := NULL;
26747 p_cplv_rec.chr_id := NULL;
26748 p_cplv_rec.dnz_chr_id := p_chr_id;
26749 p_cplv_rec.cle_id := x_clev_tbl(1).ID;
26750 p_cplv_rec.object1_id1 := TO_CHAR(x_asset_vendor_id);
26751 p_cplv_rec.object1_id2 := '#';
26752 p_cplv_rec.jtot_object1_code := 'OKX_VENDOR';
26753 p_cplv_rec.rle_code := 'OKL_VENDOR';
26754 OKL_K_PARTY_ROLES_PVT.create_k_party_role(
26755 p_api_version => 1.0,
26756 p_init_msg_list => OKL_API.G_FALSE,
26757 x_return_status => x_return_status,
26758 x_msg_count => x_msg_count,
26759 x_msg_data => x_msg_data,
26760 p_cplv_rec => p_cplv_rec,
26761 p_kplv_rec => l_kplv_rec,
26762 x_cplv_rec => x_cplv_rec,
26763 x_kplv_rec => x_kplv_rec
26764 );
26765
26766 debug_message('x_cplv_rec.id=' || x_cplv_rec.ID);
26767 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26768 RAISE addon_failed;
26769 END IF;
26770
26771 END IF;
26772
26773 END LOOP; -- okl_party_csr
26774
26775 -- Do create supp invoice details
26776 IF (x_asset_vendor_id is NOT NULL) THEN
26777 debug_message('x_clev_tbl(1).ID=' || x_clev_tbl(1).ID);
26778 debug_message('p_fa_cle_id=' || p_fa_cle_id);
26779 p_sidv_rec.cle_id := x_clev_tbl(1).id;
26780 p_sidv_rec.fa_cle_id := p_fa_cle_id;
26781 p_sidv_rec.invoice_number := addon_rec.vendor_invoice_number;
26782 p_sidv_rec.date_invoiced := addon_rec.vendor_invoice_date;
26783 IF (addon_rec.ship_to_site_id IS NOT NULL
26784 OR
26785 addon_rec.ship_to_site_number IS NOT NULL) THEN
26786 get_ship_to_site(
26787 x_return_status => x_return_status,
26788 x_msg_count => x_msg_count,
26789 x_msg_data => x_msg_data,
26790 p_contract_number => p_contract_num,
26791 p_line_number => addon_rec.line_number,
26792 p_auth_org_id => p_auth_org_id,
26793 p_ship_to_site_number => addon_rec.ship_to_site_number,
26794 p_ship_to_site_id => addon_rec.ship_to_site_id,
26795 x_ship_to_site_id => x_ship_to_site_id
26796 );
26797 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26798 RAISE addon_failed;
26799 x_return_status := OKL_API.G_RET_STS_ERROR;
26800 END IF;
26801
26802 debug_message('x_ship_to_site_id=' || x_ship_to_site_id);
26803 p_sidv_rec.shipping_address_id1 := x_ship_to_site_id;
26804 p_sidv_rec.shipping_address_id2 := '#';
26805 p_sidv_rec.shipping_address_code := 'OKX_CUSTSITE';
26806 END IF;
26807
26808 okl_supp_invoice_dtls_pub.create_sup_inv_dtls(
26809 p_api_version => 1.0,
26810 x_return_status => x_return_status,
26811 x_msg_count => x_msg_count,
26812 x_msg_data => x_msg_data,
26813 p_sidv_rec => p_sidv_rec,
26814 x_sidv_rec => x_sidv_rec
26815 );
26816 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
26817 x_return_status := OKL_API.G_RET_STS_ERROR;
26818 RAISE addon_failed;
26819 END IF;
26820 ELSE
26821 IF (addon_rec.vendor_invoice_number IS NOT NULL OR
26822 addon_rec.vendor_invoice_date IS NOT NULL OR
26823 addon_rec.ship_to_site_id IS NOT NULL OR
26824 addon_rec.ship_to_site_number IS NOT NULL) THEN
26825 okl_api.set_message(
26826 G_APP_NAME,
26827 G_MISSING_VALUE_FOR_LINE,
26828 'CONTRACT_NUM',
26829 p_contract_num, --||'/'||addon_rec.line_number,
26830 'COL_NAME',
26831 'ADDON:ASSET_VENDOR_ID, ADDON:ASSET_VENDOR_NAME',
26832 'LINE',
26833 'Line Number ' || addon_rec.line_number || ' in party_roles_interface'
26834 );
26835 RAISE addon_failed;
26836 END IF;
26837 END IF;
26838
26839
26840 -- Done processing. Now delete the tables.
26841 l_clev_tbl.delete;
26842 l_klev_tbl.delete;
26843 l_cimv_tbl.delete;
26844
26845 END IF;
26846
26847
26848 END LOOP;
26849
26850 EXCEPTION
26851 WHEN addon_failed THEN
26852 x_return_status := OKL_API.G_RET_STS_ERROR;
26853
26854 END process_addon;
26855
26856 ------------------------------------------------------------------------------
26857 -- PROCEDURE process_subsidy
26858 -- This procedure processes and creates subsidy line for each asset.
26859 -- Calls:
26860 -- Called By:
26861 -- load_input_record
26862 ------------------------------------------------------------------------------
26863 PROCEDURE process_subsidy(
26864 x_return_status OUT NOCOPY VARCHAR2,
26865 x_msg_count OUT NOCOPY NUMBER,
26866 x_msg_data OUT NOCOPY VARCHAR2,
26867 p_auth_org_id IN NUMBER,
26868 p_contract_num IN VARCHAR2,
26869 p_chr_id IN NUMBER,
26870 p_asset_line_id IN NUMBER,
26871 p_asset_num IN VARCHAR2
26872 ) IS
26873 l_proc_name VARCHAR2(35):= 'PROCESS_SUBSIDY';
26874 subsidy_failed EXCEPTION;
26875
26876 CURSOR subsidy_csr (p_contract_number VARCHAR2,
26877 p_asset_number VARCHAR2) IS
26878 SELECT *
26879 FROM okl_lines_interface
26880 WHERE line_type = 'ASSET_SUBSIDY'
26881 AND contract_number_old = p_contract_number
26882 AND asset_number = p_asset_number;
26883
26884 l_subsidy_id okl_subsidies_b.id%TYPE;
26885 l_vendor_id okl_subsidies_b.vendor_id%TYPE;
26886 l_paysite_id NUMBER;
26887 l_payterm_id NUMBER;
26888
26889 l_asb_rec okl_asset_subsidy_pvt.asb_rec_type;
26890 x_asb_rec okl_asset_subsidy_pvt.asb_rec_type;
26891
26892 l_srfvv_rec okl_subsidy_rfnd_dtls_pvt.srfvv_rec_type;
26893 x_srfvv_rec okl_subsidy_rfnd_dtls_pvt.srfvv_rec_type;
26894
26895 CURSOR vendor_csr (p_name VARCHAR2) IS
26896 SELECT vendor_id
26897 FROM po_vendors
26898 WHERE vendor_name = p_name;
26899
26900 CURSOR sub_id_csr (p_name okl_subsidies_b.name%TYPE,
26901 p_org NUMBER) IS
26902 SELECT id
26903 FROM okl_subsidies_b
26904 WHERE name = p_name
26905 AND org_id = p_org;
26906
26907 CURSOR paysite_csr (p_code po_vendor_sites_all.vendor_site_code%TYPE,
26908 p_ven_id NUMBER,
26909 p_org NUMBER) IS
26910 SELECT vendor_site_id
26911 FROM po_vendor_sites_all
26912 WHERE vendor_site_code = p_code
26913 AND vendor_id = p_ven_id
26914 AND org_id = p_org;
26915
26916 CURSOR payterm_csr (p_name okx_payables_terms_v.name%TYPE) IS
26917 SELECT id1
26918 FROM okx_payables_terms_v
26919 WHERE NAME = p_name
26920 AND status = 'A';
26921
26922 BEGIN
26923 x_return_status := OKL_API.G_RET_STS_SUCCESS;
26924 debug_message(l_proc_name);
26925
26926 FOR subsidy_rec IN subsidy_csr (p_contract_num,
26927 p_asset_num)
26928 LOOP
26929 debug_message('Processing Subsidy line number: '||subsidy_rec.line_number);
26930 -- validate subsidy
26931 IF (subsidy_rec.subsidy_id IS NOT NULL) THEN
26932 l_subsidy_id := subsidy_rec.subsidy_id;
26933 ELSIF (subsidy_rec.subsidy_name IS NOT NULL) THEN
26934 OPEN sub_id_csr (subsidy_rec.subsidy_name,
26935 p_auth_org_id);
26936 FETCH sub_id_csr INTO l_subsidy_id;
26937 IF sub_id_csr%NOTFOUND THEN
26938 -- Error
26939 okl_api.set_message(
26940 G_APP_NAME,
26941 G_INVALID_VALUE,
26942 'CONTRACT_NUM',
26943 p_contract_num||'/'||subsidy_rec.line_number,
26944 'COL_NAME',
26945 'SUBSIDY_NAME',
26946 'COL_VALUE',
26947 subsidy_rec.subsidy_name
26948 );
26949 RAISE subsidy_failed;
26950 END IF;
26951 CLOSE sub_id_csr;
26952 ELSE
26953 okl_api.set_message(
26954 G_APP_NAME,
26955 G_MISSING_VALUE_FOR_LINE,
26956 'CONTRACT_NUM',
26957 p_contract_num||'/'||subsidy_rec.line_number,
26958 'COL_NAME',
26959 'SUBSIDY_ID, NAME'
26960 );
26961 RAISE subsidy_failed;
26962 END IF;
26963
26964 -- validate vendor
26965 IF (subsidy_rec.subsidy_party_id IS NOT NULL) THEN
26966 l_vendor_id := subsidy_rec.subsidy_party_id;
26967 ELSIF (subsidy_rec.subsidy_party_name IS NOT NULL) THEN
26968 OPEN vendor_csr (subsidy_rec.subsidy_party_name);
26969 FETCH vendor_csr INTO l_vendor_id;
26970 IF vendor_csr%NOTFOUND THEN
26971 okl_api.set_message(
26972 G_APP_NAME,
26973 G_INVALID_VALUE,
26974 'CONTRACT_NUM',
26975 p_contract_num||'/'||subsidy_rec.line_number,
26976 'COL_NAME',
26977 'SUBSIDY_PARTY_ID, NAME',
26978 'COL_VALUE',
26979 subsidy_rec.subsidy_party_id||', '||subsidy_rec.subsidy_party_name
26980 );
26981 RAISE subsidy_failed;
26982 END IF;
26983 CLOSE vendor_csr;
26984 ELSE
26985 l_vendor_id := NULL;
26986 END IF;
26987
26988 l_asb_rec.subsidy_id := l_subsidy_id;
26989 l_asb_rec.subsidy_override_amount := subsidy_rec.subsidy_override_amount;
26990 l_asb_rec.dnz_chr_id := p_chr_id;
26991 l_asb_rec.asset_cle_id := p_asset_line_id;
26992 l_asb_rec.vendor_id := l_vendor_id;
26993
26994 debug_message('Subsidy: '||l_asb_rec.subsidy_id);
26995 debug_message('Override: '||l_asb_rec.subsidy_override_amount);
26996 debug_message('asset_cle_id: '||l_asb_rec.asset_cle_id);
26997 debug_message('vendor: '||l_asb_rec.vendor_id);
26998
26999 okl_asset_subsidy_pvt.create_asset_subsidy(
27000 p_api_version => 1.0,
27001 p_init_msg_list => OKL_API.G_FALSE,
27002 x_return_status => x_return_status,
27003 x_msg_count => x_msg_count,
27004 x_msg_data => x_msg_data,
27005 p_asb_rec => l_asb_rec,
27006 x_asb_rec => x_asb_rec
27007 );
27008
27009 debug_message('okl_asset_subsidy_pvt.create_asset_subsidy: '||x_return_status);
27010
27011 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
27012 RAISE subsidy_failed;
27013 END IF;
27014
27015 -- refund detail if any
27016 IF (subsidy_rec.subsidy_refnd_paysite_id IS NOT NULL
27017 OR
27018 subsidy_rec.subsidy_refnd_paysite_code IS NOT NULL
27019 OR
27020 subsidy_rec.subsidy_refnd_payterm_id IS NOT NULL
27021 OR
27022 subsidy_rec.subsidy_refnd_payterm_name IS NOT NULL
27023 OR
27024 subsidy_rec.subsidy_refnd_paymethod_code IS NOT NULL) THEN
27025
27026 IF (subsidy_rec.subsidy_refnd_paysite_id IS NOT NULL) THEN
27027 l_paysite_id := subsidy_rec.subsidy_refnd_paysite_id;
27028 ELSIF (subsidy_rec.subsidy_refnd_paysite_code IS NOT NULL) THEN
27029 -- get pay site id
27030 OPEN paysite_csr(subsidy_rec.subsidy_refnd_paysite_code,
27031 l_vendor_id,
27032 p_auth_org_id);
27033 FETCH paysite_csr INTO l_paysite_id;
27034 IF paysite_csr%NOTFOUND THEN
27035 -- error
27036 okl_api.set_message(
27037 G_APP_NAME,
27038 G_INVALID_VALUE,
27039 'CONTRACT_NUM',
27040 p_contract_num||'/'||subsidy_rec.line_number,
27041 'COL_NAME',
27042 'SUBSIDY_REFND_PAYSITE_ID, CODE',
27043 'COL_VALUE',
27044 subsidy_rec.subsidy_refnd_paysite_id||', '||subsidy_rec.subsidy_refnd_paysite_code
27045 );
27046 RAISE subsidy_failed;
27047 END IF;
27048 CLOSE paysite_csr;
27049 ELSE
27050 okl_api.set_message(
27051 G_APP_NAME,
27052 G_MISSING_VALUE_FOR_LINE,
27053 'CONTRACT_NUM',
27054 p_contract_num||'/'||subsidy_rec.line_number,
27055 'COL_NAME',
27056 'SUBSIDY_REFND_PAYSITE_ID/CODE'
27057 );
27058 RAISE subsidy_failed;
27059 END IF;
27060
27061 IF (subsidy_rec.subsidy_refnd_payterm_id IS NOT NULL) THEN
27062 l_payterm_id := subsidy_rec.subsidy_refnd_payterm_id;
27063 ELSIF (subsidy_rec.subsidy_refnd_payterm_name IS NOT NULL) THEN
27064 -- get payterm id
27065 OPEN payterm_csr(subsidy_rec.subsidy_refnd_payterm_name);
27066 FETCH payterm_csr INTO l_payterm_id;
27067 IF payterm_csr%NOTFOUND THEN
27068 -- error
27069 okl_api.set_message(
27070 G_APP_NAME,
27071 G_INVALID_VALUE,
27072 'CONTRACT_NUM',
27073 p_contract_num||'/'||subsidy_rec.line_number,
27074 'COL_NAME',
27075 'SUBSIDY_REFND_PAYTERM_ID, NAME',
27076 'COL_VALUE',
27077 subsidy_rec.subsidy_refnd_payterm_id||', '||subsidy_rec.subsidy_refnd_payterm_name
27078 );
27079 RAISE subsidy_failed;
27080 END IF;
27081 CLOSE payterm_csr;
27082 ELSE
27083 okl_api.set_message(
27084 G_APP_NAME,
27085 G_MISSING_VALUE_FOR_LINE,
27086 'CONTRACT_NUM',
27087 p_contract_num||'/'||subsidy_rec.line_number,
27088 'COL_NAME',
27089 'SUBSIDY_REFND_PAYTERM_ID/NAME'
27090 );
27091 RAISE subsidy_failed;
27092 END IF;
27093
27094 l_srfvv_rec.cpl_id := x_asb_rec.cpl_id;
27095 l_srfvv_rec.vendor_id := l_vendor_id;
27096 l_srfvv_rec.pay_site_id := l_paysite_id;
27097 l_srfvv_rec.payment_term_id := l_payterm_id;
27098 l_srfvv_rec.payment_method_code := subsidy_rec.subsidy_refnd_paymethod_code;
27099 l_srfvv_rec.pay_group_code := subsidy_rec.subsidy_refnd_paygroup_code;
27100
27101 debug_message('l_srfvv_rec.cpl_id: '||l_srfvv_rec.cpl_id);
27102 debug_message('l_srfvv_rec.vendor_id: '||l_srfvv_rec.vendor_id);
27103 debug_message('l_srfvv_rec.pay_site_id: '||l_srfvv_rec.pay_site_id);
27104 debug_message('l_srfvv_rec.payment_term_id: '||l_srfvv_rec.payment_term_id);
27105 debug_message('l_srfvv_rec.payment_method_code: '||l_srfvv_rec.payment_method_code);
27106 debug_message('l_srfvv_rec.pay_group_code: '||l_srfvv_rec.pay_group_code);
27107
27108 okl_subsidy_rfnd_dtls_pvt.create_refund_dtls(
27109 p_api_version => 1.0,
27110 p_init_msg_list => OKL_API.G_FALSE,
27111 x_return_status => x_return_status,
27112 x_msg_count => x_msg_count,
27113 x_msg_data => x_msg_data,
27114 p_srfvv_rec => l_srfvv_rec,
27115 x_srfvv_rec => x_srfvv_rec
27116 );
27117
27118 debug_message('okl_subsidy_rfnd_dtls_pvt.create_refund_dtls: '||x_return_status);
27119 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
27120 RAISE subsidy_failed;
27121 END IF;
27122
27123 END IF; -- refund detail
27124
27125 END LOOP; --subsidy_rec
27126
27127 EXCEPTION
27128 WHEN subsidy_failed THEN
27129 x_return_status := OKL_API.G_RET_STS_ERROR;
27130 END process_subsidy;
27131
27132 ------------------------------------------------------------------------------
27133 -- PROCEDURE check_and_delete
27134 -- This procedure deletes contracts from OLM and
27135 -- stacks Error, if any, and returns ERROR status to calling process.
27136 -- Calls:
27137 ------------------------------------------------------------------------------
27138
27139 PROCEDURE check_and_delete(
27140 x_return_status OUT NOCOPY VARCHAR2,
27141 x_msg_count OUT NOCOPY NUMBER,
27142 x_msg_data OUT NOCOPY VARCHAR2,
27143 p_contract_number IN varchar2,
27144 p_delete_before_import_yn IN varchar2 -- akp_delete
27145 ) IS
27146
27147 l_proc_name VARCHAR2(35) := 'CHECK_AND_DELETE';
27148 l_contract_id okc_k_headers_b.id%type;
27149
27150 cursor get_contract_id(p_contract_no varchar2) is
27151 select id
27152 from okc_k_headers_b
27153 where contract_number = p_contract_no;
27154
27155 -- udhenuko Bug#5666768 Start
27156 l_ipyv_rec okl_ipy_pvt.ipyv_rec_type;
27157 l_ins_id okl_ins_policies_b.id%TYPE;
27158 cursor get_ins_id_csr(p_khr_id in number) is
27159 select id
27160 from okl_ins_policies_b where khr_id=p_khr_id;
27161 --Bug#5666768 end
27162
27163 BEGIN
27164 x_return_status := OKL_API.G_RET_STS_SUCCESS;
27165 debug_message(l_proc_name);
27166
27167 if (p_contract_number is null) then
27168 return;
27169 end if;
27170
27171 if (upper(nvl(p_delete_before_import_yn, 'N')) <> 'Y') then
27172 return;
27173 end if;
27174
27175 debug_message('Contract ' || p_contract_number || ' picked up for delete...');
27176 open get_contract_id(p_contract_number);
27177 fetch get_contract_id into l_contract_id;
27178 if get_contract_id%notfound then
27179 close get_contract_id;
27180 debug_message('Contract ' || p_contract_number || ' not found in OLM for delete...');
27181 return;
27182 else
27183 close get_contract_id;
27184
27185 -- Call Delete API
27186 okl_contract_pub.delete_contract(
27187 p_api_version => 1.0,
27188 p_init_msg_list => OKL_API.G_FALSE,
27189 x_return_status => x_return_status,
27190 x_msg_count => x_msg_count,
27191 x_msg_data => x_msg_data,
27192 p_contract_id => l_contract_id );
27193 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
27194 debug_message('Contract ' || p_contract_number || ' deleted from OLM...');
27195 ELSE
27196 debug_message('Error during delete contract ' || p_contract_number );
27197 END IF;
27198
27199 --Bug#5666768 - Start. Invoke the TAPI
27200 open get_ins_id_csr(l_contract_id);
27201 fetch get_ins_id_csr into l_ins_id;
27202 if get_ins_id_csr%notfound then
27203 close get_ins_id_csr;
27204 debug_message('Insurance Policy for Contract ' || p_contract_number || ' not found..');
27205 return;
27206 end if;
27207 close get_ins_id_csr;
27208 l_ipyv_rec.id:=l_ins_id;
27209 OKL_INS_POLICIES_PUB.delete_ins_policies(p_api_version => 1.0,
27210 p_init_msg_list => OKL_API.G_FALSE,
27211 x_return_status => x_return_status,
27212 x_msg_count => x_msg_count,
27213 x_msg_data => x_msg_data,
27214 p_ipyv_rec => l_ipyv_rec);
27215 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
27216 debug_message('Contract ' || p_contract_number || ' deleted from OLM after delete_ins_policies...');
27217 ELSE
27218 debug_message('Error during OKL_INS_POLICIES_PUB.delete_ins_policies ' || p_contract_number );
27219 END IF;
27220 end if;
27221 --Bug#5666768 end
27222
27223 END check_and_delete;
27224
27225 ------------------------------------------------------------------------------
27226 -- PROCEDURE Load_Input_Record
27227 -- It Reads data from Interface Tables and Validates. During process of validation it
27228 -- stacks Error, if any, and returns ERROR status to calling process.
27229 -- Calls:
27230 -- get_agreement_id
27231 -- get_product_id
27232 -- create_party_role
27233 -- create_contact
27234 -- create_header_rules
27235 -- get_lse_id
27236 -- get_inventory_org_item_id
27237 -- get_asset_id
27238 -- get_install_site_id
27239 -- process_other_line
27240 -- create_line_rules
27241 -- process_party_role
27242 -- process_term
27243 -- create_payment_rule_group
27244 -- check_payment_frequency_code
27245 -- create_payment_other_rules
27246 -- report_error
27247 -- update_interface_status
27248 -- Called By:
27249 -- process_record
27250 ------------------------------------------------------------------------------
27251 PROCEDURE Load_Input_Record(
27252 p_init_msg_list IN VARCHAR2,
27253 x_return_status OUT NOCOPY VARCHAR2,
27254 x_msg_count OUT NOCOPY NUMBER,
27255 x_msg_data OUT NOCOPY VARCHAR2,
27256 p_batch_number IN VARCHAR2,
27257 p_start_date_from IN DATE,
27258 p_start_date_to IN DATE,
27259 p_contract_number IN VARCHAR2,
27260 p_customer_number IN VARCHAR2,
27261 x_total_loaded OUT NOCOPY NUMBER
27262 ) IS
27263
27264 -- local variables
27265 l_proc_name VARCHAR2(35) := 'LOAD_INPUT_RECORD';
27266 l_progress VARCHAR2(3) := NULL;
27267 x_master_lease_id OKC_K_HEADERS_V.ID%TYPE;
27268 x_customer_account_id NUMBER;
27269 x_inventory_org_id NUMBER;
27270 x_inventory_item_id NUMBER;
27271 x_lse_id NUMBER;
27272 x_id1 okx_assets_v.id1%TYPE;
27273 x_id2 okx_assets_v.id2%TYPE;
27274 l_no_of_lines NUMBER;
27275 l_ib_line_count NUMBER;
27276 -- l_new_yn VARCHAR2(1);
27277 x_comb_id NUMBER;
27278 x_rgp_id NUMBER;
27279 l_contract_number_old_prev okl_header_interface.contract_number_old%TYPE;
27280 l_line_number_prev okl_lines_interface.line_number%TYPE;
27281 l_asset_number_prev okl_payments_interface.asset_number%TYPE;
27282 l_payment_type_code_prev okl_payments_interface.payment_type_code%TYPE;
27283 l_pmnt_sch_num_prev NUMBER;
27284 l_start_date_prev DATE;
27285 l_number_of_periods_prev NUMBER;
27286 x_pmnt_freq_id okx_tuom_v.id1%TYPE;
27287 x_uom_code okx_tuom_v.uom_code%TYPE;
27288 l_mult_factor NUMBER;
27289 l_current_start_date DATE;
27290 x_install_site_id okx_party_site_uses_v.id1%TYPE;
27291 l_rule_create_flag VARCHAR2(1) := 'Y';
27292
27293 x_inv_item_id_prev NUMBER;
27294 p_inv_item_id_prev NUMBER;
27295 p_line_type_prev VARCHAR2(35);
27296 x_ship_to_site_id okx_party_site_uses_v.id1%TYPE;
27297 l_rg_id NUMBER;
27298
27299 x_cle_id okc_k_lines_v.id%TYPE;
27300 p_cle_id okc_k_lines_v.id%TYPE;
27301
27302 -- Header Rec
27303 p_chrv_rec chrv_rec_type;
27304 p_khrv_rec khrv_rec_type;
27305 x_chrv_rec chrv_rec_type;
27306 x_khrv_rec khrv_rec_type;
27307
27308 l_chrv_rec chrv_rec_type;
27309 l_khrv_rec khrv_rec_type;
27310
27311 l_gvev_rec gvev_rec_type;
27312 x_gvev_rec gvev_rec_type;
27313
27314 -- Party Role Rec
27315 p_cplv_rec cplv_rec_type;
27316 x_cplv_rec cplv_rec_type;
27317
27318 -- Lines Rec
27319 p_clev_fin_rec clev_rec_type;
27320 p_klev_fin_rec klev_rec_type;
27321 p_cimv_model_rec cimv_rec_type;
27322 p_clev_fa_rec clev_rec_type;
27323 p_cimv_fa_rec cimv_rec_type;
27324 p_talv_fa_rec talv_rec_type;
27325 p_itiv_ib_tbl itiv_tbl_type;
27326 p_sidv_rec sidv_rec_type;
27327 x_sidv_rec sidv_rec_type;
27328
27329 x_clev_fin_rec clev_rec_type;
27330 x_clev_model_rec clev_rec_type;
27331 x_clev_fa_rec clev_rec_type;
27332 x_clev_ib_rec clev_rec_type;
27333
27334 l_talv_rec tlpv_rec_type;
27335 x_talv_rec tlpv_rec_type;
27336
27337 x_slh_rulv_rec rulv_rec_type;
27338
27339 l_adpv_rec adpv_rec_type;
27340 x_adpv_rec adpv_rec_type;
27341 l_tal_id NUMBER;
27342
27343 l_msg_tbl Okl_Qa_Check_Pub.msg_tbl_type;
27344
27345 l_intf_h_rec intf_h_rec_type;
27346 okl_header_rec intf_h_rec_type; --cklee
27347
27348 l_header_template template_h_rec_type; -- Header template record
27349
27350 l_service_line_id OKC_K_LINES_V.ID%TYPE;
27351 l_fee_line_id OKC_K_LINES_V.ID%TYPE;
27352 l_usage_line_id OKC_K_LINES_V.ID%TYPE;
27353
27354 x_update_status VARCHAR2(1);
27355 header_validation_failed EXCEPTION;
27356 line_validation_failed EXCEPTION;
27357 load_failed EXCEPTION;
27358 CURSOR le_entity(p_org_id NUMBER ,
27359 p_legal_entity NUMBER) IS
27360 select 1 from
27361 xle_le_ou_ledger_v
27362 where OPERATING_UNIT_ID=p_org_id
27363 and LEGAL_ENTITY_ID=p_legal_entity; -- cusrsor to get LE for an OU
27364
27365
27366 CURSOR proc_cob_csr (p_batch_number VARCHAR2,
27367 p_start_date_from DATE,
27368 p_start_date_to DATE,
27369 p_contract_number VARCHAR2,
27370 p_customer_number VARCHAR2 ) IS
27371
27372 SELECT BATCH_NUMBER
27373 ,TEMPLATE_NUMBER
27374 ,STATUS
27375 ,CREATED_BY
27376 ,DATE_CREATED
27377 ,DATE_CREATED_IN_OKL
27378 ,APPLICATION_CODE
27379 ,CONTRACT_CATEGORY
27380 ,CONTRACT_NUMBER_OLD
27381 ,CONTRACT_SOURCE
27382 ,CONTRACT_NUMBER
27383 ,CUSTOMER_NUMBER
27384 ,CUSTOMER_ID
27385 ,CUSTOMER_ACCOUNT_NUMBER
27386 ,CUSTOMER_ACCOUNT_ID
27387 ,START_DATE
27388 ,IMPORT_REQUEST_STAGE
27389 ,CURRENCY_CODE
27390 ,CUSTOMER_PO_NUMBER
27391 ,DATE_SIGNED
27392 ,DATE_APPROVED
27393 ,ACCEPTANCE_METHOD_CODE
27394 ,CONSUMER_CREDIT_ACT_DEAL_FLAG
27395 ,TERM
27396 ,CONVERTED_ACCOUNT
27397 ,ACCEPTED_DATE
27398 ,DEAL_TYPE_CODE
27399 ,EXPECTED_DELIVERY_DATE
27400 ,CONTRACT_DESCRIPTION
27401 ,SALESPERSON_NAME
27402 ,SALESPERSON_ID
27403 ,PRIVATE_LABEL_NUMBER
27404 ,PRIVATE_LABEL_ID
27405 ,PRIVATE_LABEL_URL
27406 ,PROGRAM_AGREEMENT_NUMBER
27407 ,PROGRAM_AGREEMENT_ID
27408 ,PROGRAM_VENDOR_NAME
27409 ,PROGRAM_VENDOR_ID
27410 ,MASTER_LEASE_AGREEMENT_NUMBER
27411 ,MASTER_LEASE_AGREEMENT_ID
27412 ,PRODUCT_NAME
27413 ,PRODUCT_ID
27414 ,CALCULATE_RESIDUAL_INSURANCE
27415 ,REBOOK_LIMIT_DATE
27416 ,IMPORT_REQUEST_ID
27417 ,END_OF_TERM_OPTION
27418 ,END_OF_TERM_AMOUNT
27419 ,MID_TERM_OPTION
27420 ,MID_TERM_AMOUNT
27421 ,SECURITY_DEPOSIT_HOLD_FLAG
27422 ,SECURITY_DEPOSIT_NET_FLAG
27423 ,SECURITY_DEPOSIT_DATE
27424 ,RENEWAL_NOTICE_DAYS
27425 ,RENEWAL_OPTION
27426 ,RENEWAL_AMOUNT
27427 ,LATE_INTEREST_HELD_UNTIL_DATE
27428 ,LATE_INTEREST_EXEMPT_FLAG
27429 ,LATE_INTEREST_PRODUCT_CODE
27430 ,LATE_CHARGE_HELD_UNTIL_DATE
27431 ,LATE_CHARGE_PRODUCT_CODE
27432 ,LATE_CHARGE_EXEMPT_FLAG
27433 ,VARIABLE_RATE
27434 ,CONVERT_TYPE
27435 ,CONVERSION_METHOD
27436 ,DATE_OF_CONVERSION
27437 ,CONVERT_BY_DATE
27438 ,VARIABLE_METHOD
27439 ,INDEX_NAME
27440 ,BASE_RATE
27441 ,ADDER
27442 ,MINIMUM_RATE
27443 ,MAXIMUM_RATE
27444 ,TOLERANCE
27445 ,ADJUSTMENT_FREQUENCY
27446 ,DAYS_IN_YEAR
27447 ,DAYS_IN_MONTH
27448 ,INTEREST_METHOD
27449 ,INTEREST_START_DATE
27450 ,METHOD_OF_CALCULATION
27451 ,FORMULA_NAME
27452 ,CAPITALIZE_FLAG
27453 ,NON_NOTIFICATION_FLAG
27454 ,TAX_WITHHOLDING_FLAG
27455 ,TAX_CALC_FORMULA_NAME
27456 ,TAX_OWNER
27457 ,FACTORING_DATE
27458 ,FACTORING_PERCENTAGE
27459 ,FACTORING_DISCOUNT_RATE
27460 ,EVERGREEN_ELIGIBLE_FLAG
27461 ,BILL_TO_ADDRESS_ID
27462 ,BILL_TO_ADDRESS
27463 ,BANK_ACCOUNT_ID
27464 ,BANK_ACCOUNT_NUMBER
27465 ,REASON_FOR_INVOICE_REVIEW
27466 ,INVOICE_REVIEW_UNTIL_DATE
27467 ,INVOICE_FORMAT_ID
27468 ,INVOICE_FORMAT_CODE
27469 ,PRINT_LEAD_DAYS --hariven bug 5359935
27470 ,REVIEW_INVOICE_FLAG
27471 ,PAYMENT_METHOD_ID
27472 ,PAYMENT_METHOD
27473 ,AUTHORING_ORG_ID
27474 ,INVENTORY_ORGANIZATION_ID
27475 ,POLICY_NUMBER
27476 ,POLICY_EFFECTIVE_FROM
27477 ,POLICY_EFFECTIVE_TO
27478 ,COVERED_AMOUNT
27479 ,DEDUCTIBLE_AMOUNT
27480 ,ENDORSEMENT
27481 ,NAME_OF_INSURED
27482 ,LESSOR_INSURED_FLAG
27483 ,LESSOR_PAYEE_FLAG
27484 ,INSURANCE_COMPANY_NAME
27485 ,INSURANCE_COMPANY_ID
27486 ,INSURANCE_COMPANY_SITE_NAME
27487 ,INSURANCE_COMPANY_SITE_ID
27488 ,AGENT_NAME
27489 ,AGENT_ID
27490 ,AGENT_ADDRESS_SITE_NAME
27491 ,AGENT_ADDRESS_SITE_ID
27492 ,PROOF_DUE_DATE
27493 ,PROOF_PROVIDED_DATE
27494 ,PREFUNDING_ELIGIBLE_FLAG
27495 ,PRIVATE_ACTIVITY_BOND_FLAG
27496 ,RVI_AUTO_CALCULATE_FLAG
27497 ,RVI_GUARANTEED_AMOUNT
27498 ,RVI_PRESENT_GUARANTEED_AMOUNT
27499 ,RVI_PREMIUM_AMOUNT
27500 ,RVI_RATE
27501 ,FLOOR_PRICE_FORMULA
27502 ,REMKT_SALE_PRICE_FORMULA
27503 ,REPURCHASE_QUOTE_OPTION
27504 ,REPURCHASE_QUOTE_FORMULA
27505 ,SALE_PRICE_OPTION
27506 ,SALE_PRICE_AMOUNT
27507 ,SALE_PRICE_FORMULA
27508 ,SALE_PRICE_PRORATE
27509 ,DISCOUNT_RATE_OPTION
27510 ,DISCOUNT_RATE_AMOUNT
27511 ,DISCOUNT_RATE_FORMULA
27512 ,DISCOUNT_RATE_PRORATE
27513 ,QUOTE_FEE_OPTION
27514 ,QUOTE_FEE_AMOUNT
27515 ,QUOTE_FEE_FORMULA
27516 ,QUOTE_FEE_PRORATE
27517 ,ERT_PURCHASE_OPT
27518 ,ERT_PURCHASE_OPT_TYPE
27519 ,ERT_PURCHASE_OPT_AMOUNT
27520 ,ERT_PURCHASE_OPT_FORMULA
27521 ,ERT_PURCHASE_OPT_PRORATE
27522 ,ERT_PURCHASE_OPT_MAX_OPT
27523 ,ERT_PURCHASE_OPT_MAX_AMT
27524 ,ERT_PURCHASE_OPT_MAX_FORMULA
27525 ,ERT_PURCHASE_OPT_MIN_OPT
27526 ,ERT_PURCHASE_OPT_MIN_AMT
27527 ,ERT_PURCHASE_OPT_MIN_FORMULA
27528 ,EOT_PURCHASE_OPT
27529 ,EOT_PURCHASE_OPT_TYPE
27530 ,EOT_PURCHASE_OPT_AMOUNT
27531 ,EOT_PURCHASE_OPT_FORMULA
27532 ,EOT_PURCHASE_OPT_PRORATE
27533 ,EOT_PURCHASE_OPT_MAX_OPT
27534 ,EOT_PURCHASE_OPT_MAX_AMT
27535 ,EOT_PURCHASE_OPT_MAX_FORMULA
27536 ,EOT_PURCHASE_OPT_MIN_OPT
27537 ,EOT_PURCHASE_OPT_MIN_AMT
27538 ,EOT_PURCHASE_OPT_MIN_FORMULA
27539 ,TQP_ERL_TERMINATION_ALWD_FLAG
27540 ,TQP_PRT_TERMINATION_ALWD_FLAG
27541 ,QUOTE_EFFECTIVE_DAYS
27542 ,QUOTE_EFF_MAX_DAYS
27543 ,EOT_TOLERANCE_DAYS
27544 ,PRT_TERMINATION_APPROVAL_REQ
27545 ,PRT_TERMINATION_ALLOWED_FLAG
27546 ,GAIN_LOSS_APPROVAL_REQ
27547 ,GAIN_LOSS_NET_QUOTE_OPT
27548 ,GAIN_LOSS_NET_QUOTE_AMT
27549 ,GAIN_LOSS_NET_QUOTE_FORMULA
27550 ,GAIN_LOSS_TOLERANCE_ALLOWED
27551 ,QUOTE_RCPT_CONTRACT_ROLE
27552 ,QUOTE_APPROVER_CONTRACT_ROLE
27553 ,QUOTE_CRTSY_COPY_CONTRACT_ROLE
27554 ,ERT_QUOTE_CALC_TERM_OPTION
27555 ,ERT_QUOTE_CALC_TERM_FORMULA
27556 ,ERT_CONTRACT_OBLIG_OPT
27557 ,ERT_CONTRACT_OBLIG_AMOUNT
27558 ,ERT_CONTRACT_OBLIG_FORMULA
27559 ,ERT_CONTRACT_OBLIG_PRORATE
27560 ,ERT_DISC_RATE_OPT
27561 ,ERT_DISC_RATE_AMOUNT
27562 ,ERT_DISC_RATE_FORMULA
27563 ,ERT_DISC_RATE_PRORATE
27564 ,ERT_QUOTE_FEE_OPT
27565 ,ERT_QUOTE_FEE_AMOUNT
27566 ,ERT_QUOTE_FEE_FORMULA
27567 ,ERT_QUOTE_FEE_PRORATE
27568 ,ERT_RETURN_FEE_OPTION
27569 ,ERT_RETURN_FEE_AMOUNT
27570 ,ERT_RETURN_FEE_FORMULA
27571 ,ERT_RETURN_FEE_PRORATE
27572 ,ERT_ROLL_INCTV_OPTION
27573 ,ERT_ROLL_INCTV_AMOUNT
27574 ,ERT_ROLL_INCTV_FORMULA
27575 ,ERT_ROLL_INCTV_PRORATE
27576 ,ERT_SECU_DEP_DISPO_OPTION
27577 ,ERT_SECU_DEP_DISPO_AMOUNT
27578 ,ERT_SECU_DEP_DISPO_FORMULA
27579 ,ERT_SECU_DEP_DISPO_PRORATE
27580 ,ERT_TERM_PENALTY_OPTION
27581 ,ERT_TERM_PENALTY_AMOUNT
27582 ,ERT_TERM_PENALTY_FORMULA
27583 ,ERT_TERM_PENALTY_PRORATE
27584 ,ERT_TERM_PENALTY_CAP_OPTION
27585 ,ERT_TERM_PENALTY_CAP_AMOUNT
27586 ,ERT_TERM_PENALTY_CAP_FORMULA
27587 ,ERT_EST_PROP_TAX_OPTION
27588 ,ERT_EST_PROP_TAX_AMOUNT
27589 ,ERT_EST_PROP_TAX_FORMULA
27590 ,ERT_EST_PROP_TAX_PRORATE
27591 ,ERT_CONTR_FEES_OPTION
27592 ,ERT_OUTSTND_BAL_OPTION
27593 ,ERT_SERV_MANT_OPTION
27594 ,EOT_QUOTE_CALC_TERM_OPTION
27595 ,EOT_QUOTE_CALC_TERM_FORMULA
27596 ,EOT_CONTRACT_OBLIG_OPT
27597 ,EOT_CONTRACT_OBLIG_AMOUNT
27598 ,EOT_CONTRACT_OBLIG_FORMULA
27599 ,EOT_CONTRACT_OBLIG_PRORATE
27600 ,EOT_DISC_RATE_OPT
27601 ,EOT_DISC_RATE_AMOUNT
27602 ,EOT_DISC_RATE_FORMULA
27603 ,EOT_DISC_RATE_PRORATE
27604 ,EOT_QUOTE_FEE_OPT
27605 ,EOT_QUOTE_FEE_AMOUNT
27606 ,EOT_QUOTE_FEE_FORMULA
27607 ,EOT_QUOTE_FEE_PRORATE
27608 ,EOT_RETURN_FEE_OPTION
27609 ,EOT_RETURN_FEE_AMOUNT
27610 ,EOT_RETURN_FEE_FORMULA
27611 ,EOT_RETURN_FEE_PRORATE
27612 ,EOT_ROLL_INCTV_OPTION
27613 ,EOT_ROLL_INCTV_AMOUNT
27614 ,EOT_ROLL_INCTV_FORMULA
27615 ,EOT_ROLL_INCTV_PRORATE
27616 ,EOT_SECU_DEP_DISPO_OPTION
27617 ,EOT_SECU_DEP_DISPO_AMOUNT
27618 ,EOT_SECU_DEP_DISPO_FORMULA
27619 ,EOT_SECU_DEP_DISPO_PRORATE
27620 ,EOT_TERM_PENALTY_OPTION
27621 ,EOT_TERM_PENALTY_AMOUNT
27622 ,EOT_TERM_PENALTY_FORMULA
27623 ,EOT_TERM_PENALTY_PRORATE
27624 ,EOT_TERM_PENALTY_CAP_OPTION
27625 ,EOT_TERM_PENALTY_CAP_AMOUNT
27626 ,EOT_TERM_PENALTY_CAP_FORMULA
27627 ,EOT_EST_PROP_TAX_OPTION
27628 ,EOT_EST_PROP_TAX_AMOUNT
27629 ,EOT_EST_PROP_TAX_FORMULA
27630 ,EOT_EST_PROP_TAX_PRORATE
27631 ,EOT_CONTR_FEES_OPTION
27632 ,EOT_OUTSTND_BAL_OPTION
27633 ,EOT_SERV_MANT_OPTION
27634 ,EVERGREEN_PASSTHRU_FEES
27635 ,EVERGREEN_PASSTHRU_PERCENT
27636 ,LIEN_TYPE
27637 ,FILING_NUMBER
27638 ,FILING_DATE
27639 ,FILING_STATUS
27640 ,LIEN_HOLDER_NAME
27641 ,LIEN_HOLDER_ID
27642 ,JURISDICTION
27643 ,SUB_JURISDICTION
27644 ,LIEN_EXPIRATION_DATE
27645 ,LIEN_CONTINUATION_NUMBER
27646 ,LIEN_CONTINUATION_DATE
27647 ,TITLE_TYPE
27648 ,TITLE_ISSUER_NAME
27649 ,TITLE_ISSUER_ID
27650 ,TITLE_DATE
27651 ,TITLE_NUMBER
27652 ,REGISTRATION_NUMBER
27653 ,LOCATION
27654 ,TITLE_CUSTODIAN_NAME
27655 ,TITLE_CUSTODIAN_ID
27656 ,PAYEE_SITE
27657 ,REGISTRATION_LOCATION
27658 ,REG_EXPIRATION_DATE
27659 ,CREDIT_LINE_ID
27660 ,CREDIT_LINE_NUMBER
27661 ,PRTFL_APPROVAL_REQ
27662 ,PRTFL_ASSGN_GROUP
27663 ,PRTFL_BUDGET_AMT_OPT
27664 ,PRTFL_BUDGET_FIXED_AMT
27665 ,PRTFL_BUDGET_AMT_FORMULA
27666 ,PRTFL_DAYS_FROM_CON_EXPR
27667 ,PRTFL_STRATEGY
27668 ,PROP_TAX_APPLICABLE
27669 ,PROP_TAX_LEASE_REP
27670 ,MEX_TAX_SUB_BASIC_WTHLD
27671 ,MEX_TAX_CALC_FORMULA
27672 ,AUS_TAX_STAMP_DUTY
27673 ,CURRENCY_CONVERSION_TYPE
27674 ,CURRENCY_CONVERSION_RATE
27675 ,CURRENCY_CONVERSION_DATE
27676 ,ASSIGNABLE_YN
27677 ,LESSEE_VENDOR_ID
27678 ,LESSEE_VENDOR_NAME
27679 ,LESSEE_VENDOR_SITE_ID
27680 ,LESSEE_VENDOR_SITE_CODE
27681 ,INSURANCE_COMPANY_NUMBER
27682 ,INSURANCE_COMPANY_SITE_NUMBER
27683 ,AGENT_NUMBER
27684 ,AGENT_ADDRESS_SITE_NUMBER
27685 ,CASH_APPL_RULE_NAME
27686 ,PROP_TAX_BILL_METHOD
27687 ,GAIN_LOSS_TOLRNC_ALLWD_AMT
27688 ,GAIN_LOSS_TOLRNC_ALLWD_FRML
27689 ,GAIN_LOSS_TOLRNC_BASIS
27690 ,GAIN_LOSS_APPRV_PROC_FRML
27691 ,ERT_ABSORBED_FEE_FRML
27692 ,ERT_EXPENSE_FEE_FRML
27693 ,ERT_FINANCED_FEE_FRML
27694 ,ERT_GENERAL_FEE_FRML
27695 ,ERT_INCOME_FEE_FRML
27696 ,ERT_MISC_FEE_FRML
27697 ,ERT_PASSTHRU_FEE_FRML
27698 ,ERT_ROLLOVER_FEE_FRML
27699 ,EOT_ABSORBED_FEE_FRML
27700 ,EOT_EXPENSE_FEE_FRML
27701 ,EOT_FINANCED_FEE_FRML
27702 ,EOT_GENERAL_FEE_FRML
27703 ,EOT_INCOME_FEE_FRML
27704 ,EOT_MISC_FEE_FRML
27705 ,EOT_PASSTHRU_FEE_FRML
27706 ,EOT_ROLLOVER_FEE_FRML
27707 ,DELETE_BEFORE_IMPORT_YN
27708 ,ST_UPDATE_LINES_FROM_CONTRACT
27709 ,ST_INTEREST_DISCLOSED
27710 ,ST_TRANSFER_OF_TITLE
27711 ,ST_SALE_AND_LEASE_BACK
27712 ,ST_PURCHASE_OF_LEASE
27713 ,ST_EQUIPMENT_USAGE
27714 ,ST_EQUIPMENT_AGE
27715 ,ST_ASSET_UPFRONT_TAX
27716 ,ST_BILL_STREAM_TYPE_CODE
27717 ,ST_BILL_STREAM_PURPOSE_CODE
27718 ,ST_FIN_STREAM_TYPE_CODE
27719 ,ST_FIN_STREAM_PURPOSE_CODE
27720 ,ST_CAP_STREAM_TYPE_CODE
27721 ,ST_CAP_STREAM_PURPOSE_CODE
27722 ,ST_TAX_SCHEDULE_APPLIES_FLAG
27723 FROM okl_header_interface
27724 WHERE (
27725 batch_number = p_batch_number
27726 OR
27727 contract_number_old = p_contract_number
27728 OR
27729 (
27730 customer_number = p_customer_number
27731 AND
27732 start_date between p_start_date_from AND p_start_date_to
27733 )
27734 )
27735 AND nvl(scheduled_worker_id,'NONE') = g_instance_number
27736 AND status = 'INTERFACED'
27737 AND import_request_stage <> 'NEW' ; --Process INTERFACED contract upto import_request_stage
27738
27739 --
27740 -- Cursor to fetch Header Interface Records
27741 --
27742
27743 CURSOR okl_header_csr (p_batch_number VARCHAR2,
27744 p_start_date_from DATE,
27745 p_start_date_to DATE,
27746 p_contract_number VARCHAR2,
27747 p_customer_number VARCHAR2 ) IS
27748
27749 SELECT
27750 BATCH_NUMBER
27751 ,TEMPLATE_NUMBER
27752 ,STATUS
27753 ,CREATED_BY
27754 ,DATE_CREATED
27755 ,DATE_CREATED_IN_OKL
27756 ,APPLICATION_CODE
27757 ,CONTRACT_CATEGORY
27758 ,CONTRACT_NUMBER_OLD
27759 ,CONTRACT_SOURCE
27760 ,CONTRACT_NUMBER
27761 ,CUSTOMER_NUMBER
27762 ,CUSTOMER_ID
27763 ,CUSTOMER_ACCOUNT_NUMBER
27764 ,CUSTOMER_ACCOUNT_ID
27765 ,START_DATE
27766 ,IMPORT_REQUEST_STAGE
27767 ,CURRENCY_CODE
27768 ,CUSTOMER_PO_NUMBER
27769 ,DATE_SIGNED
27770 ,DATE_APPROVED
27771 ,ACCEPTANCE_METHOD_CODE
27772 ,CONSUMER_CREDIT_ACT_DEAL_FLAG
27773 ,TERM
27774 ,CONVERTED_ACCOUNT
27775 ,ACCEPTED_DATE
27776 ,DEAL_TYPE_CODE
27777 ,EXPECTED_DELIVERY_DATE
27778 ,CONTRACT_DESCRIPTION
27779 ,SALESPERSON_NAME
27780 ,SALESPERSON_ID
27781 ,PRIVATE_LABEL_NUMBER
27782 ,PRIVATE_LABEL_ID
27783 ,PRIVATE_LABEL_URL
27784 ,PROGRAM_AGREEMENT_NUMBER
27785 ,PROGRAM_AGREEMENT_ID
27786 ,PROGRAM_VENDOR_NAME
27787 ,PROGRAM_VENDOR_ID
27788 ,MASTER_LEASE_AGREEMENT_NUMBER
27789 ,MASTER_LEASE_AGREEMENT_ID
27790 ,PRODUCT_NAME
27791 ,PRODUCT_ID
27792 ,CALCULATE_RESIDUAL_INSURANCE
27793 ,REBOOK_LIMIT_DATE
27794 ,IMPORT_REQUEST_ID
27795 ,END_OF_TERM_OPTION
27796 ,END_OF_TERM_AMOUNT
27797 ,MID_TERM_OPTION
27798 ,MID_TERM_AMOUNT
27799 ,SECURITY_DEPOSIT_HOLD_FLAG
27800 ,SECURITY_DEPOSIT_NET_FLAG
27801 ,SECURITY_DEPOSIT_DATE
27802 ,RENEWAL_NOTICE_DAYS
27803 ,RENEWAL_OPTION
27804 ,RENEWAL_AMOUNT
27805 ,LATE_INTEREST_HELD_UNTIL_DATE
27806 ,LATE_INTEREST_EXEMPT_FLAG
27807 ,LATE_INTEREST_PRODUCT_CODE
27808 ,LATE_CHARGE_HELD_UNTIL_DATE
27809 ,LATE_CHARGE_PRODUCT_CODE
27810 ,LATE_CHARGE_EXEMPT_FLAG
27811 ,VARIABLE_RATE
27812 ,CONVERT_TYPE
27813 ,CONVERSION_METHOD
27814 ,DATE_OF_CONVERSION
27815 ,CONVERT_BY_DATE
27816 ,VARIABLE_METHOD
27817 ,INDEX_NAME
27818 ,BASE_RATE
27819 ,ADDER
27820 ,MINIMUM_RATE
27821 ,MAXIMUM_RATE
27822 ,TOLERANCE
27823 ,ADJUSTMENT_FREQUENCY
27824 ,DAYS_IN_YEAR
27825 ,DAYS_IN_MONTH
27826 ,INTEREST_METHOD
27827 ,INTEREST_START_DATE
27828 ,METHOD_OF_CALCULATION
27829 ,FORMULA_NAME
27830 ,CAPITALIZE_FLAG
27831 ,NON_NOTIFICATION_FLAG
27832 ,TAX_WITHHOLDING_FLAG
27833 ,TAX_CALC_FORMULA_NAME
27834 ,TAX_OWNER
27835 ,FACTORING_DATE
27836 ,FACTORING_PERCENTAGE
27837 ,FACTORING_DISCOUNT_RATE
27838 ,EVERGREEN_ELIGIBLE_FLAG
27839 ,BILL_TO_ADDRESS_ID
27840 ,BILL_TO_ADDRESS
27841 ,BANK_ACCOUNT_ID
27842 ,BANK_ACCOUNT_NUMBER
27843 ,REASON_FOR_INVOICE_REVIEW
27844 ,INVOICE_REVIEW_UNTIL_DATE
27845 ,INVOICE_FORMAT_ID
27846 ,INVOICE_FORMAT_CODE
27847 ,PRINT_LEAD_DAYS --hariven bug 5359935
27848 ,REVIEW_INVOICE_FLAG
27849 ,PAYMENT_METHOD_ID
27850 ,PAYMENT_METHOD
27851 ,AUTHORING_ORG_ID
27852 ,INVENTORY_ORGANIZATION_ID
27853 ,POLICY_NUMBER
27854 ,POLICY_EFFECTIVE_FROM
27855 ,POLICY_EFFECTIVE_TO
27856 ,COVERED_AMOUNT
27857 ,DEDUCTIBLE_AMOUNT
27858 ,ENDORSEMENT
27859 ,NAME_OF_INSURED
27860 ,LESSOR_INSURED_FLAG
27861 ,LESSOR_PAYEE_FLAG
27862 ,INSURANCE_COMPANY_NAME
27863 ,INSURANCE_COMPANY_ID
27864 ,INSURANCE_COMPANY_SITE_NAME
27865 ,INSURANCE_COMPANY_SITE_ID
27866 ,AGENT_NAME
27867 ,AGENT_ID
27868 ,AGENT_ADDRESS_SITE_NAME
27869 ,AGENT_ADDRESS_SITE_ID
27870 ,PROOF_DUE_DATE
27871 ,PROOF_PROVIDED_DATE
27872 ,PREFUNDING_ELIGIBLE_FLAG
27873 ,PRIVATE_ACTIVITY_BOND_FLAG
27874 ,RVI_AUTO_CALCULATE_FLAG
27875 ,RVI_GUARANTEED_AMOUNT
27876 ,RVI_PRESENT_GUARANTEED_AMOUNT
27877 ,RVI_PREMIUM_AMOUNT
27878 ,RVI_RATE
27879 ,FLOOR_PRICE_FORMULA
27880 ,REMKT_SALE_PRICE_FORMULA
27881 ,REPURCHASE_QUOTE_OPTION
27882 ,REPURCHASE_QUOTE_FORMULA
27883 ,SALE_PRICE_OPTION
27884 ,SALE_PRICE_AMOUNT
27885 ,SALE_PRICE_FORMULA
27886 ,SALE_PRICE_PRORATE
27887 ,DISCOUNT_RATE_OPTION
27888 ,DISCOUNT_RATE_AMOUNT
27889 ,DISCOUNT_RATE_FORMULA
27890 ,DISCOUNT_RATE_PRORATE
27891 ,QUOTE_FEE_OPTION
27892 ,QUOTE_FEE_AMOUNT
27893 ,QUOTE_FEE_FORMULA
27894 ,QUOTE_FEE_PRORATE
27895 ,ERT_PURCHASE_OPT
27896 ,ERT_PURCHASE_OPT_TYPE
27897 ,ERT_PURCHASE_OPT_AMOUNT
27898 ,ERT_PURCHASE_OPT_FORMULA
27899 ,ERT_PURCHASE_OPT_PRORATE
27900 ,ERT_PURCHASE_OPT_MAX_OPT
27901 ,ERT_PURCHASE_OPT_MAX_AMT
27902 ,ERT_PURCHASE_OPT_MAX_FORMULA
27903 ,ERT_PURCHASE_OPT_MIN_OPT
27904 ,ERT_PURCHASE_OPT_MIN_AMT
27905 ,ERT_PURCHASE_OPT_MIN_FORMULA
27906 ,EOT_PURCHASE_OPT
27907 ,EOT_PURCHASE_OPT_TYPE
27908 ,EOT_PURCHASE_OPT_AMOUNT
27909 ,EOT_PURCHASE_OPT_FORMULA
27910 ,EOT_PURCHASE_OPT_PRORATE
27911 ,EOT_PURCHASE_OPT_MAX_OPT
27912 ,EOT_PURCHASE_OPT_MAX_AMT
27913 ,EOT_PURCHASE_OPT_MAX_FORMULA
27914 ,EOT_PURCHASE_OPT_MIN_OPT
27915 ,EOT_PURCHASE_OPT_MIN_AMT
27916 ,EOT_PURCHASE_OPT_MIN_FORMULA
27917 ,TQP_ERL_TERMINATION_ALWD_FLAG
27918 ,TQP_PRT_TERMINATION_ALWD_FLAG
27919 ,QUOTE_EFFECTIVE_DAYS
27920 ,QUOTE_EFF_MAX_DAYS
27921 ,EOT_TOLERANCE_DAYS
27922 ,PRT_TERMINATION_APPROVAL_REQ
27923 ,PRT_TERMINATION_ALLOWED_FLAG
27924 ,GAIN_LOSS_APPROVAL_REQ
27925 ,GAIN_LOSS_NET_QUOTE_OPT
27926 ,GAIN_LOSS_NET_QUOTE_AMT
27927 ,GAIN_LOSS_NET_QUOTE_FORMULA
27928 ,GAIN_LOSS_TOLERANCE_ALLOWED
27929 ,QUOTE_RCPT_CONTRACT_ROLE
27930 ,QUOTE_APPROVER_CONTRACT_ROLE
27931 ,QUOTE_CRTSY_COPY_CONTRACT_ROLE
27932 ,ERT_QUOTE_CALC_TERM_OPTION
27933 ,ERT_QUOTE_CALC_TERM_FORMULA
27934 ,ERT_CONTRACT_OBLIG_OPT
27935 ,ERT_CONTRACT_OBLIG_AMOUNT
27936 ,ERT_CONTRACT_OBLIG_FORMULA
27937 ,ERT_CONTRACT_OBLIG_PRORATE
27938 ,ERT_DISC_RATE_OPT
27939 ,ERT_DISC_RATE_AMOUNT
27940 ,ERT_DISC_RATE_FORMULA
27941 ,ERT_DISC_RATE_PRORATE
27942 ,ERT_QUOTE_FEE_OPT
27943 ,ERT_QUOTE_FEE_AMOUNT
27944 ,ERT_QUOTE_FEE_FORMULA
27945 ,ERT_QUOTE_FEE_PRORATE
27946 ,ERT_RETURN_FEE_OPTION
27947 ,ERT_RETURN_FEE_AMOUNT
27948 ,ERT_RETURN_FEE_FORMULA
27949 ,ERT_RETURN_FEE_PRORATE
27950 ,ERT_ROLL_INCTV_OPTION
27951 ,ERT_ROLL_INCTV_AMOUNT
27952 ,ERT_ROLL_INCTV_FORMULA
27953 ,ERT_ROLL_INCTV_PRORATE
27954 ,ERT_SECU_DEP_DISPO_OPTION
27955 ,ERT_SECU_DEP_DISPO_AMOUNT
27956 ,ERT_SECU_DEP_DISPO_FORMULA
27957 ,ERT_SECU_DEP_DISPO_PRORATE
27958 ,ERT_TERM_PENALTY_OPTION
27959 ,ERT_TERM_PENALTY_AMOUNT
27960 ,ERT_TERM_PENALTY_FORMULA
27961 ,ERT_TERM_PENALTY_PRORATE
27962 ,ERT_TERM_PENALTY_CAP_OPTION
27963 ,ERT_TERM_PENALTY_CAP_AMOUNT
27964 ,ERT_TERM_PENALTY_CAP_FORMULA
27965 ,ERT_EST_PROP_TAX_OPTION
27966 ,ERT_EST_PROP_TAX_AMOUNT
27967 ,ERT_EST_PROP_TAX_FORMULA
27968 ,ERT_EST_PROP_TAX_PRORATE
27969 ,ERT_CONTR_FEES_OPTION
27970 ,ERT_OUTSTND_BAL_OPTION
27971 ,ERT_SERV_MANT_OPTION
27972 ,EOT_QUOTE_CALC_TERM_OPTION
27973 ,EOT_QUOTE_CALC_TERM_FORMULA
27974 ,EOT_CONTRACT_OBLIG_OPT
27975 ,EOT_CONTRACT_OBLIG_AMOUNT
27976 ,EOT_CONTRACT_OBLIG_FORMULA
27977 ,EOT_CONTRACT_OBLIG_PRORATE
27978 ,EOT_DISC_RATE_OPT
27979 ,EOT_DISC_RATE_AMOUNT
27980 ,EOT_DISC_RATE_FORMULA
27981 ,EOT_DISC_RATE_PRORATE
27982 ,EOT_QUOTE_FEE_OPT
27983 ,EOT_QUOTE_FEE_AMOUNT
27984 ,EOT_QUOTE_FEE_FORMULA
27985 ,EOT_QUOTE_FEE_PRORATE
27986 ,EOT_RETURN_FEE_OPTION
27987 ,EOT_RETURN_FEE_AMOUNT
27988 ,EOT_RETURN_FEE_FORMULA
27989 ,EOT_RETURN_FEE_PRORATE
27990 ,EOT_ROLL_INCTV_OPTION
27991 ,EOT_ROLL_INCTV_AMOUNT
27992 ,EOT_ROLL_INCTV_FORMULA
27993 ,EOT_ROLL_INCTV_PRORATE
27994 ,EOT_SECU_DEP_DISPO_OPTION
27995 ,EOT_SECU_DEP_DISPO_AMOUNT
27996 ,EOT_SECU_DEP_DISPO_FORMULA
27997 ,EOT_SECU_DEP_DISPO_PRORATE
27998 ,EOT_TERM_PENALTY_OPTION
27999 ,EOT_TERM_PENALTY_AMOUNT
28000 ,EOT_TERM_PENALTY_FORMULA
28001 ,EOT_TERM_PENALTY_PRORATE
28002 ,EOT_TERM_PENALTY_CAP_OPTION
28003 ,EOT_TERM_PENALTY_CAP_AMOUNT
28004 ,EOT_TERM_PENALTY_CAP_FORMULA
28005 ,EOT_EST_PROP_TAX_OPTION
28006 ,EOT_EST_PROP_TAX_AMOUNT
28007 ,EOT_EST_PROP_TAX_FORMULA
28008 ,EOT_EST_PROP_TAX_PRORATE
28009 ,EOT_CONTR_FEES_OPTION
28010 ,EOT_OUTSTND_BAL_OPTION
28011 ,EOT_SERV_MANT_OPTION
28012 ,EVERGREEN_PASSTHRU_FEES
28013 ,EVERGREEN_PASSTHRU_PERCENT
28014 ,LIEN_TYPE
28015 ,FILING_NUMBER
28016 ,FILING_DATE
28017 ,FILING_STATUS
28018 ,LIEN_HOLDER_NAME
28019 ,LIEN_HOLDER_ID
28020 ,JURISDICTION
28021 ,SUB_JURISDICTION
28022 ,LIEN_EXPIRATION_DATE
28023 ,LIEN_CONTINUATION_NUMBER
28024 ,LIEN_CONTINUATION_DATE
28025 ,TITLE_TYPE
28026 ,TITLE_ISSUER_NAME
28027 ,TITLE_ISSUER_ID
28028 ,TITLE_DATE
28029 ,TITLE_NUMBER
28030 ,REGISTRATION_NUMBER
28031 ,LOCATION
28032 ,TITLE_CUSTODIAN_NAME
28033 ,TITLE_CUSTODIAN_ID
28034 ,PAYEE_SITE
28035 ,REGISTRATION_LOCATION
28036 ,REG_EXPIRATION_DATE
28037 ,CREDIT_LINE_ID
28038 ,CREDIT_LINE_NUMBER
28039 ,PRTFL_APPROVAL_REQ
28040 ,PRTFL_ASSGN_GROUP
28041 ,PRTFL_BUDGET_AMT_OPT
28042 ,PRTFL_BUDGET_FIXED_AMT
28043 ,PRTFL_BUDGET_AMT_FORMULA
28044 ,PRTFL_DAYS_FROM_CON_EXPR
28045 ,PRTFL_STRATEGY
28046 ,PROP_TAX_APPLICABLE
28047 ,PROP_TAX_LEASE_REP
28048 ,MEX_TAX_SUB_BASIC_WTHLD
28049 ,MEX_TAX_CALC_FORMULA
28050 ,AUS_TAX_STAMP_DUTY
28051 ,CURRENCY_CONVERSION_TYPE
28052 ,CURRENCY_CONVERSION_RATE
28053 ,CURRENCY_CONVERSION_DATE
28054 ,ASSIGNABLE_YN
28055 ,LESSEE_VENDOR_ID
28056 ,LESSEE_VENDOR_NAME
28057 ,LESSEE_VENDOR_SITE_ID
28058 ,LESSEE_VENDOR_SITE_CODE
28059 ,INSURANCE_COMPANY_NUMBER
28060 ,INSURANCE_COMPANY_SITE_NUMBER
28061 ,AGENT_NUMBER
28062 ,AGENT_ADDRESS_SITE_NUMBER
28063 ,CASH_APPL_RULE_NAME
28064 ,PROP_TAX_BILL_METHOD
28065 ,GAIN_LOSS_TOLRNC_ALLWD_AMT
28066 ,GAIN_LOSS_TOLRNC_ALLWD_FRML
28067 ,GAIN_LOSS_TOLRNC_BASIS
28068 ,GAIN_LOSS_APPRV_PROC_FRML
28069 ,ERT_ABSORBED_FEE_FRML
28070 ,ERT_EXPENSE_FEE_FRML
28071 ,ERT_FINANCED_FEE_FRML
28072 ,ERT_GENERAL_FEE_FRML
28073 ,ERT_INCOME_FEE_FRML
28074 ,ERT_MISC_FEE_FRML
28075 ,ERT_PASSTHRU_FEE_FRML
28076 ,ERT_ROLLOVER_FEE_FRML
28077 ,EOT_ABSORBED_FEE_FRML
28078 ,EOT_EXPENSE_FEE_FRML
28079 ,EOT_FINANCED_FEE_FRML
28080 ,EOT_GENERAL_FEE_FRML
28081 ,EOT_INCOME_FEE_FRML
28082 ,EOT_MISC_FEE_FRML
28083 ,EOT_PASSTHRU_FEE_FRML
28084 ,EOT_ROLLOVER_FEE_FRML
28085 ,DELETE_BEFORE_IMPORT_YN -- akp_delete
28086 ,ST_UPDATE_LINES_FROM_CONTRACT
28087 ,ST_INTEREST_DISCLOSED
28088 ,ST_TRANSFER_OF_TITLE
28089 ,ST_SALE_AND_LEASE_BACK
28090 ,ST_PURCHASE_OF_LEASE
28091 ,ST_EQUIPMENT_USAGE
28092 ,ST_EQUIPMENT_AGE
28093 ,ST_ASSET_UPFRONT_TAX
28094 ,ST_BILL_STREAM_TYPE_CODE
28095 ,ST_BILL_STREAM_PURPOSE_CODE
28096 ,ST_FIN_STREAM_TYPE_CODE
28097 ,ST_FIN_STREAM_PURPOSE_CODE
28098 ,ST_CAP_STREAM_TYPE_CODE
28099 ,ST_CAP_STREAM_PURPOSE_CODE
28100 ,INT_RATE_EFFECTIVE_FROM_DATE
28101 ,INT_RATE_EFFECTIVE_TO_DATE
28102 ,INT_RATE_PRINC_BASIS_CODE
28103 ,INT_RATE_BASIS_CODE
28104 ,INT_RATE_DELAY_CODE
28105 ,INT_RATE_DELAY_FREQ
28106 ,INT_RATE_CMPND_FREQ_CODE
28107 ,INT_RATE_CATCHUP_BASIS_CODE
28108 ,INT_RATE_CATCHUP_START_DATE
28109 ,INT_RATE_CAT_STLMNT_CODE
28110 ,INT_RATE_CHANGE_START_DATE
28111 ,INT_RATE_CHANGE_FREQ_CODE
28112 ,INT_RATE_CHANGE_VALUE
28113 ,INT_RATE_CON_OPTION_CODE
28114 ,INT_RATE_NEXT_CON_DATE
28115 ,INT_RATE_CON_INDEX_NAME
28116 ,INT_RATE_CON_BASE_RATE
28117 ,INT_RATE_CON_START_DATE
28118 ,INT_RATE_CON_ADDER_RATE
28119 ,INT_RATE_CON_MAXIMUM_RATE
28120 ,INT_RATE_CON_MINIMUM_RATE
28121 ,INT_RATE_CON_PRC_BAS_CODE
28122 ,INT_RATE_CON_DAY_MTH_CODE
28123 ,INT_RATE_CON_DAY_YER_CODE
28124 ,INT_RATE_CON_INT_BAS_CODE
28125 ,INT_RATE_CON_RATE_DELAY_CODE
28126 ,INT_RATE_CON_RATE_DELAY_FREQ
28127 ,INT_RATE_CON_CMPND_FREQ_CODE
28128 ,INT_RATE_CON_FORMULA_NAME
28129 ,INT_RATE_CON_CAT_BAS_CODE
28130 ,INT_RATE_CON_CAT_START_DATE
28131 ,INT_RATE_CON_CAT_STLMNT_CODE
28132 ,INT_RATE_CON_CHG_START_DATE
28133 ,INT_RATE_CON_CHG_FREQ_CODE
28134 ,INT_RATE_CON_CHG_VALUE
28135 ,INT_RATE_CAT_FREQ_CODE
28136 ,INT_RATE_CON_CAT_FREQ_CODE
28137 ,RVI_STREAM_CODE
28138 ,RVI_STREAM_PURPOSE_CODE
28139 ,ATTRIBUTE_CATEGORY
28140 ,ATTRIBUTE1
28141 ,ATTRIBUTE2
28142 ,ATTRIBUTE3
28143 ,ATTRIBUTE4
28144 ,ATTRIBUTE5
28145 ,ATTRIBUTE6
28146 ,ATTRIBUTE7
28147 ,ATTRIBUTE8
28148 ,ATTRIBUTE9
28149 ,ATTRIBUTE10
28150 ,ATTRIBUTE11
28151 ,ATTRIBUTE12
28152 ,ATTRIBUTE13
28153 ,ATTRIBUTE14
28154 ,ATTRIBUTE15
28155 ,EOT_AUTO_PROC_PURCHASE_OPT
28156 ,PTH_EVG_PAYOUT_BASIS
28157 ,PTH_PAYOUT_BASIS_FORMULA
28158 ,PTH_EVG_STREAM_CODE
28159 ,PTH_EVG_STREAM_PURPOSE_CODE
28160 ,SEND_BILL_SALE
28161 ,MANUAL_QUOTES_ONLY
28162 ,FIRST_TERMINATION_DATE
28163 ,QUOTE_RCPT_ADDL_RCPT_ROLE
28164 ,QUOTE_RCPT_ALLOC_PTG
28165 ,QUOTE_APPRVR_ADV_NOTICE_ROLE
28166 ,QUOTE_APPROVER_DELAY_DAYS
28167 ,ERT_SERV_MANT_FRML
28168 ,EOT_SERV_MANT_FRML
28169 --Added by dpsingh for LE Uptake
28170 ,LEGAL_ENTITY_ID
28171 ,ST_TAX_SCHEDULE_APPLIES_FLAG
28172 FROM okl_header_interface
28173 WHERE (
28174 batch_number = p_batch_number
28175 OR
28176 contract_number_old = p_contract_number
28177 OR
28178 (
28179 customer_number = p_customer_number
28180 AND
28181 start_date between p_start_date_from AND p_start_date_to
28182 )
28183 )
28184 AND nvl(scheduled_worker_id, 'NONE') = g_instance_number
28185 AND status in ('NEW', 'ERROR') -- Bug 4350579
28186 AND application_code = 'OKL' -- Bug 4350579
28187 AND contract_category = 'LEASE'; -- Bug 4350579
28188 --AND status in ('ELIGIBLE'); --Process only ELIGIBLE (i.e. validated) record
28189
28190 --
28191 -- Cursor to fetch Line Interface Records for each contract header
28192 --
28193
28194 CURSOR okl_line_csr (p_contract_number_old VARCHAR2) IS
28195 SELECT *
28196 FROM okl_lines_interface
28197 WHERE contract_number_old = p_contract_number_old
28198 AND serial_number IS NULL -- indicates TOP line
28199 AND line_type <> 'ASSET_SUBSIDY' -- this line_type is being processed in process_subsidy()
28200 AND line_type <> 'ASSET_ADDON' -- this line_type is being processed in process_addon()
28201 ORDER BY
28202 line_type,
28203 line_number;
28204
28205 CURSOR okl_ib_csr (p_contract_number_old VARCHAR2,
28206 p_line_number NUMBER) IS
28207 SELECT serial_number
28208 FROM okl_lines_interface
28209 WHERE contract_number_old = p_contract_number_old
28210 AND serial_number IS NOT NULL
28211 AND line_number = p_line_number;
28212
28213 --
28214 -- Cursor to fetch Party roles interface Records for each contract header/Line
28215 --
28216 CURSOR okl_party_csr (p_contract_number_old VARCHAR2,
28217 p_line_number NUMBER) IS
28218 SELECT *
28219 FROM okl_party_roles_interface
28220 WHERE contract_number_old = p_contract_number_old
28221 AND ( (line_number = p_line_number
28222 AND
28223 p_line_number IS NOT NULL
28224 )
28225 OR
28226 (line_number IS NULL
28227 AND
28228 p_line_number IS NULL
28229 )
28230 );
28231
28232 --
28233 -- Cursor to fetch Terms interface Records for each contract header/Line
28234 --
28235 CURSOR okl_term_csr (p_contract_number_old VARCHAR2,
28236 p_line_number NUMBER) IS
28237 SELECT *
28238 FROM okl_terms_interface
28239 WHERE contract_number_old = p_contract_number_old
28240 AND ( line_number = p_line_number
28241 AND
28242 p_line_number IS NOT NULL
28243 );
28244
28245
28246 --
28247 -- Cursor to fetch Payment interface Records for each contract header/Line
28248 --
28249 CURSOR okl_payment_csr (p_contract_number_old VARCHAR2,
28250 p_line_number NUMBER) IS
28251 SELECT *
28252 FROM okl_payments_interface
28253 WHERE contract_number_old = p_contract_number_old
28254 AND payment_type_code <> 'RENT' -- Bug 5155206
28255 AND ( (line_number = p_line_number
28256 AND
28257 p_line_number IS NOT NULL
28258 )
28259 OR
28260 (line_number IS NULL
28261 AND
28262 p_line_number IS NULL
28263 )
28264 )
28265 ORDER BY
28266 contract_number_old,
28267 line_number,
28268 --asset_number,
28269 payment_type_code,
28270 payment_schedule_number,
28271 start_date;
28272
28273
28274 CURSOR temp_role_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
28275 --Fixed Bug # 5484903
28276 SELECT object1_id1
28277 FROM okc_k_party_roles_b
28278 WHERE dnz_chr_id = p_chr_id
28279 AND chr_id = dnz_chr_id
28280 AND jtot_object1_code = 'OKX_PARTY'
28281 AND rle_code = 'LESSEE';
28282
28283 l_customer_id okc_k_party_roles_v.object1_id1%TYPE;
28284 l_customer_number okl_header_interface.customer_number%TYPE;
28285
28286 CURSOR temp_sales_csr(p_chr_id OKC_K_HEADERS_V.ID%TYPE) IS
28287 SELECT sales.object1_id1
28288 FROM okc_contacts_v sales,
28289 okc_k_party_roles_v party
28290 WHERE sales.cpl_id = party.id
28291 AND party.rle_code = 'LESSOR'
28292 AND party.chr_id = p_chr_id
28293 AND party.dnz_chr_id = p_chr_id -- Bug# 3862650
28294 AND sales.role = 'Salesperson';
28295
28296 l_salesperson_id okc_contacts_v.object1_id1%TYPE;
28297 l_salesperson_name okl_header_interface.salesperson_name%TYPE;
28298
28299 CURSOR temp_aggr_csr (p_chr_id OKC_K_HEADERS_V.ID%TYPE,
28300 p_scs_code OKC_K_HEADERS_V.SCS_CODE%TYPE) IS
28301 SELECT head.id
28302 FROM okc_k_headers_v head,
28303 okc_governances gov
28304 WHERE head.id = gov.chr_id_referred
28305 AND head.scs_code = p_scs_code --'MASTER_LEASE'
28306 AND gov.dnz_chr_id = p_chr_id;
28307
28308 CURSOR txl_csr (p_khr_id NUMBER,
28309 p_kle_id NUMBER) IS
28310 SELECT id
28311 FROM okl_txl_assets_b
28312 WHERE dnz_khr_id = p_khr_id
28313 AND kle_id = p_kle_id;
28314
28315 CURSOR deal_csr (p_chr_id OKC_K_HEADERS_B.ID%TYPE) IS
28316 SELECT 'Y' loan_revolving
28317 FROM okl_k_headers
28318 WHERE deal_type = 'LOAN-REVOLVING'
28319 AND id = p_chr_id;
28320
28321 CURSOR c_asset (p_asset_number OKL_LA_RELEASE_ASSETS_UV.ASSET_NUMBER%TYPE) IS
28322 SELECT asset_id
28323 FROM FA_ADDITIONS_B
28324 WHERE asset_number = p_asset_number;
28325
28326 l_master_lease_aggr_id NUMBER;
28327 l_credit_line_id NUMBER;
28328 x_credit_line_id NUMBER;
28329
28330 x_sub_cle_id OKC_K_LINES_V.ID%TYPE;
28331 l_payment_level VARCHAR2(3);
28332 l_pmnt_line_id OKC_K_LINES_V.ID%TYPE;
28333
28334 l_loan_yn VARCHAR2(1) := 'N';
28335 l_prev_corp_book VARCHAR2(15) := 'NULL';
28336 l_prev_asset_number VARCHAR2(15) := 'NULL';
28337 l_prev_tax_book VARCHAR2(15) := 'NULL';
28338
28339 x_release_asset VARCHAR2(1) := 'N';
28340 x_asset_id OKL_LA_RELEASE_ASSETS_UV.ASSET_ID%TYPE;
28341 x_txd_id OKL_TXD_ASSETS_B.ID%TYPE;
28342
28343 x_party_pmnt_hdr_tbl_out pphv_tbl_type;
28344 l_counter NUMBER;
28345
28346 x_evg_cont_pmnt_hdr_out pphv_tbl_type;
28347
28348 -- Bug 5155206
28349 /*Cursor to fetch Payment interface Records for each contract header/Line of
28350 type RENT only */
28351 CURSOR okl_payment_rent_csr (p_contract_number_old VARCHAR2,
28352 p_line_number NUMBER) IS
28353 SELECT *
28354 FROM okl_payments_interface
28355 WHERE contract_number_old = p_contract_number_old
28356 AND payment_type_code = 'RENT'
28357 AND ( (line_number = p_line_number
28358 AND
28359 p_line_number IS NOT NULL
28360 )
28361 OR
28362 (line_number IS NULL
28363 AND
28364 p_line_number IS NULL
28365 )
28366 )
28367 ORDER BY
28368 contract_number_old,
28369 line_number,
28370 --asset_number,
28371 payment_schedule_number,
28372 start_date;
28373 -- Bug 5155206
28374 --Added by dpsingh for LE Uptake
28375 l_exists NUMBER(1):=0;
28376 item_not_found_error EXCEPTION;
28377
28378 -- hariven - Bug#5393374 - Added - Start
28379 -- Procedure to raise Business Event - "oracle.apps.okl.la.lease_contract.imported"
28380 PROCEDURE raise_business_event(
28381 p_chr_id IN NUMBER
28382 , x_return_status OUT NOCOPY VARCHAR2
28383 ) IS
28384 l_parameter_list wf_parameter_list_t;
28385 BEGIN
28386 x_return_status := OKL_API.G_RET_STS_SUCCESS;
28387 wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,p_chr_id,l_parameter_list);
28388
28389 OKL_WF_PVT.raise_event (p_api_version => 1.0,
28390 p_init_msg_list => p_init_msg_list,
28391 x_return_status => x_return_status,
28392 x_msg_count => x_msg_count,
28393 x_msg_data => x_msg_data,
28394 p_event_name => G_WF_EVT_KHR_IMPORTED,
28395 p_parameters => l_parameter_list);
28396
28397 EXCEPTION
28398 WHEN OTHERS THEN
28399 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
28400 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
28401 END raise_business_event;
28402 -- hariven - Bug#5393374 - Added - End
28403
28404 BEGIN -- Actual Procedure Starts Here
28405
28406 l_proc_name := 'LOAD_INPUT_RECORD';
28407 x_return_status := OKL_API.G_RET_STS_SUCCESS; -- Assume Success at begining
28408 --okl_api.init_msg_list(p_init_msg_list => OKL_API.G_TRUE);
28409
28410 l_progress := '000';
28411
28412 --okl_context.set_okc_org_context(204,204);
28413 -- 4374085
28414 get_qcl_id(
28415 x_return_status => x_return_status,
28416 p_qcl_name => 'OKL LA QA CHECK LIST',
28417 x_qcl_id => g_qcl_id
28418 );
28419
28420 debug_message('Load... Started');
28421
28422 FOR okl_header_rec IN okl_header_csr (p_batch_number,
28423 p_start_date_from,
28424 p_start_date_to,
28425 p_contract_number,
28426 p_customer_number )
28427 LOOP
28428
28429
28430 BEGIN --1
28431 -- Populates Header Record before calling APIs
28432 --fnd_file.put_line(fnd_file.output, 'Loading... '||okl_header_rec.contract_number_old);
28433 okl_api.init_msg_list(p_init_msg_list => OKL_API.G_TRUE);
28434
28435 debug_message(l_proc_name);
28436 debug_message('');
28437
28438 debug_message('Calling check_and_delete ' || to_char(sysdate,'HH24:MI:SS'));
28439 -- Check to delete contract from OLM before loading
28440 check_and_delete(
28441 x_return_status => x_return_status,
28442 x_msg_count => x_msg_count,
28443 x_msg_data => x_msg_data,
28444 p_contract_number => okl_header_rec.contract_number,
28445 p_delete_before_import_yn => okl_header_rec.delete_before_import_yn -- akp_delete
28446 );
28447 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28448 RAISE load_failed;
28449 END IF;
28450 debug_message('check_and_delete done ' || to_char(sysdate,'HH24:MI:SS'));
28451
28452 write_to_log('Loading... '||okl_header_rec.contract_number_old);
28453 debug_message('Loading... '||okl_header_rec.contract_number_old);
28454
28455 g_release_asset_flag := 'N'; -- global variable to check released asset
28456
28457 --
28458 -- Get Template Information if requested
28459 --
28460
28461 IF (okl_header_rec.template_number IS NOT NULL) THEN
28462 l_header_template := get_template(
28463 x_return_status => x_return_status,
28464 x_msg_count => x_msg_count,
28465 x_msg_data => x_msg_data,
28466 p_template_number => okl_header_rec.template_number
28467 );
28468
28469 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28470 RAISE load_failed;
28471 END IF;
28472
28473 debug_message('--->Template information retrieved');
28474 END IF;
28475
28476 -- comment out. cklee l_intf_h_rec := okl_header_rec;
28477
28478 -- debug_message('--->Template information retrieved');
28479 -- It checks template and interface record and prepare final header rec
28480 populate_header_rec(
28481 x_return_status => x_return_status,
28482 x_msg_count => x_msg_count,
28483 x_msg_data => x_msg_data,
28484 p_temp_header => l_header_template,
28485 p_intf_header => okl_header_rec,--comment out. cklee l_intf_h_rec,
28486 x_chrv_rec => l_chrv_rec,
28487 x_khrv_rec => l_khrv_rec
28488 );
28489
28490 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28491 RAISE load_failed;
28492 END IF;
28493
28494 -- Call API to create Contract Header
28495 debug_message('--->Header record populated');
28496
28497 l_progress := '010';
28498
28499 --Added by dpsingh for LE Uptake
28500 IF (okl_header_rec.legal_entity_id IS NOT NULL) AND
28501 (okl_header_rec.legal_entity_id <> Okl_Api.G_MISS_NUM) THEN
28502
28503 -- l_exists := OKL_LEGAL_ENTITY_UTIL.check_le_id_exists(okl_header_rec.legal_entity_id) ;
28504 OPEN le_entity(NVL(okl_header_rec.authoring_org_id,l_header_template.authoring_org_id),okl_header_rec.legal_entity_id);
28505 FETCH le_entity INTO l_exists;
28506
28507 CLOSE le_entity;
28508 IF (l_exists <>1 ) THEN
28509 debug_message('--->Legal entity is not valid for operating unit');
28510 Okc_Api.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'LEGAL_ENTITY_ID');
28511 RAISE item_not_found_error;
28512 END IF;
28513 END IF;
28514 l_khrv_rec.legal_entity_id := okl_header_rec.legal_entity_id ;
28515 -- Call Header API to create header
28516 okl_contract_pub.create_contract_header(
28517 p_api_version => 1.0,
28518 p_init_msg_list => OKL_API.G_FALSE,
28519 x_return_status => x_return_status,
28520 x_msg_count => x_msg_count,
28521 x_msg_data => x_msg_data,
28522 p_chrv_rec => l_chrv_rec,
28523 p_khrv_rec => l_khrv_rec,
28524 x_chrv_rec => x_chrv_rec,
28525 x_khrv_rec => x_khrv_rec
28526 );
28527 l_progress := '050';
28528
28529 debug_message('Contract header call ends...'||x_return_status);
28530 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28531
28532 x_return_status := OKL_API.G_RET_STS_ERROR;
28533
28534 RAISE load_failed;
28535 END IF;
28536
28537 debug_message('--->Contract Header Created');
28538 debug_message('--->Evergreen passthru at contract header - Start');
28539
28540 g_evg_cont_pmnt_hdr := NULL;
28541
28542 IF (okl_header_rec.pth_evg_payout_basis IS NOT NULL) THEN
28543
28544 create_party_payment_hdr(
28545 x_return_status => x_return_status,
28546 x_msg_count => x_msg_count,
28547 x_msg_data => x_msg_data,
28548 p_contract_id => x_chrv_rec.id,
28549 p_line_id => NULL,
28550 p_line_type => NULL,
28551 p_pth_start_date => NULL,
28552 p_pth_base_payout_basis => NULL,
28553 p_pth_base_stream_code => NULL,
28554 p_pth_base_stream_purpose_code => NULL,
28555 p_pth_evg_payout_basis => okl_header_rec.pth_evg_payout_basis,
28556 p_pth_payout_basis_formula => okl_header_rec.pth_payout_basis_formula,
28557 p_pth_evg_stream_code => okl_header_rec.pth_evg_stream_code,
28558 p_pth_evg_stream_purpose_code => okl_header_rec.pth_evg_stream_purpose_code,
28559 x_party_pmnt_hdr_tbl => x_evg_cont_pmnt_hdr_out
28560 );
28561 debug_message('------>Create evergreen at contract header ends'||x_return_status);
28562 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28563 x_return_status := OKL_API.G_RET_STS_ERROR;
28564 RAISE load_failed;
28565 END IF;
28566
28567 debug_message('x_evg_cont_pmnt_hdr_out.count: '||x_evg_cont_pmnt_hdr_out.COUNT);
28568
28569 IF (x_evg_cont_pmnt_hdr_out.COUNT > 0) THEN
28570 g_evg_cont_pmnt_hdr := x_evg_cont_pmnt_hdr_out(1); --only 1 evg record at contract header
28571 END IF;
28572 END IF;
28573 debug_message('--->Evergreen passthru at contract header - End');
28574
28575 l_master_lease_aggr_id := NULL;
28576
28577 IF (okl_header_rec.master_lease_agreement_id IS NOT NULL
28578 OR
28579 okl_header_rec.master_lease_agreement_number IS NOT NULL) THEN
28580
28581 x_return_status := get_agreement_id(
28582 p_scs_code => 'MASTER_LEASE',
28583 p_auth_org_id => l_chrv_rec.authoring_org_id,
28584 p_agreement_number => okl_header_rec.master_lease_agreement_number,
28585 p_agreement_id => okl_header_rec.master_lease_agreement_id,
28586 x_agreement_id => x_master_lease_id
28587 );
28588
28589 l_master_lease_aggr_id := x_master_lease_id;
28590
28591 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28592 okl_api.set_message(
28593 G_APP_NAME,
28594 G_INVALID_VALUE,
28595 'CONTRACT_NUM',
28596 okl_header_rec.contract_number_old,
28597 'COL_NAME',
28598 'MASTER_LEASE_AGREEMENT_ID, NUMBER: ',
28599 'COL_VALUE',
28600 okl_header_rec.master_lease_agreement_id||', '||okl_header_rec.master_lease_agreement_number
28601 );
28602 RAISE load_failed;
28603 END IF;
28604 ELSE
28605 IF (okl_header_rec.template_number IS NOT NULL) THEN
28606
28607 l_master_lease_aggr_id := NULL;
28608
28609 OPEN temp_aggr_csr (l_header_template.id,
28610 'MASTER_LEASE');
28611 FETCH temp_aggr_csr INTO l_master_lease_aggr_id;
28612 CLOSE temp_aggr_csr;
28613
28614 END IF;
28615
28616 END IF;
28617
28618 IF (l_master_lease_aggr_id IS NOT NULL) THEN
28619
28620 l_gvev_rec.dnz_chr_id := x_chrv_rec.id;
28621 l_gvev_rec.chr_id := x_chrv_rec.id;
28622 l_gvev_rec.chr_id_referred := l_master_lease_aggr_id;
28623 l_gvev_rec.cle_id := NULL;
28624 l_gvev_rec.copied_only_yn := 'Y';
28625
28626 okl_okc_migration_pvt.create_governance(
28627 p_api_version => 1.0,
28628 p_init_msg_list => OKL_API.G_FALSE,
28629 x_return_status => x_return_status,
28630 x_msg_count => x_msg_count,
28631 x_msg_data => x_msg_data,
28632 p_gvev_rec => l_gvev_rec,
28633 x_gvev_rec => x_gvev_rec
28634 );
28635 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28636 RAISE load_failed;
28637 END IF;
28638
28639 debug_message('--->Master Lease agreement created');
28640 END IF;
28641
28642 -- Process credit line, if any
28643 l_credit_line_id := NULL;
28644 IF (okl_header_rec.credit_line_id IS NOT NULL
28645 OR
28646 okl_header_rec.credit_line_number IS NOT NULL) THEN
28647
28648 x_return_status := get_agreement_id(
28649 p_scs_code => 'CREDITLINE_CONTRACT',
28650 p_auth_org_id => l_chrv_rec.authoring_org_id,
28651 p_agreement_number => okl_header_rec.credit_line_number,
28652 p_agreement_id => okl_header_rec.credit_line_id,
28653 x_agreement_id => x_credit_line_id
28654 );
28655
28656 l_credit_line_id := x_credit_line_id;
28657
28658 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28659 okl_api.set_message(
28660 G_APP_NAME,
28661 G_INVALID_VALUE,
28662 'CONTRACT_NUM',
28663 okl_header_rec.contract_number_old,
28664 'COL_NAME',
28665 'CREDIT LINE ID, NUMBER: ',
28666 'COL_VALUE',
28667 okl_header_rec.credit_line_id||', '||okl_header_rec.credit_line_number
28668 );
28669 RAISE load_failed;
28670 END IF;
28671 ELSE
28672 IF (okl_header_rec.template_number IS NOT NULL) THEN
28673 l_credit_line_id := NULL;
28674
28675 OPEN temp_aggr_csr (l_header_template.id,
28676 'CREDITLINE_CONTRACT');
28677 FETCH temp_aggr_csr INTO l_credit_line_id;
28678 CLOSE temp_aggr_csr;
28679
28680 END IF;
28681 END IF;
28682
28683 IF (l_credit_line_id IS NOT NULL) THEN
28684
28685 --
28686 -- Validated Credit Line contract against
28687 -- customer number and customer account number
28688 -- of the imported contract
28689 --
28690 validate_credit_line(
28691 x_return_status => x_return_status,
28692 x_msg_count => x_msg_count,
28693 x_msg_data => x_msg_data,
28694 p_contract_number => okl_header_rec.contract_number_old,
28695 p_template_id => l_header_template.id,
28696 p_credit_line_id => l_credit_line_id,
28697 p_customer_id => g_customer_id, -- 4414408
28698 p_customer_number => okl_header_rec.customer_number,
28699 p_customer_account_id => x_chrv_rec.cust_acct_id, -- 4414408
28700 p_customer_account_number => okl_header_rec.customer_account_number,
28701 p_start_date => x_chrv_rec.start_date, -- 4414408
28702 p_template_start_date => l_header_template.start_date
28703 );
28704 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28705 okl_api.set_message(
28706 G_APP_NAME,
28707 G_INVALID_VALUE,
28708 'CONTRACT_NUM',
28709 okl_header_rec.contract_number_old,
28710 'COL_NAME',
28711 'CREDIT LINE ID, NUMBER: ',
28712 'COL_VALUE',
28713 okl_header_rec.credit_line_id||', '||okl_header_rec.credit_line_number
28714 );
28715 RAISE load_failed;
28716 END IF;
28717
28718 l_gvev_rec := NULL;
28719 l_gvev_rec.dnz_chr_id := x_chrv_rec.id;
28720 l_gvev_rec.chr_id := x_chrv_rec.id;
28721 l_gvev_rec.chr_id_referred := l_credit_line_id;
28722 l_gvev_rec.cle_id := NULL;
28723 l_gvev_rec.copied_only_yn := 'Y';
28724
28725 okl_okc_migration_pvt.create_governance(
28726 p_api_version => 1.0,
28727 p_init_msg_list => OKL_API.G_FALSE,
28728 x_return_status => x_return_status,
28729 x_msg_count => x_msg_count,
28730 x_msg_data => x_msg_data,
28731 p_gvev_rec => l_gvev_rec,
28732 x_gvev_rec => x_gvev_rec
28733 );
28734 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28735 RAISE load_failed;
28736 END IF;
28737 debug_message('--->Credit line created');
28738 END IF;
28739 -- end of credit line
28740
28741 -- Call Party Role API to create Party Roles, LESSEE and LESSOR
28742
28743 l_customer_id := okl_header_rec.customer_id;
28744 l_customer_number := okl_header_rec.customer_number;
28745
28746 IF (okl_header_rec.template_number IS NOT NULL) THEN
28747 IF (l_customer_id IS NULL
28748 AND
28749 l_customer_number IS NULL) THEN
28750 --
28751 -- Get it from Template Contract
28752 --
28753 l_customer_id := NULL;
28754 OPEN temp_role_csr (l_header_template.id);
28755 FETCH temp_role_csr INTO l_customer_id;
28756 CLOSE temp_role_csr;
28757
28758 l_customer_number := NULL; -- ID is good enough
28759 END IF;
28760 END IF;
28761
28762 l_progress := '060';
28763 create_party_role( x_return_status => x_return_status,
28764 x_msg_count => x_msg_count,
28765 x_msg_data => x_msg_data,
28766 p_contract_header_id => x_khrv_rec.id,
28767 p_contract_number_old => x_chrv_rec.orig_system_reference1,
28768 p_customer_id => l_customer_id,
28769 p_customer_number => l_customer_number,
28770 p_authoring_org_id => NVL(okl_header_rec.authoring_org_id,l_header_template.authoring_org_id),
28771 x_cplv_rec => x_cplv_rec );
28772
28773 l_progress := '070';
28774
28775 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28776 x_return_status := OKL_API.G_RET_STS_ERROR;
28777 raise load_failed;
28778 END IF;
28779
28780 debug_message('--->Party Role created');
28781 l_progress := '080';
28782
28783 --
28784 -- create lessee as vendor if product is loan revolving
28785 --
28786 FOR deal_rec IN deal_csr (x_khrv_rec.id)
28787 LOOP
28788 IF (deal_rec.loan_revolving = 'Y') THEN
28789 debug_message('-----> create_lessee_as_vendor()');
28790
28791 create_lessee_as_vendor(
28792 x_return_status => x_return_status,
28793 x_msg_count => x_msg_count,
28794 x_msg_data => x_msg_data,
28795 p_chr_id => x_khrv_rec.id,
28796 p_contract_num => okl_header_rec.contract_number_old,
28797 p_cpl_id => x_cplv_rec.id,
28798 p_lessee_vendor_id => okl_header_rec.lessee_vendor_id,
28799 p_lessee_vendor_name => okl_header_rec.lessee_vendor_name,
28800 p_lessee_site_id => okl_header_rec.lessee_vendor_site_id,
28801 p_lessee_site_code => okl_header_rec.lessee_vendor_site_code,
28802 p_authoring_org_id => NVL(okl_header_rec.authoring_org_id,l_header_template.authoring_org_id)
28803 );
28804
28805 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28806 x_return_status := OKL_API.G_RET_STS_ERROR;
28807 raise load_failed;
28808 END IF;
28809
28810 debug_message('--->Lessee as Vendor Created');
28811 END IF;
28812 END LOOP;
28813
28814 -- Create Contact for Sales Rep...???
28815
28816 l_salesperson_id := okl_header_rec.salesperson_id;
28817 l_salesperson_name := okl_header_rec.salesperson_name;
28818
28819 IF (okl_header_rec.template_number IS NOT NULL) THEN
28820 IF (l_salesperson_id IS NULL
28821 AND
28822 l_salesperson_name IS NULL) THEN
28823
28824 l_salesperson_id := NULL;
28825 l_salesperson_name := NULL;
28826
28827 OPEN temp_sales_csr(l_header_template.id);
28828 FETCH temp_sales_csr INTO l_salesperson_id;
28829 CLOSE temp_sales_csr;
28830
28831 END IF;
28832 END IF;
28833
28834 create_contact(
28835 x_return_status => x_return_status,
28836 x_msg_count => x_msg_count,
28837 x_msg_data => x_msg_data,
28838 p_contract_header_id => x_khrv_rec.id,
28839 p_contract_number_old => okl_header_rec.contract_number_old,
28840 p_salesperson_id => l_salesperson_id,
28841 p_salesperson_name => l_salesperson_name,
28842 p_authoring_org_id => NVL(okl_header_rec.authoring_org_id,l_header_template.authoring_org_id),
28843 p_lessor_id => x_cplv_rec.id
28844 );
28845
28846 debug_message('--->Contact created');
28847 l_progress := '081';
28848
28849 debug_message('--->Header rule creation started');
28850 create_header_rules(
28851 x_return_status => x_return_status,
28852 x_msg_count => x_msg_count,
28853 x_msg_data => x_msg_data,
28854 p_chr_id => x_chrv_rec.id,
28855 p_template_id => l_header_template.id,
28856 p_header_rec => okl_header_rec --comment out. ckleel_intf_h_rec
28857 --p_header_rec => l_intf_h_rec
28858 );
28859
28860 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28861 x_return_status := OKL_API.G_RET_STS_ERROR;
28862 raise load_failed;
28863 END IF;
28864 debug_message('--->Header rule creation complete');
28865
28866 -- Create private Label party
28867 create_private_label(
28868 x_return_status => x_return_status,
28869 x_msg_count => x_msg_count,
28870 x_msg_data => x_msg_data,
28871 p_chr_id => x_chrv_rec.id,
28872 p_contract_number => okl_header_rec.contract_number_old,
28873 p_label_number => okl_header_rec.private_label_number,
28874 p_label_id => okl_header_rec.private_label_id,
28875 p_label_url => okl_header_rec.private_label_url
28876 );
28877
28878 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28879 x_return_status := OKL_API.G_RET_STS_ERROR;
28880 raise load_failed;
28881 END IF;
28882 debug_message('--->Private label created');
28883
28884 --
28885 -- Copy program agreement rules, if present, to contract
28886 --
28887 --debug_message('PROG: id: '||x_khrv_rec.khr_id);
28888 --debug_message('PROG: source: '||x_khrv_rec.khr_id);
28889 --debug_message('PROG: dest: '||x_chrv_rec.id);
28890 --debug_message('PROG: org: '||x_chrv_rec.authoring_org_id);
28891 --debug_message('PROG: inv org: '||x_chrv_rec.inv_organization_id);
28892
28893 IF (x_khrv_rec.khr_id IS NOT NULL) THEN
28894 okl_deal_create_pub.copy_rules(
28895 p_api_version => 1.0,
28896 p_init_msg_list => OKL_API.G_FALSE,
28897 x_return_status => x_return_status,
28898 x_msg_count => x_msg_count,
28899 x_msg_data => x_msg_data,
28900 p_source_id => x_khrv_rec.khr_id,
28901 p_dest_id => x_chrv_rec.id, -- imported Contract ID
28902 p_org_id => x_chrv_rec.authoring_org_id,
28903 p_organization_id => x_chrv_rec.inv_organization_id
28904 );
28905
28906 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28907 x_return_status := OKL_API.G_RET_STS_ERROR;
28908 raise load_failed;
28909 END IF;
28910
28911 debug_message('--->Program agreement copied');
28912
28913 END IF;
28914
28915 -- debug_message('--->Program agreement copied');
28916
28917 -- start cklee 02/13/2003 bug# 3440442
28918 -- create 3rd party insurance
28919 -- 1. x_khrv_rec.id indicates contract deatils record exists
28920 -- 2. okl_header_rec.policy_number is a PK for 3rd party insurance policy
28921
28922 IF (x_chrv_rec.id IS NOT NULL and
28923 okl_header_rec.policy_number IS NOT NULL) THEN
28924
28925 create_3rd_party_insurance(
28926 x_return_status => x_return_status,
28927 x_msg_count => x_msg_count,
28928 x_msg_data => x_msg_data,
28929 p_intf_header => okl_header_rec,
28930 --p_intf_header => l_intf_h_rec,
28931 p_chr_id => x_chrv_rec.id -- imported Contract ID
28932 );
28933
28934
28935 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28936 x_return_status := OKL_API.G_RET_STS_ERROR;
28937 raise load_failed;
28938 END IF;
28939
28940 debug_message('--->3rd Party Insurance created');
28941 END IF;
28942
28943 -- end cklee 02/13/2003 bug# 3440442
28944
28945 --debug_message('Contract Number: '||x_chrv_rec.contract_number);
28946 l_progress := '090';
28947
28948 -- Call Line Cursor to get Line detail
28949
28950 l_no_of_lines := 0;
28951 x_inv_item_id_prev := -9999999;
28952 x_cle_id := -9999999;
28953 p_inv_item_id_prev := -9999999;
28954 p_line_type_prev := 'NULL';
28955 l_prev_corp_book := 'NULL';
28956 l_prev_asset_number := 'NULL';
28957 l_prev_tax_book := 'NULL';
28958
28959 -- Check product type
28960 -- in case of loan product, don't populate depreciation detail
28961 -- Bug 3407354
28962 --
28963 check_product_type(
28964 x_return_status => x_return_status,
28965 x_msg_count => x_msg_count,
28966 x_msg_data => x_msg_data,
28967 p_prod_name => okl_header_rec.product_name,
28968 p_prod_id => okl_header_rec.product_id,
28969 x_loan_yn => l_loan_yn
28970 );
28971 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28972 x_return_status := OKL_API.G_RET_STS_ERROR;
28973 RAISE load_failed;
28974 END IF;
28975
28976 -- 4414408
28977 x_release_asset := get_release_asset_flag(
28978 x_return_status => x_return_status,
28979 x_msg_count => x_msg_count,
28980 x_msg_data => x_msg_data,
28981 p_contract_number => okl_header_rec.contract_number_old,
28982 p_org_id => okl_header_rec.inventory_organization_id
28983 ) ;
28984 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
28985 x_return_status := OKL_API.G_RET_STS_ERROR;
28986 RAISE load_failed;
28987 END IF;
28988
28989 FOR okl_line_rec IN okl_line_csr (okl_header_rec.contract_number_old)
28990 LOOP
28991
28992 BEGIN --2
28993
28994 -- Bug 4350579 start
28995 -- validate line information before proceeding
28996 --
28997 debug_message('Processing line : '||okl_line_rec.line_type||'/'||okl_line_rec.line_number);
28998 check_line_literal (
28999 x_return_status => x_return_status,
29000 x_msg_count => x_msg_count,
29001 x_msg_data => x_msg_data,
29002 p_contract_number => okl_header_rec.contract_number_old,
29003 p_import_request_stage => okl_header_rec.import_request_stage,
29004 p_product_id => okl_header_rec.product_id,
29005 p_product_name => okl_header_rec.product_name,
29006 p_line_number => okl_line_rec.line_number,
29007 p_line_type => okl_line_rec.line_type,
29008 p_amount => okl_line_rec.amount,
29009 p_currency_code => okl_header_rec.currency_code,
29010 p_asset_number => okl_line_rec.asset_number,
29011 p_inventory_item_name => okl_line_rec.inventory_item_name,
29012 p_inventory_item_id => okl_line_rec.inventory_item_id,
29013 p_install_site_number => okl_line_rec.install_site_number,
29014 p_install_site_id => okl_line_rec.install_site_id,
29015 p_asset_corporate_book => okl_line_rec.asset_corporate_book,
29016 p_asset_category_id => okl_line_rec.asset_category_id,
29017 p_asset_category_segment1 => okl_line_rec.asset_category_segment1,
29018 p_asset_category_segment2 => okl_line_rec.asset_category_segment2,
29019 p_asset_category_segment3 => okl_line_rec.asset_category_segment3,
29020 p_asset_category_segment4 => okl_line_rec.asset_category_segment4,
29021 p_asset_category_segment5 => okl_line_rec.asset_category_segment5,
29022 p_asset_category_segment6 => okl_line_rec.asset_category_segment6,
29023 p_asset_category_segment7 => okl_line_rec.asset_category_segment7,
29024 p_asset_location_id => okl_line_rec.asset_location_id,
29025 p_asset_location_segment1 => okl_line_rec.asset_location_segment1,
29026 p_asset_location_segment2 => okl_line_rec.asset_location_segment2,
29027 p_asset_location_segment3 => okl_line_rec.asset_location_segment3,
29028 p_asset_location_segment4 => okl_line_rec.asset_location_segment4,
29029 p_asset_location_segment5 => okl_line_rec.asset_location_segment5,
29030 p_asset_location_segment6 => okl_line_rec.asset_location_segment6,
29031 p_asset_location_segment7 => okl_line_rec.asset_location_segment7,
29032 p_depreciation_method_id => okl_line_rec.depreciation_method_id,
29033 p_depreciation_method_code => okl_line_rec.depreciation_method_code,
29034 p_life_in_months => okl_line_rec.life_in_months,
29035 p_fee_code => okl_line_rec.fee_code,
29036 p_stream_purpose => okl_line_rec.stream_purpose_code,
29037 p_fee_type => okl_line_rec.fee_type,
29038 p_price_list_name => okl_line_rec.price_list_name,
29039 p_price_list_id => okl_line_rec.price_list_id,
29040 p_counter_group_name => okl_line_rec.counter_group_name,
29041 p_counter_group_id => okl_line_rec.counter_group_id,
29042 p_usage_bill_frequency_code => okl_line_rec.usage_bill_frequency_code,
29043 p_base_reading_uom_code => okl_line_rec.base_reading_uom_code,
29044 p_usage_type_code => okl_line_rec.usage_type_code,
29045 p_usage_period => okl_line_rec.usage_period,
29046 p_usage_no_of_period => okl_line_rec.usage_no_of_period,
29047 p_tax_cost => okl_line_rec.tax_cost,
29048 p_tax_book => okl_line_rec.tax_book,
29049 p_life_in_months_tax => okl_line_rec.life_in_months_tax,
29050 p_deprn_method_tax => okl_line_rec.deprn_method_tax,
29051 p_deprn_rate_tax => okl_line_rec.deprn_rate_tax,
29052 p_in_service_date => okl_line_rec.in_service_date,
29053 p_link_asset_amount => okl_line_rec.link_asset_amount,
29054 p_inv_org_id => okl_header_rec.inventory_organization_id,
29055 p_term_quote_id => okl_line_rec.termination_quote_id,
29056 p_term_quote_number => okl_line_rec.termination_quote_number,
29057 p_fee_purpose_code => okl_line_rec.fee_purpose_code
29058 );
29059
29060 debug_message('check_line_literal: '||x_return_status);
29061
29062 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29063 x_return_status := OKL_API.G_RET_STS_ERROR;
29064 RAISE load_failed;
29065 END IF;
29066
29067 -- Bug 4321621 end
29068
29069 -- Populates Header Record before calling APIs
29070 l_no_of_lines := l_no_of_lines + 1;
29071 l_progress := '100';
29072 okl_api.init_msg_list(p_init_msg_list => OKL_API.G_TRUE); --Bug 3958519
29073
29074 debug_message('------> Processing Line: '||okl_line_rec.line_type);
29075
29076 l_service_line_id := NULL;
29077 l_fee_line_id := NULL;
29078 l_usage_line_id := NULL;
29079 g_base_pmnt_hdr := NULL;
29080 g_evg_pmnt_hdr := NULL;
29081
29082 -- Get Item and Organization Info, for All line type
29083 IF (okl_line_rec.inventory_item_id IS NOT NULL
29084 OR
29085 okl_line_rec.inventory_item_name IS NOT NULL) THEN
29086 get_inventory_org_item_id(
29087 x_return_status => x_return_status,
29088 x_msg_count => x_msg_count,
29089 x_msg_data => x_msg_data,
29090 p_contract_number => okl_header_rec.contract_number_old,
29091 P_line_number => okl_line_rec.line_number,
29092 p_line_type => okl_line_rec.line_type,
29093 p_inventory_org_id => x_chrv_rec.inv_organization_id,
29094 --okl_line_rec.inventory_organization_id,
29095 p_inventory_item_id => okl_line_rec.inventory_item_id,
29096 p_inventory_item_name => okl_line_rec.inventory_item_name,
29097 x_inventory_org_id => x_inventory_org_id,
29098 x_inventory_item_id => x_inventory_item_id
29099 );
29100
29101 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29102 x_return_status := OKL_API.G_RET_STS_ERROR;
29103 RAISE load_failed;
29104 END IF;
29105
29106 debug_message('------>Inv Org ID: '||x_chrv_rec.inv_organization_id);
29107
29108 END IF;
29109
29110 -- Processing for Asset Lines
29111 IF (okl_line_rec.line_type = 'ASSET') THEN
29112 /* 4414408
29113 IF (okl_line_rec.asset_number = l_prev_asset_number) THEN
29114 x_release_asset := g_release_asset_flag;
29115
29116 ELSE -- check asset type
29117 --
29118 -- Check whether the asset it released already
29119 -- If so, processing will be different
29120 --
29121 check_for_release_asset(
29122 x_return_status => x_return_status,
29123 x_msg_count => x_msg_count,
29124 x_msg_data => x_msg_data,
29125 p_asset_number => okl_line_rec.asset_number,
29126 p_line_number => okl_line_rec.line_number,
29127 p_org_id => x_chrv_rec.inv_organization_id,
29128 x_release_asset => x_release_asset,
29129 x_asset_id => x_asset_id
29130 );
29131
29132 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29133 x_return_status := OKL_API.G_RET_STS_ERROR;
29134 RAISE load_failed;
29135 END IF;
29136 */
29137 IF (x_release_asset = 'N'
29138 AND
29139 okl_line_rec.tax_book IS NOT NULL
29140 AND
29141 okl_line_rec.asset_corporate_book IS NULL) THEN
29142 okl_api.set_message(
29143 G_APP_NAME,
29144 G_MISSING_VALUE_FOR_LINE,
29145 'CONTRACT_NUM',
29146 okl_header_rec.contract_number_old||'/'||TO_CHAR(okl_line_rec.line_number),
29147 'COL_NAME',
29148 'CORPORATE BOOK',
29149 'LINE',
29150 'ASSET'
29151 );
29152 x_return_status := OKL_API.G_RET_STS_ERROR;
29153
29154 END IF;
29155
29156 IF (x_release_asset = 'N'
29157 AND
29158 okl_line_rec.inventory_item_name IS NULL
29159 AND
29160 okl_line_rec.inventory_item_id IS NULL) THEN
29161 okl_api.set_message(
29162 G_APP_NAME,
29163 G_MISSING_VALUE_FOR_LINE,
29164 'CONTRACT_NUM',
29165 okl_header_rec.contract_number_old||'/'||TO_CHAR(okl_line_rec.line_number),
29166 'COL_NAME',
29167 'INVENTORY_ITEM_NAME OR INVENTORY_ITEM_ID',
29168 'LINE',
29169 'ASSET'
29170 );
29171
29172 x_return_status := OKL_API.G_RET_STS_ERROR;
29173 END IF;
29174
29175 IF (x_release_asset = 'N'
29176 AND
29177 okl_line_rec.install_site_number IS NULL
29178 AND
29179 okl_line_rec.install_site_id IS NULL) THEN
29180 okl_api.set_message(
29181 G_APP_NAME,
29182 G_MISSING_VALUE_FOR_LINE,
29183 'CONTRACT_NUM',
29184 okl_header_rec.contract_number_old||'/'||TO_CHAR(okl_line_rec.line_number),
29185 'COL_NAME',
29186 'INSTALL_SITE_NUMBER OR INSTALL_SITE_ID',
29187 'LINE',
29188 'ASSET'
29189 );
29190
29191 x_return_status := OKL_API.G_RET_STS_ERROR;
29192 END IF;
29193
29194 -- END IF;
29195
29196 --
29197 -- make sure all the assets are either released or
29198 -- none of them are released asset,
29199 -- which means, mix of released and new asset should not
29200 -- be attched to a contract
29201 --
29202 IF (l_no_of_lines = 1) THEN -- first asset line
29203 -- g_release_asset_flag := x_release_asset; -- set the value
29204
29205 create_release_asset_rule(
29206 x_return_status => x_return_status,
29207 x_msg_count => x_msg_count,
29208 x_msg_data => x_msg_data,
29209 p_chr_id => x_chrv_rec.id,
29210 p_release_asset_flag => x_release_asset -- 4414408
29211 );
29212
29213 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29214 x_return_status := OKL_API.G_RET_STS_ERROR;
29215 RAISE load_failed;
29216 END IF;
29217
29218 IF (x_release_asset = 'Y') THEN
29219 OPEN c_asset(okl_line_rec.asset_number);
29220 FETCH c_asset into x_asset_id;
29221 CLOSE c_asset;
29222 END IF;
29223 /*4414408
29224
29225 ELSE -- more than one different assets found
29226 IF (okl_line_rec.asset_number <> l_prev_asset_number
29227 AND
29228 x_release_asset <> g_release_asset_flag) THEN
29229
29230 okl_api.set_message(
29231 G_APP_NAME,
29232 G_MIXED_ASSET,
29233 'CONTRACT_NUM',
29234 okl_line_rec.contract_number_old
29235 );
29236 x_return_status := OKL_API.G_RET_STS_ERROR;
29237 RAISE load_failed;
29238 END IF;
29239 */
29240 END IF;
29241
29242 IF (x_release_asset = 'Y') THEN
29243
29244 IF (l_loan_yn <> 'Y'
29245 AND
29246 okl_line_rec.asset_number = l_prev_asset_number
29247 AND
29248 okl_line_rec.asset_corporate_book = l_prev_corp_book ) THEN
29249
29250 IF (l_prev_tax_book = okl_line_rec.tax_book) THEN
29251
29252 -- Can not have more than one same Tax book
29253 -- for one corporate book, raise error
29254
29255 okl_api.set_message(
29256 G_APP_NAME,
29257 G_DUP_TAX_BOOK,
29258 'TAX_BOOK',
29259 okl_line_rec.tax_book,
29260 'CONTRACT_NUM',
29261 okl_line_rec.contract_number_old||'/'||okl_line_rec.line_number,
29262 'ASSET_NUM',
29263 okl_line_rec.asset_number
29264 );
29265 x_return_status := OKL_API.G_RET_STS_ERROR;
29266 RAISE load_failed;
29267
29268 END IF;
29269
29270 debug_message('---->Processing Multiple Tax book');
29271
29272 get_tal_id(
29273 x_return_status => x_return_status,
29274 p_fa_line_id => x_clev_fa_rec.id,
29275 x_tal_id => l_tal_id);
29276
29277 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29278 x_return_status := OKL_API.G_RET_STS_ERROR;
29279 RAISE load_failed;
29280 END IF;
29281
29282 get_txd_id (
29283 x_return_status => x_return_status,
29284 x_msg_count => x_msg_count,
29285 x_msg_data => x_msg_data,
29286 p_contract_number => okl_header_rec.contract_number_old,
29287 p_tal_id => l_tal_id,
29288 p_tax_book => okl_line_rec.tax_book,
29289 x_txd_id => x_txd_id
29290 );
29291
29292 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29293 x_return_status := OKL_API.G_RET_STS_ERROR;
29294 RAISE load_failed;
29295 END IF;
29296
29297 --l_adpv_rec := NULL;
29298 l_adpv_rec.id := x_txd_id;
29299 l_adpv_rec.asset_number := okl_line_rec.asset_number;
29300 l_adpv_rec.tal_id := l_tal_id;
29301
29302 IF (okl_line_rec.deprn_method_tax IS NOT NULL) THEN
29303 l_adpv_rec.deprn_method_tax := okl_line_rec.deprn_method_tax;
29304 END IF;
29305
29306 IF (okl_line_rec.deprn_rate_tax IS NOT NULL) THEN
29307 l_adpv_rec.deprn_rate_tax := okl_line_rec.deprn_rate_tax;
29308 END IF;
29309
29310 IF (okl_line_rec.deprn_rate_tax IS NOT NULL) THEN
29311 l_adpv_rec.deprn_rate_tax := okl_line_rec.deprn_rate_tax;
29312 END IF;
29313
29314 IF (okl_line_rec.life_in_months_tax IS NOT NULL) THEN
29315 l_adpv_rec.life_in_months_tax := okl_line_rec.life_in_months_tax;
29316 END IF;
29317
29318 okl_txd_assets_pub.update_txd_asset_def(
29319 p_api_version => 1.0,
29320 p_init_msg_list => OKL_API.G_FALSE,
29321 x_return_status => x_return_status,
29322 x_msg_count => x_msg_count,
29323 x_msg_data => x_msg_data,
29324 p_adpv_rec => l_adpv_rec,
29325 x_adpv_rec => x_adpv_rec
29326 );
29327
29328 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29329 x_return_status := OKL_API.G_RET_STS_ERROR;
29330 RAISE load_failed;
29331 END IF;
29332
29333 debug_message('------>TXD Line Updated');
29334
29335 --
29336 -- End of multiple Tax book logic for release asset
29337 --
29338
29339 -- Bug# 4345613
29340 l_rule_create_flag := 'N';
29341
29342 ELSE
29343
29344 process_release_asset(
29345 x_return_status => x_return_status,
29346 x_msg_count => x_msg_count,
29347 x_msg_data => x_msg_data,
29348 p_chr_id => x_chrv_rec.id,
29349 p_contract_number => okl_line_rec.contract_number_old,
29350 p_asset_number => okl_line_rec.asset_number,
29351 p_asset_id => x_asset_id,
29352 p_line_number => okl_line_rec.line_number,
29353 p_install_site_id => okl_line_rec.install_site_id,
29354 p_install_site_num => okl_line_rec.install_site_number,
29355 p_unit_price => okl_line_rec.original_cost,
29356 p_deprn_method => okl_line_rec.depreciation_method_code,
29357 p_life_in_months => okl_line_rec.life_in_months,
29358 p_deprn_rate => okl_line_rec.depreciation_rate,
29359 p_asset_location_id => okl_line_rec.asset_location_id,
29360 p_asset_loc_segment1 => okl_line_rec.asset_location_segment1,
29361 p_asset_loc_segment2 => okl_line_rec.asset_location_segment2,
29362 p_asset_loc_segment3 => okl_line_rec.asset_location_segment3,
29363 p_asset_loc_segment4 => okl_line_rec.asset_location_segment4,
29364 p_asset_loc_segment5 => okl_line_rec.asset_location_segment5,
29365 p_asset_loc_segment6 => okl_line_rec.asset_location_segment6,
29366 p_asset_loc_segment7 => okl_line_rec.asset_location_segment7,
29367 p_salvage_value => okl_line_rec.salvage_value,
29368 p_salvage_ptg => okl_line_rec.salvage_value_percent,
29369 p_residual_grnty_amt => okl_line_rec.residual_amount_guarantee,
29370 p_residual_code => okl_line_rec.guarantor_type_code,
29371 p_residual_ptg => okl_line_rec.residual_percent,
29372 p_residual_amt => okl_line_rec.residual_amount,
29373 p_tax_book => okl_line_rec.tax_book,
29374 p_tax_deprn => okl_line_rec.deprn_method_tax,
29375 p_tax_life_in_mnth => okl_line_rec.life_in_months_tax,
29376 p_tax_deprn_rate => okl_line_rec.deprn_rate_tax,
29377 p_pth_base_payout_basis => okl_line_rec.pth_base_payout_basis,
29378 p_pth_base_stream_code => okl_line_rec.pth_base_stream_code,
29379 p_pth_base_stream_purpose_code => okl_line_rec.pth_base_stream_purpose_code,
29380 p_pth_start_date => okl_line_rec.pth_start_date,
29381 p_pth_evg_payout_basis => okl_line_rec.pth_evg_payout_basis,
29382 p_pth_payout_basis_formula => okl_line_rec.pth_payout_basis_formula,
29383 p_pth_evg_stream_code => okl_line_rec.pth_evg_stream_code,
29384 p_pth_evg_stream_purpose_code => okl_line_rec.pth_evg_stream_purpose_code,
29385 p_attribute_category => okl_line_rec.attribute_category,
29386 p_attribute1 => okl_line_rec.attribute1,
29387 p_attribute2 => okl_line_rec.attribute2,
29388 p_attribute3 => okl_line_rec.attribute3,
29389 p_attribute4 => okl_line_rec.attribute4,
29390 p_attribute5 => okl_line_rec.attribute5,
29391 p_attribute6 => okl_line_rec.attribute6,
29392 p_attribute7 => okl_line_rec.attribute7,
29393 p_attribute8 => okl_line_rec.attribute8,
29394 p_attribute9 => okl_line_rec.attribute9,
29395 p_attribute10 => okl_line_rec.attribute10,
29396 p_attribute11 => okl_line_rec.attribute11,
29397 p_attribute12 => okl_line_rec.attribute12,
29398 p_attribute13 => okl_line_rec.attribute13,
29399 p_attribute14 => okl_line_rec.attribute14,
29400 p_attribute15 => okl_line_rec.attribute15,
29401 x_clev_fin_rec => x_clev_fin_rec,
29402 x_clev_model_rec => x_clev_model_rec,
29403 x_clev_fa_rec => x_clev_fa_rec,
29404 x_clev_ib_rec => x_clev_ib_rec
29405 );
29406
29407 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29408 x_return_status := OKL_API.G_RET_STS_ERROR;
29409 RAISE load_failed;
29410 END IF;
29411
29412 x_cle_id := x_clev_fin_rec.id;
29413
29414 END IF;
29415
29416 ELSE -- process new assets
29417
29418 --
29419 -- Multiple Tax book creation
29420 --
29421 -- Check for Corporate book and asset number
29422 -- If those 2 matches with previous records create
29423 -- Tax book only
29424 --
29425 IF (l_loan_yn <> 'Y'
29426 AND
29427 okl_line_rec.asset_number = l_prev_asset_number
29428 AND
29429 okl_line_rec.asset_corporate_book = l_prev_corp_book ) THEN
29430
29431 IF (l_prev_tax_book = okl_line_rec.tax_book) THEN
29432
29433 -- Can not have more than one same Tax book
29434 -- for one corporate book, raise error
29435
29436 okl_api.set_message(
29437 G_APP_NAME,
29438 G_DUP_TAX_BOOK,
29439 'TAX_BOOK',
29440 okl_line_rec.tax_book,
29441 'CONTRACT_NUM',
29442 okl_line_rec.contract_number_old||'/'||okl_line_rec.line_number,
29443 'ASSET_NUM',
29444 okl_line_rec.asset_number
29445 );
29446 x_return_status := OKL_API.G_RET_STS_ERROR;
29447 RAISE load_failed;
29448
29449 END IF;
29450
29451 debug_message('---->Processing Multiple Tax book');
29452
29453 l_adpv_rec := NULL;
29454 l_adpv_rec.tal_id := l_tal_id;
29455 l_adpv_rec.asset_number := okl_line_rec.asset_number;
29456 l_adpv_rec.cost := okl_line_rec.tax_cost;
29457 l_adpv_rec.tax_book := okl_line_rec.tax_book;
29458 l_adpv_rec.life_in_months_tax := okl_line_rec.life_in_months_tax;
29459 l_adpv_rec.deprn_method_tax := okl_line_rec.deprn_method_tax;
29460 l_adpv_rec.deprn_rate_tax := okl_line_rec.deprn_rate_tax;
29461 l_adpv_rec.salvage_value := 0;
29462
29463 -- Take currency info from header, Bug 4005881
29464 l_adpv_rec.CURRENCY_CODE := okl_header_rec.currency_code;
29465 l_adpv_rec.CURRENCY_CONVERSION_TYPE := okl_header_rec.currency_conversion_type;
29466 l_adpv_rec.CURRENCY_CONVERSION_RATE := okl_header_rec.currency_conversion_rate;
29467 l_adpv_rec.CURRENCY_CONVERSION_DATE := okl_header_rec.currency_conversion_date;
29468
29469 okl_txd_assets_pub.create_txd_asset_def(
29470 p_api_version => 1.0,
29471 p_init_msg_list => OKL_API.G_FALSE,
29472 x_return_status => x_return_status,
29473 x_msg_count => x_msg_count,
29474 x_msg_data => x_msg_data,
29475 p_adpv_rec => l_adpv_rec,
29476 x_adpv_rec => x_adpv_rec
29477 );
29478
29479 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29480 x_return_status := OKL_API.G_RET_STS_ERROR;
29481 RAISE load_failed;
29482 END IF;
29483
29484 debug_message('------>Only TXD Line Created');
29485
29486 --
29487 -- End of multiple Tax book logic
29488 --
29489
29490 -- Bug# 4345613
29491 l_rule_create_flag := 'N';
29492
29493 ELSE -- create new asset line
29494
29495 p_clev_fin_rec := NULL;
29496 p_clev_fin_rec.chr_id := x_chrv_rec.id;
29497 p_clev_fin_rec.line_number := okl_line_rec.line_number;
29498 p_clev_fin_rec.sts_code := 'NEW';
29499 p_clev_fin_rec.dnz_chr_id := x_chrv_rec.id;
29500 p_clev_fin_rec.item_description := okl_line_rec.description;
29501 p_clev_fin_rec.price_unit := okl_line_rec.original_cost;
29502 p_clev_fin_rec.currency_code := okl_header_rec.currency_code;
29503 p_clev_fin_rec.start_date := okl_line_rec.start_date;
29504 p_clev_fin_rec.end_date := okl_line_rec.end_date;
29505 p_clev_fin_rec.name := okl_line_rec.asset_number;
29506 /* 4414408
29507 get_lse_id(
29508 x_return_status => x_return_status,
29509 x_msg_count => x_msg_count,
29510 x_msg_data => x_msg_data,
29511 p_contract_number => okl_header_rec.contract_number_old,
29512 p_line_number => okl_line_rec.line_number,
29513 p_lty_code => 'FREE_FORM1',
29514 p_top_line_lty_code => NULL,
29515 x_lse_id => x_lse_id
29516 );
29517 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29518 x_return_status := OKL_API.G_RET_STS_ERROR;
29519 RAISE load_failed;
29520 END IF;
29521 */
29522 l_progress := '101';
29523
29524 p_clev_fin_rec.lse_id := G_FIN_LINE_LTY_ID;
29525
29526 -- start cklee 02/18/2004 bug# 3440442
29527
29528 validate_real_est(
29529 x_return_status => x_return_status,
29530 x_msg_count => x_msg_count,
29531 x_msg_data => x_msg_data,
29532 p_intf_line => okl_line_rec
29533 );
29534 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29535 x_return_status := OKL_API.G_RET_STS_ERROR;
29536 RAISE load_failed;
29537 END IF;
29538
29539 -- end cklee 02/18/2004 bug# 3440442
29540 -- Rviriyal - fix for bug 5397754 -- start
29541 IF (okl_line_rec.CAPITALIZE_DOWN_PAYMENT_YN IS NOT NULL) AND
29542 (okl_line_rec.CAPITALIZE_DOWN_PAYMENT_YN = 'N') THEN
29543 IF (okl_line_rec.DOWN_PAYMENT_RECEIVER_CODE IS NOT NULL) AND
29544 (okl_line_rec.DOWN_PAYMENT_RECEIVER_CODE = 'VENDOR') THEN
29545 okl_api.set_message(
29546 G_APP_NAME,
29547 'OKL_INVALID_COMBINATION',
29548 'CONTRACT_NUM',
29549 okl_line_rec.contract_number_old||'/'||okl_line_rec.line_number,
29550 'ASSET_NUM',
29551 okl_line_rec.asset_number
29552 );
29553 x_return_status := OKL_API.G_RET_STS_ERROR;
29554 RAISE load_failed;
29555
29556 END IF;
29557 END IF;
29558
29559 -- Rviriyal - fix for bug 5397754 -- End
29560
29561 p_klev_fin_rec := NULL;
29562 p_klev_fin_rec.year_of_manufacture := okl_line_rec.year_of_manufacture;
29563 p_klev_fin_rec.residual_percentage := okl_line_rec.residual_percent;
29564 p_klev_fin_rec.residual_value := okl_line_rec.residual_amount;
29565 /*
29566 IF (okl_line_rec.residual_amount IS NULL) THEN
29567 --p_klev_fin_rec.residual_value := (okl_line_rec.residual_percent / (nvl(okl_line_rec.amount,1) * 100));
29568 p_klev_fin_rec.residual_value := (okl_line_rec.residual_percent / 100) * nvl(okl_line_rec.amount,0);
29569 ELSE
29570 p_klev_fin_rec.residual_value := okl_line_rec.residual_amount;
29571 END IF;
29572 */
29573 p_klev_fin_rec.residual_grnty_amount := okl_line_rec.residual_amount_guarantee;
29574 p_klev_fin_rec.tradein_amount := okl_line_rec.trade_in_amount;
29575
29576 IF (okl_line_rec.capital_reduction_percent IS NOT NULL) THEN
29577 --p_klev_fin_rec.capital_reduction := (okl_line_rec.capital_reduction_percent / (nvl(okl_line_rec.amount,1) * 100));
29578 p_klev_fin_rec.capital_reduction := (okl_line_rec.capital_reduction_percent / 100)
29579 * nvl(okl_line_rec.amount,0);
29580 END IF;
29581
29582 IF (okl_line_rec.capital_reduction_amount IS NOT NULL) THEN
29583 p_klev_fin_rec.capital_reduction := okl_line_rec.capital_reduction_amount;
29584 END IF;
29585
29586 --rviriyal : bug# 5397754
29587 p_klev_fin_rec.CAPITALIZE_DOWN_PAYMENT_YN := okl_line_rec.CAPITALIZE_DOWN_PAYMENT_YN;
29588 p_klev_fin_rec.DOWN_PAYMENT_RECEIVER_CODE := okl_line_rec.DOWN_PAYMENT_RECEIVER_CODE;
29589 --rviriyal : end
29590
29591 -- start cklee 02/16/2004 bug# 3440442
29592 p_klev_fin_rec.initial_direct_cost := okl_line_rec.real_est_init_direct_cost;
29593 p_klev_fin_rec.occupancy := okl_line_rec.real_est_occupancy;
29594 p_klev_fin_rec.date_last_inspection := okl_line_rec.real_est_date_last_insp;
29595 p_klev_fin_rec.date_next_inspection_due := okl_line_rec.real_est_date_next_insp;
29596 p_klev_fin_rec.date_commitment_expiration := okl_line_rec.real_est_accept_expire_date;
29597 -- fnd lookup_type = 'OKL_PROPERTY_CLASS_OPTIONS'. check at API level
29598 p_klev_fin_rec.prc_code := okl_line_rec.real_est_property_class_code;
29599
29600 -- end cklee 02/16/2004 bug# 3440442
29601
29602 p_klev_fin_rec.weighted_average_life := okl_line_rec.real_est_wtd_avg_life;
29603 p_klev_fin_rec.bond_equivalent_yield := okl_line_rec.real_est_bond_eq_yield;
29604 p_klev_fin_rec.refinance_amount := okl_line_rec.real_est_refinance_amt;
29605 p_klev_fin_rec.credit_tenant_yn := okl_line_rec.real_est_credit_tenant_flag;
29606 p_klev_fin_rec.coverage_ratio := okl_line_rec.real_est_coverage_ratio;
29607 p_klev_fin_rec.date_appraisal := okl_line_rec.real_est_appraisal_date;
29608 p_klev_fin_rec.appraisal_value := okl_line_rec.real_est_appraisal_value;
29609 p_klev_fin_rec.gross_square_footage := okl_line_rec.real_est_gross_footage;
29610 p_klev_fin_rec.net_rentable := okl_line_rec.real_est_net_footage_rentable;
29611 p_klev_fin_rec.date_letter_acceptance := okl_line_rec.real_est_letter_accept_date;
29612 --p_klev_fin_rec.oec := okl_line_rec.amount;
29613 p_klev_fin_rec.oec := okl_line_rec.original_cost;
29614 --p_klev_fin_rec.capital_amount := okl_line_rec.amount;
29615 p_klev_fin_rec.capitalized_interest := okl_line_rec.capitalized_interest;
29616 p_klev_fin_rec.capital_reduction_percent := okl_line_rec.capital_reduction_percent;
29617 p_klev_fin_rec.residual_code := NVL(okl_line_rec.guarantor_type_code,'NONE');
29618 p_cimv_model_rec := NULL;
29619 p_cimv_model_rec.chr_id := x_chrv_rec.id;
29620 p_cimv_model_rec.dnz_chr_id := x_chrv_rec.id;
29621 p_cimv_model_rec.number_of_items := okl_line_rec.total_units;
29622
29623 l_progress := '102';
29624 IF (x_inventory_org_id IS NOT NULL) THEN
29625 p_cimv_model_rec.object1_id2 := x_inventory_org_id;
29626 p_cimv_model_rec.object1_id1 := x_inventory_item_id;
29627 p_cimv_model_rec.jtot_object1_code := 'OKX_SYSITEM';
29628 END IF;
29629
29630
29631 p_clev_fa_rec := NULL;
29632 p_clev_fa_rec.chr_id := x_chrv_rec.id;
29633 p_clev_fa_rec.line_number := okl_line_rec.line_number;
29634 p_clev_fa_rec.name := okl_line_rec.asset_number;
29635 p_clev_fa_rec.sts_code := 'NEW';
29636 p_clev_fa_rec.item_description := okl_line_rec.description;
29637 /* 4414408
29638 get_lse_id(
29639 x_return_status => x_return_status,
29640 x_msg_count => x_msg_count,
29641 x_msg_data => x_msg_data,
29642 p_contract_number => okl_header_rec.contract_number_old,
29643 p_line_number => okl_line_rec.line_number,
29644 p_lty_code => 'FIXED_ASSET',
29645 p_top_line_lty_code => 'FREE_FORM1',
29646 x_lse_id => x_lse_id
29647 );
29648 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29649 x_return_status := OKL_API.G_RET_STS_ERROR;
29650 RAISE load_failed;
29651 END IF;
29652 */
29653 l_progress := '103';
29654 p_clev_fa_rec.lse_id := G_FA_LINE_LTY_ID;
29655
29656 p_cimv_fa_rec := NULL;
29657 /* 4414408
29658 l_new_yn := 'Y'; -- Yes to create Asset, No to validate asset, Default is 'Y'
29659
29660 IF (l_new_yn = 'N') THEN
29661 get_asset_id(
29662 x_return_status => x_return_status,
29663 x_msg_count => x_msg_count,
29664 x_msg_data => x_msg_data,
29665 p_contract_number => okl_header_rec.contract_number_old,
29666 p_line_number => okl_line_rec.line_number,
29667 p_asset_number => okl_line_rec.asset_number,
29668 x_id1 => x_id1,
29669 x_id2 => x_id2
29670 );
29671 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29672 x_return_status := OKL_API.G_RET_STS_ERROR;
29673 RAISE load_failed;
29674 END IF;
29675
29676 p_cimv_fa_rec.chr_id := x_chrv_rec.id;
29677 p_cimv_fa_rec.dnz_chr_id := x_chrv_rec.id;
29678 p_cimv_fa_rec.jtot_object1_code := 'OKX_ASSET';
29679 p_cimv_fa_rec.object1_id1 := x_id1;
29680 p_cimv_fa_rec.object1_id2 := x_id2;
29681 END IF;
29682
29683 p_talv_fa_rec := NULL;
29684
29685 IF (l_new_yn = 'Y') THEN
29686 */
29687 p_talv_fa_rec := NULL; -- re-initialized for bug 5584648
29688 -- Take currency info from header, Bug 4005881
29689 p_talv_fa_rec.CURRENCY_CODE := okl_header_rec.currency_code;
29690 p_talv_fa_rec.CURRENCY_CONVERSION_TYPE := okl_header_rec.currency_conversion_type;
29691 p_talv_fa_rec.CURRENCY_CONVERSION_RATE := okl_header_rec.currency_conversion_rate;
29692 p_talv_fa_rec.CURRENCY_CONVERSION_DATE := okl_header_rec.currency_conversion_date;
29693
29694 p_talv_fa_rec.asset_number := okl_line_rec.asset_number;
29695 p_talv_fa_rec.original_cost := okl_line_rec.original_cost;
29696 p_talv_fa_rec.current_units := okl_line_rec.total_units;
29697 --p_talv_fa_rec.depreciation_cost := okl_line_rec.amount;
29698 p_talv_fa_rec.description := okl_line_rec.description;
29699 p_talv_fa_rec.model_number := okl_line_rec.model;
29700 p_talv_fa_rec.manufacturer_name := okl_line_rec.make;
29701 p_talv_fa_rec.year_manufactured := okl_line_rec.year_of_manufacture;
29702
29703 IF (l_loan_yn <> 'Y') THEN -- not a loan product
29704 p_talv_fa_rec.corporate_book := okl_line_rec.asset_corporate_book;
29705 p_talv_fa_rec.depreciation_cost := okl_line_rec.amount; --okl_line_rec.depreciation_cost;
29706 END IF; -- l_loan_yn
29707
29708 IF (l_loan_yn <> 'Y') THEN -- not a loan product
29709 x_comb_id := NULL;
29710 get_flexid(
29711 x_return_status => x_return_status,
29712 x_msg_count => x_msg_count,
29713 x_msg_data => x_msg_data,
29714 p_contract_number => okl_header_rec.contract_number_old,
29715 p_line_number => okl_line_rec.line_number,
29716 p_type => 'ASSET_CATEGORY',
29717 p_comb_id => okl_line_rec.asset_category_id,
29718 p_segment1 => okl_line_rec.asset_category_segment1,
29719 p_segment2 => okl_line_rec.asset_category_segment2,
29720 p_segment3 => okl_line_rec.asset_category_segment3,
29721 p_segment4 => okl_line_rec.asset_category_segment4,
29722 p_segment5 => okl_line_rec.asset_category_segment5,
29723 p_segment6 => okl_line_rec.asset_category_segment6,
29724 p_segment7 => okl_line_rec.asset_category_segment7,
29725 x_comb_id => x_comb_id
29726 );
29727 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29728 x_return_status := OKL_API.G_RET_STS_ERROR;
29729 RAISE load_failed;
29730 END IF;
29731 p_talv_fa_rec.depreciation_id := x_comb_id;
29732
29733 x_comb_id := NULL;
29734 get_flexid(
29735 x_return_status => x_return_status,
29736 x_msg_count => x_msg_count,
29737 x_msg_data => x_msg_data,
29738 p_type => 'ASSET_LOCATION',
29739 p_contract_number => okl_header_rec.contract_number_old,
29740 p_line_number => okl_line_rec.line_number,
29741 p_comb_id => okl_line_rec.asset_location_id,
29742 p_segment1 => okl_line_rec.asset_location_segment1,
29743 p_segment2 => okl_line_rec.asset_location_segment2,
29744 p_segment3 => okl_line_rec.asset_location_segment3,
29745 p_segment4 => okl_line_rec.asset_location_segment4,
29746 p_segment5 => okl_line_rec.asset_location_segment5,
29747 p_segment6 => okl_line_rec.asset_location_segment6,
29748 p_segment7 => okl_line_rec.asset_location_segment7,
29749 x_comb_id => x_comb_id
29750 );
29751 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29752 x_return_status := OKL_API.G_RET_STS_ERROR;
29753 RAISE load_failed;
29754 END IF;
29755 p_talv_fa_rec.fa_location_id := x_comb_id;
29756
29757 -- Asset Key
29758 x_comb_id := NULL;
29759 debug_message('Asset Key segment1: '||okl_line_rec.asset_key_segment1);
29760
29761 get_asset_key_id(
29762 x_return_status => x_return_status,
29763 x_msg_count => x_msg_count,
29764 x_msg_data => x_msg_data,
29765 p_contract_number => okl_header_rec.contract_number_old,
29766 p_line_number => okl_line_rec.line_number,
29767 p_comb_id => okl_line_rec.asset_key_id,
29768 p_segment1 => okl_line_rec.asset_key_segment1,
29769 p_segment2 => okl_line_rec.asset_key_segment2,
29770 p_segment3 => okl_line_rec.asset_key_segment3,
29771 p_segment4 => okl_line_rec.asset_key_segment4,
29772 p_segment5 => okl_line_rec.asset_key_segment5,
29773 p_segment6 => okl_line_rec.asset_key_segment6,
29774 p_segment7 => okl_line_rec.asset_key_segment7,
29775 p_segment8 => okl_line_rec.asset_key_segment8,
29776 p_segment9 => okl_line_rec.asset_key_segment9,
29777 p_segment10 => okl_line_rec.asset_key_segment10,
29778 x_comb_id => x_comb_id
29779 );
29780 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29781 x_return_status := OKL_API.G_RET_STS_ERROR;
29782 RAISE load_failed;
29783 END IF;
29784 p_talv_fa_rec.asset_key_id := x_comb_id;
29785 debug_message('Asset Key: '||x_comb_id);
29786 -- Asset Key
29787
29788 p_talv_fa_rec.deprn_method := okl_line_rec.depreciation_method_code; --??? Get method Code from id
29789 p_talv_fa_rec.life_in_months := okl_line_rec.life_in_months;
29790 p_talv_fa_rec.deprn_rate := okl_line_rec.depreciation_rate;
29791 p_talv_fa_rec.salvage_value := okl_line_rec.salvage_value;
29792 p_talv_fa_rec.percent_salvage_value := okl_line_rec.salvage_value_percent;
29793 p_talv_fa_rec.in_service_date := okl_line_rec.in_service_date;
29794 --okl_header_rec.expected_delivery_date;-- ??? should be at line
29795 END IF; -- l_loan_yn
29796
29797 -- END IF;
29798
29799 l_progress := '104';
29800
29801 get_install_site_id(
29802 x_return_status => x_return_status,
29803 x_msg_count => x_msg_count,
29804 x_msg_data => x_msg_data,
29805 p_contract_number => okl_header_rec.contract_number_old,
29806 p_line_number => okl_line_rec.line_number,
29807 p_install_site_id => okl_line_rec.install_site_id,
29808 p_install_site_number => okl_line_rec.install_site_number,
29809 x_install_site_id => x_install_site_id
29810 );
29811
29812 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29813 x_return_status := OKL_API.G_RET_STS_ERROR;
29814 RAISE load_failed;
29815 END IF;
29816
29817 --debug_message('Install site id: '||x_install_site_id);
29818
29819 -- Get IB Lines
29820 l_ib_line_count := 0;
29821 p_itiv_ib_tbl.DELETE; -- initialize table, Bug 4067179
29822 FOR okl_ib_rec IN okl_ib_csr(okl_header_rec.contract_number_old,
29823 okl_line_rec.line_number)
29824 LOOP
29825 l_ib_line_count := l_ib_line_count + 1;
29826
29827 p_itiv_ib_tbl(l_ib_line_count).line_number := okl_line_rec.line_number;
29828 p_itiv_ib_tbl(l_ib_line_count).mfg_serial_number_yn := 'Y';
29829 p_itiv_ib_tbl(l_ib_line_count).object_id1_new := x_install_site_id;
29830 p_itiv_ib_tbl(l_ib_line_count).object_id2_new := '#';
29831 p_itiv_ib_tbl(l_ib_line_count).serial_number := okl_ib_rec.serial_number;
29832
29833 debug_message('Count: '||l_ib_line_count);
29834 debug_message('Serial#: '||p_itiv_ib_tbl(l_ib_line_count).serial_number);
29835
29836 END LOOP; --ib line
29837
29838 IF (l_ib_line_count = 0) THEN
29839
29840 p_itiv_ib_tbl(1).mfg_serial_number_yn := 'N';
29841 p_itiv_ib_tbl(1).object_id1_new := x_install_site_id;
29842 p_itiv_ib_tbl(1).object_id2_new := '#';
29843
29844 END IF;
29845 debug_message('Residual% : '|| p_klev_fin_rec.residual_percentage);
29846 debug_message('Residual value : '|| p_klev_fin_rec.residual_value);
29847
29848 -- Contract addl field, Bug 4558486
29849
29850 debug_message('Contract Asset line DFF...'||'Line#: '||okl_line_rec.line_number);
29851
29852 p_klev_fin_rec.validate_dff_yn := 'Y'; -- always validate DFF
29853 p_klev_fin_rec.attribute_category := okl_line_rec.attribute_category;
29854 debug_message('attribute_category: '||p_klev_fin_rec.attribute_category);
29855 p_klev_fin_rec.attribute1 := okl_line_rec.attribute1;
29856 debug_message('attribute1: '||p_klev_fin_rec.attribute1);
29857 p_klev_fin_rec.attribute2 := okl_line_rec.attribute2;
29858 debug_message('attribute2: '||p_klev_fin_rec.attribute2);
29859 p_klev_fin_rec.attribute3 := okl_line_rec.attribute3;
29860 p_klev_fin_rec.attribute4 := okl_line_rec.attribute4;
29861 p_klev_fin_rec.attribute5 := okl_line_rec.attribute5;
29862 p_klev_fin_rec.attribute6 := okl_line_rec.attribute6;
29863 p_klev_fin_rec.attribute7 := okl_line_rec.attribute7;
29864 p_klev_fin_rec.attribute8 := okl_line_rec.attribute8;
29865 p_klev_fin_rec.attribute9 := okl_line_rec.attribute9;
29866 p_klev_fin_rec.attribute10 := okl_line_rec.attribute10;
29867 p_klev_fin_rec.attribute11 := okl_line_rec.attribute11;
29868 p_klev_fin_rec.attribute12 := okl_line_rec.attribute12;
29869 p_klev_fin_rec.attribute13 := okl_line_rec.attribute13;
29870 p_klev_fin_rec.attribute14 := okl_line_rec.attribute14;
29871 p_klev_fin_rec.attribute15 := okl_line_rec.attribute15;
29872 -- Contract addl field, Bug 4558486
29873 debug_message('Before create_all_line');
29874
29875 okl_create_kle_pvt.Create_all_line(
29876 p_api_version => 1.0,
29877 p_init_msg_list => OKL_API.G_FALSE,
29878 x_return_status => x_return_status,
29879 x_msg_count => x_msg_count,
29880 x_msg_data => x_msg_data,
29881 P_new_yn => 'Y', -- 4414408
29882 p_asset_number => okl_line_rec.asset_number,
29883 p_clev_fin_rec => p_clev_fin_rec,
29884 p_klev_fin_rec => p_klev_fin_rec,
29885 p_cimv_model_rec => p_cimv_model_rec,
29886 p_clev_fa_rec => p_clev_fa_rec,
29887 p_cimv_fa_rec => p_cimv_fa_rec,
29888 p_talv_fa_rec => p_talv_fa_rec,
29889 p_itiv_ib_tbl => p_itiv_ib_tbl,
29890 x_clev_fin_rec => x_clev_fin_rec,
29891 x_clev_model_rec => x_clev_model_rec,
29892 x_clev_fa_rec => x_clev_fa_rec,
29893 x_clev_ib_rec => x_clev_ib_rec
29894 );
29895
29896 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29897 x_return_status := OKL_API.G_RET_STS_ERROR;
29898 RAISE load_failed;
29899 END IF;
29900 --rviriyal bug#6015423 start 27-Aug-2007
29901 /* Added code to consider date_funding_expected field. If date_funding_expected
29902 is present in okl_interface_lines that value is considered else asset
29903 start date is considered. */
29904
29905 IF okl_line_rec.date_funding_expected IS NULL THEN
29906 p_klev_fin_rec.date_funding_expected := x_clev_fin_rec.start_date;
29907 ELSE
29908 p_klev_fin_rec.date_funding_expected := okl_line_rec.date_funding_expected;
29909 END IF;
29910
29911 OKL_LA_ASSET_PVT.update_contract_line(
29912 p_api_version =>1.0
29913 ,p_init_msg_list =>OKL_API.G_FALSE
29914 ,x_return_status =>x_return_status
29915 ,x_msg_count =>x_msg_count
29916 ,x_msg_data =>x_msg_data
29917 ,p_id =>x_clev_fin_rec.id
29918 ,p_date_delivery_expected => NULL
29919 ,p_date_funding_expected => p_klev_fin_rec.date_funding_expected
29920 ,p_org_id =>NULL
29921 ,p_organization_id =>NULL
29922 );
29923 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29924 x_return_status := OKL_API.G_RET_STS_ERROR;
29925 RAISE load_failed;
29926 END IF;
29927
29928 --rviriyal bug#6015423 start 27-Aug-2007
29929
29930 debug_message('------>Line created');
29931
29932 -- Bug 5155206
29933 /* Load Rent payment for the asset line, before asset subisidy is processed.
29934 Rent line will be always TOP line. so skip check_payment_level call */
29935
29936 -- Process Rent Payments Interface Record, if any
29937 l_contract_number_old_prev := 'INITIAL';
29938 l_line_number_prev := -999999999;
29939 l_payment_type_code_prev := 'INITIAL';
29940 l_pmnt_sch_num_prev := -999999999;
29941 l_start_date_prev := NULL;
29942 l_number_of_periods_prev := -999999999;
29943 l_rg_id := NULL;
29944
29945 FOR okl_payment_rent_rec IN okl_payment_rent_csr(okl_header_rec.contract_number_old,
29946 okl_line_rec.line_number)
29947 LOOP
29948 BEGIN --5
29949
29950 check_payment_record(
29951 x_return_status => x_return_status,
29952 x_msg_count => x_msg_count,
29953 x_msg_data => x_msg_data,
29954 p_contract_number_old => okl_payment_rent_rec.contract_number_old,
29955 p_line_number => okl_payment_rent_rec.line_number,
29956 p_asset_number => okl_payment_rent_rec.asset_number,
29957 p_payment_type_code => okl_payment_rent_rec.payment_type_code,
29958 p_stream_purpose => okl_payment_rent_rec.stream_purpose_code,
29959 p_payment_schedule_number => okl_payment_rent_rec.payment_schedule_number,
29960 p_payment_frequency_code => okl_payment_rent_rec.payment_frequency_code,
29961 p_arrears_flag => okl_payment_rent_rec.arrears_flag,
29962 p_advance_payments => okl_payment_rent_rec.advance_payments,
29963 p_payment_amount => okl_payment_rent_rec.payment_amount,
29964 p_start_date => okl_payment_rent_rec.start_date,
29965 p_number_of_periods => okl_payment_rent_rec.number_of_periods,
29966 p_rate => okl_payment_rent_rec.rate,
29967 p_comments => okl_payment_rent_rec.comments,
29968 p_stub_days => okl_payment_rent_rec.stub_days,
29969 p_stub_amount => okl_payment_rent_rec.stub_amount
29970 );
29971
29972 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
29973 RAISE load_failed;
29974 END IF;
29975
29976 IF (l_contract_number_old_prev <> okl_payment_rent_rec.contract_number_old -- prev checking
29977 OR
29978 l_line_number_prev <> okl_payment_rent_rec.line_number
29979 OR
29980 l_payment_type_code_prev <> okl_payment_rent_rec.payment_type_code) THEN
29981
29982 IF (l_line_number_prev <> okl_payment_rent_rec.line_number) THEN -- for new line create rule group
29983 l_rg_id := NULL;
29984 END IF;
29985
29986 create_payment_rule_group(
29987 x_return_status => x_return_status,
29988 x_msg_count => x_msg_count,
29989 x_msg_data => x_msg_data,
29990 p_contract_number => okl_header_rec.contract_number_old,
29991 p_line_number => okl_line_rec.line_number,
29992 p_payment_type_code => okl_payment_rent_rec.payment_type_code,
29993 p_stream_purpose => okl_payment_rent_rec.stream_purpose_code,
29994 p_chr_id => x_chrv_rec.id,
29995 p_cle_id => x_clev_fin_rec.id,
29996 p_rg_id => l_rg_id,
29997 x_rgp_id => x_rgp_id,
29998 x_slh_rulv_rec => x_slh_rulv_rec
29999 );
30000
30001 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30002 RAISE load_failed;
30003 END IF;
30004
30005 ELSE
30006 l_progress := '170';
30007
30008 -- Some more validation on Payment Lines
30009 IF (okl_payment_rent_rec.payment_schedule_number <= l_pmnt_sch_num_prev) THEN
30010 okl_api.set_message(
30011 G_APP_NAME,
30012 G_PAYMENT_SCHD_ERROR,
30013 'COL_VALUE',
30014 okl_payment_rent_rec.payment_schedule_number,
30015 'CONTRACT_NUM',
30016 okl_header_rec.contract_number_old||'/'||okl_payment_rent_rec.line_number
30017 );
30018 x_return_status := OKL_API.G_RET_STS_ERROR;
30019 RAISE load_failed;
30020 END IF;
30021
30022 check_payment_frequency_code(
30023 x_return_status => x_return_status,
30024 x_msg_count => x_msg_count,
30025 x_msg_data => x_msg_data,
30026 p_payment_freq_code => okl_payment_rent_rec.payment_frequency_code,
30027 x_id1 => x_pmnt_freq_id,
30028 x_uom_code => x_uom_code
30029 );
30030
30031 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30032 okl_api.set_message(
30033 G_APP_NAME,
30034 G_INVALID_VALUE,
30035 'CONTRACT_NUM',
30036 okl_payment_rent_rec.contract_number_old||'/'||okl_payment_rent_rec.line_number,
30037 'COL_NAME',
30038 'PAYMENT_FREQUENCY_CODE',
30039 'COL_VALUE',
30040 okl_payment_rent_rec.payment_frequency_code
30041 );
30042 RAISE load_failed;
30043 END IF;
30044
30045 IF (x_uom_code = 'M') THEN
30046 l_mult_factor := 1;
30047 ELSIF (x_uom_code = 'Q') THEN
30048 l_mult_factor := 3;
30049 ELSIF (x_uom_code = 'S') THEN
30050 l_mult_factor := 6;
30051 ELSIF (x_uom_code = 'A') THEN
30052 l_mult_factor := 12;
30053 ELSE
30054 okl_api.set_message(
30055 G_APP_NAME,
30056 G_UOM_SETUP_ERROR,
30057 'COL_VALUE',
30058 okl_payment_rent_rec.payment_frequency_code
30059 );
30060 RAISE load_failed;
30061 END IF;
30062
30063
30064 l_current_start_date := add_months(l_start_date_prev, (l_number_of_periods_prev * l_mult_factor));
30065
30066 IF (TRUNC(l_current_start_date) <> TRUNC(okl_payment_rent_rec.start_date)) THEN
30067 okl_api.set_message(
30068 G_APP_NAME,
30069 G_PAYMENT_START_DATE_ERROR,
30070 'CONTRACT_NUM',
30071 okl_payment_rent_rec.contract_number_old||'/'||okl_payment_rent_rec.line_number
30072 );
30073 RAISE load_failed;
30074 END IF;
30075
30076 END IF; --prev checking
30077
30078 IF (l_rg_id IS NULL) THEN
30079 l_rg_id := x_rgp_id;
30080 END IF;
30081
30082 -- Create other rules
30083 -- Keep a copy to compare with latest record
30084 create_payment_other_rules(
30085 x_return_status => x_return_status,
30086 x_msg_count => x_msg_count,
30087 x_msg_data => x_msg_data,
30088 p_contract_number => okl_header_rec.contract_number_old,
30089 p_line_number => okl_line_rec.line_number,
30090 p_payment_sch_number => okl_payment_rent_rec.payment_schedule_number,
30091 p_payment_freq_code => okl_payment_rent_rec.payment_frequency_code,
30092 p_arrears_flag => okl_payment_rent_rec.arrears_flag,
30093 p_advance_payments => okl_payment_rent_rec.advance_payments,
30094 p_payment_amount => okl_payment_rent_rec.payment_amount,
30095 p_start_date => okl_payment_rent_rec.start_date,
30096 p_number_of_periods => okl_payment_rent_rec.number_of_periods,
30097 p_rate => okl_payment_rent_rec.rate,
30098 p_comments => okl_payment_rent_rec.comments,
30099 p_stub_days => okl_payment_rent_rec.stub_days,
30100 p_stub_amount => okl_payment_rent_rec.stub_amount,
30101 p_slh_rulv_rec => x_slh_rulv_rec,
30102 p_chr_id => x_chrv_rec.id,
30103 p_cle_id => x_cle_id,
30104 p_rgp_id => x_rgp_id
30105 );
30106
30107 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30108 RAISE load_failed;
30109 END IF;
30110
30111 l_progress := '180';
30112
30113 l_contract_number_old_prev := okl_payment_rent_rec.contract_number_old;
30114 l_line_number_prev := okl_payment_rent_rec.line_number;
30115 l_payment_type_code_prev := okl_payment_rent_rec.payment_type_code;
30116 l_pmnt_sch_num_prev := okl_payment_rent_rec.payment_schedule_number;
30117 l_start_date_prev := okl_payment_rent_rec.start_date;
30118 l_number_of_periods_prev := okl_payment_rent_rec.number_of_periods;
30119
30120 END; --5 Payment begin
30121
30122 END LOOP; -- Payment Loop
30123 -- Bug 5155206
30124
30125
30126 /* OKL.H - Subsidy import start Bug 4411317 */
30127 debug_message('------>Process Subsidy starts for Asset: '||okl_line_rec.asset_number);
30128 process_subsidy(
30129 x_return_status => x_return_status,
30130 x_msg_count => x_msg_count,
30131 x_msg_data => x_msg_data,
30132 p_auth_org_id => x_chrv_rec.authoring_org_id,
30133 p_contract_num => okl_header_rec.contract_number_old,
30134 p_chr_id => x_chrv_rec.id,
30135 p_asset_line_id => x_clev_fin_rec.id,
30136 p_asset_num => okl_line_rec.asset_number
30137 );
30138
30139 debug_message('------>Process Subsidy ends '||x_return_status);
30140 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30141 x_return_status := OKL_API.G_RET_STS_ERROR;
30142 RAISE load_failed;
30143 END IF;
30144
30145
30146 /* OKL.H - Subsidy import end */
30147
30148 /* OKL.H - Addon import start Bug 5077142 */
30149 debug_message('------>Process Addon starts for Asset: '||okl_line_rec.asset_number);
30150
30151 process_addon(
30152 x_return_status => x_return_status,
30153 x_msg_count => x_msg_count,
30154 x_msg_data => x_msg_data,
30155 p_auth_org_id => x_chrv_rec.authoring_org_id,
30156 p_contract_num => okl_header_rec.contract_number_old,
30157 p_chr_id => x_chrv_rec.id,
30158 p_fa_cle_id => x_clev_fa_rec.id,
30159 p_asset_num => okl_line_rec.asset_number,
30160 p_model_line_id => x_clev_model_rec.id,
30161 p_number_of_items => okl_line_rec.total_units
30162 );
30163
30164 --debug_message('AKP:NEEDED:x_clev_fa_rec.id=' || x_clev_fa_rec.id);
30165
30166 debug_message('------>Process Addon ends '||x_return_status);
30167 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30168 x_return_status := OKL_API.G_RET_STS_ERROR;
30169 RAISE load_failed;
30170 END IF;
30171
30172 /* OKL.H - Addon import end */
30173
30174 IF (okl_line_rec.pth_evg_payout_basis is NOT NULL) THEN
30175 debug_message('------>Create party payment starts for Asset: '||okl_line_rec.asset_number || ' / '||okl_line_rec.line_number);
30176 create_party_payment_hdr(
30177 x_return_status => x_return_status,
30178 x_msg_count => x_msg_count,
30179 x_msg_data => x_msg_data,
30180 p_contract_id => x_clev_fin_rec.dnz_chr_id,
30181 p_line_id => x_clev_fin_rec.id,
30182 p_line_type => okl_line_rec.line_type,
30183 p_pth_start_date => okl_line_rec.pth_start_date,
30184 p_pth_base_payout_basis => okl_line_rec.pth_base_payout_basis,
30185 p_pth_base_stream_code => okl_line_rec.pth_base_stream_code,
30186 p_pth_base_stream_purpose_code => okl_line_rec.pth_base_stream_purpose_code,
30187 p_pth_evg_payout_basis => okl_line_rec.pth_evg_payout_basis,
30188 p_pth_payout_basis_formula => okl_line_rec.pth_payout_basis_formula,
30189 p_pth_evg_stream_code => okl_line_rec.pth_evg_stream_code,
30190 p_pth_evg_stream_purpose_code => okl_line_rec.pth_evg_stream_purpose_code,
30191 x_party_pmnt_hdr_tbl => x_party_pmnt_hdr_tbl_out
30192 );
30193
30194 debug_message('------>Create party payment ends '||x_return_status);
30195 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30196 x_return_status := OKL_API.G_RET_STS_ERROR;
30197 RAISE load_failed;
30198 END IF;
30199 IF (x_party_pmnt_hdr_tbl_out.COUNT > 0 )THEN
30200 l_counter := x_party_pmnt_hdr_tbl_out.FIRST;
30201 LOOP
30202 IF (x_party_pmnt_hdr_tbl_out(l_counter).passthru_term = 'BASE') THEN
30203 g_base_pmnt_hdr := x_party_pmnt_hdr_tbl_out(l_counter);
30204 ELSIF (x_party_pmnt_hdr_tbl_out(l_counter).passthru_term = 'EVERGREEN') THEN
30205 g_evg_pmnt_hdr := x_party_pmnt_hdr_tbl_out(l_counter);
30206 END IF;
30207 EXIT WHEN (l_counter = x_party_pmnt_hdr_tbl_out.LAST);
30208 l_counter := x_party_pmnt_hdr_tbl_out.NEXT(l_counter);
30209 END LOOP;
30210 END IF;
30211 END IF;
30212
30213 /*
30214 --
30215 -- Update asset detail with depreciation cost
30216 --
30217 IF (okl_line_rec.depreciation_cost IS NOT NULL) THEN
30218
30219 FOR txl_rec IN txl_csr (x_chrv_rec.id,
30220 x_clev_fa_rec.id)
30221 LOOP
30222 l_talv_rec.id := txl_rec.id;
30223 l_talv_rec.depreciation_cost := okl_line_rec.depreciation_cost;
30224 END LOOP;
30225
30226 okl_txl_assets_pub.update_txl_asset_def(
30227 p_api_version => 1.0,
30228 p_init_msg_list => OKL_API.G_FALSE,
30229 x_return_status => x_return_status,
30230 x_msg_count => x_msg_count,
30231 x_msg_data => x_msg_data,
30232 p_tlpv_rec => l_talv_rec,
30233 x_tlpv_rec => x_talv_rec
30234 );
30235
30236 debug_message('Depreciation Cost update: '||x_return_status);
30237
30238 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30239 x_return_status := OKL_API.G_RET_STS_ERROR;
30240 RAISE load_failed;
30241 END IF;
30242
30243 END IF; -- depreciation_cost
30244 */
30245
30246 get_tal_id(
30247 x_return_status => x_return_status,
30248 p_fa_line_id => x_clev_fa_rec.id,
30249 x_tal_id => l_tal_id);
30250
30251 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30252 x_return_status := OKL_API.G_RET_STS_ERROR;
30253 RAISE load_failed;
30254 END IF;
30255
30256 IF (l_loan_yn <> 'Y') THEN -- don't create txd for loan type contract
30257
30258 l_adpv_rec := NULL;
30259 l_adpv_rec.tal_id := l_tal_id;
30260 l_adpv_rec.asset_number := okl_line_rec.asset_number;
30261 l_adpv_rec.cost := okl_line_rec.tax_cost;
30262 l_adpv_rec.tax_book := okl_line_rec.tax_book;
30263 l_adpv_rec.life_in_months_tax := okl_line_rec.life_in_months_tax;
30264 l_adpv_rec.deprn_method_tax := okl_line_rec.deprn_method_tax;
30265 l_adpv_rec.deprn_rate_tax := okl_line_rec.deprn_rate_tax;
30266 l_adpv_rec.salvage_value := 0; -- to make consistant with UI, might need a change later
30267
30268 -- Take currency info from header, Bug 4005881
30269 l_adpv_rec.CURRENCY_CODE := okl_header_rec.currency_code;
30270 l_adpv_rec.CURRENCY_CONVERSION_TYPE := okl_header_rec.currency_conversion_type;
30271 l_adpv_rec.CURRENCY_CONVERSION_RATE := okl_header_rec.currency_conversion_rate;
30272 l_adpv_rec.CURRENCY_CONVERSION_DATE := okl_header_rec.currency_conversion_date;
30273
30274 okl_txd_assets_pub.create_txd_asset_def(
30275 p_api_version => 1.0,
30276 p_init_msg_list => OKL_API.G_FALSE,
30277 x_return_status => x_return_status,
30278 x_msg_count => x_msg_count,
30279 x_msg_data => x_msg_data,
30280 p_adpv_rec => l_adpv_rec,
30281 x_adpv_rec => x_adpv_rec
30282 );
30283
30284 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30285 x_return_status := OKL_API.G_RET_STS_ERROR;
30286 RAISE load_failed;
30287 END IF;
30288
30289 debug_message('------>TXD Line Created');
30290
30291 END IF; -- loan_yn
30292
30293 x_cle_id := x_clev_fin_rec.id;
30294 l_rule_create_flag := 'Y';
30295
30296 l_progress := '105';
30297 --
30298 -- Create Supplier Invoice details for contract
30299 --
30300 p_sidv_rec.cle_id := x_clev_model_rec.id;
30301 p_sidv_rec.fa_cle_id := x_clev_fa_rec.id;
30302 p_sidv_rec.invoice_number := okl_line_rec.vendor_invoice_number;
30303 p_sidv_rec.date_invoiced := okl_line_rec.vendor_invoice_date;
30304 IF (okl_line_rec.ship_to_site_id IS NOT NULL
30305 OR
30306 okl_line_rec.ship_to_site_number IS NOT NULL) THEN
30307 get_ship_to_site(
30308 x_return_status => x_return_status,
30309 x_msg_count => x_msg_count,
30310 x_msg_data => x_msg_data,
30311 p_contract_number => okl_header_rec.contract_number_old,
30312 p_line_number => okl_line_rec.line_number,
30313 p_auth_org_id => NVL(okl_header_rec.authoring_org_id,l_header_template.authoring_org_id),
30314 p_ship_to_site_number => okl_line_rec.ship_to_site_number,
30315 p_ship_to_site_id => okl_line_rec.ship_to_site_id,
30316 x_ship_to_site_id => x_ship_to_site_id
30317 );
30318 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30319 RAISE load_failed;
30320 x_return_status := OKL_API.G_RET_STS_ERROR;
30321 END IF;
30322
30323 p_sidv_rec.shipping_address_id1 := x_ship_to_site_id;
30324 p_sidv_rec.shipping_address_id2 := '#';
30325 p_sidv_rec.shipping_address_code := 'OKX_PARTSITE';
30326 END IF;
30327
30328 okl_supp_invoice_dtls_pub.create_sup_inv_dtls(
30329 p_api_version => 1.0,
30330 x_return_status => x_return_status,
30331 x_msg_count => x_msg_count,
30332 x_msg_data => x_msg_data,
30333 p_sidv_rec => p_sidv_rec,
30334 x_sidv_rec => x_sidv_rec
30335 );
30336 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30337 x_return_status := OKL_API.G_RET_STS_ERROR;
30338 RAISE load_failed;
30339 END IF;
30340
30341 END IF; -- multiple Tax Book
30342
30343 END IF; -- release asset
30344
30345 -- Save current values for future comparison
30346 --abhsaxen 13-feb-2008 bug#6773219
30347 --commented this portion and added the same just at the end of line processing loop
30348 --to utilize these variables for processing non rent records in okl_payments_interface
30349 --like ESTIMATED PERSONAL PROPERTY TAX
30350 --l_prev_asset_number := okl_line_rec.asset_number;
30351 --l_prev_corp_book := okl_line_rec.asset_corporate_book;
30352 --l_prev_tax_book := okl_line_rec.tax_book;
30353 --end abhsaxen 13-feb-2008 bug#6773219
30354
30355 ELSIF (okl_line_rec.line_type = 'SERVICE') THEN
30356
30357 process_other_line(
30358 x_return_status => x_return_status,
30359 x_msg_count => x_msg_count,
30360 x_msg_data => x_msg_data,
30361 p_contract_number => okl_header_rec.contract_number_old,
30362 p_chr_id => x_chrv_rec.id,
30363 p_line_number => okl_line_rec.line_number,
30364 p_line_type => okl_line_rec.line_type,
30365 p_line_type_prev => p_line_type_prev,
30366 p_inv_item_id => x_inventory_item_id,
30367 p_inv_org_id => x_inventory_org_id,
30368 p_line_amount => okl_line_rec.amount,
30369 p_link_asset_amount => okl_line_rec.link_asset_amount,
30370 p_init_direct_cost => okl_line_rec.initial_direct_cost,
30371 p_fee_code => okl_line_rec.fee_code,
30372 p_stream_purpose => okl_line_rec.stream_purpose_code,
30373 p_fee_type => NULL,
30374 p_asset_number => okl_line_rec.asset_number,
30375 p_currency_code => okl_header_rec.currency_code,
30376 p_usage_item_name => okl_line_rec.usage_item_name,
30377 p_usage_item_id => okl_line_rec.usage_item_id,
30378 p_header_start_date => NVL(okl_header_rec.start_date,l_header_template.start_date),
30379 p_header_end_date => x_chrv_rec.end_date,
30380 p_line_start_date => okl_line_rec.start_date,
30381 p_line_end_date => okl_line_rec.end_date,
30382 p_inv_item_id_prev => p_inv_item_id_prev,
30383 p_term_quote_id => NULL,
30384 p_term_quote_number => NULL,
30385 x_inv_item_id_prev => x_inv_item_id_prev,
30386 p_cle_id => p_cle_id,
30387 x_cle_id => x_cle_id,
30388 x_sub_cle_id => x_sub_cle_id,
30389 p_new_line_flag => okl_line_rec.explicit_new_line_flag,
30390 p_pth_base_payout_basis => okl_line_rec.pth_base_payout_basis,
30391 p_pth_base_stream_code => okl_line_rec.pth_base_stream_code,
30392 p_pth_base_stream_purpose_code => okl_line_rec.pth_base_stream_purpose_code,
30393 p_pth_start_date => okl_line_rec.pth_start_date,
30394 p_pth_evg_payout_basis => okl_line_rec.pth_evg_payout_basis,
30395 p_pth_payout_basis_formula => okl_line_rec.pth_payout_basis_formula,
30396 p_pth_evg_stream_code => okl_line_rec.pth_evg_stream_code,
30397 p_pth_evg_stream_purpose_code => okl_line_rec.pth_evg_stream_purpose_code,
30398 p_fee_purpose_code => okl_line_rec.fee_purpose_code
30399 );
30400
30401 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30402 x_return_status := OKL_API.G_RET_STS_ERROR;
30403 RAISE load_failed;
30404 END IF;
30405
30406 l_service_line_id := x_cle_id;
30407
30408 IF (x_cle_id = p_cle_id) THEN -- No New Top Line Created, don't create rule against this line
30409 l_rule_create_flag := 'N';
30410 ELSE
30411 l_rule_create_flag := 'Y';
30412 END IF;
30413
30414 p_line_type_prev := okl_line_rec.line_type;
30415 p_inv_item_id_prev := x_inv_item_id_prev;
30416 p_cle_id := x_cle_id;
30417 debug_message('------>SERVICE line created');
30418
30419 ELSIF (okl_line_rec.line_type = 'FEE') THEN
30420 process_other_line(
30421 x_return_status => x_return_status,
30422 x_msg_count => x_msg_count,
30423 x_msg_data => x_msg_data,
30424 p_contract_number => okl_header_rec.contract_number_old,
30425 p_chr_id => x_chrv_rec.id,
30426 p_line_number => okl_line_rec.line_number,
30427 p_line_type => okl_line_rec.line_type,
30428 p_line_type_prev => p_line_type_prev,
30429 p_inv_item_id => okl_line_rec.inventory_item_id,
30430 p_inv_org_id => x_chrv_rec.inv_organization_id,
30431 --okl_line_rec.inventory_organization_id,
30432 p_line_amount => okl_line_rec.amount,
30433 p_link_asset_amount => okl_line_rec.link_asset_amount,
30434 p_init_direct_cost => okl_line_rec.initial_direct_cost,
30435 p_fee_code => okl_line_rec.fee_code,
30436 p_stream_purpose => okl_line_rec.stream_purpose_code,
30437 p_fee_type => okl_line_rec.fee_type,
30438 p_asset_number => okl_line_rec.asset_number,
30439 p_currency_code => okl_header_rec.currency_code,
30440 p_usage_item_name => okl_line_rec.usage_item_name,
30441 p_usage_item_id => okl_line_rec.usage_item_id,
30442 p_header_start_date => NVL(okl_header_rec.start_date,l_header_template.start_date),
30443 p_header_end_date => x_chrv_rec.end_date,
30444 p_line_start_date => okl_line_rec.start_date,
30445 p_line_end_date => okl_line_rec.end_date,
30446 p_inv_item_id_prev => p_inv_item_id_prev,
30447 p_term_quote_id => okl_line_rec.termination_quote_id,
30448 p_term_quote_number => okl_line_rec.termination_quote_number,
30449 x_inv_item_id_prev => x_inv_item_id_prev,
30450 p_cle_id => p_cle_id,
30451 x_cle_id => x_cle_id,
30452 x_sub_cle_id => x_sub_cle_id,
30453 p_new_line_flag => okl_line_rec.explicit_new_line_flag,
30454 p_pth_base_payout_basis => okl_line_rec.pth_base_payout_basis,
30455 p_pth_base_stream_code => okl_line_rec.pth_base_stream_code,
30456 p_pth_base_stream_purpose_code => okl_line_rec.pth_base_stream_purpose_code,
30457 p_pth_start_date => okl_line_rec.pth_start_date,
30458 p_pth_evg_payout_basis => okl_line_rec.pth_evg_payout_basis,
30459 p_pth_payout_basis_formula => okl_line_rec.pth_payout_basis_formula,
30460 p_pth_evg_stream_code => okl_line_rec.pth_evg_stream_code,
30461 p_pth_evg_stream_purpose_code => okl_line_rec.pth_evg_stream_purpose_code,
30462 p_fee_purpose_code => okl_line_rec.fee_purpose_code
30463 );
30464
30465 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30466 x_return_status := OKL_API.G_RET_STS_ERROR;
30467 RAISE load_failed;
30468 END IF;
30469
30470 l_fee_line_id := x_cle_id;
30471 IF (x_cle_id = p_cle_id) THEN -- No New Top Line Created, don't create rule against this line
30472 l_rule_create_flag := 'N';
30473 ELSE
30474 l_rule_create_flag := 'Y';
30475 END IF;
30476
30477 debug_message('------>FEE line created');
30478 p_line_type_prev := okl_line_rec.line_type;
30479 p_inv_item_id_prev := x_inv_item_id_prev;
30480 p_cle_id := x_cle_id;
30481
30482
30483 ELSIF (okl_line_rec.line_type = 'USAGE') THEN
30484 process_other_line(
30485 x_return_status => x_return_status,
30486 x_msg_count => x_msg_count,
30487 x_msg_data => x_msg_data,
30488 p_contract_number => okl_header_rec.contract_number_old,
30489 p_chr_id => x_chrv_rec.id,
30490 p_line_number => okl_line_rec.line_number,
30491 p_line_type => okl_line_rec.line_type,
30492 p_line_type_prev => p_line_type_prev,
30493 p_inv_item_id => okl_line_rec.inventory_item_id,
30494 p_inv_org_id => x_chrv_rec.inv_organization_id,
30495 --okl_line_rec.inventory_organization_id,
30496 p_line_amount => okl_line_rec.amount,
30497 p_link_asset_amount => okl_line_rec.link_asset_amount,
30498 p_init_direct_cost => okl_line_rec.initial_direct_cost,
30499 p_fee_code => okl_line_rec.fee_code,
30500 p_stream_purpose => okl_line_rec.stream_purpose_code,
30501 p_fee_type => NULL,
30502 p_asset_number => okl_line_rec.asset_number,
30503 p_currency_code => okl_header_rec.currency_code,
30504 p_usage_item_name => okl_line_rec.usage_item_name,
30505 p_usage_item_id => okl_line_rec.usage_item_id,
30506 p_header_start_date => NVL(okl_header_rec.start_date,l_header_template.start_date),
30507 p_header_end_date => x_chrv_rec.end_date,
30508 p_line_start_date => okl_line_rec.start_date,
30509 p_line_end_date => okl_line_rec.end_date,
30510 p_inv_item_id_prev => p_inv_item_id_prev,
30511 p_term_quote_id => NULL,
30512 p_term_quote_number => NULL,
30513 x_inv_item_id_prev => x_inv_item_id_prev,
30514 p_cle_id => p_cle_id,
30515 x_cle_id => x_cle_id,
30516 x_sub_cle_id => x_sub_cle_id,
30517 p_new_line_flag => okl_line_rec.explicit_new_line_flag,
30518 p_pth_base_payout_basis => NULL,
30519 p_pth_base_stream_code => NULL,
30520 p_pth_base_stream_purpose_code => NULL,
30521 p_pth_start_date => NULL,
30522 p_pth_evg_payout_basis => NULL,
30523 p_pth_payout_basis_formula => NULL,
30524 p_pth_evg_stream_code => NULL,
30525 p_pth_evg_stream_purpose_code => NULL,
30526 p_fee_purpose_code => okl_line_rec.fee_purpose_code
30527 );
30528
30529 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30530 x_return_status := OKL_API.G_RET_STS_ERROR;
30531 RAISE load_failed;
30532 END IF;
30533
30534 l_usage_line_id := x_cle_id;
30535
30536 IF (x_cle_id = p_cle_id) THEN -- No New Top Line Created, don't create rule against this line
30537 l_rule_create_flag := 'N';
30538 ELSE
30539 l_rule_create_flag := 'Y';
30540 END IF;
30541
30542 debug_message('USAGE line created');
30543 p_line_type_prev := okl_line_rec.line_type;
30544 p_inv_item_id_prev := x_inv_item_id_prev;
30545 p_cle_id := x_cle_id;
30546
30547 END IF; -- line type
30548
30549 l_progress := '110';
30550
30551 IF (l_rule_create_flag = 'Y') THEN
30552 debug_message('------>Line rule started');
30553 create_line_rules(
30554 x_return_status => x_return_status,
30555 x_msg_count => x_msg_count,
30556 x_msg_data => x_msg_data,
30557 p_chr_id => x_chrv_rec.id,
30558 p_cle_id => x_cle_id,
30559 p_contract_number => okl_header_rec.contract_number_old,
30560 p_line_number => okl_line_rec.line_number,
30561 p_line_type => okl_line_rec.line_type,
30562 p_inv_org_id => x_inventory_org_id,
30563 p_sales_tax_exempt_flag => okl_line_rec.sales_tax_exempt_flag,
30564 p_sales_tax_exempt_cert_number => okl_line_rec.sales_tax_exempt_cert_number,
30565 p_sales_tax_override_flag => okl_line_rec.sales_tax_override_flag,
30566 p_sales_tax_override_rate => okl_line_rec.sales_tax_override_rate,
30567 p_st_upd_lines_from_contract => okl_line_rec.st_update_lines_from_contract,
30568 p_st_transfer_of_title => okl_line_rec.st_transfer_of_title,
30569 p_st_sale_and_lease_back => okl_line_rec.st_sale_and_lease_back,
30570 p_st_purchase_of_lease => okl_line_rec.st_purchase_of_lease,
30571 p_st_equipment_usage => okl_line_rec.st_equipment_usage,
30572 p_st_equipment_age => okl_line_rec.st_equipment_age,
30573 p_st_asset_upfront_tax => okl_line_rec.st_asset_upfront_tax,
30574 p_vat_tax_exempt => okl_line_rec.vat_tax_exempt,
30575 p_vat_tax_exempt_cert_number => okl_line_rec.vat_tax_exempt_cert_number,
30576 p_vat_tax_override_flag => okl_line_rec.vat_tax_override_flag,
30577 p_vat_tax_override_rate => okl_line_rec.vat_tax_override_rate,
30578 p_lien_type => okl_line_rec.lien_type,
30579 p_lien_filing_number => okl_line_rec.lien_filing_number,
30580 p_lien_filing_date => okl_line_rec.lien_filing_date,
30581 p_lien_filing_status => okl_line_rec.lien_filing_status,
30582 p_lienholder_id => okl_line_rec.lienholder_id,
30583 p_lienholder_number => okl_line_rec.lienholder_number,
30584 p_filing_jurisdiction => okl_line_rec.filing_jurisdiction,
30585 p_filing_sub_jurisdiction => okl_line_rec.filing_sub_jurisdiction,
30586 p_lien_expiration_date => okl_line_rec.lien_expiration_date,
30587 p_lien_continuation_number => okl_line_rec.lien_continuation_number,
30588 p_lien_continuation_date => okl_line_rec.lien_continuation_date,
30589 p_title_type => okl_line_rec.title_type,
30590 p_title_issuer_number => okl_line_rec.title_issuer_number,
30591 p_title_issuer_id => okl_line_rec.title_issuer_id,
30592 p_title_date => okl_line_rec.title_date,
30593 p_title_number => okl_line_rec.title_number,
30594 p_registration_number => okl_line_rec.registration_number,
30595 p_asset_registration_loc_name => okl_line_rec.asset_registration_loc_name,
30596 p_title_custodian_name => okl_line_rec.title_custodian_name,
30597 p_payee_site_name => okl_line_rec.payee_site_name,
30598 p_passthrough_percent => okl_line_rec.passthrough_percent,
30599 p_passthrough_basis_code => okl_line_rec.passthrough_basis_code,
30600 p_fee_code => okl_line_rec.fee_code,
30601 p_stream_purpose => okl_line_rec.stream_purpose_code,
30602 p_usage_item_name => okl_line_rec.usage_item_name,
30603 p_usage_item_id => okl_line_rec.usage_item_id,
30604 p_price_list_name => okl_line_rec.price_list_name,
30605 p_price_list_id => okl_line_rec.price_list_id,
30606 p_minimum_qty_usage => okl_line_rec.minimum_qty_usage,
30607 p_default_qty_usage => okl_line_rec.default_qty_usage,
30608 p_amcv_flag => okl_line_rec.amcv_flag,
30609 p_level_flag => okl_line_rec.level_flag,
30610 p_base_reading => okl_line_rec.base_reading,
30611 p_base_reading_uom_code => okl_line_rec.base_reading_uom_code,
30612 p_usage_type_code => okl_line_rec.usage_type_code,
30613 p_fixed_usage_quantity => okl_line_rec.fixed_usage_quantity,
30614 p_usage_period => okl_line_rec.usage_period,
30615 p_usage_no_of_period => okl_line_rec.usage_no_of_period,
30616 p_fee_no_of_period => okl_line_rec.fee_exp_no_of_periods,
30617 p_fee_frequency => okl_line_rec.fee_exp_frequency,
30618 p_fee_amount_per_period => okl_line_rec.fee_exp_amount_per_period,
30619 p_prop_tax_applicable => okl_line_rec.prop_tax_applicable,
30620 p_prop_tax_lease_rep => okl_line_rec.prop_tax_lease_rep,
30621 p_french_tax_code => okl_line_rec.french_tax_code,
30622 p_french_tax_name => okl_line_rec.french_tax_name,
30623 -- Added by rravikir (Fix for Bug 3947959)
30624 p_prop_tax_bill_method => okl_line_rec.prop_tax_bill_method,
30625 p_prop_tax_as_contract_yn => okl_line_rec.prop_tax_as_contract_yn
30626 -- End
30627 );
30628
30629 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30630 x_return_status := OKL_API.G_RET_STS_ERROR;
30631 raise load_failed;
30632 END IF;
30633
30634 debug_message('------>Line rule complete');
30635 END IF; -- l_rule_create_flag
30636
30637 l_progress := '120';
30638
30639 FOR okl_party_rec IN okl_party_csr (okl_header_rec.contract_number_old,
30640 okl_line_rec.line_number)
30641 LOOP
30642 BEGIN --3
30643 l_progress := '130';
30644
30645 debug_message('------>Party role: '||okl_line_rec.line_type||','||okl_line_rec.line_number);
30646
30647 IF (l_rule_create_flag = 'Y') THEN -- create role only for top line
30648 process_party_role(
30649 x_return_status => x_return_status,
30650 x_msg_count => x_msg_count,
30651 x_msg_data => x_msg_data,
30652 p_contract_number => okl_header_rec.contract_number_old,
30653 p_chr_id => x_chrv_rec.id,
30654 p_auth_org_id => okl_header_rec.authoring_org_id,
30655 p_line_number => okl_line_rec.line_number,
30656 p_line_type => okl_line_rec.line_type,
30657 p_fin_cle_id => x_clev_fin_rec.id,
30658 p_model_cle_id => x_clev_model_rec.id,
30659 p_service_line_id => l_service_line_id,
30660 p_fee_line_id => l_fee_line_id,
30661 p_usage_line_id => l_usage_line_id,
30662 p_asset_vendor_name => okl_party_rec.asset_vendor_name,
30663 p_asset_vendor_id => okl_party_rec.asset_vendor_id,
30664 p_service_vendor_name => okl_party_rec.service_vendor_name,
30665 p_service_vendor_id => okl_party_rec.service_vendor_id,
30666 p_fees_vendor_name => okl_party_rec.fees_vendor_name,
30667 p_fees_vendor_id => okl_party_rec.fees_vendor_id,
30668 p_guarantor_number => okl_party_rec.guarantor_number,
30669 p_guarantor_id => okl_party_rec.guarantor_id,
30670 p_dealer_name => okl_party_rec.dealer_name,
30671 p_dealer_id => okl_party_rec.dealer_id,
30672 p_guarantor_type => okl_party_rec.guarantor_type,
30673 p_guarantee_type => okl_party_rec.guarantee_type,
30674 p_guaranteed_amount => okl_party_rec.guaranteed_amount,
30675 p_guarantee_date => okl_party_rec.guarantee_date,
30676 p_guarantee_comment => okl_party_rec.guarantee_comment,
30677 p_guarantor_site_number => okl_party_rec.guarantor_site_number,
30678 p_guarantor_site_id => okl_party_rec.guarantor_site_id,
30679 p_payment_term => okl_line_rec.payment_term,
30680 p_payment_term_id => okl_line_rec.payment_term_id,
30681 p_vendor_paysite_id => okl_line_rec.vendor_paysite_id,
30682 p_vendor_paysite_name => okl_line_rec.vendor_paysite_name,
30683 p_vendor_payment_method => okl_line_rec.vendor_payment_method,
30684 p_passthrough_percent => okl_line_rec.passthrough_percent,
30685 p_passthrough_basis_code => okl_line_rec.passthrough_basis_code,
30686 p_billable_vendor_id => NULL,
30687 p_billable_vendor_name => NULL,
30688 p_vend_as_customer_number => NULL,
30689 p_vend_as_customer_id => NULL,
30690 p_vend_as_cust_acc_id => NULL,
30691 p_vend_as_cust_acc_number => NULL,
30692 p_vend_bill_to_addr_id => NULL,
30693 p_vend_bill_to_addr => NULL,
30694 p_vend_payment_method_id => NULL,
30695 p_vend_payment_method => NULL,
30696 p_vend_bank_acc_id => NULL,
30697 p_vend_bank_acc_number => NULL,
30698 p_vend_invoice_format_id => NULL,
30699 p_vend_invoice_format_code => NULL,
30700 p_vend_review_invoice_flag => NULL,
30701 p_vend_reason_for_inv_review => NULL,
30702 p_vend_inv_review_until_date => NULL,
30703 p_pth_base_vendor_site_code => okl_party_rec.pth_base_vendor_site_code,
30704 p_pth_base_vendor_site_id => okl_party_rec.pth_base_vendor_site_id,
30705 p_pth_base_paygroup_code => okl_party_rec.pth_base_paygroup_code,
30706 p_pth_base_pmnt_term_code => okl_party_rec.pth_base_pmnt_term_code,
30707 p_pth_base_pmnt_term_id => okl_party_rec.pth_base_pmnt_term_id,
30708 p_pth_base_pmnt_basis => okl_party_rec.pth_base_pmnt_basis,
30709 p_pth_base_pmnt_start_date => okl_party_rec.pth_base_pmnt_start_date,
30710 p_pth_base_pmnt_method_code => okl_party_rec.pth_base_pmnt_method_code,
30711 p_pth_base_pmnt_freq => okl_party_rec.pth_base_pmnt_freq,
30712 p_pth_base_pmnt_remit_days => okl_party_rec.pth_base_pmnt_remit_days,
30713 p_pth_base_disb_basis => okl_party_rec.pth_base_disb_basis,
30714 p_pth_base_disb_fixed_amount => okl_party_rec.pth_base_disb_fixed_amount,
30715 p_pth_base_disb_pct => okl_party_rec.pth_base_disb_pct,
30716 p_pth_base_proc_fee_basis => okl_party_rec.pth_base_proc_fee_basis,
30717 p_pth_base_proc_fee_fixed_amt => okl_party_rec.pth_base_proc_fee_fixed_amt,
30718 p_pth_base_proc_pct => okl_party_rec.pth_base_proc_pct,
30719 p_pth_evg_vendor_site_code => okl_party_rec.pth_evg_vendor_site_code,
30720 p_pth_evg_vendor_site_id => okl_party_rec.pth_evg_vendor_site_id,
30721 p_pth_evg_paygroup_code => okl_party_rec.pth_evg_paygroup_code,
30722 p_pth_evg_pmnt_term_code => okl_party_rec.pth_evg_pmnt_term_code,
30723 p_pth_evg_pmnt_term_id => okl_party_rec.pth_evg_pmnt_term_id,
30724 p_pth_evg_pmnt_basis => okl_party_rec.pth_evg_pmnt_basis,
30725 p_pth_evg_pmnt_start_date => okl_party_rec.pth_evg_pmnt_start_date,
30726 p_pth_evg_pmnt_method_code => okl_party_rec.pth_evg_pmnt_method_code,
30727 p_pth_evg_pmnt_freq => okl_party_rec.pth_evg_pmnt_freq,
30728 p_pth_evg_pmnt_remit_days => okl_party_rec.pth_evg_pmnt_remit_days,
30729 p_pth_evg_disb_basis => okl_party_rec.pth_evg_disb_basis,
30730 p_pth_evg_disb_fixed_amount => okl_party_rec.pth_evg_disb_fixed_amount,
30731 p_pth_evg_disb_pct => okl_party_rec.pth_evg_disb_pct,
30732 p_pth_evg_proc_fee_basis => okl_party_rec.pth_evg_proc_fee_basis,
30733 p_pth_evg_proc_fee_fixed_amt => okl_party_rec.pth_evg_proc_fee_fixed_amt,
30734 p_pth_evg_proc_pct => okl_party_rec.pth_evg_proc_pct,
30735 p_attribute_category => okl_party_rec.attribute_category,
30736 p_attribute1 => okl_party_rec.attribute1,
30737 p_attribute2 => okl_party_rec.attribute2,
30738 p_attribute3 => okl_party_rec.attribute3,
30739 p_attribute4 => okl_party_rec.attribute4,
30740 p_attribute5 => okl_party_rec.attribute5,
30741 p_attribute6 => okl_party_rec.attribute6,
30742 p_attribute7 => okl_party_rec.attribute7,
30743 p_attribute8 => okl_party_rec.attribute8,
30744 p_attribute9 => okl_party_rec.attribute9,
30745 p_attribute10 => okl_party_rec.attribute10,
30746 p_attribute11 => okl_party_rec.attribute11,
30747 p_attribute12 => okl_party_rec.attribute12,
30748 p_attribute13 => okl_party_rec.attribute13,
30749 p_attribute14 => okl_party_rec.attribute14,
30750 p_attribute15 => okl_party_rec.attribute15
30751 );
30752
30753 debug_message('------>Party Role Status: '||x_return_status);
30754
30755 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30756 RAISE load_failed;
30757 END IF;
30758 END IF; --rule create
30759 l_progress := '140';
30760
30761 END; --3 party begin
30762
30763 END LOOP; --party role
30764
30765 FOR okl_term_rec IN okl_term_csr (okl_header_rec.contract_number_old,
30766 okl_line_rec.line_number)
30767 LOOP
30768 BEGIN --4
30769 --Bug# 6006332 : Procces_term should be called only for top line and only once
30770 IF (l_rule_create_flag = 'Y') THEN
30771 l_progress := '150';
30772
30773 IF (okl_header_rec.import_request_stage <> 'NEW'
30774 AND
30775 okl_term_rec.bill_to_address_id IS NULL
30776 AND
30777 okl_term_rec.bill_to_address IS NULL) THEN
30778
30779 okl_api.set_message(
30780 G_APP_NAME,
30781 G_MISSING_VALUE,
30782 'CONTRACT_NUM',
30783 okl_term_rec.contract_number_old||'/'||okl_term_rec.line_number,
30784 'COL_NAME',
30785 'BILL_TO_ADDRESS'
30786 );
30787
30788 x_return_status := OKL_API.G_RET_STS_ERROR;
30789 RAISE load_failed;
30790 END IF;
30791
30792 debug_message('------>Process term');
30793 process_term(
30794 x_return_status => x_return_status,
30795 x_msg_count => x_msg_count,
30796 x_msg_data => x_msg_data,
30797 p_contract_number => okl_header_rec.contract_number_old,
30798 p_chr_id => x_chrv_rec.id,
30799 p_auth_org_id => okl_header_rec.authoring_org_id,
30800 p_line_number => okl_line_rec.line_number,
30801 p_line_type => okl_line_rec.line_type,
30802 p_cle_id => x_cle_id,
30803 p_bill_to_address_id => okl_term_rec.bill_to_address_id,
30804 p_bill_to_address => okl_term_rec.bill_to_address,
30805 p_bank_account_id => okl_term_rec.bank_account_id,
30806 p_bank_account_number => okl_term_rec.bank_account_number,
30807 p_reason_for_invoice_review => okl_term_rec.reason_for_invoice_review,
30808 p_invoice_review_until_date => okl_term_rec.invoice_review_until_date,
30809 p_invoice_format_id => okl_term_rec.invoice_format_id,
30810 p_invoice_format_code => okl_term_rec.invoice_format_code,
30811 p_review_invoice_flag => okl_term_rec.review_invoice_flag,
30812 p_payment_method_id => okl_term_rec.payment_method_id,
30813 p_payment_method => okl_term_rec.payment_method,
30814 p_prescribed_asset_flag => okl_term_rec.prescribed_asset_flag,
30815 p_cash_appl_rule_name => okl_term_rec.cash_appl_rule_name
30816 );
30817
30818 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30819 RAISE load_failed;
30820 END IF;
30821
30822 l_progress := '160';
30823 END IF; -- Bug# 6006332
30824 END; --4 terms
30825
30826 END LOOP; --terms
30827
30828 -- Process Payments Interface Record, if any
30829 l_contract_number_old_prev := 'INITIAL';
30830 l_line_number_prev := -999999999;
30831 l_payment_type_code_prev := 'INITIAL';
30832 l_pmnt_sch_num_prev := -999999999;
30833 l_start_date_prev := NULL;
30834 l_number_of_periods_prev := -999999999;
30835 l_rg_id := NULL;
30836 --abhsaxen 13-Feb-2008 bug#6773219 added this if condition to prevent
30837 --processing Non Rent records like ESTIMATED PERSONAL PROPERTY TAX twice for the same
30838 --asset with the same corporate book but with a different tax book. Otherwise the
30839 --ESTIMATED PERSONAL PROPERTY TAX payment lines is shown multiple times after
30840 --contract is imported.
30841
30842 IF (okl_line_rec.asset_number = l_prev_asset_number
30843 AND
30844 okl_line_rec.asset_corporate_book = l_prev_corp_book )
30845 THEN
30846 NULL; --dont process the records for the same asset twice
30847 ELSE
30848
30849 FOR okl_payment_rec IN okl_payment_csr(okl_header_rec.contract_number_old,
30850 okl_line_rec.line_number)
30851 LOOP
30852 BEGIN --5
30853
30854 check_payment_record(
30855 x_return_status => x_return_status,
30856 x_msg_count => x_msg_count,
30857 x_msg_data => x_msg_data,
30858 p_contract_number_old => okl_payment_rec.contract_number_old,
30859 p_line_number => okl_payment_rec.line_number,
30860 p_asset_number => okl_payment_rec.asset_number,
30861 p_payment_type_code => okl_payment_rec.payment_type_code,
30862 p_stream_purpose => okl_payment_rec.stream_purpose_code,
30863 p_payment_schedule_number => okl_payment_rec.payment_schedule_number,
30864 p_payment_frequency_code => okl_payment_rec.payment_frequency_code,
30865 p_arrears_flag => okl_payment_rec.arrears_flag,
30866 p_advance_payments => okl_payment_rec.advance_payments,
30867 p_payment_amount => okl_payment_rec.payment_amount,
30868 p_start_date => okl_payment_rec.start_date,
30869 p_number_of_periods => okl_payment_rec.number_of_periods,
30870 p_rate => okl_payment_rec.rate,
30871 p_comments => okl_payment_rec.comments,
30872 p_stub_days => okl_payment_rec.stub_days,
30873 p_stub_amount => okl_payment_rec.stub_amount
30874 );
30875
30876 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30877 RAISE load_failed;
30878 END IF;
30879
30880 IF (l_contract_number_old_prev <> okl_payment_rec.contract_number_old -- prev checking
30881 OR
30882 l_line_number_prev <> okl_payment_rec.line_number
30883 OR
30884 l_payment_type_code_prev <> okl_payment_rec.payment_type_code) THEN
30885
30886 IF (l_line_number_prev <> okl_payment_rec.line_number) THEN -- for new line create rule group
30887 l_rg_id := NULL;
30888 END IF;
30889
30890 --do all
30891 -- Bug# 3110155
30892 -- Check for SERVICE and FEE line whether to attach
30893 -- payments at TOP or SUB lines
30894 --
30895 check_payment_level(
30896 x_return_status => x_return_status,
30897 x_msg_count => x_msg_count,
30898 x_msg_data => x_msg_data,
30899 p_contract_number => okl_header_rec.contract_number_old,
30900 p_line_number => okl_line_rec.line_number,
30901 x_payment_level => l_payment_level
30902 );
30903
30904 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30905 RAISE load_failed;
30906 END IF;
30907
30908 IF (l_payment_level = 'SUB') THEN -- attach payment at sub-line
30909 l_pmnt_line_id := x_sub_cle_id;
30910 ELSE -- attach payment at top-line
30911 l_pmnt_line_id := x_cle_id;
30912 END IF;
30913
30914 create_payment_rule_group(
30915 x_return_status => x_return_status,
30916 x_msg_count => x_msg_count,
30917 x_msg_data => x_msg_data,
30918 p_contract_number => okl_header_rec.contract_number_old,
30919 p_line_number => okl_line_rec.line_number,
30920 p_payment_type_code => okl_payment_rec.payment_type_code,
30921 p_stream_purpose => okl_payment_rec.stream_purpose_code,
30922 p_chr_id => x_chrv_rec.id,
30923 p_cle_id => l_pmnt_line_id,
30924 p_rg_id => l_rg_id,
30925 x_rgp_id => x_rgp_id,
30926 x_slh_rulv_rec => x_slh_rulv_rec
30927 );
30928
30929 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30930 RAISE load_failed;
30931 END IF;
30932
30933 ELSE
30934 l_progress := '170';
30935
30936 -- Some more validation on Payment Lines
30937 IF (okl_payment_rec.payment_schedule_number <= l_pmnt_sch_num_prev) THEN
30938 debug_message('First check error...');
30939 okl_api.set_message(
30940 G_APP_NAME,
30941 G_PAYMENT_SCHD_ERROR,
30942 'COL_VALUE',
30943 okl_payment_rec.payment_schedule_number,
30944 'CONTRACT_NUM',
30945 okl_header_rec.contract_number_old||'/'||okl_payment_rec.line_number
30946 );
30947 x_return_status := OKL_API.G_RET_STS_ERROR;
30948 RAISE load_failed;
30949 END IF;
30950
30951 check_payment_frequency_code(
30952 x_return_status => x_return_status,
30953 x_msg_count => x_msg_count,
30954 x_msg_data => x_msg_data,
30955 p_payment_freq_code => okl_payment_rec.payment_frequency_code,
30956 x_id1 => x_pmnt_freq_id,
30957 x_uom_code => x_uom_code
30958 );
30959
30960 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
30961 okl_api.set_message(
30962 G_APP_NAME,
30963 G_INVALID_VALUE,
30964 'CONTRACT_NUM',
30965 okl_payment_rec.contract_number_old||'/'||okl_payment_rec.line_number,
30966 'COL_NAME',
30967 'PAYMENT_FREQUENCY_CODE',
30968 'COL_VALUE',
30969 okl_payment_rec.payment_frequency_code
30970 );
30971 RAISE load_failed;
30972 END IF;
30973
30974 IF (x_uom_code = 'M') THEN
30975 l_mult_factor := 1;
30976 ELSIF (x_uom_code = 'Q') THEN
30977 l_mult_factor := 3;
30978 ELSIF (x_uom_code = 'S') THEN
30979 l_mult_factor := 6;
30980 ELSIF (x_uom_code = 'A') THEN
30981 l_mult_factor := 12;
30982 ELSE
30983 okl_api.set_message(
30984 G_APP_NAME,
30985 G_UOM_SETUP_ERROR,
30986 'COL_VALUE',
30987 okl_payment_rec.payment_frequency_code
30988 );
30989 RAISE load_failed;
30990 END IF;
30991
30992
30993 l_current_start_date := add_months(l_start_date_prev, (l_number_of_periods_prev * l_mult_factor));
30994
30995 IF (TRUNC(l_current_start_date) <> TRUNC(okl_payment_rec.start_date)) THEN
30996 okl_api.set_message(
30997 G_APP_NAME,
30998 G_PAYMENT_START_DATE_ERROR,
30999 'CONTRACT_NUM',
31000 okl_payment_rec.contract_number_old||'/'||okl_payment_rec.line_number
31001 );
31002 RAISE load_failed;
31003 END IF;
31004
31005 END IF; --prev checking
31006
31007 IF (l_rg_id IS NULL) THEN
31008 l_rg_id := x_rgp_id;
31009 END IF;
31010
31011 -- Create other rules
31012 -- Keep a copy to compare with latest record
31013 create_payment_other_rules(
31014 x_return_status => x_return_status,
31015 x_msg_count => x_msg_count,
31016 x_msg_data => x_msg_data,
31017 p_contract_number => okl_header_rec.contract_number_old,
31018 p_line_number => okl_line_rec.line_number,
31019 p_payment_sch_number => okl_payment_rec.payment_schedule_number,
31020 p_payment_freq_code => okl_payment_rec.payment_frequency_code,
31021 p_arrears_flag => okl_payment_rec.arrears_flag,
31022 p_advance_payments => okl_payment_rec.advance_payments,
31023 p_payment_amount => okl_payment_rec.payment_amount,
31024 p_start_date => okl_payment_rec.start_date,
31025 p_number_of_periods => okl_payment_rec.number_of_periods,
31026 p_rate => okl_payment_rec.rate,
31027 p_comments => okl_payment_rec.comments,
31028 p_stub_days => okl_payment_rec.stub_days,
31029 p_stub_amount => okl_payment_rec.stub_amount,
31030 p_slh_rulv_rec => x_slh_rulv_rec,
31031 p_chr_id => x_chrv_rec.id,
31032 p_cle_id => x_cle_id,
31033 p_rgp_id => x_rgp_id
31034 );
31035
31036 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31037 RAISE load_failed;
31038 END IF;
31039
31040 l_progress := '180';
31041
31042 l_contract_number_old_prev := okl_payment_rec.contract_number_old;
31043 l_line_number_prev := okl_payment_rec.line_number;
31044 l_payment_type_code_prev := okl_payment_rec.payment_type_code;
31045 l_pmnt_sch_num_prev := okl_payment_rec.payment_schedule_number;
31046 l_start_date_prev := okl_payment_rec.start_date;
31047 l_number_of_periods_prev := okl_payment_rec.number_of_periods;
31048
31049 END; --5 Payment begin
31050
31051 END LOOP; -- Payment Loop
31052 END IF; --end if of abhsaxen 13-Feb-2008 bug#6773219
31053 END; --2 Line Begin
31054 --abhsaxen bug#6773219 13-Feb-2008
31055 -- reinitializing the following variables for comparison with the next line that follows
31056 l_prev_asset_number := okl_line_rec.asset_number;
31057 l_prev_corp_book := okl_line_rec.asset_corporate_book;
31058 l_prev_tax_book := okl_line_rec.tax_book;
31059 --abhsaxen end bug#6773219 13-Feb-2008
31060
31061 END LOOP; -- Line Loop
31062
31063 l_progress := '190';
31064
31065 -- Process party role once again at Header level
31066 FOR okl_party_rec IN okl_party_csr (okl_header_rec.contract_number_old,
31067 NULL)
31068 LOOP
31069 BEGIN --6
31070 l_progress := '200';
31071
31072 process_party_role(
31073 x_return_status => x_return_status,
31074 x_msg_count => x_msg_count,
31075 x_msg_data => x_msg_data,
31076 p_contract_number => okl_header_rec.contract_number_old,
31077 p_chr_id => x_chrv_rec.id,
31078 p_auth_org_id => okl_header_rec.authoring_org_id,
31079 p_line_number => NULL,
31080 p_line_type => NULL,
31081 p_fin_cle_id => NULL,
31082 p_model_cle_id => NULL,
31083 p_service_line_id => NULL,
31084 p_fee_line_id => NULL,
31085 p_usage_line_id => NULL,
31086 p_asset_vendor_name => okl_party_rec.asset_vendor_name,
31087 p_asset_vendor_id => okl_party_rec.asset_vendor_id,
31088 p_service_vendor_name => okl_party_rec.service_vendor_name,
31089 p_service_vendor_id => okl_party_rec.service_vendor_id,
31090 p_fees_vendor_name => okl_party_rec.fees_vendor_name,
31091 p_fees_vendor_id => okl_party_rec.fees_vendor_id,
31092 p_guarantor_number => okl_party_rec.guarantor_number,
31093 p_guarantor_id => okl_party_rec.guarantor_id,
31094 p_dealer_name => okl_party_rec.dealer_name,
31095 p_dealer_id => okl_party_rec.dealer_id,
31096 p_guarantor_type => okl_party_rec.guarantor_type,
31097 p_guarantee_type => okl_party_rec.guarantee_type,
31098 p_guaranteed_amount => okl_party_rec.guaranteed_amount,
31099 p_guarantee_date => okl_party_rec.guarantee_date,
31100 p_guarantee_comment => okl_party_rec.guarantee_comment,
31101 p_guarantor_site_number => okl_party_rec.guarantor_site_number,
31102 p_guarantor_site_id => okl_party_rec.guarantor_site_id,
31103 p_payment_term => NULL,
31104 p_payment_term_id => NULL,
31105 p_vendor_paysite_id => NULL,
31106 p_vendor_paysite_name => NULL,
31107 p_vendor_payment_method => NULL,
31108 p_passthrough_percent => NULL,
31109 p_passthrough_basis_code => NULL,
31110 p_billable_vendor_id => okl_party_rec.billable_vendor_id,
31111 p_billable_vendor_name => okl_party_rec.billable_vendor_name,
31112 p_vend_as_customer_number => okl_party_rec.vend_as_customer_number,
31113 p_vend_as_customer_id => okl_party_rec.vend_as_customer_id,
31114 p_vend_as_cust_acc_id => okl_party_rec.vend_as_customer_acc_id,
31115 p_vend_as_cust_acc_number => okl_party_rec.vend_as_customer_acc_number,
31116 p_vend_bill_to_addr_id => okl_party_rec.vend_bill_to_addr_id,
31117 p_vend_bill_to_addr => okl_party_rec.vend_bill_to_addr,
31118 p_vend_payment_method_id => okl_party_rec.vend_payment_method_id,
31119 p_vend_payment_method => okl_party_rec.vend_payment_method,
31120 p_vend_bank_acc_id => okl_party_rec.vend_bank_acc_id,
31121 p_vend_bank_acc_number => okl_party_rec.vend_bank_acc_number,
31122 p_vend_invoice_format_id => okl_party_rec.vend_invoice_format_id,
31123 p_vend_invoice_format_code => okl_party_rec.vend_invoice_format_code,
31124 p_vend_review_invoice_flag => okl_party_rec.vend_review_invoice_flag,
31125 p_vend_reason_for_inv_review => okl_party_rec.vend_reason_for_inv_review,
31126 p_vend_inv_review_until_date => okl_party_rec.vend_inv_review_until_date,
31127 p_pth_base_vendor_site_code => okl_party_rec.pth_base_vendor_site_code,
31128 p_pth_base_vendor_site_id => okl_party_rec.pth_base_vendor_site_id,
31129 p_pth_base_paygroup_code => okl_party_rec.pth_base_paygroup_code,
31130 p_pth_base_pmnt_term_code => okl_party_rec.pth_base_pmnt_term_code,
31131 p_pth_base_pmnt_term_id => okl_party_rec.pth_base_pmnt_term_id,
31132 p_pth_base_pmnt_basis => okl_party_rec.pth_base_pmnt_basis,
31133 p_pth_base_pmnt_start_date => okl_party_rec.pth_base_pmnt_start_date,
31134 p_pth_base_pmnt_method_code => okl_party_rec.pth_base_pmnt_method_code,
31135 p_pth_base_pmnt_freq => okl_party_rec.pth_base_pmnt_freq,
31136 p_pth_base_pmnt_remit_days => okl_party_rec.pth_base_pmnt_remit_days,
31137 p_pth_base_disb_basis => okl_party_rec.pth_base_disb_basis,
31138 p_pth_base_disb_fixed_amount => okl_party_rec.pth_base_disb_fixed_amount,
31139 p_pth_base_disb_pct => okl_party_rec.pth_base_disb_pct,
31140 p_pth_base_proc_fee_basis => okl_party_rec.pth_base_proc_fee_basis,
31141 p_pth_base_proc_fee_fixed_amt => okl_party_rec.pth_base_proc_fee_fixed_amt,
31142 p_pth_base_proc_pct => okl_party_rec.pth_base_proc_pct,
31143 p_pth_evg_vendor_site_code => okl_party_rec.pth_evg_vendor_site_code,
31144 p_pth_evg_vendor_site_id => okl_party_rec.pth_evg_vendor_site_id,
31145 p_pth_evg_paygroup_code => okl_party_rec.pth_evg_paygroup_code,
31146 p_pth_evg_pmnt_term_code => okl_party_rec.pth_evg_pmnt_term_code,
31147 p_pth_evg_pmnt_term_id => okl_party_rec.pth_evg_pmnt_term_id,
31148 p_pth_evg_pmnt_basis => okl_party_rec.pth_evg_pmnt_basis,
31149 p_pth_evg_pmnt_start_date => okl_party_rec.pth_evg_pmnt_start_date,
31150 p_pth_evg_pmnt_method_code => okl_party_rec.pth_evg_pmnt_method_code,
31151 p_pth_evg_pmnt_freq => okl_party_rec.pth_evg_pmnt_freq,
31152 p_pth_evg_pmnt_remit_days => okl_party_rec.pth_evg_pmnt_remit_days,
31153 p_pth_evg_disb_basis => okl_party_rec.pth_evg_disb_basis,
31154 p_pth_evg_disb_fixed_amount => okl_party_rec.pth_evg_disb_fixed_amount,
31155 p_pth_evg_disb_pct => okl_party_rec.pth_evg_disb_pct,
31156 p_pth_evg_proc_fee_basis => okl_party_rec.pth_evg_proc_fee_basis,
31157 p_pth_evg_proc_fee_fixed_amt => okl_party_rec.pth_evg_proc_fee_fixed_amt,
31158 p_pth_evg_proc_pct => okl_party_rec.pth_evg_proc_pct,
31159 p_attribute_category => okl_party_rec.attribute_category,
31160 p_attribute1 => okl_party_rec.attribute1,
31161 p_attribute2 => okl_party_rec.attribute2,
31162 p_attribute3 => okl_party_rec.attribute3,
31163 p_attribute4 => okl_party_rec.attribute4,
31164 p_attribute5 => okl_party_rec.attribute5,
31165 p_attribute6 => okl_party_rec.attribute6,
31166 p_attribute7 => okl_party_rec.attribute7,
31167 p_attribute8 => okl_party_rec.attribute8,
31168 p_attribute9 => okl_party_rec.attribute9,
31169 p_attribute10 => okl_party_rec.attribute10,
31170 p_attribute11 => okl_party_rec.attribute11,
31171 p_attribute12 => okl_party_rec.attribute12,
31172 p_attribute13 => okl_party_rec.attribute13,
31173 p_attribute14 => okl_party_rec.attribute14,
31174 p_attribute15 => okl_party_rec.attribute15
31175 );
31176
31177 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31178 RAISE load_failed;
31179 END IF;
31180
31181 l_progress := '210';
31182
31183 END; --6 party header begin
31184
31185 END LOOP; --party role header
31186
31187 -- Process Payments Interface Record once again at header level
31188 l_contract_number_old_prev := 'INITIAL';
31189 --l_line_number_prev := -999999999;
31190 l_payment_type_code_prev := 'INITIAL';
31191 l_pmnt_sch_num_prev := -999999999;
31192 l_start_date_prev := NULL;
31193 l_number_of_periods_prev := -999999999;
31194 l_rg_id := NULL;
31195
31196 FOR okl_payment_rec IN okl_payment_csr(okl_header_rec.contract_number_old,
31197 NULL)
31198 LOOP
31199 BEGIN --5
31200
31201 check_payment_record(
31202 x_return_status => x_return_status,
31203 x_msg_count => x_msg_count,
31204 x_msg_data => x_msg_data,
31205 p_contract_number_old => okl_payment_rec.contract_number_old,
31206 p_line_number => NULL,
31207 p_asset_number => okl_payment_rec.asset_number,
31208 p_payment_type_code => okl_payment_rec.payment_type_code,
31209 p_stream_purpose => okl_payment_rec.stream_purpose_code,
31210 p_payment_schedule_number => okl_payment_rec.payment_schedule_number,
31211 p_payment_frequency_code => okl_payment_rec.payment_frequency_code,
31212 p_arrears_flag => okl_payment_rec.arrears_flag,
31213 p_advance_payments => okl_payment_rec.advance_payments,
31214 p_payment_amount => okl_payment_rec.payment_amount,
31215 p_start_date => okl_payment_rec.start_date,
31216 p_number_of_periods => okl_payment_rec.number_of_periods,
31217 p_rate => okl_payment_rec.rate,
31218 p_comments => okl_payment_rec.comments,
31219 p_stub_days => okl_payment_rec.stub_days,
31220 p_stub_amount => okl_payment_rec.stub_amount
31221 );
31222
31223 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31224 RAISE load_failed;
31225 END IF;
31226
31227 IF (l_contract_number_old_prev <> okl_payment_rec.contract_number_old -- prev checking
31228 OR
31229 l_payment_type_code_prev <> okl_payment_rec.payment_type_code) THEN
31230
31231 --do all
31232 create_payment_rule_group(
31233 x_return_status => x_return_status,
31234 x_msg_count => x_msg_count,
31235 x_msg_data => x_msg_data,
31236 p_contract_number => okl_header_rec.contract_number_old,
31237 p_line_number => NULL,
31238 p_payment_type_code => okl_payment_rec.payment_type_code,
31239 p_stream_purpose => okl_payment_rec.stream_purpose_code,
31240 p_chr_id => x_chrv_rec.id,
31241 p_cle_id => NULL,
31242 p_rg_id => l_rg_id,
31243 x_rgp_id => x_rgp_id,
31244 x_slh_rulv_rec => x_slh_rulv_rec
31245 );
31246
31247 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31248 RAISE load_failed;
31249 END IF;
31250
31251 l_rg_id := x_rgp_id;
31252
31253 ELSE
31254 l_progress := '170';
31255
31256 -- Some more validation on Payment Lines
31257 IF (okl_payment_rec.payment_schedule_number <= l_pmnt_sch_num_prev) THEN
31258 debug_message('Second check error...');
31259 okl_api.set_message(
31260 G_APP_NAME,
31261 G_PAYMENT_SCHD_ERROR,
31262 'COL_VALUE',
31263 okl_payment_rec.payment_schedule_number,
31264 'CONTRACT_NUM',
31265 okl_header_rec.contract_number_old||'/'||okl_payment_rec.line_number
31266 );
31267 x_return_status := OKL_API.G_RET_STS_ERROR;
31268 RAISE load_failed;
31269 END IF;
31270
31271 check_payment_frequency_code(
31272 x_return_status => x_return_status,
31273 x_msg_count => x_msg_count,
31274 x_msg_data => x_msg_data,
31275 p_payment_freq_code => okl_payment_rec.payment_frequency_code,
31276 x_id1 => x_pmnt_freq_id,
31277 x_uom_code => x_uom_code
31278 );
31279
31280 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31281 okl_api.set_message(
31282 G_APP_NAME,
31283 G_INVALID_VALUE,
31284 'CONTRACT_NUM',
31285 okl_payment_rec.contract_number_old||'/'||okl_payment_rec.line_number,
31286 'COL_NAME',
31287 'PAYMENT_FREQUENCY_CODE',
31288 'COL_VALUE',
31289 okl_payment_rec.payment_frequency_code
31290 );
31291 RAISE load_failed;
31292 END IF;
31293
31294 IF (x_uom_code = 'M') THEN
31295 l_mult_factor := 1;
31296 ELSIF (x_uom_code = 'Q') THEN
31297 l_mult_factor := 3;
31298 ELSIF (x_uom_code = 'S') THEN
31299 l_mult_factor := 6;
31300 ELSIF (x_uom_code = 'A') THEN
31301 l_mult_factor := 12;
31302 ELSE
31303 okl_api.set_message(
31304 G_APP_NAME,
31305 G_UOM_SETUP_ERROR,
31306 'COL_VALUE',
31307 okl_payment_rec.payment_frequency_code
31308 );
31309 RAISE load_failed;
31310 END IF;
31311
31312
31313 l_current_start_date := add_months(l_start_date_prev, (l_number_of_periods_prev * l_mult_factor));
31314
31315 IF (TRUNC(l_current_start_date) <> TRUNC(okl_payment_rec.start_date)) THEN
31316 okl_api.set_message(
31317 G_APP_NAME,
31318 G_PAYMENT_START_DATE_ERROR,
31319 'CONTRACT_NUM',
31320 okl_payment_rec.contract_number_old||'/'||okl_payment_rec.line_number
31321 );
31322 RAISE load_failed;
31323 END IF;
31324
31325 END IF; --prev checking
31326
31327 --IF (l_rg_id IS NULL) THEN
31328 -- l_rg_id := x_rgp_id;
31329 --END IF;
31330
31331 -- Create other rules
31332 -- Keep a copy to compare with latest record
31333 create_payment_other_rules(
31334 x_return_status => x_return_status,
31335 x_msg_count => x_msg_count,
31336 x_msg_data => x_msg_data,
31337 p_contract_number => okl_header_rec.contract_number_old,
31338 p_line_number => NULL,
31339 p_payment_sch_number => okl_payment_rec.payment_schedule_number,
31340 p_payment_freq_code => okl_payment_rec.payment_frequency_code,
31341 p_arrears_flag => okl_payment_rec.arrears_flag,
31342 p_advance_payments => okl_payment_rec.advance_payments,
31343 p_payment_amount => okl_payment_rec.payment_amount,
31344 p_start_date => okl_payment_rec.start_date,
31345 p_number_of_periods => okl_payment_rec.number_of_periods,
31346 p_rate => okl_payment_rec.rate,
31347 p_comments => okl_payment_rec.comments,
31348 p_stub_days => okl_payment_rec.stub_days,
31349 p_stub_amount => okl_payment_rec.stub_amount,
31350 p_slh_rulv_rec => x_slh_rulv_rec,
31351 p_chr_id => x_chrv_rec.id,
31352 p_cle_id => NULL,
31353 p_rgp_id => l_rg_id
31354 );
31355
31356 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31357 RAISE load_failed;
31358 END IF;
31359
31360 l_progress := '180';
31361
31362 l_contract_number_old_prev := okl_payment_rec.contract_number_old;
31363 --l_line_number_prev := okl_payment_rec.line_number;
31364 l_payment_type_code_prev := okl_payment_rec.payment_type_code;
31365 l_pmnt_sch_num_prev := okl_payment_rec.payment_schedule_number;
31366 l_start_date_prev := okl_payment_rec.start_date;
31367 l_number_of_periods_prev := okl_payment_rec.number_of_periods;
31368
31369 END; --5 Payment begin
31370
31371 END LOOP; -- Payment Loop
31372
31373 IF (l_no_of_lines = 0
31374 AND
31375 okl_header_rec.import_request_stage <> 'NEW') THEN -- There must be atleast one line, except for NEW contracts
31376
31377 okl_api.set_message(
31378 G_APP_NAME,
31379 G_INVALID_CONTRACT,
31380 'CONTRACT_NUM',
31381 okl_header_rec.contract_number_old
31382 );
31383 x_return_status := OKL_API.G_RET_STS_ERROR;
31384 RAISE load_failed;
31385 END IF;
31386
31387 COMMIT; -- commit after every Contract to avoid problem with Rollback segment
31388 /*
31389 --
31390 -- Process Contracts depending on import_request_stage
31391 --
31392 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS
31393 AND
31394 okl_header_rec.import_request_stage <> 'NEW' ) THEN
31395 contract_further_process(
31396 p_init_msg_list => OKL_API.G_FALSE,
31397 x_return_status => x_return_status,
31398 x_msg_count => x_msg_count,
31399 x_msg_data => x_msg_data,
31400 p_chr_id => x_chrv_rec.id,
31401 p_import_stage => okl_header_rec.import_request_stage
31402 );
31403 END IF;
31404 */
31405
31406 EXCEPTION
31407
31408 WHEN load_failed THEN
31409
31410 report_error (
31411 x_msg_count => x_msg_count,
31412 x_msg_data => x_msg_data
31413 );
31414 x_return_status := OKL_API.G_RET_STS_ERROR;
31415
31416 END; -- of Header Begin
31417
31418 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS) THEN -- Final checking for SUCCESSFUL Processing
31419
31420 update_interface_status(
31421 p_contract_number => okl_header_rec.contract_number_old,
31422 p_new_contract_number => x_chrv_rec.contract_number,
31423 p_status => 'INTERFACED',
31424 x_return_status => x_update_status
31425 );
31426 write_to_log('Contract '||okl_header_rec.contract_number_old||'-> loaded as :'||x_chrv_rec.contract_number);
31427 x_total_loaded := nvl(x_total_loaded,0) + 1;
31428
31429 -- hariven - Bug#5393374 - Added - Start
31430 -- Raise Business event for "oracle.apps.okl.la.lease_contract.imported"
31431 raise_business_event( p_chr_id => x_chrv_rec.id
31432 , x_return_status => x_return_status);
31433 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
31434 write_to_log('Raising Business Event For Contract -' ||x_chrv_rec.contract_number ||' FAILED!');
31435 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
31436 END IF;
31437 -- hariven - Bug#5393374 - Added - End
31438
31439 ELSE
31440
31441 ROLLBACK; -- Rollback any incomplete transactions
31442 update_interface_status(
31443 p_contract_number => okl_header_rec.contract_number_old,
31444 p_new_contract_number => okl_header_rec.contract_number,
31445 p_status => 'ERROR',
31446 x_return_status => x_update_status
31447 );
31448 END IF;
31449
31450 COMMIT;
31451
31452 --
31453 -- Process Contracts depending on import_request_stage
31454 --
31455 IF (x_return_status = OKL_API.G_RET_STS_SUCCESS
31456 AND
31457 okl_header_rec.import_request_stage <> 'NEW' ) THEN
31458 contract_further_process(
31459 p_init_msg_list => OKL_API.G_FALSE,
31460 x_return_status => x_return_status,
31461 x_msg_count => x_msg_count,
31462 x_msg_data => x_msg_data,
31463 p_chr_id => x_chrv_rec.id,
31464 p_import_stage => okl_header_rec.import_request_stage
31465 );
31466 END IF;
31467
31468 debug_message('========================done ');
31469 write_to_log('========================done ');
31470
31471 END LOOP; -- okl_header_csr
31472
31473 return;
31474
31475 EXCEPTION
31476 WHEN item_not_found_error THEN
31477 x_return_status := Okc_Api.G_RET_STS_ERROR;
31478
31479 WHEN OTHERS THEN
31480 okl_api.set_message(
31481 G_APP_NAME,
31482 G_UNEXPECTED_ERROR,
31483 'OKL_SQLCODE',
31484 SQLCODE,
31485 'OKL_SQLERRM',
31486 SQLERRM || ': '||G_PKG_NAME||'.'||l_proc_name
31487 );
31488 x_return_status := OKL_API.G_RET_STS_ERROR;
31489
31490 report_error (
31491 x_msg_count => x_msg_count,
31492 x_msg_data => x_msg_data
31493 );
31494 debug_message('Progress: '||l_progress);
31495 debug_message('========================done ');
31496
31497 END Load_Input_Record;
31498
31499 --+++++++++++++++++++++++++++++++ Load Interface +++++++++++++++++++++++++++
31500 -- Function to submit the concurrent request for Contract Import.
31501
31502 FUNCTION Submit_Import_Contract(
31503 p_api_version IN NUMBER,
31504 p_init_msg_list IN VARCHAR2,
31505 x_return_status OUT NOCOPY VARCHAR2,
31506 x_msg_count OUT NOCOPY NUMBER,
31507 x_msg_data OUT NOCOPY VARCHAR2,
31508 p_batch_number IN VARCHAR2,
31509 p_contract_number IN VARCHAR2,
31510 p_start_date IN DATE,
31511 p_end_date IN DATE,
31512 p_party_number IN VARCHAR2)
31513 RETURN NUMBER
31514 IS
31515
31516 x_request_id NUMBER;
31517
31518 l_start_date VARCHAR2(30);
31519 l_end_date VARCHAR2(30);
31520
31521
31522 BEGIN
31523
31524 x_return_status := Okl_Api.G_RET_STS_SUCCESS;
31525
31526 -- Convert the date to Varchar2
31527
31528 l_start_date := Fnd_Date.date_to_canonical(p_start_date);
31529 l_end_date := Fnd_Date.date_to_canonical(p_end_date);
31530
31531
31532 -- Submit Concurrent Program Request for interest calculation
31533 FND_REQUEST.set_org_id(mo_global.get_current_org_id); --MOAC- Concurrent request
31534 x_request_id := Fnd_Request.SUBMIT_REQUEST
31535 (application => 'OKL',
31536 program => 'OKLXKOI',
31537 description => 'Contract Import',
31538 argument1 => p_batch_number,
31539 argument2 => p_start_date,
31540 argument3 => p_end_date,
31541 argument4 => p_contract_number,
31542 argument5 => p_party_number);
31543
31544
31545 IF x_request_id = 0 THEN
31546 -- Raise Error if the request has not been submitted successfully.
31547 Okc_Api.set_message(p_app_name => 'OFA',
31548 p_msg_name => 'FA_DEPRN_TAX_ERROR',
31549 p_token1 => 'REQUEST_ID',
31550 p_token1_value => x_request_id);
31551
31552 RAISE Okl_Api.g_exception_error;
31553 END IF;
31554
31555 RETURN x_request_id;
31556
31557 EXCEPTION
31558
31559 WHEN Okl_Api.G_EXCEPTION_ERROR THEN
31560 x_return_status := Okl_Api.G_RET_STS_ERROR;
31561 RETURN x_request_id;
31562
31563 WHEN OTHERS THEN
31564 x_return_status := Okl_Api.G_RET_STS_UNEXP_ERROR;
31565 RETURN x_request_id;
31566
31567 END Submit_Import_Contract;
31568
31569 PROCEDURE Process_Record_Parallel (
31570 errbuf OUT NOCOPY VARCHAR2,
31571 retcode OUT NOCOPY VARCHAR2,
31572 p_batch_number IN VARCHAR2,
31573 p_start_date_from IN VARCHAR2,
31574 p_start_date_to IN VARCHAR2,
31575 p_contract_number IN VARCHAR2,
31576 p_customer_number IN VARCHAR2,
31577 p_instance_number IN NUMBER
31578 ) IS
31579
31580
31581 request_id NUMBER := 0;
31582
31583 batch_list varchar2(2000);
31584 start_pos number;
31585 l_batch_number okl_header_interface.batch_number%type;
31586 req_id req_tab_type;
31587
31588 req_data varchar2(10);
31589 cur_req_pos number;
31590
31591 batch_num_tab batch_tab_type;
31592 batch_counter number := 0;
31593
31594 -- Parameters
31595 l_max_lines_per_worker number := 50000;
31596 l_line_count number := 0;
31597 l_header_count number := 0;
31598
31599 l_partition_size number;
31600 l_max_partition_size number := 50000;
31601 l_parallel_count number;
31602 l_max_parallel_count number := 500;
31603
31604 l_contract_tab batch_tab_type;
31605 l_contract_num_count number := 0;
31606
31607 l_contract_num_tab batch_tab_type;
31608 l_count_tab req_tab_type;
31609 l_contract_num_tab2 batch_tab_type;
31610 l_count_tab2 req_tab_type;
31611 l_running_total number := 0;
31612 l_worker_id number := 1;
31613 l_percent number := 1;
31614 l_contract_tab_count req_tab_type;
31615 l_status_tab batch_tab_type;
31616 l_temp_count number := 1;
31617
31618 cursor c1 is
31619 select b.contract_number_old, count(*)
31620 from okl_lines_interface b
31621 where b.contract_number_old in (
31622 select a.contract_number_old
31623 from okl_header_interface a
31624 where
31625 (
31626 a.batch_number = p_batch_number
31627 OR
31628 a.contract_number_old = p_contract_number
31629 OR
31630 (
31631 a.customer_number = p_customer_number
31632 AND
31633 a.start_date between p_start_date_from AND p_start_date_to
31634 )
31635 )
31636 AND a.status in ('NEW','ERROR')
31637 AND a.contract_number_old = b.contract_number_old
31638 )
31639 group by b.contract_number_old
31640 order by 2;
31641
31642 cursor c2 is
31643 select a.contract_number_old
31644 from okl_header_interface a
31645 where
31646 (
31647 a.batch_number = p_batch_number
31648 OR
31649 a.contract_number_old = p_contract_number
31650 OR
31651 (
31652 a.customer_number = p_customer_number
31653 AND
31654 a.start_date between p_start_date_from AND p_start_date_to
31655 )
31656 )
31657 AND a.status in ('NEW','ERROR');
31658
31659 FUNCTION get_max_lines_per_worker return number IS
31660 BEGIN
31661 --AKP:Get value from profile
31662 return fnd_profile.value('OKL_MAX_LINES_PER_WORKER');
31663 --return 10000;
31664 END;
31665
31666
31667 begin
31668
31669 write_to_log('In OKL_OPEN_INTERFACE_PVT.process_record_parallel...');
31670
31671 if (p_instance_number is null) and (instr(NVL(p_batch_number,'?'),',') = 0)
31672 then
31673 -- Call the existing process_record (Old way)
31674 Process_Record (
31675 errbuf ,
31676 retcode ,
31677 p_batch_number ,
31678 p_start_date_from,
31679 p_start_date_to ,
31680 p_contract_number,
31681 p_customer_number,
31682 null
31683 );
31684 return;
31685 else
31686
31687
31688 req_data := fnd_conc_global.request_data;
31689 write_to_log('req_data retrieved =' || req_data);
31690
31691 if req_data is not null then
31692 errbuf := 'Done!';
31693 retcode := 0;
31694 return;
31695 end if;
31696
31697 l_status_tab.delete;
31698 if (p_instance_number = 1) then
31699 write_to_log('Submit Old Concurrent program as is...');
31700
31701 --AKP Change colname: assigned_process to scheduled_worker_id
31702 update okl_header_interface a
31703 set a.scheduled_worker_id = '1'
31704 where
31705 (
31706 a.batch_number = p_batch_number
31707 OR
31708 a.contract_number_old = p_contract_number
31709 OR
31710 (
31711 a.customer_number = p_customer_number
31712 AND
31713 a.start_date between p_start_date_from AND p_start_date_to
31714 )
31715 )
31716 AND a.status in ('NEW','ERROR');
31717 commit;
31718
31719 FND_REQUEST.set_org_id(mo_global.get_current_org_id); --MOAC- Concurrent request
31720 request_id := FND_REQUEST.SUBMIT_REQUEST(
31721 application => 'OKL',
31722 program => 'OKLXKOIC', -- AKP: Change program name
31723 sub_request => TRUE,
31724 argument1 => p_batch_number,
31725 argument2 => p_start_date_from ,
31726 argument3 => p_start_date_to ,
31727 argument4 => p_contract_number ,
31728 argument5 => p_customer_number ,
31729 argument6 => '1'
31730 );
31731
31732 if (request_id = 0) then
31733 errbuf := fnd_message.get;
31734 retcode := 2;
31735 else
31736 retcode := 0;
31737 end if;
31738 fnd_conc_global.set_req_globals(conc_status => 'PAUSED',
31739 request_data => to_char(1));
31740 errbuf := 'Sub-Request submitted!';
31741 retcode := 0;
31742
31743 return;
31744 end if;
31745
31746
31747 if (p_instance_number is null) and (instr(p_batch_number,',') > 0) then
31748
31749 -------------- Copied from here
31750 batch_num_tab.delete;
31751 req_id.delete;
31752
31753 batch_list := ltrim(rtrim(p_batch_number)); -- Separated by commas
31754 write_to_log('Before:batch_list=' || batch_list);
31755 -- Has comma at the end
31756 if (substr(batch_list,length(batch_list),1) = ',') then
31757 batch_list := substr(batch_list, 1, length(batch_list)-1);
31758 end if;
31759 write_to_log('After:batch_list=' || batch_list);
31760 start_pos := 1;
31761 for i in 1..length(batch_list)
31762 loop
31763 if (substr(batch_list,i,1) = ',') then
31764 l_batch_number := ltrim(rtrim(substr(batch_list, start_pos, i - start_pos )));
31765 write_to_log('i=' || i || ' start_pos=' || start_pos || ' l_batch_number=' || l_batch_number);
31766 if (l_batch_number is not null) then
31767 batch_counter := batch_counter + 1;
31768 batch_num_tab(batch_counter) := l_batch_number;
31769 end if;
31770
31771 start_pos := i+1;
31772 end if;
31773 end loop;
31774
31775 l_batch_number := ltrim(rtrim(substr(batch_list, start_pos, length(batch_list) - start_pos +1)));
31776 write_to_log('start_pos=' || start_pos || ' length=' || length(batch_list)|| ' l_batch_number=' || l_batch_number);
31777 if (l_batch_number is not null) then
31778 batch_counter := batch_counter + 1;
31779 batch_num_tab(batch_counter) := l_batch_number;
31780 end if;
31781
31782 write_to_log('batch_counter=' || batch_counter);
31783
31784 for i in batch_num_tab.first..batch_num_tab.last
31785 loop
31786 write_to_log('batch_num_tab(' || i || ')=' || batch_num_tab(i));
31787 end loop;
31788
31789 req_data := fnd_conc_global.request_data;
31790 write_to_log('req_data retrieved =' || req_data);
31791
31792 if req_data is not null then
31793 errbuf := 'Done!';
31794 retcode := 0;
31795 return;
31796 else
31797 for i in batch_num_tab.first..batch_num_tab.last
31798 loop
31799 l_batch_number := batch_num_tab(i);
31800 update okl_header_interface
31801 set scheduled_worker_id = to_char(i)
31802 where batch_number = l_batch_number;
31803 commit;
31804
31805 write_to_log('Submitting for ' || l_batch_number);
31806 FND_REQUEST.set_org_id(mo_global.get_current_org_id); --MOAC- Concurrent request
31807 request_id := FND_REQUEST.SUBMIT_REQUEST(
31808 application => 'OKL',
31809 program => 'OKLXKOIC', -- AKP: Change program name
31810 sub_request => TRUE,
31811 argument1 => l_batch_number,
31812 argument2 => p_start_date_from ,
31813 argument3 => p_start_date_to ,
31814 argument4 => p_contract_number ,
31815 argument5 => p_customer_number ,
31816 argument6 => to_char(i)
31817 );
31818
31819 if (request_id = 0) then
31820 errbuf := fnd_message.get;
31821 retcode := 2;
31822 end if;
31823
31824 end loop;
31825 fnd_conc_global.set_req_globals(conc_status => 'PAUSED',
31826 request_data => to_char(1));
31827 errbuf := 'Sub-Request submitted!';
31828 retcode := 0;
31829 end if;
31830
31831 -------------- Copied to here
31832
31833 else
31834
31835
31836 l_max_lines_per_worker := get_max_lines_per_worker();
31837 write_to_log('Max lines per worker='||l_max_lines_per_worker);
31838
31839 select count(*) into l_header_count
31840 from okl_header_interface b
31841 where (
31842 b.batch_number = p_batch_number
31843 OR
31844 b.contract_number_old = p_contract_number
31845 OR
31846 (
31847 b.customer_number = p_customer_number
31848 AND
31849 b.start_date between p_start_date_from AND p_start_date_to
31850 )
31851 )
31852 AND b.status in ('NEW','ERROR');
31853
31854 select count(*) into l_line_count
31855 from okl_lines_interface a
31856 where a.contract_number_old in (
31857 select b.contract_number_old
31858 from okl_header_interface b
31859 where (
31860 b.batch_number = p_batch_number
31861 OR
31862 b.contract_number_old = p_contract_number
31863 OR
31864 (
31865 b.customer_number = p_customer_number
31866 AND
31867 b.start_date between p_start_date_from AND p_start_date_to
31868 )
31869 )
31870 AND b.status in ('NEW','ERROR')
31871 AND b.contract_number_old = a.contract_number_old
31872 );
31873
31874 write_to_log('l_header_count=' || l_header_count);
31875 write_to_log('l_line_count=' || l_line_count);
31876
31877 if (nvl(l_max_lines_per_worker,0) < 1) then
31878 l_max_partition_size := 100000;
31879 else
31880 l_max_partition_size := l_max_lines_per_worker;
31881 end if;
31882 l_partition_size := round((l_line_count+l_header_count)/p_instance_number,0);
31883
31884 if (l_partition_size > l_max_partition_size) then
31885 l_partition_size := l_max_partition_size;
31886 end if;
31887 write_to_log('l_partition_size=' || l_partition_size);
31888
31889 l_parallel_count := round((l_line_count+l_header_count)/l_partition_size, 0);
31890
31891 if (l_parallel_count > l_max_parallel_count) then
31892 l_parallel_count := l_max_parallel_count;
31893 end if;
31894 write_to_log('l_parallel_count=' || l_parallel_count);
31895
31896
31897 if ((l_line_count + l_header_count = 0) or (l_header_count = 0)) then
31898 write_to_log('No contracts/lines eligible for loading...');
31899 retcode := 0;
31900 elsif (l_Line_count = 0) then
31901 null;
31902 write_to_log('Only headers exist. No lines...');
31903 -- l_contract_num_tab, tab2, l_status_tab, l_temp_count
31904
31905 write_to_log('Before open c2...');
31906 open c2;
31907 loop
31908 fetch c2 bulk collect into
31909 l_contract_num_tab2
31910 limit 10000;
31911 write_to_log('After fetch c2...');
31912 exit when l_contract_num_tab2.count = 0;
31913 for i in 1..l_contract_num_tab2.count loop
31914 l_contract_num_tab(l_temp_count) := l_contract_num_tab2(i);
31915 l_temp_count := l_temp_count + 1;
31916 end loop;
31917 end loop;
31918 close c2;
31919 write_to_log('After close c2...');
31920 l_worker_id := 1;
31921 for i in 1..l_contract_num_tab.count loop
31922 l_status_tab(i) := to_char(l_worker_id);
31923 l_worker_id := l_worker_id + 1;
31924 if (l_worker_id > l_parallel_count) then
31925 l_worker_id := 1;
31926 end if;
31927 end loop;
31928 write_to_log('After status_tab population ...');
31929 forall i in l_contract_num_tab.first..l_contract_num_tab.last
31930 update okl_header_interface
31931 set scheduled_worker_id = l_status_tab(i)
31932 where contract_number_old = l_contract_num_tab(i);
31933 write_to_log('After bulk update...');
31934
31935 /* ************** */
31936 write_to_log('Before submitting: l_worker_id=' || l_worker_id);
31937 for i in 1..l_parallel_count
31938 loop
31939 FND_REQUEST.set_org_id(mo_global.get_current_org_id); --MOAC- Concurrent request
31940 request_id := FND_REQUEST.SUBMIT_REQUEST(
31941 application => 'OKL',
31942 program => 'OKLXKOIC', -- AKP Change program name
31943 sub_request => TRUE,
31944 argument1 => p_batch_number,
31945 argument2 => p_start_date_from ,
31946 argument3 => p_start_date_to ,
31947 argument4 => p_contract_number ,
31948 argument5 => p_customer_number ,
31949 argument6 => to_char(i)
31950 );
31951
31952 if (request_id = 0) then
31953 errbuf := fnd_message.get;
31954 retcode := 2;
31955 end if;
31956
31957 end loop;
31958 fnd_conc_global.set_req_globals(conc_status => 'PAUSED',
31959 request_data => to_char(1));
31960 errbuf := 'Sub-Request submitted!';
31961 retcode := 0;
31962
31963 write_to_log('Done Spawning Child Processes...');
31964 /* ************** */
31965 else
31966
31967 /*if (nvl(l_max_lines_per_worker,0) < 1) then
31968 l_max_partition_size := 100000;
31969 else
31970 l_max_partition_size := l_max_lines_per_worker;
31971 end if;
31972 l_partition_size := round((l_line_count+l_header_count)/p_instance_number,0);
31973
31974 if (l_partition_size > l_max_partition_size) then
31975 l_partition_size := l_max_partition_size;
31976 end if;
31977 write_to_log('l_partition_size=' || l_partition_size);
31978
31979 l_parallel_count := round((l_line_count+l_header_count)/l_partition_size, 0);
31980
31981 if (l_parallel_count > l_max_parallel_count) then
31982 l_parallel_count := l_max_parallel_count;
31983 end if;
31984 write_to_log('l_parallel_count=' || l_parallel_count); */
31985
31986 l_contract_tab.delete;
31987 l_contract_tab_count.delete;
31988 l_contract_num_count:= 1;
31989
31990 l_contract_num_tab.delete;
31991 l_count_tab.delete;
31992 l_contract_num_tab2.delete;
31993 l_count_tab2.delete;
31994 l_running_total := 0;
31995 l_worker_id := 1;
31996
31997 write_to_log('After initializing...');
31998 l_temp_count := 1;
31999 open c1;
32000 loop
32001 fetch c1 bulk collect into l_contract_num_tab2, l_count_tab2
32002 LIMIT G_BULK_BATCH_SIZE;
32003 if (l_contract_num_tab2.count=0) then
32004 exit;
32005 else
32006 null;
32007 --Populate l_contract_num_tab and l_count_tab from 2 above
32008 for i in l_contract_num_tab2.first..l_contract_num_tab2.last loop
32009 l_contract_num_tab(l_temp_count) := l_contract_num_tab2(i);
32010 l_count_tab(l_temp_count) := l_count_tab2(i);
32011 l_temp_count := l_temp_count + 1;
32012 end loop;
32013 end if;
32014 end loop;
32015 close c1;
32016
32017 write_to_log('l_contract_num_tab.count=' || l_contract_num_tab.count);
32018
32019 if (l_contract_num_tab.count > 0) then
32020
32021 for i in l_contract_num_tab.first .. l_contract_num_tab.last loop
32022
32023 write_to_log('processing l_contract_num_tab(' || i || ')=' || l_contract_num_tab(i));
32024 l_contract_tab(l_contract_num_count) := l_contract_num_tab(i);
32025 l_contract_tab_count(l_contract_num_count) := l_count_tab(i);
32026 l_contract_num_count := l_contract_num_count + 1;
32027
32028 l_running_total := l_running_total + l_count_tab(i) + 1;
32029 --write_to_log('l_contract_num_count=' || l_contract_num_count);
32030 --write_to_log('l_running_total=' || l_running_total);
32031
32032 l_percent := round((l_running_total-l_partition_size)*100/l_partition_size,0);
32033 --write_to_log('l_percent=' || l_percent);
32034 if (l_running_total = l_partition_size) then
32035 for j in 1..l_contract_num_count-1 loop
32036 --write_to_log(l_contract_tab(j) || ' on worker ' || l_worker_id);
32037 l_status_tab(j) := to_char(l_worker_id);
32038 write_to_log(l_contract_tab(j) || ' on worker ' || l_worker_id ||
32039 ' lines -> ' || l_contract_tab_count(j));
32040 end loop;
32041 -- AKP: Change assigned_process to scheduled_worker_id
32042 forall j in l_status_tab.first..l_status_tab.last
32043 update okl_header_interface set scheduled_worker_id=l_status_tab(j)
32044 where contract_number_old = l_contract_tab(j);
32045 commit;
32046
32047 l_running_total := 0;
32048 l_contract_num_count := 1;
32049 l_worker_id := l_worker_id + 1;
32050 l_contract_tab.delete;
32051 l_contract_tab_count.delete;
32052 l_status_tab.delete;
32053 elsif (l_running_total > l_partition_size) then
32054 if ((l_contract_num_count > 2) and round((l_running_total-l_partition_size)*100/l_partition_size,0) >10 )
32055 then
32056 l_contract_num_count := l_contract_num_count - 1;
32057 --write_to_log('Reduced contract_num_count=' || l_contract_num_count);
32058 for j in 1..l_contract_num_count-1 loop
32059 l_status_tab(j) := to_char(l_worker_id);
32060 write_to_log(l_contract_tab(j) || ' on worker ' || l_worker_id ||
32061 ' lines -> ' || l_contract_tab_count(j));
32062 end loop;
32063 -- AKP: Change assigned_process to scheduled_worker_id
32064 forall j in l_status_tab.first..l_status_tab.last
32065 update okl_header_interface set scheduled_worker_id=l_status_tab(j)
32066 where contract_number_old = l_contract_tab(j);
32067 commit;
32068
32069 l_running_total := 0;
32070 l_contract_num_count := 1;
32071 l_worker_id := l_worker_id + 1;
32072 l_contract_tab.delete;
32073 l_contract_tab_count.delete;
32074 l_status_tab.delete;
32075 l_contract_tab(l_contract_num_count) := l_contract_num_tab(i);
32076 l_contract_tab_count(l_contract_num_count) := l_count_tab(i);
32077 l_contract_num_count := l_contract_num_count + 1;
32078 else
32079 for j in 1..l_contract_num_count-1 loop
32080 --write_to_log(l_contract_tab(j) || ' on worker ' || l_worker_id);
32081 l_status_tab(j) := to_char(l_worker_id);
32082 write_to_log(l_contract_tab(j) || ' on worker ' || l_worker_id ||
32083 ' lines -> ' || l_contract_tab_count(j));
32084 end loop;
32085 -- AKP: Change assigned_process to scheduled_worker_id
32086 forall j in l_status_tab.first..l_status_tab.last
32087 update okl_header_interface set scheduled_worker_id=l_status_tab(j)
32088 where contract_number_old = l_contract_tab(j);
32089 commit;
32090
32091 l_running_total := 0;
32092 l_contract_num_count := 1;
32093 l_worker_id := l_worker_id + 1;
32094 l_contract_tab.delete;
32095 l_contract_tab_count.delete;
32096 l_status_tab.delete;
32097 end if;
32098 end if; -- if contract_num_tab.count > 0
32099
32100 end loop;
32101 end if;
32102
32103 write_to_log('Outside...contract_num_count=' || l_contract_num_count
32104 || ' l_worker_id=' || l_worker_id);
32105 if (l_contract_tab.count > 0) then
32106 for j in 1..l_contract_num_count-1 loop
32107 --write_to_log(l_contract_tab(j) || ' on worker ' || l_worker_id);
32108 l_status_tab(j) := to_char(l_worker_id);
32109 write_to_log(l_contract_tab(j) || ' on worker ' || l_worker_id ||
32110 ' lines -> ' || l_contract_tab_count(j));
32111 end loop;
32112 -- AKP: Change assigned_process to scheduled_worker_id
32113 forall j in l_status_tab.first..l_status_tab.last
32114 update okl_header_interface set scheduled_worker_id=l_status_tab(j)
32115 where contract_number_old = l_contract_tab(j);
32116 commit;
32117
32118 l_running_total := 0;
32119 l_contract_num_count := 1;
32120 l_worker_id := l_worker_id + 1;
32121 l_contract_tab.delete;
32122 l_contract_tab_count.delete;
32123 l_status_tab.delete;
32124 end if;
32125
32126 /*end loop;
32127 close c1; */
32128
32129
32130 write_to_log('Before submitting: l_worker_id=' || l_worker_id);
32131 if (l_worker_id > l_max_parallel_count + 1) then
32132 l_worker_id := l_max_parallel_count + 1;
32133 write_to_log('ALERT:Some workers can not be started because of resource. Please rerun your job later after this submission finishes.');
32134 end if;
32135 for i in 1..l_worker_id -1
32136 loop
32137 FND_REQUEST.set_org_id(mo_global.get_current_org_id); --MOAC- Concurrent request
32138 request_id := FND_REQUEST.SUBMIT_REQUEST(
32139 application => 'OKL',
32140 program => 'OKLXKOIC', -- AKP Change program name
32141 sub_request => TRUE,
32142 argument1 => p_batch_number,
32143 argument2 => p_start_date_from ,
32144 argument3 => p_start_date_to ,
32145 argument4 => p_contract_number ,
32146 argument5 => p_customer_number ,
32147 argument6 => to_char(i)
32148 );
32149
32150 if (request_id = 0) then
32151 errbuf := fnd_message.get;
32152 retcode := 2;
32153 end if;
32154
32155 end loop;
32156 fnd_conc_global.set_req_globals(conc_status => 'PAUSED',
32157 request_data => to_char(1));
32158 errbuf := 'Sub-Request submitted!';
32159 retcode := 0;
32160
32161 write_to_log('Done Spawning Child Processes...');
32162
32163 end if; -- if line_count = 0
32164 end if; -- if instance_number
32165
32166 end if; -- if parallel
32167
32168
32169 exception when FND_API.G_EXC_ERROR THEN
32170 write_to_log('G_EXC_ERROR');
32171 raise FND_API.G_EXC_ERROR;
32172 when others then
32173 write_to_log('OTHERS');
32174 FND_MESSAGE.SET_NAME('AR', 'HZ_STAGE_SQL_ERROR');
32175 FND_MESSAGE.SET_TOKEN('PROC' ,'Parallel Contract import failed');
32176 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
32177 FND_MSG_PUB.ADD;
32178 RAISE FND_API.G_EXC_ERROR;
32179 end;
32180
32181
32182 END okl_open_interface_pvt;