diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assinatura.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assinatura.java
index 8de58f2..7c3d513 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assinatura.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assinatura.java
@@ -8,6 +8,7 @@ import javax.persistence.Id;
import javax.persistence.ManyToOne;
import br.com.centralit.framework.json.Views;
+import br.com.centralit.framework.model.Dominio;
import br.com.centralit.framework.model.Usuario;
import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit;
@@ -58,12 +59,23 @@ public class Assinatura extends PersistentObjectAudit {
private Long id;
/** Atributo usuario. */
+ @JsonView({ Views.DocumentoGedEdit.class })
@ManyToOne(fetch = FetchType.LAZY)
private Usuario usuario;
- /** Atributo documento. */
+ /** Atributo documentoGed. */
@ManyToOne(fetch = FetchType.LAZY)
- private Documento documento;
+ private DocumentoGed documentoGed;
+
+ /** Atributo tipoAssinatura. */
+ @JsonView({ Views.DocumentoGedEdit.class })
+ @ManyToOne(fetch = FetchType.LAZY)
+ private Dominio tipoAssinatura;
+
+ /** Atributo funcao. */
+ @ManyToOne(fetch = FetchType.LAZY)
+ @JsonView({ Views.DocumentoGedEdit.class })
+ private Funcao funcao;
/**
* Retorna o valor do atributo id
@@ -106,23 +118,63 @@ public class Assinatura extends PersistentObjectAudit {
}
/**
- * Retorna o valor do atributo documento
+ * Retorna o valor do atributo documentoGed
+ *
+ * @return DocumentoGed
+ */
+ public DocumentoGed getDocumentoGed() {
+
+ return documentoGed;
+ }
+
+ /**
+ * Define o valor do atributo documentoGed
.
+ *
+ * @param documentoGed
+ */
+ public void setDocumentoGed(DocumentoGed documentoGed) {
+
+ this.documentoGed = documentoGed;
+ }
+
+ /**
+ * Retorna o valor do atributo tipoAssinatura
+ *
+ * @return Dominio
+ */
+ public Dominio getTipoAssinatura() {
+
+ return tipoAssinatura;
+ }
+
+ /**
+ * Define o valor do atributo tipoAssinatura
.
+ *
+ * @param tipoAssinatura
+ */
+ public void setTipoAssinatura(Dominio tipoAssinatura) {
+
+ this.tipoAssinatura = tipoAssinatura;
+ }
+
+ /**
+ * Retorna o valor do atributo funcao
*
- * @return Documento
+ * @return Funcao
*/
- public Documento getDocumento() {
+ public Funcao getFuncao() {
- return documento;
+ return funcao;
}
/**
- * Define o valor do atributo documento
.
+ * Define o valor do atributo funcao
.
*
- * @param documento
+ * @param funcao
*/
- public void setDocumento(Documento documento) {
+ public void setFuncao(Funcao funcao) {
- this.documento = documento;
+ this.funcao = funcao;
}
}
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assunto.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assunto.java
index d66fb85..462b6c1 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assunto.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assunto.java
@@ -1,6 +1,5 @@
package br.com.centralit.api.model;
-import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java
index 000fdc3..150adf1 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java
@@ -235,6 +235,10 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
@JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class })
private Collection interessados;
+ @OneToMany(fetch = FetchType.LAZY, mappedBy = "documentoGed", cascade = CascadeType.ALL, orphanRemoval = true)
+ @JsonView({ Views.DocumentoGedEdit.class })
+ private Collection assinaturas;
+
/**
* @return the novaVersao
*/
@@ -973,4 +977,24 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
this.tipoSuporteDocumento = tipoSuporteDocumento;
}
+ /**
+ * Retorna o valor do atributo assinaturas
+ *
+ * @return Collection
+ */
+ public Collection getAssinaturas() {
+
+ return assinaturas;
+ }
+
+ /**
+ * Define o valor do atributo assinaturas
.
+ *
+ * @param assinaturas
+ */
+ public void setAssinaturas(Collection assinaturas) {
+
+ this.assinaturas = assinaturas;
+ }
+
}
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/InicializarEcmServiceImpl.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/InicializarEcmServiceImpl.java
index e54e6d4..dd08ee9 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/InicializarEcmServiceImpl.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/InicializarEcmServiceImpl.java
@@ -141,6 +141,7 @@ public class InicializarEcmServiceImpl extends UtilStartup {
filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/repository/EstruturaOrganizacionalECMRepository.js", this.dominioJS, menuCadastroProcesso));
filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/repository/ConfiguracaoUsuarioUnidadeRepository.min.js", this.dominioJS, menuCadastroProcesso));
+ filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/repository/AssinaturaRepository.js", this.dominioJS, menuCadastroProcesso));
filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/repository/DocumentoGedRepository.js", this.dominioJS, menuCadastroProcesso));
filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/repository/DocumentoGedRepository.min.js", this.dominioJS, menuCadastroProcesso));
filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/controller/GerenciarProcessoController.js", this.dominioJS, menuCadastroProcesso));
diff --git a/cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java b/cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java
index b39deeb..c513c05 100644
--- a/cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java
+++ b/cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java
@@ -415,6 +415,8 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.CERTIFICADO_DIGITAL", "Certificado Digital", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ASSINATURA_DOCUMENTO", "Assinatura de Documento", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ASSINAR", "Assinar", dominio, modulo));
+ internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.DATA_DA_ASSINATURA", "Data da assinatura", dominio, modulo));
+ internacionalizacaoList.add(new Internacionalizacao("ECM.ASSINADO_SUCESSO", "Documento assinado com sucesso!", dominio, modulo));
}
@@ -448,7 +450,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.REMOCAO_COM_VINCULO", "Não é possível excluir pois o mesmo encontra-se em uso por outro cadastro no sistema!", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.PERMISSAO_OPERACAO", "Você não tem permissão para executar a operação.", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.GRUPO_PADRAO_EM_OUTRA_UNIDADE", "O grupo selecionado como padrão está sendo usado como grupo padrão da unidade ", dominio, modulo));
-
+ internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.SENHA_ASSINATURA", "Informe sua senha para assinar!", dominio, modulo));
}
/**
diff --git a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js
index 1221fdd..0acaaed 100644
--- a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js
+++ b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js
@@ -1,8 +1,8 @@
'use strict';
-citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$timeout','GerenciarProcessoRepository', 'ProcessoRepository', 'RuntimeManagerRepository','$rootScope', 'DocumentoGedRepository', 'HistoricoAlteracaoProcessoRepository','UnidadeRepository','UnidadeProcessoRepository','CredencialProcessoRepository', 'PessoaRepository',
- function GerenciarProcessoController($scope, $translate, $timeout, GerenciarProcessoRepository, ProcessoRepository, RuntimeManagerRepository,$rootScope, DocumentoGedRepository, HistoricoAlteracaoProcessoRepository,UnidadeRepository, UnidadeProcessoRepository,CredencialProcessoRepository, PessoaRepository) {
+citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$timeout','GerenciarProcessoRepository', 'ProcessoRepository', 'RuntimeManagerRepository','$rootScope', 'DocumentoGedRepository', 'HistoricoAlteracaoProcessoRepository','UnidadeRepository','UnidadeProcessoRepository','CredencialProcessoRepository', 'PessoaRepository', '$q', 'AssinaturaRepository',
+ function GerenciarProcessoController($scope, $translate, $timeout, GerenciarProcessoRepository, ProcessoRepository, RuntimeManagerRepository,$rootScope, DocumentoGedRepository, HistoricoAlteracaoProcessoRepository,UnidadeRepository, UnidadeProcessoRepository,CredencialProcessoRepository, PessoaRepository, $q, AssinaturaRepository) {
$scope.processo = {};
$scope.iconAnexo = {};
@@ -30,7 +30,7 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim
$scope.isGerenciarCredencialProcesso = false;
$scope.isClassificarProcessoDocumento = false;
$scope.isAtribuirProcesso = false;
- $scope.isAssinarDocumento = false;
+ $scope.exibirAssinarDocAnexo = false;
};
// CRIAR RELACIONAMENTO DE PROCESSO
@@ -701,16 +701,43 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim
$scope.abrirAssinarDocumento = function(documento) {
$scope.fecharPagina();
$scope.numeroDocumento = documento.numero ? documento.numero : '';
- $scope.isAssinarDocumento = false;
- _obterPermissaoAssinaturaDocumento();
+ $scope.exibirAssinarDocAnexo = false;
+ $scope.documentoSelecionado = null;
+ if(documento.formaCriacao.codigo === 1){
+ //TODO ABRIR DOCUMENTO ONLINE
+ } else if(documento.formaCriacao.codigo === 2){
+ _obterAssinaturasDocumento(documento.id).then(function(documentoSelecionado){
+ $scope.documentoSelecionado = documentoSelecionado;
+ _validarAssinaturaPorUsuario(documento.id).then(function(exibirIncluirAssinatura){
+ $scope.exibirIncluirAssinatura = !(exibirIncluirAssinatura == true);
+ _obterPermissaoAssinaturaDocumentoExterno();
+ });
+ });
+ }
};
- function _obterPermissaoAssinaturaDocumento(){
+ function _validarAssinaturaPorUsuario(idDocumento){
+ var deferred = $q.defer();
+ AssinaturaRepository.validarAssinaturaPorUsuario(idDocumento).then(function(result){
+ deferred.resolve(result);
+ });
+ return deferred.promise;
+ }
+
+ function _obterAssinaturasDocumento(idDocumento) {
+ var deferred = $q.defer();
+ DocumentoGedRepository.get(idDocumento).then(function(result){
+ deferred.resolve(result.originalElement);
+ });
+ return deferred.promise;
+ }
+
+ function _obterPermissaoAssinaturaDocumentoExterno(){
$scope.pessoa = {};
PessoaRepository.getPermissaoAssinaturaDocumento().then(function(result){
- $scope.isAssinarDocumento = result.originalElement.isAssinarDocumento;
+ $scope.exibirAssinarDocAnexo = result.originalElement.exibirAssinarDocAnexo;
$scope.pessoa = result.originalElement;
- if(!$scope.isAssinarDocumento) {
+ if(!$scope.exibirAssinarDocAnexo) {
$scope.showAlert("error", $translate.instant('ECM.MSG.ERRO_PERMISSAO_ASSINAR'));
return;
}
@@ -737,7 +764,7 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim
}
function _getFuncao(parceiro, isServidor) {
- var funcao = {nome : '', isServidor : isServidor};
+ var funcao = {id : parceiro.funcao.id, nome : '', isServidor : isServidor};
if(parceiro.cargo)
funcao.nome = funcao.nome.concat(parceiro.cargo).concat(' / ').concat(parceiro.funcao.nome);
else
@@ -745,4 +772,45 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim
return funcao;
}
+ $scope.assinar = function() {
+ if(!$scope.autenticacao){
+ $scope.showAlert("error", $translate.instant('ECM.VALIDACAO.SENHA_ASSINATURA'));
+ return;
+ }
+
+ AssinaturaRepository.saveAssinaturaInterna(_getAssinatura()).then(function(result){
+ if($scope.documentoSelecionado.assinaturas)
+ $scope.documentoSelecionado.assinaturas.push(result.originalElement);
+ $scope.autenticacao = null;
+ $scope.exibirIncluirAssinatura = false;
+ $scope.showAlert("success", $translate.instant('ECM.ASSINADO_SUCESSO'));
+ });
+ };
+
+ function _getAssinatura(){
+ return {documentoGed : { id : $scope.documentoSelecionado.id }, funcao : {id : _getFuncaoChecked()} };
+ };
+
+ function _getFuncaoChecked(){
+ for(var pos = 0; pos < $scope.funcoes.length; pos++){
+ if($scope.funcoes[pos].isServidor)
+ return $scope.funcoes[pos].id;
+ }
+ };
+
+ /*
+ * Abre panel visualizar assinaturas
+ */
+ $scope.visualizarAssinaturasDocumento = function(documento){
+ $scope.fecharPagina();
+ $scope.numeroDocumento = documento.numero ? documento.numero : '';
+ $scope.exibirAssinarDocAnexo = false;
+ $scope.documentoSelecionado = null;
+ $scope.exibirIncluirAssinatura = false;
+ _obterAssinaturasDocumento(documento.id).then(function(documentoSelecionado){
+ $scope.documentoSelecionado = documentoSelecionado;
+ $scope.exibirAssinarDocAnexo = true;
+ });
+ };
+
}] );
diff --git a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoListUnidadeController.js b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoListUnidadeController.js
index ed2d344..8da7332 100644
--- a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoListUnidadeController.js
+++ b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoListUnidadeController.js
@@ -134,7 +134,9 @@ citApp.controller('GerenciarProcessoListUnidadeController', ['$scope', 'workflow
assignment.workItem = $scope.workItem;
assignment.checked = false;
});
- $scope.assignments[0].checked = true;
+ if($scope.assignments.length > 0){
+ $scope.assignments[0].checked = true;
+ }
};
$scope.selectAssignment = function(assignmentSelect) {
diff --git a/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaEdit.html b/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaEdit.html
index ea3d792..d0de2a0 100644
--- a/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaEdit.html
+++ b/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaEdit.html
@@ -1,68 +1,40 @@
-
-