31: From PO_LINE_LOCATIONS_ALL PLL
32: Where pll.po_release_id = p_po_release_id
33: And not exists (
34: select 1
35: From PO_ACCEPTANCES PA
36: Where PA.po_release_id = p_po_release_id
37: And pa.revision_num = p_revision_num
38: And pa.po_line_location_id = PLL.line_location_id )
39: And nvl(pll.cancel_flag, 'N') = 'N'
49: Where pll.po_header_id = p_po_header_id
50: And pll.po_release_id is null
51: And not exists (
52: select 1
53: From PO_ACCEPTANCES PA
54: Where PA.po_header_id = p_po_header_id
55: And pa.revision_num = p_revision_num
56: And pa.po_line_location_id = PLL.line_location_id )
57: And nvl(pll.cancel_flag, 'N') = 'N'
156: l_arch_revision_num NUMBER := p_revision_num;
157:
158: CURSOR l_po_ship_ack_exists_csr IS
159: select 'Y'
160: from PO_ACCEPTANCES
161: where po_header_id = p_po_header_id
162: and po_release_id is null
163: and revision_num = p_revision_num
164: and po_line_location_id is not null;
164: and po_line_location_id is not null;
165:
166: CURSOR l_rel_ship_ack_exists_csr IS
167: select 'Y'
168: from PO_ACCEPTANCES
169: where po_header_id is null
170: and po_release_id = p_po_release_id
171: and revision_num = p_revision_num
172: and po_line_location_id is not null;
172: and po_line_location_id is not null;
173:
174: CURSOR l_sup_sign_exists_csr IS
175: select 'Y'
176: from PO_ACCEPTANCES
177: where po_header_id = p_po_header_id
178: and revision_num = p_revision_num
179: and po_release_id is null
180: and po_line_location_id is null
183: and signature_flag = 'Y';
184:
185: CURSOR l_reject_sign_exists_csr IS
186: select 'Y'
187: from PO_ACCEPTANCES
188: where po_header_id = p_po_header_id
189: and revision_num = p_revision_num
190: and po_release_id is null
191: and po_line_location_id is null
388: BEGIN
389: /* Get header level accepted_flag. */
390: select accepted_flag
391: into l_accepted_flag
392: from PO_ACCEPTANCES
393: where acceptance_id = (
394: select max(acceptance_id)
395: from PO_ACCEPTANCES
396: where po_release_id = p_po_release_id
391: into l_accepted_flag
392: from PO_ACCEPTANCES
393: where acceptance_id = (
394: select max(acceptance_id)
395: from PO_ACCEPTANCES
396: where po_release_id = p_po_release_id
397: and revision_num = p_revision_num
398: and po_line_location_id is null );
399:
405: ELSIF (p_po_header_id is not null) THEN
406: BEGIN
407: select accepted_flag
408: into l_accepted_flag
409: from PO_ACCEPTANCES
410: where acceptance_id = (
411: select max(acceptance_id)
412: from PO_ACCEPTANCES
413: where po_header_id = p_po_header_id
408: into l_accepted_flag
409: from PO_ACCEPTANCES
410: where acceptance_id = (
411: select max(acceptance_id)
412: from PO_ACCEPTANCES
413: where po_header_id = p_po_header_id
414: and po_release_id is null
415: and revision_num = p_revision_num
416: and po_line_location_id is null );
441: /**
442: * Private procedure: Acknowledge_Po
443: * Requires: PO_HEADER_ID, PO_RELEASE_ID, REVISION_NUM, ACCEPTED_FLAG,
444: * COMMENT, BUYER_ID, USER_ID
445: * Modifies: PO_ACCEPTANCES
446: * Effects: Insert header level acknowledgement result into PO_ACCEPTANCES
447: * table, also update ACCEPTANCE_REQUIRED_FLAG at PO header level.
448: */
449:
442: * Private procedure: Acknowledge_Po
443: * Requires: PO_HEADER_ID, PO_RELEASE_ID, REVISION_NUM, ACCEPTED_FLAG,
444: * COMMENT, BUYER_ID, USER_ID
445: * Modifies: PO_ACCEPTANCES
446: * Effects: Insert header level acknowledgement result into PO_ACCEPTANCES
447: * table, also update ACCEPTANCE_REQUIRED_FLAG at PO header level.
448: */
449:
450: PROCEDURE Acknowledge_Po (
459: IS
460:
461: -- Bug 2850566
462: l_rowid ROWID;
463: l_Last_Update_Login PO_ACCEPTANCES.last_update_login%TYPE;
464: l_Last_Update_Date PO_ACCEPTANCES.last_update_date%TYPE;
465: l_acc_po_header_id PO_HEADERS_ALL.po_header_id%TYPE;
466: l_acceptance_id PO_ACCEPTANCES.acceptance_id%TYPE;
467: l_user_id PO_ACCEPTANCES.last_updated_by%TYPE;
460:
461: -- Bug 2850566
462: l_rowid ROWID;
463: l_Last_Update_Login PO_ACCEPTANCES.last_update_login%TYPE;
464: l_Last_Update_Date PO_ACCEPTANCES.last_update_date%TYPE;
465: l_acc_po_header_id PO_HEADERS_ALL.po_header_id%TYPE;
466: l_acceptance_id PO_ACCEPTANCES.acceptance_id%TYPE;
467: l_user_id PO_ACCEPTANCES.last_updated_by%TYPE;
468: -- End of Bug 2850566
462: l_rowid ROWID;
463: l_Last_Update_Login PO_ACCEPTANCES.last_update_login%TYPE;
464: l_Last_Update_Date PO_ACCEPTANCES.last_update_date%TYPE;
465: l_acc_po_header_id PO_HEADERS_ALL.po_header_id%TYPE;
466: l_acceptance_id PO_ACCEPTANCES.acceptance_id%TYPE;
467: l_user_id PO_ACCEPTANCES.last_updated_by%TYPE;
468: -- End of Bug 2850566
469:
470: BEGIN
463: l_Last_Update_Login PO_ACCEPTANCES.last_update_login%TYPE;
464: l_Last_Update_Date PO_ACCEPTANCES.last_update_date%TYPE;
465: l_acc_po_header_id PO_HEADERS_ALL.po_header_id%TYPE;
466: l_acceptance_id PO_ACCEPTANCES.acceptance_id%TYPE;
467: l_user_id PO_ACCEPTANCES.last_updated_by%TYPE;
468: -- End of Bug 2850566
469:
470: BEGIN
471:
469:
470: BEGIN
471:
472: -- Bug 2850566 RBAIRRAJ
473: -- Calling the Acceptances row handler to insert into the PO_ACCEPTANCES table
474: -- instead of writing an Insert statement.
475:
476: IF p_po_release_id IS NULL THEN
477: l_acc_po_header_id := p_po_header_id;
480: END IF;
481:
482: l_user_id := p_user_id;
483:
484: PO_ACCEPTANCES_INS_PVT.insert_row(
485: x_rowid => l_rowid,
486: x_acceptance_id => l_acceptance_id,
487: x_Last_Update_Date => l_Last_Update_Date,
488: x_Last_Updated_By => l_user_id,
896: /* Check if shipment has been acknowledged. */
897: BEGIN
898: select accepted_flag
899: into l_ship_accepted_flag
900: from PO_ACCEPTANCES
901: where po_line_location_id = P_line_location_id
902: and revision_num = l_revision_num
903: and acceptance_id = (select MAX(acceptance_id)
904: from PO_ACCEPTANCES PA2
900: from PO_ACCEPTANCES
901: where po_line_location_id = P_line_location_id
902: and revision_num = l_revision_num
903: and acceptance_id = (select MAX(acceptance_id)
904: from PO_ACCEPTANCES PA2
905: where PA2.po_line_location_id = P_line_location_id
906: and PA2.revision_num = l_revision_num );
907:
908: EXCEPTION
930: ELSE
931: BEGIN
932: select accepted_flag
933: into l_header_accepted_flag
934: from PO_ACCEPTANCES
935: where acceptance_id = (
936: select max(acceptance_id)
937: from PO_ACCEPTANCES
938: where po_release_id = p_po_release_id
933: into l_header_accepted_flag
934: from PO_ACCEPTANCES
935: where acceptance_id = (
936: select max(acceptance_id)
937: from PO_ACCEPTANCES
938: where po_release_id = p_po_release_id
939: and revision_num = l_revision_num
940: and po_line_location_id is null );
941:
957: ELSE
958: BEGIN
959: select accepted_flag
960: into l_header_accepted_flag
961: from PO_ACCEPTANCES
962: where acceptance_id = (
963: select max(acceptance_id)
964: from PO_ACCEPTANCES
965: where po_header_id = p_po_header_id
960: into l_header_accepted_flag
961: from PO_ACCEPTANCES
962: where acceptance_id = (
963: select max(acceptance_id)
964: from PO_ACCEPTANCES
965: where po_header_id = p_po_header_id
966: and po_release_id is null
967: and revision_num = l_revision_num
968: and po_line_location_id is null );
1000: /**
1001: * Public procedure: Acknowledge_Shipment
1002: * Requires: LINE_LOCATION_ID, PO_HEADER_ID, PO_RELEASE_ID, REVISION_NUM,
1003: * ACCEPTED_FLAG, COMMENT, BUYER_ID, USER_ID
1004: * Modifies: PO_ACCEPTANCES
1005: * Effects: Insert shipment level acknowledgement result into PO_ACCEPTANCES
1006: * table. Also checks if all shipments have been acknowledged after
1007: * insertion, if yes then post the header level acknowledge result.
1008: */
1001: * Public procedure: Acknowledge_Shipment
1002: * Requires: LINE_LOCATION_ID, PO_HEADER_ID, PO_RELEASE_ID, REVISION_NUM,
1003: * ACCEPTED_FLAG, COMMENT, BUYER_ID, USER_ID
1004: * Modifies: PO_ACCEPTANCES
1005: * Effects: Insert shipment level acknowledgement result into PO_ACCEPTANCES
1006: * table. Also checks if all shipments have been acknowledged after
1007: * insertion, if yes then post the header level acknowledge result.
1008: */
1009:
1022: IS
1023:
1024: -- Bug 2850566
1025: l_rowid ROWID;
1026: l_Last_Update_Login PO_ACCEPTANCES.last_update_login%TYPE;
1027: l_Last_Update_Date PO_ACCEPTANCES.last_update_date%TYPE;
1028: l_acc_po_header_id PO_HEADERS_ALL.po_header_id%TYPE;
1029: l_acceptance_id PO_ACCEPTANCES.acceptance_id%TYPE;
1030: l_user_id PO_ACCEPTANCES.last_updated_by%TYPE;
1023:
1024: -- Bug 2850566
1025: l_rowid ROWID;
1026: l_Last_Update_Login PO_ACCEPTANCES.last_update_login%TYPE;
1027: l_Last_Update_Date PO_ACCEPTANCES.last_update_date%TYPE;
1028: l_acc_po_header_id PO_HEADERS_ALL.po_header_id%TYPE;
1029: l_acceptance_id PO_ACCEPTANCES.acceptance_id%TYPE;
1030: l_user_id PO_ACCEPTANCES.last_updated_by%TYPE;
1031: -- End of Bug 2850566
1025: l_rowid ROWID;
1026: l_Last_Update_Login PO_ACCEPTANCES.last_update_login%TYPE;
1027: l_Last_Update_Date PO_ACCEPTANCES.last_update_date%TYPE;
1028: l_acc_po_header_id PO_HEADERS_ALL.po_header_id%TYPE;
1029: l_acceptance_id PO_ACCEPTANCES.acceptance_id%TYPE;
1030: l_user_id PO_ACCEPTANCES.last_updated_by%TYPE;
1031: -- End of Bug 2850566
1032:
1033:
1026: l_Last_Update_Login PO_ACCEPTANCES.last_update_login%TYPE;
1027: l_Last_Update_Date PO_ACCEPTANCES.last_update_date%TYPE;
1028: l_acc_po_header_id PO_HEADERS_ALL.po_header_id%TYPE;
1029: l_acceptance_id PO_ACCEPTANCES.acceptance_id%TYPE;
1030: l_user_id PO_ACCEPTANCES.last_updated_by%TYPE;
1031: -- End of Bug 2850566
1032:
1033:
1034: l_api_name CONSTANT VARCHAR2(30) := 'ACKNOWLEDGE_SHIPMENT';
1055: NVL(TO_CHAR(p_line_location_id),'null'));
1056: END IF;
1057:
1058: -- Bug 2850566 RBAIRRAJ
1059: -- Calling the Acceptances row handler to insert into the PO_ACCEPTANCES table
1060: -- instead of writing an Insert statement.
1061:
1062: IF(p_accepted_flag = 'Y' AND g_default_promise_date = 'Y') THEN
1063: -- RDP ( defaults the promise date with need by date)
1072: END IF;
1073:
1074: l_user_id := p_user_id;
1075:
1076: PO_ACCEPTANCES_INS_PVT.insert_row(
1077: x_rowid => l_rowid,
1078: x_acceptance_id => l_acceptance_id,
1079: x_Last_Update_Date => l_Last_Update_Date,
1080: x_Last_Updated_By => l_user_id,
1121:
1122: /**
1123: * Public procedure: Carry_Over_Acknowledgement
1124: * Requires: PO_HEADER_ID, PO_RELEASE_ID, REVISION_NUM,
1125: * Modifies: PO_ACCEPTANCES
1126: * Effects: Carry over the shipment_level acknowledgement results from the
1127: * previous revision, it is called before launching PO approval
1128: * workflow after supplier's change has been accepted by buyer.
1129: * Returns:
1147: l_api_version CONSTANT NUMBER := 1.0;
1148:
1149: -- Bug 2850566 RBAIRRAJ
1150: l_rowid ROWID;
1151: l_Last_Update_Login PO_ACCEPTANCES.last_update_login%TYPE;
1152: l_Last_Update_Date PO_ACCEPTANCES.last_update_date%TYPE;
1153: l_Last_Updated_By PO_ACCEPTANCES.last_updated_by%TYPE;
1154: l_acceptance_id PO_ACCEPTANCES.acceptance_id%TYPE;
1155: l_user_id PO_ACCEPTANCES.last_updated_by%TYPE;
1148:
1149: -- Bug 2850566 RBAIRRAJ
1150: l_rowid ROWID;
1151: l_Last_Update_Login PO_ACCEPTANCES.last_update_login%TYPE;
1152: l_Last_Update_Date PO_ACCEPTANCES.last_update_date%TYPE;
1153: l_Last_Updated_By PO_ACCEPTANCES.last_updated_by%TYPE;
1154: l_acceptance_id PO_ACCEPTANCES.acceptance_id%TYPE;
1155: l_user_id PO_ACCEPTANCES.last_updated_by%TYPE;
1156:
1149: -- Bug 2850566 RBAIRRAJ
1150: l_rowid ROWID;
1151: l_Last_Update_Login PO_ACCEPTANCES.last_update_login%TYPE;
1152: l_Last_Update_Date PO_ACCEPTANCES.last_update_date%TYPE;
1153: l_Last_Updated_By PO_ACCEPTANCES.last_updated_by%TYPE;
1154: l_acceptance_id PO_ACCEPTANCES.acceptance_id%TYPE;
1155: l_user_id PO_ACCEPTANCES.last_updated_by%TYPE;
1156:
1157: CURSOR c1_csr IS
1150: l_rowid ROWID;
1151: l_Last_Update_Login PO_ACCEPTANCES.last_update_login%TYPE;
1152: l_Last_Update_Date PO_ACCEPTANCES.last_update_date%TYPE;
1153: l_Last_Updated_By PO_ACCEPTANCES.last_updated_by%TYPE;
1154: l_acceptance_id PO_ACCEPTANCES.acceptance_id%TYPE;
1155: l_user_id PO_ACCEPTANCES.last_updated_by%TYPE;
1156:
1157: CURSOR c1_csr IS
1158: Select
1151: l_Last_Update_Login PO_ACCEPTANCES.last_update_login%TYPE;
1152: l_Last_Update_Date PO_ACCEPTANCES.last_update_date%TYPE;
1153: l_Last_Updated_By PO_ACCEPTANCES.last_updated_by%TYPE;
1154: l_acceptance_id PO_ACCEPTANCES.acceptance_id%TYPE;
1155: l_user_id PO_ACCEPTANCES.last_updated_by%TYPE;
1156:
1157: CURSOR c1_csr IS
1158: Select
1159: PA.created_by,
1161: PA.action,
1162: PA.action_date,
1163: PA.accepted_flag,
1164: PA.Last_Updated_By
1165: from PO_ACCEPTANCES PA
1166: Where PA.po_release_id = p_po_release_id
1167: And PA.revision_num = p_revision_num - 1
1168: And PA.po_line_location_id is not null
1169: AND NOT EXISTS ( select 1
1166: Where PA.po_release_id = p_po_release_id
1167: And PA.revision_num = p_revision_num - 1
1168: And PA.po_line_location_id is not null
1169: AND NOT EXISTS ( select 1
1170: From PO_ACCEPTANCES PA2
1171: Where PA2.po_release_id = p_po_release_id
1172: And PA2.revision_num = p_revision_num
1173: And PA2.po_line_location_id = PA.po_line_location_id);
1174:
1184: and PCR.initiator = 'SUPPLIER'
1185: And PCR.action_type = 'MODIFICATION'
1186: and PCR.REQUEST_LEVEL = 'SHIPMENT'
1187: AND NOT EXISTS ( select 1
1188: From PO_ACCEPTANCES PA2
1189: Where PA2.po_release_id = p_po_release_id
1190: And PA2.revision_num = p_revision_num
1191: And PA2.po_line_location_id = PCR.document_line_location_id);
1192:
1198: PA.action,
1199: PA.action_date,
1200: PA.accepted_flag,
1201: PA.Last_Updated_By
1202: from PO_ACCEPTANCES PA
1203: Where PA.po_header_id = p_po_header_id
1204: and PA.po_release_id is null
1205: And PA.revision_num = p_revision_num - 1
1206: And PA.po_line_location_id is not null
1204: and PA.po_release_id is null
1205: And PA.revision_num = p_revision_num - 1
1206: And PA.po_line_location_id is not null
1207: AND NOT EXISTS ( select 1
1208: From PO_ACCEPTANCES PA2
1209: Where PA2.po_release_id = p_po_release_id
1210: And PA2.revision_num = p_revision_num
1211: And PA2.po_line_location_id = PA.po_line_location_id);
1212:
1223: and PCR.initiator = 'SUPPLIER'
1224: And PCR.action_type = 'MODIFICATION'
1225: and PCR.REQUEST_LEVEL = 'SHIPMENT'
1226: AND NOT EXISTS ( select 1
1227: From PO_ACCEPTANCES PA2
1228: Where PA2.po_header_id = p_po_header_id
1229: And PA2.po_release_id is null
1230: And PA2.revision_num = p_revision_num
1231: And PA2.po_line_location_id = PCR.document_line_location_id);
1264: where po_release_id = p_po_release_id;
1265:
1266:
1267: -- Bug 2850566 RBAIRRAJ
1268: -- Calling the Acceptances row handler to insert into the PO_ACCEPTANCES table
1269: -- instead of writing an Insert statement.
1270: for c1_rec in c1_csr
1271: loop
1272:
1272:
1273: l_user_id := c1_rec.Last_Updated_By;
1274: l_acceptance_id := NULL;
1275:
1276: PO_ACCEPTANCES_INS_PVT.insert_row(
1277: x_rowid => l_rowid,
1278: x_acceptance_id => l_acceptance_id,
1279: x_Last_Update_Date => l_Last_Update_Date,
1280: x_Last_Updated_By => l_user_id,
1295: /* If a shipment-level change has been approved, we'll treat this
1296: shipment as being accepted by the supplier. */
1297:
1298: -- Bug 2850566 RBAIRRAJ
1299: -- Calling the Acceptances row handler to insert into the PO_ACCEPTANCES table
1300: -- instead of writing an Insert statement.
1301: for c2_rec in c2_csr
1302: loop
1303: l_acceptance_id := NULL;
1302: loop
1303: l_acceptance_id := NULL;
1304: l_Last_Updated_By := NULL;
1305:
1306: PO_ACCEPTANCES_INS_PVT.insert_row(
1307: x_rowid => l_rowid,
1308: x_acceptance_id => l_acceptance_id,
1309: x_Last_Update_Date => l_Last_Update_Date,
1310: x_Last_Updated_By => l_Last_Updated_By,
1329: where po_header_id = p_po_header_id;
1330:
1331:
1332: -- Bug 2850566 RBAIRRAJ
1333: -- Calling the Acceptances row handler to insert into the PO_ACCEPTANCES table
1334: -- instead of writing an Insert statement.
1335:
1336: for c3_rec in c3_csr
1337: loop
1337: loop
1338: l_user_id := c3_rec.Last_Updated_By;
1339: l_acceptance_id := NULL;
1340:
1341: PO_ACCEPTANCES_INS_PVT.insert_row(
1342: x_rowid => l_rowid,
1343: x_acceptance_id => l_acceptance_id,
1344: x_Last_Update_Date => l_Last_Update_Date,
1345: x_Last_Updated_By => l_user_id,
1360: shipment as being accepted by the supplier. */
1361:
1362:
1363: -- Bug 2850566 RBAIRRAJ
1364: -- Calling the Acceptances row handler to insert into the PO_ACCEPTANCES table
1365: -- instead of writing an Insert statement.
1366:
1367: for c4_rec in c4_csr
1368: loop
1368: loop
1369: l_acceptance_id := NULL;
1370: l_Last_Updated_By := NULL;
1371:
1372: PO_ACCEPTANCES_INS_PVT.insert_row(
1373: x_rowid => l_rowid,
1374: x_acceptance_id => l_acceptance_id,
1375: x_Last_Update_Date => l_Last_Update_Date,
1376: x_Last_Updated_By => l_Last_Updated_By,
1414: into l_header_accepted_flag
1415: From sys.dual
1416: Where exists (
1417: select 1
1418: From PO_ACCEPTANCES
1419: Where po_release_id = p_po_release_id
1420: and revision_num = p_revision_num
1421: and po_line_location_id is not null
1422: and accepted_flag <> 'Y' );
1426: into l_header_accepted_flag
1427: From sys.dual
1428: Where exists (
1429: select 'Y'
1430: From PO_ACCEPTANCES
1431: Where po_header_id = p_po_header_id
1432: and po_release_id is null
1433: and revision_num = p_revision_num
1434: and po_line_location_id is not null
1503: From PO_LINE_LOCATIONS_ALL PLL
1504: Where pll.po_release_id = p_po_release_id
1505: And not exists (
1506: select 1
1507: From PO_ACCEPTANCES PA
1508: Where PA.po_release_id = p_po_release_id
1509: And pa.revision_num = p_revision_num
1510: And pa.po_line_location_id = PLL.line_location_id )
1511: And not exists (
1537: Where pll.po_header_id = p_po_header_id
1538: And pll.po_release_id is null
1539: And not exists (
1540: select 1
1541: From PO_ACCEPTANCES PA
1542: Where PA.po_header_id = p_po_header_id
1543: And pa.revision_num = p_revision_num
1544: And pa.po_line_location_id = PLL.line_location_id )
1545: And not exists (
1627:
1628: /**
1629: * Public procedure: Set_Header_Acknowledgement
1630: * Requires: PO_HEADER_ID, PO_RELEASE_ID
1631: * Modifies: PO_ACCEPTANCES
1632: * Effects: For ack required PO, check if all shipments has been acknowledged
1633: * and if there is no supplier change pending, if both conditions
1634: * satisfied, post the header level acknowledgement record.
1635: * This API should be called after supplier submits the change requests and
1657: l_buyer_id NUMBER;
1658:
1659: CURSOR l_rel_ship_accp_csr(rev_num NUMBER) IS
1660: SELECT accepted_flag
1661: FROM po_acceptances
1662: WHERE po_release_id = p_po_release_id
1663: AND revision_num = rev_num
1664: AND po_line_location_id is not null;
1665:
1664: AND po_line_location_id is not null;
1665:
1666: CURSOR l_po_ship_accp_csr(rev_num NUMBER) IS
1667: SELECT accepted_flag
1668: FROM po_acceptances
1669: WHERE po_header_id = p_po_header_id
1670: AND revision_num = rev_num
1671: AND po_line_location_id is not null;
1672:
1779: INTO l_header_accepted_flag
1780: FROM sys.dual
1781: WHERE exists (
1782: SELECT 1
1783: FROM PO_ACCEPTANCES
1784: WHERE po_release_id = p_po_release_id
1785: AND revision_num = l_revision_num
1786: AND po_line_location_id is not null
1787: AND accepted_flag <> l_ship_accepted_flag );
1791: INTO l_header_accepted_flag
1792: FROM sys.dual
1793: WHERE exists (
1794: SELECT 'Y'
1795: FROM PO_ACCEPTANCES
1796: WHERE po_header_id = p_po_header_id
1797: AND po_release_id is null
1798: AND revision_num = l_revision_num
1799: AND po_line_location_id is not null