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

524 lines
11 KiB
Plaintext

COMPILE FUNCTION Comm_WO_Log_Tables(Instruction, Parm1,Parm2)
/*
Commuter module for WO_Log2 (Work Order Log) window edit table functions
08/16/2004 - John C. Henry, J.C. Henry & Co., Inc.
*/
DECLARE SUBROUTINE Set_Property, Set_Status, ErrMsg, Set_Property, obj_AppWindow, obj_Notes, obj_WO_Step, Start_Window
DECLARE SUBROUTINE Btree.Extract, Send_Event, Forward_Event, End_Window,Comm_WO_Log, Popup, obj_Tables
DECLARE FUNCTION Get_Property, Get_Status, Popup, Send_Message, Msg, Security_Check, Dialog_Box, RowExists
DECLARE FUNCTION Dialog_Box, obj_RDS
$INSERT POPUP_EQUATES
$INSERT MSG_EQUATES
$INSERT APPCOLORS
$INSERT WO_LOG_EQU
$INSERT ORDER_EQU
$INSERT ORDER_DET_EQU
$INSERT SCHEDULE_EQU
$INSERT RDS_EQU
$INSERT PROD_SPEC_EQU
EQU CRLF$ TO \0D0A\
EQU COL$QUOTE_DESC TO 1
EQU COL$SETUP_CHG TO 4
EQU COL$SRP_CHG TO 5
EQU COL$WAFER_PRICE TO 6
EQU COL$ADD_DESC TO 1
EQU COL$ADD_AMT TO 2
EQU COL$CASS_NO TO 1
EQU COL$LOT_NO TO 2
EQU COL$QTY TO 3
EQU COL$SUB_PART_NO TO 4
EQU COL$VEND_CD TO 5
EQU COL$EPI_PART_NO TO 6
EQU COL$RX_DTM TO 7
EQU COL$REL_DTM TO 8
EQU COL$CURR_STATUS TO 9
EQU COL$SAP_TX_DTM TO 10
EQU COL$SAP_BATCH_NO TO 11
EQU COL$CASS_ID_SAP TO 12
EQU COL$SAP_YIELD TO 13
EQU COL$SAP_CONFIRM_SCRAP TO 14
EQU COL$SAP_GR_QTY TO 15
EQU COL$SAP_RAW_SCRAP_QTY TO 16
EQU COL$SAP_PROD_TEST_QTY TO 17
EQU COL$SAP_MU_QTY TO 18
EQU COL$STEP TO 1
EQU COL$PSN TO 2
EQU COL$DOPANT TO 3
EQU COL$THICK TO 4
EQU COL$THICK_UNITS TO 5
EQU COL$RESIST TO 6
EQU COL$RESIST_UNITS TO 7
EQU COL$DESC TO 8
EQU COL$STEP_STATUS TO 9
EQU COL$STEP_SCHED TO 10
EQU COL$STEP_SCHED_DTM TO 11
ErrTitle = 'Error in Comm_WO_Log_Tables'
ErrorMsg = ''
Result = ''
BEGIN CASE
CASE Instruction = 'QuotePriceDC' ; GOSUB QuotePriceDC
CASE Instruction = 'PSPartDC' ; GOSUB PSPartDC
CASE Instruction = 'ShipDC' ; GOSUB ShipDC
CASE Instruction = 'ProcStepDC' ; GOSUB ProcStepDC
CASE Instruction = 'WOStepDC' ; GOSUB WOStepDC
CASE Instruction = 'PartStepDC' ; GOSUB WOStepDC
CASE Instruction = 'Reorder' ; GOSUB Reorder
CASE Instruction = 'CassDC' ; GOSUB CassDC
CASE Instruction = 'CassInsert' ; GOSUB CassInsert
CASE Instruction = 'CassDelete' ; GOSUB CassDelete
CASE 1
ErrorMsg = 'Unknown Instruction passed to routine'
END CASE
RETURN Result
* * * * * * *
QuotePriceDC:
* * * * * * *
* DoubleClick event handler for the Quotes Table
CtrlEntId = @WINDOW:'.QUOTE_PRICING'
CurrPos = Get_Property(CtrlEntId,'SELPOS')
RowData = Get_Property(CtrlEntId,'ROWDATA')
ColData = Get_Property(CtrlEntId,'ARRAY')
CurrCol = CurrPos<1>
CurrRow = CurrPos<2>
IF CurrCol = COL$SETUP_CHG AND RowData<CurrCol> NE '' THEN
NewDesc = RowData<COL$QUOTE_DESC>
NewAddChg = RowData<COL$SETUP_CHG>
AddChgDescs = Get_Property(@WINDOW:'.ADD_CHG','ARRAY')<1> ;* 1st column in edit table
LineCnt = 0
FOR I = 1 TO COUNT(AddChgDescs,@VM) + (AddChgDescs NE '')
UNTIL AddChgDescs<1,I> = ''
LineCnt += 1
NEXT I
Set_Property(@WINDOW:'.ADD_CHG','CELLPOS',NewDesc,COL$ADD_DESC:@FM:LineCnt+1)
Set_Property(@WINDOW:'.ADD_CHG','CELLPOS',NewAddChg,COL$ADD_AMT:@FM:LineCnt+1)
END ;* End of check for Setup Charge column
IF CurrCol = COL$SRP_CHG AND RowData<CurrCol> NE '' THEN
NewDesc = RowData<COL$QUOTE_DESC>
NewAddChg = RowData<COL$SRP_CHG>
AddChgDescs = Get_Property(@WINDOW:'.ADD_CHG','ARRAY')<1> ;* 1st column in edit table
LineCnt = 0
FOR I = 1 TO COUNT(AddChgDescs,@VM) + (AddChgDescs NE '')
UNTIL AddChgDescs<1,I> = ''
LineCnt += 1
NEXT I
Set_Property(@WINDOW:'.ADD_CHG','CELLPOS',NewDesc,COL$ADD_DESC:@FM:LineCnt+1)
Set_Property(@WINDOW:'.ADD_CHG','CELLPOS',NewAddChg,COL$ADD_AMT:@FM:LineCnt+1)
END ;* End of check for SRP Charge column
IF CurrCol = COL$WAFER_PRICE AND RowData<CurrCol> NE '' THEN
NewWaferPrice = RowData<COL$WAFER_PRICE>
Set_Property(@WINDOW:'.UNIT_PRICE','DEFPROP',NewWaferPrice)
END ;* End of check for SRP Charge column
Comm_WO_Log('Refresh')
RETURN
* * * * * * *
PSPartDC:
* * * * * * *
RETURN ; ******** 7/23/2014 Control no longer in the window jch
CtrlEntID = @WINDOW:'.PS_PARTS'
CurrPartPos = Get_Property(CtrlEntID,'SELPOS')
PartNo = Get_Property(CtrlEntID,'CELLPOS',CurrPartPos)
CurrArray = Get_Property(@WINDOW:'.SCHED_IDS','ARRAY')
PartNos = CurrArray<COL$PART_NO>
CurrPos = Get_Property(@WINDOW:'.SCHED_IDS','SELPOS')
CurrCol = CurrPos<1>
CurrRow = CurrPos<2>
IF Get_Property(@WINDOW:'.SCHED_IDS','CELLPOS',COL$PART_NO:@FM:CurrRow) = '' THEN
Set_Property(@WINDOW:'.SCHED_IDS','CELLPOS',PartNo,COL$PART_NO:@FM:CurrRow)
END
RETURN
* * * * * * *
ProcStepDC:
* * * * * * *
RETURN
* * * * * * *
WOStepDC:
* * * * * * *
IF @USER4 EQ 'JONATHAN_O' then debug
CtrlEntID = Get_Property(@WINDOW,'FOCUS')
WONo = Get_Property(@WINDOW : '.EDL_WO_NO', 'DEFPROP')
CurrPos = Get_Property(CtrlEntID,'SELPOS')
CurrCol = CurrPos<1>
CurrRow = CurrPos<2>
StepNo = Get_Property(CtrlEntID,'CELLPOS',COL$STEP:@FM:CurrRow)
PSNo = Get_Property(CtrlEntId,'CELLPOS',COL$PSN:@FM:CurrRow)
ReactorType = XLATE('PROD_SPEC',PSNo,PROD_SPEC_REACTOR_TYPE$,'X') ;* Not used in program 8/28/2014 JCH
BEGIN CASE
CASE CurrCol = COL$STEP
IF WONo NE '' AND StepNo NE '' THEN
WOStepKey = WONo:'*':StepNo
IF Get_Property(@WINDOW,'QBFLIST') = '' THEN
Send_Event(@WINDOW,'WRITE')
END
*IF ReactorType = 'P' THEN
* DetWindow = 'WO_PROD_EPI'
*END ELSE
DetWindow = 'WO_STEP'
*END
DetKeys = WONo:'*':StepNo
DefaultRec = ''
RetKey = WONo
RetPage = 1
RetCtrl = CtrlEntID
RetPos = CurrPos
oAParms = DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos
obj_AppWindow('ViewNewDetail',oAParms)
IF Get_Status(errCode) THEN
ErrMsg(errCode)
END
END
CASE CurrCol = COL$PSN
IF PSNo NE '' THEN
* Display the Prod Spec Window
obj_AppWindow('ViewRelated','PROD_SPEC':@RM:PSNo)
IF Get_Status(errCode) THEN
ErrMsg(errCode)
END
END
CASE 1
NULL
END CASE
RETURN
* * * * * * *
ShipDC:
* * * * * * *
CtrlEntID = @WINDOW:'.SHIPMENTS'
WONo = Get_Property(@WINDOW,'ID')
CurrPos = Get_Property(CtrlEntID,'SELPOS')
CurrCol = CurrPos<1>
CurrRow = CurrPos<2>
ShipNo = Get_Property(CtrlEntID,'CELLPOS',1:@FM:CurrRow)
IF WONo NE '' AND ShipNo NE '' THEN
IF Get_Property(@WINDOW,'QBFLIST') = '' THEN
Send_Event(@WINDOW,'WRITE')
END
DetWindow = 'COC'
DetKeys = ShipNo
DefaultRec = ''
RetKey = WONo
RetPage = 4
RetCtrl = CtrlEntID
RetPos = CurrPos
oAParms = DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos
obj_AppWindow('ViewNewDetail',oAParms)
IF Get_Status(errCode) THEN
ErrMsg(errCode)
END
END
RETURN
* * * * * * *
Reorder:
* * * * * * *
CtrlEntID = @WINDOW:'.CASS_NO'
RelStamp = Get_Property(@WINDOW:'.REL_STAMP','TEXT')
IF RelStamp NE '' THEN
Message = 'Work order has been released to production.||Cassettes may only be renumbered prior to release'
ErrMsg('Cassette Reorder Process':@SVM:Message)
RETURN
END
OrgCassList = Get_Property(CtrlEntId,'LIST')
IF OrgCassList<1,1> = '' THEN RETURN
BlankLineCnt = 0
LOOP
LastLine = OrgCassList[-1,'B':@FM] ;* [] Operation sets COL1() and COL2()
UNTIL LastLine<1,1> NE '' OR LastLine = ''
OrgCassList[COL1(),COL2()] = '' ;* Strip trailing blank lines from edit table controls
BlankLineCnt += 1
REPEAT
ListCnt = COUNT(OrgCassList,@FM) + (OrgCassList NE '')
CONVERT @VM TO @SVM IN OrgCassList
CONVERT @FM TO @VM IN OrgCassList
TypeOver = ''
TypeOver<PDISPLAY$> = OrgCassList
ReSelect:
SortedCassList = Popup(@WINDOW,TypeOver,'WO_CASSETTE_SORT')
IF SortedCassList = '' OR SortedCassList = CHAR(27) THEN RETURN
IF Get_Status(errCode) THEN ErrMsg(errCode)
ResultCnt = COUNT(SortedCassList,@FM) + (SortedCassList NE '')
IF ResultCnt NE ListCnt THEN
Message = 'All cassettes must be selected in the order they are to be processed.'
ErrMsg('Cassette Reorder Process':@SVM:Message)
GOTO ReSelect
END
FOR I = 1 TO ResultCnt
SortedCassList<I,1> = I
NEXT I
BlankLines = STR(STR(@VM,6):@FM,BlankLineCnt)
SortedCassList<-1> = BlankLines
SortedCassList[-1,1] = '' ;* Trailing @FM
Set_Property(CtrlEntID,'LIST',SortedCassList)
Comm_WO_Log('Refresh')
RETURN
* * * * * * *
CassDC:
* * * * * * *
CtrlEntID = @WINDOW:'.CASS_NO'
WONo = Get_Property(@WINDOW,'ID')
IF WONo = '' THEN RETURN
CurrPos = Get_Property(CtrlEntID,'SELPOS')
CurrCol = CurrPos<1>
CurrRow = CurrPos<2>
BEGIN CASE
CASE CurrCol = COL$CASS_ID_SAP
CassID = Get_Property(CtrlEntID,'CELLPOS',COL$CASS_ID_SAP:@FM:CurrRow)
BEGIN CASE
CASE CassID = '' ; RETURN
CASE INDEX(CassID,'.',1)
WMOutKey = CassID[1,'.']:'*1*':CassID[COL2()+1,'.']
DetWindow = 'WM_OUT'
DetKeys = WMOutKey
DefaultRec = ''
RetKey = WONo
RetPage = 2
RetCtrl = CtrlEntID
RetPos = CurrPos
oAParms = DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos
obj_AppWindow('ViewNewDetail',oAParms)
IF Get_Status(errCode) THEN
ErrMsg(errCode)
END
CASE NUM(CassID)
RDSNo = CassID
IF RDSNo NE '' THEN
Set_Property(@WINDOW,'@RETURN_FROM_RDS',WONo) ;* Bullshit lashup to work with multiple RDS windows
thisFormName = 'RDS'
thisFormWindowUp = Get_Property(thisFormName,'VISIBLE') ;* Returns 0 = hidden, 1 = visible, 2 = minimized, 3 = maximized
IF thisFormWindowUp = '' THEN
If Get_Property('NDW_MAIN', 'VISIBLE') then
AppMain = 'NDW_MAIN'
end else
AppMain = 'LSL_MAIN2'
end
Start_Window(thisFormName,AppMain,RDSNo:'*CENTER', '', '') ;* Put up the card window
RETURN
END
IF thisFormWindowUp = 2 THEN Set_Property(thisFormName,'VISIBLE',9) ;* Restore the window if minimized
IF Get_Property(thisFormName,'SAVEWARN') THEN
Send_Event(thisFormName,'CLEAR') ;* Clear anything existing (prompts for save first)
END
END
END CASE
CASE 1
CassNo = Get_Property(CtrlEntID,'CELLPOS',COL$CASS_NO:@FM:CurrRow)
IF CassNo = '' THEN RETURN
WOMatKey = WONo:'*':CassNo
IF Get_Property(@WINDOW,'QBFLIST') = '' THEN
Send_Event(@WINDOW,'WRITE')
END
DetWindow = 'WO_MAT'
DetKeys = WONo:'*':CassNo
DefaultRec = ''
RetKey = WONo
RetPage = 2
RetCtrl = CtrlEntID
RetPos = CurrPos
oAParms = DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos
obj_AppWindow('ViewNewDetail',oAParms)
IF Get_Status(errCode) THEN
ErrMsg(errCode)
END
END CASE
RETURN
* * * * * * *
CassInsert:
* * * * * * *
CtrlName = @WINDOW:'.CASS_NO'
RowNo = Parm1
Void = Send_Message(CtrlName,'DELETE',RowNo)
RETURN
* * * * * * *
CassDelete:
* * * * * * *
CtrlName = @WINDOW:'.CASS_NO'
RowNo = Parm1
RowData = Parm2
Dummy = Send_Message(CtrlName, 'INSERT', RowNo, RowData)
RETURN