Set Reactor wafer size based on installed
susceptor. Commit to change branches post-UAT 1. Commit to change branches. Commit to change branches. Final changes and re-factor duplicate code.
This commit is contained in:
committed by
Stieber Daniel (CSC FI SPS MESLEO)
parent
2eff7c5a37
commit
8a5c1572e7
16729
LSL2/OIWIN/REACTOR.json
16729
LSL2/OIWIN/REACTOR.json
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -9,7 +9,7 @@
|
||||
"<2>": "-1",
|
||||
"<3>": "-1",
|
||||
"<4>": "-1",
|
||||
"<5>": "16777215",
|
||||
"<5>": "-2",
|
||||
"<6>": {
|
||||
"<6,1>": {
|
||||
"<6,1,1>": "Tahoma",
|
||||
@ -43,39 +43,19 @@
|
||||
"<8,2,3>": "High Thruput"
|
||||
},
|
||||
"<8,3>": {
|
||||
"<8,3,1>": "4",
|
||||
"<8,3,1>": "5",
|
||||
"<8,3,2>": "HTR",
|
||||
"<8,3,3>": "High Thruput"
|
||||
},
|
||||
"<8,4>": {
|
||||
"<8,4,1>": "5",
|
||||
"<8,4,2>": "HTR",
|
||||
"<8,4,3>": "High Thruput"
|
||||
"<8,4,1>": "8",
|
||||
"<8,4,2>": "EPP",
|
||||
"<8,4,3>": "EpiPro"
|
||||
},
|
||||
"<8,5>": {
|
||||
"<8,5,1>": "8",
|
||||
"<8,5,1>": "18",
|
||||
"<8,5,2>": "EPP",
|
||||
"<8,5,3>": "EpiPro"
|
||||
},
|
||||
"<8,6>": {
|
||||
"<8,6,1>": "18",
|
||||
"<8,6,2>": "EPP",
|
||||
"<8,6,3>": "EpiPro"
|
||||
},
|
||||
"<8,7>": {
|
||||
"<8,7,1>": "24",
|
||||
"<8,7,2>": "EPP",
|
||||
"<8,7,3>": "EpiPro"
|
||||
},
|
||||
"<8,8>": {
|
||||
"<8,8,1>": "5",
|
||||
"<8,8,2>": "GAN",
|
||||
"<8,8,3>": "G5+"
|
||||
},
|
||||
"<8,9>": {
|
||||
"<8,9,1>": "8",
|
||||
"<8,9,2>": "GAN",
|
||||
"<8,9,3>": "G5"
|
||||
}
|
||||
},
|
||||
"<9>": {
|
||||
@ -129,7 +109,17 @@
|
||||
"<32>": "0",
|
||||
"<33>": "1",
|
||||
"<34>": "16777215",
|
||||
"<35>": "16777215"
|
||||
"<35>": "16777215",
|
||||
"<36>": "",
|
||||
"<37>": "",
|
||||
"<38>": "",
|
||||
"<39>": "",
|
||||
"<40>": "-2",
|
||||
"<41>": "1000",
|
||||
"<42>": "",
|
||||
"<43>": "",
|
||||
"<44>": "",
|
||||
"<45>": ""
|
||||
}
|
||||
}
|
||||
}
|
@ -9,7 +9,7 @@
|
||||
"<2>": "-1",
|
||||
"<3>": "-1",
|
||||
"<4>": "-1",
|
||||
"<5>": "16777215",
|
||||
"<5>": "-2",
|
||||
"<6>": {
|
||||
"<6,1>": {
|
||||
"<6,1,1>": "Tahoma",
|
||||
@ -33,32 +33,12 @@
|
||||
"<7>": "",
|
||||
"<8>": {
|
||||
"<8,1>": {
|
||||
"<8,1,1>": "35",
|
||||
"<8,1,2>": "35 inch EpiPro"
|
||||
"<8,1,1>": "8",
|
||||
"<8,1,2>": "200mm 8 in"
|
||||
},
|
||||
"<8,2>": {
|
||||
"<8,2,1>": "18",
|
||||
"<8,2,2>": "18 inch HTR"
|
||||
},
|
||||
"<8,3>": {
|
||||
"<8,3,1>": "15",
|
||||
"<8,3,2>": "15 inch HTR"
|
||||
},
|
||||
"<8,4>": {
|
||||
"<8,4,1>": "8",
|
||||
"<8,4,2>": "8 inch 200mm"
|
||||
},
|
||||
"<8,5>": {
|
||||
"<8,5,1>": "6",
|
||||
"<8,5,2>": "6 inch 150mm"
|
||||
},
|
||||
"<8,6>": {
|
||||
"<8,6,1>": "5",
|
||||
"<8,6,2>": "5 inch 125mm"
|
||||
},
|
||||
"<8,7>": {
|
||||
"<8,7,1>": "4",
|
||||
"<8,7,2>": "4 inch 100mm"
|
||||
"<8,2,1>": "6",
|
||||
"<8,2,2>": "150mm 6 in"
|
||||
}
|
||||
},
|
||||
"<9>": {
|
||||
@ -104,7 +84,17 @@
|
||||
"<32>": "0",
|
||||
"<33>": "1",
|
||||
"<34>": "16777215",
|
||||
"<35>": "16777215"
|
||||
"<35>": "16777215",
|
||||
"<36>": "",
|
||||
"<37>": "",
|
||||
"<38>": "",
|
||||
"<39>": "",
|
||||
"<40>": "-2",
|
||||
"<41>": "1000",
|
||||
"<42>": "",
|
||||
"<43>": "",
|
||||
"<44>": "",
|
||||
"<45>": ""
|
||||
}
|
||||
}
|
||||
}
|
@ -527,7 +527,7 @@ end service
|
||||
// Reads a data column for the indicated Key ID and database table.
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
Service ReadDataColumn(TableName, KeyID, ColumnNo, NotExpired, ExpirationDuration, IgnoreMFSRoutines)
|
||||
|
||||
|
||||
If NotExpired NE False$ then NotExpired = True$
|
||||
If (ExpirationDuration EQ '') OR (Not(Num(ExpirationDuration))) then ExpirationDuration = 0
|
||||
If IgnoreMFSRoutines NE True$ then IgnoreMFSRoutines = False$
|
||||
@ -609,6 +609,7 @@ Service ReadDataRow(TableName, KeyID, NotExpired, ExpirationDuration, IgnoreMFSR
|
||||
Memory_Services('SetValue', ServiceKeyID, DataRow)
|
||||
end else
|
||||
Error_Services('Add', 'Error reading ' : KeyID : ' from the ' : TableName : ' table in the ' : Service : ' service. Error = ' : @File_Error<1>)
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1008,17 +1009,12 @@ Service WriteDataColumn(TableName, KeyID, ColumnNo, Value, IgnoreSelfLock, Ignor
|
||||
Error_Services('Add', ErrorMsg)
|
||||
end
|
||||
end
|
||||
If IgnoreAllLocks EQ False$ then
|
||||
Database_Services('ReleaseKeyIDLock', TableName, KeyID)
|
||||
end
|
||||
end else
|
||||
Error_Services('Add', 'Unable to lock ' : KeyID : ' for the ' : TableName : ' table in the ' : Service : ' service.')
|
||||
end
|
||||
* end
|
||||
end else
|
||||
Error_Services('Add', 'ColumnNo was not a number or was not greater than zero in the ' :Service : ' service.')
|
||||
Error_Services('Add', 'Unable to lock ' : KeyID : ' for the ' : TableName : ' table in the ' : Service : ' service.')
|
||||
end
|
||||
end else
|
||||
Error_Services('Add', 'TableName, KeyID, or ColumnNo argument was missing in the ' : Service : ' service.')
|
||||
Error_Services('Add', 'TableName or KeyID argument was missing in the ' : Service : ' service.')
|
||||
end
|
||||
|
||||
end service
|
||||
|
@ -18,7 +18,7 @@ COMPILE FUNCTION obj_Reactor_Log(Method,Parms)
|
||||
*/
|
||||
|
||||
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, ErrMsg, Btree.Extract, obj_React_Item_Hist, Update_Index, obj_Post_Log
|
||||
Declare subroutine Error_Services, Database_Services, React_Item_Services
|
||||
Declare subroutine Error_Services, Database_Services, React_Item_Services, Reactor_Services
|
||||
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, obj_React_Item, obj_Calendar, Database_Services
|
||||
|
||||
|
||||
@ -117,7 +117,7 @@ PostReactItems:
|
||||
InstRINos = ReactorLogRec<REACTOR_LOG_INST_RI_NO$>
|
||||
|
||||
CurrRINos = XLATE('REACTOR_LOG', RLNo, 'CURR_RI_NO', 'X')
|
||||
|
||||
ReactorType = Xlate('REACTOR', ReactNo, REACTOR_REACT_TYPE$, 'X')
|
||||
//Check to make sure that everything is valid before adding or removing anything
|
||||
ValidationFailureReason = ''
|
||||
for each InstRINo in InstRINos using @VM
|
||||
@ -125,6 +125,22 @@ PostReactItems:
|
||||
If InstRIRec<REACT_ITEM_RETIRE_DT$> NE '' then
|
||||
ValidationFailureReason = 'Unable to install Reactor Item No. ' : InstRINo : ' because its status is retired!'
|
||||
end
|
||||
If InstRIRec<REACT_ITEM_RI_TYPE$> EQ 'S' then
|
||||
If InstRIRec<REACT_ITEM_PKT_SIZE$> EQ '' then
|
||||
ValidationFailureReason = 'Unable to install Reactor Item No. ' : InstRINo : '. Pocket/Ring Size cannot be empty for Susceptor Reactor Items.'
|
||||
end
|
||||
If InstRIRec<REACT_ITEM_PKT_QTY$> EQ '' then
|
||||
ValidationFailureReason = 'Unable to install Reactor Item No. ' : InstRINo : '. Pocket Qty cannot be empty for Susceptor Reactor Items.'
|
||||
end
|
||||
end
|
||||
If (InstRIRec<REACT_ITEM_RI_TYPE$> NE 'RE') AND (InstRIRec<REACT_ITEM_RI_TYPE$> NE 'LE') then
|
||||
If InstRIRec<REACT_ITEM_SERIAL_NO$> EQ '' then
|
||||
ValidationFailureReason = 'Unable to install Reactor Item No. ' : InstRINo : '. Serial Number cannot be blank to non-elevator Reactor Items.'
|
||||
end
|
||||
end
|
||||
If (InstRIRec<REACT_ITEM_PART_TYPE$> NE ReactorType) then
|
||||
ValidationFailureReason = 'Unable to install Reactor Item No. ' : InstRINo : '. Reactor Type must match Reactor Item Part Type.'
|
||||
end
|
||||
Until ValidationFailureReason NE ''
|
||||
Next InstRINo
|
||||
|
||||
@ -147,9 +163,17 @@ PostReactItems:
|
||||
|
||||
obj_React_Item_Hist('Install',oriParms)
|
||||
|
||||
IF Get_Status(errCode) THEN
|
||||
|
||||
END
|
||||
IF Not(Get_Status(errCode)) THEN
|
||||
RIKey = InstRINos<1,I>
|
||||
RIRec = Xlate('REACT_ITEM', RIKey, '', 'X')
|
||||
RIType = RIRec<REACT_ITEM_RI_TYPE$>
|
||||
If RIType EQ 'S' then
|
||||
PktSize = Xlate('REACT_ITEM', RIKey, 'PKT_SIZE_DESC', 'X')
|
||||
PktQty = RIRec<REACT_ITEM_PKT_QTY$>
|
||||
Reactor_Services('SetWaferSize', ReactNo, PktSize)
|
||||
Reactor_Services('SetPocketQty', ReactNo, PktQty)
|
||||
end
|
||||
END
|
||||
END ;* End of LOCATE check for Install RI number already in the reactor
|
||||
|
||||
NEXT I
|
||||
@ -384,3 +408,5 @@ RemHistKeys:
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
|
@ -41,8 +41,9 @@ Function Reactitems_API(@API)
|
||||
$insert APP_INSERTS
|
||||
$insert API_SETUP
|
||||
$insert HTTP_INSERTS
|
||||
$Insert REACT_ITEM_EQUATES
|
||||
|
||||
Declare subroutine OI_Wizard_Services, SRP_JSON, Database_Services
|
||||
Declare subroutine OI_Wizard_Services, SRP_JSON, Database_Services, React_Item_Services
|
||||
Declare function React_Item_Services, SRP_JSON, OI_Wizard_Services
|
||||
|
||||
GoToAPI else
|
||||
@ -220,13 +221,17 @@ API ReactItems.ID.PUT
|
||||
SRP_JSON(hJSON, 'Release')
|
||||
KeyID = EndpointSegment
|
||||
Record = React_Item_Services('ConvertJSONToRecord', JSON)
|
||||
If KeyID NE '' and Record NE '' then
|
||||
Database_Services('WriteDataRow', 'REACT_ITEM', KeyID, Record)
|
||||
end
|
||||
If Error_Services('NoError') then
|
||||
StatusCode = 200
|
||||
Message = 'React Item Updated'
|
||||
GoSub CreateHalItem
|
||||
If KeyID NE '' and Record NE '' then
|
||||
React_Item_Services('UpdateReactItem', KeyID, Record)
|
||||
end
|
||||
If Error_Services('NoError') then
|
||||
StatusCode = 200
|
||||
Message = 'React Item Updated'
|
||||
GoSub CreateHalItem
|
||||
end else
|
||||
HTTP_Services('SetResponseStatus', 400, Error_Services('GetMessage'))
|
||||
end
|
||||
end else
|
||||
HTTP_Services('SetResponseStatus', 400, Error_Services('GetMessage'))
|
||||
end
|
||||
@ -357,3 +362,5 @@ CreateHALCollection:
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
@ -165,10 +165,14 @@ Service SignReactorLog(ReactorLogID, UserID)
|
||||
RIPostBy = ReactorLogRec<REACTOR_LOG_RI_POST_BY$>
|
||||
If RIPostBy EQ '' then
|
||||
obj_Reactor_Log('PostReactItems',ReactorLogID:@RM:UserID)
|
||||
// Pull in a fresh copy of the record with the POST_BY signature set
|
||||
ReactorLogRec = Database_Services('ReadDataRow', 'REACTOR_LOG', ReactorLogID)
|
||||
If Get_Status(ErrCode) then
|
||||
ErrorMsg = 'Error in ':Service:' service. Error calling obj_Reactor_Log("PostReactItems"). Error code: ':ErrCode:'.'
|
||||
If Error_Services('NoError') then
|
||||
// Pull in a fresh copy of the record with the POST_BY signature set
|
||||
ReactorLogRec = Database_Services('ReadDataRow', 'REACTOR_LOG', ReactorLogID)
|
||||
If Get_Status(ErrCode) then
|
||||
ErrorMsg = 'Error in ':Service:' service. Error calling obj_Reactor_Log("PostReactItems"). Error code: ':ErrCode:'.'
|
||||
end
|
||||
end else
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -961,3 +965,4 @@ ClearCursors:
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
@ -677,12 +677,93 @@ Service ResetWfrMetric(ReactorNo, MetricType = REACTORMETRIC)
|
||||
|
||||
end service
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// SetWaferSize
|
||||
//
|
||||
// Sets the Reactor's Wafer Size.
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
Service SetWaferSize(ReactNo, WaferSize)
|
||||
|
||||
ErrMsg = ''
|
||||
If ReactNo EQ '' then
|
||||
ErrMsg := 'ReactNo value is missing.'
|
||||
end
|
||||
If WaferSize EQ '' then
|
||||
ErrMsg := 'WaferSize value is missing.'
|
||||
end
|
||||
If ErrMsg EQ '' then
|
||||
If RowExists('REACTOR', ReactNo) then
|
||||
WaferSizeOptions = Xlate('SYSREPOSPOPUPS', 'LSL2**WAFER_SIZES', 8, 'X')
|
||||
Swap @VM with @FM in WaferSizeOptions
|
||||
Swap @SVM with @VM in WaferSizeOptions
|
||||
WaferSizeOptions = SRP_Array('Rotate', WaferSizeOptions)
|
||||
WaferSizeOptions = WaferSizeOptions<2>
|
||||
If Count(WaferSizeOptions, WaferSize) NE 0 then
|
||||
ReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactNo)
|
||||
ReactorRec<REACTOR_SUSC_POCKET_SIZE$> = WaferSize
|
||||
Database_Services('WriteDataRow', 'REACTOR', ReactNo, ReactorRec, True$, False$, False$)
|
||||
If Error_Services('HasError') then
|
||||
ErrMsg := Error_Services('GetMessage')
|
||||
end
|
||||
end else
|
||||
ErrMsg := 'Invalid Wafer Size.'
|
||||
end
|
||||
end else
|
||||
ErrMsg := 'The chosen Reactor No. ': ReactNo: ' does not exist.'
|
||||
end
|
||||
end
|
||||
If ErrMsg NE '' then
|
||||
Error_Services('Add', ErrMsg)
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// SetPocketQty
|
||||
//
|
||||
// Sets the Reactor's Wafer Size.
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
Service SetPocketQty(ReactNo, PocketQty)
|
||||
|
||||
ErrMsg = ''
|
||||
If ReactNo EQ '' then
|
||||
ErrMsg := 'ReactNo value is missing.'
|
||||
end
|
||||
If PocketQty EQ '' then
|
||||
ErrMsg := 'PocketQty value is missing.'
|
||||
end
|
||||
If ErrMsg EQ '' then
|
||||
If RowExists('REACTOR', ReactNo) then
|
||||
PocketQtyOptions = Xlate('SYSREPOSPOPUPS', 'LSL2**SUSCEPTOR_POCKETS', 8, 'X')
|
||||
Swap @VM with @FM in PocketQtyOptions
|
||||
Swap @SVM with @VM in PocketQtyOptions
|
||||
PocketQtyOptions = SRP_Array('Rotate', PocketQtyOptions)
|
||||
PocketQtyOptions = PocketQtyOptions<1>
|
||||
If Count(PocketQtyOptions, PocketQty) NE 0 then
|
||||
ReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactNo)
|
||||
ReactorRec<REACTOR_SUSC_POCKET_QTY$> = PocketQty
|
||||
Database_Services('WriteDataRow', 'REACTOR', ReactNo, ReactorRec, True$, False$, False$)
|
||||
If Error_Services('HasError') then
|
||||
ErrMsg := Error_Services('GetMessage')
|
||||
end
|
||||
end else
|
||||
ErrMsg := 'Invalid Pocket Qty..'
|
||||
end
|
||||
end else
|
||||
ErrMsg := 'The chosen Reactor No. ': ReactNo: ' does not exist.'
|
||||
end
|
||||
end
|
||||
If ErrMsg NE '' then
|
||||
Error_Services('Add', ErrMsg)
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// GetReactors
|
||||
//
|
||||
// Returns a JSON formatted array of reactor objects. Reactor number 0 will be ommitted. If the MatchType or MatchSize
|
||||
// arguments are populated, the array will be filterd accordingly.
|
||||
// arguments are populated, the array will be filtered accordingly.
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
Service GetReactors(MatchType, MatchSize)
|
||||
|
||||
@ -4431,3 +4512,4 @@ ClearCursors:
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
@ -6,7 +6,7 @@ COMPILE FUNCTION React_Item(EntID,Event,Parm1,Parm2,Parm3,Parm4,Parm5)
|
||||
01/13/2014 - John C. Henry, J.C. Henry & Co., Inc. cloned from Graphite
|
||||
*/
|
||||
|
||||
DECLARE SUBROUTINE Set_Property, ErrMsg, obj_Appwindow, Btree.Extract, Send_Event, Post_Event, obj_React_Item
|
||||
DECLARE SUBROUTINE Set_Property, ErrMsg, obj_Appwindow, Btree.Extract, Send_Event, Post_Event, obj_React_Item, Forward_Event
|
||||
DECLARE FUNCTION Get_Property, Send_Message, NextKey, Popup, obj_Calendar, Printer_Select
|
||||
DECLARE FUNCTION Set_Printer, obj_Install, Start_Window, obj_React_Item_Hist, obj_React_Item, Dialog_Box
|
||||
|
||||
@ -15,6 +15,7 @@ $INSERT REACT_ITEM_EQUATES
|
||||
$INSERT REACT_ITEM_HIST_EQUATES
|
||||
$INSERT APPCOLORS
|
||||
$INSERT POPUP_EQUATES
|
||||
$INSERT LOGICAL
|
||||
|
||||
EQU COL$REACT_NO TO 1
|
||||
EQU COL$SVC_HRS TO 2
|
||||
@ -77,6 +78,9 @@ BEGIN CASE
|
||||
CASE EntID = @WINDOW:'.LU_PKT_QTY' AND Event = 'CLICK' ; GOSUB LUPktQty
|
||||
CASE EntID = @WINDOW:'.RETIRE_BUTTON' AND Event = 'CLICK' ; GOSUB RetireItem
|
||||
CASE EntID = @WINDOW:'.PRINT_LABEL' AND Event = 'CLICK' ; GOSUB PrintLabel
|
||||
CASE EntID = @WINDOW:'.RI_TYPE' AND Event = 'CHANGED' ; GOSUB RITypeChange
|
||||
CASE EntID = @WINDOW:'.PKT_SIZE' AND Event = 'CHANGED' ; GOSUB PktSizeChange
|
||||
CASE EntID = @WINDOW:'.PART_TYPE' AND Event = 'LOSTFOCUS' ; GOSUB PktSizeChange
|
||||
|
||||
CASE 1
|
||||
|
||||
@ -142,10 +146,6 @@ RETURN
|
||||
Read:
|
||||
* * * * * * *
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
GOSUB Refresh
|
||||
|
||||
RETURN
|
||||
@ -154,11 +154,6 @@ RETURN
|
||||
Write:
|
||||
* * * * * * *
|
||||
|
||||
Parent = Get_Property(@WINDOW,'PARENT')
|
||||
|
||||
IF Parent = 'REACTOR_LOG' OR Parent = 'REACT_STATE' THEN
|
||||
Post_Event(@WINDOW,'CLOSE')
|
||||
END
|
||||
|
||||
RETURN
|
||||
|
||||
@ -261,9 +256,68 @@ FOR Line = 1 TO ListCnt
|
||||
NEXT N
|
||||
END
|
||||
NEXT Line
|
||||
RIType = Get_Property(@Window:'.RI_TYPE', 'TEXT')
|
||||
If RIType EQ 'S' then
|
||||
Set_Property(@Window:'.SUSC_GROUP', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.PKT_SIZE_LABEL', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.PKT_SIZE', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.LU_PKT_SIZE', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.PKT_SIZE_DESC', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.PKT_QTY_LABEL', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.LU_PKT_QTY', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.PPLUS_RDS_NO_LABEL', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.PPLUS_RDS_NO', 'ENABLED', True$)
|
||||
end else
|
||||
Set_Property(@Window:'.SUSC_GROUP', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PKT_SIZE_LABEL', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PKT_SIZE', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PKT_SIZE', 'TEXT', '')
|
||||
Set_Property(@Window:'.LU_PKT_SIZE', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PKT_SIZE_DESC', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PKT_SIZE_DESC', 'TEXT', '')
|
||||
Set_Property(@Window:'PKT_QTY_LABEL', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PKT_QTY', 'TEXT', '')
|
||||
Set_Property(@Window:'.LU_PKT_QTY', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PPLUS_RDS_NO_LABEL', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PPLUS_RDS_NO', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PPLUS_RDS_NO', 'TEXT', '')
|
||||
end
|
||||
|
||||
RETURN
|
||||
|
||||
* * * * * * *
|
||||
RITypeChange:
|
||||
* * * * * * *
|
||||
|
||||
RIType = Get_Property(@Window:'.RI_TYPE', 'TEXT')
|
||||
If RIType EQ 'S' then
|
||||
Set_Property(@Window:'.SUSC_GROUP', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.PKT_SIZE_LABEL', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.PKT_SIZE', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.LU_PKT_SIZE', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.PKT_SIZE_DESC', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.PKT_QTY_LABEL', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.LU_PKT_QTY', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.PPLUS_RDS_NO_LABEL', 'ENABLED', True$)
|
||||
Set_Property(@Window:'.PPLUS_RDS_NO', 'ENABLED', True$)
|
||||
end else
|
||||
Set_Property(@Window:'.SUSC_GROUP', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PKT_SIZE_LABEL', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PKT_SIZE', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PKT_SIZE', 'TEXT', '')
|
||||
Set_Property(@Window:'.LU_PKT_SIZE', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PKT_SIZE_DESC', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PKT_SIZE_DESC', 'TEXT', '')
|
||||
Set_Property(@Window:'PKT_QTY_LABEL', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PKT_QTY', 'TEXT', '')
|
||||
Set_Property(@Window:'.LU_PKT_QTY', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PPLUS_RDS_NO_LABEL', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PPLUS_RDS_NO', 'ENABLED', False$)
|
||||
Set_Property(@Window:'.PPLUS_RDS_NO', 'TEXT', '')
|
||||
end
|
||||
|
||||
return
|
||||
|
||||
|
||||
* * * * * * *
|
||||
RetireItem:
|
||||
@ -443,19 +497,46 @@ RETURN
|
||||
LUPktSize:
|
||||
* * * * * * *
|
||||
|
||||
RetVal = Popup(@WINDOW,'','WAFER_SIZES')
|
||||
|
||||
IF RetVal NE '' THEN
|
||||
oaParms = RetVal:@RM:@WINDOW:'.PKT_SIZE'
|
||||
obj_Appwindow('LUValReturn',oaParms)
|
||||
END
|
||||
RIType = Get_Property(@Window:'.RI_TYPE', 'TEXT')
|
||||
If RIType EQ 'S' then
|
||||
PocketQty = ''
|
||||
Set_Property(@Window:'.PKT_QTY', 'TEXT', '')
|
||||
PartType = Get_Property(@Window: '.PART_TYPE', 'TEXT')
|
||||
If (PartType EQ 'HTR') OR (PartType EQ 'EPP') OR (PartType EQ 'ASM') then
|
||||
RetVal = Popup(@WINDOW,TypeOver,'WAFER_SIZES')
|
||||
IF RetVal NE '' THEN
|
||||
oaParms = RetVal:@RM:@WINDOW:'.PKT_SIZE'
|
||||
obj_Appwindow('LUValReturn',oaParms)
|
||||
Begin Case
|
||||
Case PartType EQ 'HTR'
|
||||
If RetVal EQ 8 then
|
||||
PocketQty = 3
|
||||
end else
|
||||
If RetVal EQ 6 then PocketQty = 5
|
||||
end
|
||||
Case PartType EQ 'EPP'
|
||||
If RetVal EQ 8 then
|
||||
PocketQty = 8
|
||||
end else
|
||||
If RetVal EQ 6 then PocketQty = 18
|
||||
end
|
||||
Case PartType EQ 'ASM'
|
||||
If RetVal EQ 8 OR RetVal EQ 6 then PocketQty = 1
|
||||
|
||||
End Case
|
||||
Set_Property(@Window:'.PKT_QTY', 'TEXT', PocketQty)
|
||||
END
|
||||
end else
|
||||
ErrMsg('A valid Part Type (EPP, ASM, HTR) must be selected before selecting Pocket Size.')
|
||||
end
|
||||
end
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
* * * * * *
|
||||
LUPktQty:
|
||||
* * * * * * *
|
||||
* * * * * *
|
||||
|
||||
ReactType = Get_Property(@WINDOW:'.REACT_TYPE','INVALUE')
|
||||
|
||||
@ -508,3 +589,41 @@ obj_React_Item('PrintLabel',RINo:@RM:CurrRec)
|
||||
RETURN
|
||||
|
||||
|
||||
PktSizeChange:
|
||||
|
||||
RIType = Get_Property(@Window:'.RI_TYPE', 'TEXT')
|
||||
If RIType EQ 'S' then
|
||||
PocketQty = ''
|
||||
Set_Property(@Window:'.PKT_QTY', 'TEXT', '')
|
||||
PktSize = Get_Property(@Window: '.PKT_SIZE', 'TEXT')
|
||||
PartType = Get_Property(@Window: '.PART_TYPE', 'TEXT')
|
||||
If (PartType EQ 'HTR') OR (PartType EQ 'EPP') OR (PartType EQ 'ASM') then
|
||||
If PktSize EQ 6 OR PktSize EQ 8 then
|
||||
Begin Case
|
||||
Case PartType EQ 'HTR'
|
||||
If PktSize EQ 8 then
|
||||
PocketQty = 3
|
||||
end else
|
||||
If PktSize EQ 6 then PocketQty = 5
|
||||
end
|
||||
Case PartType EQ 'EPP'
|
||||
If PktSize EQ 8 then
|
||||
PocketQty = 8
|
||||
end else
|
||||
If PktSize EQ 6 then PocketQty = 18
|
||||
end
|
||||
Case PartType EQ 'ASM'
|
||||
If PktSize EQ 8 OR PktSize EQ 6 then PocketQty = 1
|
||||
|
||||
End Case
|
||||
Set_Property(@Window:'.PKT_QTY', 'TEXT', PocketQty)
|
||||
end else
|
||||
ErrMsg('A valid Pocket Size (6 or 8 in.) is required.')
|
||||
end
|
||||
end else
|
||||
ErrMsg('A valid Part Type (EPP, ASM, HTR) must be selected before selecting Pocket Size.')
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
return
|
||||
|
@ -136,11 +136,59 @@ return
|
||||
WRITE_RECORD_PRE:
|
||||
|
||||
ErrMsg = ''
|
||||
|
||||
|
||||
// Req'd parameter checks
|
||||
ItemType = {RI_TYPE}
|
||||
|
||||
If ItemType EQ '' then ErrMsg := 'Item Type was not specified. '
|
||||
|
||||
If (ItemType NE 'LE') AND (ItemType NE 'RE') then
|
||||
SerialNo = Record<REACT_ITEM_SERIAL_NO$>
|
||||
If SerialNo EQ '' then
|
||||
ErrMsg := 'Serial No. is required for this Reactor Item type. '
|
||||
end
|
||||
end
|
||||
|
||||
If ItemType EQ 'S' then
|
||||
PocketQty = Record<REACT_ITEM_PKT_QTY$>
|
||||
PocketSize = Record<REACT_ITEM_PKT_SIZE$>
|
||||
If PocketSize EQ '' then
|
||||
ErrMsg := 'Pocket size is required for Susceptor Item Type. '
|
||||
end
|
||||
If PocketQty EQ '' then
|
||||
ErrMsg := 'Pocket quantity is required for Susceptor Item Type. '
|
||||
end
|
||||
If ErrMsg = '' then
|
||||
ExpectedQty = ''
|
||||
Begin Case
|
||||
Case Record<REACT_ITEM_PART_TYPE$> EQ 'ASM'
|
||||
If PocketSize EQ 6 OR PocketSize EQ 8 then
|
||||
ExpectedQty = 1
|
||||
end
|
||||
Case Record<REACT_ITEM_PART_TYPE$> EQ 'HTR'
|
||||
If PocketSize EQ 8 then
|
||||
ExpectedQty = 3
|
||||
end else
|
||||
If PocketSize EQ 6 then ExpectedQty = 5
|
||||
end
|
||||
Case Record<REACT_ITEM_PART_TYPE$> EQ 'EPP'
|
||||
If PocketSize EQ 8 then
|
||||
ExpectedQty = 8
|
||||
end else
|
||||
If PocketSize EQ 6 then ExpectedQty = 18
|
||||
end
|
||||
Case Record<REACT_ITEM_PART_TYPE$> EQ ''
|
||||
ErrMsg := 'Part Type. is required for Susceptor Reactor Item type. '
|
||||
Case Otherwise$
|
||||
ErrMsg := 'Invalid Part Type for Susceptor Reactor Item Type. '
|
||||
End Case
|
||||
If ExpectedQty NE '' then
|
||||
If PocketQty NE ExpectedQty then
|
||||
ErrMsg := 'Invalid Pocket Quantity for Part Type/Pocket Size combination. '
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
If ErrMsg NE '' then
|
||||
Error_Services('Add', 'Error Saving Reactor Item: ' : ErrMsg)
|
||||
@ -233,3 +281,5 @@ Restore_System_Variables:
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
@ -46,7 +46,7 @@ Options BOOLEAN = True$, False$
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
Service GetReactItems(RIType, CurrStatus, EntryDtStart, EntryDtEnd, RetireDtStart, RetireDtEnd, IncludeNullRetireDt=BOOLEAN)
|
||||
Service GetReactItems(RIType, CurrStatus, EntryDtStart, EntryDtEnd, RetireDtStart, RetireDtEnd, IncludeNullRetireDt=BOOLEAN, PartType)
|
||||
|
||||
ErrorMsg = ''
|
||||
Response = ''
|
||||
@ -99,6 +99,9 @@ Service GetReactItems(RIType, CurrStatus, EntryDtStart, EntryDtEnd, RetireDtStar
|
||||
Swap ',' with @VM in CurrStatus
|
||||
SearchString := 'CURR_STATUS_STATIC':@VM:CurrStatus:@FM
|
||||
end
|
||||
If PartType NE '' then
|
||||
SearchString := 'PART_TYPE':@VM:PartType:@FM
|
||||
end
|
||||
Flag = ''
|
||||
RIKeys = ''
|
||||
Btree.Extract(SearchString, 'REACT_ITEM', DictReactItem, RIKeys, 'E', Flag)
|
||||
@ -370,7 +373,7 @@ Service GetReactItemTemplateJSON()
|
||||
end else
|
||||
Error_Services('Add', 'Unable to create JSON representation in the ' : Service : ' service.')
|
||||
end
|
||||
|
||||
|
||||
Response = jsonRecord
|
||||
|
||||
end service
|
||||
@ -381,17 +384,15 @@ Service CreateReactItem(Record)
|
||||
ErrMsg = ''
|
||||
KeyID = ''
|
||||
If Record NE '' then
|
||||
//Need to do some parameter checks here
|
||||
ReactItemType = Record<REACT_ITEM_RI_TYPE$>
|
||||
If ReactItemType EQ '' then
|
||||
ErrMsg := 'React Item Type was blank!' : CRLF$
|
||||
end
|
||||
If ErrMsg EQ '' then
|
||||
KeyID = NextKey('REACT_ITEM')
|
||||
If Error_Services('NoError') and KeyID NE '' then
|
||||
Database_Services('WriteDataRow', 'REACT_ITEM', KeyID, Record)
|
||||
Database_Services('WriteDataRow', 'REACT_ITEM', KeyID, Record, True$, False$, False$)
|
||||
If Error_Services('HasError') then
|
||||
ErrMsg := Error_Services('GetMessage')
|
||||
end
|
||||
end else
|
||||
ErrMsg := 'Failed to generate a key for a new react item. ' : CRLF$
|
||||
ErrMsg := 'Failed to generate a key for a new react item. '
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -457,6 +458,31 @@ Service ConvertRecordToJSONQuick(KeyID, Record, ItemURL)
|
||||
end service
|
||||
|
||||
|
||||
Service UpdateReactItem(RINo, Record)
|
||||
|
||||
ErrorMsg = ''
|
||||
If RINo EQ '' then
|
||||
ErrorMsg := 'React Item ID argument was missing in the ' : Service : ' service. '
|
||||
end
|
||||
If Record EQ '' then
|
||||
ErrorMsg := 'React Item Record argument was missing in the ' : Service : ' service. '
|
||||
end
|
||||
If ErrorMsg EQ '' then
|
||||
If RowExists('REACT_ITEM', RINo) then
|
||||
Database_Services('WriteDataRow', 'REACT_ITEM', RINo, Record, True$, False$, False$)
|
||||
If Error_Services('HasError') then
|
||||
ErrorMsg := Error_Services('GetMessage')
|
||||
end
|
||||
end else
|
||||
ErrorMsg := 'React Item not found. '
|
||||
end
|
||||
end
|
||||
If ErrorMsg NE '' then
|
||||
Error_Services('Add', ErrorMsg)
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
Service UpdateReactItemStatus(RINo)
|
||||
|
||||
If RINo NE '' then
|
||||
@ -493,3 +519,7 @@ ClearCursors:
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user