function rds_wo_verify_maint( WO ) declare function msg, fieldcount, popup, next_key, Dialog_Box declare subroutine extract_si_keys, make.list $insert msg_equates $insert wo_verify_equ $insert rds_equ $insert popup_equates equ CrLf$ to char(13):char(10) open 'RDS' to RdsTable else Void = msg( '', 'Unable to open RDS...' ) return 0 end open 'WO_VERIFY' to WOVerifyTable else Void = msg( '', 'Unable to open WO_VERIFY...' ) return 0 end extract_si_keys( 'RDS', 'WO', WO, RdsIds ) if RdsIds then Rcnt = fieldcount( RdsIds, @vm ) Vids = xlate( 'RDS', RdsIds, rds_wo_verify_id$, 'X' ) PreSelect = '' PreSelectRDS = '' for i = 1 to Rcnt if Vids<1,i> <> '' then PreSelect<1,-1> = i PreSelectRDS<1,-1> = RdsIds<1,i> end next i PopRec = xlate( 'SYSREPOSPOPUPS', @appid<1>:'**':'RDS_QUERY', '', 'X' ) PopRec = 'Choose the RDSs that you wish to have WORK ORDER VERIFICATION.' if PreSelect <> '' then PopRec = PreSelect end convert @vm to @fm in RdsIds HoldRDSIds = RdsIds make.list( 0, RdsIds, '', '' ) ChoosenKeys = popup( @window, PopRec ) if ChoosenKeys then Ccnt = fieldcount( ChoosenKeys, @vm ) * FIRST ADD THE NEW ONES RDSUpdateMsg = '' for i = 1 to Ccnt ThisCRDS = ChoosenKeys<1,i> locate ThisCRDS in HoldRDSIds using @fm setting Rpos then locate Rpos in PreSelect using @vm setting Ppos then * WAS ALREADY SELECTED AND THE RDS WILL BE STAMPED WITH A VERIFICATION end else * LOCK RDS OTHERWISE DO NOT CREATE VERIFICATION lock RDSTable, ThisCRDS then * CREATE THE VERIFICATION AND STAMP RDS ID KeyToUse = next_key( 'WO_VERIFY', WOVerifyTable, 'NEXT', '' ) WOVRec = '' WOVRec = @user4 WOVRec = date() WOVRec = ThisCRDS WOVRec = 'O' write WOVRec on WOVerifyTable, KeyToUse else Void = msg( '', 'Unable to write WO_VERIFY ':KeyToUse ) return 0 end unlock WOVerifyTable, KeyToUse else Void = msg( '', 'Unable to unlock WO_VERIFY ':KeyToUse ) return 0 end Void = next_key( 'WO_VERIFY', WOVerifyTable, 'UPDATE', KeyToUse ) * NOW UPDATE THE RDS WITH THE WO_VERIFY ID writev KeyToUse on RDSTable, ThisCRDS, rds_wo_verify_id$ else Void = msg( '', 'Unable to write to RDS ':ThisCRDS ) return 0 end unlock RDSTable, ThisCRDS else Void = msg( '', 'Unable to unlock RDS ':ThisCRDS ) return 0 end RDSUpdateMsg := 'RDS# ':ThisCRDS:' Run Order# ':xlate( 'RDS', ThisCRDS, 'RUN_ORDER_NUM', 'X' ):CrLf$ end else MsgInfo = '' MsgInfo = '!' MsgInfo = 'RDS ':ThisCRDS:' is in use and no verification can be created...Try at a later point.' Void = msg( '', MsgInfo ) end end end next i if RDSUpdateMsg <> '' then RDSUpdateMsg[-2,2] = '' * RDSUpdateMsg = 'The Following RDSs were stamped as needing Work Order Verification':CrLf$:RDSUpdateMsg * MsgInfo = '' * MsgInfo = '!' * MsgInfo = RDSUpdateMsg * Void = msg( '', MsgInfo ) Void = Dialog_Box('RDS_WORK_ORDER_MAINTENANCE', @Window, RDSUpdateMsg) end * NOW DID THEY REMOVE A VERIFICATION THAT WAS PREVIOUSLY SELECTED IS SO THEN * PROMPT THE USER TO MAKE SURE RDSUpdateMsg = '' Pcnt = fieldcount( PreSelectRds, @vm ) for i = 1 to Pcnt TPRds = PreSelectRds<1,i> locate TPRds in ChoosenKeys using @vm setting OKPos else WOVerifyID = xlate( 'RDS', TPRds, rds_wo_verify_id$, 'X' ) TechSig = xlate( 'WO_VERIFY', WOVerifyID, wo_verify_tech_sig$, 'X' ) if TechSig = '' then lock RDSTable, TPRds then lock WOVerifyTable, WOVerifyID then delete WOVerifyTable, WOVerifyID else Void = msg( '', 'Unable to delete WO_VERIFY ':WOVerifyID ) end unlock WOVerifyTable, WOVerifyID else Void = msg( '', 'Unable to unlock WO_VERIFY ':WOVerifyID ) return 0 end writev '' on RDSTable, TPRds, rds_wo_verify_id$ else Void = msg( '', 'Unable to write to RDS ':TPRds ) return 0 end unlock RDSTable, TPRds else Void = msg( '', 'Unable to unlock RDS ':TPRds ) return 0 end RDSUpdateMsg := 'RDS# ':TPRds:' Run Order# ':xlate( 'RDS', TPRds, 'RUN_ORDER_NUM', 'X' ):CrLf$ end else MsgInfo = '' MsgInfo = '!' MsgInfo = 'RDS ':TPRds:' and verification records are in use and the verification can not be removed...Try at a later point.' Void = msg( '', MsgInfo ) end end else MsgInfo = '' MsgInfo = '!' MsgInfo = 'RDS ':TPRds:' is in use and the verification can not be removed...Try at a later point.' Void = msg( '', MsgInfo ) end end else MsgInfo = '' MsgInfo = '!' MsgInfo = 'RDS ':TPRds:' has already been Work Order Verified by a technician and cannot be removed.' Void = msg( '', MsgInfo ) end end next i if RDSUpdateMsg <> '' then RDSUpdateMsg[-2,2] = '' RDSUpdateMsg = 'The Following RDSs had Work Order Verification removed:':CrLf$:RDSUpdateMsg MsgInfo = '' MsgInfo = '!' MsgInfo = RDSUpdateMsg Void = msg( '', MsgInfo ) end end; * NO CHOOSEN KEYS end else MsgInfo = '' MsgInfo = 'Error extracting keys...' MsgInfo = 'H' Void = msg( '', MsgInfo ) return 0 end return 0