ready for deployment
This commit is contained in:
parent
6aad8036e5
commit
550f376a0b
@ -9,7 +9,7 @@
|
|||||||
"<2>": "-1",
|
"<2>": "-1",
|
||||||
"<3>": "-1",
|
"<3>": "-1",
|
||||||
"<4>": "-1",
|
"<4>": "-1",
|
||||||
"<5>": "16777215",
|
"<5>": "-2",
|
||||||
"<6>": {
|
"<6>": {
|
||||||
"<6,1>": {
|
"<6,1>": {
|
||||||
"<6,1,1>": "Tahoma",
|
"<6,1,1>": "Tahoma",
|
||||||
@ -31,7 +31,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"<7>": "REACT_ITEM",
|
"<7>": "REACT_ITEM",
|
||||||
"<8>": "BY @ID",
|
"<8>": "BY-DSND ENTER_DTM",
|
||||||
"<9>": {
|
"<9>": {
|
||||||
"<9,1>": {
|
"<9,1>": {
|
||||||
"<9,1,1>": "RI_NO",
|
"<9,1,1>": "RI_NO",
|
||||||
@ -120,6 +120,22 @@
|
|||||||
"<9,11,4>": "C",
|
"<9,11,4>": "C",
|
||||||
"<9,11,5>": "D4/",
|
"<9,11,5>": "D4/",
|
||||||
"<9,11,6>": "Retire Dt"
|
"<9,11,6>": "Retire Dt"
|
||||||
|
},
|
||||||
|
"<9,12>": {
|
||||||
|
"<9,12,1>": "ENTER_DTM",
|
||||||
|
"<9,12,2>": "14",
|
||||||
|
"<9,12,3>": "L",
|
||||||
|
"<9,12,4>": "C",
|
||||||
|
"<9,12,5>": "DT2/^H",
|
||||||
|
"<9,12,6>": "Enter Dtm"
|
||||||
|
},
|
||||||
|
"<9,13>": {
|
||||||
|
"<9,13,1>": "CURR_STATUS",
|
||||||
|
"<9,13,2>": "5",
|
||||||
|
"<9,13,3>": "L",
|
||||||
|
"<9,13,4>": "C",
|
||||||
|
"<9,13,5>": "[CONV_ITEM_CURR_STATUS]",
|
||||||
|
"<9,13,6>": "Curr Status"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"<10>": "T",
|
"<10>": "T",
|
||||||
@ -147,7 +163,17 @@
|
|||||||
"<32>": "0",
|
"<32>": "0",
|
||||||
"<33>": "1",
|
"<33>": "1",
|
||||||
"<34>": "16777215",
|
"<34>": "16777215",
|
||||||
"<35>": "16777215"
|
"<35>": "16766894",
|
||||||
|
"<36>": "",
|
||||||
|
"<37>": "",
|
||||||
|
"<38>": "",
|
||||||
|
"<39>": "",
|
||||||
|
"<40>": "-2",
|
||||||
|
"<41>": "1000",
|
||||||
|
"<42>": "",
|
||||||
|
"<43>": "",
|
||||||
|
"<44>": "",
|
||||||
|
"<45>": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -9,7 +9,7 @@
|
|||||||
"<2>": "-1",
|
"<2>": "-1",
|
||||||
"<3>": "-1",
|
"<3>": "-1",
|
||||||
"<4>": "-1",
|
"<4>": "-1",
|
||||||
"<5>": "16777215",
|
"<5>": "-2",
|
||||||
"<6>": {
|
"<6>": {
|
||||||
"<6,1>": {
|
"<6,1>": {
|
||||||
"<6,1,1>": "MS Sans Serif",
|
"<6,1,1>": "MS Sans Serif",
|
||||||
@ -91,7 +91,17 @@
|
|||||||
"<32>": "0",
|
"<32>": "0",
|
||||||
"<33>": "1",
|
"<33>": "1",
|
||||||
"<34>": "16777215",
|
"<34>": "16777215",
|
||||||
"<35>": "16777215"
|
"<35>": "16777215",
|
||||||
|
"<36>": "",
|
||||||
|
"<37>": "",
|
||||||
|
"<38>": "",
|
||||||
|
"<39>": "",
|
||||||
|
"<40>": "-2",
|
||||||
|
"<41>": "1000",
|
||||||
|
"<42>": "",
|
||||||
|
"<43>": "",
|
||||||
|
"<44>": "",
|
||||||
|
"<45>": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -20,7 +20,7 @@ Declare Function Get_Property, Get_Status, Dialog_Box, Utility, Popup, Collect.I
|
|||||||
Declare Function Send_Message, Msg, Security_Check, obj_React_Item, Select_Into, MemberOf, Create_Dialog, obj_Calendar
|
Declare Function Send_Message, Msg, Security_Check, obj_React_Item, Select_Into, MemberOf, Create_Dialog, obj_Calendar
|
||||||
Declare Function GetAsyncKeyState, obj_Tables, MemberOf, Environment_Services, Database_Services, Rds_Services
|
Declare Function GetAsyncKeyState, obj_Tables, MemberOf, Environment_Services, Database_Services, Rds_Services
|
||||||
Declare Function Reactor_Services, Error_Services, React_Servs_Services, Reactor_Log_Services, Send_Event, SRP_List
|
Declare Function Reactor_Services, Error_Services, React_Servs_Services, Reactor_Log_Services, Send_Event, SRP_List
|
||||||
Declare Function Nica_Orders_Services
|
Declare Function Nica_Orders_Services, SRP_Date, React_Item_Services, SRP_Datetime, Datetime
|
||||||
|
|
||||||
$Insert MSG_EQUATES
|
$Insert MSG_EQUATES
|
||||||
$Insert APPCOLORS
|
$Insert APPCOLORS
|
||||||
@ -1229,64 +1229,51 @@ SvcsOptions:
|
|||||||
If ItemType NE '' then
|
If ItemType NE '' then
|
||||||
|
|
||||||
RetVal = ''
|
RetVal = ''
|
||||||
|
ItemType = ICONV(ItemType,'[CONV_CODE_DESC,REACT_ITEM_TYPE]')
|
||||||
|
|
||||||
ItemType = ICONV(ItemType,'[CONV_CODE_DESC,REACT_ITEM_TYPE]')
|
RIKeys = React_Item_Services('GetReactItems', ItemType, 'N,U')
|
||||||
|
|
||||||
OPEN 'DICT.REACT_ITEM' to DictReactItem else
|
If Error_Services('NoError') then
|
||||||
ErrMsg('Unable to open DICT.REACT_ITEM')
|
|
||||||
return
|
TypeOver = ''
|
||||||
end
|
TypeOVer<PMODE$> = 'K'
|
||||||
|
TypeOver<PDISPLAY$> = RIKeys
|
||||||
SearchString = 'RI_TYPE':@VM:ItemType:@FM
|
RetVal = Popup(@Window,TypeOver,'REACT_ITEM')
|
||||||
SearchString := 'CURR_STATUS':@VM:'N':@VM:'U':@FM
|
|
||||||
|
If RetVal NE '' then
|
||||||
RIKeys = ''
|
obj_AppWindow('LUValReturn',RetVal:@RM:@Window:'.SERV_INFO':@RM:SelPos)
|
||||||
Option = ''
|
|
||||||
Flag = ''
|
RIRec = XLATE('REACT_ITEM',RetVal,'','X')
|
||||||
|
|
||||||
Btree.Extract(SearchString,'REACT_ITEM',DictReactItem,RIKeys,Option,Flag)
|
If RIRec<REACT_ITEM_RI_TYPE$> = 'T' then
|
||||||
If Get_Status(errCode) then
|
CardWindow = 'REACT_ITEM'
|
||||||
ErrMsg(errCode)
|
CardKey = RetVal
|
||||||
return
|
DefaultRec = ''
|
||||||
end
|
NewCardCtrl = ''
|
||||||
|
RecalcCtrl = @Window:'.SERV_INFO'
|
||||||
TypeOver = ''
|
RecalcPos = SelPos
|
||||||
TypeOVer<PMODE$> = 'K'
|
RetCtrl = @Window:'.SERV_INFO'
|
||||||
TypeOver<PDISPLAY$> = RIKeys
|
RetPos = SelPos
|
||||||
RetVal = Popup(@Window,TypeOver,'REACT_ITEM')
|
|
||||||
|
oAParms = CardWindow:@RM:CardKey:@RM:DefaultRec:@RM:NewCardCtrl:@RM:RecalcCtrl:@RM:RecalcPos:@RM:RetCtrl:@RM:RetPos
|
||||||
If RetVal NE '' then
|
|
||||||
obj_AppWindow('LUValReturn',RetVal:@RM:@Window:'.SERV_INFO':@RM:SelPos)
|
obj_AppWindow('ViewNewCard',oAParms)
|
||||||
|
|
||||||
RIRec = XLATE('REACT_ITEM',RetVal,'','X')
|
Set_Property('REACT_ITEM.TUBE_GRADE','FOCUS',1)
|
||||||
|
|
||||||
If RIRec<REACT_ITEM_RI_TYPE$> = 'T' then
|
If Get_Status(errCode) then
|
||||||
CardWindow = 'REACT_ITEM'
|
ErrMsg(errCode)
|
||||||
CardKey = RetVal
|
end
|
||||||
DefaultRec = ''
|
end
|
||||||
NewCardCtrl = ''
|
|
||||||
RecalcCtrl = @Window:'.SERV_INFO'
|
GoSub Refresh
|
||||||
RecalcPos = SelPos
|
end
|
||||||
RetCtrl = @Window:'.SERV_INFO'
|
end else
|
||||||
RetPos = SelPos
|
Error_Services('DisplayError')
|
||||||
|
|
||||||
oAParms = CardWindow:@RM:CardKey:@RM:DefaultRec:@RM:NewCardCtrl:@RM:RecalcCtrl:@RM:RecalcPos:@RM:RetCtrl:@RM:RetPos
|
|
||||||
|
|
||||||
obj_AppWindow('ViewNewCard',oAParms)
|
|
||||||
|
|
||||||
Set_Property('REACT_ITEM.TUBE_GRADE','FOCUS',1)
|
|
||||||
|
|
||||||
If Get_Status(errCode) then
|
|
||||||
ErrMsg(errCode)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
GoSub Refresh
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end ;* End of check for null SNReq
|
end ;* End of check for null SNReq
|
||||||
|
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
GoSub Refresh
|
GoSub Refresh
|
||||||
@ -1877,4 +1864,3 @@ ColorRemRiTable:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
@ -440,7 +440,7 @@ END
|
|||||||
IF CurrStatus NE '' THEN
|
IF CurrStatus NE '' THEN
|
||||||
SWAP @VM WITH '" "' IN CurrStatus
|
SWAP @VM WITH '" "' IN CurrStatus
|
||||||
IF SelectSent NE '' THEN SelectSent := ' AND'
|
IF SelectSent NE '' THEN SelectSent := ' AND'
|
||||||
SelectSent := ' WITH CURR_STATUS ':QUOTE(CurrStatus)
|
SelectSent := ' WITH CURR_STATUS_STATIC ':QUOTE(CurrStatus)
|
||||||
END
|
END
|
||||||
|
|
||||||
IF PartTypes NE '' THEN
|
IF PartTypes NE '' THEN
|
||||||
@ -471,7 +471,7 @@ SelectSent = 'SELECT REACT_ITEM ':SelectSent
|
|||||||
|
|
||||||
|
|
||||||
Def = ""
|
Def = ""
|
||||||
Def<MTEXT$> = "Selecting Reactor Events..."
|
Def<MTEXT$> = "Selecting Reactor Items..."
|
||||||
Def<MTYPE$> = "U"
|
Def<MTYPE$> = "U"
|
||||||
|
|
||||||
* display the processing message and do the processing
|
* display the processing message and do the processing
|
||||||
@ -502,6 +502,3 @@ End_Dialog(@WINDOW,RINos)
|
|||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -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 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
|
Declare subroutine Error_Services, Database_Services, React_Item_Services
|
||||||
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, obj_React_Item, obj_Calendar, Database_Services
|
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, obj_React_Item, obj_Calendar, Database_Services
|
||||||
|
|
||||||
|
|
||||||
@ -195,18 +195,16 @@ PostReactItems:
|
|||||||
ReactorLogRec<REACTOR_LOG_RI_POST_DTM$> = PostDTM
|
ReactorLogRec<REACTOR_LOG_RI_POST_DTM$> = PostDTM
|
||||||
|
|
||||||
otParms = FIELDSTORE(otParms,@RM,4,0,ReactorLogRec)
|
otParms = FIELDSTORE(otParms,@RM,4,0,ReactorLogRec)
|
||||||
//obj_Tables('WriteRec',otParms)
|
|
||||||
Database_Services('WriteDataRow', 'REACTOR_LOG', RLNo, ReactorLogRec, 1, 0, 1)
|
Database_Services('WriteDataRow', 'REACTOR_LOG', RLNo, ReactorLogRec, 1, 0, 1)
|
||||||
|
|
||||||
Update_Index('REACT_ITEM_HIST', 'INST_RL_ID', False$, True$) ;* Don't wait for indexer - flush pending indexes now
|
Update_Index('REACT_ITEM_HIST', 'INST_RL_ID', False$, True$) ;* Don't wait for indexer - flush pending indexes now
|
||||||
Update_Index('REACT_ITEM_HIST', 'REM_RL_ID', False$, True$)
|
Update_Index('REACT_ITEM_HIST', 'REM_RL_ID', False$, True$)
|
||||||
|
|
||||||
end else
|
end else
|
||||||
Error_Services('Add', ValidationFailureReason)
|
Error_Services('Add', ValidationFailureReason)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
@ -386,10 +384,3 @@ RemHistKeys:
|
|||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,11 +18,12 @@ COMPILE FUNCTION obj_React_Item_Hist(Method,Parms)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Send_Dyn, obj_Popup
|
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Send_Dyn, obj_Popup
|
||||||
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn
|
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, ErrMsg, Btree.Extract, React_Item_Services
|
||||||
DECLARE SUBROUTINE ErrMsg, Btree.Extract
|
|
||||||
|
|
||||||
|
$Insert LOGICAL
|
||||||
$INSERT REACT_ITEM_HIST_EQUATES
|
$INSERT REACT_ITEM_HIST_EQUATES
|
||||||
|
$INSERT RLIST_EQUATES
|
||||||
|
|
||||||
EQU CRLF$ TO \0D0A\
|
EQU CRLF$ TO \0D0A\
|
||||||
EQU TAB$ TO CHAR(9)
|
EQU TAB$ TO CHAR(9)
|
||||||
@ -62,26 +63,26 @@ RETURN Result
|
|||||||
Install:
|
Install:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
RIHKey = Parms[1,@RM]
|
RIHKey = Parms[1,@RM]
|
||||||
RL_Id = Parms[COL2()+1,@RM]
|
RL_Id = Parms[COL2()+1,@RM]
|
||||||
ReactWfrCnt = Parms[COL2()+1,@RM]
|
ReactWfrCnt = Parms[COL2()+1,@RM]
|
||||||
ReactHrs = Parms[COL2()+1,@RM]
|
ReactHrs = Parms[COL2()+1,@RM]
|
||||||
|
|
||||||
IF RIHKey = '' THEN ErrorMsg = 'Null Parameter "RIHKey" passed to routine. (':Method:')'
|
IF RIHKey = '' THEN ErrorMsg = 'Null Parameter "RIHKey" passed to routine. (':Method:')'
|
||||||
IF RL_Id = '' THEN ErrorMsg = 'Null Parameter "RL_Id" passed to routine. (':Method:')'
|
IF RL_Id = '' THEN ErrorMsg = 'Null Parameter "RL_Id" passed to routine. (':Method:')'
|
||||||
*IF ReactWfrCnt = '' THEN ErrorMsg = 'Null Parameter "ReactWfrCnt" passed to routine. (':Method:')' ;* Optional
|
|
||||||
*IF ReactHrs = '' THEN ErrorMsg = 'Null Parameter "ReactHrs" passed to routine. (':Method:')' ;* Optional
|
|
||||||
|
|
||||||
IF ErrorMsg NE '' THEN RETURN
|
IF ErrorMsg NE '' THEN RETURN
|
||||||
|
|
||||||
RIHRec = ''
|
RIHRec = ''
|
||||||
RIHRec<REACT_ITEM_HIST_INST_RL_ID$> = RL_ID
|
RIHRec<REACT_ITEM_HIST_INST_RL_ID$> = RL_ID
|
||||||
RIHRec<REACT_ITEM_HIST_INST_REACT_WFR_CNT$> = ReactWfrCnt
|
RIHRec<REACT_ITEM_HIST_INST_REACT_WFR_CNT$> = ReactWfrCnt
|
||||||
RIHRec<REACT_ITEM_HIST_INST_REACT_HRS$> = ReactHrs
|
RIHRec<REACT_ITEM_HIST_INST_REACT_HRS$> = ReactHrs
|
||||||
|
|
||||||
otParms = 'REACT_ITEM_HIST':@RM:RIHKey:@RM:@RM:RIHRec
|
otParms = 'REACT_ITEM_HIST':@RM:RIHKey:@RM:@RM:RIHRec
|
||||||
|
|
||||||
obj_Tables('WriteRec',otParms)
|
obj_Tables('WriteRec',otParms)
|
||||||
|
RINo = Field(RIHKey, '*', 2, 1)
|
||||||
|
React_Item_Services('UpdateReactItemStatus', RINo)
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
@ -90,38 +91,36 @@ RETURN
|
|||||||
Remove:
|
Remove:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
RIHKey = Parms[1,@RM]
|
RIHKey = Parms[1,@RM]
|
||||||
RemoveDTM = Parms[COL2()+1,@RM] ;* Internal format *
|
RemoveDTM = Parms[COL2()+1,@RM] ;* Internal format *
|
||||||
RL_Id = Parms[COL2()+1,@RM]
|
RL_Id = Parms[COL2()+1,@RM]
|
||||||
ReactWfrCnt = Parms[COL2()+1,@RM]
|
ReactWfrCnt = Parms[COL2()+1,@RM]
|
||||||
ReactHrs = Parms[COL2()+1,@RM]
|
ReactHrs = Parms[COL2()+1,@RM]
|
||||||
|
|
||||||
IF RIHKey = '' THEN ErrorMsg = 'Null Parameter "RIHKey" passed to routine. (':Method:')'
|
IF RIHKey = '' THEN ErrorMsg = 'Null Parameter "RIHKey" passed to routine. (':Method:')'
|
||||||
IF RemoveDTM = '' THEN ErrorMsg = 'Null Parameter "RemoveDTM" passed to routine. (':Method:')'
|
IF RemoveDTM = '' THEN ErrorMsg = 'Null Parameter "RemoveDTM" passed to routine. (':Method:')'
|
||||||
IF RL_Id = '' THEN ErrorMsg = 'Null Parameter "RL_Id" passed to routine. (':Method:')'
|
IF RL_Id = '' THEN ErrorMsg = 'Null Parameter "RL_Id" passed to routine. (':Method:')'
|
||||||
*IF ReactWfrCnt = '' THEN ErrorMsg = 'Null Parameter "ReactWfrCnt" passed to routine. (':Method:')' ;* Optional
|
|
||||||
*IF ReactHrs = '' THEN ErrorMsg = 'Null Parameter "ReactHrs" passed to routine. (':Method:')' ;* Optional
|
|
||||||
|
|
||||||
IF ErrorMsg NE '' THEN RETURN
|
IF ErrorMsg NE '' THEN RETURN
|
||||||
|
|
||||||
* Read and update record *
|
otParms = 'REACT_ITEM_HIST':@RM:RIHKey
|
||||||
|
|
||||||
otParms = 'REACT_ITEM_HIST':@RM:RIHKey
|
RIHRec = obj_Tables('ReadRec',otParms)
|
||||||
|
|
||||||
RIHRec = obj_Tables('ReadRec',otParms)
|
IF Get_Status(errCode) THEN
|
||||||
|
Set_Status(0)
|
||||||
|
RIHRec = ''
|
||||||
|
END
|
||||||
|
|
||||||
IF Get_Status(errCode) THEN
|
RIHRec<REACT_ITEM_HIST_REM_DTM$> = RemoveDTM
|
||||||
Set_Status(0)
|
RIHRec<REACT_ITEM_HIST_REM_RL_ID$> = RL_Id
|
||||||
RIHRec = ''
|
RIHRec<REACT_ITEM_HIST_REM_REACT_WFR_CNT$> = ReactWfrCnt
|
||||||
END
|
RIHRec<REACT_ITEM_HIST_REM_REACT_HRS$> = ReactHrs
|
||||||
|
|
||||||
RIHRec<REACT_ITEM_HIST_REM_DTM$> = RemoveDTM
|
otParms = FIELDSTORE(otParms,@RM,4,0,RIHRec)
|
||||||
RIHRec<REACT_ITEM_HIST_REM_RL_ID$> = RL_Id
|
obj_Tables('WriteRec',otParms)
|
||||||
RIHRec<REACT_ITEM_HIST_REM_REACT_WFR_CNT$> = ReactWfrCnt
|
RINo = Field(RIHKey, '*', 2, 1)
|
||||||
RIHRec<REACT_ITEM_HIST_REM_REACT_HRS$> = ReactHrs
|
React_Item_Services('UpdateReactItemStatus', RINo)
|
||||||
|
|
||||||
otParms = FIELDSTORE(otParms,@RM,4,0,RIHRec)
|
|
||||||
obj_Tables('WriteRec',otParms)
|
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
@ -130,24 +129,21 @@ RETURN
|
|||||||
ClearRemove:
|
ClearRemove:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
RIHKey = Parms[1,@RM]
|
RIHKey = Parms[1,@RM]
|
||||||
|
|
||||||
IF RIHKey = '' THEN RETURN
|
IF RIHKey = '' THEN RETURN
|
||||||
|
|
||||||
|
otParms = 'REACT_ITEM_HIST':@RM:RIHKey
|
||||||
|
|
||||||
* Read and update record *
|
RIHRec = obj_Tables('ReadRec',otParms)
|
||||||
|
|
||||||
otParms = 'REACT_ITEM_HIST':@RM:RIHKey
|
RIHRec<REACT_ITEM_HIST_REM_DTM$> = ''
|
||||||
|
RIHRec<REACT_ITEM_HIST_REM_RL_ID$> = ''
|
||||||
|
RIHRec<REACT_ITEM_HIST_REM_REACT_WFR_CNT$> = ''
|
||||||
|
RIHRec<REACT_ITEM_HIST_REM_REACT_HRS$> = ''
|
||||||
|
|
||||||
RIHRec = obj_Tables('ReadRec',otParms)
|
otParms = FIELDSTORE(otParms,@RM,4,0,RIHRec)
|
||||||
|
obj_Tables('WriteRec',otParms)
|
||||||
RIHRec<REACT_ITEM_HIST_REM_DTM$> = ''
|
|
||||||
RIHRec<REACT_ITEM_HIST_REM_RL_ID$> = ''
|
|
||||||
RIHRec<REACT_ITEM_HIST_REM_REACT_WFR_CNT$> = ''
|
|
||||||
RIHRec<REACT_ITEM_HIST_REM_REACT_HRS$> = ''
|
|
||||||
|
|
||||||
otParms = FIELDSTORE(otParms,@RM,4,0,RIHRec)
|
|
||||||
obj_Tables('WriteRec',otParms)
|
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
@ -156,49 +152,50 @@ RETURN
|
|||||||
GetHistory:
|
GetHistory:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
ReactNo = Parms[1,@RM]
|
ReactNo = Parms[1,@RM]
|
||||||
RINo = Parms[COL2()+1,@RM]
|
RINo = Parms[COL2()+1,@RM]
|
||||||
RIType = Parms[COL2()+1,@RM]
|
RIType = Parms[COL2()+1,@RM]
|
||||||
|
|
||||||
IF ReactNo = '' AND RINo = '' AND RIType = '' THEN RETURN
|
IF ReactNo = '' AND RINo = '' AND RIType = '' THEN RETURN
|
||||||
|
|
||||||
OPEN 'DICT.REACT_ITEM_HIST' TO DictVar ELSE
|
OPEN 'DICT.REACT_ITEM_HIST' TO DictVar ELSE
|
||||||
ErrorMsg = 'Unable to open DICT.REACT_ITEM_HIST for index lookup'
|
ErrorMsg = 'Unable to open DICT.REACT_ITEM_HIST for index lookup'
|
||||||
RETURN
|
RETURN
|
||||||
END
|
END
|
||||||
|
|
||||||
Search = ''
|
Search = ''
|
||||||
|
|
||||||
IF ReactNo NE '' THEN Search := 'REACT_NO':@VM:ReactNo:@FM
|
IF ReactNo NE '' THEN Search := 'REACT_NO':@VM:ReactNo:@FM
|
||||||
IF RINo NE '' THEN Search := 'RI_NO':@VM:RINo:@FM
|
IF RINo NE '' THEN Search := 'RI_NO':@VM:RINo:@FM
|
||||||
IF RIType NE '' THEN Search := 'RI_TYPE':@VM:RIType:@FM
|
IF RIType NE '' THEN Search := 'RI_TYPE':@VM:RIType:@FM
|
||||||
|
|
||||||
Option = ''
|
Option = ''
|
||||||
Flag = ''
|
Flag = ''
|
||||||
|
|
||||||
Btree.Extract(Search, 'REACT_ITEM_HIST', DictVar, RIKeys, Option, Flag) ;* Get unsorted keys based on Search parameters
|
Btree.Extract(Search, 'REACT_ITEM_HIST', DictVar, RIKeys, Option, Flag) ;* Get unsorted keys based on Search parameters
|
||||||
|
|
||||||
* Put sort data in first column (Install DTM)
|
// Put sort data in first column (Install DTM)
|
||||||
|
|
||||||
WorkList = ''
|
WorkList = ''
|
||||||
riCnt = COUNT(RIKeys,@VM) + (RIKeys NE '')
|
riCnt = COUNT(RIKeys,@VM) + (RIKeys NE '')
|
||||||
FOR I = 1 TO riCnt
|
FOR I = 1 TO riCnt
|
||||||
RIKey = RIKeys<1,I>
|
RIKey = RIKeys<1,I>
|
||||||
WorkList<I> = FIELD(RIKey,'*',3):@VM:RIKey
|
WorkList<I> = FIELD(RIKey,'*',3):@VM:RIKey
|
||||||
NEXT I
|
NEXT I
|
||||||
|
|
||||||
WorkList := @RM
|
WorkList := @RM
|
||||||
|
|
||||||
CONVERT @FM:@VM TO @RM:@FM IN WorkList ;* push delimiters higher for V119
|
CONVERT @FM:@VM TO @RM:@FM IN WorkList ;* push delimiters higher for V119
|
||||||
|
|
||||||
CALL V119('S','','D','L',WorkList,'') ;* Descending Left justified sort
|
CALL V119('S','','D','L',WorkList,'') ;* Descending Left justified sort
|
||||||
|
|
||||||
CONVERT @FM:@RM TO @VM:@FM IN WorkList ;* pull delimiters lower
|
CONVERT @FM:@RM TO @VM:@FM IN WorkList ;* pull delimiters lower
|
||||||
|
|
||||||
WorkList[-1,1] = '' ;* Trim trailing delimiter
|
WorkList[-1,1] = '' ;* Trim trailing delimiter
|
||||||
|
|
||||||
FOR I = 1 TO riCnt
|
FOR I = 1 TO riCnt
|
||||||
Result<1,I> = WorkList<I,2> ;* Strip Sort column(s)
|
Result<1,I> = WorkList<I,2> ;* Strip Sort column(s)
|
||||||
NEXT I
|
NEXT I
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
@ -62,24 +62,80 @@ API reactItems.HEAD
|
|||||||
API reactItems.GET
|
API reactItems.GET
|
||||||
|
|
||||||
QueryFields = HTTP_Services('GetHTTPGetString')
|
QueryFields = HTTP_Services('GetHTTPGetString')
|
||||||
If Index(QueryFields, 'riType', 1) then
|
If IndexC(QueryFields, 'includeNullRetireDt', 1) then
|
||||||
RIType = HTTP_Services('GetQueryField', 'riType')
|
IncludeNullRetireDt = HTTP_Services('GetQueryField', 'includeNullRetireDt')
|
||||||
|
Begin Case
|
||||||
|
Case ( (IncludeNullRetireDt EQ 1) or (IncludeNullRetireDt EQ 0) )
|
||||||
|
Null
|
||||||
|
Case ( (IncludeNullRetireDt _EQC 'true') or (IncludeNullRetireDt _EQC 'yes') )
|
||||||
|
IncludeNullRetireDt = True$
|
||||||
|
Case ( (IncludeNullRetireDt _EQC 'false') or (IncludeNullRetireDt _EQC 'no') )
|
||||||
|
IncludeNullRetireDt = False$
|
||||||
|
Case Otherwise$
|
||||||
|
Error_Services('Add', 'Error in ':CurrentAPI:' API. Invalid value "':IncludeNullRetireDt:'" passed in for includeNullRetireDt.')
|
||||||
|
End Case
|
||||||
end else
|
end else
|
||||||
RIType = ''
|
IncludeNullRetireDt = ''
|
||||||
|
end
|
||||||
|
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
If IndexC(QueryFields, 'showAllDetails', 1) then
|
||||||
|
ShowAllDetails = HTTP_Services('GetQueryField', 'showAllDetails')
|
||||||
|
Begin Case
|
||||||
|
Case ( (ShowAllDetails EQ 1) or (ShowAllDetails EQ 0) )
|
||||||
|
Null
|
||||||
|
Case ( (ShowAllDetails _EQC 'true') or (ShowAllDetails _EQC 'yes') )
|
||||||
|
ShowAllDetails = True$
|
||||||
|
Case ( (ShowAllDetails _EQC 'false') or (ShowAllDetails _EQC 'no') )
|
||||||
|
ShowAllDetails = False$
|
||||||
|
Case Otherwise$
|
||||||
|
Error_Services('Add', 'Error in ':CurrentAPI:' API. Invalid value "':ShowAllDetails:'" passed in for showAllDetails.')
|
||||||
|
End Case
|
||||||
|
end else
|
||||||
|
ShowAllDetails = False$
|
||||||
|
end
|
||||||
|
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
If IndexC(QueryFields, 'currStatus', 1) then
|
||||||
|
CurrStatus = HTTP_Services('GetQueryField', 'currStatus')
|
||||||
|
end else
|
||||||
|
CurrStatus = ''
|
||||||
|
end
|
||||||
|
If IndexC(QueryFields, 'riType', 1) then
|
||||||
|
RIType = HTTP_Services('GetQueryField', 'riType')
|
||||||
|
end else
|
||||||
|
RIType = ''
|
||||||
|
end
|
||||||
|
If IndexC(QueryFields, 'entryDtStart', 1) then
|
||||||
|
EntryDtStart = HTTP_Services('GetQueryField', 'entryDtStart')
|
||||||
|
end else
|
||||||
|
EntryDtStart = ''
|
||||||
|
end
|
||||||
|
If IndexC(QueryFields, 'entryDtEnd', 1) then
|
||||||
|
EntryDtEnd = HTTP_Services('GetQueryField', 'entryDtEnd')
|
||||||
|
end else
|
||||||
|
EntryDtEnd = ''
|
||||||
|
end
|
||||||
|
If IndexC(QueryFields, 'retireDtStart', 1) then
|
||||||
|
RetireDtStart = HTTP_Services('GetQueryField', 'retireDtStart')
|
||||||
|
end else
|
||||||
|
RetireDtStart = ''
|
||||||
|
end
|
||||||
|
If IndexC(QueryFields, 'retireDtEnd', 1) then
|
||||||
|
RetireDtEnd = HTTP_Services('GetQueryField', 'retireDtEnd')
|
||||||
|
end else
|
||||||
|
RetireDtEnd = ''
|
||||||
|
end
|
||||||
|
|
||||||
|
StatusCode = 200
|
||||||
|
GoSub CreateHALCollection
|
||||||
|
end else
|
||||||
|
HTTP_Services('SetResponseStatus', 400, Error_Services("GetMessage"))
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
HTTP_Services('SetResponseStatus', 400, Error_Services("GetMessage"))
|
||||||
end
|
end
|
||||||
If Index(QueryFields, 'currStatus', 1 ) then
|
|
||||||
CurrStatus = Http_Services('GetQueryField', 'currStatus')
|
|
||||||
end else
|
|
||||||
CurrStatus = ''
|
|
||||||
end
|
|
||||||
If Index(QueryFields, 'showAllDetails', 1 ) then
|
|
||||||
ShowAllDetails = Http_Services('GetQueryField', 'showAllDetails')
|
|
||||||
end else
|
|
||||||
ShowAllDetails = False$
|
|
||||||
end
|
|
||||||
StatusCode = 200
|
|
||||||
|
|
||||||
GoSub CreateHALCollection
|
|
||||||
end api
|
end api
|
||||||
|
|
||||||
|
|
||||||
@ -254,11 +310,7 @@ CreateHALCollection:
|
|||||||
|
|
||||||
JSONCollection = ''
|
JSONCollection = ''
|
||||||
Abort = False$
|
Abort = False$
|
||||||
If RIType NE '' OR CurrStatus NE '' then
|
ReactItems = React_Item_Services('GetReactItems', RIType, CurrStatus, EntryDtStart, EntryDtEnd, RetireDtStart, RetireDtEnd, IncludeNullRetireDt)
|
||||||
ReactItems = React_Item_Services('GetReactItems', RIType, CurrStatus)
|
|
||||||
end else
|
|
||||||
ReactItems = React_Item_Services('GetAllReactItemKeys')
|
|
||||||
end
|
|
||||||
|
|
||||||
If ReactItems NE '' then
|
If ReactItems NE '' then
|
||||||
If SRP_JSON(hJSONCollection, 'New', 'Object') then
|
If SRP_JSON(hJSONCollection, 'New', 'Object') then
|
||||||
@ -304,3 +356,4 @@ CreateHALCollection:
|
|||||||
end
|
end
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,254 +1,235 @@
|
|||||||
Function REACT_ITEM_Actions(Action, CalcColName, FSList, Handle, Name, FMC, Record, Status, OrigRecord, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)
|
Function REACT_ITEM_ACTIONS(Action, CalcColName, FSList, Handle, Name, FMC, Record, Status, OrigRecord, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)
|
||||||
/***********************************************************************************************************************
|
/***********************************************************************************************************************
|
||||||
|
|
||||||
This program is proprietary and is not to be used by or disclosed to others, nor is it to be copied without written
|
This program is proprietary and is not to be used by or disclosed to others, nor is it to be copied without written
|
||||||
permission from Infineon.
|
permission from Infineon.
|
||||||
|
|
||||||
Name : RDS_Actions
|
Name : React_Item_Actions
|
||||||
|
|
||||||
Description : Handles calculated columns and MFS calls for the current table.
|
Description : Handles calculated columns and MFS calls for the current table.
|
||||||
|
|
||||||
Notes : This function uses @ID, @RECORD, and @DICT to make sure {ColumnName} references work correctly.
|
Notes : This function uses @ID, @RECORD, and @DICT to make sure {ColumnName} references work correctly.
|
||||||
If called from outside of a calculated column these will need to be set and restored.
|
If called from outside of a calculated column these will need to be set and restored.
|
||||||
|
|
||||||
Parameters :
|
Parameters :
|
||||||
Action [in] -- Name of the action to be taken
|
Action [in] -- Name of the action to be taken
|
||||||
CalcColName [in] -- Name of the calculated column that needs to be processed. Normally this should only be
|
CalcColName [in] -- Name of the calculated column that needs to be processed. Normally this should only be
|
||||||
populated when the CalcField action is being used.
|
populated when the CalcField action is being used.
|
||||||
FSList [in] -- The list of MFSs and the BFS name for the current file or volume. This is an @SVM
|
FSList [in] -- The list of MFSs and the BFS name for the current file or volume. This is an @SVM
|
||||||
delimited array, with the current MFS name as the first value in the array, and the BFS
|
delimited array, with the current MFS name as the first value in the array, and the BFS
|
||||||
name as the last value. Normally set by a calling MFS.
|
name as the last value. Normally set by a calling MFS.
|
||||||
Handle [in] -- The file handle of the file or media map being accessed. Note, this does contain the
|
Handle [in] -- The file handle of the file or media map being accessed. Note, this does contain the
|
||||||
entire handle structure that the Basic+ Open statement would provide. Normally set by a
|
entire handle structure that the Basic+ Open statement would provide. Normally set by a
|
||||||
calling MFS.
|
calling MFS.
|
||||||
Name [in] -- The name (key) of the record or file being accessed. Normally set by a calling MFS.
|
Name [in] -- The name (key) of the record or file being accessed. Normally set by a calling MFS.
|
||||||
FMC [in] -- Various functions. Normally set by a calling MFS.
|
FMC [in] -- Various functions. Normally set by a calling MFS.
|
||||||
Record [in] -- The entire record (for record-oriented functions) or a newly-created handle (for
|
Record [in] -- The entire record (for record-oriented functions) or a newly-created handle (for
|
||||||
"get handle" functions). Normally set by a calling MFS.
|
"get handle" functions). Normally set by a calling MFS.
|
||||||
Status [in/out] -- Indicator of the success or failure of an action. Normally set by the calling MFS but
|
Status [in/out] -- Indicator of the success or failure of an action. Normally set by the calling MFS but
|
||||||
for some actions can be set by the action handler to indicate failure.
|
for some actions can be set by the action handler to indicate failure.
|
||||||
OrigRecord [in] -- Original content of the record being processed by the current action. This is
|
OrigRecord [in] -- Original content of the record being processed by the current action. This is
|
||||||
automatically being assigned by the WRITE_RECORD and DELETE_RECORD actions within
|
automatically being assigned by the WRITE_RECORD and DELETE_RECORD actions within
|
||||||
BASE_MFS.
|
BASE_MFS.
|
||||||
Param1-10 [in/out] -- Additional request parameter holders
|
Param1-10 [in/out] -- Additional request parameter holders
|
||||||
ActionFlow [out] -- Used to control the action chain (see the ACTION_SETUP insert for more information.)
|
ActionFlow [out] -- Used to control the action chain (see the ACTION_SETUP insert for more information.)
|
||||||
Can also be used to return a special value, such as the results of the CalcField
|
Can also be used to return a special value, such as the results of the CalcField
|
||||||
method.
|
method.
|
||||||
|
|
||||||
History : (Date, Initials, Notes)
|
History : (Date, Initials, Notes)
|
||||||
04/10/18 dmb Original programmer.
|
05/12/25 djs Updated WRITE_PRE action to update the CURR_STATUS_STATIC field if the retire date changes.
|
||||||
10/04/18 djs Added a trigger within the WRITE_RECORD event, which fires when the reactor number has
|
|
||||||
changed. When this occurs the related RDS_LAYER records for this RDS record are populated
|
***********************************************************************************************************************/
|
||||||
with the most recent associated TOOL_PARMS record. (related by PSN and Reactor)
|
|
||||||
|
#pragma precomp SRP_PreCompiler
|
||||||
***********************************************************************************************************************/
|
|
||||||
|
$Insert ACTION_SETUP
|
||||||
#pragma precomp SRP_PreCompiler
|
$Insert APP_INSERTS
|
||||||
|
$Insert FILE.SYSTEM.EQUATES
|
||||||
$Insert FILE.SYSTEM.EQUATES
|
$Insert REACT_ITEM_EQUATES
|
||||||
$Insert ACTION_SETUP
|
|
||||||
$Insert RDS_EQUATES
|
Declare function obj_React_Item
|
||||||
$Insert CLEAN_INSP_EQUATES
|
Declare subroutine Error_Services
|
||||||
$Insert COMPANY_EQUATES
|
|
||||||
$Insert RDS_LAYER_EQUATES
|
If KeyID then GoSub Initialize_System_Variables
|
||||||
$Insert TOOL_PARMS_EQUATES
|
|
||||||
$Insert RLIST_EQUATES
|
Begin Case
|
||||||
$Insert APP_INSERTS
|
|
||||||
$Insert QA_MET_EQUATES
|
Case Action _EQC 'CalculateColumn' ; GoSub CalculateColumn
|
||||||
$Insert PRS_STAGE_EQUATES
|
Case Action _EQC 'READ_RECORD_PRE' ; GoSub READ_RECORD_PRE
|
||||||
$Insert WO_MAT_EQUATES
|
Case Action _EQC 'READ_RECORD' ; GoSub READ_RECORD
|
||||||
$Insert WO_MAT_QA_EQUATES
|
Case Action _EQC 'READONLY_RECORD_PRE' ; GoSub READONLY_RECORD_PRE
|
||||||
|
Case Action _EQC 'READONLY_RECORD' ; GoSub READONLY_RECORD
|
||||||
Equ COMMA$ to ','
|
Case Action _EQC 'WRITE_RECORD_PRE' ; GoSub WRITE_RECORD_PRE
|
||||||
|
Case Action _EQC 'WRITE_RECORD' ; GoSub WRITE_RECORD
|
||||||
Declare function Error_Services, Database_Services, obj_RDS_Test, Logging_Services, Environment_Services, SRP_Math
|
Case Action _EQC 'DELETE_RECORD_PRE' ; GoSub DELETE_RECORD_PRE
|
||||||
Declare function Tool_Parms_Services, Signature_Services, obj_WO_Mat_QA, Datetime, Override_Services, obj_WO_Mat
|
Case Action _EQC 'DELETE_RECORD' ; GoSub DELETE_RECORD
|
||||||
Declare subroutine Error_Services, Database_Services, Logging_Services, Set_Status, Schedule_Services_Dev
|
Case Otherwise$ ; Status = 'Invalid Action'
|
||||||
Declare subroutine Work_Order_Services, Material_Services, Set_FSError
|
|
||||||
|
End Case
|
||||||
|
|
||||||
|
If KeyID then GoSub Restore_System_Variables
|
||||||
|
|
||||||
|
If Assigned(ActionFlow) else ActionFlow = ACTION_CONTINUE$
|
||||||
If KeyID then GoSub Initialize_System_Variables
|
|
||||||
|
Return ActionFlow
|
||||||
Begin Case
|
|
||||||
|
|
||||||
Case Action _EQC 'CalculateColumn' ; GoSub CalculateColumn
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
Case Action _EQC 'READ_RECORD_PRE' ; GoSub READ_RECORD_PRE
|
// Calculated Columns
|
||||||
Case Action _EQC 'READ_RECORD' ; GoSub READ_RECORD
|
//
|
||||||
Case Action _EQC 'READONLY_RECORD_PRE' ; GoSub READONLY_RECORD_PRE
|
// The typical structure of a calculated column will look like this:
|
||||||
Case Action _EQC 'READONLY_RECORD' ; GoSub READONLY_RECORD
|
//
|
||||||
Case Action _EQC 'WRITE_RECORD_PRE' ; GoSub WRITE_RECORD_PRE
|
// Declare function Database_Services
|
||||||
Case Action _EQC 'WRITE_RECORD' ; GoSub WRITE_RECORD
|
//
|
||||||
Case Action _EQC 'DELETE_RECORD_PRE' ; GoSub DELETE_RECORD_PRE
|
// @ANS = Database_Services('CalculateColumn')
|
||||||
Case Action _EQC 'DELETE_RECORD' ; GoSub DELETE_RECORD
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
Case Otherwise$ ; Status = 'Invalid Action'
|
|
||||||
|
CalculateColumn:
|
||||||
End Case
|
|
||||||
|
// Make sure the ActionFlow return variable is cleared in case nothing is calculated.
|
||||||
If KeyID then GoSub Restore_System_Variables
|
ActionFlow = ''
|
||||||
|
|
||||||
If Assigned(ActionFlow) else ActionFlow = ACTION_CONTINUE$
|
return
|
||||||
|
|
||||||
Return ActionFlow
|
// ----- MFS calls -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
READ_RECORD_PRE:
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
// In order to stop a record from being read in this action these lines of code must be used:
|
||||||
// Calculated Columns
|
//
|
||||||
//
|
// OrigFileError = 100 : @FM : KeyID
|
||||||
// The typical structure of a calculated column will look like this:
|
// Status = 0
|
||||||
//
|
// Record = ''
|
||||||
// Declare function Database_Services
|
// ActionFlow = ACTION_STOP$
|
||||||
//
|
return
|
||||||
// @ANS = Database_Services('CalculateColumn')
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
READ_RECORD:
|
||||||
CalculateColumn:
|
|
||||||
|
// In order to stop a record from being read in this action these lines of code must be used:
|
||||||
// Make sure the ActionFlow return variable is cleared in case nothing is calculated.
|
//
|
||||||
ActionFlow = ''
|
// OrigFileError = 100 : @FM : KeyID
|
||||||
|
// Status = 0
|
||||||
|
// Record = ''
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
READONLY_RECORD_PRE:
|
||||||
// ----- MFS calls -----------------------------------------------------------------------------------------------------
|
// In order to stop a record from being read in this action these lines of code must be used:
|
||||||
|
//
|
||||||
READ_RECORD_PRE:
|
// OrigFileError = 100 : @FM : KeyID
|
||||||
// In order to stop a record from being read in this action these lines of code must be used:
|
// Status = 0
|
||||||
//
|
// Record = ''
|
||||||
// OrigFileError = 100 : @FM : KeyID
|
// ActionFlow = ACTION_STOP$
|
||||||
// Status = 0
|
return
|
||||||
// Record = ''
|
|
||||||
// ActionFlow = ACTION_STOP$
|
|
||||||
|
READONLY_RECORD:
|
||||||
|
// In order to stop a record from being read in this action these lines of code must be used:
|
||||||
return
|
//
|
||||||
|
// OrigFileError = 100 : @FM : KeyID
|
||||||
READ_RECORD:
|
// Status = 0
|
||||||
|
// Record = ''
|
||||||
// In order to stop a record from being read in this action these lines of code must be used:
|
return
|
||||||
//
|
|
||||||
// OrigFileError = 100 : @FM : KeyID
|
|
||||||
// Status = 0
|
WRITE_RECORD_PRE:
|
||||||
// Record = ''
|
|
||||||
|
ErrMsg = ''
|
||||||
return
|
|
||||||
|
// Req'd parameter checks
|
||||||
READONLY_RECORD_PRE:
|
ItemType = {RI_TYPE}
|
||||||
// In order to stop a record from being read in this action these lines of code must be used:
|
|
||||||
//
|
* If ItemType EQ '' then ErrMsg := 'Item Type was not specified. '
|
||||||
// OrigFileError = 100 : @FM : KeyID
|
|
||||||
// Status = 0
|
If ErrMsg NE '' then
|
||||||
// Record = ''
|
Error_Services('Add', 'Error Saving Reactor Item: ' : ErrMsg)
|
||||||
// ActionFlow = ACTION_STOP$
|
OrigFileError = 104:': Error Saving Reactor Item: ' : ErrMsg
|
||||||
return
|
Status = 0
|
||||||
|
Record = ''
|
||||||
READONLY_RECORD:
|
ActionFlow = ACTION_STOP$
|
||||||
// In order to stop a record from being read in this action these lines of code must be used:
|
end else
|
||||||
//
|
OrigRetireDt = OrigRecord<REACT_ITEM_RETIRE_DT$>
|
||||||
// OrigFileError = 100 : @FM : KeyID
|
NewRetireDt = Record<REACT_ITEM_RETIRE_DT$>
|
||||||
// Status = 0
|
OrigNotes = OrigRecord<REACT_ITEM_NOTES$>
|
||||||
// Record = ''
|
NewNotes = Record<REACT_ITEM_NOTES$>
|
||||||
return
|
If ( (OrigRetireDt NE NewRetireDt) or (OrigNotes NE NewNotes) ) then
|
||||||
|
CurrStatus = obj_React_Item('CurrStatus', Name:@RM:Record)
|
||||||
WRITE_RECORD_PRE:
|
Record<REACT_ITEM_CURR_STATUS_STATIC$> = CurrStatus
|
||||||
|
SaveRecord = Record
|
||||||
ErrMsg = ''
|
end
|
||||||
|
end
|
||||||
//Req'd parameter checks
|
|
||||||
ItemType = {RI_TYPE}
|
return
|
||||||
|
|
||||||
If ItemType EQ '' then
|
WRITE_RECORD:
|
||||||
ErrMsg := 'Item Type was not specified. '
|
return
|
||||||
end
|
|
||||||
|
DELETE_RECORD_PRE:
|
||||||
If ErrMsg NE '' then
|
return
|
||||||
Error_Services('Add', 'Error Saving Reactor Item: ' : ErrMsg)
|
|
||||||
OrigFileError = 104:': Error Saving Reactor Item: ' : ErrMsg
|
DELETE_RECORD:
|
||||||
Status = 0
|
return
|
||||||
Record = ''
|
|
||||||
ActionFlow = ACTION_STOP$
|
|
||||||
end
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Internal GoSubs
|
||||||
return
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
WRITE_RECORD:
|
ClearCursors:
|
||||||
|
|
||||||
|
For counter = 0 to 8
|
||||||
|
ClearSelect counter
|
||||||
return
|
Next counter
|
||||||
|
|
||||||
DELETE_RECORD_PRE:
|
return
|
||||||
|
|
||||||
|
|
||||||
return
|
Initialize_System_Variables:
|
||||||
|
|
||||||
DELETE_RECORD:
|
// Save these for restoration later
|
||||||
return
|
SaveDict = @DICT
|
||||||
|
SaveID = @ID
|
||||||
|
SaveRecord = @RECORD
|
||||||
|
OrigFileError = @FILE.ERROR
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Internal GoSubs
|
// Now make sure @DICT, ID, and @RECORD are populated
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
CurrentDictName = ''
|
||||||
|
If @DICT then
|
||||||
ClearCursors:
|
DictHandle = @DICT<1, 2>
|
||||||
For counter = 0 to 8
|
Locate DictHandle in @TABLES(5) Using @FM Setting fPos then
|
||||||
ClearSelect counter
|
CurrentDictName = Field(@TABLES(0), @FM, fPos, 1)
|
||||||
Next counter
|
end
|
||||||
return
|
end
|
||||||
|
|
||||||
|
If CurrentDictName NE DictName then
|
||||||
Initialize_System_Variables:
|
Open DictName to @DICT else Status = 'Unable to initialize @DICT'
|
||||||
|
end
|
||||||
// Save these for restoration later
|
|
||||||
SaveDict = @DICT
|
@ID = KeyID
|
||||||
SaveID = @ID
|
If Record else
|
||||||
SaveRecord = @RECORD
|
// Record might not have been passed in. Read the record from the database table just to make sure.
|
||||||
OrigFileError = @FILE.ERROR
|
@FILE.ERROR = ''
|
||||||
|
Open TableName to hTable then
|
||||||
// Now make sure @DICT, ID, and @RECORD are populated
|
FullFSList = hTable[1, 'F' : @VM]
|
||||||
CurrentDictName = ''
|
BFS = FullFSList[-1, 'B' : @SVM]
|
||||||
If @DICT then
|
LastHandle = hTable[-1, 'B' : \0D\]
|
||||||
DictHandle = @DICT<1, 2>
|
FileHandle = \0D\ : LastHandle[1, @VM]
|
||||||
Locate DictHandle in @TABLES(5) Using @FM Setting fPos then
|
|
||||||
CurrentDictName = Field(@TABLES(0), @FM, fPos, 1)
|
Call @BFS(READO.RECORD, BFS, FileHandle, KeyID, FMC, Record, ReadOStatus)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@RECORD = Record
|
||||||
If CurrentDictName NE DictName then
|
|
||||||
Open DictName to @DICT else Status = 'Unable to initialize @DICT'
|
return
|
||||||
end
|
|
||||||
|
|
||||||
@ID = KeyID
|
Restore_System_Variables:
|
||||||
If Record else
|
|
||||||
// Record might not have been passed in. Read the record from the database table just to make sure.
|
Transfer SaveDict to @DICT
|
||||||
@FILE.ERROR = ''
|
Transfer SaveID to @ID
|
||||||
Open TableName to hTable then
|
Transfer SaveRecord to @RECORD
|
||||||
FullFSList = hTable[1, 'F' : @VM]
|
@FILE.ERROR = OrigFileError
|
||||||
BFS = FullFSList[-1, 'B' : @SVM]
|
|
||||||
LastHandle = hTable[-1, 'B' : \0D\]
|
return
|
||||||
FileHandle = \0D\ : LastHandle[1, @VM]
|
|
||||||
|
|
||||||
Call @BFS(READO.RECORD, BFS, FileHandle, KeyID, FMC, Record, ReadOStatus)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@RECORD = Record
|
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
Restore_System_Variables:
|
|
||||||
|
|
||||||
Transfer SaveDict to @DICT
|
|
||||||
Transfer SaveID to @ID
|
|
||||||
Transfer SaveRecord to @RECORD
|
|
||||||
@FILE.ERROR = OrigFileError
|
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,62 +20,110 @@ Compile function React_Item_Services(@Service, @Params)
|
|||||||
08/02/22 djs Original programmer.
|
08/02/22 djs Original programmer.
|
||||||
|
|
||||||
***********************************************************************************************************************/
|
***********************************************************************************************************************/
|
||||||
|
|
||||||
#pragma precomp SRP_PreCompiler
|
#pragma precomp SRP_PreCompiler
|
||||||
|
|
||||||
$Insert LOGICAL
|
|
||||||
$Insert APP_INSERTS
|
$Insert APP_INSERTS
|
||||||
|
$Insert SERVICE_SETUP
|
||||||
$Insert RLIST_EQUATES
|
$Insert RLIST_EQUATES
|
||||||
$Insert REACT_ITEM_EQUATES
|
$Insert REACT_ITEM_EQUATES
|
||||||
|
|
||||||
Declare function Database_Services, Error_Services, SRP_JSON, NextKey
|
Declare function Database_Services, Error_Services, SRP_JSON, NextKey, SRP_Date, obj_React_Item, SRP_Array
|
||||||
Declare subroutine SRP_JSON, Error_Services, Btree.Extract, Database_Services
|
Declare subroutine SRP_JSON, Error_Services, Btree.Extract, Database_Services, Update_Index
|
||||||
GoToService
|
|
||||||
|
|
||||||
Return Response or ""
|
GoToService else
|
||||||
|
Error_Services('Set', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
|
||||||
|
end
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
Return Response else ''
|
||||||
// SERVICES
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Service GetAllReactItemKeys()
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
AllKeys = ''
|
// Service Parameter Options
|
||||||
RList('SELECT REACT_ITEM', TARGET_ACTIVELIST$, '', '', '')
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
Done = False$
|
Options BOOLEAN = True$, False$
|
||||||
Reactors = ''
|
|
||||||
Loop
|
|
||||||
Readnext keyId else Done = True$
|
|
||||||
Until Done
|
|
||||||
AllKeys<1,-1> = keyId
|
|
||||||
Repeat
|
|
||||||
Response = AllKeys
|
|
||||||
end service
|
|
||||||
|
|
||||||
Service GetReactItems(RIType, CurrStatus)
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Services
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
Service GetReactItems(RIType, CurrStatus, EntryDtStart, EntryDtEnd, RetireDtStart, RetireDtEnd, IncludeNullRetireDt=BOOLEAN)
|
||||||
|
|
||||||
ErrorMsg = ''
|
ErrorMsg = ''
|
||||||
Response = ''
|
Response = ''
|
||||||
Swap ',' with @VM in RIType
|
If ( (RIType NE '') or (CurrStatus NE '') or (EntryDtStart NE '') or (EntryDtEnd NE '') or (RetireDtStart NE '') or (RetireDtEnd NE '') or (IncludeNullRetireDt NE '') ) then
|
||||||
Swap ',' with @VM in CurrStatus
|
If EntryDtStart NE '' and Not(Num(EntryDtStart)) then EntryDtStart = IConv(EntryDtStart, 'D')
|
||||||
|
If EntryDtEnd NE '' and Not(Num(EntryDtEnd)) then EntryDtEnd = IConv(EntryDtEnd, 'D')
|
||||||
Open 'DICT.REACT_ITEM' to DictReactItem then
|
If RetireDtStart NE '' and Not(Num(RetireDtStart)) then RetireDtStart = IConv(RetireDtStart, 'D')
|
||||||
|
If RetireDtEnd NE '' and Not(Num(RetireDtEnd)) then RetireDtEnd = IConv(RetireDtEnd, 'D')
|
||||||
SearchString = ''
|
Open 'DICT.REACT_ITEM' to DictReactItem then
|
||||||
If RIType NE '' then SearchString := 'RI_TYPE':@VM:RIType:@FM
|
SearchString = ''
|
||||||
If CurrStatus NE '' then SearchString := 'CURR_STATUS':@VM:CurrStatus:@FM
|
If RIType NE '' then
|
||||||
RIKeys = ''
|
Swap ',' with @VM in RIType
|
||||||
Btree.Extract(SearchString, 'REACT_ITEM', DictReactItem, RIKeys, '', '')
|
SearchString := 'RI_TYPE':@VM:RIType:@FM
|
||||||
ErrCode = ''
|
end
|
||||||
IF Get_Status(ErrCode) then
|
Begin Case
|
||||||
ErrorMsg = 'Error in ':Service:' service. Error calling Btree.Extract. Error code ':ErrCode:'.'
|
Case ( (EntryDtStart NE '') and (EntryDtEnd NE '') )
|
||||||
|
EntryDtStart = OConv(EntryDtStart - 1, 'D4/')
|
||||||
|
EntryDtEnd = OConv(EntryDtEnd + 1, 'D4/')
|
||||||
|
SearchString := 'ENTER_DT':@VM:EntryDtStart:'~':EntryDtEnd:@FM
|
||||||
|
Case (EntryDtStart NE '')
|
||||||
|
EntryDtStart = OConv(EntryDtStart, 'D4/')
|
||||||
|
SearchString := 'ENTER_DT':@VM:'>=':EntryDtStart:@FM
|
||||||
|
Case (EntryDtEnd NE '')
|
||||||
|
SearchString := 'ENTER_DT':@VM:'<=':EntryDtEnd:@FM
|
||||||
|
Case Otherwise$
|
||||||
|
Null
|
||||||
|
End Case
|
||||||
|
Begin Case
|
||||||
|
Case ( (RetireDtStart NE '') and (RetireDtEnd NE '') )
|
||||||
|
RetireDtStart = OConv(RetireDtStart - 1, 'D4/')
|
||||||
|
RetireDtEnd = OConv(RetireDtEnd + 1, 'D4/')
|
||||||
|
SearchString := 'RETIRE_DT':@VM:RetireDtStart:'~':RetireDtEnd
|
||||||
|
If IncludeNullRetireDt then SearchString := @VM:''
|
||||||
|
SearchString := @FM
|
||||||
|
Case (RetireDtStart NE '')
|
||||||
|
RetireDtStart = OConv(RetireDtStart, 'D4/')
|
||||||
|
SearchString := 'RETIRE_DT':@VM:'>=':RetireDtStart
|
||||||
|
If IncludeNullRetireDt then SearchString := @VM:''
|
||||||
|
SearchString := @FM
|
||||||
|
Case (RetireDtEnd NE '')
|
||||||
|
SearchString := 'RETIRE_DT':@VM:'<=':RetireDtEnd
|
||||||
|
If IncludeNullRetireDt then SearchString := @VM:''
|
||||||
|
SearchString := @FM
|
||||||
|
Case IncludeNullRetireDt
|
||||||
|
SearchString := 'RETIRE_DT':@VM:'':@FM
|
||||||
|
Case Otherwise$
|
||||||
|
Null
|
||||||
|
End Case
|
||||||
|
If CurrStatus NE '' then
|
||||||
|
Swap ',' with @VM in CurrStatus
|
||||||
|
SearchString := 'CURR_STATUS_STATIC':@VM:CurrStatus:@FM
|
||||||
|
end
|
||||||
|
Flag = ''
|
||||||
|
RIKeys = ''
|
||||||
|
Btree.Extract(SearchString, 'REACT_ITEM', DictReactItem, RIKeys, 'E', Flag)
|
||||||
|
If Flag EQ 0 then
|
||||||
|
EnterDtms = Xlate('REACT_ITEM', RIKeys, 'ENTER_DTM', 'X')
|
||||||
|
Array = RIKeys:@FM:EnterDtms
|
||||||
|
Array = SRP_Array('SortRows', Array, 'DN2', 'ARRAY', @FM, @VM)
|
||||||
|
Response = Array<1>
|
||||||
|
end else
|
||||||
|
ErrorMsg = 'Error in ':Service:' service. Error calling Btree.Extract.'
|
||||||
|
end
|
||||||
end else
|
end else
|
||||||
Response = RIKeys
|
ErrorMsg = 'Error in ':Service:' service. Error opening REACT_ITEM dictionary.'
|
||||||
end
|
end
|
||||||
|
|
||||||
end else
|
end else
|
||||||
ErrorMsg = 'Error in ':Service:' service. Error opening REACT_ITEM dictionary.'
|
AllKeys = ''
|
||||||
|
RList('SELECT REACT_ITEM', TARGET_ACTIVELIST$, '', '', '')
|
||||||
|
Done = False$
|
||||||
|
Loop
|
||||||
|
Readnext KeyId else Done = True$
|
||||||
|
Until Done
|
||||||
|
AllKeys<1, -1> = KeyId
|
||||||
|
Repeat
|
||||||
|
Response = AllKeys
|
||||||
end
|
end
|
||||||
|
|
||||||
If ErrorMsg NE '' then
|
If ErrorMsg NE '' then
|
||||||
Error_Services('Add', ErrorMsg)
|
Error_Services('Add', ErrorMsg)
|
||||||
end
|
end
|
||||||
@ -155,7 +203,6 @@ Service ConvertRecordToJSON(KeyID, Record, ItemURL)
|
|||||||
|
|
||||||
Response = jsonRecord
|
Response = jsonRecord
|
||||||
|
|
||||||
|
|
||||||
end service
|
end service
|
||||||
|
|
||||||
|
|
||||||
@ -326,11 +373,11 @@ Service GetReactItemTemplateJSON()
|
|||||||
|
|
||||||
Response = jsonRecord
|
Response = jsonRecord
|
||||||
|
|
||||||
|
|
||||||
end service
|
end service
|
||||||
|
|
||||||
|
|
||||||
Service CreateReactItem(Record)
|
Service CreateReactItem(Record)
|
||||||
|
|
||||||
ErrMsg = ''
|
ErrMsg = ''
|
||||||
KeyID = ''
|
KeyID = ''
|
||||||
If Record NE '' then
|
If Record NE '' then
|
||||||
@ -355,6 +402,7 @@ Service CreateReactItem(Record)
|
|||||||
|
|
||||||
end service
|
end service
|
||||||
|
|
||||||
|
|
||||||
Service ConvertRecordToJSONQuick(KeyID, Record, ItemURL)
|
Service ConvertRecordToJSONQuick(KeyID, Record, ItemURL)
|
||||||
|
|
||||||
jsonRecord = ''
|
jsonRecord = ''
|
||||||
@ -407,6 +455,32 @@ Service ConvertRecordToJSONQuick(KeyID, Record, ItemURL)
|
|||||||
Response = jsonRecord
|
Response = jsonRecord
|
||||||
|
|
||||||
end service
|
end service
|
||||||
|
|
||||||
|
|
||||||
|
Service UpdateReactItemStatus(RINo)
|
||||||
|
|
||||||
|
If RINo NE '' then
|
||||||
|
If RowExists('REACT_ITEM', RINo) then
|
||||||
|
RIRec = Database_Services('ReadDataRow', 'REACT_ITEM', RINo)
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
Update_Index('REACT_ITEM_HIST', 'RI_NO', False$, True$)
|
||||||
|
ReactItemCurrStatus = obj_React_Item('CurrStatus', RINo:@RM:RIRec)
|
||||||
|
ReactItemCurrStatusStatic = RIRec<REACT_ITEM_CURR_STATUS_STATIC$>
|
||||||
|
If ReactItemCurrStatus NE ReactItemCurrStatusStatic then
|
||||||
|
Open 'REACT_ITEM' to hTable then
|
||||||
|
WriteV ReactItemCurrStatus on hTable, RINo, REACT_ITEM_CURR_STATUS_STATIC$ else
|
||||||
|
Error_Services('Add', 'Error in ':Service:' service. Error writing CURR_STATUS_STATIC, ':ReactItemCurrStatus:', for REACT_ITEM ':RINo:'.')
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
Error_Services('Add', 'Error in ':Service:' service. Error opening REACT_ITEM table for status update.')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end service
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Internal GoSubs
|
// Internal GoSubs
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -419,6 +493,3 @@ ClearCursors:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,25 +6,27 @@ compile insert REACT_ITEM_EQUATES
|
|||||||
----------------------------------------*/
|
----------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
Equ REACT_ITEM_RI_NO$ To 0
|
Equ REACT_ITEM_RI_NO$ To 0
|
||||||
Equ REACT_ITEM_DESC$ To 1
|
Equ REACT_ITEM_DESC$ To 1
|
||||||
Equ REACT_ITEM_ENTER_BY$ To 2
|
Equ REACT_ITEM_ENTER_BY$ To 2
|
||||||
Equ REACT_ITEM_ENTER_DTM$ To 3
|
Equ REACT_ITEM_ENTER_DTM$ To 3
|
||||||
Equ REACT_ITEM_RETIRE_BY$ To 4
|
Equ REACT_ITEM_RETIRE_BY$ To 4
|
||||||
Equ REACT_ITEM_RETIRE_DT$ To 5
|
Equ REACT_ITEM_RETIRE_DT$ To 5
|
||||||
Equ REACT_ITEM_PART_TYPE$ To 6
|
Equ REACT_ITEM_PART_TYPE$ To 6
|
||||||
Equ REACT_ITEM_MFR_CD$ To 7
|
Equ REACT_ITEM_MFR_CD$ To 7
|
||||||
Equ REACT_ITEM_MFR_PART_NO$ To 8
|
Equ REACT_ITEM_MFR_PART_NO$ To 8
|
||||||
Equ REACT_ITEM_MFR_PART_NO_REV$ To 9
|
Equ REACT_ITEM_MFR_PART_NO_REV$ To 9
|
||||||
Equ REACT_ITEM_SERIAL_NO$ To 10
|
Equ REACT_ITEM_SERIAL_NO$ To 10
|
||||||
Equ REACT_ITEM_RI_TYPE$ To 11
|
Equ REACT_ITEM_RI_TYPE$ To 11
|
||||||
Equ REACT_ITEM_SUSC_SIZE$ To 12
|
Equ REACT_ITEM_SUSC_SIZE$ To 12
|
||||||
Equ REACT_ITEM_PKT_QTY$ To 13
|
Equ REACT_ITEM_PKT_QTY$ To 13
|
||||||
Equ REACT_ITEM_PKT_SIZE$ To 14
|
Equ REACT_ITEM_PKT_SIZE$ To 14
|
||||||
Equ REACT_ITEM_NOTES$ To 15
|
Equ REACT_ITEM_NOTES$ To 15
|
||||||
Equ REACT_ITEM_PPLUS_RDS_NO$ To 16
|
Equ REACT_ITEM_PPLUS_RDS_NO$ To 16
|
||||||
Equ REACT_ITEM_SERIAL$ To 17
|
Equ REACT_ITEM_SERIAL$ To 17
|
||||||
Equ REACT_ITEM_TUBE_GRADE$ To 18
|
Equ REACT_ITEM_TUBE_GRADE$ To 18
|
||||||
Equ REACT_ITEM_TUBE_PRESS$ To 19
|
Equ REACT_ITEM_TUBE_PRESS$ To 19
|
||||||
Equ REACT_ITEM_TUBE_STYLE$ To 20
|
Equ REACT_ITEM_TUBE_STYLE$ To 20
|
||||||
Equ REACT_ITEM_NEW_OR_REFURB$ To 21
|
Equ REACT_ITEM_NEW_OR_REFURB$ To 21
|
||||||
|
Equ REACT_ITEM_CURR_STATUS_STATIC$ To 22
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user