147: -- When PO
148: -- Case entity.document_subtype is
149: -- When STANDARD or PLANNED
150: -- archive PO_HEADERS
151: -- when modified archive PO_LINES, PO_LINE_LOCATIONS and
152: -- PO_DISTRIBUTIONS.
153: -- End Case
154: -- When PA
155: -- Case entity.document_subtype is
154: -- When PA
155: -- Case entity.document_subtype is
156: -- When BLANKET
157: -- archive PO_HEADERS
158: -- when modified archive PO_LINES.
159: -- When CONTRACT
160: -- archive PO_HEADERS
161: -- When RELEASE
162: -- archive PO_RELEASES
643: END PORARHEADER;
644:
645: -- ============================================================================
646: -- Name: porarlines
647: -- Desc: Archive PO_LINES
648: -- Args: IN: p_document_id - The unique identifier of the Purchase Order
649: -- p_revision_num - The revision number of the header
650: -- Err : Error message context returned in global_stack.
651: -- Algr: Set the LATEST_EXTERNAL_FLAG of the current archived lines to "N"
659: IS
660:
661: BEGIN
662: -- Archive the lines.
663: -- This will be an exact copy of po_lines except for the
664: -- latest_external_flag and the revision_num. Keep the columns
665: -- in alphabetical order for easy verification.
666: INSERT INTO PO_LINES_ARCHIVE
667: (
662: -- Archive the lines.
663: -- This will be an exact copy of po_lines except for the
664: -- latest_external_flag and the revision_num. Keep the columns
665: -- in alphabetical order for easy verification.
666: INSERT INTO PO_LINES_ARCHIVE
667: (
668: ALLOW_PRICE_OVERRIDE_FLAG ,
669: ATTRIBUTE1 ,
670: ATTRIBUTE10 ,
821: POL.UN_NUMBER_ID ,
822: POL.USER_HOLD_FLAG ,
823: POL.USSGL_TRANSACTION_CODE ,
824: POL.VENDOR_PRODUCT_NUM
825: FROM PO_LINES POL,
826: PO_LINES_ARCHIVE POLA
827: WHERE POL.PO_HEADER_ID = p_document_id
828: AND POL.PO_LINE_ID = POLA.PO_LINE_ID (+)
829: AND POLA.LATEST_EXTERNAL_FLAG (+) = 'Y'
822: POL.USER_HOLD_FLAG ,
823: POL.USSGL_TRANSACTION_CODE ,
824: POL.VENDOR_PRODUCT_NUM
825: FROM PO_LINES POL,
826: PO_LINES_ARCHIVE POLA
827: WHERE POL.PO_HEADER_ID = p_document_id
828: AND POL.PO_LINE_ID = POLA.PO_LINE_ID (+)
829: AND POLA.LATEST_EXTERNAL_FLAG (+) = 'Y'
830: AND (
909: -- - latest_external_flag = 'Y'
910: -- - revision_num < p_revision_num (the new revision of the
911: -- header)
912: -- - have no new archived row
913: UPDATE PO_LINES_ARCHIVE POL1
914: SET LATEST_EXTERNAL_FLAG = 'N'
915: WHERE PO_HEADER_ID = p_document_id
916: AND LATEST_EXTERNAL_FLAG = 'Y'
917: AND REVISION_NUM < p_revision_num
916: AND LATEST_EXTERNAL_FLAG = 'Y'
917: AND REVISION_NUM < p_revision_num
918: AND EXISTS
919: (SELECT 'A new archived row'
920: FROM PO_LINES_ARCHIVE POL2
921: WHERE POL2.PO_LINE_ID = POL1.PO_LINE_ID
922: AND POL2.LATEST_EXTERNAL_FLAG = 'Y'
923: AND POL2.REVISION_NUM = p_revision_num);
924: END IF;