in signature/src/main/java/com/chemistry/enotebook/signature/entity/Document.java [124:147]
public Status updateStatusAccordingToSignatureBlocks() {
if(!this.getStatus().equals(Status.SIGNED) && !this.getStatus().equals(Status.REJECTED)) {
boolean allSigned = true;
boolean someSigned = false;
for(DocumentSignatureBlock signatureBlock : this.getDocumentSignatureBlocks()) {
allSigned = allSigned && signatureBlock.getStatus().equals(Status.SIGNED);
someSigned = someSigned || signatureBlock.getStatus().equals(Status.SIGNED);
if(signatureBlock.getStatus().equals(Status.REJECTED)) {
this.setStatus(Status.REJECTED);
return this.getStatus();
}
}
if(allSigned){
this.setStatus(Status.SIGNED);
} else if(someSigned) {
this.setStatus(Status.SIGNING);
} else {
this.setStatus(Status.SUBMITTED);
}
}
return this.getStatus();
}