1 PACKAGE po_autocreate_pvt AUTHID CURRENT_USER AS
2 /* $Header: PO_AUTOCREATE_PVT.pls 120.1.12020000.13 2013/05/02 10:57:25 pamandav ship $ */
3
4
5
6 /* -----------------------------------------------------
7 ---------------- PRIVATE PROCEDURES -----------------
8 ----------------------------------------------------- */
9
10 /* ============================================================================
11 NAME: wrapup
12 DESC: Perform actions to be done right before AutoCreate quits.
13
14 NOTE: Call PO_INTERFACE_S.wrapup()
15 ============================================================================ */
16
17 PROCEDURE wrapup;
18
19
20
21
22
23 /* ----------------------------------------------------
24 ----------------- PUBLIC PROCEDURES ----------------
25 ---------------------------------------------------- */
26
27 /* ============================================================================
28 NAME: CREATE_PO
29 DESC: Create/Add to PO from requisition data in the PO_HEADERS,LINES
30 and DISTRIBUTION interface tables.
31
32 ARGS: IN : x_interface_header_id IN NUMBER - Interface Header Id used to fetch the
33 interface data.
34 p_sourcing_k_doc_type IN VARCHAR2 - The document type that Sourcing
35 has seeded in Contracts.
36 Deafault null
37 p_conterms_exist_flag IN VARCHAR2 - Whether the sourcing document
38 has contract template attached.
39 Deafult - N
40 p_document_creation_method IN VARCHAR2 - Stores the method by which the
41 document has been created.
42 IN OUT : x_document_id IN OUT NOCOPY NUMBER
43
44 Algorithm:
45 1. This procedure will call the following in order.
46 PO_AUTOCREATE_PREPROC_PVT.process
47 PO_AUTOCREATE_MAINPROC_PVT.process
48 PO_AUTOCREATE_POSTPROC_PVT.process
49
50 2. This also takes care of cleaning up the interface wrapup and rolling
51 back the transaction incase of unhandled exception. This also takes
52 care communicating to the calling code about the result of the process.
53
54 3. This *might* need to be overloaded to expose this as an private / group
55 API. The API will follow the regular API standards.
56 ==============================================================================*/
57
58 PROCEDURE create_po(x_interface_header_id IN NUMBER
59 ,x_document_id IN OUT NOCOPY NUMBER
60 ,p_sourcing_k_doc_type IN VARCHAR2 --<CONTERMS FPJ>
61 ,p_conterms_exist_flag IN VARCHAR2 --<CONTERMS FPJ>
62 ,p_document_creation_method IN VARCHAR2 --<DBI FPJ>
63 ,p_req_operating_unit_id IN NUMBER
64 ,p_purch_operating_unit_id IN NUMBER
65 ,p_orig_org_id IN NUMBER
66 );
67
68 /* ============================================================================
69 NAME: CALCULATE_LOCAL
70 DESC: This procedure serve as a hook to the function of localization team.
71
72 ==========================================================================*/
73
74 PROCEDURE calculate_local(document_type varchar2,
75 level_type varchar2,
76 level_id number);
77
78 --CLM Phase 2 Autocreate grouping
79 --Error Handling.
80 /* ============================================================================
81 NAME: report_error
82 DESC: This procedure generates a PL/SQL Table holding all error messages.
83
84 ==========================================================================*/
85 PROCEDURE report_error( error_msg VARCHAR2 ,
86 x_token1_name IN VARCHAR2 := 'SQLCODE',
87 x_token1_value IN VARCHAR2 := NULL,
88 x_token2_name IN VARCHAR2 := 'REQ_NUM',
89 x_token2_value IN VARCHAR2 := null,
90 x_token3_name IN VARCHAR2 := NULL,
91 x_token3_value IN VARCHAR2 := NULL,
92 x_token4_name IN VARCHAR2 := NULL,
93 x_token4_value IN VARCHAR2 := NULL ) ;
94
95 /* ============================================================================
96 NAME: get_requisition_line_num
97 DESC: For a given requistion line id this function will return the
98 Requisition number concatenated with line Number.
99
100 ==========================================================================*/
101 FUNCTION get_requisition_line_num(p_req_line_id in number )
102 RETURN NUMBER;
103 --CLM Phase 2 Autocreate grouping
104 --Error Handling.
105
106 /*Bug 13584723 : Get the Error code table
107 so that it can be used in the sourcing flow*/
108 FUNCTION get_error_code_tbl
109 RETURN PO_TBL_VARCHAR2000;
110
111 PROCEDURE initialize_error_code_tbl;
112 /*Bug 13584723*/
113
114 --<PAR Project changes START>
115 /* ============================================================================
116 NAME: form_attr_display_name
117 DESC: This procedure forms the list of display names of address
118 related attributes.This is usefult in UDA import.
119 ==========================================================================*/
120
121 PROCEDURE form_attr_display_name(p_attr_group_type IN VARCHAR2,
122 p_par_draft_id NUMBER,
123 p_po_header_id NUMBER,
124 p_attr_display_name OUT NOCOPY po_tbl_varchar100) ;
125
126 /* ============================================================================
127 NAME: insert_row_in_uda_interface
128 DESC: This procedure inserts row in po_uda_interface table.
129 ==========================================================================*/
130
131 PROCEDURE insert_row_in_uda_interface
132 (
133 p_transaction_id IN NUMBER,
134 p_row_identifier IN NUMBER,
135 p_pk1_value NUMBER ,
136 p_mod_draft_id NUMBER,
137 p_uda_template_id NUMBER,
138 p_attr_group_type VARCHAR2 ,
139 p_attr_group_name IN VARCHAR2 ,
140 p_attr_name IN VARCHAR2,
141 p_data_level IN VARCHAR2,
142 p_mod_value VARCHAR2);
143
144 /* ============================================================================
145 NAME: POPULATE_UDA_DATA_IN_INTERFACE
146 DESC: This procedure ppopulates data in po_uda_interface table.
147 ==========================================================================*/
148
149 PROCEDURE POPULATE_UDA_DATA_IN_INTERFACE
150 (
151 p_header_id IN NUMBER,
152 p_mod_draft_id IN NUMBER ,
153 p_par_draft_id IN NUMBER,
154 p_pk1_value IN NUMBER,
155 p_mod_doc_source_name IN VARCHAR2,
156 p_transaction_id NUMBER ,
157 p_uda_template_id IN NUMBER );
158
159
160 /* ============================================================================
161 NAME: DO_POST_PROCESSING_FOR_PAR
162 DESC: This procedure updates mod_draft_id, line status and document creation
163 columns once the autocreate is successful.
164 ==========================================================================*/
165 PROCEDURE do_post_processing_for_par
166 (p_mod_draft_id IN NUMBER ,
167 p_par_draft_id_tbl IN po_tbl_number,
168 p_is_header_changed VARCHAR2,
169 p_par_line_tbl IN po_tbl_number DEFAULT NULL ) ;
170
171 PROCEDURE COMPLEX_PRICING_VALIDATION
172 (P_MOD_DRAFT_ID IN NUMBER ,
173 P_PAR_DRAFT_ID IN NUMBER,
174 P_PO_LINE_ID IN NUMBER,
175 x_return_type OUT NOCOPY VARCHAR2
176 );
177
178 PROCEDURE UPDATE_MOD_LINE_ID
179 (p_par_draft_id IN NUMBER,
180 p_par_line_id IN NUMBER,
181 p_mod_line_id IN NUMBER);
182
183 PROCEDURE COPY_PAR_ATTACHMENTS
184 (p_par_draft_id_tbl IN PO_TBL_NUMBER,
185 p_par_line_id_tbl IN PO_TBL_NUMBER,
186 p_mod_draft_id IN NUMBER ) ;
187
188 --<PAR Project changes END>
189
190 --Bug 16584995
191 FUNCTION get_attachment_count
192 (p_pk1_value IN NUMBER,
193 p_po_draft_id IN NUMBER,
194 p_entity_name IN VARCHAR2
195 ) RETURN NUMBER;
196
197 END PO_AUTOCREATE_PVT;