393: engStSuspendedItems ame_util.stringList;
394: engStSuspendedItemClasses ame_util.stringList;
395: engStVariableNames ame_util.stringList;
396: engStVariableValues ame_util.stringList;
397: engStProductionsTable ame_util2.productionsTable;
398: engStItemAppProcessCompleteYN ame_util.charList;
399: engStInsertionIndexes ame_util.idList;
400: engInsertionOrderList ame_util.idList;
401: /*eng deviation list*/
612: ame_util.transactionIdPlaceholder,
613: engTransactionId,
614: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
615: end if;
616: if(instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0) then
617: dbms_sql.bind_variable(dynamicCursor,
618: ame_util2.itemClassPlaceHolder,
619: itemClassIn,
620: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
614: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
615: end if;
616: if(instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0) then
617: dbms_sql.bind_variable(dynamicCursor,
618: ame_util2.itemClassPlaceHolder,
619: itemClassIn,
620: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
621: end if;
622: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
618: ame_util2.itemClassPlaceHolder,
619: itemClassIn,
620: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
621: end if;
622: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
623: dbms_sql.bind_variable(dynamicCursor,
624: ame_util2.itemIdPlaceHolder,
625: itemIdIn,
626: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
620: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
621: end if;
622: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
623: dbms_sql.bind_variable(dynamicCursor,
624: ame_util2.itemIdPlaceHolder,
625: itemIdIn,
626: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
627: end if;
628: dbms_sql.define_array(dynamicCursor,
4061: dynamicQuery := ame_util.removeReturns(stringIn => queryStrings(i),
4062: replaceWithSpaces => true);
4063: if(checkAttributeVariant(attributeIdIn => tempAttributeId) = ame_util.booleanTrue) then
4064: if ((isStatics(i) = ame_util.booleanFalse) and
4065: (instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0 or
4066: instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0)) then
4067: engAttributeVariant(tempAttributeId) := ame_util.booleanTrue;
4068: engAttributeQueries(tempAttributeId) := queryStrings(i);
4069: end if;
4062: replaceWithSpaces => true);
4063: if(checkAttributeVariant(attributeIdIn => tempAttributeId) = ame_util.booleanTrue) then
4064: if ((isStatics(i) = ame_util.booleanFalse) and
4065: (instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0 or
4066: instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0)) then
4067: engAttributeVariant(tempAttributeId) := ame_util.booleanTrue;
4068: engAttributeQueries(tempAttributeId) := queryStrings(i);
4069: end if;
4070: end if;
4196: ame_util.transactionIdPlaceholder,
4197: engTransactionId,
4198: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4199: end if;
4200: if(instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0) then
4201: dbms_sql.bind_variable(dynamicCursor,
4202: ame_util2.itemClassPlaceHolder,
4203: ame_util.headerItemClassName,
4204: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4198: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4199: end if;
4200: if(instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0) then
4201: dbms_sql.bind_variable(dynamicCursor,
4202: ame_util2.itemClassPlaceHolder,
4203: ame_util.headerItemClassName,
4204: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4205: end if;
4206: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
4202: ame_util2.itemClassPlaceHolder,
4203: ame_util.headerItemClassName,
4204: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4205: end if;
4206: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
4207: dbms_sql.bind_variable(dynamicCursor,
4208: ame_util2.itemIdPlaceHolder,
4209: engTransactionId,
4210: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4204: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4205: end if;
4206: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
4207: dbms_sql.bind_variable(dynamicCursor,
4208: ame_util2.itemIdPlaceHolder,
4209: engTransactionId,
4210: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4211: end if;
4212: dbms_sql.define_array(dynamicCursor,
4521: dynamicQuery := ame_util.removeReturns(stringIn => queryStrings(i),
4522: replaceWithSpaces => true);
4523: if(checkAttributeVariant(attributeIdIn => tempAttributeId) = ame_util.booleanTrue) then
4524: if ((isStatics(i) = ame_util.booleanFalse) and
4525: (instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0 or
4526: instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0)) then
4527: engAttributeVariant(tempAttributeId) := ame_util.booleanTrue;
4528: engAttributeQueries(tempAttributeId) := queryStrings(i);
4529: end if;
4522: replaceWithSpaces => true);
4523: if(checkAttributeVariant(attributeIdIn => tempAttributeId) = ame_util.booleanTrue) then
4524: if ((isStatics(i) = ame_util.booleanFalse) and
4525: (instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0 or
4526: instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0)) then
4527: engAttributeVariant(tempAttributeId) := ame_util.booleanTrue;
4528: engAttributeQueries(tempAttributeId) := queryStrings(i);
4529: end if;
4530: end if;
4656: ame_util.transactionIdPlaceholder,
4657: engTransactionId,
4658: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4659: end if;
4660: if(instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0) then
4661: dbms_sql.bind_variable(dynamicCursor,
4662: ame_util2.itemClassPlaceHolder,
4663: ame_util.headerItemClassName,
4664: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4658: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4659: end if;
4660: if(instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0) then
4661: dbms_sql.bind_variable(dynamicCursor,
4662: ame_util2.itemClassPlaceHolder,
4663: ame_util.headerItemClassName,
4664: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4665: end if;
4666: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
4662: ame_util2.itemClassPlaceHolder,
4663: ame_util.headerItemClassName,
4664: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4665: end if;
4666: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
4667: dbms_sql.bind_variable(dynamicCursor,
4668: ame_util2.itemIdPlaceHolder,
4669: engTransactionId,
4670: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4664: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4665: end if;
4666: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
4667: dbms_sql.bind_variable(dynamicCursor,
4668: ame_util2.itemIdPlaceHolder,
4669: engTransactionId,
4670: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4671: end if;
4672: dbms_sql.define_array(dynamicCursor,
5426: engTransactionId,
5427: 50);
5428: end if;
5429: if(instrb(queryStrings(i),
5430: ame_util2.itemClassPlaceHolder) > 0) then
5431: dbms_sql.bind_variable(dynamicCursor,
5432: ame_util2.itemClassPlaceHolder,
5433: getItemClassName(itemClassIdIn => engAppRuleItemClassIds(engAppHandlerFirstIndex)),
5434: 50);
5428: end if;
5429: if(instrb(queryStrings(i),
5430: ame_util2.itemClassPlaceHolder) > 0) then
5431: dbms_sql.bind_variable(dynamicCursor,
5432: ame_util2.itemClassPlaceHolder,
5433: getItemClassName(itemClassIdIn => engAppRuleItemClassIds(engAppHandlerFirstIndex)),
5434: 50);
5435: engGroupUseItemBind(groupIdIn) := ame_util.booleanTrue;
5436: end if;
5434: 50);
5435: engGroupUseItemBind(groupIdIn) := ame_util.booleanTrue;
5436: end if;
5437: if(instrb(queryStrings(i),
5438: ame_util2.itemIdPlaceHolder) > 0) then
5439: dbms_sql.bind_variable(dynamicCursor,
5440: ame_util2.itemIdPlaceHolder,
5441: engAppAppItemIds(engAppHandlerFirstIndex),
5442: 50);
5436: end if;
5437: if(instrb(queryStrings(i),
5438: ame_util2.itemIdPlaceHolder) > 0) then
5439: dbms_sql.bind_variable(dynamicCursor,
5440: ame_util2.itemIdPlaceHolder,
5441: engAppAppItemIds(engAppHandlerFirstIndex),
5442: 50);
5443: engGroupUseItemBind(groupIdIn) := ame_util.booleanTrue;
5444: end if;
5588: ,ame_util.suppressedStatus
5589: ,ame_util.noResponseStatus
5590: ,ame_util.forwardStatus
5591: ,ame_util.approveAndForwardStatus
5592: ,ame_util2.reassignStatus
5593: ,ame_util2.noResponseByRepeatedStatus
5594: ,ame_util2.forwardByRepeatedStatus) or
5595: (currentApproverCategory = ame_util.fyiApproverCategory and
5596: (currentApproverApprovalStatus in (ame_util.notifiedStatus,
5589: ,ame_util.noResponseStatus
5590: ,ame_util.forwardStatus
5591: ,ame_util.approveAndForwardStatus
5592: ,ame_util2.reassignStatus
5593: ,ame_util2.noResponseByRepeatedStatus
5594: ,ame_util2.forwardByRepeatedStatus) or
5595: (currentApproverCategory = ame_util.fyiApproverCategory and
5596: (currentApproverApprovalStatus in (ame_util.notifiedStatus,
5597: ame_util.notifiedByRepeatedStatus))) then
5590: ,ame_util.forwardStatus
5591: ,ame_util.approveAndForwardStatus
5592: ,ame_util2.reassignStatus
5593: ,ame_util2.noResponseByRepeatedStatus
5594: ,ame_util2.forwardByRepeatedStatus) or
5595: (currentApproverCategory = ame_util.fyiApproverCategory and
5596: (currentApproverApprovalStatus in (ame_util.notifiedStatus,
5597: ame_util.notifiedByRepeatedStatus))) then
5598: approvalStatusOut := ame_util.completedStatus;
7502: approvalProcessCompleteYNOut := ame_engine.getApprovalProcessCompleteYN;
7503: ameApplicationId := ame_engine.getAmeApplicationId;
7504: /* If approvalProcessCompleteYNOut is 'Y', there should be no nextApprovers. Hence
7505: return with an empty nextApproversOut table */
7506: if approvalProcessCompleteYNOut = ame_util2.completeFullyApproved or
7507: approvalProcessCompleteYNOut = ame_util2.completeFullyRejected or
7508: approvalProcessCompleteYNOut = ame_util2.completePartiallyApproved or
7509: approvalProcessCompleteYNOut = ame_util2.completeNoApprovers then
7510: ame_engine.unlockTransaction(fndApplicationIdIn => applicationIdIn,
7503: ameApplicationId := ame_engine.getAmeApplicationId;
7504: /* If approvalProcessCompleteYNOut is 'Y', there should be no nextApprovers. Hence
7505: return with an empty nextApproversOut table */
7506: if approvalProcessCompleteYNOut = ame_util2.completeFullyApproved or
7507: approvalProcessCompleteYNOut = ame_util2.completeFullyRejected or
7508: approvalProcessCompleteYNOut = ame_util2.completePartiallyApproved or
7509: approvalProcessCompleteYNOut = ame_util2.completeNoApprovers then
7510: ame_engine.unlockTransaction(fndApplicationIdIn => applicationIdIn,
7511: transactionIdIn => transactionIdIn,
7504: /* If approvalProcessCompleteYNOut is 'Y', there should be no nextApprovers. Hence
7505: return with an empty nextApproversOut table */
7506: if approvalProcessCompleteYNOut = ame_util2.completeFullyApproved or
7507: approvalProcessCompleteYNOut = ame_util2.completeFullyRejected or
7508: approvalProcessCompleteYNOut = ame_util2.completePartiallyApproved or
7509: approvalProcessCompleteYNOut = ame_util2.completeNoApprovers then
7510: ame_engine.unlockTransaction(fndApplicationIdIn => applicationIdIn,
7511: transactionIdIn => transactionIdIn,
7512: transactionTypeIdIn => transactionTypeIn);
7505: return with an empty nextApproversOut table */
7506: if approvalProcessCompleteYNOut = ame_util2.completeFullyApproved or
7507: approvalProcessCompleteYNOut = ame_util2.completeFullyRejected or
7508: approvalProcessCompleteYNOut = ame_util2.completePartiallyApproved or
7509: approvalProcessCompleteYNOut = ame_util2.completeNoApprovers then
7510: ame_engine.unlockTransaction(fndApplicationIdIn => applicationIdIn,
7511: transactionIdIn => transactionIdIn,
7512: transactionTypeIdIn => transactionTypeIn);
7513: return;
9418: calculation of the approval-process-complete values.
9419: */
9420: /* Initialize various values. */
9421: itemRejected := false;
9422: engStApprovalProcessCompleteYN := ame_util2.completeNoApprovers;
9423: for i in 1 .. engItemIds.count loop
9424: engStItemAppProcessCompleteYN(i) := ame_util2.completeNoApprovers;
9425: end loop;
9426: /* Handle the empty-approver-list case first. */
9420: /* Initialize various values. */
9421: itemRejected := false;
9422: engStApprovalProcessCompleteYN := ame_util2.completeNoApprovers;
9423: for i in 1 .. engItemIds.count loop
9424: engStItemAppProcessCompleteYN(i) := ame_util2.completeNoApprovers;
9425: end loop;
9426: /* Handle the empty-approver-list case first. */
9427: if(engStApprovers.count = 0) then
9428: return;
9440: tempItemClass := engStApprovers(1).item_class;
9441: for i in 1 .. itemIds.count loop
9442: if(itemIds(i) = tempItemId and itemClasses(i) = tempItemClass) then
9443: tempItemIndex := i;
9444: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.completeFullyApproved;
9445: if engStApprovalProcessCompleteYN = ame_util2.completeNoApprovers then
9446: engStApprovalProcessCompleteYN := ame_util2.completeFullyApproved;
9447: end if;
9448: exit;
9441: for i in 1 .. itemIds.count loop
9442: if(itemIds(i) = tempItemId and itemClasses(i) = tempItemClass) then
9443: tempItemIndex := i;
9444: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.completeFullyApproved;
9445: if engStApprovalProcessCompleteYN = ame_util2.completeNoApprovers then
9446: engStApprovalProcessCompleteYN := ame_util2.completeFullyApproved;
9447: end if;
9448: exit;
9449: end if;
9442: if(itemIds(i) = tempItemId and itemClasses(i) = tempItemClass) then
9443: tempItemIndex := i;
9444: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.completeFullyApproved;
9445: if engStApprovalProcessCompleteYN = ame_util2.completeNoApprovers then
9446: engStApprovalProcessCompleteYN := ame_util2.completeFullyApproved;
9447: end if;
9448: exit;
9449: end if;
9450: end loop;
9459: tempPseudoBoolean := ame_util.booleanTrue;
9460: for j in (tempItemIndex + 1) .. itemIds.count loop
9461: if(itemIds(j) = tempItemId and itemClasses(j) = tempItemClass) then
9462: tempItemIndex := j;
9463: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.completeFullyApproved;
9464: if engStApprovalProcessCompleteYN = ame_util2.completeNoApprovers then
9465: engStApprovalProcessCompleteYN := ame_util2.completeFullyApproved;
9466: end if;
9467: exit;
9460: for j in (tempItemIndex + 1) .. itemIds.count loop
9461: if(itemIds(j) = tempItemId and itemClasses(j) = tempItemClass) then
9462: tempItemIndex := j;
9463: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.completeFullyApproved;
9464: if engStApprovalProcessCompleteYN = ame_util2.completeNoApprovers then
9465: engStApprovalProcessCompleteYN := ame_util2.completeFullyApproved;
9466: end if;
9467: exit;
9468: end if;
9461: if(itemIds(j) = tempItemId and itemClasses(j) = tempItemClass) then
9462: tempItemIndex := j;
9463: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.completeFullyApproved;
9464: if engStApprovalProcessCompleteYN = ame_util2.completeNoApprovers then
9465: engStApprovalProcessCompleteYN := ame_util2.completeFullyApproved;
9466: end if;
9467: exit;
9468: end if;
9469: end loop;
9469: end loop;
9470: end if;
9471: /* Update the process-complete engSt variables as appropriate. */
9472: -- check for pending/yet to be notified approvers
9473: if(engStItemAppProcessCompleteYN(tempItemIndex) <> ame_util2.completeFullyRejected and
9474: ((engStApprovers(i).approver_category = ame_util.approvalApproverCategory and
9475: (engStApprovers(i).approval_status is null or
9476: engStApprovers(i).approval_status in (ame_util.nullStatus
9477: ,ame_util.notifiedStatus
9479: ,ame_util.notifiedByRepeatedStatus))) or
9480: (engStApprovers(i).approver_category = ame_util.fyiApproverCategory and
9481: (engStApprovers(i).approval_status is null or
9482: engStApprovers(i).approval_status = ame_util.nullStatus)))) then
9483: if engStItemAppProcessCompleteYN(tempItemIndex) in (ame_util2.completeNoApprovers
9484: ,ame_util2.completeFullyApproved) then
9485: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.notCompleted;
9486: if engStApprovalProcessCompleteYN in (ame_util2.completeNoApprovers
9487: ,ame_util2.completeFullyApproved) then
9480: (engStApprovers(i).approver_category = ame_util.fyiApproverCategory and
9481: (engStApprovers(i).approval_status is null or
9482: engStApprovers(i).approval_status = ame_util.nullStatus)))) then
9483: if engStItemAppProcessCompleteYN(tempItemIndex) in (ame_util2.completeNoApprovers
9484: ,ame_util2.completeFullyApproved) then
9485: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.notCompleted;
9486: if engStApprovalProcessCompleteYN in (ame_util2.completeNoApprovers
9487: ,ame_util2.completeFullyApproved) then
9488: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9481: (engStApprovers(i).approval_status is null or
9482: engStApprovers(i).approval_status = ame_util.nullStatus)))) then
9483: if engStItemAppProcessCompleteYN(tempItemIndex) in (ame_util2.completeNoApprovers
9484: ,ame_util2.completeFullyApproved) then
9485: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.notCompleted;
9486: if engStApprovalProcessCompleteYN in (ame_util2.completeNoApprovers
9487: ,ame_util2.completeFullyApproved) then
9488: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9489: end if;
9482: engStApprovers(i).approval_status = ame_util.nullStatus)))) then
9483: if engStItemAppProcessCompleteYN(tempItemIndex) in (ame_util2.completeNoApprovers
9484: ,ame_util2.completeFullyApproved) then
9485: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.notCompleted;
9486: if engStApprovalProcessCompleteYN in (ame_util2.completeNoApprovers
9487: ,ame_util2.completeFullyApproved) then
9488: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9489: end if;
9490: end if;
9483: if engStItemAppProcessCompleteYN(tempItemIndex) in (ame_util2.completeNoApprovers
9484: ,ame_util2.completeFullyApproved) then
9485: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.notCompleted;
9486: if engStApprovalProcessCompleteYN in (ame_util2.completeNoApprovers
9487: ,ame_util2.completeFullyApproved) then
9488: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9489: end if;
9490: end if;
9491: end if;
9484: ,ame_util2.completeFullyApproved) then
9485: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.notCompleted;
9486: if engStApprovalProcessCompleteYN in (ame_util2.completeNoApprovers
9487: ,ame_util2.completeFullyApproved) then
9488: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9489: end if;
9490: end if;
9491: end if;
9492: -- check for rejections
9495: itemRejected := true;
9496: if tempItemClass = ame_util.headerItemClassName then
9497: headerItemRejected := true;
9498: end if;
9499: engStItemAppProcessCompleteYN(tempItemIndex) := ame_util2.completeFullyRejected;
9500: end if;
9501: end loop;
9502:
9503: if itemRejected then
9510: -- When the stoppingRule is STOP_ALL_ITEMS or a header item got rejected then
9511: -- 1. The transaction as a whole is rejected.
9512: -- 2. Make all pending items approval status rejected.
9513: if stoppingRule = ame_util.stopAllItems or headerItemRejected then
9514: engStApprovalProcessCompleteYN := ame_util2.completeFullyRejected;
9515: --+
9516: for x in 1 .. itemIds.count loop
9517: if engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9518: engStItemAppProcessCompleteYN(x) := ame_util2.completeFullyRejected;
9513: if stoppingRule = ame_util.stopAllItems or headerItemRejected then
9514: engStApprovalProcessCompleteYN := ame_util2.completeFullyRejected;
9515: --+
9516: for x in 1 .. itemIds.count loop
9517: if engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9518: engStItemAppProcessCompleteYN(x) := ame_util2.completeFullyRejected;
9519: end if;
9520: end loop;
9521: --+
9514: engStApprovalProcessCompleteYN := ame_util2.completeFullyRejected;
9515: --+
9516: for x in 1 .. itemIds.count loop
9517: if engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9518: engStItemAppProcessCompleteYN(x) := ame_util2.completeFullyRejected;
9519: end if;
9520: end loop;
9521: --+
9522: end if;
9534: stoppingRule = ame_util.continueAllOtherItems then
9535: if stoppingRule = ame_util.continueOtherSubItems then
9536: for x in 1 .. itemIds.count loop
9537: if itemClasses(x) = ame_util.headerItemClassName and
9538: engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9539: engStItemAppProcessCompleteYN(x) := ame_util2.completeFullyRejected;
9540: exit;
9541: end if;
9542: end loop;
9535: if stoppingRule = ame_util.continueOtherSubItems then
9536: for x in 1 .. itemIds.count loop
9537: if itemClasses(x) = ame_util.headerItemClassName and
9538: engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9539: engStItemAppProcessCompleteYN(x) := ame_util2.completeFullyRejected;
9540: exit;
9541: end if;
9542: end loop;
9543: end if;
9540: exit;
9541: end if;
9542: end loop;
9543: end if;
9544: engStApprovalProcessCompleteYN := ame_util2.completePartiallyApproved;
9545: for x in 1 .. itemIds.count loop
9546: if engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9547: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9548: exit;
9542: end loop;
9543: end if;
9544: engStApprovalProcessCompleteYN := ame_util2.completePartiallyApproved;
9545: for x in 1 .. itemIds.count loop
9546: if engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9547: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9548: exit;
9549: end if;
9550: end loop;
9543: end if;
9544: engStApprovalProcessCompleteYN := ame_util2.completePartiallyApproved;
9545: for x in 1 .. itemIds.count loop
9546: if engStItemAppProcessCompleteYN(x) = ame_util2.notCompleted then
9547: engStApprovalProcessCompleteYN := ame_util2.notCompleted;
9548: exit;
9549: end if;
9550: end loop;
9551: tempCount := 0;
9548: exit;
9549: end if;
9550: end loop;
9551: tempCount := 0;
9552: if engStApprovalProcessCompleteYN = ame_util2.completePartiallyApproved then
9553: for x in 1 .. itemIds.count loop
9554: if engStItemAppProcessCompleteYN(x) <> ame_util2.completeFullyRejected and
9555: engStItemAppProcessCompleteYN(x) <> ame_util2.completeNoApprovers then
9556: exit;
9550: end loop;
9551: tempCount := 0;
9552: if engStApprovalProcessCompleteYN = ame_util2.completePartiallyApproved then
9553: for x in 1 .. itemIds.count loop
9554: if engStItemAppProcessCompleteYN(x) <> ame_util2.completeFullyRejected and
9555: engStItemAppProcessCompleteYN(x) <> ame_util2.completeNoApprovers then
9556: exit;
9557: end if;
9558: tempCount := tempCount + 1;
9551: tempCount := 0;
9552: if engStApprovalProcessCompleteYN = ame_util2.completePartiallyApproved then
9553: for x in 1 .. itemIds.count loop
9554: if engStItemAppProcessCompleteYN(x) <> ame_util2.completeFullyRejected and
9555: engStItemAppProcessCompleteYN(x) <> ame_util2.completeNoApprovers then
9556: exit;
9557: end if;
9558: tempCount := tempCount + 1;
9559: end loop;
9557: end if;
9558: tempCount := tempCount + 1;
9559: end loop;
9560: if tempCount = itemIds.count then
9561: engStApprovalProcessCompleteYN := ame_util2.completeFullyRejected;
9562: end if;
9563: end if;
9564: end if;
9565: end if;
10198: end processAdHocInsertions;
10199: --+
10200: --
10201: --+
10202: procedure getAllProductions(productionsOut out nocopy ame_util2.productionsTable) is
10203: begin
10204: for i in 1 .. engStProductionsTable.count loop
10205: productionsOut(i).variable_name := engStProductionsTable(i).variable_name;
10206: productionsOut(i).variable_value := engStProductionsTable(i).variable_value;
10209: end loop;
10210: end getAllProductions;
10211: procedure getProductions(itemClassIn in varchar2
10212: ,itemIdIn in varchar2
10213: ,productionsOut out nocopy ame_util2.productionsTable) is
10214: tempIndex integer;
10215: begin
10216: tempIndex := 1;
10217: for i in 1 .. engStProductionsTable.count loop
10689: if engStApprovers(engStRepeatedAppIndexes(j)).approval_status = ame_util.approvedStatus then
10690: engStApprovers(i).approval_status := ame_util.approvedByRepeatedStatus;
10691: elsif engStApprovers(engStRepeatedAppIndexes(j)).approval_status
10692: = ame_util.noResponseStatus then
10693: engStApprovers(i).approval_status := ame_util2.noResponseByRepeatedStatus;
10694: elsif engStApprovers(engStRepeatedAppIndexes(j)).approval_status
10695: = ame_util.notifiedStatus then
10696: engStApprovers(i).approval_status := ame_util.notifiedByRepeatedStatus;
10697: elsif engStApprovers(engStRepeatedAppIndexes(j)).approval_status
10695: = ame_util.notifiedStatus then
10696: engStApprovers(i).approval_status := ame_util.notifiedByRepeatedStatus;
10697: elsif engStApprovers(engStRepeatedAppIndexes(j)).approval_status
10698: = ame_util.forwardStatus then
10699: engStApprovers(i).approval_status := ame_util2.forwardByRepeatedStatus;
10700: end if;
10701: end if;
10702: end if;
10703: end loop;
12054: procedure updateApprovalStatus(applicationIdIn in number,
12055: transactionTypeIn in varchar2,
12056: transactionIdIn in varchar2,
12057: approverIn in ame_util.approverRecord2,
12058: notificationIn in ame_util2.notificationRecord
12059: default ame_util2.emptyNotificationRecord,
12060: forwardeeIn in ame_util.approverRecord2 default
12061: ame_util.emptyApproverRecord2,
12062: updateItemIn in boolean default false) as
12055: transactionTypeIn in varchar2,
12056: transactionIdIn in varchar2,
12057: approverIn in ame_util.approverRecord2,
12058: notificationIn in ame_util2.notificationRecord
12059: default ame_util2.emptyNotificationRecord,
12060: forwardeeIn in ame_util.approverRecord2 default
12061: ame_util.emptyApproverRecord2,
12062: updateItemIn in boolean default false) as
12063: ameApplicationId integer;
12148: if(approverIn.name = currentApprovers(i).name and
12149: (currentApprovers(i).approval_status = ame_util.approvedStatus or
12150: currentApprovers(i).approval_status = ame_util.approveAndForwardStatus or
12151: currentApprovers(i).approval_status = ame_util.forwardStatus or
12152: currentApprovers(i).approval_status = ame_util2.reassignStatus or
12153: currentApprovers(i).approval_status = ame_util.rejectStatus or
12154: currentApprovers(i).approval_status = ame_util.notifiedStatus or
12155: currentApprovers(i).approval_status = ame_util.exceptionStatus or
12156: currentApprovers(i).approval_status = ame_util.noResponseStatus ) and
12222: ame_util.rejectStatus,
12223: ame_util.noResponseStatus,
12224: ame_util.nullStatus,
12225: ame_util.notifiedStatus,
12226: ame_util2.reassignStatus) and
12227: approver.approval_status is not null) or
12228: (approver.approver_category = ame_util.fyiApproverCategory and
12229: approver.approval_status is not null and
12230: approver.approval_status <> ame_util.notifiedStatus)) then
12521: ,ame_util.approvedByRepeatedStatus
12522: ,ame_util.rejectStatus
12523: ,ame_util.rejectedByRepeatedStatus
12524: ,ame_util.forwardStatus
12525: ,ame_util2.forwardByRepeatedStatus
12526: ,ame_util2.reassignStatus
12527: ,ame_util.nullStatus
12528: ,ame_util.noResponseStatus
12529: ,ame_util2.noResponseByRepeatedStatus
12522: ,ame_util.rejectStatus
12523: ,ame_util.rejectedByRepeatedStatus
12524: ,ame_util.forwardStatus
12525: ,ame_util2.forwardByRepeatedStatus
12526: ,ame_util2.reassignStatus
12527: ,ame_util.nullStatus
12528: ,ame_util.noResponseStatus
12529: ,ame_util2.noResponseByRepeatedStatus
12530: ,ame_util.repeatedStatus)
12525: ,ame_util2.forwardByRepeatedStatus
12526: ,ame_util2.reassignStatus
12527: ,ame_util.nullStatus
12528: ,ame_util.noResponseStatus
12529: ,ame_util2.noResponseByRepeatedStatus
12530: ,ame_util.repeatedStatus)
12531: where application_id = ameApplicationId
12532: and transaction_id = transactionIdIn
12533: and name = approver.name
12545: ,ame_util.approvedByRepeatedStatus
12546: ,ame_util.rejectStatus
12547: ,ame_util.rejectedByRepeatedStatus
12548: ,ame_util.forwardStatus
12549: ,ame_util2.forwardByRepeatedStatus
12550: ,ame_util2.reassignStatus
12551: ,ame_util.nullStatus
12552: ,ame_util.noResponseStatus
12553: ,ame_util2.noResponseByRepeatedStatus
12546: ,ame_util.rejectStatus
12547: ,ame_util.rejectedByRepeatedStatus
12548: ,ame_util.forwardStatus
12549: ,ame_util2.forwardByRepeatedStatus
12550: ,ame_util2.reassignStatus
12551: ,ame_util.nullStatus
12552: ,ame_util.noResponseStatus
12553: ,ame_util2.noResponseByRepeatedStatus
12554: ,ame_util.repeatedStatus) into tempStatus from dual;
12549: ,ame_util2.forwardByRepeatedStatus
12550: ,ame_util2.reassignStatus
12551: ,ame_util.nullStatus
12552: ,ame_util.noResponseStatus
12553: ,ame_util2.noResponseByRepeatedStatus
12554: ,ame_util.repeatedStatus) into tempStatus from dual;
12555: setInsertedApprovalStatus(currentApproverIndexIn => repeatedAppIndexes(z)
12556: ,approvalStatusIn => tempStatus);
12557: end if;
12667: end if;
12668: --+
12669: --+ process reassignStatus
12670: --+
12671: if(approver.approval_status = ame_util2.reassignStatus) then
12672: ame_util.copyApproverRecord2(approverRecord2In => forwardeeIn,
12673: approverRecord2Out => forwardee);
12674: -- fetch forwardee details
12675: if(forwardee.orig_system is null or