public void efetuarCargaIndicadoresProdutosCOP() throws ECARException{
//ItemEstruturaDao itemDao = new ItemEstruturaDao(request);
//Buscando a estrutura de n�vel de projeto/atividade do PPA 2008-2011
EstruturaEtt estruturaProdutos = (EstruturaEtt) new EstruturaDao(request).buscar(EstruturaEtt.class, Long.valueOf(21));
Transaction tx = null;
try{
UsuarioUsu usuarioLogado = ((SegurancaECAR)request.getSession().getAttribute("seguranca")).getUsuario();
ArrayList objetos = new ArrayList();
super.inicializarLogBean();
msg("++++++++++++++++ [ Processo Iniciado ] ++++++++++++++++++++");
tx = session.beginTransaction();
msg("++++++++++++++++ [ Lendo Arquivo ] ++++++++++++++++++++");
BufferedReader in = new BufferedReader (new FileReader("/home/aleixo/cop/dadosProdutosOK.csv"));
//BufferedReader in = new BufferedReader (new FileReader("/home/aleixo/cop/dadosProdutos2604OK.csv"));
List<String> indicadoresIncluidos = new ArrayList<String>();
String linha="";
while ((linha=in.readLine()) != null) {
//ANOEXERCICIO; CODPAT; CODPRODUTOPAT; Obra(S/N); NOMEPRODUTOORC; DESCRPRODUTOPAT; SIGLAUNIDMEDIDA; QTDEPRODPATPREV; CODREGIAO; CODMUNICIPIO
String[] campos = linha.split(";");
String anoExe = campos[0].trim();
String siglaAcao = campos[1].trim();
String siglaProduto = campos[2].trim();
String indObra = campos[3].trim();
String nomeIndicador = Util.removeEspacosDuplicados(campos[4].trim());
String nomeProduto = Util.removeEspacosDuplicados(campos[5].trim());
String unidadeIndicador = campos[6].trim();
String valorPrevisto = campos[7].trim();
String codRegiao = campos[8].trim();
String codMunicipio = "";
if(campos.length == 10)
codMunicipio = campos[9].trim();
/* Buscando local do item*/
StringBuilder select = new StringBuilder();
select.append("select local from LocalItemLit local");
select.append(" where local.codPlanejamentoLit = :codLocal");
select.append(" and (local.localGrupoLgp.codLgp = 8 or local.localGrupoLgp.codLgp = 11)");
Query q = this.session.createQuery(select.toString());
q.setString("codLocal", (!"".equals(codMunicipio) ? codMunicipio : codRegiao)); //Se existir o municipio, o local vai ser o municipio, sen�o vai ser a regi�o
q.setMaxResults(1);
Object o = q.uniqueResult();
if(o == null){
if(!"".equals(codMunicipio))
lancarErro("Local invalido para Municipio: " + codMunicipio);
else
lancarErro("Local invalido para Regiao: " + codRegiao);
}
LocalItemLit local = (LocalItemLit) o;
if("".equals(valorPrevisto)){
lancarErro("Valor inv�lido: [" + valorPrevisto + "]");
}
ItemEstruturaIett iett = null;
// Gravar somente o indicador
//buscar o item para gravar o indicador
//iett = (ItemEstruturaIett) this.selectObjeto("ItemEstruturaIett", "siglaIett", STRING, siglaProduto, session);
select = new StringBuilder();
select.append("select item from ItemEstruturaIett item where item.nomeIett = :nome and item.estruturaEtt.codEtt = :codEtt and item.itemEstruturaIett.siglaIett = :siglaPai");
q = session.createQuery(select.toString());
q.setString("nome", nomeProduto);
q.setString("siglaPai", siglaAcao);
q.setLong("codEtt", estruturaProdutos.getCodEtt().longValue());
List itensTemp = q.list();
if(itensTemp != null && !itensTemp.isEmpty()){
iett = (ItemEstruturaIett) itensTemp.get(0);
}