143: -- Check if the days early value is greater than or equal to zero.
144: -------------------------------------------------------------------------
145:
146: PROCEDURE days_early_gte_zero(
147: p_line_loc_id_tbl IN PO_TBL_NUMBER
148: , p_days_early_rcpt_allowed_tbl IN PO_TBL_NUMBER
149: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
150: , x_result_type OUT NOCOPY VARCHAR2
151: )
144: -------------------------------------------------------------------------
145:
146: PROCEDURE days_early_gte_zero(
147: p_line_loc_id_tbl IN PO_TBL_NUMBER
148: , p_days_early_rcpt_allowed_tbl IN PO_TBL_NUMBER
149: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
150: , x_result_type OUT NOCOPY VARCHAR2
151: )
152: IS
170: -------------------------------------------------------------------------
171: -- Check if the days late value is greater than or equal to zero.
172: -------------------------------------------------------------------------
173: PROCEDURE days_late_gte_zero(
174: p_line_loc_id_tbl IN PO_TBL_NUMBER
175: , p_days_late_rcpt_allowed_tbl IN PO_TBL_NUMBER
176: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
177: , x_result_type OUT NOCOPY VARCHAR2
178: )
171: -- Check if the days late value is greater than or equal to zero.
172: -------------------------------------------------------------------------
173: PROCEDURE days_late_gte_zero(
174: p_line_loc_id_tbl IN PO_TBL_NUMBER
175: , p_days_late_rcpt_allowed_tbl IN PO_TBL_NUMBER
176: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
177: , x_result_type OUT NOCOPY VARCHAR2
178: )
179: IS
198: -- Check if the tolerance value is within 1-100
199: -------------------------------------------------------------------------
200:
201: PROCEDURE rcv_close_tol_within_range (
202: p_line_loc_id_tbl IN PO_TBL_NUMBER
203: , p_receive_close_tolerance_tbl IN PO_TBL_NUMBER
204: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
205: , x_result_type OUT NOCOPY VARCHAR2
206: )
199: -------------------------------------------------------------------------
200:
201: PROCEDURE rcv_close_tol_within_range (
202: p_line_loc_id_tbl IN PO_TBL_NUMBER
203: , p_receive_close_tolerance_tbl IN PO_TBL_NUMBER
204: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
205: , x_result_type OUT NOCOPY VARCHAR2
206: )
207: IS
225: -- Check if the tolerance value is within 1-100
226: -------------------------------------------------------------------------
227:
228: PROCEDURE over_rcpt_tol_within_range (
229: p_line_loc_id_tbl IN PO_TBL_NUMBER
230: , p_qty_rcv_tolerance_tbl IN PO_TBL_NUMBER
231: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
232: , x_result_type OUT NOCOPY VARCHAR2
233: )
226: -------------------------------------------------------------------------
227:
228: PROCEDURE over_rcpt_tol_within_range (
229: p_line_loc_id_tbl IN PO_TBL_NUMBER
230: , p_qty_rcv_tolerance_tbl IN PO_TBL_NUMBER
231: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
232: , x_result_type OUT NOCOPY VARCHAR2
233: )
234: IS
252: -- If the shipment is planned, fail if the promised date and need-by date
253: -- are both null.
254: -------------------------------------------------------------------------
255: PROCEDURE planned_item_null_date_check (
256: p_line_loc_id_tbl IN PO_TBL_NUMBER
257: , p_need_by_date_tbl IN PO_TBL_DATE
258: , p_promised_date_tbl IN PO_TBL_DATE
259: , p_item_id_tbl IN PO_TBL_NUMBER
260: , x_result_set_id IN OUT NOCOPY NUMBER
255: PROCEDURE planned_item_null_date_check (
256: p_line_loc_id_tbl IN PO_TBL_NUMBER
257: , p_need_by_date_tbl IN PO_TBL_DATE
258: , p_promised_date_tbl IN PO_TBL_DATE
259: , p_item_id_tbl IN PO_TBL_NUMBER
260: , x_result_set_id IN OUT NOCOPY NUMBER
261: , x_result_type OUT NOCOPY VARCHAR2
262: )
263: IS
262: )
263: IS
264: d_mod CONSTANT VARCHAR2(100) := D_planned_item_null_date_check;
265:
266: l_line_loc_id_tbl PO_TBL_NUMBER;
267: l_item_id_tbl PO_TBL_NUMBER;
268: l_input_size NUMBER;
269: l_count NUMBER;
270:
263: IS
264: d_mod CONSTANT VARCHAR2(100) := D_planned_item_null_date_check;
265:
266: l_line_loc_id_tbl PO_TBL_NUMBER;
267: l_item_id_tbl PO_TBL_NUMBER;
268: l_input_size NUMBER;
269: l_count NUMBER;
270:
271: BEGIN
285: x_result_type := PO_VALIDATIONS.c_result_type_SUCCESS;
286:
287: l_input_size := p_line_loc_id_tbl.COUNT;
288:
289: l_line_loc_id_tbl := PO_TBL_NUMBER();
290: l_line_loc_id_tbl.extend(l_input_size);
291: l_item_id_tbl := PO_TBL_NUMBER();
292: l_item_id_tbl.extend(l_input_size);
293:
287: l_input_size := p_line_loc_id_tbl.COUNT;
288:
289: l_line_loc_id_tbl := PO_TBL_NUMBER();
290: l_line_loc_id_tbl.extend(l_input_size);
291: l_item_id_tbl := PO_TBL_NUMBER();
292: l_item_id_tbl.extend(l_input_size);
293:
294: l_count := 0;
295:
356: -- cannot be '4WAY'.
357: --
358: -------------------------------------------------------------------------
359: PROCEDURE match_4way_check(
360: p_line_loc_id_tbl IN PO_TBL_NUMBER
361: , p_value_basis_tbl IN PO_TBL_VARCHAR30 --
362: , p_receipt_required_flag_tbl IN PO_TBL_VARCHAR1
363: , p_inspection_required_flag_tbl IN PO_TBL_VARCHAR1
364: , p_payment_type_tbl IN PO_TBL_VARCHAR30 --
426: -------------------------------------------------------------------------
427: -- The invoice close tolerance must be between 0 and 100, inclusive.
428: -------------------------------------------------------------------------
429: PROCEDURE inv_close_tol_range_check (
430: p_line_loc_id_tbl IN PO_TBL_NUMBER
431: , p_invoice_close_tolerance_tbl IN PO_TBL_NUMBER
432: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
433: , x_result_type OUT NOCOPY VARCHAR2
434: )
427: -- The invoice close tolerance must be between 0 and 100, inclusive.
428: -------------------------------------------------------------------------
429: PROCEDURE inv_close_tol_range_check (
430: p_line_loc_id_tbl IN PO_TBL_NUMBER
431: , p_invoice_close_tolerance_tbl IN PO_TBL_NUMBER
432: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
433: , x_result_type OUT NOCOPY VARCHAR2
434: )
435: IS
456: -- That the need by date is within the open purchasing period.
457: -- Otherwise, add the error 'RCV_ALL_OPEN_PO_PERIOD_HTML'.
458: -------------------------------------------------------------------------
459: PROCEDURE need_by_date_open_period_check(
460: p_line_loc_id_tbl IN PO_TBL_NUMBER
461: , p_line_id_tbl IN PO_TBL_NUMBER
462: , p_need_by_date_tbl IN PO_TBL_DATE
463: , p_org_id_tbl IN PO_TBL_NUMBER
464: , x_result_set_id IN OUT NOCOPY NUMBER
457: -- Otherwise, add the error 'RCV_ALL_OPEN_PO_PERIOD_HTML'.
458: -------------------------------------------------------------------------
459: PROCEDURE need_by_date_open_period_check(
460: p_line_loc_id_tbl IN PO_TBL_NUMBER
461: , p_line_id_tbl IN PO_TBL_NUMBER
462: , p_need_by_date_tbl IN PO_TBL_DATE
463: , p_org_id_tbl IN PO_TBL_NUMBER
464: , x_result_set_id IN OUT NOCOPY NUMBER
465: , x_result_type OUT NOCOPY VARCHAR2
459: PROCEDURE need_by_date_open_period_check(
460: p_line_loc_id_tbl IN PO_TBL_NUMBER
461: , p_line_id_tbl IN PO_TBL_NUMBER
462: , p_need_by_date_tbl IN PO_TBL_DATE
463: , p_org_id_tbl IN PO_TBL_NUMBER
464: , x_result_set_id IN OUT NOCOPY NUMBER
465: , x_result_type OUT NOCOPY VARCHAR2
466: )
467: IS
490: -- That the promised date is within the open purchasing period.
491: -- Otherwise, add the error 'RCV_ALL_OPEN_PO_PERIOD_HTML'.
492: -------------------------------------------------------------------------
493: PROCEDURE promise_date_open_period_check(
494: p_line_loc_id_tbl IN PO_TBL_NUMBER
495: , p_line_id_tbl IN PO_TBL_NUMBER
496: , p_promised_date_tbl IN PO_TBL_DATE
497: , p_org_id_tbl IN PO_TBL_NUMBER
498: , x_result_set_id IN OUT NOCOPY NUMBER
491: -- Otherwise, add the error 'RCV_ALL_OPEN_PO_PERIOD_HTML'.
492: -------------------------------------------------------------------------
493: PROCEDURE promise_date_open_period_check(
494: p_line_loc_id_tbl IN PO_TBL_NUMBER
495: , p_line_id_tbl IN PO_TBL_NUMBER
496: , p_promised_date_tbl IN PO_TBL_DATE
497: , p_org_id_tbl IN PO_TBL_NUMBER
498: , x_result_set_id IN OUT NOCOPY NUMBER
499: , x_result_type OUT NOCOPY VARCHAR2
493: PROCEDURE promise_date_open_period_check(
494: p_line_loc_id_tbl IN PO_TBL_NUMBER
495: , p_line_id_tbl IN PO_TBL_NUMBER
496: , p_promised_date_tbl IN PO_TBL_DATE
497: , p_org_id_tbl IN PO_TBL_NUMBER
498: , x_result_set_id IN OUT NOCOPY NUMBER
499: , x_result_type OUT NOCOPY VARCHAR2
500: )
501: IS
522: -------------------------------------------------------------------------
523: -- For Standard POs, verifies that the ship-to-org id is not null.
524: -------------------------------------------------------------------------
525: PROCEDURE ship_to_org_null_check(
526: p_line_loc_id_tbl IN PO_TBL_NUMBER
527: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
528: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
529: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
530: , x_result_type OUT NOCOPY VARCHAR2
523: -- For Standard POs, verifies that the ship-to-org id is not null.
524: -------------------------------------------------------------------------
525: PROCEDURE ship_to_org_null_check(
526: p_line_loc_id_tbl IN PO_TBL_NUMBER
527: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
528: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
529: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
530: , x_result_type OUT NOCOPY VARCHAR2
531: )
531: )
532: IS
533: d_mod CONSTANT VARCHAR2(100) := D_ship_to_org_null_check;
534:
535: l_line_loc_id_tbl PO_TBL_NUMBER;
536: l_ship_to_org_id_tbl PO_TBL_NUMBER;
537: l_input_size NUMBER;
538: l_count NUMBER;
539: BEGIN
532: IS
533: d_mod CONSTANT VARCHAR2(100) := D_ship_to_org_null_check;
534:
535: l_line_loc_id_tbl PO_TBL_NUMBER;
536: l_ship_to_org_id_tbl PO_TBL_NUMBER;
537: l_input_size NUMBER;
538: l_count NUMBER;
539: BEGIN
540:
546: END IF;
547:
548: l_input_size := p_line_loc_id_tbl.COUNT;
549:
550: l_line_loc_id_tbl := PO_TBL_NUMBER();
551: l_line_loc_id_tbl.extend(l_input_size);
552: l_ship_to_org_id_tbl := PO_TBL_NUMBER();
553: l_ship_to_org_id_tbl.extend(l_input_size);
554:
548: l_input_size := p_line_loc_id_tbl.COUNT;
549:
550: l_line_loc_id_tbl := PO_TBL_NUMBER();
551: l_line_loc_id_tbl.extend(l_input_size);
552: l_ship_to_org_id_tbl := PO_TBL_NUMBER();
553: l_ship_to_org_id_tbl.extend(l_input_size);
554:
555: l_count := 0;
556:
590: -------------------------------------------------------------------------
591: -- For Standard POs, verifies that the ship-to-org id is not null
592: -------------------------------------------------------------------------
593: PROCEDURE ship_to_loc_null_check(
594: p_line_loc_id_tbl IN PO_TBL_NUMBER
595: , p_ship_to_loc_id_tbl IN PO_TBL_NUMBER
596: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
597: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
598: , x_result_type OUT NOCOPY VARCHAR2
591: -- For Standard POs, verifies that the ship-to-org id is not null
592: -------------------------------------------------------------------------
593: PROCEDURE ship_to_loc_null_check(
594: p_line_loc_id_tbl IN PO_TBL_NUMBER
595: , p_ship_to_loc_id_tbl IN PO_TBL_NUMBER
596: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
597: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
598: , x_result_type OUT NOCOPY VARCHAR2
599: )
599: )
600: IS
601: d_mod CONSTANT VARCHAR2(100) := D_ship_to_loc_null_check;
602:
603: l_line_loc_id_tbl PO_TBL_NUMBER;
604: l_ship_to_loc_id_tbl PO_TBL_NUMBER;
605: l_input_size NUMBER;
606: l_count NUMBER;
607: BEGIN
600: IS
601: d_mod CONSTANT VARCHAR2(100) := D_ship_to_loc_null_check;
602:
603: l_line_loc_id_tbl PO_TBL_NUMBER;
604: l_ship_to_loc_id_tbl PO_TBL_NUMBER;
605: l_input_size NUMBER;
606: l_count NUMBER;
607: BEGIN
608:
614: END IF;
615:
616: l_input_size := p_line_loc_id_tbl.COUNT;
617:
618: l_line_loc_id_tbl := PO_TBL_NUMBER();
619: l_line_loc_id_tbl.extend(l_input_size);
620: l_ship_to_loc_id_tbl := PO_TBL_NUMBER();
621: l_ship_to_loc_id_tbl.extend(l_input_size);
622:
616: l_input_size := p_line_loc_id_tbl.COUNT;
617:
618: l_line_loc_id_tbl := PO_TBL_NUMBER();
619: l_line_loc_id_tbl.extend(l_input_size);
620: l_ship_to_loc_id_tbl := PO_TBL_NUMBER();
621: l_ship_to_loc_id_tbl.extend(l_input_size);
622:
623: l_count := 0;
624:
660: -- Ignores Advance Line Locations, which always have a shipment number
661: -- of zero
662: -----------------------------------------------------------------------------
663: PROCEDURE ship_num_gt_zero(
664: p_line_loc_id_tbl IN PO_TBL_NUMBER
665: , p_shipment_num_tbl IN PO_TBL_NUMBER
666: , p_payment_type_tbl IN PO_TBL_VARCHAR30 --
667: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
668: , x_result_type OUT NOCOPY VARCHAR2
661: -- of zero
662: -----------------------------------------------------------------------------
663: PROCEDURE ship_num_gt_zero(
664: p_line_loc_id_tbl IN PO_TBL_NUMBER
665: , p_shipment_num_tbl IN PO_TBL_NUMBER
666: , p_payment_type_tbl IN PO_TBL_VARCHAR30 --
667: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
668: , x_result_type OUT NOCOPY VARCHAR2
669: )
667: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
668: , x_result_type OUT NOCOPY VARCHAR2
669: )
670: IS
671: l_line_loc_id_tbl PO_TBL_NUMBER; --
673: l_filtered_index NUMBER := 1; --
674: BEGIN
675:
668: , x_result_type OUT NOCOPY VARCHAR2
669: )
670: IS
671: l_line_loc_id_tbl PO_TBL_NUMBER; --
672: l_shipment_num_tbl PO_TBL_NUMBER; --
674: BEGIN
675:
676: l_line_loc_id_tbl := PO_TBL_NUMBER(); --
672: l_shipment_num_tbl PO_TBL_NUMBER; --
673: l_filtered_index NUMBER := 1; --
674: BEGIN
675:
676: l_line_loc_id_tbl := PO_TBL_NUMBER(); --
678:
679: --
680: --Loop through the existing line locations and exclude
673: l_filtered_index NUMBER := 1; --
674: BEGIN
675:
676: l_line_loc_id_tbl := PO_TBL_NUMBER(); --
677: l_shipment_num_tbl := PO_TBL_NUMBER(); --
679: --
680: --Loop through the existing line locations and exclude
681: --those of payment_type ADVANCE from this check
711: -- Assumption:
712: -- All of the unposted shipment data will be passed in
713: -- to this routine in order to get accurate results.
714: PROCEDURE ship_num_unique_check(
715: p_line_loc_id_tbl IN PO_TBL_NUMBER
716: , p_line_id_tbl IN PO_TBL_NUMBER
717: , p_shipment_num_tbl IN PO_TBL_NUMBER
718: , p_shipment_type_tbl IN PO_TBL_VARCHAR30 --
719: , p_par_draft_id_tbl IN PO_TBL_VARCHAR4000 DEFAULT NULL --
712: -- All of the unposted shipment data will be passed in
713: -- to this routine in order to get accurate results.
714: PROCEDURE ship_num_unique_check(
715: p_line_loc_id_tbl IN PO_TBL_NUMBER
716: , p_line_id_tbl IN PO_TBL_NUMBER
717: , p_shipment_num_tbl IN PO_TBL_NUMBER
718: , p_shipment_type_tbl IN PO_TBL_VARCHAR30 --
719: , p_par_draft_id_tbl IN PO_TBL_VARCHAR4000 DEFAULT NULL --
720: , p_draft_id_tbl IN PO_TBL_NUMBER
713: -- to this routine in order to get accurate results.
714: PROCEDURE ship_num_unique_check(
715: p_line_loc_id_tbl IN PO_TBL_NUMBER
716: , p_line_id_tbl IN PO_TBL_NUMBER
717: , p_shipment_num_tbl IN PO_TBL_NUMBER
718: , p_shipment_type_tbl IN PO_TBL_VARCHAR30 --
719: , p_par_draft_id_tbl IN PO_TBL_VARCHAR4000 DEFAULT NULL --
720: , p_draft_id_tbl IN PO_TBL_NUMBER
721: , x_result_set_id IN OUT NOCOPY NUMBER
716: , p_line_id_tbl IN PO_TBL_NUMBER
717: , p_shipment_num_tbl IN PO_TBL_NUMBER
718: , p_shipment_type_tbl IN PO_TBL_VARCHAR30 --
719: , p_par_draft_id_tbl IN PO_TBL_VARCHAR4000 DEFAULT NULL --
720: , p_draft_id_tbl IN PO_TBL_NUMBER
721: , x_result_set_id IN OUT NOCOPY NUMBER
722: , x_result_type OUT NOCOPY VARCHAR2
723: )
724: IS
743: -- Invokes check_inv_org_in_sob to determine if the specified organization
744: -- is in the current set of books.
745: -------------------------------------------------------------------------
746: PROCEDURE is_org_in_current_sob_check (
747: p_line_loc_id_tbl IN PO_TBL_NUMBER
748: --PBWC Message Change Impact: Adding token
749: , p_line_id_tbl IN PO_TBL_NUMBER
750: , p_org_id_tbl IN PO_TBL_NUMBER
751: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
745: -------------------------------------------------------------------------
746: PROCEDURE is_org_in_current_sob_check (
747: p_line_loc_id_tbl IN PO_TBL_NUMBER
748: --PBWC Message Change Impact: Adding token
749: , p_line_id_tbl IN PO_TBL_NUMBER
750: , p_org_id_tbl IN PO_TBL_NUMBER
751: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
752: , p_consigned_flag_tbl IN PO_TBL_VARCHAR1
753: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
746: PROCEDURE is_org_in_current_sob_check (
747: p_line_loc_id_tbl IN PO_TBL_NUMBER
748: --PBWC Message Change Impact: Adding token
749: , p_line_id_tbl IN PO_TBL_NUMBER
750: , p_org_id_tbl IN PO_TBL_NUMBER
751: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
752: , p_consigned_flag_tbl IN PO_TBL_VARCHAR1
753: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
754: , x_result_type OUT NOCOPY VARCHAR2
747: p_line_loc_id_tbl IN PO_TBL_NUMBER
748: --PBWC Message Change Impact: Adding token
749: , p_line_id_tbl IN PO_TBL_NUMBER
750: , p_org_id_tbl IN PO_TBL_NUMBER
751: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
752: , p_consigned_flag_tbl IN PO_TBL_VARCHAR1
753: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
754: , x_result_type OUT NOCOPY VARCHAR2
755: )
758:
759: l_results_count NUMBER;
760: l_data_key NUMBER;
761:
762: l_line_loc_id_tbl PO_TBL_NUMBER;
763: --PBWC Message Change Impact: Adding a token
764: l_line_id_tbl PO_TBL_NUMBER;
765: l_ship_to_org_id_tbl PO_TBL_NUMBER;
766: l_set_of_books_id_tbl PO_TBL_NUMBER;
760: l_data_key NUMBER;
761:
762: l_line_loc_id_tbl PO_TBL_NUMBER;
763: --PBWC Message Change Impact: Adding a token
764: l_line_id_tbl PO_TBL_NUMBER;
765: l_ship_to_org_id_tbl PO_TBL_NUMBER;
766: l_set_of_books_id_tbl PO_TBL_NUMBER;
767:
768: l_in_sob BOOLEAN;
761:
762: l_line_loc_id_tbl PO_TBL_NUMBER;
763: --PBWC Message Change Impact: Adding a token
764: l_line_id_tbl PO_TBL_NUMBER;
765: l_ship_to_org_id_tbl PO_TBL_NUMBER;
766: l_set_of_books_id_tbl PO_TBL_NUMBER;
767:
768: l_in_sob BOOLEAN;
769: l_return_status VARCHAR(1);
762: l_line_loc_id_tbl PO_TBL_NUMBER;
763: --PBWC Message Change Impact: Adding a token
764: l_line_id_tbl PO_TBL_NUMBER;
765: l_ship_to_org_id_tbl PO_TBL_NUMBER;
766: l_set_of_books_id_tbl PO_TBL_NUMBER;
767:
768: l_in_sob BOOLEAN;
769: l_return_status VARCHAR(1);
770: BEGIN
881: -- Validates that quantity is not null and greater than zero if it is not
882: -- a Rate or Fixed Price line.
883: -----------------------------------------------------------------------------
884: PROCEDURE quantity_gt_zero(
885: p_line_loc_id_tbl IN PO_TBL_NUMBER
886: , p_quantity_tbl IN PO_TBL_NUMBER
887: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
888: , p_value_basis_tbl IN PO_TBL_VARCHAR30 --
889: , p_cost_constraint_tbl IN PO_TBL_VARCHAR30
882: -- a Rate or Fixed Price line.
883: -----------------------------------------------------------------------------
884: PROCEDURE quantity_gt_zero(
885: p_line_loc_id_tbl IN PO_TBL_NUMBER
886: , p_quantity_tbl IN PO_TBL_NUMBER
887: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
888: , p_value_basis_tbl IN PO_TBL_VARCHAR30 --
889: , p_cost_constraint_tbl IN PO_TBL_VARCHAR30
890: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
888: , p_value_basis_tbl IN PO_TBL_VARCHAR30 --
889: , p_cost_constraint_tbl IN PO_TBL_VARCHAR30
890: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
891: , x_result_type OUT NOCOPY VARCHAR2
892: , p_header_id_tbl IN PO_TBL_NUMBER --
894: IS
895: d_mod CONSTANT VARCHAR2(100) := D_quantity_gt_zero;
896: l_line_loc_id_tbl PO_TBL_NUMBER;
892: , p_header_id_tbl IN PO_TBL_NUMBER --
893: )
894: IS
895: d_mod CONSTANT VARCHAR2(100) := D_quantity_gt_zero;
896: l_line_loc_id_tbl PO_TBL_NUMBER;
897: l_quantity_tbl PO_TBL_NUMBER;
898: l_input_size NUMBER;
899: l_count NUMBER;
900: --
893: )
894: IS
895: d_mod CONSTANT VARCHAR2(100) := D_quantity_gt_zero;
896: l_line_loc_id_tbl PO_TBL_NUMBER;
897: l_quantity_tbl PO_TBL_NUMBER;
898: l_input_size NUMBER;
899: l_count NUMBER;
900: --
901: l_is_clm_po VARCHAR2(1) := 'N';
912: END IF;
913:
914: l_input_size := p_line_loc_id_tbl.COUNT;
915:
916: l_line_loc_id_tbl := PO_TBL_NUMBER();
917: l_line_loc_id_tbl.extend(l_input_size);
918: l_quantity_tbl := PO_TBL_NUMBER();
919: l_quantity_tbl.extend(l_input_size);
920:
914: l_input_size := p_line_loc_id_tbl.COUNT;
915:
916: l_line_loc_id_tbl := PO_TBL_NUMBER();
917: l_line_loc_id_tbl.extend(l_input_size);
918: l_quantity_tbl := PO_TBL_NUMBER();
919: l_quantity_tbl.extend(l_input_size);
920:
921: l_count := 0;
922:
1005: -- This check is only performed if quantity is being reduced below the
1006: -- current transaction quantity, since over-receiving/billing is allowed.
1007: -----------------------------------------------------------------------------
1008: PROCEDURE quantity_ge_quantity_exec(
1009: p_line_loc_id_tbl IN PO_TBL_NUMBER
1010: , p_quantity_tbl IN PO_TBL_NUMBER
1011: , x_result_set_id IN OUT NOCOPY NUMBER
1012: , x_result_type OUT NOCOPY VARCHAR2
1013: )
1006: -- current transaction quantity, since over-receiving/billing is allowed.
1007: -----------------------------------------------------------------------------
1008: PROCEDURE quantity_ge_quantity_exec(
1009: p_line_loc_id_tbl IN PO_TBL_NUMBER
1010: , p_quantity_tbl IN PO_TBL_NUMBER
1011: , x_result_set_id IN OUT NOCOPY NUMBER
1012: , x_result_type OUT NOCOPY VARCHAR2
1013: )
1014: IS
1108: -- Validates that amount is not null and greater than zero if the line is
1109: -- Rate or Fixed Price.
1110: -----------------------------------------------------------------------------
1111: PROCEDURE amount_gt_zero(
1112: p_line_loc_id_tbl IN PO_TBL_NUMBER
1113: , p_amount_tbl IN PO_TBL_NUMBER
1114: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
1115: , p_value_basis_tbl IN PO_TBL_VARCHAR30 --
1116: , p_cost_constraint_tbl IN PO_TBL_VARCHAR30
1109: -- Rate or Fixed Price.
1110: -----------------------------------------------------------------------------
1111: PROCEDURE amount_gt_zero(
1112: p_line_loc_id_tbl IN PO_TBL_NUMBER
1113: , p_amount_tbl IN PO_TBL_NUMBER
1114: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
1115: , p_value_basis_tbl IN PO_TBL_VARCHAR30 --
1116: , p_cost_constraint_tbl IN PO_TBL_VARCHAR30
1117: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1115: , p_value_basis_tbl IN PO_TBL_VARCHAR30 --
1116: , p_cost_constraint_tbl IN PO_TBL_VARCHAR30
1117: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1118: , x_result_type OUT NOCOPY VARCHAR2
1119: , p_header_id_tbl IN PO_TBL_NUMBER --
1121: IS
1122: d_mod CONSTANT VARCHAR2(100) := D_amount_gt_zero;
1123: l_line_loc_id_tbl PO_TBL_NUMBER;
1119: , p_header_id_tbl IN PO_TBL_NUMBER --
1120: )
1121: IS
1122: d_mod CONSTANT VARCHAR2(100) := D_amount_gt_zero;
1123: l_line_loc_id_tbl PO_TBL_NUMBER;
1124: l_amount_tbl PO_TBL_NUMBER;
1125: l_input_size NUMBER;
1126: l_count NUMBER;
1127:
1120: )
1121: IS
1122: d_mod CONSTANT VARCHAR2(100) := D_amount_gt_zero;
1123: l_line_loc_id_tbl PO_TBL_NUMBER;
1124: l_amount_tbl PO_TBL_NUMBER;
1125: l_input_size NUMBER;
1126: l_count NUMBER;
1127:
1128: --
1140: END IF;
1141:
1142: l_input_size := p_line_loc_id_tbl.COUNT;
1143:
1144: l_line_loc_id_tbl := PO_TBL_NUMBER();
1145: l_line_loc_id_tbl.extend(l_input_size);
1146: l_amount_tbl := PO_TBL_NUMBER();
1147: l_amount_tbl.extend(l_input_size);
1148:
1142: l_input_size := p_line_loc_id_tbl.COUNT;
1143:
1144: l_line_loc_id_tbl := PO_TBL_NUMBER();
1145: l_line_loc_id_tbl.extend(l_input_size);
1146: l_amount_tbl := PO_TBL_NUMBER();
1147: l_amount_tbl.extend(l_input_size);
1148:
1149: l_count := 0;
1150:
1233: -- This check is only performed if amount is being reduced below the
1234: -- current transaction amount, since over-receiving/billing is allowed.
1235: -----------------------------------------------------------------------------
1236: PROCEDURE amount_ge_amount_exec(
1237: p_line_loc_id_tbl IN PO_TBL_NUMBER
1238: , p_amount_tbl IN PO_TBL_NUMBER
1239: , x_result_set_id IN OUT NOCOPY NUMBER
1240: , x_result_type OUT NOCOPY VARCHAR2
1241: )
1234: -- current transaction amount, since over-receiving/billing is allowed.
1235: -----------------------------------------------------------------------------
1236: PROCEDURE amount_ge_amount_exec(
1237: p_line_loc_id_tbl IN PO_TBL_NUMBER
1238: , p_amount_tbl IN PO_TBL_NUMBER
1239: , x_result_set_id IN OUT NOCOPY NUMBER
1240: , x_result_type OUT NOCOPY VARCHAR2
1241: )
1242: IS
1334: -- Validates that secondary quantity is not null and greater than zero for
1335: -- an opm item.
1336: -----------------------------------------------------------------------------
1337: PROCEDURE ship_sec_quantity_gt_zero(
1338: p_line_loc_id_tbl IN PO_TBL_NUMBER
1339: , p_item_id_tbl IN PO_TBL_NUMBER
1340: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1341: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1342: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1335: -- an opm item.
1336: -----------------------------------------------------------------------------
1337: PROCEDURE ship_sec_quantity_gt_zero(
1338: p_line_loc_id_tbl IN PO_TBL_NUMBER
1339: , p_item_id_tbl IN PO_TBL_NUMBER
1340: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1341: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1342: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1343: , x_result_type OUT NOCOPY VARCHAR2
1336: -----------------------------------------------------------------------------
1337: PROCEDURE ship_sec_quantity_gt_zero(
1338: p_line_loc_id_tbl IN PO_TBL_NUMBER
1339: , p_item_id_tbl IN PO_TBL_NUMBER
1340: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1341: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1342: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1343: , x_result_type OUT NOCOPY VARCHAR2
1344: )
1337: PROCEDURE ship_sec_quantity_gt_zero(
1338: p_line_loc_id_tbl IN PO_TBL_NUMBER
1339: , p_item_id_tbl IN PO_TBL_NUMBER
1340: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1341: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1342: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1343: , x_result_type OUT NOCOPY VARCHAR2
1344: )
1345: IS
1378: -- Validates secondary quantity and the quantity combination is for
1379: -- an opm item
1380: -----------------------------------------------------------------------------
1381: PROCEDURE ship_qtys_within_deviation (
1382: p_line_loc_id_tbl IN PO_TBL_NUMBER
1383: , p_item_id_tbl IN PO_TBL_NUMBER
1384: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1385: , p_quantity_tbl IN PO_TBL_NUMBER
1386: , p_primary_uom_tbl IN PO_TBL_VARCHAR30
1379: -- an opm item
1380: -----------------------------------------------------------------------------
1381: PROCEDURE ship_qtys_within_deviation (
1382: p_line_loc_id_tbl IN PO_TBL_NUMBER
1383: , p_item_id_tbl IN PO_TBL_NUMBER
1384: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1385: , p_quantity_tbl IN PO_TBL_NUMBER
1386: , p_primary_uom_tbl IN PO_TBL_VARCHAR30
1387: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1380: -----------------------------------------------------------------------------
1381: PROCEDURE ship_qtys_within_deviation (
1382: p_line_loc_id_tbl IN PO_TBL_NUMBER
1383: , p_item_id_tbl IN PO_TBL_NUMBER
1384: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1385: , p_quantity_tbl IN PO_TBL_NUMBER
1386: , p_primary_uom_tbl IN PO_TBL_VARCHAR30
1387: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1388: , p_secondary_uom_tbl IN PO_TBL_VARCHAR30
1381: PROCEDURE ship_qtys_within_deviation (
1382: p_line_loc_id_tbl IN PO_TBL_NUMBER
1383: , p_item_id_tbl IN PO_TBL_NUMBER
1384: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1385: , p_quantity_tbl IN PO_TBL_NUMBER
1386: , p_primary_uom_tbl IN PO_TBL_VARCHAR30
1387: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1388: , p_secondary_uom_tbl IN PO_TBL_VARCHAR30
1389: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1383: , p_item_id_tbl IN PO_TBL_NUMBER
1384: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1385: , p_quantity_tbl IN PO_TBL_NUMBER
1386: , p_primary_uom_tbl IN PO_TBL_VARCHAR30
1387: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1388: , p_secondary_uom_tbl IN PO_TBL_VARCHAR30
1389: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1390: , x_result_type OUT NOCOPY VARCHAR2
1391: )
1431: -- a. Quantity based Pay Items (pessimistic check)
1432: -- b. rate based Pay Items with payment type as Rate or Delivery
1433: -----------------------------------------------------------------------------
1434: PROCEDURE unit_of_measure_not_null(
1435: p_line_loc_id_tbl IN PO_TBL_NUMBER
1436: , p_payment_type_tbl IN PO_TBL_VARCHAR30
1437: , p_value_basis_tbl IN PO_TBL_VARCHAR30
1438: , p_unit_meas_lookup_code_tbl IN PO_TBL_VARCHAR30
1439: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1494: END unit_of_measure_not_null;
1495:
1496: --Mod Project
1497: PROCEDURE mod_no_cancel_shp_complt(
1498: p_line_loc_id_tbl IN PO_TBL_NUMBER
1499: ,p_control_action_tbl IN PO_TBL_VARCHAR30
1500: ,x_result_set_id IN OUT NOCOPY NUMBER
1501: ,x_result_type OUT NOCOPY VARCHAR2
1502: )
1558:
1559:
1560: PROCEDURE pop_start_date_le_end_date
1561: (
1562: p_line_id_tbl IN PO_TBL_NUMBER
1563: , p_start_date_tbl IN PO_TBL_DATE
1564: , p_expiration_date_tbl IN PO_TBL_DATE
1565: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1566: , x_result_type OUT NOCOPY VARCHAR2
1619: END pop_start_date_le_end_date;
1620:
1621: PROCEDURE pop_date_need_by_date
1622: (
1623: p_line_id_tbl IN PO_TBL_NUMBER
1624: , p_start_date_tbl IN PO_TBL_DATE
1625: , p_end_date_tbl IN PO_TBL_DATE
1626: , p_need_by_date_tbl IN PO_TBL_DATE
1627: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1670: -------------------------------------------------------------------------
1671: -- For Complex PO's, Check if price override is greater than zero.
1672: -------------------------------------------------------------------------
1673: PROCEDURE complex_price_or_gt_zero(
1674: p_line_loc_id_tbl IN PO_TBL_NUMBER
1675: , p_price_override_tbl IN PO_TBL_NUMBER
1676: , p_value_basis_tbl IN PO_TBL_VARCHAR30
1677: , p_payment_type_tbl IN PO_TBL_VARCHAR30
1678: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1671: -- For Complex PO's, Check if price override is greater than zero.
1672: -------------------------------------------------------------------------
1673: PROCEDURE complex_price_or_gt_zero(
1674: p_line_loc_id_tbl IN PO_TBL_NUMBER
1675: , p_price_override_tbl IN PO_TBL_NUMBER
1676: , p_value_basis_tbl IN PO_TBL_VARCHAR30
1677: , p_payment_type_tbl IN PO_TBL_VARCHAR30
1678: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1679: , x_result_type OUT NOCOPY VARCHAR2
1679: , x_result_type OUT NOCOPY VARCHAR2
1680: )
1681: IS
1682: d_mod CONSTANT VARCHAR2(100) := D_complex_price_or_gt_zero;
1683: l_line_loc_id_tbl PO_TBL_NUMBER;
1684: l_price_override_tbl PO_TBL_NUMBER;
1685: l_input_size NUMBER;
1686: l_count NUMBER;
1687: BEGIN
1680: )
1681: IS
1682: d_mod CONSTANT VARCHAR2(100) := D_complex_price_or_gt_zero;
1683: l_line_loc_id_tbl PO_TBL_NUMBER;
1684: l_price_override_tbl PO_TBL_NUMBER;
1685: l_input_size NUMBER;
1686: l_count NUMBER;
1687: BEGIN
1688: IF PO_LOG.d_proc THEN
1695:
1696:
1697: l_input_size := p_line_loc_id_tbl.COUNT;
1698:
1699: l_line_loc_id_tbl := PO_TBL_NUMBER();
1700: l_line_loc_id_tbl.extend(l_input_size);
1701: l_price_override_tbl := PO_TBL_NUMBER();
1702: l_price_override_tbl.extend(l_input_size);
1703:
1697: l_input_size := p_line_loc_id_tbl.COUNT;
1698:
1699: l_line_loc_id_tbl := PO_TBL_NUMBER();
1700: l_line_loc_id_tbl.extend(l_input_size);
1701: l_price_override_tbl := PO_TBL_NUMBER();
1702: l_price_override_tbl.extend(l_input_size);
1703:
1704: l_count := 0;
1705: