implemented approve, reject and cancel flags

main
Said Gedik 2023-05-25 11:36:49 +02:00
parent e875688aab
commit 48f94b3353
1 changed files with 19 additions and 4 deletions

View File

@ -142,9 +142,14 @@ public class Change {
.isPresent());
try {
var inApproval = inApprovalList(api.getUser(), getValueStringByID(entry, "ChangeNr"));
var flag = Flag(inApproval, getValue(entry, "State").getIntValue());
change.setFlagApprove(flag);
change.setFlagReject(flag);
var approveAndRejectFlag = approveAndReject(inApproval, getValue(entry, "State").getIntValue());
change.setFlagApprove(approveAndRejectFlag);
change.setFlagReject(approveAndRejectFlag);
var cancelFlag = cancel(getValueStringByID(entry, "SupportGroupId"), getValue(entry, "State").getIntValue());
change.setFlagCancel(cancelFlag);
} catch (ARException e) {
e.printStackTrace();
}
@ -166,11 +171,21 @@ public class Change {
return approvers != null ? approvers.contains(user) : false;
}
public boolean Flag(boolean approval, int status) {
public boolean approveAndReject(boolean approval, int status) {
boolean approvableStatus = (status == 1 || status == 10);
return approval && approvableStatus;
}
public boolean cancel(String supportGroupId, int status) throws ARException {
var queryRoles = new Query.QueryBuilder("CTM:SupportGroupFuncRoleLookUp").addFieldId("Role", 1000000014).build();
var role = api.queryFieldsById("\'Support Group ID\' = \"" + supportGroupId + "\"", queryRoles.getFieldIds(), queryRoles.getFormName(), null, 0, 0)
.get(0).get(queryRoles.getFieldId("Role")).toString();
boolean approvableStatus = status == 1;
boolean isChangeManager = role.equals("Change Manager");
return approvableStatus && isChangeManager;
}
/**
* Returns the {@link Value} of an entry based on the provided description.