[Home] [Help]
PACKAGE BODY: APPS.CSF_DEBRIEF_CHARGES
Source
1 PACKAGE body CSF_DEBRIEF_CHARGES as
2 /* $Header: csfdbchb.pls 120.5.12020000.2 2013/04/09 10:36:02 shadas ship $ */
3 -- Start of Comments
4 -- Package name : CSF_DEBRIEF_CHARGES
5 -- Purpose : Wrapper for Charges
6 -- History :
7 -- NOTE :
8 -- End of Comments
9 -- Default number of records fetch per call
10
11
12 PROCEDURE CREATE_CHARGES (
13 P_ORIGINAL_SOURCE_ID IN NUMBER,
14 P_ORIGINAL_SOURCE_CODE IN VARCHAR2,
15 P_INCIDENT_ID IN NUMBER,
16 P_BUSINESS_PROCESS_ID IN NUMBER,
17 P_LINE_CATEGORY_CODE IN VARCHAR2,
18 P_SOURCE_CODE IN VARCHAR2,
19 P_SOURCE_ID IN NUMBER,
20 P_INVENTORY_ITEM_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
21 P_ITEM_REVISION IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
22 P_UNIT_OF_MEASURE_CODE IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
23 P_QUANTITY IN NUMBER DEFAULT FND_API.G_MISS_NUM,
24 P_TXN_BILLING_TYPE_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
25 P_TRANSACTION_TYPE_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
26 P_CUSTOMER_PRODUCT_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
27 P_INSTALLED_CP_RETURN_BY_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
28 P_AFTER_WARRANTY_COST IN NUMBER DEFAULT FND_API.G_MISS_NUM,
29 P_CURRENCY_CODE IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
30 P_RETURN_REASON_CODE IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
31 P_INVENTORY_ORG_ID IN VARCHAR2 DEFAULT FND_API.G_MISS_NUM,
32 P_SUBINVENTORY IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
33 P_SERIAL_NUMBER IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
34 P_FINAL_CHARGE_FLAG IN VARCHAR2,
35 P_LABOR_START_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
36 P_LABOR_END_DATE IN DATE DEFAULT FND_API.G_MISS_DATE,
37 P_EXPENDITURE_ORG_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
38 P_PROJECT_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
39 P_PROJECT_TASK_ID IN NUMBER DEFAULT FND_API.G_MISS_NUM,
40 X_Return_Status OUT NOCOPY VARCHAR2,
41 X_Msg_Count OUT NOCOPY NUMBER,
42 X_Msg_Data OUT NOCOPY VARCHAR2
43 ) as
44
45 l_Charges_Rec Cs_service_billing_engine_pvt.SBE_Rec_Type;
46
47 l_object_version_number NUMBER;
48 l_estimate_detail_id NUMBER;
49 l_line_number NUMBER;
50 l_price_list_id number := null;
51
52 cursor c_price_list is
53 select price_list_header_id
54 from csd_repairs
55 where repair_line_id = p_original_source_id;
56
57 begin
58 if p_original_source_code = 'DR' then
59 open c_price_list;
60 fetch c_price_list into l_price_list_id;
61 close c_price_list;
62 l_charges_rec.price_list_id := l_price_list_id;
63 end if;
64
65 l_Charges_Rec.original_source_id := p_original_source_id ;
66 l_Charges_Rec.original_source_code := p_original_source_code ;
67 l_Charges_Rec.incident_id := p_incident_id ;
68 l_Charges_Rec.business_process_id := p_business_process_id ;
69 l_Charges_Rec.line_category_code := p_line_category_code ;
70 l_Charges_Rec.source_code := p_source_code;
71 l_Charges_Rec.source_id := p_source_id;
72 l_Charges_Rec.inventory_item_id := p_inventory_item_id;
73 l_Charges_Rec.item_revision := p_item_revision;
74 l_charges_rec.unit_of_measure_code := p_unit_of_measure_code;
75 l_charges_rec.quantity := p_quantity;
76 l_charges_rec.txn_billing_type_id := p_txn_billing_type_id;
77 l_charges_rec.transaction_type_id := p_transaction_type_id;
78 l_charges_rec.customer_product_id := p_customer_product_id;
79 l_charges_rec.installed_cp_return_by_date := p_installed_cp_return_by_date;
80 l_charges_rec.after_warranty_cost := p_after_warranty_cost;
81 l_charges_rec.currency_code := p_currency_code;
82 l_charges_rec.return_reason_code := p_return_reason_code;
83 l_charges_rec.serial_number := p_serial_number;
84 l_charges_rec.transaction_inventory_org_id := null;
85 l_charges_rec.transaction_sub_inventory := null;
86 l_charges_rec.labor_start_date_time := p_labor_start_date;
87 l_charges_rec.labor_end_date_time := p_labor_end_date;
88 l_charges_rec.expenditure_org_id := p_expenditure_org_id;
89 l_charges_rec.project_id := p_project_id;
90 l_charges_rec.project_task_id := p_project_task_id;
91
92 Cs_service_billing_engine_pvt.Create_Charges(
93 P_Api_Version_Number =>1.0,
94 P_Init_Msg_List =>FND_API.G_FALSE,
95 P_Commit =>FND_API.G_FALSE,
96 p_sbe_record =>l_charges_rec,
97 p_final_charge_flag =>p_final_charge_flag,
98 x_return_status =>x_return_status,
99 x_msg_count =>x_msg_count,
100 x_msg_data =>x_msg_data
101 );
102
103
104 end CREATE_CHARGES;
105
106
107 PROCEDURE UPDATE_LAB_RS_LOC(
108 p_debrief_header_id IN NUMBER,
109 p_debrief_line_id IN NUMBER,
110 p_labor_start_date IN DATE,
111 X_RETURN_STATUS OUT NOCOPY varchar2,
112 X_MSG_COUNT OUT NOCOPY number,
113 X_MSG_DATA OUT NOCOPY VARCHAR2) as
114 z_resource_id number;
115 z_location mdsys.sdo_geometry;
116 z_object_version_number NUMBER;
117 z_start_date date;
118 Begin
119
120 -- Calling the Update Resource Location API to Update Resource's Location
121
122
123
124 select jta.resource_id,
125 loc.geometry
126 into z_resource_id,
127 z_location
128 from csf_debrief_lines cdl,
129 csf_debrief_headers csf,
130 cs_transaction_types_vl ctt,
131 cs_txn_billing_types ctbt,
132 jtf_task_assignments jta,
133 jtf_tasks_b jtb,
134 hz_party_sites p,
135 hz_locations loc
136 where csf.debrief_header_id = p_debrief_header_id
137 and debrief_line_id = p_debrief_line_id
138 and jta.task_id = jtb.task_id
139 and jta.task_assignment_id = csf.task_assignment_id
140 and jtb.address_id = p.party_site_id
141 and p.location_id = loc.location_id
142 and csf.debrief_header_id = cdl.debrief_header_id
143 and ctt.transaction_type_id = ctbt.transaction_type_id
144 and cdl.txn_Billing_Type_Id = ctbt.txn_billing_type_id
145 and ctbt.billing_type = 'L';
146
147
148 select max(actual_start_date)
149 into z_start_date
150 from jtf_task_assignments
151 where resource_id = z_resource_id;
152
153 IF p_labor_start_date > z_start_date then
154
155 select object_version_number
156 into z_object_version_number
157 from jtf_rs_resource_extns
158 where resource_id = z_resource_id;
159
160 /*
161 -- jtf has removed the p_location column, and suggest
162 -- to update the location directly
163 jtf_rs_resource_pub.update_resource
164 (P_API_VERSION => 1,
165 -- P_INIT_MSG_LIST => fnd_api.g_false,
166 -- P_COMMIT => fnd_api.g_false,
167 P_RESOURCE_ID => z_resource_id,
168 P_RESOURCE_NUMBER => null,
169 P_LOCATION => z_location,
170 P_object_version_num => z_object_version_number,
171 X_RETURN_STATUS => x_return_status,
172 X_MSG_COUNT => x_msg_count,
173 X_MSG_DATA => x_msg_data);
174
175 */
176 END IF;
177
178 EXCEPTION WHEN NO_DATA_FOUND THEN NULL;
179
180 END ;
181
182 PROCEDURE UPDATE_CHARGES (
183 SOURCE_CODE IN VARCHAR2,
184 SOURCE_ID IN NUMBER,
185 INVENTORY_ITEM_ID IN NUMBER ,
186 UNIT_OF_MEASURE_CODE IN VARCHAR2 ,
187 QUANTITY_REQUIRED IN NUMBER ,
188 TXN_BILLING_TYPE IN NUMBER ,
189 OUT_X_Return_Status OUT NOCOPY VARCHAR2,
190 OUT_X_Msg_Count OUT NOCOPY NUMBER,
191 OUT_X_Msg_Data OUT NOCOPY VARCHAR2
192 ) AS
193
194 Cursor c_estimate_detail(p_source_id NUMBER,p_source_code Varchar2) IS
195 select estimate_detail_id
196 FROM cs_estimate_details
197 WHERE source_id = p_source_id
198 AND source_code = p_source_code;
199
200 l_Charges_Rec CS_Charge_Details_PUB.Charges_Rec_Type;
201 l_object_version_number NUMBER;
202 l_estimate_detail_id NUMBER;
203
204 BEGIN
205 Open c_estimate_detail(source_id,source_code);
206 Fetch c_estimate_detail INTO l_estimate_detail_id;
207 Close c_estimate_detail;
208 l_Charges_Rec.estimate_detail_id := l_estimate_detail_id;
209 l_Charges_Rec.source_code := source_code;
210 l_Charges_Rec.source_id := source_id;
211 l_Charges_Rec.inventory_item_id_in := inventory_item_id;
212 l_charges_rec.unit_of_measure_code := unit_of_measure_code;
213 l_charges_rec.quantity_required := quantity_required;
214 l_charges_rec.txn_billing_type_id := txn_billing_type;
215
216 Cs_Charge_Details_Pub.Update_Charge_Details (
217 p_API_VERSION => 1.0,
218 p_INIT_MSG_LIST => FND_API.G_TRUE,
219 p_COMMIT => FND_API.G_FALSE,
220 p_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL,
221 X_Return_Status => OUT_X_Return_status,
222 X_Msg_Count => OUT_X_Msg_Count,
223 X_Object_Version_Number => l_object_version_number,
224 X_MSG_DATA => OUT_X_MSG_DATA,
225 p_resp_appl_id => NULL,
226 p_resp_id => NULL,
227 p_user_id => NULL,
228 p_login_id => NULL,
229 p_transaction_control => FND_API.G_TRUE,
230 p_charges_rec => l_charges_rec);
231 END UPDATE_CHARGES;
232
233 PROCEDURE DELETE_CHARGES (SOURCE_ID IN NUMBER,
234 SOURCE_CODE IN VARCHAR2,
235 OUT_X_Return_status OUT NOCOPY VARCHAR2,
236 OUT_X_Msg_Count OUT NOCOPY NUMBER,
237 OUT_X_MSG_DATA OUT NOCOPY VARCHAR2 ) IS
238
239 Cursor c_estimate_detail(p_source_id NUMBER,p_source_code Varchar2) IS
240 select estimate_detail_id
241 FROM cs_estimate_details
242 WHERE source_id = p_source_id
243 AND source_code = p_source_code;
244
245 l_estimate_detail_id NUMBER;
246 BEGIN
247 Open c_estimate_detail(source_id,source_code);
248 Fetch c_estimate_detail INTO l_estimate_detail_id;
249 Close c_estimate_detail;
250
251 Cs_Charge_Details_pub.Delete_Charge_Details (
252 p_API_VERSION => 1.0,
253 p_INIT_MSG_LIST => FND_API.G_TRUE,
254 p_COMMIT => FND_API.G_FALSE,
255 p_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL,
256 X_Return_Status => OUT_X_Return_status,
257 X_Msg_Count => OUT_X_Msg_Count,
258 X_MSG_DATA => OUT_X_MSG_DATA,
259 p_TRANSACTION_CONTROL => FND_API.G_TRUE,
260 p_ESTIMATE_DETAIL_ID => l_Estimate_Detail_ID);
261 END DELETE_CHARGES;
262
263 end CSF_DEBRIEF_CHARGES;
264