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

84 lines
4.2 KiB
Plaintext

Function SRP_Import_Old_Schedule(void)
/********************************************************************************************************
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 SRP Computer Solutions, Inc.
Name : Import Old Schedule
Description : Imports the old schedule (CONFIG, WO_MAST_SCHED) into the new WO_MAST_SCHED table
Tags : [SRP]
Parameters :
History (Date, Initials, Notes)
09/17/08 fjt Initial development
09/18/17 dmb Re-purpose to import from SCHED_DET into SCHEDULER.
********************************************************************************************************/
#pragma precomp SRP_PreCompiler
$insert SRP_APP_INSERTS
$insert SCHED_DET_EQUATES
$insert SCHEDULER_EQUATES
$insert WO_SCHEDULE_EQUATES
Equ SECONDS_PER_DAY$ to 86400
Equ MIDNIGHT_AM$ to 0 ; // Midnight represented as the beginning of the day.
Equ MIDNIGHT_PM$ to 86400 ; // Midnight represented as the end of the day.
Equ SIX_AM$ to 21600
Equ NOON$ to 43200
Equ SIX_PM$ to 64800
Declare function Database_Services, Memory_Services, Schedule_Services
Declare subroutine Database_Services, Memory_Services
Debug
SchedDetKeyIDs = Database_Services('SearchIndex', 'SCHED_DET', 'SCHED_DT', '>01/01/2017', True$)
For Each SchedDetKeyID in SchedDetKeyIDs
ReactorNo = SchedDetKeyID[1, '*']
ScheduleDate = SchedDetKeyID[Col2() + 1, '*']
SequenceNo = SchedDetKeyID[Col2() + 1, '*']
SchedDetRow = Schedule_Services('GetScheduleDetail', SchedDetKeyID)
WorkOrderNo = SchedDetRow<SCHED_DET_WO_NO$>
If WorkOrderNo NE '' then
If Memory_Services('GetValue', ReactorNo : '*' : WorkOrderNo) NE True$ then
WOScheduleRow = Database_Services('ReadDataRow', 'WO_SCHEDULE', WorkOrderNo)
WorkOrderKeys = WOScheduleRow<WO_SCHEDULE_SCHED_DET_KEY_IDS$>
Convert @VM to @FM in WorkOrderKeys
ReactorKeys = ''
For Each WorkOrderKey in WorkOrderKeys using @FM
thisReactorNo = WorkOrderKey[1, '*']
If thisReactorNo EQ ReactorNo then
ReactorKeys := WorkOrderKey : @FM
end
Next WorkOrderKey
ReactorKeys[-1, 1] = ''
If ReactorKeys NE '' then
FirstScheduleDate = Field(ReactorKeys<1>, '*', 2)
If FirstScheduleDate EQ ScheduleDate then
SchedulerRow = ''
NumDays = DCount(ReactorKeys, @FM)
SchedulerRow<SCHEDULER.END_DATE$> = ScheduleDate + (NumDays - 1)
SchedulerRow<SCHEDULER.WO_STEP$> = SchedDetRow<SCHED_DET_WO_STEP$>
SchedulerRow<SCHEDULER.CASSETTE_NO$> = SchedDetRow<SCHED_DET_CASS_NO$>
SchedulerRow<SCHEDULER.DESCRIPTION$> = SchedDetRow<SCHED_DET_DESC$>
SchedulerRow<SCHEDULER.MODIFIED$> = SchedDetRow<SCHED_DET_MODIFIED$>
SchedulerRow<SCHEDULER.BLOCK_OUT$> = SchedDetRow<SCHED_DET_BLOCK_OUT$>
SchedulerRow<SCHEDULER.BLOCK_OUT_TYPE$> = SchedDetRow<SCHED_DET_BLOCK_OUT_TYPE$>
SchedulerRow<SCHEDULER.BACKCOLOR$> = SchedDetRow<SCHED_DET_BACKCOLOR$>
SchedulerRow<SCHEDULER.FORECOLOR$> = SchedDetRow<SCHED_DET_FORECOLOR$>
SchedulerRow<SCHEDULER.START_TIME$> = MIDNIGHT_AM$
SchedulerRow<SCHEDULER.END_TIME$> = MIDNIGHT_PM$
SchedulerRow<SCHEDULER.WAFER_COUNT$> = ''
SchedulerKeyID = ReactorNo : '*' : ScheduleDate : '*' : WorkOrderNo
Database_Services('WriteDataRow', 'SCHEDULER', SchedulerKeyID, SchedulerRow, True$)
Memory_Services('SetValue', ReactorNo : '*' : WorkOrderNo, True$)
end
end
end
end
Next SchedDetKeyID
Return Ans OR ''