pre cutover push
This commit is contained in:
@ -393,33 +393,11 @@ Refresh:
|
||||
NEXT COL
|
||||
NEXT Line
|
||||
|
||||
*******************Check for SAP Batch No OR SAP TX DTM from WO_MAT Record**********************
|
||||
SAPBatchNo = Xlate('WO_MAT', WOMatKey, WO_MAT_SAP_BATCH_NO$, 'X')
|
||||
SAPTXDtm = XLATE('WO_MAT', WOMatKey, WO_MAT_SAP_TX_DTM$, 'X')
|
||||
IF SAPBatchNo NE '' OR SAPTXDtm NE '' then
|
||||
Set_Property(@Window: '.MAKEUP_CHECKBOX', 'ENABLED', 0)
|
||||
end
|
||||
// Check if WO_MAT record is locked. If so, disable form buttons.
|
||||
* RecordLocked = False$
|
||||
* If WOMatKey NE '' then RecordLocked = Database_Services('IsKeyIDLocked', 'WO_MAT', WOMatKey, False$)
|
||||
* If RecordLocked then
|
||||
* LockOwner = Xlate('WO_MAT', WOMatKey, 'LOCKED_BY', 'X')
|
||||
* If LockOwner NE '' then
|
||||
* DisplayName = Oconv(LockOwner,'[XLATE_CONV,LSL_USERS*FIRST_LAST]')
|
||||
* end else
|
||||
* DisplayName = 'an unknown user'
|
||||
* end
|
||||
* MsgParms = ''
|
||||
* MsgParms<1> = 'Record Locked'
|
||||
* MsgParms<2> = 'The WO_MAT record for this RDS is locked by ':DisplayName:'. Only one user session at a time can edit an RDS.'
|
||||
* Msg(@Window, '', 'OK', '', MsgParms)
|
||||
* Set_Property(@Window:'.REJECT_MATERIAL', 'ENABLED', -1)
|
||||
* Set_Property(@Window:'.ADD_MAKEUP_BUTTON', 'ENABLED', -1)
|
||||
* Set_Property(@Window:'.REM_MAKEUP_BUTTON', 'ENABLED', -1)
|
||||
* Set_Property(@Window:'.MAKEUP_CHECKBOX', 'ENABLED', -1)
|
||||
* Set_Property(@Window:'.NCR_KEYS', 'ENABLED', -1)
|
||||
* end
|
||||
|
||||
|
||||
RETURN
|
||||
|
||||
@ -825,13 +803,43 @@ AddMakeup:
|
||||
Return
|
||||
Case Otherwise$
|
||||
// User has selected a makeup box to use and backfill.
|
||||
AvailMU_WOMatKeys = Response
|
||||
MakeupBox = Response
|
||||
AvailMU_WOMatKeys = Response
|
||||
MakeupBox = Response
|
||||
MuWfrsNeeded = SelCnt
|
||||
If AvailMU_WOMatKeys NE '' then
|
||||
// Wafer counter check - Account for the possibility of selecting more than one makeup box.
|
||||
For each MuWoMatKey in AvailMU_WOMatKeys using @FM
|
||||
MuRdsNo = Xlate('WO_MAT', MuWoMatKey, 'RDS_NO', 'X')
|
||||
QtyAdj = MuWfrsNeeded
|
||||
CurrMuWfrCnt = obj_WO_Mat('CurrWaferCnt', MuWoMatKey)
|
||||
If MuWfrsNeeded GT CurrMuWfrCnt then
|
||||
QtyAdj = CurrMuWfrCnt
|
||||
MuWfrsNeeded -= CurrMuWfrCnt
|
||||
end
|
||||
Parms = ''
|
||||
Parms<1> = MuRdsNo ; // Cassette to verify wafer count of.
|
||||
Parms<2> = QtyAdj ; // Wafer count adjustment - Number of makeup wafers being used.
|
||||
Parms<3> = 'MU' ; // Wafer counter tool location
|
||||
Proceed = Dialog_Box('NDW_WAFER_COUNTER', @Window, Parms)
|
||||
If Proceed NE True$ then return
|
||||
Next MuWoMatKey
|
||||
end
|
||||
End Case
|
||||
If Response EQ True$ then
|
||||
// User requested to convert the current cassette into a makeup box.
|
||||
// Verify the quantity before proceeding.
|
||||
RDSNo = Get_Property(@Window:'.RDS_NO', 'TEXT')
|
||||
If RDSNo NE '' then
|
||||
Parms = ''
|
||||
Parms<1> = RDSNo ; // Cassette to verify wafer count of.
|
||||
Parms<2> = 0 ; // Wafer count adjustment - 0 because converting box.
|
||||
Parms<3> = 'MU' ; // Wafer counter tool location
|
||||
Proceed = Dialog_Box('NDW_WAFER_COUNTER', @Window, Parms)
|
||||
If Proceed NE True$ then return
|
||||
end else
|
||||
ErrMsg('Error starting wafer counter check. RDS No is missing.')
|
||||
end
|
||||
end
|
||||
|
||||
end else
|
||||
AvailMU_WOMatKeys = obj_MUWafers('AvailWafers',WONo:@RM:@RM:1:@RM:1)
|
||||
end
|
||||
@ -855,15 +863,15 @@ AddMakeup:
|
||||
CheckValue = 1
|
||||
|
||||
obj_WO_Mat('ChangeFlag',WOMatKey:@RM:FieldNo:@RM:CheckValue)
|
||||
WOMatRow = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey)
|
||||
WOMatRow<12> = '' ; // Clear the RDS No so the index will be forced to recalculate.
|
||||
WOMatRow<23> = False$ ; // Clear the MakeUp box flag so the index will be forced to recalculate.
|
||||
Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRow, True$, False$, True$)
|
||||
WOMatRow<12> = RDSNo ; // Restore the RDS No so the index on RDS_FINAL_SIG will be forced to recalculate with the most recent value.
|
||||
WOMatRow<23> = True$ ; // Restore the MakeUp box flag so the index will be forced to recalculate.
|
||||
WOMatRec = WOMatRow
|
||||
GoSub LogRecord
|
||||
Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRow, True$, False$, True$)
|
||||
* WOMatRow = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey)
|
||||
* WOMatRow<12> = '' ; // Clear the RDS No so the index will be forced to recalculate.
|
||||
* WOMatRow<23> = False$ ; // Clear the MakeUp box flag so the index will be forced to recalculate.
|
||||
* Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRow, True$, False$, True$)
|
||||
* WOMatRow<12> = RDSNo ; // Restore the RDS No so the index on RDS_FINAL_SIG will be forced to recalculate with the most recent value.
|
||||
* WOMatRow<23> = True$ ; // Restore the MakeUp box flag so the index will be forced to recalculate.
|
||||
* WOMatRec = WOMatRow
|
||||
//GoSub LogRecord
|
||||
//Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRow, True$, False$, True$)
|
||||
SlotWaferIDs = Xlate('WO_MAT', WOMatKey, 'SLOT_WAFER_ID', 'X')
|
||||
Convert @VM to '' in SlotWaferIDs
|
||||
|
||||
@ -918,15 +926,19 @@ AddMakeup:
|
||||
MakeupBox = ''
|
||||
END
|
||||
END
|
||||
IF MakeupBox = '' THEN RETURN
|
||||
IF MakeupBox = '' THEN
|
||||
Post_Event(@Window, 'READ')
|
||||
RETURN
|
||||
end
|
||||
|
||||
Valid = Dialog_Box( 'QUOTE_SIG_PWD_ENTRY', @WINDOW, @USER4:@VM:XLATE( 'LSL_USERS', @USER4, LSL_USERS_PASSWORD$, 'X' ) )
|
||||
Valid = Dialog_Box('NDW_VERIFY_USER', @Window, @User4)
|
||||
|
||||
IF NOT(Valid) THEN RETURN ;* User is not worthy or can't type
|
||||
|
||||
Send_Event(@WINDOW,'WRITE')
|
||||
|
||||
obj_WO_Mat('AddMakeupWafers',WOMatKey:@RM:EmptySlots:@RM:MakeupBox)
|
||||
|
||||
Send_Event(@WINDOW,'READ')
|
||||
|
||||
end else
|
||||
@ -1021,64 +1033,70 @@ RETURN
|
||||
MakeUpLot:
|
||||
**********
|
||||
|
||||
Ctrls = @WINDOW:'.WO_NO':@RM:@WINDOW:'.CASS_NO':@RM:@WINDOW:'.SLOT_NO'
|
||||
Props = 'DEFPROP':@RM:'DEFPROP':@RM:'LIST'
|
||||
|
||||
Vals = Get_Property(Ctrls,Props)
|
||||
|
||||
WONo = Vals[1,@RM]
|
||||
CassNo = Vals[COL2()+1,@RM]
|
||||
SlotList = Vals[COL2()+1,@RM]
|
||||
|
||||
CtrlEnt = Get_Property(@WINDOW,'FOCUS')
|
||||
FieldNo = Get_Property(CtrlEnt,'POS')
|
||||
|
||||
Ctrls = @WINDOW:'.WO_NO':@RM:@WINDOW:'.CASS_NO':@RM:@WINDOW:'.SLOT_NO'
|
||||
Props = 'DEFPROP':@RM:'DEFPROP':@RM:'LIST'
|
||||
Vals = Get_Property(Ctrls,Props)
|
||||
WONo = Vals[1,@RM]
|
||||
CassNo = Vals[COL2()+1,@RM]
|
||||
SlotList = Vals[COL2()+1,@RM]
|
||||
CtrlEnt = Get_Property(@WINDOW,'FOCUS')
|
||||
FieldNo = Get_Property(CtrlEnt,'POS')
|
||||
Send_Event(CtrlEnt,'GOTFOCUS')
|
||||
CheckValue = Get_Property(CtrlEnt,'DEFPROP')
|
||||
InvalidRequest = 0
|
||||
CheckValue = Get_Property(CtrlEnt,'DEFPROP')
|
||||
InvalidRequest = False$
|
||||
|
||||
IF ((WONo NE '') AND (CassNo NE '')) THEN
|
||||
WOMatKey = WONo:'*':CassNo
|
||||
OnHold = Xlate('WO_MAT', WOMatKey, 'HOLD', 'X')
|
||||
If OnHold NE True$ then
|
||||
IF (MemberOf(@USER4,'MASTER_SCHED')) |
|
||||
OR (MemberOf(@USER4,'SUPERVISOR')) |
|
||||
OR (MemberOf(@USER4,'ENGINEERING')) |
|
||||
OR (MemberOf(@USER4,'LEAD')) |
|
||||
OR (MemberOf(@USER4,'OI_ADMIN')) THEN
|
||||
|
||||
Set_Property(@WINDOW,'SAVEWARN','0')
|
||||
Send_Event(@WINDOW,'CLEAR')
|
||||
|
||||
obj_WO_Mat('ChangeFlag',WOMatKey:@RM:FieldNo:@RM:CheckValue)
|
||||
|
||||
IF Get_Status(errCode) THEN
|
||||
ErrMsg(errCode)
|
||||
END
|
||||
|
||||
END ELSE
|
||||
InvalidRequest = 1
|
||||
ErrMsg('INFO: This function is limited to authorized users only.')
|
||||
END
|
||||
end else
|
||||
InvalidRequest = 1
|
||||
ErrMsg('WARNING: Cannot modify lot while it is on hold.')
|
||||
end
|
||||
END ELSE
|
||||
InvalidRequest = 1
|
||||
ErrMsg('WARNING: Work Order/Cassette information is missing.')
|
||||
END
|
||||
|
||||
|
||||
IF (InvalidRequest = 1) then
|
||||
/* Toggle back the checkbox flag */
|
||||
IF (CheckValue = 0) THEN
|
||||
Set_Property(CtrlEnt, 'DEFPROP', 1)
|
||||
END ELSE
|
||||
Set_Property(CtrlEnt, 'DEFPROP', 0)
|
||||
END
|
||||
IF ((WONo NE '') AND (CassNo NE '')) THEN
|
||||
WOMatKey = WONo:'*':CassNo
|
||||
OnHold = Xlate('WO_MAT', WOMatKey, 'HOLD', 'X')
|
||||
If OnHold NE True$ then
|
||||
IF (MemberOf(@USER4,'MASTER_SCHED')) |
|
||||
OR (MemberOf(@USER4,'SUPERVISOR')) |
|
||||
OR (MemberOf(@USER4,'ENGINEERING')) |
|
||||
OR (MemberOf(@USER4,'LEAD')) |
|
||||
OR (MemberOf(@USER4,'OI_ADMIN')) THEN
|
||||
RDSNo = Get_Property(@Window:'.RDS_NO', 'TEXT')
|
||||
If RDSNo NE '' then
|
||||
Parms = ''
|
||||
Parms<1> = RDSNo ; // Cassette to verify wafer count of.
|
||||
Parms<2> = 0 ; // Wafer count adjustment - 0 because converting box.
|
||||
Parms<3> = 'MU' ; // Wafer counter tool location
|
||||
Proceed = Dialog_Box('NDW_WAFER_COUNTER', @Window, Parms)
|
||||
If Proceed EQ True$ then
|
||||
Set_Property(@WINDOW,'SAVEWARN', False$)
|
||||
Send_Event(@WINDOW,'CLEAR')
|
||||
obj_WO_Mat('ChangeFlag',WOMatKey:@RM:FieldNo:@RM:CheckValue)
|
||||
IF Get_Status(errCode) THEN
|
||||
ErrMsg(errCode)
|
||||
END
|
||||
end else
|
||||
InvalidRequest = True$
|
||||
end
|
||||
end else
|
||||
InvalidRequest = True$
|
||||
ErrMsg('WARNING: Error starting wafer counter check. RDS No is missing.')
|
||||
end
|
||||
END ELSE
|
||||
InvalidRequest = True$
|
||||
ErrMsg('INFO: This function is limited to authorized users only.')
|
||||
END
|
||||
end else
|
||||
InvalidRequest = True$
|
||||
ErrMsg('WARNING: Cannot modify lot while it is on hold.')
|
||||
end
|
||||
END ELSE
|
||||
InvalidRequest = True$
|
||||
ErrMsg('WARNING: Work Order/Cassette information is missing.')
|
||||
END
|
||||
|
||||
|
||||
IF (InvalidRequest EQ True$) then
|
||||
/* Toggle back the checkbox flag */
|
||||
If (CheckValue EQ False$) then
|
||||
Set_Property(CtrlEnt, 'DEFPROP', True$)
|
||||
end else
|
||||
Set_Property(CtrlEnt, 'DEFPROP', False$)
|
||||
end
|
||||
end
|
||||
|
||||
obj_AppWindow('LoadFormKeys',@WINDOW:@RM:WOMatKey)
|
||||
|
||||
RETURN
|
||||
|
Reference in New Issue
Block a user