1 PACKAGE OE_Create_account_info AUTHID CURRENT_USER AS
2 /* $Header: OEXCACTS.pls 120.2 2006/07/21 13:47:21 mbhoumik noship $ */
3
4
5 -- API Operation control flags.
6 TYPE Control_Rec_Type IS RECORD
7 (
8 p_allow_account_creation varchar2(20):='CHECK'--ALL,SITE_AND_CONTACT,NONE,
9 --CHECK and NULL
10 ,p_init_msg_list boolean := FALSE
11 ,p_commit BOOLEAN := TRUE
12 ,p_multiple_account_is_error BOOLEAN :=TRUE
13 ,p_multiple_contact_is_error BOOLEAN :=TRUE
14 --Created_by_Module for creating tca entities
15 --IT should be ONT_<STARTUP_MODE>_AUTOMATIC_ACCOUNT
16 ,p_created_by_module varchar2(150)
17 -- This is applicable to contact. If the search contact
18 -- fails then we need to still continue and find the site
19 ,p_continue_processing_on_error boolean := FALSE
20 -- control parameters.When we call this api again due to lov or ..
21 -- we do not want to check the previous entities again
22 ,p_process_customer boolean := TRUE
23 ,p_process_contact boolean := TRUE
24 -- This is to return without processing if no accounts found and there
25 -- is no site information for the party. In this scenario for telesales
26 -- we will take the user to the add customer form
27 ,p_return_if_only_party boolean :=TRUE
28
29 -- this determines if we need to give higher preceden to primary party sites
30 -- compared to the address actually passed. This is done for Contact Center
31 -- integration
32 ,p_fetch_primary_party_sites boolean :=FALSE
33
34 -- This flag is to ignore Value To Id process in AAC. The default value is TRUE
35 -- so that the process order will always do it. We should not do this for
36 -- Telesales and Teleservice integration
37 ,p_do_value_to_id boolean :=TRUE
38
39 -- This flag is done for the Contact Center Integration.
40 -- The processing returns from the AAC if the Customer is found and when cust
41 -- is NOT Created. This is to facilitate the scenario where we need to call
42 -- defaulting after an account is identified if we need to give higher
43 -- precedence to defaulting over the address passed
44 ,p_return_if_customer_found boolean :=FALSE
45
46 );
47
48 -- Variable representing missing control record.
49 G_MISS_CONTROL_REC Control_Rec_Type;
50
51 TYPE party_customer_rec IS RECORD
52 (
53 p_party_id number := null -- can be customer or contacts party_id
54 ,p_party_number varchar2(30) := null
55 ,p_cust_account_id number := null
56 ,p_cust_account_number varchar2(30) := null
57
58 -- only contact attributes
59 ,p_org_contact_id number := null
60 ,p_cust_account_role_id number := null
61
62 -- value columns for value-to-id conversion
63 ,p_party_name varchar(360)
64 ,p_contact_name varchar(383)
65
66
67 -- this determines if the account is created in AAC or found an existing account
68 ,p_account_created_or_found varchar2(50) := 'FOUND'
69
70 );
71
72 -- Variable Representing missing party_customer_Rec
73 G_MISS_PARTY_CUSTOMER_REC party_customer_rec;
74
75
76 TYPE site_rec IS RECORD
77 (
78 -- site_use_code is mandatory even if party_site_use_id is passed
79 -- as STMTS party_site_use can still become an account site of bill,ship,deliver
80 p_site_use_code varchar2(30) := null
81 ,p_party_site_id number := null
82 ,p_party_site_use_id number := null
83 ,p_site_use_id number
84 ,p_cust_acct_site_id number
85 ,p_create_primary_acct_site_use boolean
86 ,p_process_site boolean := TRUE
87
88 --Site Customer Information
89 ,p_party_id number := null -- customer party_id
90 ,p_party_number varchar2(30) := null
91 ,p_cust_account_id number := null
92 ,p_cust_account_number varchar2(30) := null
93
94 -- contact attributes
95 ,p_org_contact_id number := null
96 ,p_cust_account_role_id number := null
97 ,p_create_responsibility boolean := FALSE
98 ,p_assign_contact_to_site boolean:=FALSE
99
100 -- value columns for value-to-id conversion
101 ,p_party_name varchar2(360)
102 ,p_contact_name varchar2(383)
103
104 -- value columns for site_use
105 ,p_site_address1 VARCHAR2(240)
106 ,p_site_address2 VARCHAR2(240)
107 ,p_site_address3 VARCHAR2(240)
108 ,p_site_address4 VARCHAR2(240)
109 ,p_site_org VARCHAR2(240)
110 ,p_site_city VARCHAR2(240)
111 ,p_site_state VARCHAR2(240)
112 ,p_site_postal_code VARCHAR2(240)
113 ,p_site_country VARCHAR2(240)
114 ,p_site_customer_id number
115 );
116
117
118 TYPE customer_rec IS RECORD
119 (
120 p_cust_account_id number
121 ,p_customer_name varchar2(360)
122 ,p_email_address varchar2(2000)
123 ,p_gsa_indicator varchar2(1)
124 ,p_account_number varchar2(30)
125 );
126
127
128 -- Table structure to store site attribues
129 TYPE customer_tbl IS TABLE OF Customer_rec
130 INDEX BY BINARY_INTEGER;
131
132
133 -- Table structure to store site attribues
134 TYPE Site_tbl_type IS TABLE OF Site_rec
135 INDEX BY BINARY_INTEGER;
136
137 -- Missing Site Table type
138 G_MISS_SITE_TBL Site_tbl_type;
139
140 -- Table structure to store site attribues
141 TYPE Account_tbl IS TABLE OF NUMBER
142 INDEX BY BINARY_INTEGER;
143
144
145 -- Table structure to store site attribues
146 TYPE Contact_Tbl IS TABLE OF NUMBER
147 INDEX BY BINARY_INTEGER;
148
149 -- Start of Comments
150 -- API name Crate_Account_Layer
151 -- Type Private
152 -- Function Automatic creation of Account Layer from Party Layer
153 --
154 -- Pre-reqs
155 --
156 -- Parameters
157 --
158 -- Notes
159 --
160 -- End of Comments
161
162 PROCEDURE Create_Account_Layer(
163 p_control_rec IN Control_Rec_Type := G_MISS_CONTROL_REC
164 ,x_return_status OUT NOCOPY VARCHAR2
165 ,x_msg_count OUT NOCOPY NUMBER
166 ,x_msg_data OUT NOCOPY VARCHAR2
167 ,p_party_customer_rec IN OUT NOCOPY /* file.sql.39 change */ Party_customer_rec
168 ,p_site_tbl IN OUT NOCOPY /* file.sql.39 change */ site_tbl_type
169 ,p_account_tbl OUT NOCOPY account_tbl
170 ,p_contact_tbl OUT NOCOPY contact_tbl
171 );
172
173
174
175 PROCEDURE Check_and_Create_Account(
176 p_party_id in number
177 ,p_party_number in varchar2
178 ,p_allow_account_creation in boolean
179 ,p_multiple_account_is_error in boolean
180 ,p_account_tbl out NOCOPY account_tbl
181 ,p_out_org_contact_id out NOCOPY number
182 ,p_out_cust_account_role_id out NOCOPY number
183 ,x_return_status OUT NOCOPY VARCHAR2
184 ,x_msg_count OUT NOCOPY NUMBER
185 ,x_msg_data OUT NOCOPY VARCHAR2
186 ,p_site_tbl_count IN number
187 ,p_return_if_only_party in boolean
188 );
189
190
191 PROCEDURE Check_and_Create_Contact(
192 p_party_id in number
193 ,p_cust_account_id in number
194 ,p_org_contact_id in number
195 ,P_site_use_code in varchar2
196 ,p_allow_contact_creation in boolean
197 ,p_create_responsibility in boolean
198 ,p_cust_account_role_id in out NOCOPY /* file.sql.39 change */ number
199 ,p_cust_account_site_id in number
200 ,p_assign_contact_to_site in boolean
201 ,p_multiple_account_is_error in boolean
202 ,p_multiple_contact_is_error in boolean
203 ,p_contact_tbl out NOCOPY contact_tbl
204 ,p_multiple_account out NOCOPY boolean
205 ,x_return_status OUT NOCOPY VARCHAR2
206 ,x_msg_count OUT NOCOPY NUMBER
207 ,x_msg_data OUT NOCOPY VARCHAR2
208 );
209
210
211 PROCEDURE Check_and_Create_Sites (
212 p_party_id in number
213 ,p_cust_account_id in number
214 ,p_site_tbl in out NOCOPY /* file.sql.39 change */ site_tbl_Type
215 ,p_allow_site_creation in boolean
216 ,p_continue_on_error in boolean
217 -- this expects either party_site_use_id or site_use_code and party_site_id
218 ,x_return_status out NOCOPY varchar2
219 ,x_msg_data out NOCOPY varchar2
220 ,x_msg_count out NOCOPY varchar2
221 );
222
223 PROCEDURE set_debug_on ;
224
225 PROCEDURE if_multiple_accounts(
226 p_party_id in number
227 ,p_party_number varchar2
228 ,p_account_Tbl out NOCOPY account_tbl
229 ,x_return_status out NOCOPY varchar2
230 ,x_msg_data out NOCOPY varchar2
231 ,x_msg_count out NOCOPY number
232 );
233
234
235 PROCEDURE Value_to_id(
236 p_party_customer_rec IN OUT NOCOPY Party_customer_rec
237 ,p_site_tbl IN OUT NOCOPY site_tbl_type
238 ,p_permission IN varchar2
239 ,x_return_status OUT NOCOPY VARCHAR2
240 ,x_msg_count OUT NOCOPY NUMBER
241 ,x_msg_data OUT NOCOPY VARCHAR2
242 );
243
244 PROCEDURE find_sold_to_id(
245 p_party_id IN OUT NOCOPY number
246 ,p_cust_account_id in OUT NOCOPY number
247 ,p_party_name IN varchar2
248 ,p_cust_account_number IN varchar2
249 ,p_party_number IN varchar2
250 ,p_permission IN varchar2
251 ,p_site_use_id IN OUT NOCOPY number
252 ,p_party_site_id IN OUT NOCOPY number
253 ,p_party_site_use_id IN OUT NOCOPY number
254 ,p_party_site_use_code IN varchar2 DEFAULT NULL
255 ,p_process_site IN OUT NOCOPY boolean
256 ,x_return_status OUT NOCOPY varchar2
257 );
258
259 procedure find_contact_id(
260 p_contact_id IN OUT NOCOPY number
261 ,p_cust_contact_id in out NOCOPY number
262 ,p_contact_name IN varchar2
263 ,p_permission in varchar2
264 ,p_sold_to_org_id in number
265 ,p_site_use_id in number
266 ,p_party_id in number
267 ,p_site_use_code in varchar2 default null
268 ,x_return_status OUT NOCOPY VARCHAR2
269 );
270
271 procedure find_site_id(
272 p_site_use_id IN OUT NOCOPY number
273 ,p_site_id IN OUT NOCOPY number
274 ,p_account_site_use_id in out NOCOPY number
275 ,p_site_use_code in varchar2
276 ,p_site_address1 in VARCHAR2
277 ,p_site_address2 in VARCHAR2
278 ,p_site_address3 in VARCHAR2
279 ,p_site_address4 in VARCHAR2
280 ,p_site_org in VARCHAR2
281 ,p_site_city in VARCHAR2
282 ,p_site_state in VARCHAR2
283 ,p_site_postal_code in VARCHAR2
284 ,p_site_country in VARCHAR2
285 ,p_site_customer_id in number
286 ,p_sold_to_org_id in number
287 ,p_sold_to_party_id IN number
288 ,p_party_id IN out nocopy number
289 ,p_permission in varchar2
290 ,x_return_status OUT NOCOPY VARCHAR2
291 ,x_msg_data out NOCOPY varchar2
292 ,x_msg_count out NOCOPY varchar2
293 );
294
295 FUNCTION get_party_id(
296 p_party_name in varchar2
297 ,p_party_number in varchar2
298 ,p_party_site_use_code in varchar2
299 ) return number;
300
301 FUNCTION get_party_contact_id(
302 p_contact_name in varchar2
303 ,p_party_id in number
304 ,p_sold_to_org_id in number
305 ) return number;
306
307 FUNCTION get_party_site_id(
308 p_site_address1 IN VARCHAR2
309 ,p_site_address2 IN VARCHAR2
310 ,p_site_address3 IN VARCHAR2
311 ,p_site_address4 IN VARCHAR2
312 ,p_site_location IN VARCHAR2
313 ,p_site_org IN VARCHAR2
314 ,p_sold_to_party_id IN number
315 ,p_site_city IN VARCHAR2
316 ,p_site_state IN VARCHAR2
317 ,p_site_postal_code IN VARCHAR2
318 ,p_site_country IN VARCHAR2
319 ,p_site_customer_id IN VARCHAR2
320 ,p_site_use_code IN VARCHAR2
321 ,p_party_id IN number
322 ) return number;
323
324 FUNCTION Sold_To_Org(
325 p_sold_to_org IN VARCHAR2
326 , p_customer_number IN VARCHAR2
327 , p_site_use_code IN VARCHAR2
328 ) RETURN NUMBER;
329
330 FUNCTION CUST_EXISTS(cust_id number) return Boolean;
331
332 END oe_create_account_info;
333