public Status updateStatusAccordingToSignatureBlocks()

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();
    }