589:
590: /* Update the department and date required of requirements to
591: those of their new operation */
592:
593: UPDATE WIP_REQUIREMENT_OPERATIONS WRO
594: SET OPERATION_SEQ_NUM = SIGN(OPERATION_SEQ_NUM) * firstop,
595: DEPARTMENT_ID = firstdep,
596: DATE_REQUIRED = firstdate
597: WHERE ORGANIZATION_ID = X_Organization_Id
598: AND WIP_ENTITY_ID = X_Wip_Entity_Id
599: AND OPERATION_SEQ_NUM = SIGN(OPERATION_SEQ_NUM) * X_Operation_Seq_Num
600: AND NOT EXISTS
601: (SELECT 'checking for duplicate requirements'
602: FROM WIP_REQUIREMENT_OPERATIONS
603: WHERE ORGANIZATION_ID = X_Organization_Id
604: AND WIP_ENTITY_ID = X_Wip_Entity_Id
605: AND OPERATION_SEQ_NUM = SIGN(WRO.OPERATION_SEQ_NUM) * firstop
606: AND INVENTORY_ITEM_ID = WRO.INVENTORY_ITEM_ID);
612: there are no other ops.
613: */
614:
615: IF X_Operation_Seq_Num NOT IN (-1, 1) OR firstdep IS NOT NULL THEN
616: UPDATE WIP_REQUIREMENT_OPERATIONS WRO
617: SET (WIP_SUPPLY_TYPE, REQUIRED_QUANTITY,
618: QUANTITY_ISSUED, QUANTITY_PER_ASSEMBLY) =
619: (SELECT LEAST(WRO.WIP_SUPPLY_TYPE, WIP_SUPPLY_TYPE),
620: WRO.REQUIRED_QUANTITY + REQUIRED_QUANTITY,
619: (SELECT LEAST(WRO.WIP_SUPPLY_TYPE, WIP_SUPPLY_TYPE),
620: WRO.REQUIRED_QUANTITY + REQUIRED_QUANTITY,
621: WRO.QUANTITY_ISSUED + QUANTITY_ISSUED,
622: WRO.QUANTITY_PER_ASSEMBLY + QUANTITY_PER_ASSEMBLY
623: FROM WIP_REQUIREMENT_OPERATIONS
624: WHERE ORGANIZATION_ID = X_Organization_Id
625: AND WIP_ENTITY_ID = X_Wip_Entity_Id
626: AND OPERATION_SEQ_NUM = SIGN(WRO.OPERATION_SEQ_NUM) *
627: X_Operation_Seq_Num
630: AND WIP_ENTITY_ID = X_Wip_Entity_Id
631: AND OPERATION_SEQ_NUM = SIGN(OPERATION_SEQ_NUM) * firstop
632: AND EXISTS
633: (SELECT 'checking for duplicate requirements'
634: FROM WIP_REQUIREMENT_OPERATIONS
635: WHERE ORGANIZATION_ID = X_Organization_Id
636: AND WIP_ENTITY_ID = X_Wip_Entity_Id
637: AND OPERATION_SEQ_NUM = SIGN(WRO.OPERATION_SEQ_NUM) * X_Operation_Seq_Num
638: AND INVENTORY_ITEM_ID = WRO.INVENTORY_ITEM_ID);
636: AND WIP_ENTITY_ID = X_Wip_Entity_Id
637: AND OPERATION_SEQ_NUM = SIGN(WRO.OPERATION_SEQ_NUM) * X_Operation_Seq_Num
638: AND INVENTORY_ITEM_ID = WRO.INVENTORY_ITEM_ID);
639:
640: DELETE FROM WIP_REQUIREMENT_OPERATIONS
641: WHERE ORGANIZATION_ID = X_Organization_Id
642: AND WIP_ENTITY_ID = X_Wip_Entity_Id
643: AND (OPERATION_SEQ_NUM = X_Operation_Seq_Num
644: OR OPERATION_SEQ_NUM = X_Operation_Seq_Num * -1);
648: Date Required might need to be reset */
649:
650: ELSE
651:
652: UPDATE WIP_REQUIREMENT_OPERATIONS WRO
653: SET OPERATION_SEQ_NUM = SIGN(OPERATION_SEQ_NUM) * firstop,
654: DEPARTMENT_ID = firstdep,
655: DATE_REQUIRED = firstdate
656: WHERE ORGANIZATION_ID = X_Organization_Id
665: ELSE
666:
667: /* Update the department and date required of requirements to
668: those of their new operation */
669: UPDATE WIP_REQUIREMENT_OPERATIONS WRO
670: SET OPERATION_SEQ_NUM = SIGN(OPERATION_SEQ_NUM) * firstop,
671: DEPARTMENT_ID = firstdep,
672: DATE_REQUIRED = firstdate
673: WHERE ORGANIZATION_ID = X_Organization_Id
675: AND REPETITIVE_SCHEDULE_ID = X_Repetitive_Schedule_Id
676: AND OPERATION_SEQ_NUM = SIGN(OPERATION_SEQ_NUM) * X_Operation_Seq_Num
677: AND NOT EXISTS
678: (SELECT 'checking for duplicate requirements'
679: FROM WIP_REQUIREMENT_OPERATIONS
680: WHERE ORGANIZATION_ID = X_Organization_Id
681: AND WIP_ENTITY_ID = X_Wip_Entity_Id
682: AND REPETITIVE_SCHEDULE_ID = X_Repetitive_Schedule_Id
683: AND OPERATION_SEQ_NUM = SIGN(WRO.OPERATION_SEQ_NUM) * firstop
690: there are no other ops.
691: */
692:
693: IF X_Operation_Seq_Num NOT IN (-1, 1) OR firstdep IS NOT NULL THEN
694: UPDATE WIP_REQUIREMENT_OPERATIONS WRO
695: SET (WIP_SUPPLY_TYPE, REQUIRED_QUANTITY,
696: QUANTITY_ISSUED, QUANTITY_PER_ASSEMBLY) =
697: (SELECT LEAST(WRO.WIP_SUPPLY_TYPE, WIP_SUPPLY_TYPE),
698: WRO.REQUIRED_QUANTITY + REQUIRED_QUANTITY,
697: (SELECT LEAST(WRO.WIP_SUPPLY_TYPE, WIP_SUPPLY_TYPE),
698: WRO.REQUIRED_QUANTITY + REQUIRED_QUANTITY,
699: WRO.QUANTITY_ISSUED + QUANTITY_ISSUED,
700: WRO.QUANTITY_PER_ASSEMBLY + QUANTITY_PER_ASSEMBLY
701: FROM WIP_REQUIREMENT_OPERATIONS
702: WHERE ORGANIZATION_ID = X_Organization_Id
703: AND WIP_ENTITY_ID = X_Wip_Entity_Id
704: AND REPETITIVE_SCHEDULE_ID = X_Repetitive_Schedule_Id
705: AND OPERATION_SEQ_NUM = SIGN(WRO.OPERATION_SEQ_NUM) *
710: AND REPETITIVE_SCHEDULE_ID = X_Repetitive_Schedule_Id
711: AND OPERATION_SEQ_NUM = SIGN(OPERATION_SEQ_NUM) * firstop
712: AND EXISTS
713: (SELECT 'checking for duplicate requirements'
714: FROM WIP_REQUIREMENT_OPERATIONS
715: WHERE ORGANIZATION_ID = X_Organization_Id
716: AND WIP_ENTITY_ID = X_Wip_Entity_Id
717: AND REPETITIVE_SCHEDULE_ID = X_Repetitive_Schedule_Id
718: AND OPERATION_SEQ_NUM = SIGN(WRO.OPERATION_SEQ_NUM) * X_Operation_Seq_Num
717: AND REPETITIVE_SCHEDULE_ID = X_Repetitive_Schedule_Id
718: AND OPERATION_SEQ_NUM = SIGN(WRO.OPERATION_SEQ_NUM) * X_Operation_Seq_Num
719: AND INVENTORY_ITEM_ID = WRO.INVENTORY_ITEM_ID);
720:
721: DELETE FROM WIP_REQUIREMENT_OPERATIONS
722: WHERE ORGANIZATION_ID = X_Organization_Id
723: AND WIP_ENTITY_ID = X_Wip_Entity_Id
724: AND (OPERATION_SEQ_NUM = X_Operation_Seq_Num
725: OR OPERATION_SEQ_NUM = X_Operation_Seq_Num * -1)
730: Date Required might need to be reset */
731:
732: ELSE
733:
734: UPDATE WIP_REQUIREMENT_OPERATIONS WRO
735: SET OPERATION_SEQ_NUM = SIGN(OPERATION_SEQ_NUM) * firstop,
736: DEPARTMENT_ID = firstdep,
737: DATE_REQUIRED = firstdate
738: WHERE ORGANIZATION_ID = X_Organization_Id
755: BEGIN
756: IF X_Repetitive_Schedule_Id IS NULL THEN
757: SELECT count(*)
758: INTO opseq
759: FROM WIP_REQUIREMENT_OPERATIONS
760: WHERE WIP_ENTITY_ID = X_Wip_Entity_Id
761: AND ORGANIZATION_ID = X_Organization_Id
762: AND OPERATION_SEQ_NUM = X_Operation_Seq_Num
763: AND WIP_SUPPLY_TYPE = 2;
763: AND WIP_SUPPLY_TYPE = 2;
764: ELSE
765: SELECT count(*)
766: INTO opseq
767: FROM WIP_REQUIREMENT_OPERATIONS
768: WHERE WIP_ENTITY_ID = X_Wip_Entity_Id
769: AND REPETITIVE_SCHEDULE_ID = X_Repetitive_Schedule_Id
770: AND ORGANIZATION_ID = X_Organization_Id
771: AND OPERATION_SEQ_NUM = X_Operation_Seq_Num
889: update wip_discrete_jobs
890: set serialization_start_op = decode(serialization_start_op, 1, X_Operation_Seq_Num, null)
891: where wip_entity_id = X_Wip_Entity_Id;
892:
893: UPDATE WIP_REQUIREMENT_OPERATIONS
894: SET OPERATION_SEQ_NUM = SIGN(OPERATION_SEQ_NUM) *
895: X_Operation_Seq_Num,
896: DEPARTMENT_ID = X_Department_Id,
897: DATE_REQUIRED = X_First_Unit_Start_Date
899: AND WIP_ENTITY_ID = X_Wip_Entity_Id
900: AND (OPERATION_SEQ_NUM = 1
901: OR OPERATION_SEQ_NUM = -1);
902: ELSE
903: UPDATE WIP_REQUIREMENT_OPERATIONS
904: SET OPERATION_SEQ_NUM = SIGN(OPERATION_SEQ_NUM) *
905: X_Operation_Seq_Num,
906: DEPARTMENT_ID = X_Department_Id,
907: DATE_REQUIRED = X_First_Unit_Start_Date
921: X_Start_Date DATE) IS
922: BEGIN
923: /* Added nvl(X_department_id) for bug 5979782 (base bug 5657251)*/
924: IF X_Repetitive_Schedule_Id IS NULL THEN
925: UPDATE WIP_REQUIREMENT_OPERATIONS
926: SET DEPARTMENT_ID = nvl(X_Department_Id,department_id),
927: --Start : Fix for bug #5177994/5094448 --
928: DATE_REQUIRED = trunc(NVL(X_Start_Date,DATE_REQUIRED)),
929: MPS_DATE_REQUIRED = trunc(NVL(X_Start_Date,MPS_DATE_REQUIRED))
934: AND WIP_ENTITY_ID = X_Wip_Entity_Id
935: AND (OPERATION_SEQ_NUM = X_Operation_Seq_Num
936: OR OPERATION_SEQ_NUM = -1 * X_Operation_Seq_Num);
937: ELSE
938: UPDATE WIP_REQUIREMENT_OPERATIONS
939: SET DEPARTMENT_ID = X_Department_Id,
940: --Start : Fix for bug #5177994/5094448 --
941: DATE_REQUIRED = trunc(NVL(X_Start_Date,DATE_REQUIRED)),
942: MPS_DATE_REQUIRED = trunc(NVL(X_Start_Date,MPS_DATE_REQUIRED))