1 PACKAGE PO_VAL_SHIPMENTS2 AS
2 -- $Header: PO_VAL_SHIPMENTS2.pls 120.10 2006/09/28 17:20:29 jinwang noship $
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_doc_type IN VARCHAR2,
28 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
29 x_result_type OUT NOCOPY VARCHAR2);
30
31 -------------------------------------------------------------------------
32 -- validate shipment num is not null, greater than zero and unique
33 -------------------------------------------------------------------------
34 PROCEDURE shipment_num(p_id_tbl IN PO_TBL_NUMBER,
35 p_shipment_num_tbl IN PO_TBL_NUMBER,
36 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
37 p_po_header_id_tbl IN PO_TBL_NUMBER,
38 p_po_line_id_tbl IN PO_TBL_NUMBER,
39 p_draft_id_tbl IN PO_TBL_NUMBER, -- bug 4642348
40 p_doc_type IN VARCHAR2, -- bug 4642348
41 x_result_set_id IN OUT NOCOPY NUMBER,
42 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
43 x_result_type OUT NOCOPY VARCHAR2);
44
45 -------------------------------------------------------------------------
46 -- If order_type_lookup_code is RATE or FIXED PRICE, validate quantity is not null
47 -------------------------------------------------------------------------
48 PROCEDURE quantity(p_id_tbl IN PO_TBL_NUMBER,
49 p_quantity_tbl IN PO_TBL_NUMBER,
50 p_order_type_lookup_code_tbl IN PO_TBL_VARCHAR30,
51 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
52 x_result_type OUT NOCOPY VARCHAR2);
53
54 -------------------------------------------------------------------------
55 -- If order_type_lookup_code is not FIXED PRICE, price_override cannot be null
56 -------------------------------------------------------------------------
57 PROCEDURE price_override(p_id_tbl IN PO_TBL_NUMBER,
58 p_price_override_tbl IN PO_TBL_NUMBER,
59 p_order_type_lookup_code_tbl IN PO_TBL_VARCHAR30,
60 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
61 x_result_type OUT NOCOPY VARCHAR2);
62
63 -------------------------------------------------------------------------
64 -- If order_type_lookup_code is not FIXED PRICE, price_discount cannot be null
65 -- and price discount cannot be less than zero or greater than 100
66 -------------------------------------------------------------------------
67 PROCEDURE price_discount(p_id_tbl IN PO_TBL_NUMBER,
68 p_price_discount_tbl IN PO_TBL_NUMBER,
69 p_price_override_tbl IN PO_TBL_NUMBER,
70 p_order_type_lookup_code_tbl IN PO_TBL_VARCHAR30,
71 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
72 x_result_type OUT NOCOPY VARCHAR2);
73
74 -------------------------------------------------------------------------
75 -- validate ship_to_organization_id
76 -------------------------------------------------------------------------
77 PROCEDURE ship_to_organization_id(p_id_tbl IN PO_TBL_NUMBER,
78 p_ship_to_organization_id_tbl IN PO_TBL_NUMBER,
79 p_item_id_tbl IN PO_TBL_NUMBER,
80 p_item_revision_tbl IN PO_TBL_VARCHAR5,
81 p_ship_to_location_id_tbl IN PO_TBL_NUMBER,
82 x_result_set_id IN OUT NOCOPY NUMBER,
83 x_result_type OUT NOCOPY VARCHAR2);
84
85
86 -------------------------------------------------------------------------
87 -- validate price break attributes
88 -------------------------------------------------------------------------
89 PROCEDURE price_break_attributes(p_id_tbl IN PO_TBL_NUMBER,
90 p_from_date_tbl IN PO_TBL_DATE,
91 p_to_date_tbl IN PO_TBL_DATE,
92 p_quantity_tbl IN PO_TBL_NUMBER,
93 p_ship_to_org_id_tbl IN PO_TBL_NUMBER,
94 p_ship_to_location_id_tbl IN PO_TBL_NUMBER,
95 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
96 x_result_type OUT NOCOPY VARCHAR2);
97
98 -------------------------------------------------------------------------
99 -- validate_effective_dates
100 -------------------------------------------------------------------------
101 PROCEDURE effective_dates(p_id_tbl IN PO_TBL_NUMBER,
102 p_line_expiration_date_tbl IN PO_TBL_DATE,
103 p_to_date_tbl IN PO_TBL_DATE,
104 p_from_date_tbl IN PO_TBL_DATE,
105 p_header_start_date_tbl IN PO_TBL_DATE,
106 p_header_end_date_tbl IN PO_TBL_DATE,
107 p_price_break_lookup_code_tbl IN PO_TBL_VARCHAR30, -- bug5016163
108 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
109 x_result_type OUT NOCOPY VARCHAR2);
110
111 -------------------------------------------------------------------------
112 -- If shipment_type is STANDARD and enforce_ship_to_loc_code is not equal
113 -- to NONE, REJECT or WARNING
114 -------------------------------------------------------------------------
115 PROCEDURE enforce_ship_to_loc_code(p_id_tbl IN PO_TBL_NUMBER,
116 p_enforce_ship_to_loc_code_tbl IN PO_TBL_VARCHAR30,
117 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
118 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
119 x_result_type OUT NOCOPY VARCHAR2);
120
121 -------------------------------------------------------------------------
122 -- If shipment_type is STANDARD and allow_sub_receipts_flag is not equal
123 -- to NONE, REJECT or WARNING
124 -------------------------------------------------------------------------
125 PROCEDURE allow_sub_receipts_flag(p_id_tbl IN PO_TBL_NUMBER,
126 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
127 p_allow_sub_receipts_flag_tbl IN PO_TBL_VARCHAR1,
128 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
129 x_result_type OUT NOCOPY VARCHAR2);
130
131 -------------------------------------------------------------------------
132 -- If shipment_type is STANDARD and days_early_receipt_allowed is not null
133 -- and less than zero.
134 -------------------------------------------------------------------------
135 PROCEDURE days_early_receipt_allowed(p_id_tbl IN PO_TBL_NUMBER,
136 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
137 p_days_early_rcpt_allowed_tbl IN PO_TBL_NUMBER,
138 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
139 x_result_type OUT NOCOPY VARCHAR2);
140
141 -------------------------------------------------------------------------
142 -- If shipment_type is STANDARD and receipt_days_expection_code is not null
143 -- and not 'NONE', 'REJECT' not 'WARNING'
144 -------------------------------------------------------------------------
145 PROCEDURE receipt_days_exception_code(p_id_tbl IN PO_TBL_NUMBER,
146 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
147 p_rcpt_days_exception_code_tbl IN PO_TBL_VARCHAR30,
148 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
149 x_result_type OUT NOCOPY VARCHAR2);
150
151 -------------------------------------------------------------------------
152 -- If shipment_type is STANDARD and invoice_close_tolerance is not null
153 -- and less than or equal to zero or greater than or equal to 100.
154 -------------------------------------------------------------------------
155 PROCEDURE invoice_close_tolerance(p_id_tbl IN PO_TBL_NUMBER,
156 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
157 p_invoice_close_tolerance_tbl IN PO_TBL_NUMBER,
158 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
159 x_result_type OUT NOCOPY VARCHAR2);
160
161 -------------------------------------------------------------------------
162 -- If shipment_type is STANDARD and receive_close_tolerance is not null
163 -- and less than or equal to zero or greater than or equal to 100.
164 -------------------------------------------------------------------------
165 PROCEDURE receive_close_tolerance(p_id_tbl IN PO_TBL_NUMBER,
166 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
167 p_receive_close_tolerance_tbl IN PO_TBL_NUMBER,
168 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
169 x_result_type OUT NOCOPY VARCHAR2);
170
171 -------------------------------------------------------------------------
172 -- Validate that receiving routing id exists in rcv_routing_headers
173 -------------------------------------------------------------------------
174 PROCEDURE receiving_routing_id(p_id_tbl IN PO_TBL_NUMBER,
175 p_shipment_type_tbl IN PO_TBL_VARCHAR30,
176 p_receiving_routing_id_tbl IN PO_TBL_NUMBER,
177 x_result_set_id IN OUT NOCOPY NUMBER,
178 x_result_type OUT NOCOPY VARCHAR2);
179
180 -------------------------------------------------------------------------
181 -- Validate accrue_on_receipt_flag is Y or N, if not null.
182 -------------------------------------------------------------------------
183 PROCEDURE accrue_on_receipt_flag(p_id_tbl IN PO_TBL_NUMBER,
184 p_accrue_on_receipt_flag_tbl IN PO_TBL_VARCHAR1,
185 x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
186 x_result_type OUT NOCOPY VARCHAR2);
187
188 -------------------------------------------------------------------------------------
189 -- Validate price_breaks_flag = Y for the given style
190 -------------------------------------------------------------------------------------
191 PROCEDURE style_related_info(p_id_tbl IN po_tbl_number,
192 p_style_id_tbl IN po_tbl_number,
193 x_result_set_id IN OUT NOCOPY NUMBER,
194 x_result_type OUT NOCOPY VARCHAR2);
195
196 -------------------------------------------------------------------------
197 -- tax_code_id and tax_name must be valid if either is not null;
198 -- If tax_name and tax_code_id are both not null,
199 -- then tax_code_id and tax_name must be a valid combination.
200 -------------------------------------------------------------------------
201 PROCEDURE tax_name(p_id_tbl IN PO_TBL_NUMBER,
202 p_tax_name_tbl IN PO_TBL_VARCHAR30,
203 p_tax_code_id_tbl IN PO_TBL_NUMBER,
204 p_need_by_date_tbl IN PO_TBL_DATE,
205 p_allow_tax_code_override IN VARCHAR2,
206 p_operating_unit IN NUMBER,
207 x_result_set_id IN OUT NOCOPY NUMBER,
208 x_result_type OUT NOCOPY VARCHAR2);
209
210 -------------------------------------------------------------------------
211 -- fob_lookup_code must be valid in PO_LOOKUP_CODES
212 -------------------------------------------------------------------------
213 PROCEDURE fob_lookup_code(p_id_tbl IN po_tbl_number,
214 p_fob_lookup_code_tbl IN po_tbl_varchar30,
215 x_result_set_id IN OUT NOCOPY NUMBER,
216 x_result_type OUT NOCOPY VARCHAR2);
217
218 -------------------------------------------------------------------------
219 -- freight_terms must be valid in PO_LOOKUP_CODES
220 -------------------------------------------------------------------------
221 PROCEDURE freight_terms(p_id_tbl IN po_tbl_number,
222 p_freight_terms_tbl IN po_tbl_varchar30,
223 x_result_set_id IN OUT NOCOPY NUMBER,
224 x_result_type OUT NOCOPY VARCHAR2);
225
226 -------------------------------------------------------------------------
227 -- freight_carrier must be valid in ORG_FREIGHT
228 -------------------------------------------------------------------------
229 PROCEDURE freight_carrier(p_id_tbl IN po_tbl_number,
230 p_freight_carrier_tbl IN po_tbl_varchar30,
231 p_inventory_org_id IN NUMBER,
232 x_result_set_id IN OUT NOCOPY NUMBER,
233 x_result_type OUT NOCOPY VARCHAR2);
234
235 -------------------------------------------------------------------------
236 -- validate qty_rcv_exception_code against PO_LOOKUP_CODES
237 -------------------------------------------------------------------------
238 PROCEDURE qty_rcv_exception_code(
239 p_id_tbl IN po_tbl_number,
240 p_qty_rcv_exception_code_tbl IN po_tbl_varchar30,
241 x_result_set_id IN OUT NOCOPY NUMBER,
242 x_result_type OUT NOCOPY VARCHAR2);
243
247 -------------------------------------------------------------------------
244 -------------------------------------------------------------------------
245 -- Cannot create price breaks for Amount-Based or Fixed Price lines in a
246 -- Blanket Purchase Agreement.
248 PROCEDURE price_break(
249 p_id_tbl IN po_tbl_number,
250 p_order_type_lookup_code_tbl IN po_tbl_varchar30,
251 x_results IN OUT NOCOPY po_validation_results_type,
252 x_result_type OUT NOCOPY VARCHAR2);
253
254 END PO_VAL_SHIPMENTS2;