Commit 11abffc18a3f87188a022995580302cf4fce235d

Authored by erick.sato
1 parent 6ebbdd8b
Exists in master

[Redmine Atendimento #4377] Correção Notificacao

cit-almoxarifado-api/src/main/java/br/com/centralit/api/job/NotificacaoRessuprimentoJob.java
1 package br.com.centralit.api.job; 1 package br.com.centralit.api.job;
2 2
3 import java.math.BigDecimal; 3 import java.math.BigDecimal;
  4 +import java.util.Arrays;
4 import java.util.Collection; 5 import java.util.Collection;
  6 +import java.util.List;
5 7
6 import org.apache.commons.logging.Log; 8 import org.apache.commons.logging.Log;
7 import org.apache.commons.logging.LogFactory; 9 import org.apache.commons.logging.LogFactory;
@@ -10,6 +12,8 @@ import org.quartz.JobExecutionContext; @@ -10,6 +12,8 @@ import org.quartz.JobExecutionContext;
10 import org.quartz.JobExecutionException; 12 import org.quartz.JobExecutionException;
11 import org.quartz.SchedulerException; 13 import org.quartz.SchedulerException;
12 14
  15 +import com.googlecode.genericdao.search.Field;
  16 +
13 import br.com.centralit.api.model.ConfiguracaoNotificacaoRessuprimento; 17 import br.com.centralit.api.model.ConfiguracaoNotificacaoRessuprimento;
14 import br.com.centralit.api.model.ConfiguracaoNotificacaoRessuprimentoGrupo; 18 import br.com.centralit.api.model.ConfiguracaoNotificacaoRessuprimentoGrupo;
15 import br.com.centralit.api.model.ConfiguracaoNotificacaoRessuprimentoUsuario; 19 import br.com.centralit.api.model.ConfiguracaoNotificacaoRessuprimentoUsuario;
@@ -19,9 +23,13 @@ import br.com.centralit.api.service.ConfiguracaoNotificacaoRessuprimentoUsuarioS @@ -19,9 +23,13 @@ import br.com.centralit.api.service.ConfiguracaoNotificacaoRessuprimentoUsuarioS
19 import br.com.centralit.api.service.MaterialConsumoService; 23 import br.com.centralit.api.service.MaterialConsumoService;
20 import br.com.centralit.api.service.NotificacaoUsuarioService; 24 import br.com.centralit.api.service.NotificacaoUsuarioService;
21 import br.com.centralit.api.service.impl.NotificacaoGrupoService; 25 import br.com.centralit.api.service.impl.NotificacaoGrupoService;
  26 +import br.com.centralit.framework.dao.arquitetura.SearchSeven;
22 import br.com.centralit.framework.mail.HTMLMail; 27 import br.com.centralit.framework.mail.HTMLMail;
  28 +import br.com.centralit.framework.model.Filter;
23 import br.com.centralit.framework.model.NotificacaoGrupo; 29 import br.com.centralit.framework.model.NotificacaoGrupo;
24 import br.com.centralit.framework.model.NotificacaoUsuario; 30 import br.com.centralit.framework.model.NotificacaoUsuario;
  31 +import br.com.centralit.framework.model.SearchParams;
  32 +import br.com.centralit.framework.util.ConstantsQuery;
25 import br.com.centralit.framework.util.UtilColecao; 33 import br.com.centralit.framework.util.UtilColecao;
26 import br.com.centralit.framework.util.UtilObjeto; 34 import br.com.centralit.framework.util.UtilObjeto;
27 35
@@ -153,16 +161,42 @@ public class NotificacaoRessuprimentoJob implements Job { @@ -153,16 +161,42 @@ public class NotificacaoRessuprimentoJob implements Job {
153 161
154 final Collection<ConfiguracaoNotificacaoRessuprimentoUsuario> listaUsuarios = this.configuracaoUsuarioService.findPorIdConfiguracaoNotificacao(configuracao.getId()); 162 final Collection<ConfiguracaoNotificacaoRessuprimentoUsuario> listaUsuarios = this.configuracaoUsuarioService.findPorIdConfiguracaoNotificacao(configuracao.getId());
155 163
  164 + String emailDestinatario = "";
  165 + String nomeDestinatario = "";
  166 + String mensagem = "";
  167 +
156 if (!UtilColecao.isVazio(listaGrupos)) { 168 if (!UtilColecao.isVazio(listaGrupos)) {
157 169
158 for (final ConfiguracaoNotificacaoRessuprimentoGrupo configuracaoGrupo : listaGrupos) { 170 for (final ConfiguracaoNotificacaoRessuprimentoGrupo configuracaoGrupo : listaGrupos) {
159 171
160 - final NotificacaoGrupo notificacaoGrupo = new NotificacaoGrupo(configuracaoGrupo.getGrupo(), configuracao.getNotificacao()); 172 + NotificacaoGrupo notificacaoGrupo = null;
  173 +
  174 + SearchParams params = new SearchParams();
  175 + params.setFilters(Arrays.asList(new Filter[]{new Filter("notificacao.id", ConstantsQuery.TYPE_NUMERIC, configuracao.getNotificacao().getId().toString(), ConstantsQuery.COMPARE_EQUALS)}));
  176 + params.setStart(0);
  177 + params.setLimit(Integer.MAX_VALUE);
  178 +
  179 + params.setFields(Arrays.asList(new String[]{"grupo.email", "grupo.nome", "notificacao.mensagem"}));
161 180
162 - this.notificacaoGrupoService.save(notificacaoGrupo); 181 + List<Object> search = this.notificacaoGrupoService.search(new SearchSeven(params));
  182 +
  183 + if(UtilColecao.isVazio(search)){
  184 + notificacaoGrupo = new NotificacaoGrupo(configuracaoGrupo.getGrupo(), configuracao.getNotificacao());
  185 + this.notificacaoGrupoService.save(notificacaoGrupo);
  186 +
  187 + emailDestinatario = notificacaoGrupo.getGrupo().getEmail();
  188 + nomeDestinatario = notificacaoGrupo.getGrupo().getNome();
  189 + mensagem = notificacaoGrupo.getNotificacao().getMensagem();
  190 +
  191 + }else{
  192 + Object[] values = (Object[]) search.get(0);
  193 + emailDestinatario = (String) values[0];
  194 + nomeDestinatario = (String) values[1];
  195 + mensagem = (String) values[2];
  196 + }
163 197
164 if(HTMLMail.permiteEnvioEmail){ 198 if(HTMLMail.permiteEnvioEmail){
165 - this.notificacaoUsuarioService.sendNotificacaoEmailGrupo(notificacaoGrupo); 199 + this.notificacaoUsuarioService.sendNotificacaoEmailGrupo(emailDestinatario, nomeDestinatario, mensagem);
166 } 200 }
167 201
168 NotificacaoRessuprimentoJob.logger.info("Inclusão da Notificação para o grupo: " + configuracaoGrupo.getGrupo().getNome()); 202 NotificacaoRessuprimentoJob.logger.info("Inclusão da Notificação para o grupo: " + configuracaoGrupo.getGrupo().getNome());
@@ -174,12 +208,32 @@ public class NotificacaoRessuprimentoJob implements Job { @@ -174,12 +208,32 @@ public class NotificacaoRessuprimentoJob implements Job {
174 208
175 for (final ConfiguracaoNotificacaoRessuprimentoUsuario configuracaoUsuario : listaUsuarios) { 209 for (final ConfiguracaoNotificacaoRessuprimentoUsuario configuracaoUsuario : listaUsuarios) {
176 210
177 - final NotificacaoUsuario notificacaoUsuario = new NotificacaoUsuario(configuracao.getNotificacao(), configuracaoUsuario.getUsuario()); 211 + NotificacaoUsuario notificacaoUsuario = null;
178 212
179 - this.notificacaoUsuarioService.save(notificacaoUsuario); 213 + SearchParams params = new SearchParams();
  214 + params.setFilters(Arrays.asList(new Filter[]{new Filter("notificacao.id", ConstantsQuery.TYPE_NUMERIC, configuracao.getNotificacao().getId().toString(), ConstantsQuery.COMPARE_EQUALS)}));
  215 + params.setStart(0);
  216 + params.setLimit(Integer.MAX_VALUE);
  217 + params.setFields(Arrays.asList(new String[]{"usuario.email", "usuario.username", "notificacao.mensagem"}));
  218 + List<Object> search = this.notificacaoUsuarioService.search(new SearchSeven(params));
  219 +
  220 + if(UtilColecao.isVazio(search)){
  221 + notificacaoUsuario = new NotificacaoUsuario(configuracao.getNotificacao(), configuracaoUsuario.getUsuario());
  222 + this.notificacaoUsuarioService.save(notificacaoUsuario);
  223 +
  224 + emailDestinatario = notificacaoUsuario.getUsuario().getEmail();
  225 + nomeDestinatario = notificacaoUsuario.getUsuario().getUsername();
  226 + mensagem = notificacaoUsuario.getNotificacao().getMensagem();
  227 +
  228 + }else{
  229 + Object[] values = (Object[]) search.get(0);
  230 + emailDestinatario = (String) values[0];
  231 + nomeDestinatario = (String) values[1];
  232 + mensagem = (String) values[2];
  233 + }
180 234
181 if(HTMLMail.permiteEnvioEmail){ 235 if(HTMLMail.permiteEnvioEmail){
182 - this.notificacaoUsuarioService.sendNotificacaoEmail(notificacaoUsuario); 236 + this.notificacaoUsuarioService.sendNotificacaoEmailGrupo(emailDestinatario, nomeDestinatario, mensagem);
183 } 237 }
184 238
185 NotificacaoRessuprimentoJob.logger.info("Inclusão da Notificação para o usuario:" + configuracaoUsuario.getUsuario().getUsername()); 239 NotificacaoRessuprimentoJob.logger.info("Inclusão da Notificação para o usuario:" + configuracaoUsuario.getUsuario().getUsername());
@@ -197,13 +251,13 @@ public class NotificacaoRessuprimentoJob implements Job { @@ -197,13 +251,13 @@ public class NotificacaoRessuprimentoJob implements Job {
197 * 251 *
198 * @param context 252 * @param context
199 * @param configuracao 253 * @param configuracao
200 - * 254 + *
201 * @return {@link Boolean} 255 * @return {@link Boolean}
202 */ 256 */
203 private Boolean validarQtdAtualMaterial(JobExecutionContext context, ConfiguracaoNotificacaoRessuprimento configuracao) { 257 private Boolean validarQtdAtualMaterial(JobExecutionContext context, ConfiguracaoNotificacaoRessuprimento configuracao) {
204 258
205 BigDecimal qtdMaterialEstoque = BigDecimal.ZERO; 259 BigDecimal qtdMaterialEstoque = BigDecimal.ZERO;
206 - 260 +
207 try { 261 try {
208 urlScheme = (String) context.getScheduler().getContext().get("scheme"); 262 urlScheme = (String) context.getScheduler().getContext().get("scheme");
209 urlHost = (String) context.getScheduler().getContext().get("host"); 263 urlHost = (String) context.getScheduler().getContext().get("host");
@@ -212,7 +266,7 @@ public class NotificacaoRessuprimentoJob implements Job { @@ -212,7 +266,7 @@ public class NotificacaoRessuprimentoJob implements Job {
212 } catch (SchedulerException e) { 266 } catch (SchedulerException e) {
213 e.printStackTrace(); 267 e.printStackTrace();
214 } 268 }
215 - 269 +
216 return qtdMaterialEstoque.compareTo(BigDecimal.ZERO) > 0 && qtdMaterialEstoque.compareTo(configuracao.getLimiteEstoque()) <= 0; 270 return qtdMaterialEstoque.compareTo(BigDecimal.ZERO) > 0 && qtdMaterialEstoque.compareTo(configuracao.getLimiteEstoque()) <= 0;
217 } 271 }
218 272
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/BaixaAlmoxarifadoServiceImpl.java
@@ -20,6 +20,7 @@ import br.com.centralit.api.service.ConfiguracaoParametroSistemaService; @@ -20,6 +20,7 @@ import br.com.centralit.api.service.ConfiguracaoParametroSistemaService;
20 import br.com.centralit.api.service.DominioService; 20 import br.com.centralit.api.service.DominioService;
21 import br.com.centralit.api.service.EntradaAlmoxarifadoItemService; 21 import br.com.centralit.api.service.EntradaAlmoxarifadoItemService;
22 import br.com.centralit.api.service.EstruturaOrganizacionalService; 22 import br.com.centralit.api.service.EstruturaOrganizacionalService;
  23 +import br.com.centralit.api.service.InternacionalizacaoService;
23 import br.com.centralit.api.service.MaterialConsumoService; 24 import br.com.centralit.api.service.MaterialConsumoService;
24 import br.com.centralit.api.service.MaterialEstoqueSaldoMedioService; 25 import br.com.centralit.api.service.MaterialEstoqueSaldoMedioService;
25 import br.com.centralit.api.service.MovimentoEstoqueService; 26 import br.com.centralit.api.service.MovimentoEstoqueService;
@@ -106,15 +107,20 @@ public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;BaixaAlmoxa @@ -106,15 +107,20 @@ public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;BaixaAlmoxa
106 /** Atributo baixaAlmoxarifadoItemService. */ 107 /** Atributo baixaAlmoxarifadoItemService. */
107 @Autowired 108 @Autowired
108 private BaixaAlmoxarifadoItemService baixaAlmoxarifadoItemService; 109 private BaixaAlmoxarifadoItemService baixaAlmoxarifadoItemService;
109 - 110 +
110 @Autowired 111 @Autowired
111 - private EntradaAlmoxarifadoItemService entradaAlmoxarifadoItemService;  
112 - 112 + private EntradaAlmoxarifadoItemService entradaAlmoxarifadoItemService;
  113 +
113 @Autowired 114 @Autowired
114 private MaterialEstoqueSaldoMedioService materialEstoqueSaldoMedioService; 115 private MaterialEstoqueSaldoMedioService materialEstoqueSaldoMedioService;
115 116
116 @Autowired 117 @Autowired
117 - private ConfiguracaoParametroSistemaService configuracaoParametroSistemaService; 118 + private ConfiguracaoParametroSistemaService configuracaoParametroSistemaService;
  119 +
  120 + @Autowired
  121 + private InternacionalizacaoService internacionalizacaoService;
  122 +
  123 + private Dominio idioma;
118 124
119 @Autowired 125 @Autowired
120 public BaixaAlmoxarifadoServiceImpl( final BaixaAlmoxarifadoDao baixaAlmoxarifadoDao, @Qualifier("baixaAlmoxarifadoValidator") final Validator validator ) { 126 public BaixaAlmoxarifadoServiceImpl( final BaixaAlmoxarifadoDao baixaAlmoxarifadoDao, @Qualifier("baixaAlmoxarifadoValidator") final Validator validator ) {
@@ -132,12 +138,12 @@ public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;BaixaAlmoxa @@ -132,12 +138,12 @@ public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;BaixaAlmoxa
132 this.montarObjetoBaixa(entity); 138 this.montarObjetoBaixa(entity);
133 139
134 entity = super.save(entity); 140 entity = super.save(entity);
135 - 141 +
136 configurarNumeroBaixa(entity); 142 configurarNumeroBaixa(entity);
137 - 143 +
138 salvaTotaisBaixaItem(entity); 144 salvaTotaisBaixaItem(entity);
139 -  
140 - entity = super.save(entity); 145 +
  146 + entity = super.save(entity);
141 147
142 //Esse metodo gera os movimentos no estoque no contabil 148 //Esse metodo gera os movimentos no estoque no contabil
143 this.movimentoEstoqueService.gerarMovimentoBaixa(entity); 149 this.movimentoEstoqueService.gerarMovimentoBaixa(entity);
@@ -152,11 +158,9 @@ public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;BaixaAlmoxa @@ -152,11 +158,9 @@ public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;BaixaAlmoxa
152 158
153 this.montarObjetoBaixa(entity); 159 this.montarObjetoBaixa(entity);
154 160
155 - entity = super.merge(entity);  
156 -  
157 salvaTotaisBaixaItem(entity); 161 salvaTotaisBaixaItem(entity);
158 -  
159 - entity = super.merge(entity); 162 +
  163 + entity = super.merge(entity);
160 164
161 this.movimentoEstoqueService.atualizarMovimentoBaixa(entity); 165 this.movimentoEstoqueService.atualizarMovimentoBaixa(entity);
162 166
@@ -257,11 +261,15 @@ public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;BaixaAlmoxa @@ -257,11 +261,15 @@ public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;BaixaAlmoxa
257 this.validarQtdItemAlmoxarifado(baixaItem); 261 this.validarQtdItemAlmoxarifado(baixaItem);
258 262
259 baixaItem.setBaixaAlmoxarifado(baixa); 263 baixaItem.setBaixaAlmoxarifado(baixa);
260 - 264 +
261 baixaItem.setMaterialConsumo(this.materialConsumoService.getReference(baixaItem.getMaterialConsumo().getId())); 265 baixaItem.setMaterialConsumo(this.materialConsumoService.getReference(baixaItem.getMaterialConsumo().getId()));
262 } 266 }
263 } 267 }
264 268
  269 + if(UtilObjeto.isReferencia(baixa.getId()) && baixa.getOrganizacao() == null){
  270 + baixa.setOrganizacao(this.find(baixa.getId()).getOrganizacao());
  271 + }
  272 +
265 } 273 }
266 274
267 /** 275 /**
@@ -289,23 +297,23 @@ public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;BaixaAlmoxa @@ -289,23 +297,23 @@ public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;BaixaAlmoxa
289 297
290 if (itemAtual.getQuantidade().add(baixaItem.getQtdEstoque()).compareTo(baixaItem.getQuantidade()) > 0) { 298 if (itemAtual.getQuantidade().add(baixaItem.getQtdEstoque()).compareTo(baixaItem.getQuantidade()) > 0) {
291 299
292 - throw new BusinessException(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, CodigoErro.REGRA_NEGOCIO.getValue()); 300 + throw new BusinessException(this.internacionalizacaoService.getTranslate(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
293 301
294 } else { 302 } else {
295 if (baixaItem.getQuantidade().compareTo(itemAtual.getQuantidade().add(baixaItem.getQtdEstoque())) > 0) { 303 if (baixaItem.getQuantidade().compareTo(itemAtual.getQuantidade().add(baixaItem.getQtdEstoque())) > 0) {
296 304
297 - throw new BusinessException(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, CodigoErro.REGRA_NEGOCIO.getValue()); 305 + throw new BusinessException(this.internacionalizacaoService.getTranslate(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
298 } 306 }
299 } 307 }
300 } else if (baixaItem.getQuantidade().compareTo(baixaItem.getQtdEstoque()) > 0 && baixaItem.getQuantidade().compareTo(itemAtual.getQuantidade().add(baixaItem.getQtdEstoque())) > 0) { 308 } else if (baixaItem.getQuantidade().compareTo(baixaItem.getQtdEstoque()) > 0 && baixaItem.getQuantidade().compareTo(itemAtual.getQuantidade().add(baixaItem.getQtdEstoque())) > 0) {
301 309
302 - throw new BusinessException(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, CodigoErro.REGRA_NEGOCIO.getValue()); 310 + throw new BusinessException(this.internacionalizacaoService.getTranslate(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
303 } 311 }
304 } else { 312 } else {
305 313
306 if (baixaItem.getQuantidade().compareTo(baixaItem.getQtdEstoque()) > 0) { 314 if (baixaItem.getQuantidade().compareTo(baixaItem.getQtdEstoque()) > 0) {
307 315
308 - throw new BusinessException(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, CodigoErro.REGRA_NEGOCIO.getValue()); 316 + throw new BusinessException(this.internacionalizacaoService.getTranslate(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
309 } 317 }
310 } 318 }
311 } 319 }
@@ -407,15 +415,15 @@ public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;BaixaAlmoxa @@ -407,15 +415,15 @@ public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;BaixaAlmoxa
407 415
408 entity.setNumeroBaixa(codigo); 416 entity.setNumeroBaixa(codigo);
409 } 417 }
410 - 418 +
411 private void salvaTotaisBaixaItem(BaixaAlmoxarifado baixa){ 419 private void salvaTotaisBaixaItem(BaixaAlmoxarifado baixa){
412 if (!UtilColecao.isVazio(baixa.getBaixaItens())) { 420 if (!UtilColecao.isVazio(baixa.getBaixaItens())) {
413 421
414 // salva os totais na baixa conforme metodo de avalicao monetaria 422 // salva os totais na baixa conforme metodo de avalicao monetaria
415 - for (final BaixaAlmoxarifadoItem baixaItem : baixa.getBaixaItens()) {  
416 - 423 + for (final BaixaAlmoxarifadoItem baixaItem : baixa.getBaixaItens()) {
  424 +
417 String tipoAvaliacao = this.configuracaoParametroSistemaService.getParametro("TIPO_AVALIACAO_MONETARIA_ESTOQUE", baixa.getOrganizacao().getId()).getValor(); 425 String tipoAvaliacao = this.configuracaoParametroSistemaService.getParametro("TIPO_AVALIACAO_MONETARIA_ESTOQUE", baixa.getOrganizacao().getId()).getValor();
418 - 426 +
419 if (tipoAvaliacao.equals(DominioAlmoxarifado.TIPO_AVALIACAO_MONETARIA_FIFO_NOME)){ 427 if (tipoAvaliacao.equals(DominioAlmoxarifado.TIPO_AVALIACAO_MONETARIA_FIFO_NOME)){
420 BigDecimal valorMovimentoFIFO = this.entradaAlmoxarifadoItemService.realizaMovimentoSaida(baixaItem.getMaterialConsumo(), baixaItem.getQuantidade()); 428 BigDecimal valorMovimentoFIFO = this.entradaAlmoxarifadoItemService.realizaMovimentoSaida(baixaItem.getMaterialConsumo(), baixaItem.getQuantidade());
421 baixaItem.setTotal(valorMovimentoFIFO); 429 baixaItem.setTotal(valorMovimentoFIFO);
@@ -424,7 +432,14 @@ public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;BaixaAlmoxa @@ -424,7 +432,14 @@ public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl&lt;BaixaAlmoxa
424 baixaItem.setTotal(valorMovimentoMediaMovel); 432 baixaItem.setTotal(valorMovimentoMediaMovel);
425 } 433 }
426 } 434 }
427 - } 435 + }
  436 + }
  437 +
  438 + public Dominio getIdioma() {
  439 + if(!UtilObjeto.isReferencia(idioma)){
  440 + idioma = this.dominioService.findByChaveAndCodigo("tipoIdioma", Dominio.TIPO_IDIOMA_PT_BR_CODIGO);
  441 + }
  442 + return idioma;
428 } 443 }
429 444
430 } 445 }