open-insight/LSL2/STPROC/WO_MAT_INV.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

511 lines
12 KiB
Plaintext

COMPILE FUNCTION WO_Mat_Inv(EntID,Event,Parm1,Parm2,Parm3,Parm4,Parm5)
/*
Commuter module for WO_Mat_Inv window
3/4/2013 - John C. Henry, J.C. Henry & Co., Inc.
*/
DECLARE SUBROUTINE Set_Property, End_Dialog, Send_Event, Set_Status, Center_Window, Post_Event, obj_WO_Mat, obj_WO_Log
DECLARE SUBROUTINE ErrMsg, Send_Message, Set_Property, Send_Event, Btree.Extract, obj_AppWindow, obj_WO_Mat_Log, obj_WM_Out
DECLARE SUBROUTINE obj_Notes, Security_Err_Msg, End_Window, Forward_Event, Start_Window, Create_Note, Print_SAP_Cass_Ship_Label
DECLARE FUNCTION Get_Property, Get_Status, Dialog_Box, Utility, Popup, Collect.Ixvals
DECLARE FUNCTION Send_Message, Msg, Security_Check, Select_Into, obj_WM_Out
$INSERT MSG_EQUATES
$INSERT APPCOLORS
$INSERT LSL_USERS_EQU
$INSERT SECURITY_RIGHTS_EQU
$INSERT WO_LOG_EQUATES
$INSERT WO_MAT_EQUATES
$INSERT REACT_RUN_EQUATES
$INSERT POPUP_EQUATES
$INSERT RTI_STYLE_EQUATES
$INSERT WM_OUT_EQUATES
EQU CRLF$ TO \0D0A\
EQU TAB$ TO \09\
EQU COL$TIME_STAMP TO 1
EQU COL$WH_CD TO 2
EQU COL$WAREHOUSE TO 3
EQU COL$LOC_CD TO 4
EQU COL$LOCATION TO 5
EQU COL$ACTION TO 6
EQU COL$USER_ID TO 7
EQU COL$TAG TO 8
EQU COL$TOOL_ID TO 9
EQU COL$TIME_AT_STEP TO 10
EQU COL$SIG_CODE TO 1
EQU COL$SIGNATURE TO 2
EQU COL$SIG_DTM TO 3
EQU COL$SIG_VER TO 4
ErrTitle = 'Error in WO_MAT_INV'
ErrorMsg = ''
Result = ''
BEGIN CASE
CASE EntID = @WINDOW
BEGIN CASE
CASE Event = 'CLEAR' ; GOSUB Clear
CASE Event = 'CREATE' ; GOSUB Create
CASE Event = 'CLOSE' ; GOSUB Close
CASE Event = 'READ' ; GOSUB Read
CASE Event = 'WRITE' ; GOSUB Write
CASE Event[1,3] = 'QBF' ; GOSUB Refresh
END CASE
CASE EntID = @WINDOW:'.CASS_NO' AND EVENT = 'GOTFOCUS' ; GOSUB LUCassNo
CASE EntID = @WINDOW:'.LOG_DTM' AND EVENT = 'GOTFOCUS' ; GOSUB CurrDTM
CASE EntID = @WINDOW:'.LOG_ACTION' AND EVENT = 'GOTFOCUS' ; GOSUB ActionGF
CASE EntID = @WINDOW:'.ADD_INV_TRANS' AND EVENT = 'CLICK' ; GOSUB AddInvTrans
CASE EntID = @WINDOW:'.REMOVE_WM_OUT' AND EVENT = 'CLICK' ; GOSUB RemoveWMOut
CASE EntID = @WINDOW:'.INV_WH' AND EVENT = 'DELETEROW' ; GOSUB InvDelRow
CASE 1
DEBUG
ErrorMsg = 'Unknown Parameters ':EntID:' - ':Event:' passed to commuter'
ErrMsg(ErrorMsg)
END CASE
IF ErrorMsg NE '' THEN
ErrMsg(ErrTitle:@SVM:ErrorMsg)
END
RETURN Result
* * * * * * *
Create:
* * * * * * *
obj_Appwindow('Create',@WINDOW)
* Set result table special styles (Dropdowns)
GOSUB Refresh
RETURN
* * * * * * *
Clear:
* * * * * * *
IF Get_Property(@WINDOW,'@READONLY') THEN
obj_AppWindow('ReadOnly',@RM:1) ;* Reenables data bound controls
Set_Property(@WINDOW,'@READONLY',0) ;* Clear flag on window
END
* * * * * * *
Refresh:
* * * * * * *
WMOKey = Get_Property(@WINDOW:'.WMO_KEY','TEXT')
Ctrls = @WINDOW:'.WMO_KEY_LABEL':@RM ; Props = 'VISIBLE':@RM
Ctrls := @WINDOW:'.WMO_KEY':@RM ; Props := 'VISIBLE':@RM
Ctrls := @WINDOW:'.REMOVE_WM_OUT' ; Props := 'VISIBLE'
IF WMOKey NE '' THEN
Vals = '1':@RM:'1':@RM:'1'
Set_Property(Ctrls,Props,Vals)
END ELSE
Vals = '0':@RM:'0':@RM:'0'
END
* Turn edit table symbolic column backgrounds to green **************************************************
ETSymbolics = Get_Property(@WINDOW,'@ET_SYMBOLICS') ;* Loaded during 'Create' in obj_Appwindow
ETCtrls = ETSymbolics<1>
ETCols = ETSymbolics<2>
FOR I = 1 TO COUNT(ETCtrls,@VM) + (ETCtrls NE '')
ETCtrl = ETCtrls<1,I>
ETList = Get_Property(ETCtrl,'LIST')
FOR Line = 1 TO COUNT(ETList,@FM) + (ETList NE '')
IF ETList<Line,1> NE '' THEN
FOR N = 1 TO COUNT(ETCols<1,I>,@SVM) + (ETCols<1,I> NE '')
stat = Send_Message(ETCtrl,'COLOR_BY_POS',ETCols<1,I,N>,Line,GREEN$)
NEXT N
END
NEXT I
NEXT I
RETURN
* * * * * * *
LUCassNo:
* * * * * * *
WONo = Get_Property(@WINDOW:'.WO_NO','DEFPROP')
CassNo = Get_Property(@WINDOW:'.CASS_NO','DEFPROP')
IF WONo NE '' AND CassNo = '' THEN
TypeOver = ''
TypeOver<PDISPLAY$> = 'WITH WO_NO = ':WONo:' BY CASS_NO'
TypeOver<PFIELD$> = 2 ;* Cass No(s)
PopupLines = POPUP(@WINDOW,TypeOver,'WO_MAT_FIXIT')
IF PopupLines = '' THEN RETURN
IF INDEX(PopupLines,@FM,1) THEN
LineCnt = COUNT(PopupLines,@FM) + (PopupLines NE '')
WOMatKeys = ''
FOR I = 1 TO LineCnt
WOMatKeys<1,-1> = WONo:'*':PopupLines<I,2>
NEXT I
Send_Event(@WINDOW,'QBFINIT')
Set_Property(@WINDOW,'QBFLIST',WOMatKeys)
GOSUB Refresh
Send_Event(@WINDOW,'QBFIRST')
END ELSE
CassNo = PopupLines<1,2>
Set_Property(@WINDOW:'.CASS_NO','DEFPROP',CassNo)
Send_Event(@WINDOW:'.CASS_NO','LOSTFOCUS')
END
END
RETURN
* * * * * * *
Read:
* * * * * * *
GOSUB Refresh
RETURN
* * * * * * *
Write:
* * * * * * *
ParentWindow = Get_Property(@WINDOW,'PARENT')
IF ParentWindow = 'WO_MAT' THEN
ParentWindow = Get_Property(@WINDOW,'PARENT')
ParentKey = Get_Property(@WINDOW,'@RETURNKEY')
obj_AppWindow('LoadFormKeys',ParentWindow:@RM:ParentKey)
Post_Event(@WINDOW,'CLOSE')
END
RETURN
* * * * * * *
Close:
* * * * * * *
RETURN
* * * * * * *
CurrDTM:
* * * * * * *
CurrDtm = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS')
Set_Property(@WINDOW:'.LOG_DTM','DEFPROP',CurrDTM)
Set_Property(@WINDOW:'.LOG_DTM','SELECTION',1:@FM:Len(CurrDTM))
RETURN
* * * * * * *
InvDelRow:
* * * * * * *
CtrlEntID = Get_Property(@WINDOW,'FOCUS')
DelRowNo = Parm1
DelRowData = Parm2
Action = DelRowData<1,COL$ACTION>
IF NUM(Action[1,1]) THEN
MsgHead = 'Signature Removal'
MsgText = 'Do you wish to remove the signature for the ':Action:' step in the signature profile.'
OK = Msg(@WINDOW,'','YESNO','',MsgHead:@FM:MsgText)
IF OK = 1 THEN
SigProfileArray = Get_Property(@WINDOW:'.SIG_PROFILE','ARRAY')
LOCATE Action IN SigProfileArray<COL$SIG_CODE> USING @VM SETTING Pos THEN
SigProfileArray<COL$SIGNATURE,Pos> = ''
SigProfileArray<COL$SIG_DTM,Pos> = ''
SigProfileArray<COL$SIG_VER,Pos> = ''
Set_Property(@WINDOW:'.SIG_PROFILE','DEFPROP',SigProfileArray)
END
END
END
RETURN
* * * * * * *
ActionGF:
* * * * * * *
MUBox = Get_Property(@WINDOW:'.MAKEUP_BOX','CHECK')
EpoMUBox = Get_Property(@WINDOW:'.EPO_MAKEUP_BOX','CHECK')
PopupID = @APPID<1>:'**':'WO_MAT_INV_ACTION'
PopupLiteral = XLATE('SYSREPOSPOPUPS',PopupID,PDISPLAY$,'X')
plCnt = COUNT(PopupLiteral,@VM) + (PopupLiteral NE '')
TypeOver = ''
FOR I = 1 TO plCnt
IF MUBox OR EpoMUBox THEN
IF PopupLiteral<1,I,1> = 'EMPTY' OR PopupLiteral<1,I,1> = 'REJ' OR PopupLiteral<1,I,1> = 'RTU' OR PopupLiteral<1,I,1> = 'MU_USE' OR PopupLiteral<1,I,1> = 'DELETE' THEN
TypeOver<PDISPLAY$,-1> = PopupLiteral<1,I>
END
END ELSE
IF PopupLiteral<1,I,1> = 'SHIP' OR PopupLiteral<1,I,1> = 'REJ' OR PopupLiteral<1,I,1> = 'PLACE' OR PopupLiteral<1,I,1> = 'LOAD' OR PopupLiteral<1,I,1> = 'UNLOAD' OR PopupLiteral<1,I,1> = 'VER' OR PopupLiteral<1,I,1> = 'PSTS' OR PopupLiteral<1,I,1> = 'DELETE' OR PopupLiteral<1,I,1>[1,4] = 'HOLD' THEN
TypeOver<PDISPLAY$,-1> = PopupLiteral<1,I>
END
END
NEXT I
TypeOver := @VM:'HOLD_ON':@SVM:'Hold On':@VM:'HOLD_OFF':@SVM:'Hold Off'
Action = Popup(@WINDOW,TypeOver,'WO_MAT_INV_ACTION')
BEGIN CASE
CASE Action = 'DELETE'
WHCd = 'CR'
LocCd = 'QA'
CurrDtm = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS') ;* Add 1800 seconds (1 Hour) to the timestamp for reporting system. - OCONV(Time() + 1800 ,'MTS') Per Dave Klotz 6/20/2014
Set_Property(@WINDOW:'.LOG_DTM','DEFPROP',CurrDTM)
*CASE Action = '1QA' ;*IF EpiPro - use 1MO_QA -dkk 10/21/14
*WHCd = 'CR'
*LocCd = 'QA'
CASE Action = 'REJ'
WHCd = 'CR'
LocCd = 'QA'
CASE Action = 'SHIP'
WHCd = 'SR'
LocCd = 'SB'
Tags = Get_Property(@WINDOW:'.INV_WH','ARRAY')<8>
LOOP
Tag = Tags<1,1>
UNTIL Tag NE '' OR Tags = ''
Tags = Delete(Tags,1,1,0)
REPEAT
Set_Property(@WINDOW:'.LOG_TAG','TEXT',Tag)
CASE Action = 'EMPTY'
WHCd = 'CR'
LocCd = 'MU'
CASE Action = 'RTU'
WHCd = 'CR'
LocCd = 'MU'
CASE Action = 'MU_USE'
WHCd = 'CR'
LocCd = 'MU'
CASE Action = 'PLACE'
Tags = Get_Property(@WINDOW:'.INV_WH','ARRAY')<8>
TagCnt = COUNT(Tags,@VM) + (Tags NE '')
FOR I = TagCnt TO 1 STEP -1
Tag = Tags<1,I>
UNTIL Tag NE ''
NEXT I
Set_Property(@WINDOW:'.LOG_TAG','TEXT',Tag)
CASE 1
WHCd = ''
LocCd = ''
END CASE
Set_Property(@WINDOW:'.LOG_WH_CD','TEXT',WHCd)
Set_Property(@WINDOW:'.WH_CD_DESC','TEXT',XLATE('WAREHOUSE',WHCd,1,'X'))
Set_Property(@WINDOW:'.LOG_LOC_CD','TEXT',LocCd)
Set_Property(@WINDOW:'.LOC_CD_DESC','TEXT',XLATE('LOCATION',WHCd:'*':LocCd,1,'X'))
obj_AppWindow('LUValReturn',Action:@RM:@WINDOW:'.LOG_ACTION')
RETURN
* * * * * * *
AddInvTrans:
* * * * * * *
InvDTM = Get_Property(@WINDOW:'.LOG_DTM','TEXT')
Action = Get_Property(@WINDOW:'.LOG_ACTION','TEXT')
WhCd = Get_Property(@WINDOW:'.LOG_WH_CD','TEXT')
LocCd = Get_Property(@WINDOW:'.LOG_LOC_CD','TEXT')
WONo = Get_Property(@WINDOW:'.WO_NO','TEXT')
CassNo = Get_Property(@WINDOW:'.CASS_NO','TEXT')
UserID = @USER4
Tag = Get_Property(@WINDOW:'.LOG_TAG','TEXT')
Send_Event(@WINDOW,'WRITE')
CheckWOMat = XLATE('WO_MAT',WONo:'*':CassNo,'','X')
CONVERT @FM:@VM TO '' IN CheckWOMat
IF CheckWOMat = '' OR CheckWOMat<WO_MAT_WMO_KEY$> = WONo:'*1*':CassNo THEN
LastSlotUsed = 25
obj_WO_Mat('CreateWMO',WONo:@RM:CassNo:@RM:LastSlotUsed) ;* Creates "shell" WO_MAT record with the signature profile in it.
errCode = ''
IF Get_Status(errCode) THEN DEBUG
END
obj_WO_Log('AddCassNo',WONo:@RM:CassNo)
IF Get_Status(errCode) THEN DEBUG
ScanToolID = ''
Set_Status(0)
aiParms = 'WO_MAT':@RM:WONo:@RM:CassNo:@RM:WhCd:'*':LocCd:@RM:Action:@RM:InvDTM:@RM:UserID:@RM:Tag:@RM:ScanToolID
obj_WO_Mat('AddInvTrans',aiParms)
IF Get_Status(errCode) THEN
ErrMsg(errCode)
RETURN
END
obj_Appwindow('LoadFormKeys',@WINDOW:@RM:WONo:'*':CassNo)
RETURN
* * * * * * *
RemoveWMOut:
* * * * * * *
WONo = Get_Property(@WINDOW:'.WO_NO','DEFPROP')
CassNo = Get_Property(@WINDOW:'.CASS_NO','DEFPROP')
IF WONo = '' THEN RETURN
IF CassNo = '' THEN RETURN
* Check for the last WMO_OUT key
WORec = XLATE('WO_LOG',WONo,'','X')
WOMatKeys = WORec<WO_LOG_WO_MAT_KEY$>
WMOutKeys = XLATE('WO_MAT',WOMatKeys,WO_MAT_WMO_KEY$,'X') ;* Get all WM_OUT keys in work order
LastWMOKey = WMOutKeys[-1,'B':@VM]
LastCassNo = LastWMOKey[-1,'B*']
IF CassNo NE LastCassNo THEN
ErrMsg('This is not the last WM_OUT cassette on this work order.':CRLF$:'Last WM_OUT Key is: ':LastWMOKey)
RETURN
END
CurrWMOutKey = WONo:'*1*':CassNo
WMORec = XLATE('WM_OUT',CurrWMOutKey,'','X')
WMO_RdsNos = WMORec<WM_OUT_RDS$>
WMO_NCRNos = WMORec<WM_OUT_SLOT_NCR$>
WMO_UMWCassIDs = WMORec<WM_OUT_UMW_CASS_ID$>
CONVERT @VM TO '' IN WMO_RdsNos
CONVERT @VM TO '' IN WMO_NCRNos
CONVERT @VM TO '' IN WMO_UMWCassIDs
IF WMO_RdsNos = '' AND WMO_NCRNos = '' AND WMO_UMWCassIDs = '' ELSE
ErrMsg('This cassette has started processing.')
RETURN
END
MsgHead = 'WM_OUT Record Removal'
MsgText = 'Do you wish to remove WM_OUT record ':CurrWMOutKey:' attached to this WO_MAT record?.'
OK = Msg(@WINDOW,'','YESNO','',MsgHead:@FM:MsgText)
IF OK = 1 THEN
Send_Event(@WINDOW,'WRITE')
Set_Status(0)
obj_WM_Out('Delete',CurrWMOutKey)
IF Get_Status(errCode) THEN
ErrMsg(errCode)
END
obj_Appwindow('LoadFormKeys',@WINDOW:@RM:WONo:'*':CassNo)
END
RETURN