1 PACKAGE PO_VAL_SHIPMENTS2 AUTHID CURRENT_USER AS
2 -- $Header: PO_VAL_SHIPMENTS2.pls 120.12 2011/03/10 05:49:48 vrecharl ship $
3
4 -------------------------------------------------------------------------
5 -- if purchase_basis is 'TEMP LABOR', the need_by_date column must be null
6 -------------------------------------------------------------------------
7 PROCEDURE need_by_date(p_id_tbl IN PO_TBL_NUMBER,
8 p_purchase_basis_tbl IN PO_TBL_VARCHAR30,
9 p_need_by_date_tbl IN PO_TBL_DATE,
10 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
11 x_result_type OUT NOCOPY VARCHAR2);
12
13 -------------------------------------------------------------------------
14 -- if purchase_basis is 'TEMP LABOR', the promised_date must be null
15 -------------------------------------------------------------------------
16 PROCEDURE promised_date(p_id_tbl IN PO_TBL_NUMBER,
17 p_purchase_basis_tbl IN PO_TBL_VARCHAR30,
18 p_promised_date_tbl IN PO_TBL_DATE,
19 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
20 x_result_type OUT NOCOPY VARCHAR2);
21
22 -------------------------------------------------------------------------
23 -- validate shipment type
24 -------------------------------------------------------------------------
25 PROCEDURE shipment_type(p_id_tbl IN PO_TBL_NUMBER,
26 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
27 p_style_id_tbl IN po_tbl_number, -- PDOI for Complex PO Project
28 p_doc_type IN VARCHAR2,
29 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
30 x_result_type OUT NOCOPY VARCHAR2);
31
32 -------------------------------------------------------------------------
33 -- PDOI for Complex PO Project: Validate payment type.
34 -------------------------------------------------------------------------
35 PROCEDURE payment_type(p_id_tbl IN PO_TBL_NUMBER,
36 po_line_id_tbl IN PO_TBL_NUMBER,
37 p_style_id_tbl IN PO_TBL_NUMBER,
38 p_payment_type_tbl IN PO_TBL_VARCHAR30,
39 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
40 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
41 x_result_type OUT NOCOPY VARCHAR2);
42
43 -------------------------------------------------------------------------
44 -- validate shipment num is not null, greater than zero and unique
45 -------------------------------------------------------------------------
46 PROCEDURE shipment_num(p_id_tbl IN PO_TBL_NUMBER,
47 p_shipment_num_tbl IN PO_TBL_NUMBER,
48 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
49 p_po_header_id_tbl IN PO_TBL_NUMBER,
50 p_po_line_id_tbl IN PO_TBL_NUMBER,
51 p_draft_id_tbl IN PO_TBL_NUMBER, -- bug 4642348
52 p_style_id_tbl IN PO_TBL_NUMBER, -- PDOI for Complex PO Project
53 p_doc_type IN VARCHAR2, -- bug 4642348
54 x_result_set_id IN OUT NOCOPY NUMBER,
55 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
56 x_result_type OUT NOCOPY VARCHAR2);
57
58 -------------------------------------------------------------------------
59 -- If order_type_lookup_code is RATE or FIXED PRICE, validate quantity is not null
60 -------------------------------------------------------------------------
61 PROCEDURE quantity(p_id_tbl IN PO_TBL_NUMBER,
62 p_quantity_tbl IN PO_TBL_NUMBER,
63 p_order_type_lookup_code_tbl IN PO_TBL_VARCHAR30,
64 p_shipment_type_tbl IN PO_TBL_VARCHAR30, -- PDOI for Complex PO Project
65 p_style_id_tbl IN PO_TBL_NUMBER, -- PDOI for Complex PO Project
66 p_payment_type_tbl IN PO_TBL_VARCHAR30, -- PDOI for Complex PO Project
67 p_line_quantity_tbl IN PO_TBL_NUMBER, -- PDOI for Complex PO Project
68 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
69 x_result_type OUT NOCOPY VARCHAR2);
70
71 -------------------------------------------------------------------------
72 -- PDOI for Complex PO Project: Validate amount at shipment, for DELIVERY
73 -- type shipment of 'complex PO with contract financing enabled'.
74 -------------------------------------------------------------------------
75 PROCEDURE amount(p_id_tbl IN PO_TBL_NUMBER,
76 p_amount_tbl IN PO_TBL_NUMBER,
77 p_shipment_type_tbl IN PO_TBL_VARCHAR30, -- PDOI for Complex PO Project
78 p_style_id_tbl IN PO_TBL_NUMBER, -- PDOI for Complex PO Project
79 p_payment_type_tbl IN PO_TBL_VARCHAR30, -- PDOI for Complex PO Project
80 p_line_amount_tbl IN PO_TBL_NUMBER, -- PDOI for Complex PO Project
81 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
82 x_result_type OUT NOCOPY VARCHAR2);
83
84 -------------------------------------------------------------------------
85 -- If order_type_lookup_code is not FIXED PRICE, price_override cannot be null
86 -------------------------------------------------------------------------
87 PROCEDURE price_override(p_id_tbl IN PO_TBL_NUMBER,
88 p_price_override_tbl IN PO_TBL_NUMBER,
89 p_order_type_lookup_code_tbl IN PO_TBL_VARCHAR30,
90 p_shipment_type_tbl IN PO_TBL_VARCHAR30, -- PDOI for Complex PO Project
91 p_style_id_tbl IN PO_TBL_NUMBER, -- PDOI for Complex PO Project
92 p_payment_type_tbl IN PO_TBL_VARCHAR30, -- PDOI for Complex PO Project
93 p_line_unit_price_tbl IN PO_TBL_NUMBER, -- PDOI for Complex PO Project
94 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
95 x_result_type OUT NOCOPY VARCHAR2);
96
97 -------------------------------------------------------------------------
98 -- If order_type_lookup_code is not FIXED PRICE, price_discount cannot be null
99 -- and price discount cannot be less than zero or greater than 100
100 -------------------------------------------------------------------------
101 PROCEDURE price_discount(p_id_tbl IN PO_TBL_NUMBER,
102 p_price_discount_tbl IN PO_TBL_NUMBER,
103 p_price_override_tbl IN PO_TBL_NUMBER,
104 p_order_type_lookup_code_tbl IN PO_TBL_VARCHAR30,
105 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
106 x_result_type OUT NOCOPY VARCHAR2);
107
108 -------------------------------------------------------------------------
109 -- validate ship_to_organization_id
110 -------------------------------------------------------------------------
111 PROCEDURE ship_to_organization_id(p_id_tbl IN PO_TBL_NUMBER,
112 p_ship_to_organization_id_tbl IN PO_TBL_NUMBER,
113 p_item_id_tbl IN PO_TBL_NUMBER,
114 p_item_revision_tbl IN PO_TBL_VARCHAR5,
115 p_ship_to_location_id_tbl IN PO_TBL_NUMBER,
116 x_result_set_id IN OUT NOCOPY NUMBER,
117 x_result_type OUT NOCOPY VARCHAR2);
118
119
120 -------------------------------------------------------------------------
121 -- validate price break attributes
122 -------------------------------------------------------------------------
123 PROCEDURE price_break_attributes(p_id_tbl IN PO_TBL_NUMBER,
124 p_from_date_tbl IN PO_TBL_DATE,
125 p_to_date_tbl IN PO_TBL_DATE,
126 p_quantity_tbl IN PO_TBL_NUMBER,
127 p_ship_to_org_id_tbl IN PO_TBL_NUMBER,
128 p_ship_to_location_id_tbl IN PO_TBL_NUMBER,
129 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
130 x_result_type OUT NOCOPY VARCHAR2);
131
132 -------------------------------------------------------------------------
133 -- validate_effective_dates
134 -------------------------------------------------------------------------
135 PROCEDURE effective_dates(p_id_tbl IN PO_TBL_NUMBER,
136 p_line_expiration_date_tbl IN PO_TBL_DATE,
137 p_to_date_tbl IN PO_TBL_DATE,
138 p_from_date_tbl IN PO_TBL_DATE,
139 p_header_start_date_tbl IN PO_TBL_DATE,
140 p_header_end_date_tbl IN PO_TBL_DATE,
141 p_price_break_lookup_code_tbl IN PO_TBL_VARCHAR30, -- bug5016163
142 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
143 x_result_type OUT NOCOPY VARCHAR2);
144
145 -------------------------------------------------------------------------
146 -- If shipment_type is STANDARD and enforce_ship_to_loc_code is not equal
147 -- to NONE, REJECT or WARNING
148 -------------------------------------------------------------------------
149 PROCEDURE enforce_ship_to_loc_code(p_id_tbl IN PO_TBL_NUMBER,
150 p_enforce_ship_to_loc_code_tbl IN PO_TBL_VARCHAR30,
151 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
152 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
153 x_result_type OUT NOCOPY VARCHAR2);
154
155 -------------------------------------------------------------------------
156 -- If shipment_type is STANDARD and allow_sub_receipts_flag is not equal
157 -- to NONE, REJECT or WARNING
158 -------------------------------------------------------------------------
159 PROCEDURE allow_sub_receipts_flag(p_id_tbl IN PO_TBL_NUMBER,
160 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
161 p_allow_sub_receipts_flag_tbl IN PO_TBL_VARCHAR1,
162 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
163 x_result_type OUT NOCOPY VARCHAR2);
164
165 -------------------------------------------------------------------------
166 -- If shipment_type is STANDARD and days_early_receipt_allowed is not null
167 -- and less than zero.
168 -------------------------------------------------------------------------
169 PROCEDURE days_early_receipt_allowed(p_id_tbl IN PO_TBL_NUMBER,
170 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
171 p_days_early_rcpt_allowed_tbl IN PO_TBL_NUMBER,
172 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
173 x_result_type OUT NOCOPY VARCHAR2);
174
175 -------------------------------------------------------------------------
176 -- If shipment_type is STANDARD and receipt_days_expection_code is not null
177 -- and not 'NONE', 'REJECT' not 'WARNING'
178 -------------------------------------------------------------------------
179 PROCEDURE receipt_days_exception_code(p_id_tbl IN PO_TBL_NUMBER,
180 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
181 p_rcpt_days_exception_code_tbl IN PO_TBL_VARCHAR30,
182 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
183 x_result_type OUT NOCOPY VARCHAR2);
184
185 -------------------------------------------------------------------------
186 -- If shipment_type is STANDARD and invoice_close_tolerance is not null
187 -- and less than or equal to zero or greater than or equal to 100.
188 -------------------------------------------------------------------------
189 PROCEDURE invoice_close_tolerance(p_id_tbl IN PO_TBL_NUMBER,
190 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
191 p_invoice_close_tolerance_tbl IN PO_TBL_NUMBER,
192 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
193 x_result_type OUT NOCOPY VARCHAR2);
194
195 -------------------------------------------------------------------------
196 -- If shipment_type is STANDARD and receive_close_tolerance is not null
197 -- and less than or equal to zero or greater than or equal to 100.
198 -------------------------------------------------------------------------
199 PROCEDURE receive_close_tolerance(p_id_tbl IN PO_TBL_NUMBER,
200 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
201 p_receive_close_tolerance_tbl IN PO_TBL_NUMBER,
202 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
203 x_result_type OUT NOCOPY VARCHAR2);
204
205 -------------------------------------------------------------------------
206 -- Validate that receiving routing id exists in rcv_routing_headers
207 -------------------------------------------------------------------------
208 PROCEDURE receiving_routing_id(p_id_tbl IN PO_TBL_NUMBER,
209 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
210 p_receiving_routing_id_tbl IN PO_TBL_NUMBER,
211 x_result_set_id IN OUT NOCOPY NUMBER,
212 x_result_type OUT NOCOPY VARCHAR2);
213
214 -------------------------------------------------------------------------
215 -- Validate accrue_on_receipt_flag is Y or N, if not null.
216 -------------------------------------------------------------------------
217 PROCEDURE accrue_on_receipt_flag(p_id_tbl IN PO_TBL_NUMBER,
218 p_accrue_on_receipt_flag_tbl IN PO_TBL_VARCHAR1,
219 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
220 x_result_type OUT NOCOPY VARCHAR2);
221
222 -------------------------------------------------------------------------
223 -- PDOI for Complex PO Project: Validate advance amount at shipment.
224 -------------------------------------------------------------------------
225 PROCEDURE advance_amt_le_amt(p_id_tbl IN PO_TBL_NUMBER,
226 p_payment_type_tbl IN PO_TBL_VARCHAR30,
227 p_advance_tbl IN PO_TBL_NUMBER,
228 p_amount_tbl IN PO_TBL_NUMBER,
229 p_quantity_tbl IN PO_TBL_NUMBER,
230 p_price_tbl IN PO_TBL_NUMBER,
231 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
232 x_result_type OUT NOCOPY VARCHAR2);
233
234 -------------------------------------------------------------------------------------
235 -- Validate price_breaks_flag = Y for the given style
236 -------------------------------------------------------------------------------------
237 PROCEDURE style_related_info(p_id_tbl IN po_tbl_number,
238 p_style_id_tbl IN po_tbl_number,
239 x_result_set_id IN OUT NOCOPY NUMBER,
240 x_result_type OUT NOCOPY VARCHAR2);
241
242 -------------------------------------------------------------------------
243 -- tax_code_id and tax_name must be valid if either is not null;
244 -- If tax_name and tax_code_id are both not null,
245 -- then tax_code_id and tax_name must be a valid combination.
246 -------------------------------------------------------------------------
247 PROCEDURE tax_name(p_id_tbl IN PO_TBL_NUMBER,
248 p_tax_name_tbl IN PO_TBL_VARCHAR30,
249 p_tax_code_id_tbl IN PO_TBL_NUMBER,
250 p_need_by_date_tbl IN PO_TBL_DATE,
251 p_allow_tax_code_override IN VARCHAR2,
252 p_operating_unit IN NUMBER,
253 x_result_set_id IN OUT NOCOPY NUMBER,
254 x_result_type OUT NOCOPY VARCHAR2);
255
256 -------------------------------------------------------------------------
257 -- fob_lookup_code must be valid in PO_LOOKUP_CODES
258 -------------------------------------------------------------------------
259 PROCEDURE fob_lookup_code(p_id_tbl IN po_tbl_number,
260 p_fob_lookup_code_tbl IN po_tbl_varchar30,
261 x_result_set_id IN OUT NOCOPY NUMBER,
262 x_result_type OUT NOCOPY VARCHAR2);
263
264 -------------------------------------------------------------------------
265 -- freight_terms must be valid in PO_LOOKUP_CODES
266 -------------------------------------------------------------------------
267 PROCEDURE freight_terms(p_id_tbl IN po_tbl_number,
268 p_freight_terms_tbl IN po_tbl_varchar30,
269 x_result_set_id IN OUT NOCOPY NUMBER,
270 x_result_type OUT NOCOPY VARCHAR2);
271
272 -------------------------------------------------------------------------
273 -- freight_carrier must be valid in ORG_FREIGHT
274 -------------------------------------------------------------------------
275 PROCEDURE freight_carrier(p_id_tbl IN po_tbl_number,
276 p_freight_carrier_tbl IN po_tbl_varchar30,
277 p_inventory_org_id IN NUMBER,
278 x_result_set_id IN OUT NOCOPY NUMBER,
279 x_result_type OUT NOCOPY VARCHAR2);
280
281 -------------------------------------------------------------------------
282 -- validate qty_rcv_exception_code against PO_LOOKUP_CODES
283 -------------------------------------------------------------------------
284 PROCEDURE qty_rcv_exception_code(
285 p_id_tbl IN po_tbl_number,
286 p_qty_rcv_exception_code_tbl IN po_tbl_varchar30,
287 x_result_set_id IN OUT NOCOPY NUMBER,
288 x_result_type OUT NOCOPY VARCHAR2);
289
290 -------------------------------------------------------------------------
291 -- Cannot create price breaks for Amount-Based or Fixed Price lines in a
292 -- Blanket Purchase Agreement.
293 -------------------------------------------------------------------------
294 PROCEDURE price_break(
295 p_id_tbl IN po_tbl_number,
296 p_order_type_lookup_code_tbl IN po_tbl_varchar30,
297 x_results IN OUT NOCOPY po_validation_results_type,
298 x_result_type OUT NOCOPY VARCHAR2);
299
300 END PO_VAL_SHIPMENTS2;