Merged PR 19143: Require 100 percent centerpoint on MU conversion.

Initial commit.

Create FQASignatureReady service in QA_SERVICES.

Create SignFQA service in SIGNATURE_SERVICES.

Commit remaining portion of project.

Implement changes requested in review meeting.

Fix typo. Add new MU logic to final entry point.

Restrict logic to only apply to 'THICK'
inspections.

Bypass new logic if Biorad 4 and 5 are down.
This commit is contained in:
Mitchem Dakota (CSC FI SPS MESLEO External)
2025-06-18 22:23:57 +02:00
parent 5cb17c6d52
commit 273b7f67a6
11 changed files with 254 additions and 83 deletions

View File

@ -62,10 +62,11 @@ Equ COL$TAGS to 9
Equ COL$TOOL_ID to 10
Declare function obj_Prod_Spec, RDS_Services, Error_Services, Signature_Services, Memory_Services, obj_RDS_Test
Declare function SRP_Array
Declare function Database_Services, obj_WO_Mat, Dialog_Box, MemberOf, Msg, QA_Services, Datetime, Supplement_Services
Declare function Environment_Services, GetTickCount
Declare subroutine Error_Services, Popup, Memory_Services, SRP_Stopwatch, Set_Status, Database_Services, obj_WO_Mat
Declare subroutine Obj_Notes, Signature_Services, Obj_WO_Mat_Log, ErrMsg, Mona_Services
Declare subroutine Obj_Notes, Signature_Services, Obj_WO_Mat_Log, ErrMsg, Obj_Rds, Lot_Event_Services, Mona_Services
PSNKey = ServiceKeyID
ReactorKey = ServiceKeyID
@ -2841,6 +2842,64 @@ Service SignSupplement(RDSNo, User)
end service
Service UnsignFQAStage(RDSNo)
IsEPP = Rds_Services('IsEpiPro', RDSNo)
If IsEpp EQ False$ then
Database_Services('ActivateRecord', 'RDS', RDSNo)
If Error_Services('NoError') then
Valid = ''
CurRdsNo = RDSNo
WONo = {WO}
CassNo = {CASS_NO}
WOStep = {WO_STEP}
WOMatKey = WONo:'*':CassNo
WOMatRec = XLATE('WO_MAT',WOMatKey,'','X')
// Unsign WO_MAT
InvWH = WOMatRec<WO_MAT_INV_WH$>
InvLoc = WOMatRec<WO_MAT_INV_LOCATION$>
InvAction = WOMatRec<WO_MAT_INV_ACTION$>
InvDTM = WOMatRec<WO_MAT_INV_DTM$>
InvUser = WOMatRec<WO_MAT_INV_USER$>
// Get List of keys to delete
InvCount = Dcount(InvWH, @VM)
DeleteList = ''
For I = 1 to InvCount
ThisLoc = InvAction<1,I>
If ThisLoc EQ '1QA' or ThisLoc EQ 'POST' then
DeleteList<-1> = I
end
Next I
// Reverse array to work backwards through deletions
DeleteList = SRP_Array('Reverse', DeleteList, @FM)
If DeleteList NE '' then
For Each Item in DeleteList Using @FM
WOMatRec = Delete(WOMatRec, WO_MAT_INV_WH$, Item, 0)
WOMatRec = Delete(WOMatRec, WO_MAT_INV_LOCATION$, Item, 0)
WOMatRec = Delete(WOMatRec, WO_MAT_INV_ACTION$, Item, 0)
WOMatRec = Delete(WOMatRec, WO_MAT_INV_DTM$, Item, 0)
WOMatRec = Delete(WOMatRec, WO_MAT_INV_USER$, Item, 0)
Next Item
Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRec, True$, False$, False$)
end
// Unsign RDS
{SUP_VER_SIG} = ''
{SUP_VER_SIG_DATE} = ''
{SUP_VER_SIG_TIME} = ''
Database_Services('WriteDataRow', 'RDS', RDSNo, @Record, True$, False$, False$)
** Create LOT_EVENT **
Lot_Event_Services('CreateLotEvent', RDSNo, Datetime(), 'UNSIGN_FQA', '', '', @USER4, True$, 'RDS')
end else
Error_Services('Add', 'Error accessing RDS.')
end
end else
Error_Services('Add', 'This service is currently only available for non-EpiPro lots.')
end
end service
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Internal GoSubs
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -2858,3 +2917,7 @@ GetMostRecentSig:
return