Merged PR 11767: NCR hold removal prompt
This commit is contained in:
committed by
Stieber Daniel (CSC FI SPS MESLEO)
parent
87d79edef8
commit
779ed0ba29
@ -4,13 +4,14 @@ COMPILE FUNCTION Comm_WM_In(Instruction, Parm1,Parm2)
|
||||
Commuter module for WM_In (Work Order Material - Inbound) window
|
||||
|
||||
05/22/2005 - John C. Henry, J.C. Henry & Co., Inc.
|
||||
02/27/2025 - DJM - Added prompt to remove hold when creating NCR in 'RejMat'
|
||||
*/
|
||||
|
||||
DECLARE SUBROUTINE Set_Property, Set_Status, ErrMsg, Set_Property, obj_AppWindow, Send_Message
|
||||
DECLARE SUBROUTINE Btree.Extract, Send_Event, Security_Err_Msg, Forward_Event, End_Window, Start_Window
|
||||
DECLARE SUBROUTINE Btree.Extract, Send_Event, Security_Err_Msg, Forward_Event, End_Window, Start_Window, Sleepery
|
||||
DECLARE SUBROUTINE EditCell, obj_NCR, obj_Notes, obj_WO_Mat, obj_WO_Wfr, WM_IN_Services, Hold_Services, Error_Services
|
||||
DECLARE FUNCTION Get_Property, Get_Status, Popup, Send_Message, Msg, Security_Check, Dialog_Box, RowExists, Error_Services
|
||||
DECLARE FUNCTION Dialog_Box, obj_WO_Log, obj_NCR, MemberOf, WM_IN_Services, Hold_Services, Database_Services
|
||||
DECLARE FUNCTION Dialog_Box, obj_WO_Log, obj_NCR, MemberOf, WM_IN_Services, Hold_Services, Database_Services, Datetime
|
||||
|
||||
|
||||
$INSERT POPUP_EQUATES
|
||||
@ -558,127 +559,162 @@ RejMat:
|
||||
SelectedRows = SlotSelection<2>
|
||||
|
||||
CONVERT @VM TO @FM in SelectedRows
|
||||
|
||||
SelCnt = COUNT(SelectedRows,@FM) + (SelectedRows NE '')
|
||||
IF SelCnt = 0 THEN RETURN
|
||||
IF SelCnt = 0 THEN
|
||||
ErrMsg('You must select at least one row in order to create an NCR.')
|
||||
RETURN
|
||||
END
|
||||
|
||||
WONo = Get_Property(@WINDOW:'.WO_NO','DEFPROP')
|
||||
WOStep = Get_Property(@WINDOW:'.PROC_STEP_NO','DEFPROP')
|
||||
InCassNo = Get_Property(@WINDOW:'.IN_CASS_NO','DEFPROP')
|
||||
|
||||
WMIKey = WONo:'*':WOStep:'*':InCassNo
|
||||
WMIStatus = Xlate('WM_IN', WMIKey, 'CURR_STATUS', 'X')
|
||||
OnHold = (WMIStatus EQ 'HOLD')
|
||||
WOMatKey = Xlate('WM_IN', WMIKey, 'WO_MAT_KEY', 'X')
|
||||
Result = ''
|
||||
If OnHold EQ True$ then
|
||||
Result = Dialog_Box('NDW_HOLD_REMOVAL_PROMPT',@WINDOW,'WM_IN':@VM:WMIKey:@VM:WOMatKey)
|
||||
If Result NE True$ then
|
||||
Return
|
||||
end else
|
||||
Send_Event(@Window, 'READ')
|
||||
end
|
||||
end
|
||||
If (OnHold NE True$) OR (Result = True$) then
|
||||
SAPBatchNo = Xlate('WO_MAT', WOMatKey, WO_MAT_SAP_BATCH_NO$, 'X')
|
||||
OffHoldDTMs = Xlate('WO_MAT', WOMatKey, 'HOLD_STOP_DTM', 'X')
|
||||
|
||||
If OffHoldDTMs NE '' then
|
||||
// Ensure at least a minute has elapsed since the cassette was last taken off hold.
|
||||
LastDTM = OffHoldDTMs[-1, 'B':@VM]
|
||||
TimeElapsed = Datetime() - LastDTM
|
||||
// .000694 is the equivalent to 60 seconds in datetime format
|
||||
If (TimeElapsed LT '.000694') AND (SAPBatchNo NE '') then
|
||||
Def = ""
|
||||
Def<MTEXT$> = "Please wait for SAP to process off hold transaction..."
|
||||
Def<MTYPE$> = "U"
|
||||
MsgUp = Msg(@window, Def) ;* display the processing message
|
||||
WaitTime = '.000694' - TimeElapsed
|
||||
WaitSeconds = WaitTime * 86400 ;* 86400 = 60 seconds * 60 minutes * 24 hours
|
||||
WaitMilliSec = WaitSeconds * 1000
|
||||
Sleepery(WaitMilliSec)
|
||||
Msg(@window, MsgUp) ;* take down the processing message
|
||||
end
|
||||
end
|
||||
|
||||
InCassNos = ''
|
||||
InSlotNos = ''
|
||||
RDSNos = ''
|
||||
PocketNos = ''
|
||||
Zones = ''
|
||||
OutSlotNos = ''
|
||||
OutCassNos = ''
|
||||
SlotNCRs = ''
|
||||
InCassNos = ''
|
||||
InSlotNos = ''
|
||||
RDSNos = ''
|
||||
PocketNos = ''
|
||||
Zones = ''
|
||||
OutSlotNos = ''
|
||||
OutCassNos = ''
|
||||
SlotNCRs = ''
|
||||
|
||||
FOR I = 1 TO SelCnt
|
||||
RDSNo = WMInList<SelectedRows<I>,COL$RDS>
|
||||
IF RDSNo NE '' THEN
|
||||
ErrMsg('Slot ':SelectedRows<I>:' has already been loaded into the reactor.')
|
||||
RETURN
|
||||
END ELSE
|
||||
InSlotNos<1,I> = WMInList<SelectedRows<I>,COL$SLOT>
|
||||
InCassNos<1,I> = InCassNo
|
||||
SlotNCRs<1,I> = WMInList<SelectedRows<I>,COL$SLOT_NCR_NO>
|
||||
END
|
||||
NEXT I
|
||||
FOR I = 1 TO SelCnt
|
||||
RDSNo = WMInList<SelectedRows<I>,COL$RDS>
|
||||
IF RDSNo NE '' THEN
|
||||
ErrMsg('Slot ':SelectedRows<I>:' has already been loaded into the reactor.')
|
||||
RETURN
|
||||
END ELSE
|
||||
InSlotNos<1,I> = WMInList<SelectedRows<I>,COL$SLOT>
|
||||
InCassNos<1,I> = InCassNo
|
||||
SlotNCRs<1,I> = WMInList<SelectedRows<I>,COL$SLOT_NCR_NO>
|
||||
END
|
||||
NEXT I
|
||||
|
||||
IF InCassNos = '' THEN RETURN
|
||||
IF InCassNos = '' THEN RETURN
|
||||
|
||||
ncrParms = WONo:@RM
|
||||
ncrParms := WOStep:@RM
|
||||
ncrParms := InCassNo:@RM ;* WO_MAT_CASS_NO ;* changed from null on WM_IN jch 12/1/11
|
||||
ncrParms := '':@RM ;* Single RDS field
|
||||
ncrParms := '':@RM ;* Reactor No
|
||||
ncrParms := 'PRE':@RM
|
||||
ncrParms := InCassNos:@RM
|
||||
ncrParms := InSlotNos:@RM
|
||||
ncrParms := PocketNos:@RM ;* Pocket Nos
|
||||
ncrParms := Zones:@RM ;* Zones
|
||||
ncrParms := OutCassNos:@RM ;* OutCassNos
|
||||
ncrParms := OutSlotNos:@RM ;* OutSlotNos
|
||||
ncrParms := RDSNos:@RM ;* RDSNos
|
||||
ncrParms := '':@RM ;* Placeholder for RejWaferIDs
|
||||
ncrParms := SlotNCRs
|
||||
ncrParms = WONo:@RM
|
||||
ncrParms := WOStep:@RM
|
||||
ncrParms := InCassNo:@RM ;* WO_MAT_CASS_NO ;* changed from null on WM_IN jch 12/1/11
|
||||
ncrParms := '':@RM ;* Single RDS field
|
||||
ncrParms := '':@RM ;* Reactor No
|
||||
ncrParms := 'PRE':@RM
|
||||
ncrParms := InCassNos:@RM
|
||||
ncrParms := InSlotNos:@RM
|
||||
ncrParms := PocketNos:@RM ;* Pocket Nos
|
||||
ncrParms := Zones:@RM ;* Zones
|
||||
ncrParms := OutCassNos:@RM ;* OutCassNos
|
||||
ncrParms := OutSlotNos:@RM ;* OutSlotNos
|
||||
ncrParms := RDSNos:@RM ;* RDSNos
|
||||
ncrParms := '':@RM ;* Placeholder for RejWaferIDs
|
||||
ncrParms := SlotNCRs
|
||||
|
||||
BarcodeVerified = Dialog_Box('NDW_VERIFY_BARCODE', @Window, WMIKey, @User4)
|
||||
If BarcodeVerified EQ TRUE$ then
|
||||
Set_Status(0)
|
||||
NCRNo = obj_NCR('Create',ncrParms) ;* Create new NCR for this wafer/group of wafers
|
||||
errCode = ''
|
||||
IF Get_Status(errCode) THEN
|
||||
ErrMsg(errCode)
|
||||
BarcodeVerified = Dialog_Box('NDW_VERIFY_BARCODE', @Window, WMIKey, @User4)
|
||||
If BarcodeVerified EQ TRUE$ then
|
||||
Set_Status(0)
|
||||
NCRNo = obj_NCR('Create',ncrParms) ;* Create new NCR for this wafer/group of wafers
|
||||
errCode = ''
|
||||
IF Get_Status(errCode) THEN
|
||||
ErrMsg(errCode)
|
||||
|
||||
END ELSE
|
||||
RejDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS')
|
||||
|
||||
RejWfrIDs = ''
|
||||
NewSlotIDs = ''
|
||||
CurrSlotIDs = ''
|
||||
RunLocs = ''
|
||||
|
||||
FOR N = 1 TO COUNT(InSlotNos,@VM) + (InSlotNos NE '')
|
||||
|
||||
* * * * Added 3/23/2016 JCH - wafer history * * * *
|
||||
END ELSE
|
||||
RejDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS')
|
||||
|
||||
RejWfrID = WONo:'*':InCassNos<1,N>:'*':InSlotNos<1,N>
|
||||
RejWfrIDs = ''
|
||||
NewSlotIDs = ''
|
||||
CurrSlotIDs = ''
|
||||
RunLocs = ''
|
||||
|
||||
RejWfrIDs<1,-1> = RejWfrID
|
||||
CurrSlotIDs<1,-1> = RejWfrID ;*Inbound box WfrID = SlotID
|
||||
FOR N = 1 TO COUNT(InSlotNos,@VM) + (InSlotNos NE '')
|
||||
|
||||
Parms = RejWfrID:@RM ;* WfrID
|
||||
Parms := RejDTM:@RM ;* EventDtm
|
||||
Parms := @USER4:@RM ;* EventBy
|
||||
Parms := 'NCR':@RM ;* Event
|
||||
Parms := '':@RM ;* NewSlotID
|
||||
Parms := '':@RM ;* RunLoc
|
||||
Parms := NCRNo:@RM ;* NCRNo
|
||||
Parms := '':@RM ;* TWUse
|
||||
Parms := RejWfrID:@RM ;* CurrSlotID Inbound box WfrID = SlotID
|
||||
Parms := '':@RM ;* NewToolID
|
||||
Parms := '':@RM ;* CurrToolID
|
||||
Parms := '':@RM ;* NewInvLoc
|
||||
Parms := '':@RM ;* CurrInvLoc
|
||||
Parms := 'I' ;* WfrSide
|
||||
* * * * Added 3/23/2016 JCH - wafer history * * * *
|
||||
|
||||
RejWfrID = WONo:'*':InCassNos<1,N>:'*':InSlotNos<1,N>
|
||||
|
||||
RejWfrIDs<1,-1> = RejWfrID
|
||||
CurrSlotIDs<1,-1> = RejWfrID ;*Inbound box WfrID = SlotID
|
||||
|
||||
Parms = RejWfrID:@RM ;* WfrID
|
||||
Parms := RejDTM:@RM ;* EventDtm
|
||||
Parms := @USER4:@RM ;* EventBy
|
||||
Parms := 'NCR':@RM ;* Event
|
||||
Parms := '':@RM ;* NewSlotID
|
||||
Parms := '':@RM ;* RunLoc
|
||||
Parms := NCRNo:@RM ;* NCRNo
|
||||
Parms := '':@RM ;* TWUse
|
||||
Parms := RejWfrID:@RM ;* CurrSlotID Inbound box WfrID = SlotID
|
||||
Parms := '':@RM ;* NewToolID
|
||||
Parms := '':@RM ;* CurrToolID
|
||||
Parms := '':@RM ;* NewInvLoc
|
||||
Parms := '':@RM ;* CurrInvLoc
|
||||
Parms := 'I' ;* WfrSide
|
||||
|
||||
obj_WO_Wfr('AddEvent',Parms)
|
||||
|
||||
* * * * *
|
||||
obj_WO_Wfr('AddEvent',Parms)
|
||||
|
||||
LineNo = InSlotNos<1,N>
|
||||
* * * * *
|
||||
|
||||
LineNo = InSlotNos<1,N>
|
||||
|
||||
Set_Property(@WINDOW:'.SLOT_NO','CELLPOS','',COL$RDS:@FM:LineNo)
|
||||
Set_Property(@WINDOW:'.SLOT_NO','CELLPOS','',COL$RDS_STATUS:@FM:LineNo)
|
||||
Set_Property(@WINDOW:'.SLOT_NO','CELLPOS','',COL$POCKET:@FM:LineNo)
|
||||
Set_Property(@WINDOW:'.SLOT_NO','CELLPOS','',COL$ZONE:@FM:LineNo)
|
||||
Set_Property(@WINDOW:'.SLOT_NO','CELLPOS','',COL$CHAR:@FM:LineNo)
|
||||
Set_Property(@WINDOW:'.SLOT_NO','CELLPOS',NCRNo,COL$SLOT_NCR_NO:@FM:LineNo)
|
||||
NEXT N
|
||||
|
||||
Set_Property(@WINDOW:'.SLOT_NO','CELLPOS','',COL$RDS:@FM:LineNo)
|
||||
Set_Property(@WINDOW:'.SLOT_NO','CELLPOS','',COL$RDS_STATUS:@FM:LineNo)
|
||||
Set_Property(@WINDOW:'.SLOT_NO','CELLPOS','',COL$POCKET:@FM:LineNo)
|
||||
Set_Property(@WINDOW:'.SLOT_NO','CELLPOS','',COL$ZONE:@FM:LineNo)
|
||||
Set_Property(@WINDOW:'.SLOT_NO','CELLPOS','',COL$CHAR:@FM:LineNo)
|
||||
Set_Property(@WINDOW:'.SLOT_NO','CELLPOS',NCRNo,COL$SLOT_NCR_NO:@FM:LineNo)
|
||||
NEXT N
|
||||
|
||||
END
|
||||
|
||||
Set_Property(@WINDOW:'.SLOT','SELPOS',SlotSelection) ;* Toggle WM_IN select off
|
||||
END
|
||||
|
||||
Set_Property(@WINDOW:'.SLOT','SELPOS',SlotSelection) ;* Toggle WM_IN select off
|
||||
|
||||
Send_Event(@WINDOW,'WRITE')
|
||||
Send_Event(@WINDOW,'WRITE')
|
||||
|
||||
DetWindow = 'NCR'
|
||||
DetKeys = NCRNo
|
||||
DefaultRec = ''
|
||||
RetKey = WMIKey
|
||||
RetWin = @WINDOW
|
||||
RetPage = 1
|
||||
RetCtrl = @WINDOW:'.SLOT'
|
||||
RetPos = 1:@FM:1
|
||||
|
||||
obj_Appwindow('ViewNewDetail',DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos)
|
||||
End
|
||||
DetWindow = 'NCR'
|
||||
DetKeys = NCRNo
|
||||
DefaultRec = ''
|
||||
RetKey = WMIKey
|
||||
RetWin = @WINDOW
|
||||
RetPage = 1
|
||||
RetCtrl = @WINDOW:'.SLOT'
|
||||
RetPos = 1:@FM:1
|
||||
|
||||
obj_Appwindow('ViewNewDetail',DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos)
|
||||
End
|
||||
end
|
||||
RETURN
|
||||
|
||||
|
||||
@ -813,3 +849,4 @@ RETURN
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user