pre cutover push

This commit is contained in:
Infineon\StieberD
2024-09-04 20:33:41 -07:00
parent 6ea6969f4b
commit 7762b129af
2072 changed files with 130000 additions and 95295 deletions

View File

@ -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