PSN group changes and activation now requires both

Qual and PreQual signatures.
This commit is contained in:
Infineon\Mitchem 2024-10-11 08:54:07 -07:00 committed by Mitchem Dakota (CSC FI SPS MESLEO External)
parent 10fcd17e4b
commit d90a685b44

View File

@ -10,6 +10,7 @@ COMPILE FUNCTION Comm_Prod_Spec(Instruction, Parm1,Parm2)
equate statement PRS_PROP_UNITS_ORG$.
07/27/2020 - JRO - Updated COL$ Equate for the LS table due to adding new cols.
02/23/2020 - JRO - Added in methods for Parameter checks
10/10/2024 - DJM - Changed QUOTE_SIGS to Security groups to be tied into AD groups.
*/
DECLARE SUBROUTINE Set_Property, End_Dialog, Send_Event, Set_Status, Center_Window, Post_Event, obj_Tables
@ -804,6 +805,28 @@ StatusClick:
OldStatus = XLATE('PROD_SPEC', PSNo, PROD_SPEC_STATUS$ ,'X')
NewStatus = Get_Property(@WINDOW:'.STATUS','DEFPROP')
CtrlID = @WINDOW:'.MODE_CODE'
ModeArray = Get_Property(CtrlID,'DEFPROP')
ActivationAllowed = FALSE$
BEGIN CASE
CASE ModeArray<COL$MODE_SIG,4> NE ''
ActivationAllowed = TRUE$
CASE ModeArray<COL$MODE_SIG,3> NE ''
ActivationAllowed = TRUE$
CASE ModeArray<COL$MODE_SIG,2> NE ''
ActivationAllowed = TRUE$
CASE ModeArray<COL$MODE_SIG,1> NE ''
ActivationAllowed = FALSE$
Error_Services('Add', 'Both the Pre Qual and the Qual signatures must be signed in order for the PSN to be activated.')
CASE 1
ActivationAllowed = FALSE$
Error_Services('Add', 'Both the Pre Qual and the Qual signatures must be signed in order for the PSN to be activated.')
END CASE
IF PSNo = '' THEN RETURN
If NewStatus NE OldStatus then
IF NewStatus = 'I' THEN
@ -912,18 +935,24 @@ StatusClick:
//Activation Parameters Check JRO - 2-24-2021
IF NewStatus = 'A' then
Error_Services('Clear')
MsgStruct = ""
MsgStruct<MTEXTWIDTH$> = MSG_WIDTH$
GoSub ReactorVerification
If Error_Services('NoError') then
GoSub SpecVerification
end
If Error_Services('NoError') then
GoSub ProdVerVerification
end
If Error_Services('NoError') then
GoSub StageVerification
If ActivationAllowed EQ TRUE$ then
Error_Services('Clear')
MsgStruct = ""
MsgStruct<MTEXTWIDTH$> = MSG_WIDTH$
GoSub ReactorVerification
If Error_Services('NoError') then
GoSub SpecVerification
end
If Error_Services('NoError') then
GoSub ProdVerVerification
end
If Error_Services('NoError') then
GoSub StageVerification
end
end else
Set_Property(@WINDOW:'.STATUS','DEFPROP', OldStatus)
Error = Error_Services('GetMessage')
ErrMsg(Error)
end
end
end else
@ -1418,6 +1447,8 @@ SignNextMode:
ModeArray = Get_Property(CtrlID,'DEFPROP')
Qualified = FALSE$
BEGIN CASE
CASE ModeArray<COL$MODE_SIG,4> NE '' ; NextSigPos = ''
CASE ModeArray<COL$MODE_SIG,3> NE '' ; NextSigPos = 4 ; NextMode = ModeArray<COL$MODE_CODE,4>
@ -1426,17 +1457,17 @@ SignNextMode:
CASE 1 ; NextSigPos = 1 ; NextMode = ModeArray<COL$MODE_CODE,1>
END CASE
SigInfo = XLATE('CONFIG','QUOTE_SIGS','','X')
BEGIN CASE
CASE NextSigPos = 4 ; QualUsers = SigInfo<PSNProdSigs$>
CASE NextSigPos = 3 ; QualUsers = SigInfo<PSNPreProdSigs$>
CASE NextSigPos = 2 ; QualUsers = SigInfo<PSNQualSigs$>
CASE NextSigPos = 1 ; QualUsers = SigInfo<PSNPreQualSigs$>
CASE 1 ; QualUsers = ''
CASE NextSigPos = 4 ; Qualified = (MemberOf(@USER4,'PSN_PROD'))
CASE NextSigPos = 3 ; Qualified = (MemberOf(@USER4,'PSN_PRE_PROD'))
CASE NextSigPos = 2 ; Qualified = (MemberOf(@USER4,'PSN_QUAL'))
CASE NextSigPos = 1 ; Qualified = (MemberOf(@USER4,'PSN_PRE_QUAL'))
CASE 1 ; Qualified = FALSE$
END CASE
LOCATE @USER4 IN QualUsers USING @VM SETTING Pos THEN
If Qualified EQ TRUE$ THEN
Valid = Dialog_Box( 'QUOTE_SIG_PWD_ENTRY', @WINDOW, @USER4:@VM:XLATE( 'LSL_USERS', @USER4, LSL_USERS_PASSWORD$, 'X' ) )
END ELSE
ErrorMsg = 'Current user is not an authorized ':NextMode:' signer.'
@ -1471,6 +1502,8 @@ UnsignCurrMode:
ModeArray = Get_Property(CtrlID,'DEFPROP')
Qualified = FALSE$
BEGIN CASE
CASE ModeArray<COL$MODE_SIG,4> NE '' ; UnsigPos = 4 ; UnsignMode = ModeArray<COL$MODE_CODE,4>
CASE ModeArray<COL$MODE_SIG,3> NE '' ; UnsigPos = 3 ; UnsignMode = ModeArray<COL$MODE_CODE,3>
@ -1479,17 +1512,16 @@ UnsignCurrMode:
CASE 1 ; UnsigPos = ''
END CASE
SigInfo = XLATE('CONFIG','QUOTE_SIGS','','X')
BEGIN CASE
CASE UnsigPos = 4 ; QualUsers = SigInfo<PSNProdSigs$>
CASE UnsigPos = 3 ; QualUsers = SigInfo<PSNPreProdSigs$>
CASE UnsigPos = 2 ; QualUsers = SigInfo<PSNQualSigs$>
CASE UnsigPos = 1 ; QualUsers = SigInfo<PSNPreQualSigs$>
CASE 1 ; QualUsers = ''
CASE UnsigPos = 4 ; Qualified = (MemberOf(@USER4,'PSN_PROD'))
CASE UnsigPos = 3 ; Qualified = (MemberOf(@USER4,'PSN_PRE_PROD'))
CASE UnsigPos = 2 ; Qualified = (MemberOf(@USER4,'PSN_QUAL'))
CASE UnsigPos = 1 ; Qualified = (MemberOf(@USER4,'PSN_PRE_QUAL'))
CASE 1 ; Qualified = FALSE$
END CASE
LOCATE @USER4 IN QualUsers USING @VM SETTING Pos THEN
If Qualified EQ TRUE$ THEN
Valid = Dialog_Box( 'QUOTE_SIG_PWD_ENTRY', @WINDOW, @USER4:@VM:XLATE( 'LSL_USERS', @USER4, LSL_USERS_PASSWORD$, 'X' ) )
END ELSE
ErrorMsg = 'Current user is not an authorized ':UnsignMode:' signer.'
@ -1497,7 +1529,6 @@ UnsignCurrMode:
RETURN
END
Valid = Dialog_Box( 'QUOTE_SIG_PWD_ENTRY', @WINDOW, @USER4:@VM:XLATE( 'LSL_USERS', @USER4, LSL_USERS_PASSWORD$, 'X' ) )
IF Valid = 1 THEN
CurrDate = OCONV(Date(),'D4/')