126: -- Check if the days early value is greater than or equal to zero.
127: -------------------------------------------------------------------------
128:
129: PROCEDURE days_early_gte_zero(
130: p_line_loc_id_tbl IN PO_TBL_NUMBER
131: , p_days_early_rcpt_allowed_tbl IN PO_TBL_NUMBER
132: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
133: , x_result_type OUT NOCOPY VARCHAR2
134: )
127: -------------------------------------------------------------------------
128:
129: PROCEDURE days_early_gte_zero(
130: p_line_loc_id_tbl IN PO_TBL_NUMBER
131: , p_days_early_rcpt_allowed_tbl IN PO_TBL_NUMBER
132: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
133: , x_result_type OUT NOCOPY VARCHAR2
134: )
135: IS
153: -------------------------------------------------------------------------
154: -- Check if the days late value is greater than or equal to zero.
155: -------------------------------------------------------------------------
156: PROCEDURE days_late_gte_zero(
157: p_line_loc_id_tbl IN PO_TBL_NUMBER
158: , p_days_late_rcpt_allowed_tbl IN PO_TBL_NUMBER
159: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
160: , x_result_type OUT NOCOPY VARCHAR2
161: )
154: -- Check if the days late value is greater than or equal to zero.
155: -------------------------------------------------------------------------
156: PROCEDURE days_late_gte_zero(
157: p_line_loc_id_tbl IN PO_TBL_NUMBER
158: , p_days_late_rcpt_allowed_tbl IN PO_TBL_NUMBER
159: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
160: , x_result_type OUT NOCOPY VARCHAR2
161: )
162: IS
181: -- Check if the tolerance value is within 1-100
182: -------------------------------------------------------------------------
183:
184: PROCEDURE rcv_close_tol_within_range (
185: p_line_loc_id_tbl IN PO_TBL_NUMBER
186: , p_receive_close_tolerance_tbl IN PO_TBL_NUMBER
187: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
188: , x_result_type OUT NOCOPY VARCHAR2
189: )
182: -------------------------------------------------------------------------
183:
184: PROCEDURE rcv_close_tol_within_range (
185: p_line_loc_id_tbl IN PO_TBL_NUMBER
186: , p_receive_close_tolerance_tbl IN PO_TBL_NUMBER
187: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
188: , x_result_type OUT NOCOPY VARCHAR2
189: )
190: IS
208: -- Check if the tolerance value is within 1-100
209: -------------------------------------------------------------------------
210:
211: PROCEDURE over_rcpt_tol_within_range (
212: p_line_loc_id_tbl IN PO_TBL_NUMBER
213: , p_qty_rcv_tolerance_tbl IN PO_TBL_NUMBER
214: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
215: , x_result_type OUT NOCOPY VARCHAR2
216: )
209: -------------------------------------------------------------------------
210:
211: PROCEDURE over_rcpt_tol_within_range (
212: p_line_loc_id_tbl IN PO_TBL_NUMBER
213: , p_qty_rcv_tolerance_tbl IN PO_TBL_NUMBER
214: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
215: , x_result_type OUT NOCOPY VARCHAR2
216: )
217: IS
235: -- If the shipment is planned, fail if the promised date and need-by date
236: -- are both null.
237: -------------------------------------------------------------------------
238: PROCEDURE planned_item_null_date_check (
239: p_line_loc_id_tbl IN PO_TBL_NUMBER
240: , p_need_by_date_tbl IN PO_TBL_DATE
241: , p_promised_date_tbl IN PO_TBL_DATE
242: , p_item_id_tbl IN PO_TBL_NUMBER
243: , x_result_set_id IN OUT NOCOPY NUMBER
238: PROCEDURE planned_item_null_date_check (
239: p_line_loc_id_tbl IN PO_TBL_NUMBER
240: , p_need_by_date_tbl IN PO_TBL_DATE
241: , p_promised_date_tbl IN PO_TBL_DATE
242: , p_item_id_tbl IN PO_TBL_NUMBER
243: , x_result_set_id IN OUT NOCOPY NUMBER
244: , x_result_type OUT NOCOPY VARCHAR2
245: )
246: IS
245: )
246: IS
247: d_mod CONSTANT VARCHAR2(100) := D_planned_item_null_date_check;
248:
249: l_line_loc_id_tbl PO_TBL_NUMBER;
250: l_item_id_tbl PO_TBL_NUMBER;
251: l_input_size NUMBER;
252: l_count NUMBER;
253:
246: IS
247: d_mod CONSTANT VARCHAR2(100) := D_planned_item_null_date_check;
248:
249: l_line_loc_id_tbl PO_TBL_NUMBER;
250: l_item_id_tbl PO_TBL_NUMBER;
251: l_input_size NUMBER;
252: l_count NUMBER;
253:
254: BEGIN
268: x_result_type := PO_VALIDATIONS.c_result_type_SUCCESS;
269:
270: l_input_size := p_line_loc_id_tbl.COUNT;
271:
272: l_line_loc_id_tbl := PO_TBL_NUMBER();
273: l_line_loc_id_tbl.extend(l_input_size);
274: l_item_id_tbl := PO_TBL_NUMBER();
275: l_item_id_tbl.extend(l_input_size);
276:
270: l_input_size := p_line_loc_id_tbl.COUNT;
271:
272: l_line_loc_id_tbl := PO_TBL_NUMBER();
273: l_line_loc_id_tbl.extend(l_input_size);
274: l_item_id_tbl := PO_TBL_NUMBER();
275: l_item_id_tbl.extend(l_input_size);
276:
277: l_count := 0;
278:
339: -- cannot be '4WAY'.
340: --
341: -------------------------------------------------------------------------
342: PROCEDURE match_4way_check(
343: p_line_loc_id_tbl IN PO_TBL_NUMBER
344: , p_value_basis_tbl IN PO_TBL_VARCHAR30 --
345: , p_receipt_required_flag_tbl IN PO_TBL_VARCHAR1
346: , p_inspection_required_flag_tbl IN PO_TBL_VARCHAR1
347: , p_payment_type_tbl IN PO_TBL_VARCHAR30 --
409: -------------------------------------------------------------------------
410: -- The invoice close tolerance must be between 0 and 100, inclusive.
411: -------------------------------------------------------------------------
412: PROCEDURE inv_close_tol_range_check (
413: p_line_loc_id_tbl IN PO_TBL_NUMBER
414: , p_invoice_close_tolerance_tbl IN PO_TBL_NUMBER
415: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
416: , x_result_type OUT NOCOPY VARCHAR2
417: )
410: -- The invoice close tolerance must be between 0 and 100, inclusive.
411: -------------------------------------------------------------------------
412: PROCEDURE inv_close_tol_range_check (
413: p_line_loc_id_tbl IN PO_TBL_NUMBER
414: , p_invoice_close_tolerance_tbl IN PO_TBL_NUMBER
415: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
416: , x_result_type OUT NOCOPY VARCHAR2
417: )
418: IS
439: -- That the need by date is within the open purchasing period.
440: -- Otherwise, add the error 'RCV_ALL_OPEN_PO_PERIOD_HTML'.
441: -------------------------------------------------------------------------
442: PROCEDURE need_by_date_open_period_check(
443: p_line_loc_id_tbl IN PO_TBL_NUMBER
444: , p_line_id_tbl IN PO_TBL_NUMBER
445: , p_need_by_date_tbl IN PO_TBL_DATE
446: , p_org_id_tbl IN PO_TBL_NUMBER
447: , x_result_set_id IN OUT NOCOPY NUMBER
440: -- Otherwise, add the error 'RCV_ALL_OPEN_PO_PERIOD_HTML'.
441: -------------------------------------------------------------------------
442: PROCEDURE need_by_date_open_period_check(
443: p_line_loc_id_tbl IN PO_TBL_NUMBER
444: , p_line_id_tbl IN PO_TBL_NUMBER
445: , p_need_by_date_tbl IN PO_TBL_DATE
446: , p_org_id_tbl IN PO_TBL_NUMBER
447: , x_result_set_id IN OUT NOCOPY NUMBER
448: , x_result_type OUT NOCOPY VARCHAR2
442: PROCEDURE need_by_date_open_period_check(
443: p_line_loc_id_tbl IN PO_TBL_NUMBER
444: , p_line_id_tbl IN PO_TBL_NUMBER
445: , p_need_by_date_tbl IN PO_TBL_DATE
446: , p_org_id_tbl IN PO_TBL_NUMBER
447: , x_result_set_id IN OUT NOCOPY NUMBER
448: , x_result_type OUT NOCOPY VARCHAR2
449: )
450: IS
473: -- That the promised date is within the open purchasing period.
474: -- Otherwise, add the error 'RCV_ALL_OPEN_PO_PERIOD_HTML'.
475: -------------------------------------------------------------------------
476: PROCEDURE promise_date_open_period_check(
477: p_line_loc_id_tbl IN PO_TBL_NUMBER
478: , p_line_id_tbl IN PO_TBL_NUMBER
479: , p_promised_date_tbl IN PO_TBL_DATE
480: , p_org_id_tbl IN PO_TBL_NUMBER
481: , x_result_set_id IN OUT NOCOPY NUMBER
474: -- Otherwise, add the error 'RCV_ALL_OPEN_PO_PERIOD_HTML'.
475: -------------------------------------------------------------------------
476: PROCEDURE promise_date_open_period_check(
477: p_line_loc_id_tbl IN PO_TBL_NUMBER
478: , p_line_id_tbl IN PO_TBL_NUMBER
479: , p_promised_date_tbl IN PO_TBL_DATE
480: , p_org_id_tbl IN PO_TBL_NUMBER
481: , x_result_set_id IN OUT NOCOPY NUMBER
482: , x_result_type OUT NOCOPY VARCHAR2
476: PROCEDURE promise_date_open_period_check(
477: p_line_loc_id_tbl IN PO_TBL_NUMBER
478: , p_line_id_tbl IN PO_TBL_NUMBER
479: , p_promised_date_tbl IN PO_TBL_DATE
480: , p_org_id_tbl IN PO_TBL_NUMBER
481: , x_result_set_id IN OUT NOCOPY NUMBER
482: , x_result_type OUT NOCOPY VARCHAR2
483: )
484: IS
505: -------------------------------------------------------------------------
506: -- For Standard POs, verifies that the ship-to-org id is not null.
507: -------------------------------------------------------------------------
508: PROCEDURE ship_to_org_null_check(
509: p_line_loc_id_tbl IN PO_TBL_NUMBER
510: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
511: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
512: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
513: , x_result_type OUT NOCOPY VARCHAR2
506: -- For Standard POs, verifies that the ship-to-org id is not null.
507: -------------------------------------------------------------------------
508: PROCEDURE ship_to_org_null_check(
509: p_line_loc_id_tbl IN PO_TBL_NUMBER
510: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
511: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
512: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
513: , x_result_type OUT NOCOPY VARCHAR2
514: )
514: )
515: IS
516: d_mod CONSTANT VARCHAR2(100) := D_ship_to_org_null_check;
517:
518: l_line_loc_id_tbl PO_TBL_NUMBER;
519: l_ship_to_org_id_tbl PO_TBL_NUMBER;
520: l_input_size NUMBER;
521: l_count NUMBER;
522: BEGIN
515: IS
516: d_mod CONSTANT VARCHAR2(100) := D_ship_to_org_null_check;
517:
518: l_line_loc_id_tbl PO_TBL_NUMBER;
519: l_ship_to_org_id_tbl PO_TBL_NUMBER;
520: l_input_size NUMBER;
521: l_count NUMBER;
522: BEGIN
523:
529: END IF;
530:
531: l_input_size := p_line_loc_id_tbl.COUNT;
532:
533: l_line_loc_id_tbl := PO_TBL_NUMBER();
534: l_line_loc_id_tbl.extend(l_input_size);
535: l_ship_to_org_id_tbl := PO_TBL_NUMBER();
536: l_ship_to_org_id_tbl.extend(l_input_size);
537:
531: l_input_size := p_line_loc_id_tbl.COUNT;
532:
533: l_line_loc_id_tbl := PO_TBL_NUMBER();
534: l_line_loc_id_tbl.extend(l_input_size);
535: l_ship_to_org_id_tbl := PO_TBL_NUMBER();
536: l_ship_to_org_id_tbl.extend(l_input_size);
537:
538: l_count := 0;
539:
573: -------------------------------------------------------------------------
574: -- For Standard POs, verifies that the ship-to-org id is not null
575: -------------------------------------------------------------------------
576: PROCEDURE ship_to_loc_null_check(
577: p_line_loc_id_tbl IN PO_TBL_NUMBER
578: , p_ship_to_loc_id_tbl IN PO_TBL_NUMBER
579: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
580: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
581: , x_result_type OUT NOCOPY VARCHAR2
574: -- For Standard POs, verifies that the ship-to-org id is not null
575: -------------------------------------------------------------------------
576: PROCEDURE ship_to_loc_null_check(
577: p_line_loc_id_tbl IN PO_TBL_NUMBER
578: , p_ship_to_loc_id_tbl IN PO_TBL_NUMBER
579: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
580: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
581: , x_result_type OUT NOCOPY VARCHAR2
582: )
582: )
583: IS
584: d_mod CONSTANT VARCHAR2(100) := D_ship_to_loc_null_check;
585:
586: l_line_loc_id_tbl PO_TBL_NUMBER;
587: l_ship_to_loc_id_tbl PO_TBL_NUMBER;
588: l_input_size NUMBER;
589: l_count NUMBER;
590: BEGIN
583: IS
584: d_mod CONSTANT VARCHAR2(100) := D_ship_to_loc_null_check;
585:
586: l_line_loc_id_tbl PO_TBL_NUMBER;
587: l_ship_to_loc_id_tbl PO_TBL_NUMBER;
588: l_input_size NUMBER;
589: l_count NUMBER;
590: BEGIN
591:
597: END IF;
598:
599: l_input_size := p_line_loc_id_tbl.COUNT;
600:
601: l_line_loc_id_tbl := PO_TBL_NUMBER();
602: l_line_loc_id_tbl.extend(l_input_size);
603: l_ship_to_loc_id_tbl := PO_TBL_NUMBER();
604: l_ship_to_loc_id_tbl.extend(l_input_size);
605:
599: l_input_size := p_line_loc_id_tbl.COUNT;
600:
601: l_line_loc_id_tbl := PO_TBL_NUMBER();
602: l_line_loc_id_tbl.extend(l_input_size);
603: l_ship_to_loc_id_tbl := PO_TBL_NUMBER();
604: l_ship_to_loc_id_tbl.extend(l_input_size);
605:
606: l_count := 0;
607:
643: -- Ignores Advance Line Locations, which always have a shipment number
644: -- of zero
645: -----------------------------------------------------------------------------
646: PROCEDURE ship_num_gt_zero(
647: p_line_loc_id_tbl IN PO_TBL_NUMBER
648: , p_shipment_num_tbl IN PO_TBL_NUMBER
649: , p_payment_type_tbl IN PO_TBL_VARCHAR30 --
650: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
651: , x_result_type OUT NOCOPY VARCHAR2
644: -- of zero
645: -----------------------------------------------------------------------------
646: PROCEDURE ship_num_gt_zero(
647: p_line_loc_id_tbl IN PO_TBL_NUMBER
648: , p_shipment_num_tbl IN PO_TBL_NUMBER
649: , p_payment_type_tbl IN PO_TBL_VARCHAR30 --
650: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
651: , x_result_type OUT NOCOPY VARCHAR2
652: )
650: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
651: , x_result_type OUT NOCOPY VARCHAR2
652: )
653: IS
654: l_line_loc_id_tbl PO_TBL_NUMBER; --
656: l_filtered_index NUMBER := 1; --
657: BEGIN
658:
651: , x_result_type OUT NOCOPY VARCHAR2
652: )
653: IS
654: l_line_loc_id_tbl PO_TBL_NUMBER; --
655: l_shipment_num_tbl PO_TBL_NUMBER; --
657: BEGIN
658:
659: l_line_loc_id_tbl := PO_TBL_NUMBER(); --
655: l_shipment_num_tbl PO_TBL_NUMBER; --
656: l_filtered_index NUMBER := 1; --
657: BEGIN
658:
659: l_line_loc_id_tbl := PO_TBL_NUMBER(); --
661:
662: --
663: --Loop through the existing line locations and exclude
656: l_filtered_index NUMBER := 1; --
657: BEGIN
658:
659: l_line_loc_id_tbl := PO_TBL_NUMBER(); --
660: l_shipment_num_tbl := PO_TBL_NUMBER(); --
662: --
663: --Loop through the existing line locations and exclude
664: --those of payment_type ADVANCE from this check
694: -- Assumption:
695: -- All of the unposted shipment data will be passed in
696: -- to this routine in order to get accurate results.
697: PROCEDURE ship_num_unique_check(
698: p_line_loc_id_tbl IN PO_TBL_NUMBER
699: , p_line_id_tbl IN PO_TBL_NUMBER
700: , p_shipment_num_tbl IN PO_TBL_NUMBER
701: , p_shipment_type_tbl IN PO_TBL_VARCHAR30 --
702: , x_result_set_id IN OUT NOCOPY NUMBER
695: -- All of the unposted shipment data will be passed in
696: -- to this routine in order to get accurate results.
697: PROCEDURE ship_num_unique_check(
698: p_line_loc_id_tbl IN PO_TBL_NUMBER
699: , p_line_id_tbl IN PO_TBL_NUMBER
700: , p_shipment_num_tbl IN PO_TBL_NUMBER
701: , p_shipment_type_tbl IN PO_TBL_VARCHAR30 --
702: , x_result_set_id IN OUT NOCOPY NUMBER
703: , x_result_type OUT NOCOPY VARCHAR2
696: -- to this routine in order to get accurate results.
697: PROCEDURE ship_num_unique_check(
698: p_line_loc_id_tbl IN PO_TBL_NUMBER
699: , p_line_id_tbl IN PO_TBL_NUMBER
700: , p_shipment_num_tbl IN PO_TBL_NUMBER
701: , p_shipment_type_tbl IN PO_TBL_VARCHAR30 --
702: , x_result_set_id IN OUT NOCOPY NUMBER
703: , x_result_type OUT NOCOPY VARCHAR2
704: )
722: -- Invokes check_inv_org_in_sob to determine if the specified organization
723: -- is in the current set of books.
724: -------------------------------------------------------------------------
725: PROCEDURE is_org_in_current_sob_check (
726: p_line_loc_id_tbl IN PO_TBL_NUMBER
727: --PBWC Message Change Impact: Adding token
728: , p_line_id_tbl IN PO_TBL_NUMBER
729: , p_org_id_tbl IN PO_TBL_NUMBER
730: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
724: -------------------------------------------------------------------------
725: PROCEDURE is_org_in_current_sob_check (
726: p_line_loc_id_tbl IN PO_TBL_NUMBER
727: --PBWC Message Change Impact: Adding token
728: , p_line_id_tbl IN PO_TBL_NUMBER
729: , p_org_id_tbl IN PO_TBL_NUMBER
730: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
731: , p_consigned_flag_tbl IN PO_TBL_VARCHAR1
732: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
725: PROCEDURE is_org_in_current_sob_check (
726: p_line_loc_id_tbl IN PO_TBL_NUMBER
727: --PBWC Message Change Impact: Adding token
728: , p_line_id_tbl IN PO_TBL_NUMBER
729: , p_org_id_tbl IN PO_TBL_NUMBER
730: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
731: , p_consigned_flag_tbl IN PO_TBL_VARCHAR1
732: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
733: , x_result_type OUT NOCOPY VARCHAR2
726: p_line_loc_id_tbl IN PO_TBL_NUMBER
727: --PBWC Message Change Impact: Adding token
728: , p_line_id_tbl IN PO_TBL_NUMBER
729: , p_org_id_tbl IN PO_TBL_NUMBER
730: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
731: , p_consigned_flag_tbl IN PO_TBL_VARCHAR1
732: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
733: , x_result_type OUT NOCOPY VARCHAR2
734: )
737:
738: l_results_count NUMBER;
739: l_data_key NUMBER;
740:
741: l_line_loc_id_tbl PO_TBL_NUMBER;
742: --PBWC Message Change Impact: Adding a token
743: l_line_id_tbl PO_TBL_NUMBER;
744: l_ship_to_org_id_tbl PO_TBL_NUMBER;
745: l_set_of_books_id_tbl PO_TBL_NUMBER;
739: l_data_key NUMBER;
740:
741: l_line_loc_id_tbl PO_TBL_NUMBER;
742: --PBWC Message Change Impact: Adding a token
743: l_line_id_tbl PO_TBL_NUMBER;
744: l_ship_to_org_id_tbl PO_TBL_NUMBER;
745: l_set_of_books_id_tbl PO_TBL_NUMBER;
746:
747: l_in_sob BOOLEAN;
740:
741: l_line_loc_id_tbl PO_TBL_NUMBER;
742: --PBWC Message Change Impact: Adding a token
743: l_line_id_tbl PO_TBL_NUMBER;
744: l_ship_to_org_id_tbl PO_TBL_NUMBER;
745: l_set_of_books_id_tbl PO_TBL_NUMBER;
746:
747: l_in_sob BOOLEAN;
748: l_return_status VARCHAR(1);
741: l_line_loc_id_tbl PO_TBL_NUMBER;
742: --PBWC Message Change Impact: Adding a token
743: l_line_id_tbl PO_TBL_NUMBER;
744: l_ship_to_org_id_tbl PO_TBL_NUMBER;
745: l_set_of_books_id_tbl PO_TBL_NUMBER;
746:
747: l_in_sob BOOLEAN;
748: l_return_status VARCHAR(1);
749: BEGIN
860: -- Validates that quantity is not null and greater than zero if it is not
861: -- a Rate or Fixed Price line.
862: -----------------------------------------------------------------------------
863: PROCEDURE quantity_gt_zero(
864: p_line_loc_id_tbl IN PO_TBL_NUMBER
865: , p_quantity_tbl IN PO_TBL_NUMBER
866: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
867: , p_value_basis_tbl IN PO_TBL_VARCHAR30 --
868: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
861: -- a Rate or Fixed Price line.
862: -----------------------------------------------------------------------------
863: PROCEDURE quantity_gt_zero(
864: p_line_loc_id_tbl IN PO_TBL_NUMBER
865: , p_quantity_tbl IN PO_TBL_NUMBER
866: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
867: , p_value_basis_tbl IN PO_TBL_VARCHAR30 --
868: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
869: , x_result_type OUT NOCOPY VARCHAR2
869: , x_result_type OUT NOCOPY VARCHAR2
870: )
871: IS
872: d_mod CONSTANT VARCHAR2(100) := D_quantity_gt_zero;
873: l_line_loc_id_tbl PO_TBL_NUMBER;
874: l_quantity_tbl PO_TBL_NUMBER;
875: l_input_size NUMBER;
876: l_count NUMBER;
877: BEGIN
870: )
871: IS
872: d_mod CONSTANT VARCHAR2(100) := D_quantity_gt_zero;
873: l_line_loc_id_tbl PO_TBL_NUMBER;
874: l_quantity_tbl PO_TBL_NUMBER;
875: l_input_size NUMBER;
876: l_count NUMBER;
877: BEGIN
878:
885: END IF;
886:
887: l_input_size := p_line_loc_id_tbl.COUNT;
888:
889: l_line_loc_id_tbl := PO_TBL_NUMBER();
890: l_line_loc_id_tbl.extend(l_input_size);
891: l_quantity_tbl := PO_TBL_NUMBER();
892: l_quantity_tbl.extend(l_input_size);
893:
887: l_input_size := p_line_loc_id_tbl.COUNT;
888:
889: l_line_loc_id_tbl := PO_TBL_NUMBER();
890: l_line_loc_id_tbl.extend(l_input_size);
891: l_quantity_tbl := PO_TBL_NUMBER();
892: l_quantity_tbl.extend(l_input_size);
893:
894: l_count := 0;
895:
938: -- This check is only performed if quantity is being reduced below the
939: -- current transaction quantity, since over-receiving/billing is allowed.
940: -----------------------------------------------------------------------------
941: PROCEDURE quantity_ge_quantity_exec(
942: p_line_loc_id_tbl IN PO_TBL_NUMBER
943: , p_quantity_tbl IN PO_TBL_NUMBER
944: , x_result_set_id IN OUT NOCOPY NUMBER
945: , x_result_type OUT NOCOPY VARCHAR2
946: )
939: -- current transaction quantity, since over-receiving/billing is allowed.
940: -----------------------------------------------------------------------------
941: PROCEDURE quantity_ge_quantity_exec(
942: p_line_loc_id_tbl IN PO_TBL_NUMBER
943: , p_quantity_tbl IN PO_TBL_NUMBER
944: , x_result_set_id IN OUT NOCOPY NUMBER
945: , x_result_type OUT NOCOPY VARCHAR2
946: )
947: IS
1042: -- Validates that amount is not null and greater than zero if the line is
1043: -- Rate or Fixed Price.
1044: -----------------------------------------------------------------------------
1045: PROCEDURE amount_gt_zero(
1046: p_line_loc_id_tbl IN PO_TBL_NUMBER
1047: , p_amount_tbl IN PO_TBL_NUMBER
1048: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
1049: , p_value_basis_tbl IN PO_TBL_VARCHAR30 --
1050: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1043: -- Rate or Fixed Price.
1044: -----------------------------------------------------------------------------
1045: PROCEDURE amount_gt_zero(
1046: p_line_loc_id_tbl IN PO_TBL_NUMBER
1047: , p_amount_tbl IN PO_TBL_NUMBER
1048: , p_shipment_type_tbl IN PO_TBL_VARCHAR30
1049: , p_value_basis_tbl IN PO_TBL_VARCHAR30 --
1050: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1051: , x_result_type OUT NOCOPY VARCHAR2
1051: , x_result_type OUT NOCOPY VARCHAR2
1052: )
1053: IS
1054: d_mod CONSTANT VARCHAR2(100) := D_amount_gt_zero;
1055: l_line_loc_id_tbl PO_TBL_NUMBER;
1056: l_amount_tbl PO_TBL_NUMBER;
1057: l_input_size NUMBER;
1058: l_count NUMBER;
1059: BEGIN
1052: )
1053: IS
1054: d_mod CONSTANT VARCHAR2(100) := D_amount_gt_zero;
1055: l_line_loc_id_tbl PO_TBL_NUMBER;
1056: l_amount_tbl PO_TBL_NUMBER;
1057: l_input_size NUMBER;
1058: l_count NUMBER;
1059: BEGIN
1060:
1067: END IF;
1068:
1069: l_input_size := p_line_loc_id_tbl.COUNT;
1070:
1071: l_line_loc_id_tbl := PO_TBL_NUMBER();
1072: l_line_loc_id_tbl.extend(l_input_size);
1073: l_amount_tbl := PO_TBL_NUMBER();
1074: l_amount_tbl.extend(l_input_size);
1075:
1069: l_input_size := p_line_loc_id_tbl.COUNT;
1070:
1071: l_line_loc_id_tbl := PO_TBL_NUMBER();
1072: l_line_loc_id_tbl.extend(l_input_size);
1073: l_amount_tbl := PO_TBL_NUMBER();
1074: l_amount_tbl.extend(l_input_size);
1075:
1076: l_count := 0;
1077:
1120: -- This check is only performed if amount is being reduced below the
1121: -- current transaction amount, since over-receiving/billing is allowed.
1122: -----------------------------------------------------------------------------
1123: PROCEDURE amount_ge_amount_exec(
1124: p_line_loc_id_tbl IN PO_TBL_NUMBER
1125: , p_amount_tbl IN PO_TBL_NUMBER
1126: , x_result_set_id IN OUT NOCOPY NUMBER
1127: , x_result_type OUT NOCOPY VARCHAR2
1128: )
1121: -- current transaction amount, since over-receiving/billing is allowed.
1122: -----------------------------------------------------------------------------
1123: PROCEDURE amount_ge_amount_exec(
1124: p_line_loc_id_tbl IN PO_TBL_NUMBER
1125: , p_amount_tbl IN PO_TBL_NUMBER
1126: , x_result_set_id IN OUT NOCOPY NUMBER
1127: , x_result_type OUT NOCOPY VARCHAR2
1128: )
1129: IS
1221: -- Validates that secondary quantity is not null and greater than zero for
1222: -- an opm item.
1223: -----------------------------------------------------------------------------
1224: PROCEDURE ship_sec_quantity_gt_zero(
1225: p_line_loc_id_tbl IN PO_TBL_NUMBER
1226: , p_item_id_tbl IN PO_TBL_NUMBER
1227: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1228: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1229: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1222: -- an opm item.
1223: -----------------------------------------------------------------------------
1224: PROCEDURE ship_sec_quantity_gt_zero(
1225: p_line_loc_id_tbl IN PO_TBL_NUMBER
1226: , p_item_id_tbl IN PO_TBL_NUMBER
1227: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1228: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1229: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1230: , x_result_type OUT NOCOPY VARCHAR2
1223: -----------------------------------------------------------------------------
1224: PROCEDURE ship_sec_quantity_gt_zero(
1225: p_line_loc_id_tbl IN PO_TBL_NUMBER
1226: , p_item_id_tbl IN PO_TBL_NUMBER
1227: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1228: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1229: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1230: , x_result_type OUT NOCOPY VARCHAR2
1231: )
1224: PROCEDURE ship_sec_quantity_gt_zero(
1225: p_line_loc_id_tbl IN PO_TBL_NUMBER
1226: , p_item_id_tbl IN PO_TBL_NUMBER
1227: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1228: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1229: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1230: , x_result_type OUT NOCOPY VARCHAR2
1231: )
1232: IS
1265: -- Validates secondary quantity and the quantity combination is for
1266: -- an opm item
1267: -----------------------------------------------------------------------------
1268: PROCEDURE ship_qtys_within_deviation (
1269: p_line_loc_id_tbl IN PO_TBL_NUMBER
1270: , p_item_id_tbl IN PO_TBL_NUMBER
1271: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1272: , p_quantity_tbl IN PO_TBL_NUMBER
1273: , p_primary_uom_tbl IN PO_TBL_VARCHAR30
1266: -- an opm item
1267: -----------------------------------------------------------------------------
1268: PROCEDURE ship_qtys_within_deviation (
1269: p_line_loc_id_tbl IN PO_TBL_NUMBER
1270: , p_item_id_tbl IN PO_TBL_NUMBER
1271: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1272: , p_quantity_tbl IN PO_TBL_NUMBER
1273: , p_primary_uom_tbl IN PO_TBL_VARCHAR30
1274: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1267: -----------------------------------------------------------------------------
1268: PROCEDURE ship_qtys_within_deviation (
1269: p_line_loc_id_tbl IN PO_TBL_NUMBER
1270: , p_item_id_tbl IN PO_TBL_NUMBER
1271: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1272: , p_quantity_tbl IN PO_TBL_NUMBER
1273: , p_primary_uom_tbl IN PO_TBL_VARCHAR30
1274: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1275: , p_secondary_uom_tbl IN PO_TBL_VARCHAR30
1268: PROCEDURE ship_qtys_within_deviation (
1269: p_line_loc_id_tbl IN PO_TBL_NUMBER
1270: , p_item_id_tbl IN PO_TBL_NUMBER
1271: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1272: , p_quantity_tbl IN PO_TBL_NUMBER
1273: , p_primary_uom_tbl IN PO_TBL_VARCHAR30
1274: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1275: , p_secondary_uom_tbl IN PO_TBL_VARCHAR30
1276: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1270: , p_item_id_tbl IN PO_TBL_NUMBER
1271: , p_ship_to_org_id_tbl IN PO_TBL_NUMBER
1272: , p_quantity_tbl IN PO_TBL_NUMBER
1273: , p_primary_uom_tbl IN PO_TBL_VARCHAR30
1274: , p_sec_quantity_tbl IN PO_TBL_NUMBER
1275: , p_secondary_uom_tbl IN PO_TBL_VARCHAR30
1276: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE
1277: , x_result_type OUT NOCOPY VARCHAR2
1278: )
1318: -- a. Quantity based Pay Items (pessimistic check)
1319: -- b. rate based Pay Items with payment type as Rate or Delivery
1320: -----------------------------------------------------------------------------
1321: PROCEDURE unit_of_measure_not_null(
1322: p_line_loc_id_tbl IN PO_TBL_NUMBER
1323: , p_payment_type_tbl IN PO_TBL_VARCHAR30
1324: , p_value_basis_tbl IN PO_TBL_VARCHAR30
1325: , p_unit_meas_lookup_code_tbl IN PO_TBL_VARCHAR30
1326: , x_results IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE