View Javadoc

1   /*
2    * Created on 13/09/2004
3    */
4   package ecar.dao;
5   
6   import java.util.Iterator;
7   import java.util.List;
8   
9   import javax.servlet.http.HttpServletRequest;
10  
11  import comum.database.Dao;
12  
13  import ecar.exception.ECARException;
14  import ecar.pojo.Uf;
15  
16  /**
17   * @author garten
18   */
19  public class UfDao extends Dao {
20  
21    /**
22     * Construtor. Chama o Session factory do Hibernate
23     */
24    public UfDao(HttpServletRequest request) {
25      super();
26      this.request = request;
27    }
28  
29    /**
30     * Salvar sobrescrito. Testa se já existe uma UF com a mesma sigla.
31     * @param uf
32     * @throws ECARException
33     */
34    public void salvar(Uf uf) throws ECARException {
35      try {
36        if (pesquisarDuplos(uf, new String[] { "descricaoUf" }, "codUf").size() > 0)
37          throw new ECARException("uf.validacao.registroDuplicado");
38  
39        /* tentar buscar */
40        if (buscar(Uf.class, uf.getCodUf()) != null)
41          throw new ECARException("uf.inclusao.jaExiste");
42  
43      } catch (ECARException e) {
44        this.logger.error(e);
45        if (e.getMessageKey().equalsIgnoreCase("erro.objectNotFound")) {
46          super.salvar(uf);
47        }
48        else
49          /* joga para frente a uf.inclusao.jaExiste */
50          throw e;
51      }
52    }
53  
54    /**
55     * Verifica as regras de negocio de UF antes de excluir
56     * @param uf
57     * @throws ECARException
58     */
59    public void excluir(Uf uf) throws ECARException {
60      try {
61        /* testa dependecia com tbela usuario */
62        if (this.contar(uf.getUsuarioUsusByComercUfUsu()) > 0 || this.contar(uf.getUsuarioUsusByResidUfUsu()) > 0) {
63          throw new ECARException("uf.exclusao.erro.usuarioUsu");
64          /* testa dependencia com tabela empresa */
65        }
66        else if (this.contar(uf.getEmpresaEmps()) > 0) {
67          throw new ECARException("uf.exclusao.erro.empresaEmp");
68        }
69        else if (this.contar(uf.getEnderecoEnds()) > 0) {
70          throw new ECARException("uf.exclusao.erro.enderecoEnd");
71        }
72        else
73          super.excluir(uf);
74      } catch (ECARException e) {
75        this.logger.error(e);
76        throw e;
77      }
78    }
79  
80    /**
81     * Verifica duplicação depois altera
82     * @param uf
83     * @throws ECARException
84     */
85    public void alterar(Uf uf) throws ECARException {
86      if (pesquisarDuplos(uf, new String[] { "descricaoUf" }, "codUf").size() > 0)
87        throw new ECARException("uf.validacao.registroDuplicado");
88      super.alterar(uf);
89    }
90  
91    /**
92     * @return String
93     * @throws ECARException
94     */
95    public String getUfJS() throws ECARException {
96      List listaUf = super.listar(Uf.class, new String[] { "descricaoUf", "asc" });
97      Iterator itUf = listaUf.iterator();
98      StringBuilder javaScript = new StringBuilder("function getUf()\n{\n");
99      javaScript.append("\tconteudo = \"\";\n");
100     while (itUf.hasNext()) {
101       Uf uf = (Uf) itUf.next();
102       javaScript.append("\tconteudo += \"\\t\\t\\t\\t<option value = \\\"").append(uf.getCodUf().toString()).append("\\\">").append(uf.getDescricaoUf()).append("\";\n").append("\tconteudo += \"</option>\\n\"\n");
103     }
104     javaScript.append("\treturn(conteudo);\n}");
105     return javaScript.toString();
106   }
107 
108 }