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

188 lines
8.1 KiB
Plaintext

Compile function Calibration_Services(@Service, @Params)
#pragma precomp SRP_PreCompiler
$Insert LOGICAL
$Insert SERVICE_SETUP
$Insert CALIB_LIST_EQUATES
EQU COL$CL_NO TO 1
EQU COL$DEPT TO 2
EQU COL$EQ_INSTRUMENT TO 3
EQU COL$EQ_SN TO 4
EQU COL$EQ_LOC TO 5
EQU COL$EQ_CAL_INT TO 6
EQU COL$EQ_INT_EXT TO 7
EQU COL$EQ_LAST_CAL TO 8
EQU COL$EQ_NEXT_CAL TO 9
EQU COL$NIST_STANDARD TO 3
EQU COL$NIST_TSN TO 4
EQU COL$NIST_LOC TO 5
EQU COL$NIST_CAL_INT TO 6
EQU COL$NIST_INT_EXT TO 7
EQU COL$NIST_LAST_CAL TO 8
EQU COL$NIST_NEXT_CAL TO 9
GoToService
Return Response or ""
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Service Parameter Options
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Options BOOLEAN = True$, False$
Options CALIB_TYPES = 'Equipment', 'NIST'
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// SERVICES
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Service GetCalibListData(CalibType=CALIB_TYPES, SelectActive=BOOLEAN)
If SelectActive EQ '' then SelectActive = False$
CalibListData = ''
ErrorMsg = ''
Begin Case
Case CalibType EQ 'Equipment'
OPEN 'CALIB_LIST' TO TableIn then
If SelectActive EQ False$ then
SELECT TableIn
* end else
* Select 'CALIB_LIST' By "" Using Cursor else
* ErrorMsg = 'Error in ':Service:' service. Error selecting CALIB_LIST records.'
* end
end
If ErrorMsg EQ '' then
EquipList = ''
EquipDescs = ''
Done = False$
Today = Date()
LOOP
READNEXT CLNo ELSE Done = True$
UNTIL Done
READ CalRec FROM TableIn,CLNo THEN
NextCalDt = XLATE('CALIB_LIST',CLNo,'NEXT_CAL_DT','X')
IF CalRec<CALIB_LIST_CL_TYPE$> = 'E' THEN
EquipDesc = CalRec<CALIB_LIST_EQ_DESC$>
Dept = CalRec<CALIB_LIST_DEPT$>
IF EquipDesc NE '' THEN
SortKey = Dept:'*':EquipDesc:'*':CLNo
LOCATE SortKey IN EquipDescs BY 'AL' SETTING Pos ELSE
EquipDescs = INSERT(EquipDescs,1,Pos,0,SortKey)
EquipLine = CLNo
EquipLine<1,COL$DEPT> = Dept
EquipLine<1,COL$EQ_INSTRUMENT> = CalRec<CALIB_LIST_EQ_DESC$>
EquipLine<1,COL$EQ_SN> = CalRec<CALIB_LIST_EQ_SN$>
EquipLine<1,COL$EQ_LOC> = CalRec<CALIB_LIST_EQ_LOC$>
EquipLine<1,COL$EQ_CAL_INT> = CalRec<CALIB_LIST_CAL_INTERVAL$>
EquipLine<1,COL$EQ_INT_EXT> = CalRec<CALIB_LIST_CAL_LOC$>
EquipLine<1,COL$EQ_LAST_CAL> = OCONV(XLATE('CALIB_LIST',CLNo,'LAST_CAL_DT','X'),'D4/')
EquipLine<1,COL$EQ_NEXT_CAL> = OCONV(NextCalDt,'D4/')
EquipList = INSERT(EquipList,Pos,0,0,EquipLine)
END ;* End of LOCATE SortKey
END ;* End of check for Null EquipDesc
END;* End of check for CL_TYPE = 'E'
END ;* End of CalRec read
REPEAT
CalibListData = EquipList
end
end else
ErrorMsg = 'Error in ':Service:' service. Unable to open "CALIB_LIST" table.'
end
Case CalibType EQ 'NIST'
OPEN 'CALIB_LIST' TO TableIn then
If SelectActive EQ False$ then
SELECT TableIn
* end else
* Select 'CALIB_LIST' By "" Using Cursor else
* ErrorMsg = 'Error in ':Service:' service. Error selecting CALIB_LIST records.'
* end
end
If ErrorMsg EQ '' then
NISTList = ''
StdDescs = ''
Done = False$
Today = Date()
LOOP
READNEXT CLNo ELSE Done = True$
UNTIL Done
READ CalRec FROM TableIn,CLNo THEN
NextCalDt = XLATE('CALIB_LIST',CLNo,'NEXT_CAL_DT','X')
IF CalRec<CALIB_LIST_CL_TYPE$> = 'S' THEN
StdDesc = CalRec<CALIB_LIST_STD_DESC$>
Dept = CalRec<CALIB_LIST_DEPT$>
IF StdDesc NE '' THEN
SortKey = Dept:'*':StdDesc:'*':CLNo
LOCATE SortKey IN StdDescs BY 'AL' SETTING Pos ELSE
StdDescs = INSERT(StdDescs,1,Pos,0,SortKey)
NISTLine = CLNo
NISTLine<1,COL$DEPT> = CalRec<CALIB_LIST_DEPT$>
NISTLine<1,COL$NIST_STANDARD> = CalRec<CALIB_LIST_STD_DESC$>
NISTLine<1,COL$NIST_TSN> = CalRec<CALIB_LIST_STD_SN$>
NISTLine<1,COL$NIST_LOC> = CalRec<CALIB_LIST_STD_LOC$>
NISTLine<1,COL$NIST_CAL_INT> = CalRec<CALIB_LIST_CAL_INTERVAL$>
NISTLine<1,COL$NIST_INT_EXT> = CalRec<CALIB_LIST_CAL_LOC$>
NISTLine<1,COL$NIST_LAST_CAL> = OCONV(XLATE('CALIB_LIST',CLNo,'LAST_CAL_DT','X'),'D4/')
NISTLine<1,COL$NIST_NEXT_CAL> = OCONV(NextCalDt,'D4/')
NISTList = INSERT(NISTList,Pos,0,0,NISTLine)
END ;* End of LOCATE SortKey
END ;* End of check for Null StdDesc
END ;* End of check for CL_TYPE = 'S'
END ;* End of CalRec read
REPEAT
CalibListData = NistList
end
end else
ErrorMsg = 'Error in ':Service:' service. Unable to open "CALIB_LIST" table.'
end
Case Otherwise$
ErrorMsg = 'Error in ':Service:' service. Null CalibType passed into service'
End Case
If ErrorMsg NE '' then Error_Services('Add', ErrorMsg)
Response = CalibListData
End Service