Commit 1589c59d8c50040183da20285db5697e4c63a65f

Authored by gabriel.damasceno
0 parents
Exists in master

enviando arquivos da branch de unificação tarefa-4005

Showing 388 changed files with 17970 additions and 0 deletions   Show diff stats

Too many changes.

To preserve performance only 100 of 388 files displayed.

.project 0 → 100644
  1 +++ a/.project
... ... @@ -0,0 +1,17 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<projectDescription>
  3 + <name>cit-alcada</name>
  4 + <comment></comment>
  5 + <projects>
  6 + </projects>
  7 + <buildSpec>
  8 + <buildCommand>
  9 + <name>org.eclipse.m2e.core.maven2Builder</name>
  10 + <arguments>
  11 + </arguments>
  12 + </buildCommand>
  13 + </buildSpec>
  14 + <natures>
  15 + <nature>org.eclipse.m2e.core.maven2Nature</nature>
  16 + </natures>
  17 +</projectDescription>
... ...
cit-alcada-api/.classpath 0 → 100644
  1 +++ a/cit-alcada-api/.classpath
... ... @@ -0,0 +1,32 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<classpath>
  3 + <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java">
  4 + <attributes>
  5 + <attribute name="optional" value="true"/>
  6 + <attribute name="maven.pomderived" value="true"/>
  7 + </attributes>
  8 + </classpathentry>
  9 + <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
  10 + <attributes>
  11 + <attribute name="maven.pomderived" value="true"/>
  12 + </attributes>
  13 + </classpathentry>
  14 + <classpathentry kind="src" output="target/test-classes" path="src/test/java">
  15 + <attributes>
  16 + <attribute name="optional" value="true"/>
  17 + <attribute name="maven.pomderived" value="true"/>
  18 + </attributes>
  19 + </classpathentry>
  20 + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
  21 + <attributes>
  22 + <attribute name="maven.pomderived" value="true"/>
  23 + </attributes>
  24 + </classpathentry>
  25 + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
  26 + <attributes>
  27 + <attribute name="maven.pomderived" value="true"/>
  28 + <attribute name="org.eclipse.jst.component.nondependency" value=""/>
  29 + </attributes>
  30 + </classpathentry>
  31 + <classpathentry kind="output" path="target/classes"/>
  32 +</classpath>
... ...
cit-alcada-api/.project 0 → 100644
  1 +++ a/cit-alcada-api/.project
... ... @@ -0,0 +1,36 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<projectDescription>
  3 + <name>cit-alcada-api</name>
  4 + <comment></comment>
  5 + <projects>
  6 + </projects>
  7 + <buildSpec>
  8 + <buildCommand>
  9 + <name>org.eclipse.wst.common.project.facet.core.builder</name>
  10 + <arguments>
  11 + </arguments>
  12 + </buildCommand>
  13 + <buildCommand>
  14 + <name>org.eclipse.jdt.core.javabuilder</name>
  15 + <arguments>
  16 + </arguments>
  17 + </buildCommand>
  18 + <buildCommand>
  19 + <name>org.eclipse.wst.validation.validationbuilder</name>
  20 + <arguments>
  21 + </arguments>
  22 + </buildCommand>
  23 + <buildCommand>
  24 + <name>org.eclipse.m2e.core.maven2Builder</name>
  25 + <arguments>
  26 + </arguments>
  27 + </buildCommand>
  28 + </buildSpec>
  29 + <natures>
  30 + <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
  31 + <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
  32 + <nature>org.eclipse.jdt.core.javanature</nature>
  33 + <nature>org.eclipse.m2e.core.maven2Nature</nature>
  34 + <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
  35 + </natures>
  36 +</projectDescription>
... ...
cit-alcada-api/.settings/org.eclipse.core.resources.prefs 0 → 100644
  1 +++ a/cit-alcada-api/.settings/org.eclipse.core.resources.prefs
... ... @@ -0,0 +1,4 @@
  1 +eclipse.preferences.version=1
  2 +encoding//src/main/java=UTF-8
  3 +encoding//src/main/resources=UTF-8
  4 +encoding/<project>=UTF-8
... ...
cit-alcada-api/.settings/org.eclipse.jdt.core.prefs 0 → 100644
  1 +++ a/cit-alcada-api/.settings/org.eclipse.jdt.core.prefs
... ... @@ -0,0 +1,8 @@
  1 +eclipse.preferences.version=1
  2 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
  3 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
  4 +org.eclipse.jdt.core.compiler.compliance=1.7
  5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
  6 +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
  7 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
  8 +org.eclipse.jdt.core.compiler.source=1.7
... ...
cit-alcada-api/.settings/org.eclipse.wst.common.component 0 → 100644
  1 +++ a/cit-alcada-api/.settings/org.eclipse.wst.common.component
... ... @@ -0,0 +1,6 @@
  1 +<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
  2 + <wb-module deploy-name="cit-alcada-api">
  3 + <wb-resource deploy-path="/" source-path="/src/main/java"/>
  4 + <wb-resource deploy-path="/" source-path="/src/main/resources"/>
  5 + </wb-module>
  6 +</project-modules>
... ...
cit-alcada-api/.settings/org.eclipse.wst.common.project.facet.core.xml 0 → 100644
  1 +++ a/cit-alcada-api/.settings/org.eclipse.wst.common.project.facet.core.xml
... ... @@ -0,0 +1,5 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<faceted-project>
  3 + <installed facet="java" version="1.7"/>
  4 + <installed facet="jst.utility" version="1.0"/>
  5 +</faceted-project>
... ...
cit-alcada-api/.settings/org.eclipse.wst.validation.prefs 0 → 100644
  1 +++ a/cit-alcada-api/.settings/org.eclipse.wst.validation.prefs
... ... @@ -0,0 +1,2 @@
  1 +disabled=06target
  2 +eclipse.preferences.version=1
... ...
cit-alcada-api/bin/.project 0 → 100644
  1 +++ a/cit-alcada-api/bin/.project
... ... @@ -0,0 +1,36 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<projectDescription>
  3 + <name>cit-alcada-api</name>
  4 + <comment></comment>
  5 + <projects>
  6 + </projects>
  7 + <buildSpec>
  8 + <buildCommand>
  9 + <name>org.eclipse.wst.common.project.facet.core.builder</name>
  10 + <arguments>
  11 + </arguments>
  12 + </buildCommand>
  13 + <buildCommand>
  14 + <name>org.eclipse.jdt.core.javabuilder</name>
  15 + <arguments>
  16 + </arguments>
  17 + </buildCommand>
  18 + <buildCommand>
  19 + <name>org.eclipse.wst.validation.validationbuilder</name>
  20 + <arguments>
  21 + </arguments>
  22 + </buildCommand>
  23 + <buildCommand>
  24 + <name>org.eclipse.m2e.core.maven2Builder</name>
  25 + <arguments>
  26 + </arguments>
  27 + </buildCommand>
  28 + </buildSpec>
  29 + <natures>
  30 + <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
  31 + <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
  32 + <nature>org.eclipse.jdt.core.javanature</nature>
  33 + <nature>org.eclipse.m2e.core.maven2Nature</nature>
  34 + <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
  35 + </natures>
  36 +</projectDescription>
... ...
cit-alcada-api/bin/.settings/org.eclipse.core.resources.prefs 0 → 100644
  1 +++ a/cit-alcada-api/bin/.settings/org.eclipse.core.resources.prefs
... ... @@ -0,0 +1,4 @@
  1 +eclipse.preferences.version=1
  2 +encoding//src/main/java=UTF-8
  3 +encoding//src/main/resources=UTF-8
  4 +encoding/<project>=UTF-8
... ...
cit-alcada-api/bin/.settings/org.eclipse.jdt.core.prefs 0 → 100644
  1 +++ a/cit-alcada-api/bin/.settings/org.eclipse.jdt.core.prefs
... ... @@ -0,0 +1,5 @@
  1 +eclipse.preferences.version=1
  2 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
  3 +org.eclipse.jdt.core.compiler.compliance=1.7
  4 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
  5 +org.eclipse.jdt.core.compiler.source=1.7
... ...
cit-alcada-api/bin/pom.xml 0 → 100644
  1 +++ a/cit-alcada-api/bin/pom.xml
... ... @@ -0,0 +1,61 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!-- ******************************************************************************************************************** -->
  3 +<!-- * LICENCA*GPLv2 * -->
  4 +<!-- * Copyright [2011,2012,2013,2014,2015] da CentralIT Tecnologia da Informação Ltda (www.centralit.com.br) * -->
  5 +<!-- * * -->
  6 +<!-- * Este arquivo é parte do programa/software: Citsmart (www.citsmart.com.br) * -->
  7 +<!-- * * -->
  8 +<!-- * O Citsmart é um software livre; você pode redistribui-lo e/ou modificá-lo dentro dos termos da Licença * -->
  9 +<!-- * Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão 2 da Licença. * -->
  10 +<!-- * * -->
  11 +<!-- * Este programa/software é distribuído na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem uma * -->
  12 +<!-- * garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral * -->
  13 +<!-- * GNU/GPL em português para maiores detalhes. * -->
  14 +<!-- * * -->
  15 +<!-- * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título 'LICENCA.txt', junto com este * -->
  16 +<!-- * programa/software, se não, acesse o Portal do Software Público Brasileiro no endereço www.softwarepublico.gov.br * -->
  17 +<!-- * ou escreva para a Fundação do Software Livre (FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,USA * -->
  18 +<!-- ******************************************************************************************************************** -->
  19 +<project
  20 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
  21 + xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  22 + <modelVersion>4.0.0</modelVersion>
  23 +
  24 + <parent>
  25 + <groupId>br.com.centralit</groupId>
  26 + <artifactId>cit-alcada</artifactId>
  27 + <version>1.8.0-SNAPSHOT</version>
  28 + </parent>
  29 +
  30 + <artifactId>cit-alcada-api</artifactId>
  31 + <name>cit-alcada-api</name>
  32 +
  33 + <properties>
  34 + <findbugs.config.path>${project.parent.parent.parent.basedir}/filterfile.xml</findbugs.config.path>
  35 + <license.config.path>${project.parent.parent.basedir}/src/licensing</license.config.path>
  36 + <maven-antrun-plugin.phase>package</maven-antrun-plugin.phase>
  37 + </properties>
  38 +
  39 + <dependencies>
  40 + <dependency>
  41 + <groupId>br.com.centralit</groupId>
  42 + <artifactId>cit-core</artifactId>
  43 + <version>${cit-core.version}</version>
  44 + </dependency>
  45 + <dependency>
  46 + <groupId>br.com.centralit</groupId>
  47 + <artifactId>cit-portal-api</artifactId>
  48 + <version>${project.version}</version>
  49 + </dependency>
  50 + <dependency>
  51 + <groupId>br.com.centralit</groupId>
  52 + <artifactId>cit-tabelas-corp-api</artifactId>
  53 + <version>${project.version}</version>
  54 + </dependency>
  55 + <dependency>
  56 + <groupId>org.json</groupId>
  57 + <artifactId>json</artifactId>
  58 + </dependency>
  59 + </dependencies>
  60 +</project>
  61 +
... ...
cit-alcada-api/bin/src/main/java/br/com/centralit/api/dao/CentroResultadoDelegacaoDao.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/dao/LimiteAprovacaoAlcadaDao.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/dao/LimiteAprovacaoDao.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/dao/LimiteAprovacaoNivelAutoridadeDao.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/dao/LimiteAprovacaoValorDao.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/dao/SolicitacaoAlcadaDao.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/dao/impl/CentroResultadoDelegacaoDaoHibernate.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/dao/impl/LimiteAprovacaoAlcadaDaoHibernate.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/dao/impl/LimiteAprovacaoDaoHibernate.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/dao/impl/LimiteAprovacaoNivelAutoridadeDaoHibernate.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/dao/impl/LimiteAprovacaoValorDaoHibernate.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/dao/impl/SolicitacaoAlcadaDaoHibernate.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/framework/json/ViewsAlcada$AlcadaView.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/framework/json/ViewsAlcada$LimiteAprovacaoView.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/framework/json/ViewsAlcada$RecuperacaoAlcadaView.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/framework/json/ViewsAlcada.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/model/LimiteAprovacao.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/model/LimiteAprovacaoAlcada.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/model/LimiteAprovacaoNivelAutoridade.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/model/LimiteAprovacaoValor.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/model/ResponsavelAlcada.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/model/SolicitacaoAlcada.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/model/ValorAcumulado.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/package-info.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/CentroResultadoDelegacaoService.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/LimiteAprovacaoAlcadaService.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/LimiteAprovacaoNivelAutoridadeService.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/LimiteAprovacaoService.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/LimiteAprovacaoValorService.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/SolicitacaoAlcadaService.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/impl/CentroResultadoDelegacaoServiceImpl.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/impl/InicializarAlcadaServiceImpl.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/impl/LimiteAprovacaoAlcadaServiceImpl.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/impl/LimiteAprovacaoNivelAutoridadeServiceImpl.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/impl/LimiteAprovacaoServiceImpl.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/impl/LimiteAprovacaoValorServiceImpl.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/impl/SolicitacaoAlcadaServiceImpl.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/validation/CentroResultadoDelegacaoValidator.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/validation/LimiteAprovacaoAlcadaValidator.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/validation/LimiteAprovacaoNivelAutoridadeValidator.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/validation/LimiteAprovacaoValidator.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/validation/LimiteAprovacaoValorValidator.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/java/br/com/centralit/api/service/validation/SolicitacaoAlcadaValidator.class 0 → 100644
No preview for this file type
cit-alcada-api/bin/src/main/resources/.gitignore 0 → 100644
  1 +++ a/cit-alcada-api/bin/src/main/resources/.gitignore
... ... @@ -0,0 +1 @@
  1 +/*.tag
... ...
cit-alcada-api/bin/target/classes/META-INF/MANIFEST.MF 0 → 100644
  1 +++ a/cit-alcada-api/bin/target/classes/META-INF/MANIFEST.MF
... ... @@ -0,0 +1,5 @@
  1 +Manifest-Version: 1.0
  2 +Built-By: gabriel.damasceno
  3 +Build-Jdk: 1.8.0_45
  4 +Created-By: Maven Integration for Eclipse
  5 +
... ...
cit-alcada-api/bin/target/classes/META-INF/maven/br.com.centralit/cit-alcada-api/pom.properties 0 → 100644
  1 +++ a/cit-alcada-api/bin/target/classes/META-INF/maven/br.com.centralit/cit-alcada-api/pom.properties
... ... @@ -0,0 +1,7 @@
  1 +#Generated by Maven Integration for Eclipse
  2 +#Thu Mar 17 13:13:12 BRT 2016
  3 +version=1.8.0-SNAPSHOT
  4 +groupId=br.com.centralit
  5 +m2e.projectName=cit-alcada-api
  6 +m2e.projectLocation=D\:\\repositorios_git\\citsmartgrp\\cit-alcada\\cit-alcada-api
  7 +artifactId=cit-alcada-api
... ...
cit-alcada-api/bin/target/classes/META-INF/maven/br.com.centralit/cit-alcada-api/pom.xml 0 → 100644
  1 +++ a/cit-alcada-api/bin/target/classes/META-INF/maven/br.com.centralit/cit-alcada-api/pom.xml
... ... @@ -0,0 +1,61 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!-- ******************************************************************************************************************** -->
  3 +<!-- * LICENCA*GPLv2 * -->
  4 +<!-- * Copyright [2011,2012,2013,2014,2015] da CentralIT Tecnologia da Informação Ltda (www.centralit.com.br) * -->
  5 +<!-- * * -->
  6 +<!-- * Este arquivo é parte do programa/software: Citsmart (www.citsmart.com.br) * -->
  7 +<!-- * * -->
  8 +<!-- * O Citsmart é um software livre; você pode redistribui-lo e/ou modificá-lo dentro dos termos da Licença * -->
  9 +<!-- * Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão 2 da Licença. * -->
  10 +<!-- * * -->
  11 +<!-- * Este programa/software é distribuído na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem uma * -->
  12 +<!-- * garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral * -->
  13 +<!-- * GNU/GPL em português para maiores detalhes. * -->
  14 +<!-- * * -->
  15 +<!-- * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título 'LICENCA.txt', junto com este * -->
  16 +<!-- * programa/software, se não, acesse o Portal do Software Público Brasileiro no endereço www.softwarepublico.gov.br * -->
  17 +<!-- * ou escreva para a Fundação do Software Livre (FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,USA * -->
  18 +<!-- ******************************************************************************************************************** -->
  19 +<project
  20 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
  21 + xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  22 + <modelVersion>4.0.0</modelVersion>
  23 +
  24 + <parent>
  25 + <groupId>br.com.centralit</groupId>
  26 + <artifactId>cit-alcada</artifactId>
  27 + <version>1.8.0-SNAPSHOT</version>
  28 + </parent>
  29 +
  30 + <artifactId>cit-alcada-api</artifactId>
  31 + <name>cit-alcada-api</name>
  32 +
  33 + <properties>
  34 + <findbugs.config.path>${project.parent.parent.parent.basedir}/filterfile.xml</findbugs.config.path>
  35 + <license.config.path>${project.parent.parent.basedir}/src/licensing</license.config.path>
  36 + <maven-antrun-plugin.phase>package</maven-antrun-plugin.phase>
  37 + </properties>
  38 +
  39 + <dependencies>
  40 + <dependency>
  41 + <groupId>br.com.centralit</groupId>
  42 + <artifactId>cit-core</artifactId>
  43 + <version>${cit-core.version}</version>
  44 + </dependency>
  45 + <dependency>
  46 + <groupId>br.com.centralit</groupId>
  47 + <artifactId>cit-portal-api</artifactId>
  48 + <version>${project.version}</version>
  49 + </dependency>
  50 + <dependency>
  51 + <groupId>br.com.centralit</groupId>
  52 + <artifactId>cit-tabelas-corp-api</artifactId>
  53 + <version>${project.version}</version>
  54 + </dependency>
  55 + <dependency>
  56 + <groupId>org.json</groupId>
  57 + <artifactId>json</artifactId>
  58 + </dependency>
  59 + </dependencies>
  60 +</project>
  61 +
... ...
cit-alcada-api/pom.xml 0 → 100644
  1 +++ a/cit-alcada-api/pom.xml
... ... @@ -0,0 +1,61 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!-- ******************************************************************************************************************** -->
  3 +<!-- * LICENCA*GPLv2 * -->
  4 +<!-- * Copyright [2011,2012,2013,2014,2015] da CentralIT Tecnologia da Informação Ltda (www.centralit.com.br) * -->
  5 +<!-- * * -->
  6 +<!-- * Este arquivo é parte do programa/software: Citsmart (www.citsmart.com.br) * -->
  7 +<!-- * * -->
  8 +<!-- * O Citsmart é um software livre; você pode redistribui-lo e/ou modificá-lo dentro dos termos da Licença * -->
  9 +<!-- * Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão 2 da Licença. * -->
  10 +<!-- * * -->
  11 +<!-- * Este programa/software é distribuído na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem uma * -->
  12 +<!-- * garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral * -->
  13 +<!-- * GNU/GPL em português para maiores detalhes. * -->
  14 +<!-- * * -->
  15 +<!-- * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título 'LICENCA.txt', junto com este * -->
  16 +<!-- * programa/software, se não, acesse o Portal do Software Público Brasileiro no endereço www.softwarepublico.gov.br * -->
  17 +<!-- * ou escreva para a Fundação do Software Livre (FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,USA * -->
  18 +<!-- ******************************************************************************************************************** -->
  19 +<project
  20 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
  21 + xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  22 + <modelVersion>4.0.0</modelVersion>
  23 +
  24 + <parent>
  25 + <groupId>br.com.centralit</groupId>
  26 + <artifactId>cit-alcada</artifactId>
  27 + <version>1.8.0-SNAPSHOT</version>
  28 + </parent>
  29 +
  30 + <artifactId>cit-alcada-api</artifactId>
  31 + <name>cit-alcada-api</name>
  32 +
  33 + <properties>
  34 + <findbugs.config.path>${project.parent.parent.parent.basedir}/filterfile.xml</findbugs.config.path>
  35 + <license.config.path>${project.parent.parent.basedir}/src/licensing</license.config.path>
  36 + <maven-antrun-plugin.phase>package</maven-antrun-plugin.phase>
  37 + </properties>
  38 +
  39 + <dependencies>
  40 + <dependency>
  41 + <groupId>br.com.centralit</groupId>
  42 + <artifactId>cit-core</artifactId>
  43 + <version>${cit-core.version}</version>
  44 + </dependency>
  45 + <dependency>
  46 + <groupId>br.com.centralit</groupId>
  47 + <artifactId>cit-portal-api</artifactId>
  48 + <version>${project.version}</version>
  49 + </dependency>
  50 + <dependency>
  51 + <groupId>br.com.centralit</groupId>
  52 + <artifactId>cit-tabelas-corp-api</artifactId>
  53 + <version>${project.version}</version>
  54 + </dependency>
  55 + <dependency>
  56 + <groupId>org.json</groupId>
  57 + <artifactId>json</artifactId>
  58 + </dependency>
  59 + </dependencies>
  60 +</project>
  61 +
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/dao/CentroResultadoDelegacaoDao.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/dao/CentroResultadoDelegacaoDao.java
... ... @@ -0,0 +1,60 @@
  1 +package br.com.centralit.api.dao;
  2 +
  3 +import java.util.List;
  4 +
  5 +import br.com.centralit.api.model.CentroResultadoDelegacao;
  6 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
  7 +
  8 +/**
  9 + * <p>
  10 + * <img src="http://centralit.com.br/images/logo_central.png">
  11 + * </p>
  12 + *
  13 + * <p>
  14 + * <b>Company: </b> Central IT - Governança Corporativa -
  15 + * </p>
  16 + *
  17 + * <p>
  18 + * <b>Title: </b>
  19 + * </p>
  20 + *
  21 + * <p>
  22 + * <b>Description: </b>
  23 + * </p>
  24 + *
  25 + * <p>
  26 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  27 + * </p>
  28 + *
  29 + * <p>
  30 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  31 + * </p>
  32 + *
  33 + * @since 30/06/2015 - 14:10:25
  34 + *
  35 + * @version 1.0.0
  36 + *
  37 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  38 + *
  39 + */
  40 +public interface CentroResultadoDelegacaoDao extends CitGenericDAO {
  41 +
  42 + public List<CentroResultadoDelegacao> buscaHistoricoDelegacoes(Long idCentroResultado);
  43 +
  44 + public List<CentroResultadoDelegacao> buscaHistoricoDelegacoesUsuario(Long idUsuario);
  45 +
  46 + /**
  47 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  48 + *
  49 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  50 + *
  51 + * Método responsável por verificar se ja existe delegacao para o delegado selecionado para a alcada e o periodo selecionado
  52 + *
  53 + * @author renato.jesus
  54 + *
  55 + * @param centroResultadoDelegacao
  56 + * @return
  57 + */
  58 + public boolean existeDelegacaoParaDelegadoNaAlcadaENoPeriodoSeleciona(CentroResultadoDelegacao centroResultadoDelegacao);
  59 +
  60 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/dao/LimiteAprovacaoAlcadaDao.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/dao/LimiteAprovacaoAlcadaDao.java
... ... @@ -0,0 +1,45 @@
  1 +package br.com.centralit.api.dao;
  2 +
  3 +import java.util.List;
  4 +
  5 +import br.com.centralit.api.model.Alcada;
  6 +import br.com.centralit.api.model.LimiteAprovacaoAlcada;
  7 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
  8 +
  9 +/**
  10 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  11 + *
  12 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  13 + *
  14 + * <p><b>Title: </b></p>
  15 + *
  16 + * <p><b>Description: </b></p>
  17 + *
  18 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  19 + *
  20 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  21 + *
  22 + * @since 30/06/2015 - 13:55:59
  23 + *
  24 + * @version 1.0.0
  25 + *
  26 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  27 + *
  28 + */
  29 +public interface LimiteAprovacaoAlcadaDao extends CitGenericDAO {
  30 +
  31 + /**
  32 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  33 + *
  34 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  35 + *
  36 + * Método responsável por retornar todos os limites de aprovação de uma determinada alçada
  37 + *
  38 + * @author Carlos
  39 + *
  40 + * @param alcada
  41 + * @return
  42 + */
  43 + public List<LimiteAprovacaoAlcada> findByAlcada(Alcada alcada);
  44 +
  45 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/dao/LimiteAprovacaoDao.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/dao/LimiteAprovacaoDao.java
... ... @@ -0,0 +1,27 @@
  1 +package br.com.centralit.api.dao;
  2 +
  3 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
  4 +
  5 +/**
  6 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  7 + *
  8 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  9 + *
  10 + * <p><b>Title: </b></p>
  11 + *
  12 + * <p><b>Description: </b></p>
  13 + *
  14 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  15 + *
  16 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  17 + *
  18 + * @since 18/06/2015 - 16:57:53
  19 + *
  20 + * @version 1.0.0
  21 + *
  22 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  23 + *
  24 + */
  25 +public interface LimiteAprovacaoDao extends CitGenericDAO {
  26 +
  27 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/dao/LimiteAprovacaoNivelAutoridadeDao.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/dao/LimiteAprovacaoNivelAutoridadeDao.java
... ... @@ -0,0 +1,25 @@
  1 +package br.com.centralit.api.dao;
  2 +
  3 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
  4 +
  5 +/**
  6 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  7 + *
  8 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  9 + *
  10 + * <p><b>Title: </b></p>
  11 + *
  12 + * <p><b>Description: </b></p>
  13 + *
  14 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  15 + *
  16 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  17 + *
  18 + * @since 30/06/2015 - 13:56:31
  19 + *
  20 + * @version 1.0.0
  21 + *
  22 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  23 + *
  24 + */
  25 +public interface LimiteAprovacaoNivelAutoridadeDao extends CitGenericDAO {}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/dao/LimiteAprovacaoValorDao.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/dao/LimiteAprovacaoValorDao.java
... ... @@ -0,0 +1,25 @@
  1 +package br.com.centralit.api.dao;
  2 +
  3 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
  4 +
  5 +/**
  6 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  7 + *
  8 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  9 + *
  10 + * <p><b>Title: </b></p>
  11 + *
  12 + * <p><b>Description: </b></p>
  13 + *
  14 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  15 + *
  16 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  17 + *
  18 + * @since 18/06/2015 - 16:57:15
  19 + *
  20 + * @version 1.0.0
  21 + *
  22 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  23 + *
  24 + */
  25 +public interface LimiteAprovacaoValorDao extends CitGenericDAO {}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/dao/SolicitacaoAlcadaDao.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/dao/SolicitacaoAlcadaDao.java
... ... @@ -0,0 +1,35 @@
  1 +package br.com.centralit.api.dao;
  2 +
  3 +import br.com.centralit.api.model.Alcada;
  4 +import br.com.centralit.api.model.CentroResultado;
  5 +import br.com.centralit.api.model.NivelAutoridade;
  6 +import br.com.centralit.api.model.SolicitacaoAlcada;
  7 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
  8 +import br.com.centralit.framework.model.Dominio;
  9 +
  10 +/**
  11 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  12 + *
  13 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  14 + *
  15 + * <p><b>Title: </b></p> *
  16 + * <p><b>Description: </b></p>
  17 + *
  18 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  19 + *
  20 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  21 + *
  22 + * @since 18/06/2015 - 16:57:15
  23 + *
  24 + * @version 1.0.0
  25 + *
  26 + * @author lucas.ribeiro - (<a href="mailto:lucas.centralit@gmail.com">lucas.centralit@gmail.com</a>)
  27 + *
  28 + */
  29 +public interface SolicitacaoAlcadaDao extends CitGenericDAO {
  30 +
  31 + public Float getValorAcumulado(final Integer ano, final Integer mes, final Alcada alcada, final CentroResultado centroResultado, Dominio tipoUtilizacao, NivelAutoridade nivelAutoridade);
  32 +
  33 + public SolicitacaoAlcada recuperaPeloIdentificador(Alcada alcada, String identificadorOrigem);
  34 +
  35 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/dao/impl/CentroResultadoDelegacaoDaoHibernate.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/dao/impl/CentroResultadoDelegacaoDaoHibernate.java
... ... @@ -0,0 +1,87 @@
  1 +package br.com.centralit.api.dao.impl;
  2 +
  3 +import java.util.List;
  4 +
  5 +import org.springframework.stereotype.Repository;
  6 +
  7 +import br.com.centralit.api.dao.CentroResultadoDelegacaoDao;
  8 +import br.com.centralit.api.model.CentroResultadoDelegacao;
  9 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
  10 +import br.com.centralit.framework.dao.arquitetura.SearchSeven;
  11 +
  12 +import com.googlecode.genericdao.search.Search;
  13 +
  14 +/**
  15 + * <p>
  16 + * <img src="http://centralit.com.br/images/logo_central.png">
  17 + * </p>
  18 + *
  19 + * <p>
  20 + * <b>Company: </b> Central IT - Governança Corporativa -
  21 + * </p>
  22 + *
  23 + * <p>
  24 + * <b>Title: </b>
  25 + * </p>
  26 + *
  27 + * <p>
  28 + * <b>Description: </b>
  29 + * </p>
  30 + *
  31 + * <p>
  32 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  33 + * </p>
  34 + *
  35 + * <p>
  36 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  37 + * </p>
  38 + *
  39 + * @since 30/06/2015 - 14:10:22
  40 + *
  41 + * @version 1.0.0
  42 + *
  43 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  44 + *
  45 + */
  46 +@Repository("centroResultadoDelegacaoDao")
  47 +public class CentroResultadoDelegacaoDaoHibernate extends CitGenericDAOImpl implements CentroResultadoDelegacaoDao {
  48 +
  49 + public CentroResultadoDelegacaoDaoHibernate() {
  50 +
  51 + super(CentroResultadoDelegacao.class);
  52 + }
  53 +
  54 + @Override
  55 + public List<CentroResultadoDelegacao> buscaHistoricoDelegacoes(Long idCentroResultado) {
  56 +
  57 + Search search = new Search();
  58 +
  59 + search.addFilterEqual("centroResultadoResponsavelAlcada.centroResultadoResponsavel.centroResultado.id", idCentroResultado);
  60 +
  61 + return this.search(search, CentroResultadoDelegacao.class);
  62 + }
  63 +
  64 + @Override
  65 + public List<CentroResultadoDelegacao> buscaHistoricoDelegacoesUsuario(Long idUsuario) {
  66 +
  67 + Search search = new Search();
  68 +
  69 + search.addFilterEqual("centroResultadoResponsavelAlcada.centroResultadoResponsavel.responsavel.pessoa.usuario.id", idUsuario);
  70 +
  71 + return this.search(search, CentroResultadoDelegacao.class);
  72 + }
  73 +
  74 + @Override
  75 + public boolean existeDelegacaoParaDelegadoNaAlcadaENoPeriodoSeleciona(CentroResultadoDelegacao centroResultadoDelegacao) {
  76 +
  77 + SearchSeven search = new SearchSeven();
  78 +
  79 + search.addFilterEmpty("dataRevogacao");
  80 + search.addFilterEqual("centroResultadoResponsavelAlcada.id", centroResultadoDelegacao.getCentroResultadoResponsavelAlcada().getId());
  81 + search.addFilterEqual("delegado.id", centroResultadoDelegacao.getDelegado().getId());
  82 + search.addFilterGreaterOrEqual("dataFimDelegacao", centroResultadoDelegacao.getDataInicioDelegacao());
  83 +
  84 + return this.searchAndCount(search).getTotalCount() > 0;
  85 + }
  86 +
  87 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/dao/impl/LimiteAprovacaoAlcadaDaoHibernate.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/dao/impl/LimiteAprovacaoAlcadaDaoHibernate.java
... ... @@ -0,0 +1,64 @@
  1 +package br.com.centralit.api.dao.impl;
  2 +
  3 +import java.util.List;
  4 +
  5 +import org.springframework.stereotype.Repository;
  6 +
  7 +import br.com.centralit.api.dao.LimiteAprovacaoAlcadaDao;
  8 +import br.com.centralit.api.model.Alcada;
  9 +import br.com.centralit.api.model.LimiteAprovacaoAlcada;
  10 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
  11 +import br.com.centralit.framework.dao.arquitetura.SearchSeven;
  12 +
  13 +/**
  14 + * <p>
  15 + * <img src="http://centralit.com.br/images/logo_central.png">
  16 + * </p>
  17 + *
  18 + * <p>
  19 + * <b>Company: </b> Central IT - Governança Corporativa -
  20 + * </p>
  21 + *
  22 + * <p>
  23 + * <b>Title: </b>
  24 + * </p>
  25 + *
  26 + * <p>
  27 + * <b>Description: </b>
  28 + * </p>
  29 + *
  30 + * <p>
  31 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  32 + * </p>
  33 + *
  34 + * <p>
  35 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  36 + * </p>
  37 + *
  38 + * @since 30/06/2015 - 13:55:55
  39 + *
  40 + * @version 1.0.0
  41 + *
  42 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  43 + *
  44 + */
  45 +@Repository("limiteAprovacaoAlcadaDao")
  46 +public class LimiteAprovacaoAlcadaDaoHibernate extends CitGenericDAOImpl implements LimiteAprovacaoAlcadaDao {
  47 +
  48 + public LimiteAprovacaoAlcadaDaoHibernate() {
  49 +
  50 + super(LimiteAprovacaoAlcada.class);
  51 + }
  52 +
  53 + @Override
  54 + public List<LimiteAprovacaoAlcada> findByAlcada(Alcada alcada) {
  55 +
  56 + SearchSeven search = new SearchSeven();
  57 +
  58 + search.addFilterEqual("alcada", alcada);
  59 +
  60 + search.addFilterEmpty("dataInativo");
  61 +
  62 + return this.search(search, LimiteAprovacaoAlcada.class);
  63 + }
  64 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/dao/impl/LimiteAprovacaoDaoHibernate.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/dao/impl/LimiteAprovacaoDaoHibernate.java
... ... @@ -0,0 +1,35 @@
  1 +package br.com.centralit.api.dao.impl;
  2 +
  3 +import org.springframework.stereotype.Repository;
  4 +
  5 +import br.com.centralit.api.dao.LimiteAprovacaoDao;
  6 +import br.com.centralit.api.model.LimiteAprovacao;
  7 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
  8 +
  9 +/**
  10 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  11 + *
  12 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  13 + *
  14 + * <p><b>Title: </b></p>
  15 + *
  16 + * <p><b>Description: </b></p>
  17 + *
  18 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  19 + *
  20 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  21 + *
  22 + * @since 18/06/2015 - 16:57:49
  23 + *
  24 + * @version 1.0.0
  25 + *
  26 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  27 + *
  28 + */
  29 +@Repository("limiteAprovacaoDao")
  30 +public class LimiteAprovacaoDaoHibernate extends CitGenericDAOImpl implements LimiteAprovacaoDao {
  31 + public LimiteAprovacaoDaoHibernate() {
  32 + super(LimiteAprovacao.class);
  33 + }
  34 +
  35 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/dao/impl/LimiteAprovacaoNivelAutoridadeDaoHibernate.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/dao/impl/LimiteAprovacaoNivelAutoridadeDaoHibernate.java
... ... @@ -0,0 +1,34 @@
  1 +package br.com.centralit.api.dao.impl;
  2 +
  3 +import br.com.centralit.api.model.LimiteAprovacaoNivelAutoridade;
  4 +import br.com.centralit.api.dao.LimiteAprovacaoNivelAutoridadeDao;
  5 +
  6 +import org.springframework.stereotype.Repository;
  7 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
  8 +
  9 +/**
  10 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  11 + *
  12 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  13 + *
  14 + * <p><b>Title: </b></p>
  15 + *
  16 + * <p><b>Description: </b></p>
  17 + *
  18 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  19 + *
  20 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  21 + *
  22 + * @since 30/06/2015 - 13:56:28
  23 + *
  24 + * @version 1.0.0
  25 + *
  26 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  27 + *
  28 + */
  29 +@Repository("limiteAprovacaoNivelAutoridadeDao")
  30 +public class LimiteAprovacaoNivelAutoridadeDaoHibernate extends CitGenericDAOImpl implements LimiteAprovacaoNivelAutoridadeDao {
  31 + public LimiteAprovacaoNivelAutoridadeDaoHibernate() {
  32 + super(LimiteAprovacaoNivelAutoridade.class);
  33 + }
  34 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/dao/impl/LimiteAprovacaoValorDaoHibernate.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/dao/impl/LimiteAprovacaoValorDaoHibernate.java
... ... @@ -0,0 +1,34 @@
  1 +package br.com.centralit.api.dao.impl;
  2 +
  3 +import br.com.centralit.api.model.LimiteAprovacaoValor;
  4 +import br.com.centralit.api.dao.LimiteAprovacaoValorDao;
  5 +
  6 +import org.springframework.stereotype.Repository;
  7 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
  8 +
  9 +/**
  10 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  11 + *
  12 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  13 + *
  14 + * <p><b>Title: </b></p>
  15 + *
  16 + * <p><b>Description: </b></p>
  17 + *
  18 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  19 + *
  20 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  21 + *
  22 + * @since 18/06/2015 - 16:57:12
  23 + *
  24 + * @version 1.0.0
  25 + *
  26 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  27 + *
  28 + */
  29 +@Repository("limiteAprovacaoValorDao")
  30 +public class LimiteAprovacaoValorDaoHibernate extends CitGenericDAOImpl implements LimiteAprovacaoValorDao {
  31 + public LimiteAprovacaoValorDaoHibernate() {
  32 + super(LimiteAprovacaoValor.class);
  33 + }
  34 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/dao/impl/SolicitacaoAlcadaDaoHibernate.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/dao/impl/SolicitacaoAlcadaDaoHibernate.java
... ... @@ -0,0 +1,94 @@
  1 +package br.com.centralit.api.dao.impl;
  2 +
  3 +import java.util.List;
  4 +
  5 +import javax.persistence.Query;
  6 +
  7 +import org.springframework.stereotype.Repository;
  8 +
  9 +import br.com.centralit.api.dao.SolicitacaoAlcadaDao;
  10 +import br.com.centralit.api.model.Alcada;
  11 +import br.com.centralit.api.model.CentroResultado;
  12 +import br.com.centralit.api.model.NivelAutoridade;
  13 +import br.com.centralit.api.model.SolicitacaoAlcada;
  14 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
  15 +import br.com.centralit.framework.dao.arquitetura.SearchSeven;
  16 +import br.com.centralit.framework.model.Dominio;
  17 +
  18 +/**
  19 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  20 + *
  21 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  22 + *
  23 + * <p><b>Title: </b></p>
  24 + *
  25 + * <p><b>Description: </b></p>
  26 + *
  27 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  28 + *
  29 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  30 + *
  31 + * @since 18/06/2015 - 16:57:12
  32 + *
  33 + * @version 1.0.0
  34 + *
  35 + * @author lucas.ribeiro - (<a href="mailto:lucas.centralit@gmail.com">lucas.centralit@gmail.com</a>)
  36 + *
  37 + */
  38 +@Repository("solicitacaoAlcadaDao")
  39 +public class SolicitacaoAlcadaDaoHibernate extends CitGenericDAOImpl implements SolicitacaoAlcadaDao {
  40 + public SolicitacaoAlcadaDaoHibernate() {
  41 + super(SolicitacaoAlcada.class);
  42 + }
  43 +
  44 + @SuppressWarnings("unchecked")
  45 + @Override
  46 + public Float getValorAcumulado(final Integer ano, final Integer mes, Alcada alcada, CentroResultado centroResultado, Dominio tipoUtilizacao, NivelAutoridade nivelAutoridade) {
  47 + String queryString = "select solicitacaoAlcada from SolicitacaoAlcada as solicitacaoAlcada"
  48 + + " where alcada.id = :alcada_id "
  49 + + " and centroResultado.id = :centroResultado_id "
  50 + + " and tipoUtilizacao.id = :tipoUtilizacao_id "
  51 + + " and situacao.nome = 'APROVADA' "
  52 + + " and dataInativo is null "
  53 + + " and aprovador.nivelAutoridade.id = :nivelAutoridade_id "
  54 + + " and ano = :ano ";
  55 + if (mes != null) {
  56 + queryString += " and mes = :mes ";
  57 + }
  58 + Query query = em().createQuery(queryString);
  59 + query.setParameter("alcada_id", alcada.getId());
  60 + query.setParameter("centroResultado_id", centroResultado.getId());
  61 + query.setParameter("tipoUtilizacao_id", tipoUtilizacao.getId());
  62 + query.setParameter("nivelAutoridade_id", nivelAutoridade.getId());
  63 + query.setParameter("ano", ano);
  64 + if (mes != null) {
  65 + query.setParameter("mes", mes);
  66 + }
  67 +
  68 + List<SolicitacaoAlcada> solicitacoes = query.getResultList();
  69 +
  70 + float valor = 0;
  71 + for (SolicitacaoAlcada solicitacaoAlcada : solicitacoes) {
  72 + valor += solicitacaoAlcada.getValor().floatValue();
  73 + }
  74 +
  75 + return valor;
  76 + }
  77 +
  78 + @Override
  79 + public SolicitacaoAlcada recuperaPeloIdentificador(Alcada alcada, String identificadorUnico) {
  80 + SearchSeven search = new SearchSeven();
  81 +
  82 + search.addFilterEqual("alcada.identificador", alcada.getIdentificador());
  83 + search.addFilterEqual("identificador", identificadorUnico);
  84 +
  85 + search.addFilterEmpty("dataInativo");
  86 +
  87 + search.addSort("id", true);
  88 +
  89 + search.setMaxResults(1);
  90 +
  91 + return this.searchUnique(search, SolicitacaoAlcada.class);
  92 + }
  93 +
  94 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/framework/json/ViewsAlcada.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/framework/json/ViewsAlcada.java
... ... @@ -0,0 +1,33 @@
  1 +package br.com.centralit.api.framework.json;
  2 +
  3 +import br.com.centralit.framework.json.Views;
  4 +
  5 +/**
  6 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  7 + *
  8 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  9 + *
  10 + * <p><b>Title: </b></p>
  11 + *
  12 + * <p><b>Description: </b></p>
  13 + *
  14 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  15 + *
  16 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  17 + *
  18 + * @since 22/06/2015 - 15:10:43
  19 + *
  20 + * @version 1.0.0
  21 + *
  22 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  23 + *
  24 + */
  25 +public class ViewsAlcada extends Views {
  26 +
  27 + public static class AlcadaView extends Views.GrupoEditView {};
  28 +
  29 + public static class LimiteAprovacaoView extends GenericView {};
  30 +
  31 + public static class RecuperacaoAlcadaView extends GenericView {};
  32 +
  33 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/model/LimiteAprovacao.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/model/LimiteAprovacao.java
... ... @@ -0,0 +1,219 @@
  1 +package br.com.centralit.api.model;
  2 +
  3 +import java.util.Collection;
  4 +
  5 +import javax.persistence.CascadeType;
  6 +import javax.persistence.Entity;
  7 +import javax.persistence.FetchType;
  8 +import javax.persistence.GeneratedValue;
  9 +import javax.persistence.GenerationType;
  10 +import javax.persistence.Id;
  11 +import javax.persistence.ManyToOne;
  12 +import javax.persistence.OneToMany;
  13 +
  14 +import br.com.centralit.api.framework.json.ViewsAlcada;
  15 +import br.com.centralit.framework.model.Dominio;
  16 +import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao;
  17 +
  18 +import com.fasterxml.jackson.annotation.JsonView;
  19 +
  20 +/**
  21 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  22 + *
  23 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  24 + *
  25 + * <p><b>Title: </b></p>
  26 + *
  27 + * <p><b>Description: </b></p>
  28 + *
  29 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  30 + *
  31 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  32 + *
  33 + * @since 18/06/2015 - 16:58:14
  34 + *
  35 + * @version 1.0.0
  36 + *
  37 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  38 + *
  39 + */
  40 +@Entity
  41 +public class LimiteAprovacao extends PersistentObjectAuditOrganizacao {
  42 +
  43 + /** Atributo serialVersionUID. */
  44 + private static final long serialVersionUID = 1L;
  45 +
  46 + /** Atributo id. */
  47 + @Id
  48 + @GeneratedValue(strategy = GenerationType.AUTO)
  49 + @JsonView({ ViewsAlcada.LimiteAprovacaoView.class })
  50 + private Long id;
  51 +
  52 + @JsonView({ ViewsAlcada.LimiteAprovacaoView.class })
  53 + private String identificacao;
  54 +
  55 + @ManyToOne(fetch = FetchType.LAZY)
  56 + @JsonView({ ViewsAlcada.LimiteAprovacaoView.class })
  57 + private Dominio dominioTipoAbrangencia;
  58 +
  59 + @ManyToOne(fetch = FetchType.LAZY)
  60 + @JsonView({ ViewsAlcada.LimiteAprovacaoView.class })
  61 + private Dominio dominioTipoLimite;
  62 +
  63 + @OneToMany(fetch = FetchType.LAZY, mappedBy = "limiteAprovacao", cascade = CascadeType.ALL)
  64 + @JsonView({ ViewsAlcada.LimiteAprovacaoView.class })
  65 + private Collection<LimiteAprovacaoValor> limitesAprovacoesValores;
  66 +
  67 + @OneToMany(fetch = FetchType.LAZY, mappedBy = "limiteAprovacao", cascade = CascadeType.ALL, orphanRemoval = true)
  68 + @JsonView({ ViewsAlcada.LimiteAprovacaoView.class })
  69 + private Collection<LimiteAprovacaoNivelAutoridade> niveisAutoridades;
  70 +
  71 + @OneToMany(fetch = FetchType.LAZY, mappedBy = "limiteAprovacao", cascade = CascadeType.ALL, orphanRemoval = true)
  72 + @JsonView({ ViewsAlcada.LimiteAprovacaoView.class })
  73 + private Collection<LimiteAprovacaoAlcada> alcadas;
  74 +
  75 +
  76 + /**
  77 + * Retorna o valor do atributo <code>id</code>
  78 + *
  79 + * @return <code>Long</code>
  80 + */
  81 + public Long getId() {
  82 +
  83 + return id;
  84 + }
  85 +
  86 + /**
  87 + * Define o valor do atributo <code>id</code>.
  88 + *
  89 + * @param id
  90 + */
  91 + public void setId(Long id) {
  92 +
  93 + this.id = id;
  94 + }
  95 +
  96 + /**
  97 + * Retorna o valor do atributo <code>identificacao</code>
  98 + *
  99 + * @return <code>String</code>
  100 + */
  101 + public String getIdentificacao() {
  102 +
  103 + return identificacao;
  104 + }
  105 +
  106 + /**
  107 + * Define o valor do atributo <code>identificacao</code>.
  108 + *
  109 + * @param identificacao
  110 + */
  111 + public void setIdentificacao(String identificacao) {
  112 +
  113 + this.identificacao = identificacao;
  114 + }
  115 +
  116 +
  117 + /**
  118 + * Retorna o valor do atributo <code>limitesAprovacoesValores</code>
  119 + *
  120 + * @return <code>Collection<LimiteAprovacaoValor></code>
  121 + */
  122 + public Collection<LimiteAprovacaoValor> getLimitesAprovacoesValores() {
  123 +
  124 + return limitesAprovacoesValores;
  125 + }
  126 +
  127 +
  128 + /**
  129 + * Define o valor do atributo <code>limitesAprovacoesValores</code>.
  130 + *
  131 + * @param limitesAprovacoesValores
  132 + */
  133 + public void setLimitesAprovacoesValores(Collection<LimiteAprovacaoValor> limitesAprovacoesValores) {
  134 +
  135 + this.limitesAprovacoesValores = limitesAprovacoesValores;
  136 + }
  137 +
  138 + /**
  139 + * Retorna o valor do atributo <code>dominioTipoAbrangencia</code>
  140 + *
  141 + * @return <code>Dominio</code>
  142 + */
  143 + public Dominio getDominioTipoAbrangencia() {
  144 +
  145 + return dominioTipoAbrangencia;
  146 + }
  147 +
  148 + /**
  149 + * Define o valor do atributo <code>dominioTipoAbrangencia</code>.
  150 + *
  151 + * @param dominioTipoAbrangencia
  152 + */
  153 + public void setDominioTipoAbrangencia(Dominio dominioTipoAbrangencia) {
  154 +
  155 + this.dominioTipoAbrangencia = dominioTipoAbrangencia;
  156 + }
  157 +
  158 + /**
  159 + * Retorna o valor do atributo <code>dominioTipoLimite</code>
  160 + *
  161 + * @return <code>Dominio</code>
  162 + */
  163 + public Dominio getDominioTipoLimite() {
  164 +
  165 + return dominioTipoLimite;
  166 + }
  167 +
  168 + /**
  169 + * Define o valor do atributo <code>dominioTipoLimite</code>.
  170 + *
  171 + * @param dominioTipoLimite
  172 + */
  173 + public void setDominioTipoLimite(Dominio dominioTipoLimite) {
  174 +
  175 + this.dominioTipoLimite = dominioTipoLimite;
  176 + }
  177 +
  178 + /**
  179 + * Retorna o valor do atributo <code>niveisAutoridades</code>
  180 + *
  181 + * @return <code>Collection<LimiteAprovacaoNivelAutoridade></code>
  182 + */
  183 + public Collection<LimiteAprovacaoNivelAutoridade> getNiveisAutoridades() {
  184 +
  185 + return niveisAutoridades;
  186 + }
  187 +
  188 + /**
  189 + * Define o valor do atributo <code>niveisAutoridades</code>.
  190 + *
  191 + * @param niveisAutoridades
  192 + */
  193 + public void setNiveisAutoridades(Collection<LimiteAprovacaoNivelAutoridade> niveisAutoridades) {
  194 +
  195 + this.niveisAutoridades = niveisAutoridades;
  196 + }
  197 +
  198 + /**
  199 + * Retorna o valor do atributo <code>alcadas</code>
  200 + *
  201 + * @return <code>Collection<LimiteAprovacaoAlcada></code>
  202 + */
  203 + public Collection<LimiteAprovacaoAlcada> getAlcadas() {
  204 +
  205 + return alcadas;
  206 + }
  207 +
  208 + /**
  209 + * Define o valor do atributo <code>alcadas</code>.
  210 + *
  211 + * @param alcadas
  212 + */
  213 + public void setAlcadas(Collection<LimiteAprovacaoAlcada> alcadas) {
  214 +
  215 + this.alcadas = alcadas;
  216 + }
  217 +
  218 +
  219 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/model/LimiteAprovacaoAlcada.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/model/LimiteAprovacaoAlcada.java
... ... @@ -0,0 +1,127 @@
  1 +package br.com.centralit.api.model;
  2 +
  3 +import javax.persistence.Entity;
  4 +import javax.persistence.FetchType;
  5 +import javax.persistence.GeneratedValue;
  6 +import javax.persistence.GenerationType;
  7 +import javax.persistence.Id;
  8 +import javax.persistence.ManyToOne;
  9 +
  10 +import br.com.centralit.api.framework.json.ViewsAlcada;
  11 +import br.com.centralit.framework.model.arquitetura.PersistentObject;
  12 +
  13 +import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  14 +import com.fasterxml.jackson.annotation.JsonView;
  15 +
  16 +/**
  17 + * <p>
  18 + * <img src="http://centralit.com.br/images/logo_central.png">
  19 + * </p>
  20 + *
  21 + * <p>
  22 + * <b>Company: </b> Central IT - Governança Corporativa -
  23 + * </p>
  24 + *
  25 + * <p>
  26 + * <b>Title: </b>
  27 + * </p>
  28 + *
  29 + * <p>
  30 + * <b>Description: </b>
  31 + * </p>
  32 + *
  33 + * <p>
  34 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  35 + * </p>
  36 + *
  37 + * <p>
  38 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  39 + * </p>
  40 + *
  41 + * @since 30/06/2015 - 13:56:03
  42 + *
  43 + * @version 1.0.0
  44 + *
  45 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  46 + *
  47 + */
  48 +@Entity
  49 +@JsonIgnoreProperties({ "$selected", "$index" })
  50 +public class LimiteAprovacaoAlcada extends PersistentObject {
  51 +
  52 + /** Atributo serialVersionUID. */
  53 + private static final long serialVersionUID = 1L;
  54 +
  55 + /** Atributo id. */
  56 + @Id
  57 + @GeneratedValue(strategy = GenerationType.AUTO)
  58 + @JsonView({ ViewsAlcada.LimiteAprovacaoView.class })
  59 + private Long id;
  60 +
  61 + @ManyToOne(fetch = FetchType.LAZY, optional = false)
  62 + @JsonView({ ViewsAlcada.LimiteAprovacaoView.class })
  63 + private Alcada alcada;
  64 +
  65 + @ManyToOne(fetch = FetchType.LAZY, optional = false)
  66 + private LimiteAprovacao limiteAprovacao;
  67 +
  68 + /**
  69 + * Retorna o valor do atributo <code>alcada</code>
  70 + *
  71 + * @return <code>Alcada</code>
  72 + */
  73 + public Alcada getAlcada() {
  74 +
  75 + return alcada;
  76 + }
  77 +
  78 + /**
  79 + * Define o valor do atributo <code>alcada</code>.
  80 + *
  81 + * @param alcada
  82 + */
  83 + public void setAlcada(Alcada alcada) {
  84 +
  85 + this.alcada = alcada;
  86 + }
  87 +
  88 + /**
  89 + * Retorna o valor do atributo <code>limiteAprovacao</code>
  90 + *
  91 + * @return <code>LimiteAprovacao</code>
  92 + */
  93 + public LimiteAprovacao getLimiteAprovacao() {
  94 +
  95 + return limiteAprovacao;
  96 + }
  97 +
  98 + /**
  99 + * Define o valor do atributo <code>limiteAprovacao</code>.
  100 + *
  101 + * @param limiteAprovacao
  102 + */
  103 + public void setLimiteAprovacao(LimiteAprovacao limiteAprovacao) {
  104 +
  105 + this.limiteAprovacao = limiteAprovacao;
  106 + }
  107 +
  108 + /**
  109 + * Retorna o valor do atributo <code>id</code>
  110 + *
  111 + * @return <code>Long</code>
  112 + */
  113 + public Long getId() {
  114 +
  115 + return id;
  116 + }
  117 +
  118 + /**
  119 + * Define o valor do atributo <code>id</code>.
  120 + *
  121 + * @param id
  122 + */
  123 + public void setId(Long id) {
  124 +
  125 + this.id = id;
  126 + }
  127 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/model/LimiteAprovacaoNivelAutoridade.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/model/LimiteAprovacaoNivelAutoridade.java
... ... @@ -0,0 +1,118 @@
  1 +package br.com.centralit.api.model;
  2 +
  3 +import javax.persistence.Entity;
  4 +import javax.persistence.FetchType;
  5 +import javax.persistence.GeneratedValue;
  6 +import javax.persistence.GenerationType;
  7 +import javax.persistence.Id;
  8 +import javax.persistence.ManyToOne;
  9 +
  10 +import br.com.centralit.api.framework.json.ViewsAlcada;
  11 +import br.com.centralit.framework.model.arquitetura.PersistentObject;
  12 +
  13 +import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  14 +import com.fasterxml.jackson.annotation.JsonView;
  15 +
  16 +/**
  17 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  18 + *
  19 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  20 + *
  21 + * <p><b>Title: </b></p>
  22 + *
  23 + * <p><b>Description: </b></p>
  24 + *
  25 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  26 + *
  27 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  28 + *
  29 + * @since 30/06/2015 - 13:56:36
  30 + *
  31 + * @version 1.0.0
  32 + *
  33 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  34 + *
  35 + */
  36 +@Entity
  37 +@JsonIgnoreProperties({"$selected","$index"})
  38 +public class LimiteAprovacaoNivelAutoridade extends PersistentObject {
  39 +
  40 + /** Atributo serialVersionUID. */
  41 + private static final long serialVersionUID = 1L;
  42 +
  43 + /** Atributo id. */
  44 + @Id
  45 + @GeneratedValue(strategy = GenerationType.AUTO)
  46 + @JsonView({ ViewsAlcada.LimiteAprovacaoView.class })
  47 + private Long id;
  48 +
  49 + @ManyToOne(fetch = FetchType.LAZY, optional = false)
  50 + private LimiteAprovacao limiteAprovacao;
  51 +
  52 + @ManyToOne(fetch = FetchType.LAZY, optional = false)
  53 + @JsonView({ ViewsAlcada.LimiteAprovacaoView.class })
  54 + private NivelAutoridade nivelAutoridade;
  55 +
  56 +
  57 + /**
  58 + * Retorna o valor do atributo <code>limiteAprovacao</code>
  59 + *
  60 + * @return <code>LimiteAprovacao</code>
  61 + */
  62 + public LimiteAprovacao getLimiteAprovacao() {
  63 +
  64 + return limiteAprovacao;
  65 + }
  66 +
  67 + /**
  68 + * Define o valor do atributo <code>limiteAprovacao</code>.
  69 + *
  70 + * @param limiteAprovacao
  71 + */
  72 + public void setLimiteAprovacao(LimiteAprovacao limiteAprovacao) {
  73 +
  74 + this.limiteAprovacao = limiteAprovacao;
  75 + }
  76 +
  77 + /**
  78 + * Retorna o valor do atributo <code>nivelAutoridade</code>
  79 + *
  80 + * @return <code>NivelAutoridade</code>
  81 + */
  82 + public NivelAutoridade getNivelAutoridade() {
  83 +
  84 + return nivelAutoridade;
  85 + }
  86 +
  87 + /**
  88 + * Define o valor do atributo <code>nivelAutoridade</code>.
  89 + *
  90 + * @param nivelAutoridade
  91 + */
  92 + public void setNivelAutoridade(NivelAutoridade nivelAutoridade) {
  93 +
  94 + this.nivelAutoridade = nivelAutoridade;
  95 + }
  96 +
  97 + /**
  98 + * Retorna o valor do atributo <code>id</code>
  99 + *
  100 + * @return <code>Long</code>
  101 + */
  102 + public Long getId() {
  103 +
  104 + return id;
  105 + }
  106 +
  107 + /**
  108 + * Define o valor do atributo <code>id</code>.
  109 + *
  110 + * @param id
  111 + */
  112 + public void setId(Long id) {
  113 +
  114 + this.id = id;
  115 + }
  116 +
  117 +
  118 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/model/LimiteAprovacaoValor.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/model/LimiteAprovacaoValor.java
... ... @@ -0,0 +1,219 @@
  1 +package br.com.centralit.api.model;
  2 +
  3 +import java.math.BigDecimal;
  4 +import java.util.ArrayList;
  5 +import java.util.Collection;
  6 +
  7 +import javax.persistence.Column;
  8 +import javax.persistence.Entity;
  9 +import javax.persistence.FetchType;
  10 +import javax.persistence.GeneratedValue;
  11 +import javax.persistence.GenerationType;
  12 +import javax.persistence.Id;
  13 +import javax.persistence.ManyToOne;
  14 +import javax.persistence.Transient;
  15 +
  16 +import br.com.centralit.api.framework.json.ViewsAlcada;
  17 +import br.com.centralit.framework.json.MoneyDeserializer;
  18 +import br.com.centralit.framework.model.Dominio;
  19 +import br.com.centralit.framework.model.arquitetura.PersistentObject;
  20 +
  21 +import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  22 +import com.fasterxml.jackson.annotation.JsonView;
  23 +import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
  24 +
  25 +/**
  26 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  27 + *
  28 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  29 + *
  30 + * <p><b>Title: </b></p>
  31 + *
  32 + * <p><b>Description: </b></p>
  33 + *
  34 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  35 + *
  36 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  37 + *
  38 + * @since 18/06/2015 - 16:57:20
  39 + *
  40 + * @version 1.0.0
  41 + *
  42 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  43 + *
  44 + */
  45 +@Entity
  46 +@JsonIgnoreProperties({ "$index" })
  47 +public class LimiteAprovacaoValor extends PersistentObject {
  48 +
  49 + /** Atributo serialVersionUID. */
  50 + private static final long serialVersionUID = 1L;
  51 +
  52 + /** Atributo id. */
  53 + @Id
  54 + @GeneratedValue(strategy = GenerationType.AUTO)
  55 + @JsonView({ ViewsAlcada.LimiteAprovacaoView.class })
  56 + private Long id;
  57 +
  58 + @ManyToOne
  59 + @JsonView({ ViewsAlcada.LimiteAprovacaoView.class })
  60 + private Dominio dominioTipoLimiteValor;
  61 +
  62 + @ManyToOne
  63 + @JsonView({ ViewsAlcada.LimiteAprovacaoView.class })
  64 + private Dominio dominioTipoUtilizacao;
  65 +
  66 + @Column(precision = 20, scale = 2)
  67 + @JsonDeserialize(using = MoneyDeserializer.class)
  68 + @JsonView({ ViewsAlcada.LimiteAprovacaoView.class })
  69 + private BigDecimal valorLimite;
  70 +
  71 + @ManyToOne(fetch = FetchType.LAZY, optional = false)
  72 + private LimiteAprovacao limiteAprovacao;
  73 +
  74 + @Transient
  75 + private Collection<ValorAcumulado> valoresAcumulados = new ArrayList<ValorAcumulado>();
  76 +
  77 + /**
  78 + * Retorna o valor do atributo <code>dominioTipoLimiteValor</code>
  79 + *
  80 + * @return <code>Dominio</code>
  81 + */
  82 + public Dominio getDominioTipoLimiteValor() {
  83 +
  84 + return dominioTipoLimiteValor;
  85 + }
  86 +
  87 + /**
  88 + * Define o valor do atributo <code>dominioTipoLimiteValor</code>.
  89 + *
  90 + * @param dominioTipoLimiteValor
  91 + */
  92 + public void setDominioTipoLimiteValor(Dominio dominioTipoAbrangencia) {
  93 +
  94 + this.dominioTipoLimiteValor = dominioTipoAbrangencia;
  95 + }
  96 +
  97 + /**
  98 + * Retorna o valor do atributo <code>dominioTipoUtilizacao</code>
  99 + *
  100 + * @return <code>Dominio</code>
  101 + */
  102 + public Dominio getDominioTipoUtilizacao() {
  103 +
  104 + return dominioTipoUtilizacao;
  105 + }
  106 +
  107 + /**
  108 + * Define o valor do atributo <code>dominioTipoUtilizacao</code>.
  109 + *
  110 + * @param dominioTipoUtilizacao
  111 + */
  112 + public void setDominioTipoUtilizacao(Dominio dominioTipoUtilizacao) {
  113 +
  114 + this.dominioTipoUtilizacao = dominioTipoUtilizacao;
  115 + }
  116 +
  117 + /**
  118 + * Retorna o valor do atributo <code>valorLimite</code>
  119 + *
  120 + * @return <code>BigDecimal</code>
  121 + */
  122 + public BigDecimal getValorLimite() {
  123 +
  124 + return valorLimite;
  125 + }
  126 +
  127 + /**
  128 + * Define o valor do atributo <code>valorLimite</code>.
  129 + *
  130 + * @param valorLimite
  131 + */
  132 + public void setValorLimite(BigDecimal valorLimite) {
  133 +
  134 + this.valorLimite = valorLimite;
  135 + }
  136 +
  137 + /**
  138 + * Retorna o valor do atributo <code>id</code>
  139 + *
  140 + * @return <code>Long</code>
  141 + */
  142 + public Long getId() {
  143 +
  144 + return id;
  145 + }
  146 +
  147 + /**
  148 + * Define o valor do atributo <code>id</code>.
  149 + *
  150 + * @param id
  151 + */
  152 + public void setId(Long id) {
  153 +
  154 + this.id = id;
  155 + }
  156 +
  157 +
  158 + /**
  159 + * Retorna o valor do atributo <code>limiteAprovacao</code>
  160 + *
  161 + * @return <code>LimiteAprovacao</code>
  162 + */
  163 + public LimiteAprovacao getLimiteAprovacao() {
  164 +
  165 + return limiteAprovacao;
  166 + }
  167 +
  168 +
  169 + /**
  170 + * Define o valor do atributo <code>limiteAprovacao</code>.
  171 + *
  172 + * @param limiteAprovacao
  173 + */
  174 + public void setLimiteAprovacao(LimiteAprovacao limiteAprovacao) {
  175 +
  176 + this.limiteAprovacao = limiteAprovacao;
  177 + }
  178 +
  179 + /**
  180 + * Retorna o valor do atributo <code>valoresAcumulados</code>
  181 + *
  182 + * @return <code>Collection<ValorAcumulado></code>
  183 + */
  184 + public Collection<ValorAcumulado> getValoresAcumulados() {
  185 +
  186 + return valoresAcumulados;
  187 + }
  188 +
  189 +
  190 + /**
  191 + * Define o valor do atributo <code>valoresAcumulados</code>.
  192 + *
  193 + * @param valoresAcumulados
  194 + */
  195 + public void setValoresAcumulados(Collection<ValorAcumulado> valoresAcumulados) {
  196 +
  197 + this.valoresAcumulados = valoresAcumulados;
  198 + }
  199 +
  200 + public ValorAcumulado adicionaValorAcumulado(NivelAutoridade nivelAutoridade, Float valor) {
  201 + ValorAcumulado valorAcumulado = null;
  202 + for (ValorAcumulado valorAcumuladoAux : this.getValoresAcumulados()) {
  203 + if (valorAcumuladoAux.getNivelAutoridade().getId().equals(nivelAutoridade.getId())) {
  204 + valorAcumulado = valorAcumuladoAux;
  205 + break;
  206 + }
  207 + }
  208 +
  209 + if (valorAcumulado == null) {
  210 + valorAcumulado = new ValorAcumulado(nivelAutoridade);
  211 + this.getValoresAcumulados().add(valorAcumulado);
  212 + }
  213 +
  214 + valorAcumulado.setValor(valorAcumulado.getValor() + valor);
  215 + return valorAcumulado;
  216 + }
  217 +
  218 +
  219 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/model/ResponsavelAlcada.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/model/ResponsavelAlcada.java
... ... @@ -0,0 +1,311 @@
  1 +package br.com.centralit.api.model;
  2 +
  3 +import java.util.ArrayList;
  4 +import java.util.List;
  5 +
  6 +import javax.persistence.CascadeType;
  7 +import javax.persistence.Column;
  8 +import javax.persistence.Entity;
  9 +import javax.persistence.FetchType;
  10 +import javax.persistence.GeneratedValue;
  11 +import javax.persistence.GenerationType;
  12 +import javax.persistence.Id;
  13 +import javax.persistence.JoinColumn;
  14 +import javax.persistence.JoinTable;
  15 +import javax.persistence.ManyToMany;
  16 +import javax.persistence.ManyToOne;
  17 +
  18 +import br.com.centralit.api.framework.json.ViewsAlcada;
  19 +import br.com.centralit.api.framework.json.ViewsTabelasCorp;
  20 +import br.com.centralit.framework.json.Views;
  21 +import br.com.centralit.framework.model.Dominio;
  22 +import br.com.centralit.framework.model.Usuario;
  23 +import br.com.centralit.framework.model.arquitetura.PersistentObject;
  24 +
  25 +import com.fasterxml.jackson.annotation.JsonIgnore;
  26 +import com.fasterxml.jackson.annotation.JsonView;
  27 +
  28 +/**
  29 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  30 + *
  31 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  32 + *
  33 + * <p><b>Title: </b></p>
  34 + *
  35 + * <p><b>Description: </b></p>
  36 + *
  37 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  38 + *
  39 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  40 + *
  41 + * @since 14/07/2015 - 13:57:20
  42 + *
  43 + * @version 1.0.0
  44 + *
  45 + * @author lucas.ribeiro - (<a href="mailto:lucas.centralit@gmail.com">lucas.centralit@gmail.com</a>)
  46 + *
  47 + */
  48 +@Entity
  49 +public class ResponsavelAlcada extends PersistentObject {
  50 +
  51 + /** Atributo serialVersionUID. */
  52 + private static final long serialVersionUID = 1L;
  53 +
  54 + /** Atributo id. */
  55 + @Id
  56 + @GeneratedValue(strategy = GenerationType.AUTO)
  57 + @JsonView({ Views.GenericView.class })
  58 + private Long id;
  59 +
  60 + @ManyToOne(fetch = FetchType.LAZY, optional = false)
  61 + @JsonIgnore
  62 + private SolicitacaoAlcada solicitacaoAlcada;
  63 +
  64 + @ManyToOne(fetch = FetchType.LAZY, optional = false)
  65 + @JsonView({ ViewsTabelasCorp.SolicitacaoAlcadaView.class, ViewsAlcada.RecuperacaoAlcadaView.class })
  66 + private Colaborador colaborador;
  67 +
  68 + @ManyToOne(fetch = FetchType.LAZY, optional = false)
  69 + @JsonView({ ViewsTabelasCorp.SolicitacaoAlcadaView.class, ViewsAlcada.RecuperacaoAlcadaView.class })
  70 + private Usuario usuario;
  71 +
  72 + @ManyToOne(fetch = FetchType.LAZY, optional = true)
  73 + @JsonView({ ViewsTabelasCorp.SolicitacaoAlcadaView.class, ViewsAlcada.RecuperacaoAlcadaView.class })
  74 + private NivelAutoridade nivelAutoridade;
  75 +
  76 + @Column(nullable = false)
  77 + @JsonView({ Views.GenericView.class })
  78 + protected Boolean delegacao;
  79 +
  80 + @ManyToOne(fetch = FetchType.LAZY, optional = true)
  81 + @JsonIgnore
  82 + private CentroResultadoDelegacao centroResultadoDelegacao;
  83 +
  84 + @Column(nullable = false)
  85 + @JsonView({ Views.GenericView.class })
  86 + protected Boolean habilitado;
  87 +
  88 + @JsonView({ViewsTabelasCorp.SolicitacaoAlcadaView.class, ViewsAlcada.RecuperacaoAlcadaView.class} )
  89 + @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
  90 + @JoinTable(name="MotivoRejeicaoAlcada",
  91 + joinColumns= @JoinColumn( name = "autorizadorAlcada_id"),
  92 + inverseJoinColumns= @JoinColumn(name = "motivoRejeicao_id") )
  93 + private List<Dominio> motivosRejeicao;
  94 +
  95 + public ResponsavelAlcada() {
  96 +
  97 + }
  98 +
  99 + public ResponsavelAlcada(SolicitacaoAlcada solicitacaoAlcada, Colaborador colaborador, NivelAutoridade nivelAutoridade, CentroResultadoDelegacao centroResultadoDelegacao) {
  100 + this.solicitacaoAlcada = solicitacaoAlcada;
  101 + this.habilitado = true;
  102 + this.colaborador = colaborador;
  103 + this.nivelAutoridade = nivelAutoridade;
  104 + this.usuario = colaborador.getPessoa().getUsuario();
  105 + this.centroResultadoDelegacao = centroResultadoDelegacao;
  106 + this.setDelegacao(centroResultadoDelegacao != null);
  107 + }
  108 +
  109 + /**
  110 + * Retorna o valor do atributo <code>solicitacaoAlcada</code>
  111 + *
  112 + * @return <code>SolicitacaoAlcada</code>
  113 + */
  114 + public SolicitacaoAlcada getSolicitacaoAlcada() {
  115 +
  116 + return solicitacaoAlcada;
  117 + }
  118 +
  119 +
  120 + /**
  121 + * Define o valor do atributo <code>solicitacaoAlcada</code>.
  122 + *
  123 + * @param solicitacaoAlcada
  124 + */
  125 + public void setSolicitacaoAlcada(SolicitacaoAlcada solicitacaoAlcada) {
  126 +
  127 + this.solicitacaoAlcada = solicitacaoAlcada;
  128 + }
  129 +
  130 +
  131 + /**
  132 + * Retorna o valor do atributo <code>colaborador</code>
  133 + *
  134 + * @return <code>Colaborador</code>
  135 + */
  136 + public Colaborador getColaborador() {
  137 +
  138 + return colaborador;
  139 + }
  140 +
  141 +
  142 + /**
  143 + * Define o valor do atributo <code>colaborador</code>.
  144 + *
  145 + * @param colaborador
  146 + */
  147 + public void setColaborador(Colaborador colaborador) {
  148 +
  149 + this.colaborador = colaborador;
  150 + }
  151 +
  152 +
  153 + /**
  154 + * Retorna o valor do atributo <code>usuario</code>
  155 + *
  156 + * @return <code>Usuario</code>
  157 + */
  158 + public Usuario getUsuario() {
  159 +
  160 + return usuario;
  161 + }
  162 +
  163 +
  164 + /**
  165 + * Define o valor do atributo <code>usuario</code>.
  166 + *
  167 + * @param usuario
  168 + */
  169 + public void setUsuario(Usuario usuario) {
  170 +
  171 + this.usuario = usuario;
  172 + }
  173 +
  174 +
  175 + /**
  176 + * Retorna o valor do atributo <code>nivelAutoridade</code>
  177 + *
  178 + * @return <code>NivelAutoridade</code>
  179 + */
  180 + public NivelAutoridade getNivelAutoridade() {
  181 +
  182 + return nivelAutoridade;
  183 + }
  184 +
  185 +
  186 + /**
  187 + * Define o valor do atributo <code>nivelAutoridade</code>.
  188 + *
  189 + * @param nivelAutoridade
  190 + */
  191 + public void setNivelAutoridade(NivelAutoridade nivelAutoridade) {
  192 +
  193 + this.nivelAutoridade = nivelAutoridade;
  194 + }
  195 +
  196 +
  197 + /**
  198 + * Retorna o valor do atributo <code>delegacao</code>
  199 + *
  200 + * @return <code>Boolean</code>
  201 + */
  202 + public Boolean getDelegacao() {
  203 +
  204 + return delegacao;
  205 + }
  206 +
  207 +
  208 + /**
  209 + * Define o valor do atributo <code>delegacao</code>.
  210 + *
  211 + * @param delegacao
  212 + */
  213 + public void setDelegacao(Boolean delegacao) {
  214 +
  215 + this.delegacao = delegacao;
  216 + }
  217 +
  218 +
  219 + /**
  220 + * Retorna o valor do atributo <code>centroResultadoDelegacao</code>
  221 + *
  222 + * @return <code>CentroResultadoDelegacao</code>
  223 + */
  224 + public CentroResultadoDelegacao getCentroResultadoDelegacao() {
  225 +
  226 + return centroResultadoDelegacao;
  227 + }
  228 +
  229 +
  230 + /**
  231 + * Define o valor do atributo <code>centroResultadoDelegacao</code>.
  232 + *
  233 + * @param centroResultadoDelegacao
  234 + */
  235 + public void setCentroResultadoDelegacao(CentroResultadoDelegacao centroResultadoDelegacao) {
  236 +
  237 + this.centroResultadoDelegacao = centroResultadoDelegacao;
  238 + }
  239 +
  240 +
  241 + /**
  242 + * Retorna o valor do atributo <code>habilitado</code>
  243 + *
  244 + * @return <code>Boolean</code>
  245 + */
  246 + public Boolean getHabilitado() {
  247 +
  248 + return habilitado;
  249 + }
  250 +
  251 +
  252 + /**
  253 + * Define o valor do atributo <code>habilitado</code>.
  254 + *
  255 + * @param habilitado
  256 + */
  257 + public void setHabilitado(Boolean habilitado) {
  258 +
  259 + this.habilitado = habilitado;
  260 + }
  261 +
  262 +
  263 + /**
  264 + * Retorna o valor do atributo <code>motivosRejeicao</code>
  265 + *
  266 + * @return <code>List<Dominio></code>
  267 + */
  268 + public List<Dominio> getMotivosRejeicao() {
  269 +
  270 + return motivosRejeicao;
  271 + }
  272 +
  273 +
  274 + /**
  275 + * Define o valor do atributo <code>motivosRejeicao</code>.
  276 + *
  277 + * @param motivosRejeicao
  278 + */
  279 + public void setMotivosRejeicao(List<Dominio> motivosRejeicao) {
  280 +
  281 + this.motivosRejeicao = motivosRejeicao;
  282 + }
  283 +
  284 +
  285 + /**
  286 + * Define o valor do atributo <code>id</code>.
  287 + *
  288 + * @param id
  289 + */
  290 + public void setId(Long id) {
  291 +
  292 + this.id = id;
  293 + }
  294 +
  295 + @Override
  296 + public Long getId() {
  297 + return this.id;
  298 + }
  299 +
  300 + public void adicionaMotivoRejeicao(Dominio motivoRejeicao) {
  301 + if (this.getMotivosRejeicao() == null) {
  302 + this.setMotivosRejeicao(new ArrayList<Dominio>());
  303 + }
  304 +
  305 + this.setHabilitado(false);
  306 + this.getMotivosRejeicao().add(motivoRejeicao);
  307 + }
  308 +
  309 +
  310 +
  311 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/model/SolicitacaoAlcada.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/model/SolicitacaoAlcada.java
... ... @@ -0,0 +1,506 @@
  1 +package br.com.centralit.api.model;
  2 +
  3 +import java.math.BigDecimal;
  4 +import java.util.Calendar;
  5 +import java.util.List;
  6 +
  7 +import javax.persistence.CascadeType;
  8 +import javax.persistence.Column;
  9 +import javax.persistence.Entity;
  10 +import javax.persistence.FetchType;
  11 +import javax.persistence.GeneratedValue;
  12 +import javax.persistence.GenerationType;
  13 +import javax.persistence.Id;
  14 +import javax.persistence.ManyToOne;
  15 +import javax.persistence.OneToMany;
  16 +import javax.persistence.PrePersist;
  17 +import javax.persistence.Temporal;
  18 +import javax.persistence.TemporalType;
  19 +import javax.persistence.Transient;
  20 +
  21 +import br.com.centralit.api.framework.json.ViewsAlcada;
  22 +import br.com.centralit.api.framework.json.ViewsTabelasCorp;
  23 +import br.com.centralit.framework.json.JsonCalendarSimpleDateDeserializer;
  24 +import br.com.centralit.framework.json.JsonCalendarSimpleDateSerializer;
  25 +import br.com.centralit.framework.json.MoneyDeserializer;
  26 +import br.com.centralit.framework.json.Views;
  27 +import br.com.centralit.framework.model.Dominio;
  28 +import br.com.centralit.framework.model.Usuario;
  29 +import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit;
  30 +import br.com.centralit.framework.util.UtilDate;
  31 +
  32 +import com.fasterxml.jackson.annotation.JsonView;
  33 +import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
  34 +import com.fasterxml.jackson.databind.annotation.JsonSerialize;
  35 +
  36 +/**
  37 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  38 + *
  39 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  40 + *
  41 + * <p><b>Title: </b></p>
  42 + *
  43 + * <p><b>Description: </b></p>
  44 + *
  45 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  46 + *
  47 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  48 + *
  49 + * @since 14/07/2015 - 13:57:20
  50 + *
  51 + * @version 1.0.0
  52 + *
  53 + * @author lucas.ribeiro - (<a href="mailto:lucas.centralit@gmail.com">lucas.centralit@gmail.com</a>)
  54 + *
  55 + */
  56 +@Entity
  57 +public class SolicitacaoAlcada extends PersistentObjectAudit {
  58 +
  59 + /** Atributo serialVersionUID. */
  60 + private static final long serialVersionUID = 1L;
  61 +
  62 + /** Atributo id. */
  63 + @Id
  64 + @GeneratedValue(strategy = GenerationType.AUTO)
  65 + @JsonView({ Views.GenericView.class })
  66 + private Long id;
  67 +
  68 + @JsonView({ Views.GenericView.class })
  69 + private Integer ano;
  70 +
  71 + @JsonView({ Views.GenericView.class })
  72 + private Integer mes;
  73 +
  74 + @ManyToOne(fetch = FetchType.LAZY, optional = false)
  75 + @JsonView({ ViewsTabelasCorp.SolicitacaoAlcadaView.class })
  76 + private Alcada alcada;
  77 +
  78 + @ManyToOne(fetch = FetchType.LAZY, optional = false)
  79 + @JsonView({ ViewsTabelasCorp.SolicitacaoAlcadaView.class })
  80 + private CentroResultado centroResultado;
  81 +
  82 + @ManyToOne(fetch = FetchType.LAZY, optional = true)
  83 + @JsonView({ ViewsTabelasCorp.SolicitacaoAlcadaView.class })
  84 + private Usuario solicitante;
  85 +
  86 + @Column(nullable = false)
  87 + @Temporal(TemporalType.TIMESTAMP)
  88 + @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class)
  89 + @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class)
  90 + @JsonView({ ViewsTabelasCorp.SolicitacaoAlcadaView.class })
  91 + private Calendar dataReferencia;
  92 +
  93 + @Column(nullable = false)
  94 + @JsonView({ ViewsTabelasCorp.SolicitacaoAlcadaView.class })
  95 + protected String requisicaoOrigem;
  96 +
  97 + @JsonView({ ViewsTabelasCorp.SolicitacaoAlcadaView.class })
  98 + protected String identificador;
  99 +
  100 + @ManyToOne(fetch = FetchType.LAZY, optional = true)
  101 + @JsonView({ ViewsTabelasCorp.SolicitacaoAlcadaView.class })
  102 + private Dominio tipoUtilizacao;
  103 +
  104 + @Column(nullable = false, precision = 20, scale = 2)
  105 + @JsonDeserialize(using = MoneyDeserializer.class)
  106 + @JsonView({ Views.GenericView.class })
  107 + private BigDecimal valor;
  108 +
  109 + @ManyToOne(fetch = FetchType.LAZY, optional = false)
  110 + @JsonView({ ViewsTabelasCorp.SolicitacaoAlcadaView.class, ViewsAlcada.RecuperacaoAlcadaView.class })
  111 + private Dominio situacao;
  112 +
  113 + @ManyToOne(fetch = FetchType.LAZY, optional = true)
  114 + @JsonView({ ViewsTabelasCorp.SolicitacaoAlcadaView.class })
  115 + private ResponsavelAlcada aprovador;
  116 +
  117 + @OneToMany(fetch = FetchType.LAZY, mappedBy = "solicitacaoAlcada", cascade = CascadeType.ALL)
  118 + @JsonView({ ViewsTabelasCorp.SolicitacaoAlcadaView.class, ViewsAlcada.RecuperacaoAlcadaView.class })
  119 + private List<ResponsavelAlcada> responsaveis;
  120 +
  121 + @Transient
  122 + @JsonView({ ViewsTabelasCorp.SolicitacaoAlcadaView.class, ViewsAlcada.RecuperacaoAlcadaView.class })
  123 + private String usernameAprovador;
  124 +
  125 + @Transient
  126 + @JsonView({ ViewsTabelasCorp.SolicitacaoAlcadaView.class })
  127 + private Usuario usuarioAprovador;
  128 +
  129 + @Override
  130 + public Long getId() {
  131 + return this.id;
  132 + }
  133 +
  134 + public SolicitacaoAlcada() {
  135 +
  136 + }
  137 +
  138 + public SolicitacaoAlcada( final Alcada alcada, final CentroResultado centroResultado, final Usuario solicitante
  139 + , final Calendar dataReferencia, String requisicaoOrigem, Dominio tipoUtilizacao, BigDecimal valor) {
  140 + this.alcada = alcada;
  141 + this.centroResultado = centroResultado;
  142 + this.solicitante = solicitante;
  143 + this.dataReferencia = dataReferencia;
  144 + this.requisicaoOrigem = requisicaoOrigem;
  145 + this.tipoUtilizacao = tipoUtilizacao;
  146 + this.valor = valor;
  147 + }
  148 +
  149 + /**
  150 + * Retorna o valor do atributo <code>alcada</code>
  151 + *
  152 + * @return <code>Alcada</code>
  153 + */
  154 + public Alcada getAlcada() {
  155 +
  156 + return alcada;
  157 + }
  158 +
  159 +
  160 + /**
  161 + * Define o valor do atributo <code>alcada</code>.
  162 + *
  163 + * @param alcada
  164 + */
  165 + public void setAlcada(Alcada alcada) {
  166 +
  167 + this.alcada = alcada;
  168 + }
  169 +
  170 +
  171 + /**
  172 + * Retorna o valor do atributo <code>centroResultado</code>
  173 + *
  174 + * @return <code>CentroResultado</code>
  175 + */
  176 + public CentroResultado getCentroResultado() {
  177 +
  178 + return centroResultado;
  179 + }
  180 +
  181 +
  182 + /**
  183 + * Define o valor do atributo <code>centroResultado</code>.
  184 + *
  185 + * @param centroResultado
  186 + */
  187 + public void setCentroResultado(CentroResultado centroResultado) {
  188 +
  189 + this.centroResultado = centroResultado;
  190 + }
  191 +
  192 +
  193 + /**
  194 + * Retorna o valor do atributo <code>solicitante</code>
  195 + *
  196 + * @return <code>Usuario</code>
  197 + */
  198 + public Usuario getSolicitante() {
  199 +
  200 + return solicitante;
  201 + }
  202 +
  203 +
  204 + /**
  205 + * Define o valor do atributo <code>solicitante</code>.
  206 + *
  207 + * @param solicitante
  208 + */
  209 + public void setSolicitante(Usuario solicitante) {
  210 +
  211 + this.solicitante = solicitante;
  212 + }
  213 +
  214 +
  215 + /**
  216 + * Retorna o valor do atributo <code>dataReferencia</code>
  217 + *
  218 + * @return <code>Calendar</code>
  219 + */
  220 + public Calendar getDataReferencia() {
  221 +
  222 + return dataReferencia;
  223 + }
  224 +
  225 +
  226 + /**
  227 + * Define o valor do atributo <code>dataReferencia</code>.
  228 + *
  229 + * @param dataReferencia
  230 + */
  231 + public void setDataReferencia(Calendar dataReferencia) {
  232 +
  233 + this.dataReferencia = dataReferencia;
  234 + }
  235 +
  236 +
  237 + /**
  238 + * Retorna o valor do atributo <code>requisicaoOrigem</code>
  239 + *
  240 + * @return <code>String</code>
  241 + */
  242 + public String getRequisicaoOrigem() {
  243 +
  244 + return requisicaoOrigem;
  245 + }
  246 +
  247 +
  248 + /**
  249 + * Define o valor do atributo <code>requisicaoOrigem</code>.
  250 + *
  251 + * @param requisicaoOrigem
  252 + */
  253 + public void setRequisicaoOrigem(String requisicaoOrigem) {
  254 +
  255 + this.requisicaoOrigem = requisicaoOrigem;
  256 + }
  257 +
  258 +
  259 + /**
  260 + * Retorna o valor do atributo <code>tipoUtilizacao</code>
  261 + *
  262 + * @return <code>Dominio</code>
  263 + */
  264 + public Dominio getTipoUtilizacao() {
  265 +
  266 + return tipoUtilizacao;
  267 + }
  268 +
  269 +
  270 + /**
  271 + * Define o valor do atributo <code>tipoUtilizacao</code>.
  272 + *
  273 + * @param tipoUtilizacao
  274 + */
  275 + public void setTipoUtilizacao(Dominio tipoUtilizacao) {
  276 +
  277 + this.tipoUtilizacao = tipoUtilizacao;
  278 + }
  279 +
  280 +
  281 + /**
  282 + * Retorna o valor do atributo <code>valor</code>
  283 + *
  284 + * @return <code>BigDecimal</code>
  285 + */
  286 + public BigDecimal getValor() {
  287 +
  288 + return valor;
  289 + }
  290 +
  291 +
  292 + /**
  293 + * Define o valor do atributo <code>valor</code>.
  294 + *
  295 + * @param valor
  296 + */
  297 + public void setValor(BigDecimal valor) {
  298 +
  299 + this.valor = valor;
  300 + }
  301 +
  302 +
  303 + /**
  304 + * Retorna o valor do atributo <code>situacao</code>
  305 + *
  306 + * @return <code>Dominio</code>
  307 + */
  308 + public Dominio getSituacao() {
  309 +
  310 + return situacao;
  311 + }
  312 +
  313 +
  314 + /**
  315 + * Define o valor do atributo <code>situacao</code>.
  316 + *
  317 + * @param situacao
  318 + */
  319 + public void setSituacao(Dominio situacao) {
  320 +
  321 + this.situacao = situacao;
  322 + }
  323 +
  324 +
  325 + /**
  326 + * Retorna o valor do atributo <code>aprovador</code>
  327 + *
  328 + * @return <code>ResponsavelAlcada</code>
  329 + */
  330 + public ResponsavelAlcada getAprovador() {
  331 +
  332 + return aprovador;
  333 + }
  334 +
  335 +
  336 + /**
  337 + * Retorna o valor do atributo <code>responsaveis</code>
  338 + *
  339 + * @return <code>Collection<ResponsavelAlcada></code>
  340 + */
  341 + public List<ResponsavelAlcada> getResponsaveis() {
  342 +
  343 + return responsaveis;
  344 + }
  345 +
  346 +
  347 + /**
  348 + * Define o valor do atributo <code>responsaveis</code>.
  349 + *
  350 + * @param responsaveis
  351 + */
  352 + public void setResponsaveis(List<ResponsavelAlcada> responsaveis) {
  353 +
  354 + this.responsaveis = responsaveis;
  355 + }
  356 +
  357 +
  358 + /**
  359 + * Define o valor do atributo <code>id</code>.
  360 + *
  361 + * @param id
  362 + */
  363 + public void setId(Long id) {
  364 +
  365 + this.id = id;
  366 + }
  367 +
  368 +
  369 +
  370 + /**
  371 + * Retorna o valor do atributo <code>ano</code>
  372 + *
  373 + * @return <code>Integer</code>
  374 + */
  375 + public Integer getAno() {
  376 +
  377 + return ano;
  378 + }
  379 +
  380 +
  381 +
  382 + /**
  383 + * Define o valor do atributo <code>ano</code>.
  384 + *
  385 + * @param ano
  386 + */
  387 + public void setAno(Integer ano) {
  388 +
  389 + this.ano = ano;
  390 + }
  391 +
  392 +
  393 +
  394 + /**
  395 + * Retorna o valor do atributo <code>mes</code>
  396 + *
  397 + * @return <code>Integer</code>
  398 + */
  399 + public Integer getMes() {
  400 +
  401 + return mes;
  402 + }
  403 +
  404 +
  405 +
  406 + /**
  407 + * Define o valor do atributo <code>mes</code>.
  408 + *
  409 + * @param mes
  410 + */
  411 + public void setMes(Integer mes) {
  412 +
  413 + this.mes = mes;
  414 + }
  415 +
  416 + @PrePersist
  417 + protected void onPrePersist() {
  418 + super.onPrePersist();
  419 + if(this.dataReferencia != null){
  420 + int ano = new Integer(UtilDate.getAno(this.getDataReferencia().getTime()));
  421 + int mes = new Integer(UtilDate.getMes(this.getDataReferencia().getTime()));
  422 +
  423 + this.setMes(mes);
  424 + this.setAno(ano);
  425 + }
  426 + }
  427 +
  428 +
  429 + /**
  430 + * Retorna o valor do atributo <code>usernameAprovador</code>
  431 + *
  432 + * @return <code>String</code>
  433 + */
  434 + public String getUsernameAprovador() {
  435 +
  436 + return usernameAprovador;
  437 + }
  438 +
  439 +
  440 + /**
  441 + * Define o valor do atributo <code>usernameAprovador</code>.
  442 + *
  443 + * @param usernameAprovador
  444 + */
  445 + public void setUsernameAprovador(String usernameAprovador) {
  446 +
  447 + this.usernameAprovador = usernameAprovador;
  448 + }
  449 +
  450 +
  451 + /**
  452 + * Retorna o valor do atributo <code>usuarioAprovador</code>
  453 + *
  454 + * @return <code>Usuario</code>
  455 + */
  456 + public Usuario getUsuarioAprovador() {
  457 +
  458 + return usuarioAprovador;
  459 + }
  460 +
  461 +
  462 + /**
  463 + * Define o valor do atributo <code>usuarioAprovador</code>.
  464 + *
  465 + * @param usuarioAprovador
  466 + */
  467 + public void setUsuarioAprovador(Usuario usuarioAprovador) {
  468 +
  469 + this.usuarioAprovador = usuarioAprovador;
  470 + }
  471 +
  472 +
  473 + /**
  474 + * Retorna o valor do atributo <code>identificador</code>
  475 + *
  476 + * @return <code>String</code>
  477 + */
  478 + public String getIdentificador() {
  479 +
  480 + return identificador;
  481 + }
  482 +
  483 +
  484 + /**
  485 + * Define o valor do atributo <code>identificador</code>.
  486 + *
  487 + * @param identificador
  488 + */
  489 + public void setIdentificador(String identificador) {
  490 +
  491 + this.identificador = identificador;
  492 + }
  493 +
  494 +
  495 + /**
  496 + * Define o valor do atributo <code>aprovador</code>.
  497 + *
  498 + * @param aprovador
  499 + */
  500 + public void setAprovador(ResponsavelAlcada aprovador) {
  501 +
  502 + this.aprovador = aprovador;
  503 + }
  504 +
  505 +
  506 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/model/ValorAcumulado.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/model/ValorAcumulado.java
... ... @@ -0,0 +1,109 @@
  1 +package br.com.centralit.api.model;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +/**
  6 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  7 + *
  8 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  9 + *
  10 + * <p><b>Title: </b></p>
  11 + *
  12 + * <p><b>Description: </b></p>
  13 + *
  14 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  15 + *
  16 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  17 + *
  18 + * @since 18/06/2015 - 16:57:20
  19 + *
  20 + * @version 1.0.0
  21 + *
  22 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  23 + *
  24 + */
  25 +public class ValorAcumulado implements Serializable {
  26 +
  27 + /** Atributo serialVersionUID. */
  28 + private static final long serialVersionUID = 1L;
  29 +
  30 + private NivelAutoridade nivelAutoridade;
  31 +
  32 + private float valor;
  33 +
  34 + private boolean rejeitado;
  35 +
  36 + public ValorAcumulado(NivelAutoridade nivelAutoridade) {
  37 + this.nivelAutoridade = nivelAutoridade;
  38 + this.valor = 0;
  39 + this.rejeitado = false;
  40 + }
  41 +
  42 + /**
  43 + * Retorna o valor do atributo <code>valor</code>
  44 + *
  45 + * @return <code>Float</code>
  46 + */
  47 + public float getValor() {
  48 +
  49 + return valor;
  50 + }
  51 +
  52 +
  53 + /**
  54 + * Define o valor do atributo <code>valor</code>.
  55 + *
  56 + * @param valor
  57 + */
  58 + public void setValor(float valor) {
  59 +
  60 + this.valor = valor;
  61 + }
  62 +
  63 +
  64 + /**
  65 + * Retorna o valor do atributo <code>nivelAutoridade</code>
  66 + *
  67 + * @return <code>NivelAutoridade</code>
  68 + */
  69 + public NivelAutoridade getNivelAutoridade() {
  70 +
  71 + return nivelAutoridade;
  72 + }
  73 +
  74 +
  75 + /**
  76 + * Define o valor do atributo <code>nivelAutoridade</code>.
  77 + *
  78 + * @param nivelAutoridade
  79 + */
  80 + public void setNivelAutoridade(NivelAutoridade nivelAutoridade) {
  81 +
  82 + this.nivelAutoridade = nivelAutoridade;
  83 + }
  84 +
  85 +
  86 +
  87 + /**
  88 + * Retorna o valor do atributo <code>rejeitado</code>
  89 + *
  90 + * @return <code>boolean</code>
  91 + */
  92 + public boolean isRejeitado() {
  93 +
  94 + return rejeitado;
  95 + }
  96 +
  97 +
  98 + /**
  99 + * Define o valor do atributo <code>rejeitado</code>.
  100 + *
  101 + * @param rejeitado
  102 + */
  103 + public void setRejeitado(boolean rejeitado) {
  104 +
  105 + this.rejeitado = rejeitado;
  106 + }
  107 +
  108 +
  109 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/package-info.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/package-info.java
... ... @@ -0,0 +1 @@
  1 +package br.com.centralit.api;
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/CentroResultadoDelegacaoService.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/CentroResultadoDelegacaoService.java
... ... @@ -0,0 +1,36 @@
  1 +package br.com.centralit.api.service;
  2 +
  3 +import java.util.List;
  4 +
  5 +import br.com.centralit.api.model.CentroResultadoDelegacao;
  6 +import br.com.centralit.framework.service.arquitetura.GenericService;
  7 +
  8 +/**
  9 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  10 + *
  11 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  12 + *
  13 + * <p><b>Title: </b></p>
  14 + *
  15 + * <p><b>Description: </b></p>
  16 + *
  17 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  18 + *
  19 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  20 + *
  21 + * @since 30/06/2015 - 14:10:14
  22 + *
  23 + * @version 1.0.0
  24 + *
  25 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  26 + *
  27 + */
  28 +public interface CentroResultadoDelegacaoService extends GenericService<CentroResultadoDelegacao, Long> {
  29 +
  30 + public List<CentroResultadoDelegacao> buscaHistoricoDelegacoes(Long idCentroResultado);
  31 +
  32 + public List<CentroResultadoDelegacao> buscaHistoricoDelegacoesUsuario(Long idUsuario);
  33 +
  34 + public CentroResultadoDelegacao revogar(Long idCentroResultadoDelegacao);
  35 +
  36 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/LimiteAprovacaoAlcadaService.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/LimiteAprovacaoAlcadaService.java
... ... @@ -0,0 +1,79 @@
  1 +package br.com.centralit.api.service;
  2 +
  3 +import java.util.List;
  4 +
  5 +import br.com.centralit.api.model.Alcada;
  6 +import br.com.centralit.api.model.LimiteAprovacao;
  7 +import br.com.centralit.api.model.LimiteAprovacaoAlcada;
  8 +import br.com.centralit.framework.service.arquitetura.GenericService;
  9 +
  10 +/**
  11 + * <p>
  12 + * <img src="http://centralit.com.br/images/logo_central.png">
  13 + * </p>
  14 + *
  15 + * <p>
  16 + * <b>Company: </b> Central IT - Governança Corporativa -
  17 + * </p>
  18 + *
  19 + * <p>
  20 + * <b>Title: </b>
  21 + * </p>
  22 + *
  23 + * <p>
  24 + * <b>Description: </b>
  25 + * </p>
  26 + *
  27 + * <p>
  28 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  29 + * </p>
  30 + *
  31 + * <p>
  32 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  33 + * </p>
  34 + *
  35 + * @since 23/06/2015 - 15:12:53
  36 + *
  37 + * @version 1.0.0
  38 + *
  39 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  40 + *
  41 + */
  42 +public interface LimiteAprovacaoAlcadaService extends GenericService<LimiteAprovacaoAlcada, Long> {
  43 +
  44 + /**
  45 + * <p>
  46 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  47 + * </p>
  48 + *
  49 + * <p>
  50 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  51 + * </p>
  52 + *
  53 + * Método responsável por
  54 + *
  55 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  56 + *
  57 + * @param limiteAprovacao
  58 + */
  59 + public void montarLimiteAprovacaoAlcada(LimiteAprovacao limiteAprovacao);
  60 +
  61 + /**
  62 + * <p>
  63 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  64 + * </p>
  65 + *
  66 + * <p>
  67 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  68 + * </p>
  69 + *
  70 + * Método responsável por
  71 + *
  72 + * @author renato.jesus
  73 + *
  74 + * @param alcada
  75 + * @return
  76 + */
  77 + List<LimiteAprovacaoAlcada> findByAlcada(Alcada alcada);
  78 +
  79 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/LimiteAprovacaoNivelAutoridadeService.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/LimiteAprovacaoNivelAutoridadeService.java
... ... @@ -0,0 +1,42 @@
  1 +package br.com.centralit.api.service;
  2 +
  3 +import br.com.centralit.api.model.LimiteAprovacao;
  4 +import br.com.centralit.api.model.LimiteAprovacaoNivelAutoridade;
  5 +import br.com.centralit.framework.service.arquitetura.GenericService;
  6 +
  7 +/**
  8 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  9 + *
  10 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  11 + *
  12 + * <p><b>Title: </b></p>
  13 + *
  14 + * <p><b>Description: </b></p>
  15 + *
  16 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  17 + *
  18 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  19 + *
  20 + * @since 23/06/2015 - 15:17:07
  21 + *
  22 + * @version 1.0.0
  23 + *
  24 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  25 + *
  26 + */
  27 +public interface LimiteAprovacaoNivelAutoridadeService extends GenericService<LimiteAprovacaoNivelAutoridade, Long> {
  28 +
  29 + /**
  30 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  31 + *
  32 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  33 + *
  34 + * Método responsável por
  35 + *
  36 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  37 + *
  38 + * @param limiteAprovacao
  39 + */
  40 + public void montarLimiteAprovacaoNivelAutoridade(LimiteAprovacao limiteAprovacao);
  41 +
  42 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/LimiteAprovacaoService.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/LimiteAprovacaoService.java
... ... @@ -0,0 +1,26 @@
  1 +package br.com.centralit.api.service;
  2 +
  3 +import br.com.centralit.api.model.LimiteAprovacao;
  4 +import br.com.centralit.framework.service.arquitetura.GenericService;
  5 +
  6 +/**
  7 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  8 + *
  9 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  10 + *
  11 + * <p><b>Title: </b></p>
  12 + *
  13 + * <p><b>Description: </b></p>
  14 + *
  15 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  16 + *
  17 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  18 + *
  19 + * @since 18/06/2015 - 16:57:38
  20 + *
  21 + * @version 1.0.0
  22 + *
  23 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  24 + *
  25 + */
  26 +public interface LimiteAprovacaoService extends GenericService<LimiteAprovacao, Long> {}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/LimiteAprovacaoValorService.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/LimiteAprovacaoValorService.java
... ... @@ -0,0 +1,42 @@
  1 +package br.com.centralit.api.service;
  2 +
  3 +import br.com.centralit.api.model.LimiteAprovacao;
  4 +import br.com.centralit.api.model.LimiteAprovacaoValor;
  5 +import br.com.centralit.framework.service.arquitetura.GenericService;
  6 +
  7 +/**
  8 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  9 + *
  10 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  11 + *
  12 + * <p><b>Title: </b></p>
  13 + *
  14 + * <p><b>Description: </b></p>
  15 + *
  16 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  17 + *
  18 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  19 + *
  20 + * @since 18/06/2015 - 16:57:07
  21 + *
  22 + * @version 1.0.0
  23 + *
  24 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  25 + *
  26 + */
  27 +public interface LimiteAprovacaoValorService extends GenericService<LimiteAprovacaoValor, Long> {
  28 +
  29 + /**
  30 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  31 + *
  32 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  33 + *
  34 + * Método responsável por
  35 + *
  36 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  37 + *
  38 + * @param limiteAprovacao
  39 + */
  40 + public void montarLimiteAprovacaoValor(LimiteAprovacao limiteAprovacao);
  41 +
  42 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/SolicitacaoAlcadaService.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/SolicitacaoAlcadaService.java
... ... @@ -0,0 +1,116 @@
  1 +package br.com.centralit.api.service;
  2 +
  3 +import java.util.List;
  4 +
  5 +import br.com.centralit.api.model.Alcada;
  6 +import br.com.centralit.api.model.ResponsavelAlcada;
  7 +import br.com.centralit.api.model.SolicitacaoAlcada;
  8 +import br.com.centralit.framework.model.Usuario;
  9 +import br.com.centralit.framework.service.arquitetura.GenericService;
  10 +
  11 +/**
  12 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  13 + *
  14 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  15 + *
  16 + * <p><b>Title: </b></p>
  17 + *
  18 + * <p><b>Description: </b></p>
  19 + *
  20 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  21 + *
  22 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  23 + *
  24 + * @since 18/06/2015 - 16:57:07
  25 + *
  26 + * @version 1.0.0
  27 + *
  28 + * @author lucas.ribeiro - (<a href="mailto:lucas.centralit@gmail.com">lucas.centralit@gmail.com</a>)
  29 + *
  30 + */
  31 +public interface SolicitacaoAlcadaService extends GenericService<SolicitacaoAlcada, Long> {
  32 +
  33 + /**
  34 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  35 + *
  36 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  37 + *
  38 + * Método responsável por retornar os autorizadores de uma solicitação de alçada
  39 + *
  40 + * @author Carlos
  41 + *
  42 + * @param solicitacaoAlcada
  43 + * @return
  44 + */
  45 + public List<ResponsavelAlcada> getResponsaveis(SolicitacaoAlcada solicitacaoAlcada);
  46 +
  47 + /**
  48 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  49 + *
  50 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  51 + *
  52 + * Método responsável por autorizar um pedido de alçada
  53 + *
  54 + * @author Carlos
  55 + *
  56 + * @param solicitacaoAlcada
  57 + * @return
  58 + */
  59 + public SolicitacaoAlcada aprovaSolicitacao(SolicitacaoAlcada solicitacaoAlcada, Usuario aprovador);
  60 +
  61 + /**
  62 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  63 + *
  64 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  65 + *
  66 + * Método responsável por cancelar a autorização de um pedido de alçada
  67 + *
  68 + * @author Carlos
  69 + *
  70 + * @param voucher
  71 + */
  72 + public SolicitacaoAlcada cancelaAprovacao(SolicitacaoAlcada solicitacaoAlcada);
  73 +
  74 + /**
  75 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  76 + *
  77 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  78 + *
  79 + * Método responsável por autorizar um pedido de alçada
  80 + *
  81 + * @author Carlos
  82 + *
  83 + * @param solicitacaoAlcada
  84 + * @return
  85 + */
  86 + public SolicitacaoAlcada aprovaPeloIdentificador(SolicitacaoAlcada solicitacaoAlcada);
  87 +
  88 + /**
  89 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  90 + *
  91 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  92 + *
  93 + * Método responsável por recuperar uma alçada pelo identificador único
  94 + *
  95 + * @author Carlos
  96 + *
  97 + * @param solicitacaoAlcada
  98 + * @return
  99 + */
  100 + public SolicitacaoAlcada recuperaSolicitacao(Alcada alcada, String identificadorUnico);
  101 +
  102 + /**
  103 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  104 + *
  105 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  106 + *
  107 + * Método responsável por autorizar um pedido de alçada
  108 + *
  109 + * @author Carlos
  110 + *
  111 + * @param solicitacaoAlcada
  112 + * @return
  113 + */
  114 + public Object cancelaAprovacaoPeloIdentificador(SolicitacaoAlcada solicitacaoAlcada);
  115 +
  116 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/impl/CentroResultadoDelegacaoServiceImpl.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/impl/CentroResultadoDelegacaoServiceImpl.java
... ... @@ -0,0 +1,217 @@
  1 +package br.com.centralit.api.service.impl;
  2 +
  3 +import java.util.ArrayList;
  4 +import java.util.List;
  5 +
  6 +import org.springframework.beans.factory.annotation.Autowired;
  7 +import org.springframework.beans.factory.annotation.Qualifier;
  8 +import org.springframework.stereotype.Service;
  9 +import org.springframework.validation.Validator;
  10 +
  11 +import br.com.centralit.api.dao.CentroResultadoDelegacaoDao;
  12 +import br.com.centralit.api.model.Alcada;
  13 +import br.com.centralit.api.model.CentroResultadoDelegacao;
  14 +import br.com.centralit.api.model.CentroResultadoDelegacaoRequisicao;
  15 +import br.com.centralit.api.model.Colaborador;
  16 +import br.com.centralit.api.service.CentroResultadoDelegacaoService;
  17 +import br.com.centralit.api.service.CentroResultadoResponsavelAlcadaService;
  18 +import br.com.centralit.api.service.ColaboradorService;
  19 +import br.com.centralit.framework.esi.enumerated.VariableTypeEnum;
  20 +import br.com.centralit.framework.esi.environment.EnvironmentVariable;
  21 +import br.com.centralit.framework.exception.BusinessException;
  22 +import br.com.centralit.framework.exception.CodigoErro;
  23 +import br.com.centralit.framework.model.Usuario;
  24 +import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
  25 +import br.com.centralit.framework.util.UtilColecao;
  26 +import br.com.centralit.framework.util.UtilDate;
  27 +import br.com.centralit.framework.util.UtilObjeto;
  28 +import br.com.centralit.framework.util.UtilString;
  29 +
  30 +/**
  31 + * <p>
  32 + * <img src="http://centralit.com.br/images/logo_central.png">
  33 + * </p>
  34 + *
  35 + * <p>
  36 + * <b>Company: </b> Central IT - Governança Corporativa -
  37 + * </p>
  38 + *
  39 + * <p>
  40 + * <b>Title: </b>
  41 + * </p>
  42 + *
  43 + * <p>
  44 + * <b>Description: </b>
  45 + * </p>
  46 + *
  47 + * <p>
  48 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  49 + * </p>
  50 + *
  51 + * <p>
  52 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  53 + * </p>
  54 + *
  55 + * @since 30/06/2015 - 14:10:09
  56 + *
  57 + * @version 1.0.0
  58 + *
  59 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  60 + *
  61 + */
  62 +@Service("centroResultadoDelegacaoService")
  63 +public class CentroResultadoDelegacaoServiceImpl extends GenericServiceImpl<CentroResultadoDelegacao, Long> implements CentroResultadoDelegacaoService {
  64 +
  65 + /** Atributo centroResultadoResponsavelAlcadaService. */
  66 + @Autowired
  67 + private CentroResultadoResponsavelAlcadaService centroResultadoResponsavelAlcadaService;
  68 +
  69 + @Autowired
  70 + private ColaboradorService colaboradorService;
  71 +
  72 + private CentroResultadoDelegacaoDao centroResultadoDelegacaoDao;
  73 +
  74 + private void disparaFluxoDelegacao(CentroResultadoDelegacao centroResultadoDelegacao) {
  75 +
  76 + Alcada alcada = centroResultadoDelegacao.getCentroResultadoResponsavelAlcada().getAlcada();
  77 + if (!UtilString.isNullOrEmpty(alcada.getFluxoDelegacao())) {
  78 + Usuario usuario = centroResultadoDelegacao.getCentroResultadoResponsavelAlcada().getCentroResultadoResponsavel().getResponsavel().getPessoa().getUsuario();
  79 + if (!UtilObjeto.isReferencia(usuario)) {
  80 + throw new BusinessException("MSG.USUARIO_NAO_ASSOCIADO_RESPONSAVEL", CodigoErro.REGRA_NEGOCIO.getValue());
  81 + }
  82 + String responsavel = usuario.getUsername();
  83 +
  84 + Colaborador colaborador = colaboradorService.getReference(centroResultadoDelegacao.getDelegado().getId());
  85 + usuario = colaborador.getPessoa().getUsuario();
  86 + if (!UtilObjeto.isReferencia(usuario)) {
  87 + throw new BusinessException("MSG.USUARIO_NAO_ASSOCIADO_DELEGACAO", CodigoErro.REGRA_NEGOCIO.getValue());
  88 + }
  89 + String delegado = usuario.getUsername();
  90 +
  91 + String abrangencia = centroResultadoDelegacao.getDominioTipoAbrangenciaDelegacao().getNome();
  92 +
  93 + List<EnvironmentVariable> variaveis = new ArrayList<EnvironmentVariable>();
  94 + variaveis.add(new EnvironmentVariable("alcada", VariableTypeEnum.TEXT, alcada.getIdentificador(), false));
  95 + variaveis.add(new EnvironmentVariable("responsavel", VariableTypeEnum.TEXT, responsavel, false));
  96 + variaveis.add(new EnvironmentVariable("delegado", VariableTypeEnum.TEXT, delegado, false));
  97 + variaveis.add(new EnvironmentVariable("abrangencia", VariableTypeEnum.TEXT, abrangencia, false));
  98 + variaveis.add(new EnvironmentVariable("requisicoes", VariableTypeEnum.JAVAOBJECT, centroResultadoDelegacao.getRequisicoesStr(), false));
  99 +
  100 + this.startProcess(alcada.getFluxoDelegacao(), variaveis);
  101 + }
  102 + }
  103 +
  104 + @Autowired
  105 + public CentroResultadoDelegacaoServiceImpl( CentroResultadoDelegacaoDao centroResultadoDelegacaoDao, @Qualifier("centroResultadoDelegacaoValidator") Validator validator ) {
  106 +
  107 + this.dao = centroResultadoDelegacaoDao;
  108 + this.centroResultadoDelegacaoDao = centroResultadoDelegacaoDao;
  109 + this.validator = validator;
  110 + }
  111 +
  112 + @Override
  113 + public CentroResultadoDelegacao save(CentroResultadoDelegacao centroResultadoDelegacao) {
  114 +
  115 + // VALIDA CAMPO OBRIGATÓRIO DA ENTIDADE
  116 + if (UtilObjeto.isReferencia(this.validator)) {
  117 + this.validarEntidade(centroResultadoDelegacao, this.validator);
  118 + }
  119 +
  120 + this.existeDelegacaoParaDelegadoNaAlcadaENoPeriodoSeleciona(centroResultadoDelegacao);
  121 +
  122 + montaCentroResultadoDelegacao(centroResultadoDelegacao);
  123 +
  124 + // SALVA A TRANSFERÊNCIA
  125 + CentroResultadoDelegacao entitySaved = (CentroResultadoDelegacao) this.centroResultadoDelegacaoDao.save(centroResultadoDelegacao);
  126 +
  127 + this.disparaFluxoDelegacao(entitySaved);
  128 +
  129 + return entitySaved;
  130 + }
  131 +
  132 + @Override
  133 + public CentroResultadoDelegacao merge(CentroResultadoDelegacao entity) {
  134 +
  135 + return super.merge(entity);
  136 + }
  137 +
  138 + @Override
  139 + public List<CentroResultadoDelegacao> saveList(List<CentroResultadoDelegacao> centroResultadoDelegacaoList) {
  140 +
  141 + if (!UtilColecao.isVazio(centroResultadoDelegacaoList)) {
  142 + for (CentroResultadoDelegacao centroResultadoDelegacao : centroResultadoDelegacaoList) {
  143 +
  144 + this.save(centroResultadoDelegacao);
  145 +
  146 + }
  147 +
  148 + return super.saveList(centroResultadoDelegacaoList);
  149 + }
  150 +
  151 + return new ArrayList<CentroResultadoDelegacao>();
  152 + }
  153 +
  154 + private void existeDelegacaoParaDelegadoNaAlcadaENoPeriodoSeleciona(CentroResultadoDelegacao centroResultadoDelegacao) {
  155 +
  156 + if (this.centroResultadoDelegacaoDao.existeDelegacaoParaDelegadoNaAlcadaENoPeriodoSeleciona(centroResultadoDelegacao)) {
  157 + throw new BusinessException("MSG.EXISTE_DELEGACAO_RESPONSAVEL_ALCADA_SELECIONADA", CodigoErro.REGRA_NEGOCIO.getValue());
  158 + }
  159 + }
  160 +
  161 + private void montaCentroResultadoDelegacao(CentroResultadoDelegacao centroResultadoDelegacao) {
  162 +
  163 + // MONTA OS DADOS DO OBJETO CENTRORESULTADODELEGACAO
  164 + centroResultadoDelegacao.setCentroResultadoResponsavelAlcada(this.centroResultadoResponsavelAlcadaService.find(centroResultadoDelegacao.getCentroResultadoResponsavelAlcada().getId()));
  165 +
  166 + this.resolveReferenciaCentroResultadoDelegacaoInCentroResultadoDelegacaoRequisicoes(centroResultadoDelegacao);
  167 + }
  168 +
  169 + /**
  170 + * <p>
  171 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  172 + * </p>
  173 + *
  174 + * <p>
  175 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  176 + * </p>
  177 + *
  178 + * Método responsável por
  179 + *
  180 + * @author renato.jesus
  181 + *
  182 + * @param centroResultadoDelegacao
  183 + */
  184 + private void resolveReferenciaCentroResultadoDelegacaoInCentroResultadoDelegacaoRequisicoes(CentroResultadoDelegacao centroResultadoDelegacao) {
  185 +
  186 + if (!UtilColecao.isVazio(centroResultadoDelegacao.getRequisicoes())) {
  187 + for (CentroResultadoDelegacaoRequisicao centroResultadoDelegacaoRequisicao : centroResultadoDelegacao.getRequisicoes()) {
  188 + centroResultadoDelegacaoRequisicao.setCentroResultadoDelegacao(centroResultadoDelegacao);
  189 + }
  190 + }
  191 + }
  192 +
  193 + @Override
  194 + public List<CentroResultadoDelegacao> buscaHistoricoDelegacoes(Long idCentroResultado) {
  195 +
  196 + return centroResultadoDelegacaoDao.buscaHistoricoDelegacoes(idCentroResultado);
  197 + }
  198 +
  199 + @Override
  200 + public List<CentroResultadoDelegacao> buscaHistoricoDelegacoesUsuario(Long idUsuario) {
  201 +
  202 + return centroResultadoDelegacaoDao.buscaHistoricoDelegacoesUsuario(idUsuario);
  203 + }
  204 +
  205 + @Override
  206 + public CentroResultadoDelegacao revogar(Long idCentroResultadoDelegacao) {
  207 +
  208 + CentroResultadoDelegacao centroResultadoDelegacao = this.find(idCentroResultadoDelegacao);
  209 + centroResultadoDelegacao.setRevogada(true);
  210 + centroResultadoDelegacao.setResponsavelRevogacao(this.getUsuario());
  211 + centroResultadoDelegacao.setDataRevogacao(UtilDate.getDataAtualCalendar());
  212 +
  213 + CentroResultadoDelegacao entityUpdated = merge(centroResultadoDelegacao);
  214 + return entityUpdated;
  215 + }
  216 +
  217 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/impl/InicializarAlcadaServiceImpl.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/impl/InicializarAlcadaServiceImpl.java
... ... @@ -0,0 +1,252 @@
  1 +package br.com.centralit.api.service.impl;
  2 +
  3 +import java.io.IOException;
  4 +import java.sql.Connection;
  5 +import java.sql.SQLException;
  6 +import java.sql.Statement;
  7 +import java.util.List;
  8 +
  9 +import javax.sql.DataSource;
  10 +
  11 +import net.sf.jasperreports.engine.JRException;
  12 +
  13 +import org.apache.log4j.Logger;
  14 +import org.springframework.beans.factory.annotation.Autowired;
  15 +import org.springframework.stereotype.Service;
  16 +
  17 +import br.com.centralit.api.service.DefaultFileService;
  18 +import br.com.centralit.api.service.DominioService;
  19 +import br.com.centralit.api.service.MenuService;
  20 +import br.com.centralit.api.service.ModuloService;
  21 +import br.com.centralit.api.service.PaginaService;
  22 +import br.com.centralit.framework.model.Menu;
  23 +import br.com.centralit.framework.model.MenuFile;
  24 +import br.com.centralit.framework.model.Pagina;
  25 +import br.com.centralit.framework.model.UtilStartup;
  26 +
  27 +@SuppressWarnings("unused")
  28 +@Service("inicializarAlcadaService")
  29 +public class InicializarAlcadaServiceImpl extends UtilStartup {
  30 +
  31 + @Autowired
  32 + private ModuloService moduloService;
  33 +
  34 + @Autowired
  35 + private DataSource citDataSource;
  36 +
  37 + /** Atributo menuService. */
  38 + @Autowired
  39 + private MenuService menuService;
  40 +
  41 + /** Atributo dominioService. */
  42 + @Autowired
  43 + private DominioService dominioService;
  44 +
  45 + /** Atributo paginaService. */
  46 + @Autowired
  47 + private PaginaService paginaService;
  48 +
  49 + /** Atributo defaultFileService. */
  50 + @Autowired
  51 + private DefaultFileService defaultFileService;
  52 +
  53 + /** Atributo menuModuloAlcada. */
  54 + private Menu menuModuloAlcada;
  55 +
  56 + static final Logger LOG = Logger.getLogger(InicializarAlcadaServiceImpl.class);
  57 +
  58 + public void gerarCarga() {
  59 + criarPaginasMenus();
  60 + }
  61 +
  62 + /**
  63 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  64 + *
  65 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  66 + *
  67 + * Método responsável por criar paginas e menus do modulo
  68 + *
  69 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  70 + *
  71 + */
  72 + private void criarPaginasMenus() {
  73 +
  74 + dominioJS = this.dominioService.findByChaveAndNome(TIPO_FILE, TIPO_FILE_JS);
  75 + moduloSelecionado = this.moduloService.getModuloPorBaseUrl(BASE_URL_ALCADA, null);
  76 +
  77 + // Menu pai Alçadas
  78 + this.menuModuloAlcada = new Menu("Alçadas", null, null, null, 6, COR_ALCADA, CSS_MENU_ALCADA, OPACIDADE_MENU_ALCADA, CLASSE_ALCADA, ICONE_MENU_ALCADA, moduloSelecionado);
  79 + this.menuModuloAlcada = this.menuService.mergeIfNotExist(this.menuModuloAlcada);
  80 +
  81 + // Submenu Cadastros
  82 + Menu menuCadastros = new Menu("Cadastros", null, menuModuloAlcada, 0, 1, null, null, null, null, moduloSelecionado);
  83 + menuCadastros = this.menuService.mergeIfNotExist(menuCadastros);
  84 +
  85 + Pagina pgAlcada = new Pagina("Alçada", "/cit-alcada-web/html/alcada/alcada.html");
  86 + pgAlcada = this.paginaService.saveIfNotExist(pgAlcada);
  87 + Menu menuAlcada = new Menu("Alçada", pgAlcada, menuCadastros, null, 2, null, null, null, null, moduloSelecionado);
  88 + menuAlcada.setIncludes(this.gerarArquivosMenu(menuAlcada, CIT_ALCADA_WEB_ANGULAR_CUSTOM, "Alcada", true, true, true));
  89 + this.menuService.mergeIfNotExist(menuAlcada);
  90 + // Menu Alçada
  91 + Pagina pgCentroResultado = new Pagina("Centro de resultado", "/cit-alcada-web/html/centroResultado/centroResultado.html");
  92 + pgCentroResultado = this.paginaService.saveIfNotExist(pgCentroResultado);
  93 + Menu menuCentroResultado = new Menu("Centro de resultado", pgCentroResultado, menuCadastros, null, 3, null, null, null, null, moduloSelecionado);
  94 + List<MenuFile> filesMenuFileCentroResultado = this.gerarArquivosMenu(menuCentroResultado, CIT_ALCADA_WEB_ANGULAR_CUSTOM, "CentroResultado", true, true, true);
  95 + filesMenuFileCentroResultado.addAll(this.gerarArquivosMenu(menuCentroResultado, CIT_ALCADA_WEB_ANGULAR_CUSTOM, "CentroResultadoAlcadaResponsavel", true, true, true));
  96 + filesMenuFileCentroResultado.add(new MenuFile(CIT_ALCADA_WEB_ANGULAR_CUSTOM + "repository/CentroResultadoResponsavelRepository.js", this.dominioJS, menuCentroResultado));
  97 + filesMenuFileCentroResultado.add(new MenuFile(CIT_ALCADA_WEB_ANGULAR_CUSTOM + "repository/CentroResultadoResponsavelRepository.min.js", this.dominioJS, menuCentroResultado));
  98 + menuCentroResultado.setIncludes(filesMenuFileCentroResultado);
  99 + this.menuService.mergeIfNotExist(menuCentroResultado);
  100 + // Menu Alçada
  101 + Pagina pgLimiteAprovacao = new Pagina("Limite de aprovação", "/cit-alcada-web/html/limiteAprovacao/limiteAprovacao.html");
  102 + pgLimiteAprovacao = this.paginaService.saveIfNotExist(pgLimiteAprovacao);
  103 + Menu menuLimiteAprovacao = new Menu("Limite de aprovação", pgLimiteAprovacao, menuCadastros, null, 4, null, null, null, null, moduloSelecionado);
  104 + menuLimiteAprovacao.setIncludes(this.gerarArquivosMenu(menuLimiteAprovacao, CIT_ALCADA_WEB_ANGULAR_CUSTOM, "LimiteAprovacao", true, true, true));
  105 + this.menuService.mergeIfNotExist(menuLimiteAprovacao);
  106 +
  107 + // Submenu Delegação
  108 + Menu menuDelegacao = new Menu("Delegação", null, menuModuloAlcada, 0, 2, null, null, null, null, moduloSelecionado);
  109 + menuDelegacao = this.menuService.mergeIfNotExist(menuDelegacao);
  110 + // Menu Delegação de alçada
  111 + Pagina pgCentroResultadoDelegacao = new Pagina("Delegação por Centro de Resultado", "/cit-alcada-web/html/centroResultadoDelegacao/centroResultadoDelegacao.html");
  112 + pgCentroResultadoDelegacao = this.paginaService.saveIfNotExist(pgCentroResultadoDelegacao);
  113 + Menu menuCentroResultadoDelegacao = new Menu("Delegação por Centro de Resultado", pgCentroResultadoDelegacao, menuDelegacao, null, 1, null, null, null, null, moduloSelecionado);
  114 + List<MenuFile> filesMenuFileCentroResultadoDelegacao = this.gerarArquivosMenu(menuCentroResultadoDelegacao, CIT_ALCADA_WEB_ANGULAR_CUSTOM, "CentroResultadoDelegacao", true, false, true);
  115 + filesMenuFileCentroResultadoDelegacao.add(new MenuFile(CIT_ALCADA_WEB_ANGULAR_CUSTOM + "repository/CentroResultadoResponsavelAlcadaRepository.js", this.dominioJS, menuCentroResultadoDelegacao));
  116 + filesMenuFileCentroResultadoDelegacao.add(new MenuFile(CIT_ALCADA_WEB_ANGULAR_CUSTOM + "repository/CentroResultadoResponsavelAlcadaRepository.min.js", this.dominioJS, menuCentroResultadoDelegacao));
  117 + filesMenuFileCentroResultadoDelegacao.add(new MenuFile(CIT_ALCADA_WEB_ANGULAR_CUSTOM + "repository/SolicitacaoAlcadaRepository.js", this.dominioJS, menuCentroResultadoDelegacao));
  118 + filesMenuFileCentroResultadoDelegacao.add(new MenuFile(CIT_ALCADA_WEB_ANGULAR_CUSTOM + "repository/SolicitacaoAlcadaRepository.min.js", this.dominioJS, menuCentroResultadoDelegacao));
  119 + menuCentroResultadoDelegacao.setIncludes(filesMenuFileCentroResultadoDelegacao);
  120 + this.menuService.mergeIfNotExist(menuCentroResultadoDelegacao);
  121 +
  122 + // Menu Delegação de alçada pelo Responsável
  123 + Pagina pgCentroResultadoDelegacaoResponsavel = new Pagina("Delegação pelo Responsável", "/cit-alcada-web/html/centroResultadoDelegacaoResponsavel/centroResultadoDelegacaoResponsavel.html");
  124 + pgCentroResultadoDelegacaoResponsavel = this.paginaService.saveIfNotExist(pgCentroResultadoDelegacaoResponsavel);
  125 + Menu menuCentroResultadoDelegacaoResponsavel = new Menu("Delegação pelo Responsável", pgCentroResultadoDelegacaoResponsavel, menuDelegacao, null, 2, null, null, null, null, moduloSelecionado);
  126 + List<MenuFile> filesMenuFileCentroResultadoDelegacaoResponsavel = this.gerarArquivosMenu(menuCentroResultadoDelegacaoResponsavel, CIT_ALCADA_WEB_ANGULAR_CUSTOM, "CentroResultadoDelegacaoResponsavel", true, false, false);
  127 + menuCentroResultadoDelegacaoResponsavel.setIncludes(filesMenuFileCentroResultadoDelegacaoResponsavel);
  128 + this.menuService.mergeIfNotExist(menuCentroResultadoDelegacaoResponsavel);
  129 +
  130 + // Submenu Substituicao
  131 + Menu menuSubstituicao = new Menu("Substituição", null, menuModuloAlcada, 0, 3, null, null, null, null, moduloSelecionado);
  132 + menuSubstituicao = this.menuService.mergeIfNotExist(menuSubstituicao);
  133 +
  134 + // Menu Substituição
  135 + Pagina pgCentroResultadoSubstituicao = new Pagina("Substituição de Responsável", "/cit-alcada-web/html/centroResultadoSubstituicao/centroResultadoSubstituicao.html");
  136 + pgCentroResultadoSubstituicao = this.paginaService.saveIfNotExist(pgCentroResultadoSubstituicao);
  137 + Menu menuCentroResultadoSubstituicao = new Menu("Substituição de Responsável", pgCentroResultadoSubstituicao, menuSubstituicao, null, 3, null, null, null, null, moduloSelecionado);
  138 + List<MenuFile> filesMenuFileCentroResultadoSubstituicao = this.gerarArquivosMenu(menuCentroResultadoSubstituicao, CIT_ALCADA_WEB_ANGULAR_CUSTOM, "CentroResultadoSubstituicao", true, false, true);
  139 + menuCentroResultadoSubstituicao.setIncludes(filesMenuFileCentroResultadoSubstituicao);
  140 + this.menuService.mergeIfNotExist(menuCentroResultadoSubstituicao);
  141 + Logger.getLogger(InicializarAlcadaServiceImpl.class).info("Menu executado - InicializarAlcadaServiceImpl!");
  142 + }
  143 +
  144 + /**
  145 + * Método responsável por criar a view
  146 + *
  147 + * @author t.lucaseugenio
  148 + *
  149 + * @throws SQLException
  150 + * @throws JRException
  151 + * @throws IOException
  152 + */
  153 + private void criarView() {
  154 +
  155 + Connection conn = null;
  156 + Statement stmt = null;
  157 +
  158 + try {
  159 +
  160 + conn = getConnection();
  161 + if(conn != null){
  162 + stmt = conn.createStatement();
  163 +
  164 + StringBuilder sql = new StringBuilder();
  165 +
  166 + sql.append("CREATE VIEW vw_centroresultadoresponsavel");
  167 + sql.append("SELECT Alcada.identificador as alcada, cast(replace(CentroResultado.codigo,'.','') as integer) as centro_resultado, seguranca_usuario.username as usuario, CentroResultadoResponsavel.dataInativo as data_inativo, ");
  168 + sql.append(" NivelAutoridade.nome as nivel_autoridade ");
  169 + sql.append("FROM CentroResultadoResponsavel INNER JOIN ");
  170 + sql.append(" CentroResultado ON CentroResultado.id = CentroResultadoResponsavel.centroResultado_id INNER JOIN ");
  171 + sql.append(" CentroResultadoResponsavelAlcada ON ");
  172 + sql.append(" CentroResultadoResponsavelAlcada.centroResultadoResponsavel_id = CentroResultadoResponsavel.id INNER JOIN ");
  173 + sql.append(" Alcada ON Alcada.id = CentroResultadoResponsavelAlcada.alcada_id INNER JOIN ");
  174 + sql.append(" Parceiro ON Parceiro.id = CentroResultadoResponsavel.responsavel_id INNER JOIN ");
  175 + sql.append(" Pessoa ON Pessoa.id = Parceiro.pessoa_id INNER JOIN ");
  176 + sql.append(" seguranca_usuario ON seguranca_usuario.id = Pessoa.usuario_id INNER JOIN ");
  177 + sql.append(" AlcadaNivelAutoridade ON AlcadaNivelAutoridade.alcada_id = Alcada.id INNER JOIN ");
  178 + sql.append(" NivelAutoridade ON NivelAutoridade.id = AlcadaNivelAutoridade.nivelAutoridade_id ");
  179 + sql.append("where NivelAutoridade.hierarquia = ");
  180 + sql.append("(select min(t1.hierarquia) ");
  181 + sql.append("from NivelAutoridade t1 ");
  182 + sql.append("inner join AlcadaNivelAutoridade t2 on t2.nivelautoridade_id = t1.id ");
  183 + sql.append("and t2.alcada_id = Alcada.id ");
  184 + sql.append("inner join NivelAutoridadeGrupo t3 ON t3.nivelAutoridade_id = t1.id ");
  185 + sql.append("INNER JOIN GrupoUsuario t4 ON t4.usuario_id = seguranca_usuario.id AND t4.grupo_id = t3.grupo_id) ");
  186 + sql.append("union all ");
  187 + sql.append("SELECT Alcada.identificador as alcada, cast(replace(CentroResultado.codigo,'.','') as integer) as centro_resultado, seguranca_usuario.username as usuario, CentroResultadoResponsavel.dataInativo as data_inativo, ");
  188 + sql.append(" NivelAutoridade.nome as nivel_autoridade ");
  189 + sql.append("FROM centroresultadodelegacao inner join ");
  190 + sql.append("CentroResultadoResponsavelAlcada on centroresultadodelegacao.centroResultadoResponsavelAlcada_id ");
  191 + sql.append("= CentroResultadoResponsavelAlcada.id ");
  192 + sql.append("INNER JOIN CentroResultadoResponsavel on CentroResultadoResponsavel.id = CentroResultadoResponsavelAlcada.centroresultadoresponsavel_id inner join CentroResultado ON CentroResultado.id = CentroResultadoResponsavel.centroResultado_id INNER JOIN ");
  193 + sql.append(" Alcada ON Alcada.id = CentroResultadoResponsavelAlcada.alcada_id INNER JOIN ");
  194 + sql.append(" Parceiro ON Parceiro.id = centroresultadodelegacao.delegado_id INNER JOIN ");
  195 + sql.append(" Pessoa ON Pessoa.id = Parceiro.pessoa_id INNER JOIN ");
  196 + sql.append(" seguranca_usuario ON seguranca_usuario.id = Pessoa.usuario_id INNER JOIN ");
  197 + sql.append(" AlcadaNivelAutoridade ON AlcadaNivelAutoridade.alcada_id = Alcada.id INNER JOIN ");
  198 + sql.append(" NivelAutoridade ON NivelAutoridade.id = AlcadaNivelAutoridade.nivelAutoridade_id ");
  199 + sql.append("inner join Parceiro parc ON parc.id = centroresultadoresponsavel.responsavel_id INNER JOIN ");
  200 + sql.append(" Pessoa pes ON pes.id = parc.pessoa_id ");
  201 + sql.append("where NivelAutoridade.hierarquia = ");
  202 + sql.append("(select min(t1.hierarquia) ");
  203 + sql.append("from NivelAutoridade t1 ");
  204 + sql.append("inner join AlcadaNivelAutoridade t2 on t2.nivelautoridade_id = t1.id ");
  205 + sql.append("and t2.alcada_id = Alcada.id ");
  206 + sql.append("inner join NivelAutoridadeGrupo t3 ON t3.nivelAutoridade_id = t1.id ");
  207 + sql.append("INNER JOIN GrupoUsuario t4 ON t4.usuario_id = pes.usuario_id AND t4.grupo_id = t3.grupo_id) ");
  208 +
  209 + stmt.executeUpdate(sql.toString());
  210 + }
  211 + } catch (Exception e) {
  212 + throw new RuntimeException(e);
  213 + } finally {
  214 + closeResources(conn, stmt);
  215 +
  216 + }
  217 + }
  218 + /**
  219 + * Retorna uma conex&atilde;o
  220 + *
  221 + * */
  222 + private Connection getConnection(){
  223 + Connection conn = null;
  224 + try {
  225 + if(citDataSource != null)
  226 + return citDataSource.getConnection();
  227 + else
  228 + return null;
  229 + } catch (SQLException sqle) {
  230 + LOG.error("N\u00e3o foi poss\u00edvel obter conex\u00e3o com o dataSource do m\u00f3dulo. Veja a exceção para identificar as causas: " + sqle.getCause());
  231 + }
  232 + return conn;
  233 + }
  234 +
  235 + /**
  236 + * Encerra os recursos usados
  237 + *
  238 + * */
  239 + protected void closeResources(Connection conn, Statement stmt) {
  240 + try {
  241 + if (conn != null){
  242 + conn.close();
  243 + }
  244 + if(stmt != null){
  245 + stmt.close();
  246 + }
  247 + } catch (SQLException sqle) {
  248 + LOG.error("Não consegui encerrar os recursos de conexão ao banco de dados. Veja a exceção para identificar as causas. " + sqle.getCause());
  249 + }
  250 + }
  251 +
  252 +}
0 253 \ No newline at end of file
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/impl/LimiteAprovacaoAlcadaServiceImpl.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/impl/LimiteAprovacaoAlcadaServiceImpl.java
... ... @@ -0,0 +1,90 @@
  1 +package br.com.centralit.api.service.impl;
  2 +
  3 +import java.util.List;
  4 +
  5 +import org.springframework.beans.factory.annotation.Autowired;
  6 +import org.springframework.beans.factory.annotation.Qualifier;
  7 +import org.springframework.stereotype.Service;
  8 +import org.springframework.validation.Validator;
  9 +
  10 +import br.com.centralit.api.dao.LimiteAprovacaoAlcadaDao;
  11 +import br.com.centralit.api.model.Alcada;
  12 +import br.com.centralit.api.model.LimiteAprovacao;
  13 +import br.com.centralit.api.model.LimiteAprovacaoAlcada;
  14 +import br.com.centralit.api.service.AlcadaService;
  15 +import br.com.centralit.api.service.LimiteAprovacaoAlcadaService;
  16 +import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
  17 +
  18 +/**
  19 + * <p>
  20 + * <img src="http://centralit.com.br/images/logo_central.png">
  21 + * </p>
  22 + *
  23 + * <p>
  24 + * <b>Company: </b> Central IT - Governança Corporativa -
  25 + * </p>
  26 + *
  27 + * <p>
  28 + * <b>Title: </b>
  29 + * </p>
  30 + *
  31 + * <p>
  32 + * <b>Description: </b>
  33 + * </p>
  34 + *
  35 + * <p>
  36 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  37 + * </p>
  38 + *
  39 + * <p>
  40 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  41 + * </p>
  42 + *
  43 + * @since 23/06/2015 - 15:13:44
  44 + *
  45 + * @version 1.0.0
  46 + *
  47 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  48 + *
  49 + */
  50 +@Service("limiteAprovacaoAlcadaService")
  51 +public class LimiteAprovacaoAlcadaServiceImpl extends GenericServiceImpl<LimiteAprovacaoAlcada, Long> implements LimiteAprovacaoAlcadaService {
  52 +
  53 + /** Atributo alcadaNivelAutoridadeService. */
  54 + @Autowired
  55 + private AlcadaService alcadaService;
  56 +
  57 + private LimiteAprovacaoAlcadaDao limiteAprovacaoAlcadaDao;
  58 +
  59 + @Autowired
  60 + public LimiteAprovacaoAlcadaServiceImpl( LimiteAprovacaoAlcadaDao limiteAprovacaoAlcadaDao, @Qualifier("limiteAprovacaoAlcadaValidator") Validator validator ) {
  61 +
  62 + this.dao = limiteAprovacaoAlcadaDao;
  63 + this.limiteAprovacaoAlcadaDao = limiteAprovacaoAlcadaDao;
  64 + this.validator = validator;
  65 + }
  66 +
  67 + /**
  68 + * {@inheritDoc}
  69 + */
  70 + @Override
  71 + public List<LimiteAprovacaoAlcada> findByAlcada(Alcada alcada) {
  72 +
  73 + return this.limiteAprovacaoAlcadaDao.findByAlcada(alcada);
  74 + }
  75 +
  76 + /**
  77 + *
  78 + */
  79 + @Override
  80 + public void montarLimiteAprovacaoAlcada(LimiteAprovacao limiteAprovacao) {
  81 +
  82 + // PERCORRE A LISTA DE LIMITEAPROVACAOALCADA
  83 + for (LimiteAprovacaoAlcada limiteAprovacaoAlcada : limiteAprovacao.getAlcadas()) {
  84 + // CARREGA O OBJETO LIMITEAPROVACAOALCADA
  85 + limiteAprovacaoAlcada.setAlcada(this.alcadaService.getReference(limiteAprovacaoAlcada.getAlcada().getId()));
  86 + limiteAprovacaoAlcada.setLimiteAprovacao(limiteAprovacao);
  87 + }
  88 + }
  89 +
  90 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/impl/LimiteAprovacaoNivelAutoridadeServiceImpl.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/impl/LimiteAprovacaoNivelAutoridadeServiceImpl.java
... ... @@ -0,0 +1,62 @@
  1 +package br.com.centralit.api.service.impl;
  2 +
  3 +import org.springframework.beans.factory.annotation.Autowired;
  4 +import org.springframework.beans.factory.annotation.Qualifier;
  5 +import org.springframework.stereotype.Service;
  6 +import org.springframework.validation.Validator;
  7 +
  8 +import br.com.centralit.api.dao.LimiteAprovacaoNivelAutoridadeDao;
  9 +import br.com.centralit.api.model.LimiteAprovacao;
  10 +import br.com.centralit.api.model.LimiteAprovacaoNivelAutoridade;
  11 +import br.com.centralit.api.service.LimiteAprovacaoNivelAutoridadeService;
  12 +import br.com.centralit.api.service.NivelAutoridadeService;
  13 +import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
  14 +
  15 +/**
  16 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  17 + *
  18 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  19 + *
  20 + * <p><b>Title: </b></p>
  21 + *
  22 + * <p><b>Description: </b></p>
  23 + *
  24 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  25 + *
  26 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  27 + *
  28 + * @since 23/06/2015 - 15:17:38
  29 + *
  30 + * @version 1.0.0
  31 + *
  32 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  33 + *
  34 + */
  35 +@Service("limiteAprovacaoNivelAutoridadeService")
  36 +public class LimiteAprovacaoNivelAutoridadeServiceImpl extends GenericServiceImpl<LimiteAprovacaoNivelAutoridade, Long> implements LimiteAprovacaoNivelAutoridadeService {
  37 +
  38 + /** Atributo alcadaNivelAutoridadeService. */
  39 + @Autowired
  40 + private NivelAutoridadeService nivelAutoridadeService;
  41 +
  42 + @Autowired
  43 + public LimiteAprovacaoNivelAutoridadeServiceImpl(LimiteAprovacaoNivelAutoridadeDao limiteAprovacaoNivelAutoridadeDao, @Qualifier("limiteAprovacaoNivelAutoridadeValidator") Validator validator) {
  44 + this.dao = limiteAprovacaoNivelAutoridadeDao;
  45 + this.validator = validator;
  46 + }
  47 +
  48 + /**
  49 + *
  50 + */
  51 + @Override
  52 + public void montarLimiteAprovacaoNivelAutoridade(LimiteAprovacao limiteAprovacao) {
  53 +
  54 + // TODO Auto-generated method stub
  55 + for(LimiteAprovacaoNivelAutoridade limiteAprovacaoNivelAutoridade : limiteAprovacao.getNiveisAutoridades()) {
  56 + // CARREGA O OBJETO LIMITEAPROVACAONIVELAUTORIDADE
  57 + limiteAprovacaoNivelAutoridade.setNivelAutoridade(this.nivelAutoridadeService.getReference(limiteAprovacaoNivelAutoridade.getNivelAutoridade().getId()));
  58 + limiteAprovacaoNivelAutoridade.setLimiteAprovacao(limiteAprovacao);
  59 + }
  60 + }
  61 +
  62 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/impl/LimiteAprovacaoServiceImpl.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/impl/LimiteAprovacaoServiceImpl.java
... ... @@ -0,0 +1,107 @@
  1 +package br.com.centralit.api.service.impl;
  2 +
  3 +import org.springframework.beans.factory.annotation.Autowired;
  4 +import org.springframework.beans.factory.annotation.Qualifier;
  5 +import org.springframework.stereotype.Service;
  6 +import org.springframework.validation.Validator;
  7 +
  8 +import br.com.centralit.api.dao.LimiteAprovacaoDao;
  9 +import br.com.centralit.api.model.LimiteAprovacao;
  10 +import br.com.centralit.api.service.LimiteAprovacaoAlcadaService;
  11 +import br.com.centralit.api.service.LimiteAprovacaoNivelAutoridadeService;
  12 +import br.com.centralit.api.service.LimiteAprovacaoService;
  13 +import br.com.centralit.api.service.LimiteAprovacaoValorService;
  14 +import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
  15 +import br.com.centralit.framework.util.UtilObjeto;
  16 +
  17 +/**
  18 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  19 + *
  20 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  21 + *
  22 + * <p><b>Title: </b></p>
  23 + *
  24 + * <p><b>Description: </b></p>
  25 + *
  26 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  27 + *
  28 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  29 + *
  30 + * @since 18/06/2015 - 16:57:34
  31 + *
  32 + * @version 1.0.0
  33 + *
  34 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  35 + *
  36 + */
  37 +@Service("limiteAprovacaoService")
  38 +public class LimiteAprovacaoServiceImpl extends GenericServiceImpl<LimiteAprovacao, Long> implements LimiteAprovacaoService {
  39 +
  40 + /** Atributo alcadaNivelAutoridadeService. */
  41 + @Autowired
  42 + private LimiteAprovacaoNivelAutoridadeService limiteAprovacaoNivelAutoridadeService;
  43 +
  44 + /** Atributo alcadaNivelAutoridadeService. */
  45 + @Autowired
  46 + private LimiteAprovacaoAlcadaService limiteAprovacaoAlcadaService;
  47 +
  48 + /** Atributo alcadaNivelAutoridadeService. */
  49 + @Autowired
  50 + private LimiteAprovacaoValorService limiteAprovacaoValorService;
  51 +
  52 + private LimiteAprovacaoDao limiteAprovacaoDao;
  53 +
  54 + @Autowired
  55 + public LimiteAprovacaoServiceImpl(LimiteAprovacaoDao limiteAprovacaoDao, @Qualifier("limiteAprovacaoValidator") Validator validator) {
  56 + this.dao = limiteAprovacaoDao;
  57 + this.limiteAprovacaoDao = limiteAprovacaoDao;
  58 + this.validator = validator;
  59 + }
  60 +
  61 + public LimiteAprovacao save(LimiteAprovacao limiteAprovacao) {
  62 +
  63 + // TODO Auto-generated method stub
  64 + // VALIDA CAMPO OBRIGATÓRIO DA ENTIDADE
  65 + if (UtilObjeto.isReferencia(this.validator)) {
  66 + this.validarEntidade(limiteAprovacao, this.validator);
  67 + }
  68 +
  69 + montaLimiteAprovacao(limiteAprovacao);
  70 +
  71 + // SALVA A TRANSFERÊNCIA
  72 + LimiteAprovacao entitySaved = (LimiteAprovacao) this.limiteAprovacaoDao.save(limiteAprovacao);
  73 +
  74 + return entitySaved;
  75 + }
  76 +
  77 + /**
  78 + *
  79 + */
  80 + @Override
  81 + public LimiteAprovacao merge(LimiteAprovacao limiteAprovacao) {
  82 +
  83 + // TODO Auto-generated method stub
  84 + // VALIDA CAMPO OBRIGATÓRIO DA ENTIDADE
  85 + if (UtilObjeto.isReferencia(this.validator)) {
  86 + this.validarEntidade(limiteAprovacao, this.validator);
  87 + }
  88 +
  89 + montaLimiteAprovacao(limiteAprovacao);
  90 +
  91 + // SALVA A TRANSFERÊNCIA
  92 + LimiteAprovacao entitySaved = (LimiteAprovacao) this.limiteAprovacaoDao.merge(limiteAprovacao);
  93 +
  94 + return entitySaved;
  95 + }
  96 +
  97 + private void montaLimiteAprovacao(LimiteAprovacao limiteAprovacao){
  98 + // MONTA OS DADOS DO OBJETO LIMITEAPROVACAONIVELAUTORIDADE
  99 + this.limiteAprovacaoNivelAutoridadeService.montarLimiteAprovacaoNivelAutoridade(limiteAprovacao);
  100 +
  101 + // MONTA OS DADOS DO OBJETO LIMITEAPROVACAONIVELAUTORIDADE
  102 + this.limiteAprovacaoAlcadaService.montarLimiteAprovacaoAlcada(limiteAprovacao);
  103 +
  104 + // MONTA OS DADOS DO OBJETO LIMITEAPROVACAONIVELAUTORIDADE
  105 + this.limiteAprovacaoValorService.montarLimiteAprovacaoValor(limiteAprovacao);
  106 + }
  107 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/impl/LimiteAprovacaoValorServiceImpl.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/impl/LimiteAprovacaoValorServiceImpl.java
... ... @@ -0,0 +1,64 @@
  1 +package br.com.centralit.api.service.impl;
  2 +
  3 +import org.springframework.beans.factory.annotation.Autowired;
  4 +import org.springframework.beans.factory.annotation.Qualifier;
  5 +import org.springframework.stereotype.Service;
  6 +import org.springframework.validation.Validator;
  7 +
  8 +import br.com.centralit.api.dao.LimiteAprovacaoValorDao;
  9 +import br.com.centralit.api.model.LimiteAprovacao;
  10 +import br.com.centralit.api.model.LimiteAprovacaoValor;
  11 +import br.com.centralit.api.service.LimiteAprovacaoService;
  12 +import br.com.centralit.api.service.LimiteAprovacaoValorService;
  13 +import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
  14 +
  15 +/**
  16 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  17 + *
  18 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  19 + *
  20 + * <p><b>Title: </b></p>
  21 + *
  22 + * <p><b>Description: </b></p>
  23 + *
  24 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  25 + *
  26 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  27 + *
  28 + * @since 18/06/2015 - 16:57:02
  29 + *
  30 + * @version 1.0.0
  31 + *
  32 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  33 + *
  34 + */
  35 +@Service("limiteAprovacaoValorService")
  36 +public class LimiteAprovacaoValorServiceImpl extends GenericServiceImpl<LimiteAprovacaoValor, Long> implements LimiteAprovacaoValorService {
  37 +
  38 + /** Atributo alcadaNivelAutoridadeService. */
  39 + @Autowired
  40 + private LimiteAprovacaoService limiteAprovacaoService;
  41 +
  42 + @Autowired
  43 + public LimiteAprovacaoValorServiceImpl(LimiteAprovacaoValorDao limiteAprovacaoValorDao, @Qualifier("limiteAprovacaoValorValidator") Validator validator) {
  44 + this.dao = limiteAprovacaoValorDao;
  45 + this.validator = validator;
  46 + }
  47 +
  48 + /**
  49 + *
  50 + */
  51 + @Override
  52 + public void montarLimiteAprovacaoValor(LimiteAprovacao limiteAprovacao) {
  53 +
  54 + // TODO Auto-generated method stub
  55 + // PERCORRE A LISTA DE ALCADANIVELAUTORIDADE
  56 + if(limiteAprovacao.getLimitesAprovacoesValores() != null){
  57 + for(LimiteAprovacaoValor limiteAprovacaoValor : limiteAprovacao.getLimitesAprovacoesValores()) {
  58 + // CARREGA O OBJETO LIMITEAPROVACAOVALOR
  59 + limiteAprovacaoValor.setLimiteAprovacao(limiteAprovacao);
  60 + }
  61 + }
  62 + }
  63 +
  64 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/impl/SolicitacaoAlcadaServiceImpl.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/impl/SolicitacaoAlcadaServiceImpl.java
... ... @@ -0,0 +1,833 @@
  1 +package br.com.centralit.api.service.impl;
  2 +
  3 +import java.util.ArrayList;
  4 +import java.util.Collection;
  5 +import java.util.HashMap;
  6 +import java.util.List;
  7 +
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.stereotype.Service;
  10 +
  11 +import br.com.centralit.api.dao.SolicitacaoAlcadaDao;
  12 +import br.com.centralit.api.model.Alcada;
  13 +import br.com.centralit.api.model.AlcadaNivelAutoridade;
  14 +import br.com.centralit.api.model.CentroResultado;
  15 +import br.com.centralit.api.model.CentroResultadoDelegacao;
  16 +import br.com.centralit.api.model.CentroResultadoDelegacaoRequisicao;
  17 +import br.com.centralit.api.model.CentroResultadoResponsavel;
  18 +import br.com.centralit.api.model.CentroResultadoResponsavelAlcada;
  19 +import br.com.centralit.api.model.Colaborador;
  20 +import br.com.centralit.api.model.LimiteAprovacao;
  21 +import br.com.centralit.api.model.LimiteAprovacaoAlcada;
  22 +import br.com.centralit.api.model.LimiteAprovacaoNivelAutoridade;
  23 +import br.com.centralit.api.model.LimiteAprovacaoValor;
  24 +import br.com.centralit.api.model.NivelAutoridade;
  25 +import br.com.centralit.api.model.NivelAutoridadeGrupo;
  26 +import br.com.centralit.api.model.ResponsavelAlcada;
  27 +import br.com.centralit.api.model.SolicitacaoAlcada;
  28 +import br.com.centralit.api.model.ValorAcumulado;
  29 +import br.com.centralit.api.service.AlcadaService;
  30 +import br.com.centralit.api.service.CentroResultadoService;
  31 +import br.com.centralit.api.service.ColaboradorService;
  32 +import br.com.centralit.api.service.DominioService;
  33 +import br.com.centralit.api.service.GrupoUsuarioService;
  34 +import br.com.centralit.api.service.InternacionalizacaoService;
  35 +import br.com.centralit.api.service.LimiteAprovacaoAlcadaService;
  36 +import br.com.centralit.api.service.NivelAutoridadeService;
  37 +import br.com.centralit.api.service.PessoaService;
  38 +import br.com.centralit.api.service.SolicitacaoAlcadaService;
  39 +import br.com.centralit.api.service.UsuarioService;
  40 +import br.com.centralit.framework.exception.BusinessException;
  41 +import br.com.centralit.framework.exception.CodigoErro;
  42 +import br.com.centralit.framework.model.Dominio;
  43 +import br.com.centralit.framework.model.GrupoUsuario;
  44 +import br.com.centralit.framework.model.Usuario;
  45 +import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
  46 +import br.com.centralit.framework.util.UtilDate;
  47 +import br.com.centralit.framework.util.UtilObjeto;
  48 +import br.com.centralit.framework.util.UtilString;
  49 +
  50 +/**
  51 + * <p>
  52 + * <img src="http://centralit.com.br/images/logo_central.png">
  53 + * </p>
  54 + *
  55 + * <p>
  56 + * <b>Company: </b> Central IT - Governança Corporativa -
  57 + * </p>
  58 + *
  59 + * <p>
  60 + * <b>Title: </b>
  61 + * </p>
  62 + *
  63 + * <p>
  64 + * <b>Description: </b>
  65 + * </p>
  66 + *
  67 + * <p>
  68 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  69 + * </p>
  70 + *
  71 + * <p>
  72 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  73 + * </p>
  74 + *
  75 + * @since 18/06/2015 - 16:57:02
  76 + *
  77 + * @version 1.0.0
  78 + *
  79 + * @author lucas.ribeiro - (<a href="mailto:lucas.centralit@gmail.com">lucas.centralit@gmail.com</a>)
  80 + *
  81 + */
  82 +@Service("solicitacaoAlcadaService")
  83 +public class SolicitacaoAlcadaServiceImpl extends GenericServiceImpl<SolicitacaoAlcada, Long> implements SolicitacaoAlcadaService {
  84 +
  85 + public static final Long FAIXA_VALOR = 1l;
  86 +
  87 + public static final Long QUALQUER_VALOR = 2l;
  88 +
  89 + public static final Long NAO_APLICA = 3l;
  90 +
  91 + public static final Long TODOS = 2l;
  92 +
  93 + public static final Long INDIVIDUAL = 1l;
  94 +
  95 + public static final Long MENSAL = 2l;
  96 +
  97 + public static final Long ANUAL = 3l;
  98 +
  99 + public static final Long LIMITE_VALOR = 1L;
  100 +
  101 + public static final Long HIERARQUIA_SOLICITANTE = 2L;
  102 +
  103 + public static final Long PERMISSAO_AUTORIDADE = 3L;
  104 +
  105 + public static final Long REGRAS_PROCESSO = 4L;
  106 +
  107 + public static final Long USUARIO_NAO_EXISTE = 5L;
  108 +
  109 + public static final Long PERTENCE_GRUPO_RESPONSAVEL = 6L;
  110 +
  111 + public static final Long GRUPO_NAO_ASSOCIADO = 7L;
  112 +
  113 + public static final Long HIERARQUIA_AUTORIDADE = 8L;
  114 +
  115 + public static final String SITUACAO_GERADA = "GERADA";
  116 +
  117 + public static final String SITUACAO_APROVADA = "APROVADA";
  118 +
  119 + public static final String SITUACAO_CANCELADA = "CANCELADA";
  120 +
  121 + @Autowired
  122 + private AlcadaService alcadaService;
  123 +
  124 + @Autowired
  125 + private DominioService dominioService;
  126 +
  127 + @Autowired
  128 + private UsuarioService usuarioService;
  129 +
  130 + @Autowired
  131 + private LimiteAprovacaoAlcadaService limiteAprovacaoAlcadaService;
  132 +
  133 + @Autowired
  134 + private CentroResultadoService centroResultadoService;
  135 +
  136 + @Autowired
  137 + private GrupoUsuarioService grupoUsuarioService;
  138 +
  139 + @Autowired
  140 + private ColaboradorService colaboradorService;
  141 +
  142 + @Autowired
  143 + private PessoaService pessoaService;
  144 +
  145 + @Autowired
  146 + private NivelAutoridadeService nivelAutoridadeService;
  147 +
  148 + @Autowired
  149 + private InternacionalizacaoService internacionalizacaoService;
  150 +
  151 + private SolicitacaoAlcadaDao solicitacaoAlcadaDao;
  152 +
  153 + private Dominio idioma = null;
  154 +
  155 + @Autowired
  156 + public SolicitacaoAlcadaServiceImpl( SolicitacaoAlcadaDao solicitacaoAlcadaDao) {
  157 +
  158 + this.dao = solicitacaoAlcadaDao;
  159 + this.solicitacaoAlcadaDao = solicitacaoAlcadaDao;
  160 + }
  161 +
  162 + @Override
  163 + public SolicitacaoAlcada save(SolicitacaoAlcada solicitacaoAlcada) {
  164 +
  165 + if (solicitacaoAlcada.getIdentificador() != null) {
  166 + SolicitacaoAlcada solicitacaoAlcadaRef = this.recuperaPeloIdentificador(solicitacaoAlcada.getAlcada(), solicitacaoAlcada.getIdentificador());
  167 + if (UtilObjeto.isReferencia(solicitacaoAlcadaRef)) {
  168 + throw new BusinessException(internacionalizacaoService.getTranslate("MSG.SOLICITACAO_ALCADA_JA_EXISTE", this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  169 + }
  170 + }
  171 +
  172 + solicitacaoAlcada.setSituacao(dominioService.findByChaveAndNome("situacaoSolicitacaoAlcada", SITUACAO_GERADA));
  173 +
  174 + List<ResponsavelAlcada> responsaveis = this.getResponsaveis(solicitacaoAlcada);
  175 +
  176 + solicitacaoAlcada.setResponsaveis(responsaveis);
  177 +
  178 + this.verificaAprovacao(solicitacaoAlcada);
  179 +
  180 + solicitacaoAlcada = super.save(solicitacaoAlcada);
  181 +
  182 + return solicitacaoAlcada;
  183 + }
  184 +
  185 + @Override
  186 + public boolean remove(SolicitacaoAlcada solicitacaoAlcada) {
  187 +
  188 + solicitacaoAlcada = this.getReference(solicitacaoAlcada.getId());
  189 +
  190 + if (solicitacaoAlcada.getSituacao().getNome().equals(SITUACAO_APROVADA)) {
  191 + throw new BusinessException(internacionalizacaoService.getTranslate("MSG.SOLICITACAO_NAO_PERMITE_EXCLUSAO", this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  192 + }
  193 +
  194 + return super.remove(solicitacaoAlcada);
  195 + }
  196 +
  197 + @Override
  198 + public SolicitacaoAlcada aprovaSolicitacao(SolicitacaoAlcada solicitacaoAlcada, Usuario aprovador) {
  199 +
  200 + if (!UtilObjeto.isReferencia(solicitacaoAlcada)) {
  201 + throw new BusinessException(internacionalizacaoService.getTranslate("MSG.SOLICITACAO_ALCADA_NAO_ENCONTRADA", this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  202 + }
  203 +
  204 + if (solicitacaoAlcada.getSituacao().getNome().equals(SITUACAO_APROVADA)) {
  205 + throw new BusinessException(internacionalizacaoService.getTranslate("MSG.SOLICITACAO_NAO_PERMITE_AUTORIZACAO", this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  206 + }
  207 +
  208 + ResponsavelAlcada responsavel = null;
  209 + for (ResponsavelAlcada responsavelAlcada : solicitacaoAlcada.getResponsaveis()) {
  210 + if (responsavelAlcada.getHabilitado() && responsavelAlcada.getUsuario().getUsername().equalsIgnoreCase(aprovador.getUsername())) {
  211 + responsavel = responsavelAlcada;
  212 + break;
  213 + }
  214 + }
  215 +
  216 + if (responsavel == null) {
  217 + throw new BusinessException(internacionalizacaoService.getTranslate("MSG.APROVADOR_NAO_ENCONTRADO", this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  218 + }
  219 +
  220 + solicitacaoAlcada.setAprovador(responsavel);
  221 + solicitacaoAlcada.setSituacao(dominioService.findByChaveAndNome("situacaoSolicitacaoAlcada", SITUACAO_APROVADA));
  222 +
  223 + return this.merge(solicitacaoAlcada);
  224 + }
  225 +
  226 + @Override
  227 + public SolicitacaoAlcada aprovaPeloIdentificador(SolicitacaoAlcada solicitacaoAlcada) {
  228 +
  229 + String usernameAprovador = solicitacaoAlcada.getUsernameAprovador();
  230 + if (UtilString.isNullOrEmpty(solicitacaoAlcada.getUsernameAprovador())) {
  231 + throw new BusinessException(internacionalizacaoService.getTranslate("MSG.APROVADOR_NAO_ENCONTRADO", this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  232 + }
  233 +
  234 + Usuario aprovador = usuarioService.getUserByUsername(usernameAprovador);
  235 + if (!UtilObjeto.isReferencia(aprovador)) {
  236 + throw new BusinessException(internacionalizacaoService.getTranslate("MSG.APROVADOR_NAO_ENCONTRADO", this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  237 + }
  238 +
  239 + SolicitacaoAlcada solicitacaoAlcadaRef = this.recuperaPeloIdentificador(solicitacaoAlcada.getAlcada(), solicitacaoAlcada.getIdentificador());
  240 + if (!UtilObjeto.isReferencia(solicitacaoAlcadaRef)) {
  241 + throw new BusinessException(internacionalizacaoService.getTranslate("MSG.SOLICITACAO_ALCADA_NAO_ENCONTRADA", this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  242 + }
  243 +
  244 + if (solicitacaoAlcada.getValor() != null && solicitacaoAlcada.getValor().doubleValue() > 0.0) {
  245 + solicitacaoAlcadaRef.setValor(solicitacaoAlcada.getValor());
  246 + }
  247 +
  248 + return this.aprovaSolicitacao(solicitacaoAlcadaRef, aprovador);
  249 + }
  250 +
  251 + @Override
  252 + public SolicitacaoAlcada cancelaAprovacaoPeloIdentificador(SolicitacaoAlcada solicitacaoAlcada) {
  253 +
  254 + SolicitacaoAlcada solicitacaoAlcadaRef = this.recuperaPeloIdentificador(solicitacaoAlcada.getAlcada(), solicitacaoAlcada.getIdentificador());
  255 + if (!UtilObjeto.isReferencia(solicitacaoAlcadaRef)) {
  256 + throw new BusinessException(internacionalizacaoService.getTranslate("MSG.SOLICITACAO_ALCADA_NAO_ENCONTRADA", this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  257 + }
  258 +
  259 + return this.cancelaAprovacao(solicitacaoAlcadaRef);
  260 + }
  261 +
  262 + @Override
  263 + public SolicitacaoAlcada cancelaAprovacao(SolicitacaoAlcada solicitacaoAlcada) {
  264 +
  265 + if (!UtilObjeto.isReferencia(solicitacaoAlcada)) {
  266 + throw new BusinessException(internacionalizacaoService.getTranslate("MSG.SOLICITACAO_ALCADA_NAO_ENCONTRADA", this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  267 + }
  268 +
  269 + if (solicitacaoAlcada.getSituacao().getNome().equals(SITUACAO_APROVADA)) {
  270 + solicitacaoAlcada.setAprovador(null);
  271 + solicitacaoAlcada.setSituacao(dominioService.findByChaveAndNome("situacaoSolicitacaoAlcada", SITUACAO_CANCELADA));
  272 + solicitacaoAlcada.setDataInativo(UtilDate.getDataAtualCalendar());
  273 + solicitacaoAlcada = this.merge(solicitacaoAlcada);
  274 + }
  275 +
  276 + return solicitacaoAlcada;
  277 + }
  278 +
  279 + @Override
  280 + public List<ResponsavelAlcada> getResponsaveis(SolicitacaoAlcada solicitacaoAlcada) {
  281 +
  282 + this.validaSolicitacao(solicitacaoAlcada);
  283 +
  284 + List<ResponsavelAlcada> responsaveis = this.getResponsaveisCentroResultado(solicitacaoAlcada);
  285 +
  286 + List<LimiteAprovacao> limitesAprovacao = this.getLimitesAprovacao(solicitacaoAlcada);
  287 +
  288 + this.validaResponsaveis(solicitacaoAlcada, limitesAprovacao, responsaveis);
  289 +
  290 + this.trataAlcadasNivelSuperior(solicitacaoAlcada, limitesAprovacao, responsaveis);
  291 +
  292 + return responsaveis;
  293 + }
  294 +
  295 + @Override
  296 + public SolicitacaoAlcada recuperaSolicitacao(Alcada alcada, String identificadorUnico) {
  297 +
  298 + SolicitacaoAlcada solicitacaoAlcada = solicitacaoAlcadaDao.recuperaPeloIdentificador(alcada, identificadorUnico);
  299 + return recuperaRelacionamentos(solicitacaoAlcada);
  300 + }
  301 +
  302 + protected SolicitacaoAlcada recuperaRelacionamentos(SolicitacaoAlcada solicitacaoAlcada) {
  303 +
  304 + if (UtilObjeto.isReferencia(solicitacaoAlcada) && !solicitacaoAlcada.isNew()) {
  305 + solicitacaoAlcada.setSituacao(dominioService.find(solicitacaoAlcada.getSituacao().getId()));
  306 +
  307 + if (solicitacaoAlcada.getAprovador() != null) {
  308 + solicitacaoAlcada.setUsernameAprovador(solicitacaoAlcada.getAprovador().getUsuario().getUsername());
  309 + }
  310 + for (ResponsavelAlcada responsavelAlcada : solicitacaoAlcada.getResponsaveis()) {
  311 + // finds necessários para resolver problemas na serialização
  312 + Colaborador colaborador = colaboradorService.find(responsavelAlcada.getColaborador().getId());
  313 + colaborador.setPessoa(pessoaService.find(colaborador.getPessoa().getId()));
  314 + responsavelAlcada.setColaborador(colaborador);
  315 + responsavelAlcada.setUsuario(usuarioService.find(responsavelAlcada.getUsuario().getId()));
  316 + responsavelAlcada.setNivelAutoridade(nivelAutoridadeService.find(responsavelAlcada.getNivelAutoridade().getId()));
  317 +
  318 + if (responsavelAlcada.getMotivosRejeicao() != null) {
  319 + for (Dominio motivo : responsavelAlcada.getMotivosRejeicao()) {
  320 + motivo = dominioService.find(motivo.getId());
  321 + }
  322 + }
  323 + }
  324 + }
  325 + return solicitacaoAlcada;
  326 + }
  327 +
  328 + protected SolicitacaoAlcada recuperaPeloIdentificador(Alcada alcada, String identificadorUnico) {
  329 +
  330 + return solicitacaoAlcadaDao.recuperaPeloIdentificador(alcada, identificadorUnico);
  331 + }
  332 +
  333 + protected void verificaAprovacao(SolicitacaoAlcada solicitacaoAlcada) {
  334 +
  335 + if (UtilObjeto.isReferencia(solicitacaoAlcada.getUsuarioAprovador())) {
  336 + List<ResponsavelAlcada> responsaveis = solicitacaoAlcada.getResponsaveis();
  337 +
  338 + // Verifica se aprovador está na lista dos responsáveis
  339 + Usuario aprovador = solicitacaoAlcada.getUsuarioAprovador();
  340 + ResponsavelAlcada responsavelAprovacao = null;
  341 + for (ResponsavelAlcada responsavelAlcada : responsaveis) {
  342 + if (responsavelAlcada.getUsuario().getUsername().equalsIgnoreCase(aprovador.getUsername())) {
  343 + responsavelAprovacao = responsavelAlcada;
  344 + break;
  345 + }
  346 + }
  347 +
  348 + if (responsavelAprovacao == null) {
  349 + // Cria aprovador, se não estiver na lista de responsáveis
  350 + Colaborador colaborador = colaboradorService.findPorUsuario(aprovador);
  351 + if (colaborador != null && !this.existeResponsavel(colaborador, responsaveis)) {
  352 + responsavelAprovacao = new ResponsavelAlcada(solicitacaoAlcada, colaborador, null, null);
  353 + this.atribuiNivelAutoridade(solicitacaoAlcada.getAlcada(), responsavelAprovacao);
  354 + responsaveis.add(responsavelAprovacao);
  355 + }
  356 + }
  357 +
  358 + if (responsavelAprovacao == null) {
  359 + throw new BusinessException(internacionalizacaoService.getTranslate("MSG.APROVADOR_NAO_ENCONTRADO", this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  360 + }
  361 +
  362 + solicitacaoAlcada.setAprovador(responsavelAprovacao);
  363 + solicitacaoAlcada.setSituacao(dominioService.findByChaveAndNome("situacaoSolicitacaoAlcada", SITUACAO_APROVADA));
  364 + }
  365 + }
  366 +
  367 + protected Dominio getIdioma() {
  368 +
  369 + if (this.idioma == null) {
  370 + this.idioma = this.dominioService.findByChaveAndCodigo("tipoIdioma", Dominio.TIPO_IDIOMA_PT_BR_CODIGO);
  371 + }
  372 + return this.idioma;
  373 + }
  374 +
  375 + protected void trataAlcadasNivelSuperior(SolicitacaoAlcada solicitacaoAlcada, List<LimiteAprovacao> limitesAprovacao, List<ResponsavelAlcada> responsaveis) {
  376 +
  377 + int i = 0;
  378 + for (ResponsavelAlcada responsavelAlcada : responsaveis) {
  379 + if (responsavelAlcada.getHabilitado())
  380 + i++;
  381 + }
  382 +
  383 + if (i == 0) {
  384 + for (LimiteAprovacao limiteAprovacao : limitesAprovacao) {
  385 + if (!limiteAprovacao.getDominioTipoLimite().getCodigo().equals(FAIXA_VALOR) && limiteAprovacao.getDominioTipoAbrangencia().getCodigo().equals(TODOS)) {
  386 + for (LimiteAprovacaoNivelAutoridade limiteAprovacaoNivelAutoridade : limiteAprovacao.getNiveisAutoridades()) {
  387 + for (NivelAutoridadeGrupo nivelAutoridadeGrupo : limiteAprovacaoNivelAutoridade.getNivelAutoridade().getGrupos()) {
  388 + Collection<GrupoUsuario> gruposUsuario = grupoUsuarioService.findPorIdGrupo(nivelAutoridadeGrupo.getGrupo().getId());
  389 + for (GrupoUsuario grupoUsuario : gruposUsuario) {
  390 + Colaborador colaborador = colaboradorService.findPorUsuario(grupoUsuario.getUsuario());
  391 + if (colaborador != null && !this.existeResponsavel(colaborador, responsaveis)) {
  392 + responsaveis.add(new ResponsavelAlcada(solicitacaoAlcada, colaborador, nivelAutoridadeGrupo.getNivelAutoridade(), null));
  393 + }
  394 + }
  395 + }
  396 + }
  397 + }
  398 + }
  399 + }
  400 + }
  401 +
  402 + protected void recuperaAlcada(SolicitacaoAlcada solicitacaoAlcada) {
  403 +
  404 + Alcada alcada = solicitacaoAlcada.getAlcada();
  405 + solicitacaoAlcada.setAlcada(null);
  406 +
  407 + if (alcada.getId() != null) {
  408 + solicitacaoAlcada.setAlcada(alcadaService.getReference(alcada.getId()));
  409 + } else if (alcada.getIdentificador() != null) {
  410 + solicitacaoAlcada.setAlcada(alcadaService.findByIdentificaodr(alcada.getIdentificador()));
  411 + }
  412 + }
  413 +
  414 + protected void recuperaCentroResultado(SolicitacaoAlcada solicitacaoAlcada) {
  415 +
  416 + CentroResultado centroResultado = solicitacaoAlcada.getCentroResultado();
  417 + CentroResultado centroResultadoAux = null;
  418 +
  419 + if (centroResultado.getId() != null) {
  420 + centroResultadoAux = centroResultadoService.getReference(centroResultado.getId());
  421 + }
  422 + if (centroResultadoAux == null && centroResultado.getCodigoSistemaOrigem() != null) {
  423 + centroResultadoAux = centroResultadoService.findByCodigoSistemaOrigem(centroResultado.getCodigoSistemaOrigem());
  424 + }
  425 + if (centroResultadoAux == null && centroResultado.getCodigo() != null) {
  426 + centroResultadoAux = centroResultadoService.findByCodigo(centroResultado.getCodigo());
  427 + if (centroResultadoAux == null) {
  428 + String codigo = centroResultado.getCodigo().replaceAll(".", "");
  429 + centroResultadoAux = centroResultadoService.findByCodigoSistemaOrigem(codigo);
  430 + }
  431 + }
  432 +
  433 + solicitacaoAlcada.setCentroResultado(centroResultadoAux);
  434 + }
  435 +
  436 + protected void recuperaSolicitante(SolicitacaoAlcada solicitacaoAlcada) {
  437 +
  438 + Usuario solicitante = solicitacaoAlcada.getSolicitante();
  439 + solicitacaoAlcada.setSolicitante(null);
  440 +
  441 + if (solicitante.getId() != null) {
  442 + solicitacaoAlcada.setSolicitante(usuarioService.getReference(solicitante.getId()));
  443 + } else if (solicitante.getUsername() != null) {
  444 + solicitacaoAlcada.setSolicitante(usuarioService.getUserByUsername(solicitante.getUsername()));
  445 + }
  446 + }
  447 +
  448 + protected void recuperaTipoSolicitacao(SolicitacaoAlcada solicitacaoAlcada) {
  449 +
  450 + Dominio tipoUtilizacao = solicitacaoAlcada.getTipoUtilizacao();
  451 + solicitacaoAlcada.setTipoUtilizacao(null);
  452 +
  453 + if (tipoUtilizacao.getId() != null) {
  454 + solicitacaoAlcada.setTipoUtilizacao(dominioService.getReference(tipoUtilizacao.getId()));
  455 + } else if (tipoUtilizacao.getNome() != null) {
  456 + solicitacaoAlcada.setTipoUtilizacao(dominioService.findByChaveAndNome("tipoUtilizacao", tipoUtilizacao.getNome()));
  457 + }
  458 + }
  459 +
  460 + protected void validaAtributos(SolicitacaoAlcada solicitacaoAlcada) {
  461 +
  462 + String msg = ": "+internacionalizacaoService.getTranslate("LABEL.O_CAMPO_OBRIGATORIO", this.getIdioma());
  463 +
  464 + if (solicitacaoAlcada.getAlcada() == null) {
  465 + throw new BusinessException(internacionalizacaoService.getTranslate("ALCADA.LABEL.ALCADA", this.getIdioma())+msg, CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue());
  466 + }
  467 + if (solicitacaoAlcada.getCentroResultado() == null) {
  468 + throw new BusinessException(internacionalizacaoService.getTranslate("ALCADA.LABEL.CENTRO_RESULTADO", this.getIdioma())+msg, CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue());
  469 + }
  470 + if (solicitacaoAlcada.getValor() == null) {
  471 + throw new BusinessException(internacionalizacaoService.getTranslate("SOLICITACAO_ALCADA.VALOR", this.getIdioma())+msg, CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue());
  472 + }
  473 + if (solicitacaoAlcada.getDataReferencia() == null) {
  474 + throw new BusinessException(internacionalizacaoService.getTranslate("SOLICITACAO_ALCADA.DATA_REFERENCIA", this.getIdioma())+msg, CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue());
  475 + }
  476 + if (solicitacaoAlcada.getTipoUtilizacao() == null) {
  477 + throw new BusinessException(internacionalizacaoService.getTranslate("SOLICITACAO_ALCADA.TIPO_UTILIZACAO", this.getIdioma())+msg, CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue());
  478 + }
  479 + if (UtilString.isNullOrEmpty(solicitacaoAlcada.getRequisicaoOrigem())) {
  480 + throw new BusinessException(internacionalizacaoService.getTranslate("SOLICITACAO_ALCADA.ORIGEM_SOLICITACAO", this.getIdioma())+msg, CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue());
  481 + }
  482 + if (UtilString.isNullOrEmpty(solicitacaoAlcada.getIdentificador())) {
  483 + throw new BusinessException(internacionalizacaoService.getTranslate("SOLICITACAO_ALCADA.ID_ORIGEM_SOLICITACAO", this.getIdioma())+msg, CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue());
  484 + }
  485 + }
  486 +
  487 + protected void validaSolicitacao(SolicitacaoAlcada solicitacaoAlcada) {
  488 +
  489 + this.validaAtributos(solicitacaoAlcada);
  490 +
  491 + if (!UtilString.isNullOrEmpty(solicitacaoAlcada.getUsernameAprovador())) {
  492 + Usuario aprovador = usuarioService.getUserByUsername(solicitacaoAlcada.getUsernameAprovador());
  493 + if (!UtilObjeto.isReferencia(aprovador)) {
  494 + throw new BusinessException(internacionalizacaoService.getTranslate("MSG.APROVADOR_NAO_ENCONTRADO", this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  495 + }
  496 + solicitacaoAlcada.setUsuarioAprovador(aprovador);
  497 + }
  498 +
  499 + this.recuperaAlcada(solicitacaoAlcada);
  500 + this.recuperaCentroResultado(solicitacaoAlcada);
  501 + this.recuperaSolicitante(solicitacaoAlcada);
  502 + this.recuperaTipoSolicitacao(solicitacaoAlcada);
  503 +
  504 + this.validaAtributos(solicitacaoAlcada);
  505 + }
  506 +
  507 + protected void atribuiNivelAutoridade(final Alcada alcada, ResponsavelAlcada responsavelAlcada) {
  508 +
  509 + Usuario usuario = null;
  510 + if (UtilObjeto.isReferencia(responsavelAlcada.getUsuario())) {
  511 + usuario = responsavelAlcada.getUsuario();
  512 +
  513 + // find necessário para resolver problemas na serialização
  514 + responsavelAlcada.setUsuario(usuarioService.find(usuario.getId()));
  515 +
  516 + if (responsavelAlcada.getDelegacao() != null && responsavelAlcada.getDelegacao()) {
  517 + usuario = responsavelAlcada.getCentroResultadoDelegacao().getCentroResultadoResponsavelAlcada().getCentroResultadoResponsavel().getResponsavel().getPessoa().getUsuario();
  518 + }
  519 + }
  520 + if (usuario != null) {
  521 + for (GrupoUsuario grupoUsuario : usuario.getGrupoUsuarios()) {
  522 + if (!grupoUsuario.isActive())
  523 + continue;
  524 +
  525 + for (AlcadaNivelAutoridade alcadaNivelAutoridade : alcada.getNiveisAutoridades()) {
  526 + if (!alcadaNivelAutoridade.isActive())
  527 + continue;
  528 +
  529 + for (NivelAutoridadeGrupo nivelAutoridadeGrupo : alcadaNivelAutoridade.getNivelAutoridade().getGrupos()) {
  530 + if (!nivelAutoridadeGrupo.isActive())
  531 + continue;
  532 +
  533 + if (nivelAutoridadeGrupo.getGrupo().getId().equals(grupoUsuario.getGrupo().getId())) {
  534 + if (!UtilObjeto.isReferencia(responsavelAlcada.getNivelAutoridade()) || responsavelAlcada.getNivelAutoridade().getHierarquia() > alcadaNivelAutoridade.getNivelAutoridade().getHierarquia()) {
  535 + responsavelAlcada.setNivelAutoridade(alcadaNivelAutoridade.getNivelAutoridade());
  536 + }
  537 + }
  538 + }
  539 + }
  540 + }
  541 + }
  542 + }
  543 +
  544 + protected void atribuiNivelAutoridade(final Alcada alcada, List<ResponsavelAlcada> responsaveis) {
  545 +
  546 + for (ResponsavelAlcada responsavelAlcada : responsaveis) {
  547 + this.atribuiNivelAutoridade(alcada, responsavelAlcada);
  548 + }
  549 + }
  550 +
  551 + protected List<ResponsavelAlcada> getResponsaveisCentroResultado(final SolicitacaoAlcada solicitacaoAlcada) {
  552 +
  553 + List<ResponsavelAlcada> responsaveis = new ArrayList<ResponsavelAlcada>();
  554 +
  555 + for (CentroResultadoResponsavel centroResultadoResponsavel : solicitacaoAlcada.getCentroResultado().getResponsaveis()) {
  556 + if (!centroResultadoResponsavel.isActive())
  557 + continue;
  558 +
  559 + for (CentroResultadoResponsavelAlcada centroResultadoResponsavelAlcada : centroResultadoResponsavel.getAlcadas()) {
  560 + if (!centroResultadoResponsavelAlcada.isActive())
  561 + continue;
  562 +
  563 + if (centroResultadoResponsavelAlcada.getAlcada().getId().equals(solicitacaoAlcada.getAlcada().getId())) {
  564 + if (!existeResponsavel(centroResultadoResponsavel.getResponsavel(), responsaveis)) {
  565 + responsaveis.add(new ResponsavelAlcada(solicitacaoAlcada, centroResultadoResponsavel.getResponsavel(), null, null));
  566 + }
  567 +
  568 + for (CentroResultadoDelegacao centroResultadoDelegacao : centroResultadoResponsavelAlcada.getDelegacoes()) {
  569 + if (( centroResultadoDelegacao.getRevogada() == null || !centroResultadoDelegacao.getRevogada() ) && centroResultadoDelegacao.getDataInicioDelegacao().compareTo(solicitacaoAlcada.getDataReferencia()) <= 0 && centroResultadoDelegacao.getDataFimDelegacao().compareTo(solicitacaoAlcada.getDataReferencia()) >= 0 && !existeResponsavel(centroResultadoDelegacao.getDelegado(), responsaveis)) {
  570 +
  571 + boolean valido = true;
  572 + if (centroResultadoDelegacao.getDominioTipoAbrangenciaDelegacao().getNome().equalsIgnoreCase("ESPECIFICAS")) {
  573 + valido = false;
  574 + for (CentroResultadoDelegacaoRequisicao centroResultadoDelegacaoRequisicao : centroResultadoDelegacao.getRequisicoes()) {
  575 + if (centroResultadoDelegacaoRequisicao.getRequisicao().equals(solicitacaoAlcada.getRequisicaoOrigem())) {
  576 + valido = true;
  577 + break;
  578 + }
  579 + }
  580 + }
  581 + if (valido) {
  582 + // TODO: Descobrir proque o centroResultadoDelegacao causa erro no JSON qdo chamado pelo Citsmart
  583 + responsaveis.add(new ResponsavelAlcada(solicitacaoAlcada, centroResultadoDelegacao.getDelegado(), null, centroResultadoDelegacao));
  584 + }
  585 + }
  586 + }
  587 + }
  588 + }
  589 + }
  590 +
  591 + this.atribuiNivelAutoridade(solicitacaoAlcada.getAlcada(), responsaveis);
  592 + return responsaveis;
  593 + }
  594 +
  595 + protected boolean existeResponsavel(Colaborador colaborador, List<ResponsavelAlcada> responsaveis) {
  596 +
  597 + boolean result = false;
  598 + for (ResponsavelAlcada responsavelAlcada : responsaveis) {
  599 + if (responsavelAlcada.getColaborador().getId().equals(colaborador.getId())) {
  600 + result = true;
  601 + break;
  602 + }
  603 + }
  604 + return result;
  605 + }
  606 +
  607 + protected List<LimiteAprovacao> getLimitesAprovacao(SolicitacaoAlcada solicitacaoAlcada) {
  608 +
  609 + List<LimiteAprovacao> limitesAprovacao = new ArrayList<LimiteAprovacao>();
  610 +
  611 + // Obtem todas as alçadas associadas ao limite
  612 + List<LimiteAprovacaoAlcada> limitesAprovacaoAlcada = limiteAprovacaoAlcadaService.findByAlcada(solicitacaoAlcada.getAlcada());
  613 +
  614 + if (limitesAprovacaoAlcada != null) {
  615 + // Monta lista dos limites de cada alçada
  616 + for (LimiteAprovacaoAlcada limiteAprovacaoAlcada : limitesAprovacaoAlcada) {
  617 + if (!limitesAprovacao.contains(limiteAprovacaoAlcada.getLimiteAprovacao())) {
  618 + limitesAprovacao.add(limiteAprovacaoAlcada.getLimiteAprovacao());
  619 + }
  620 + }
  621 + }
  622 +
  623 + // Acumula valores por limite, alçada e nível de autoridade
  624 + for (LimiteAprovacao limiteAprovacao : limitesAprovacao) {
  625 + for (LimiteAprovacaoAlcada limiteAprovacaoAlcada : limiteAprovacao.getAlcadas()) {
  626 + for (LimiteAprovacaoNivelAutoridade limiteAprovacaoNivelAutoridade : limiteAprovacao.getNiveisAutoridades()) {
  627 + this.acumulaValores(solicitacaoAlcada, limiteAprovacaoAlcada.getAlcada(), limiteAprovacao, limiteAprovacaoNivelAutoridade.getNivelAutoridade());
  628 + }
  629 + }
  630 + }
  631 +
  632 + return limitesAprovacao;
  633 + }
  634 +
  635 + protected void acumulaValores(SolicitacaoAlcada solicitacaoAlcada, Alcada alcada, LimiteAprovacao limiteAprovacao, NivelAutoridade nivelAutoridade) {
  636 +
  637 + if (limiteAprovacao.getDominioTipoLimite().getCodigo().equals(FAIXA_VALOR)) {
  638 + int ano = new Integer(UtilDate.getAno(solicitacaoAlcada.getDataReferencia().getTime()));
  639 + int mes = new Integer(UtilDate.getMes(solicitacaoAlcada.getDataReferencia().getTime()));
  640 +
  641 + Collection<LimiteAprovacaoValor> valores = limiteAprovacao.getLimitesAprovacoesValores();
  642 + if (valores != null) {
  643 + for (LimiteAprovacaoValor limiteAprovacaoValor : valores) {
  644 + if (!limiteAprovacaoValor.getDominioTipoUtilizacao().getCodigo().equals(solicitacaoAlcada.getTipoUtilizacao().getCodigo())) {
  645 + continue;
  646 + }
  647 +
  648 + float valorAcumulado = 0;
  649 +
  650 + if (!limiteAprovacaoValor.getDominioTipoLimiteValor().getCodigo().equals(INDIVIDUAL)) {
  651 + valorAcumulado = solicitacaoAlcadaDao.getValorAcumulado(ano, limiteAprovacaoValor.getDominioTipoLimiteValor().getCodigo().equals(MENSAL) ? mes : null, alcada, solicitacaoAlcada.getCentroResultado(), solicitacaoAlcada.getTipoUtilizacao(), nivelAutoridade);
  652 + }
  653 +
  654 + limiteAprovacaoValor.adicionaValorAcumulado(nivelAutoridade, valorAcumulado);
  655 + }
  656 + }
  657 + }
  658 + }
  659 +
  660 + protected void validaUsuario(SolicitacaoAlcada solicitacaoAlcada, List<LimiteAprovacao> limitesAprovacao, List<ResponsavelAlcada> responsaveis, HashMap<Long, Dominio> mapMotivosRejeicao) {
  661 +
  662 + for (ResponsavelAlcada responsavelAlcada : responsaveis) {
  663 + if (!responsavelAlcada.getHabilitado())
  664 + continue;
  665 +
  666 + if (!UtilObjeto.isReferencia(responsavelAlcada.getUsuario())) {
  667 + responsavelAlcada.adicionaMotivoRejeicao(mapMotivosRejeicao.get(USUARIO_NAO_EXISTE));
  668 + }
  669 + }
  670 + }
  671 +
  672 + protected void validaGrupos(SolicitacaoAlcada solicitacaoAlcada, List<LimiteAprovacao> limitesAprovacao, List<ResponsavelAlcada> responsaveis, HashMap<Long, Dominio> mapMotivosRejeicao) {
  673 +
  674 + for (ResponsavelAlcada responsavelAlcada : responsaveis) {
  675 + if (!responsavelAlcada.getHabilitado())
  676 + continue;
  677 +
  678 + if (!UtilObjeto.isReferencia(responsavelAlcada.getNivelAutoridade())) {
  679 + responsavelAlcada.adicionaMotivoRejeicao(mapMotivosRejeicao.get(GRUPO_NAO_ASSOCIADO));
  680 + }
  681 + }
  682 + }
  683 +
  684 + protected void validaLimiteValor(SolicitacaoAlcada solicitacaoAlcada, List<LimiteAprovacao> limitesAprovacao, List<ResponsavelAlcada> responsaveis, HashMap<Long, Dominio> mapMotivosRejeicao) {
  685 +
  686 + for (LimiteAprovacao limiteAprovacao : limitesAprovacao) {
  687 + if (limiteAprovacao.getDominioTipoLimite().getCodigo().equals(FAIXA_VALOR)) {
  688 + for (LimiteAprovacaoValor limiteAprovacaoValor : limiteAprovacao.getLimitesAprovacoesValores()) {
  689 + if (solicitacaoAlcada.getTipoUtilizacao().getCodigo().equals(limiteAprovacaoValor.getDominioTipoUtilizacao().getCodigo())) {
  690 +
  691 + for (ValorAcumulado valorAcumulado : limiteAprovacaoValor.getValoresAcumulados()) {
  692 + double valorRef = 0.0;
  693 + if (limiteAprovacaoValor.getDominioTipoLimiteValor().getCodigo().equals(INDIVIDUAL)) {
  694 + valorRef = solicitacaoAlcada.getValor().doubleValue();
  695 + } else {
  696 + valorRef = solicitacaoAlcada.getValor().doubleValue() + valorAcumulado.getValor();
  697 + }
  698 +
  699 + valorAcumulado.setRejeitado(valorRef > limiteAprovacaoValor.getValorLimite().doubleValue());
  700 + if (valorAcumulado.isRejeitado()) {
  701 + for (ResponsavelAlcada responsavelAlcada : responsaveis) {
  702 + if (!responsavelAlcada.getHabilitado())
  703 + continue;
  704 +
  705 + if (responsavelAlcada.getNivelAutoridade().getId().equals(valorAcumulado.getNivelAutoridade().getId())) {
  706 + responsavelAlcada.adicionaMotivoRejeicao(mapMotivosRejeicao.get(LIMITE_VALOR));
  707 + }
  708 + }
  709 + }
  710 + }
  711 + }
  712 + }
  713 +
  714 + }
  715 + }
  716 + }
  717 +
  718 + protected void validaSolicitante(SolicitacaoAlcada solicitacaoAlcada, List<LimiteAprovacao> limitesAprovacao, List<ResponsavelAlcada> responsaveis, HashMap<Long, Dominio> mapMotivosRejeicao) {
  719 +
  720 + if (!UtilObjeto.isReferencia(solicitacaoAlcada.getSolicitante()))
  721 + return;
  722 +
  723 + for (AlcadaNivelAutoridade alcadaNivelAutoridade : solicitacaoAlcada.getAlcada().getNiveisAutoridades()) {
  724 + if (!alcadaNivelAutoridade.isActive())
  725 + continue;
  726 +
  727 + if (!alcadaNivelAutoridade.getPermiteAprovacaoPropria()) {
  728 + for (ResponsavelAlcada responsavelAlcada : responsaveis) {
  729 + if (!responsavelAlcada.getHabilitado())
  730 + continue;
  731 +
  732 + if (responsavelAlcada.getNivelAutoridade().getId().equals(alcadaNivelAutoridade.getNivelAutoridade().getId())) {
  733 + if (responsavelAlcada.getUsuario().getUsername().equalsIgnoreCase(solicitacaoAlcada.getSolicitante().getUsername())) {
  734 + responsavelAlcada.adicionaMotivoRejeicao(mapMotivosRejeicao.get(PERMISSAO_AUTORIDADE));
  735 + }
  736 + }
  737 + }
  738 + }
  739 + }
  740 + }
  741 +
  742 + protected void validaAprovador(SolicitacaoAlcada solicitacaoAlcada, List<LimiteAprovacao> limitesAprovacao, List<ResponsavelAlcada> responsaveis, HashMap<Long, Dominio> mapMotivosRejeicao) {
  743 +
  744 + if (!UtilObjeto.isReferencia(solicitacaoAlcada.getAlcada().getGrupoResponsavel()))
  745 + return;
  746 +
  747 + for (ResponsavelAlcada responsavelAlcada : responsaveis) {
  748 + if (!responsavelAlcada.getHabilitado())
  749 + continue;
  750 +
  751 + for (GrupoUsuario grupoUsuario : responsavelAlcada.getUsuario().getGrupoUsuarios()) {
  752 + if (!grupoUsuario.isActive())
  753 + continue;
  754 +
  755 + if (grupoUsuario.getGrupo().getId().equals(solicitacaoAlcada.getAlcada().getGrupoResponsavel().getId())) {
  756 + responsavelAlcada.adicionaMotivoRejeicao(mapMotivosRejeicao.get(PERTENCE_GRUPO_RESPONSAVEL));
  757 + }
  758 + }
  759 + }
  760 + }
  761 +
  762 + protected void validaHierarquiaSolicitante(SolicitacaoAlcada solicitacaoAlcada, List<LimiteAprovacao> limitesAprovacao, List<ResponsavelAlcada> responsaveis, HashMap<Long, Dominio> mapMotivosRejeicao) {
  763 +
  764 + if (solicitacaoAlcada.getAlcada().getPermiteAprovacaoNivelInferior() == null || solicitacaoAlcada.getAlcada().getPermiteAprovacaoNivelInferior())
  765 + return;
  766 +
  767 + if (!UtilObjeto.isReferencia(solicitacaoAlcada.getSolicitante()))
  768 + return;
  769 +
  770 + int hierarquia = 0;
  771 + for (ResponsavelAlcada responsavelAlcada : responsaveis) {
  772 + if (!responsavelAlcada.getUsuario().getUsername().equalsIgnoreCase(solicitacaoAlcada.getSolicitante().getUsername()))
  773 + continue;
  774 +
  775 + hierarquia = responsavelAlcada.getNivelAutoridade().getHierarquia();
  776 + break;
  777 + }
  778 +
  779 + if (hierarquia > 0) {
  780 + for (ResponsavelAlcada responsavelAlcada : responsaveis) {
  781 + if (!responsavelAlcada.getHabilitado())
  782 + continue;
  783 +
  784 + if (responsavelAlcada.getNivelAutoridade().getHierarquia() > hierarquia) {
  785 + responsavelAlcada.adicionaMotivoRejeicao(mapMotivosRejeicao.get(HIERARQUIA_SOLICITANTE));
  786 + }
  787 + }
  788 + }
  789 + }
  790 +
  791 + protected void validaNivelAutoridade(SolicitacaoAlcada solicitacaoAlcada, List<LimiteAprovacao> limitesAprovacao, List<ResponsavelAlcada> responsaveis, HashMap<Long, Dominio> mapMotivosRejeicao) {
  792 +
  793 + if (solicitacaoAlcada.getAlcada().getSomenteMenorHierarquia() == null || !solicitacaoAlcada.getAlcada().getSomenteMenorHierarquia())
  794 + return;
  795 +
  796 + int hierarquia = 0;
  797 + for (ResponsavelAlcada responsavelAlcada : responsaveis) {
  798 + if (!responsavelAlcada.getHabilitado())
  799 + continue;
  800 +
  801 + if (responsavelAlcada.getNivelAutoridade().getHierarquia() > hierarquia) {
  802 + hierarquia = responsavelAlcada.getNivelAutoridade().getHierarquia();
  803 + }
  804 + }
  805 +
  806 + for (ResponsavelAlcada responsavelAlcada : responsaveis) {
  807 + if (!responsavelAlcada.getHabilitado())
  808 + continue;
  809 +
  810 + if (responsavelAlcada.getNivelAutoridade().getHierarquia() < hierarquia) {
  811 + responsavelAlcada.adicionaMotivoRejeicao(mapMotivosRejeicao.get(HIERARQUIA_AUTORIDADE));
  812 + }
  813 + }
  814 + }
  815 +
  816 + protected void validaResponsaveis(SolicitacaoAlcada solicitacaoAlcada, List<LimiteAprovacao> limitesAprovacao, List<ResponsavelAlcada> responsaveis) {
  817 +
  818 + HashMap<Long, Dominio> mapMotivosRejeicao = new HashMap<Long, Dominio>();
  819 + Collection<Dominio> motivosRejeicao = dominioService.listarPorChave("motivoRejeicaoAlcada");
  820 + for (Dominio dominio : motivosRejeicao) {
  821 + mapMotivosRejeicao.put(dominio.getCodigo(), dominio);
  822 + }
  823 +
  824 + this.validaGrupos(solicitacaoAlcada, limitesAprovacao, responsaveis, mapMotivosRejeicao);
  825 + this.validaUsuario(solicitacaoAlcada, limitesAprovacao, responsaveis, mapMotivosRejeicao);
  826 + this.validaLimiteValor(solicitacaoAlcada, limitesAprovacao, responsaveis, mapMotivosRejeicao);
  827 + this.validaSolicitante(solicitacaoAlcada, limitesAprovacao, responsaveis, mapMotivosRejeicao);
  828 + this.validaAprovador(solicitacaoAlcada, limitesAprovacao, responsaveis, mapMotivosRejeicao);
  829 + this.validaHierarquiaSolicitante(solicitacaoAlcada, limitesAprovacao, responsaveis, mapMotivosRejeicao);
  830 + this.validaNivelAutoridade(solicitacaoAlcada, limitesAprovacao, responsaveis, mapMotivosRejeicao);
  831 + }
  832 +
  833 +}
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/validation/CentroResultadoDelegacaoValidator.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/validation/CentroResultadoDelegacaoValidator.java
... ... @@ -0,0 +1,55 @@
  1 +package br.com.centralit.api.service.validation;
  2 +
  3 +import br.com.centralit.api.model.CentroResultadoDelegacao;
  4 +import org.springframework.stereotype.Component;
  5 +import org.springframework.validation.Errors;
  6 +import org.springframework.validation.ValidationUtils;
  7 +import org.springframework.validation.Validator;
  8 +
  9 +import br.com.centralit.framework.exception.CodigoErro;
  10 +
  11 +/**
  12 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  13 + *
  14 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  15 + *
  16 + * <p><b>Title: </b></p>
  17 + *
  18 + * <p><b>Description: </b></p>
  19 + *
  20 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  21 + *
  22 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  23 + *
  24 + * @since 30/06/2015 - 14:10:06
  25 + *
  26 + * @version 1.0.0
  27 + *
  28 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  29 + *
  30 + */
  31 +@Component("centroResultadoDelegacaoValidator")
  32 +public class CentroResultadoDelegacaoValidator implements Validator {
  33 +
  34 + @Override
  35 + public boolean supports(Class<?> clazz) {
  36 +
  37 + return CentroResultadoDelegacao.class.isAssignableFrom(clazz);
  38 + }
  39 +
  40 + @Override
  41 + public void validate(Object target, Errors errors) {
  42 +
  43 + ValidationUtils.rejectIfEmpty(errors, "centroResultadoResponsavelAlcada", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "ALCADA.LABEL.CENTRO_RESULTADO");
  44 +
  45 + ValidationUtils.rejectIfEmpty(errors, "delegado", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.COLABORADOR");
  46 +
  47 + ValidationUtils.rejectIfEmpty(errors, "dataInicioDelegacao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.DATA_INICIO_DELEGACAO");
  48 +
  49 + ValidationUtils.rejectIfEmpty(errors, "dataFimDelegacao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.DATA_FIM_DELEGACAO");
  50 +
  51 + ValidationUtils.rejectIfEmpty(errors, "dominioTipoAbrangenciaDelegacao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.DOMINIO");
  52 +
  53 + }
  54 +}
  55 +
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/validation/LimiteAprovacaoAlcadaValidator.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/validation/LimiteAprovacaoAlcadaValidator.java
... ... @@ -0,0 +1,49 @@
  1 +package br.com.centralit.api.service.validation;
  2 +
  3 +import br.com.centralit.api.model.LimiteAprovacaoAlcada;
  4 +import org.springframework.stereotype.Component;
  5 +import org.springframework.validation.Errors;
  6 +import org.springframework.validation.ValidationUtils;
  7 +import org.springframework.validation.Validator;
  8 +
  9 +import br.com.centralit.framework.exception.CodigoErro;
  10 +
  11 +/**
  12 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  13 + *
  14 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  15 + *
  16 + * <p><b>Title: </b></p>
  17 + *
  18 + * <p><b>Description: </b></p>
  19 + *
  20 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  21 + *
  22 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  23 + *
  24 + * @since 30/06/2015 - 13:55:46
  25 + *
  26 + * @version 1.0.0
  27 + *
  28 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  29 + *
  30 + */
  31 +@Component("limiteAprovacaoAlcadaValidator")
  32 +public class LimiteAprovacaoAlcadaValidator implements Validator {
  33 +
  34 + @Override
  35 + public boolean supports(Class<?> clazz) {
  36 +
  37 + return LimiteAprovacaoAlcada.class.isAssignableFrom(clazz);
  38 + }
  39 +
  40 + @Override
  41 + public void validate(Object target, Errors errors) {
  42 +
  43 + ValidationUtils.rejectIfEmpty(errors, "alcada", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "ALCADA.LABEL.ALCADA");
  44 +
  45 + ValidationUtils.rejectIfEmpty(errors, "limiteAprovacao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.LIMITEAPROVACAO");
  46 +
  47 + }
  48 +}
  49 +
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/validation/LimiteAprovacaoNivelAutoridadeValidator.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/validation/LimiteAprovacaoNivelAutoridadeValidator.java
... ... @@ -0,0 +1,49 @@
  1 +package br.com.centralit.api.service.validation;
  2 +
  3 +import br.com.centralit.api.model.LimiteAprovacaoNivelAutoridade;
  4 +import org.springframework.stereotype.Component;
  5 +import org.springframework.validation.Errors;
  6 +import org.springframework.validation.ValidationUtils;
  7 +import org.springframework.validation.Validator;
  8 +
  9 +import br.com.centralit.framework.exception.CodigoErro;
  10 +
  11 +/**
  12 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  13 + *
  14 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  15 + *
  16 + * <p><b>Title: </b></p>
  17 + *
  18 + * <p><b>Description: </b></p>
  19 + *
  20 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  21 + *
  22 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  23 + *
  24 + * @since 30/06/2015 - 13:56:16
  25 + *
  26 + * @version 1.0.0
  27 + *
  28 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  29 + *
  30 + */
  31 +@Component("limiteAprovacaoNivelAutoridadeValidator")
  32 +public class LimiteAprovacaoNivelAutoridadeValidator implements Validator {
  33 +
  34 + @Override
  35 + public boolean supports(Class<?> clazz) {
  36 +
  37 + return LimiteAprovacaoNivelAutoridade.class.isAssignableFrom(clazz);
  38 + }
  39 +
  40 + @Override
  41 + public void validate(Object target, Errors errors) {
  42 +
  43 + ValidationUtils.rejectIfEmpty(errors, "limiteAprovacao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.LIMITEAPROVACAO");
  44 +
  45 + ValidationUtils.rejectIfEmpty(errors, "nivelAutoridade", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.NIVELAUTORIDADE");
  46 +
  47 + }
  48 +}
  49 +
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/validation/LimiteAprovacaoValidator.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/validation/LimiteAprovacaoValidator.java
... ... @@ -0,0 +1,51 @@
  1 +package br.com.centralit.api.service.validation;
  2 +
  3 +import br.com.centralit.api.model.LimiteAprovacao;
  4 +import org.springframework.stereotype.Component;
  5 +import org.springframework.validation.Errors;
  6 +import org.springframework.validation.ValidationUtils;
  7 +import org.springframework.validation.Validator;
  8 +
  9 +import br.com.centralit.framework.exception.CodigoErro;
  10 +
  11 +/**
  12 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  13 + *
  14 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  15 + *
  16 + * <p><b>Title: </b></p>
  17 + *
  18 + * <p><b>Description: </b></p>
  19 + *
  20 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  21 + *
  22 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  23 + *
  24 + * @since 18/06/2015 - 16:57:27
  25 + *
  26 + * @version 1.0.0
  27 + *
  28 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  29 + *
  30 + */
  31 +@Component("limiteAprovacaoValidator")
  32 +public class LimiteAprovacaoValidator implements Validator {
  33 +
  34 + @Override
  35 + public boolean supports(Class<?> clazz) {
  36 +
  37 + return LimiteAprovacao.class.isAssignableFrom(clazz);
  38 + }
  39 +
  40 + @Override
  41 + public void validate(Object target, Errors errors) {
  42 +
  43 + ValidationUtils.rejectIfEmpty(errors, "identificacao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.IDENTIFICACAO");
  44 +
  45 + ValidationUtils.rejectIfEmpty(errors, "dominioTipoAbrangencia", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.DOMINIO");
  46 +
  47 + ValidationUtils.rejectIfEmpty(errors, "dominioTipoLimite", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.DOMINIO");
  48 +
  49 + }
  50 +}
  51 +
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/validation/LimiteAprovacaoValorValidator.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/validation/LimiteAprovacaoValorValidator.java
... ... @@ -0,0 +1,55 @@
  1 +package br.com.centralit.api.service.validation;
  2 +
  3 +import br.com.centralit.api.model.LimiteAprovacaoValor;
  4 +import org.springframework.stereotype.Component;
  5 +import org.springframework.validation.Errors;
  6 +import org.springframework.validation.ValidationUtils;
  7 +import org.springframework.validation.Validator;
  8 +
  9 +import br.com.centralit.framework.exception.CodigoErro;
  10 +
  11 +/**
  12 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  13 + *
  14 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  15 + *
  16 + * <p><b>Title: </b></p>
  17 + *
  18 + * <p><b>Description: </b></p>
  19 + *
  20 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  21 + *
  22 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  23 + *
  24 + * @since 18/06/2015 - 16:56:53
  25 + *
  26 + * @version 1.0.0
  27 + *
  28 + * @author lucas.ribeiro - (<a href="mailto:lucas.ribeiro@centralit.com.br">lucas.ribeiro@centralit.com.br</a>)
  29 + *
  30 + */
  31 +@Component("limiteAprovacaoValorValidator")
  32 +public class LimiteAprovacaoValorValidator implements Validator {
  33 +
  34 + @Override
  35 + public boolean supports(Class<?> clazz) {
  36 +
  37 + return LimiteAprovacaoValor.class.isAssignableFrom(clazz);
  38 + }
  39 +
  40 + @Override
  41 + public void validate(Object target, Errors errors) {
  42 +
  43 + ValidationUtils.rejectIfEmpty(errors, "dominio", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.DOMINIO");
  44 +
  45 + ValidationUtils.rejectIfEmpty(errors, "dominio", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.DOMINIO");
  46 +
  47 + ValidationUtils.rejectIfEmpty(errors, "dominio", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.DOMINIO");
  48 +
  49 + ValidationUtils.rejectIfEmpty(errors, "dominio", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.DOMINIO");
  50 +
  51 + ValidationUtils.rejectIfEmpty(errors, "valorLimite", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.VALORLIMITE");
  52 +
  53 + }
  54 +}
  55 +
... ...
cit-alcada-api/src/main/java/br/com/centralit/api/service/validation/SolicitacaoAlcadaValidator.java 0 → 100644
  1 +++ a/cit-alcada-api/src/main/java/br/com/centralit/api/service/validation/SolicitacaoAlcadaValidator.java
... ... @@ -0,0 +1,57 @@
  1 +package br.com.centralit.api.service.validation;
  2 +
  3 +import org.springframework.stereotype.Component;
  4 +import org.springframework.validation.Errors;
  5 +import org.springframework.validation.ValidationUtils;
  6 +import org.springframework.validation.Validator;
  7 +
  8 +import br.com.centralit.api.model.SolicitacaoAlcada;
  9 +import br.com.centralit.framework.exception.CodigoErro;
  10 +
  11 +/**
  12 + * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
  13 + *
  14 + * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
  15 + *
  16 + * <p><b>Title: </b></p>
  17 + *
  18 + * <p><b>Description: </b></p>
  19 + *
  20 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  21 + *
  22 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  23 + *
  24 + * @since 18/06/2015 - 16:56:53
  25 + *
  26 + * @version 1.0.0
  27 + *
  28 + * @author lucas.ribeiro - (<a href="mailto:lucas.centralit@gmail.com">lucas.centralit@gmail.com</a>)
  29 + *
  30 + */
  31 +@Component("solicitacaoAlcadaValidator")
  32 +public class SolicitacaoAlcadaValidator implements Validator {
  33 +
  34 + @Override
  35 + public boolean supports(Class<?> clazz) {
  36 +
  37 + return SolicitacaoAlcada.class.isAssignableFrom(clazz);
  38 + }
  39 +
  40 + @Override
  41 + public void validate(Object target, Errors errors) {
  42 +
  43 + ValidationUtils.rejectIfEmpty(errors, "alcada", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "ALCADA.LABEL.ALCADA");
  44 +
  45 + ValidationUtils.rejectIfEmpty(errors, "centroResultado", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "ALCADA.LABEL.CENTRO_RESULTADO");
  46 +
  47 + ValidationUtils.rejectIfEmpty(errors, "valor", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "SOLICITACAO_ALCADA.VALOR");
  48 +
  49 + ValidationUtils.rejectIfEmpty(errors, "dataReferencia", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "SOLICITACAO_ALCADA.DATA_REFERENCIA");
  50 +
  51 + ValidationUtils.rejectIfEmpty(errors, "tipoUtilizacao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "SOLICITACAO_ALCADA.TIPO_UTILIZACAO");
  52 +
  53 + ValidationUtils.rejectIfEmpty(errors, "identificador", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "SOLICITACAO_ALCADA.ID_ORIGEM_SOLICITACAO");
  54 +
  55 + }
  56 +}
  57 +
... ...