package gcom.gui.micromedicao;
import gcom.fachada.Fachada;
import gcom.faturamento.FaturamentoGrupo;
import gcom.faturamento.FiltroFaturamentoGrupo;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.micromedicao.medicao.MedicaoHistorico;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* Action respons�vel para dar um onLoad no arquivo e importar os ceps.
*
* @author S�vio Luiz, Raphael Rossiter
* @created 24/08/2005, 02/09/2009
*/
public class RegistrarLeiturasAnormalidadesAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("telaSucesso");
try {
String idFaturamentoGrupo = null;
String movimentoCelular = null;
DiskFileUpload upload = new DiskFileUpload();
FaturamentoGrupo faturamentoGrupo = null;
// UPLOAD DO ARQUIVO
List items = upload.parseRequest(httpServletRequest);
Fachada fachada = Fachada.getInstancia();
Collection<MedicaoHistorico> colecaoMedicaoHistorico = new ArrayList();
FileItem item = null;
// NOME DO ARQUIVO
String nomeItem = null;
Iterator iter = items.iterator();
while (iter.hasNext()) {
item = (FileItem) iter.next();
if (item.getFieldName().equals("idFaturamentoGrupo")) {
idFaturamentoGrupo = item.getString();
}
if (item.getFieldName().equals("movimentoCelular")) {
movimentoCelular = item.getString();
}
if (idFaturamentoGrupo != null && !idFaturamentoGrupo.equals("")){
//CARREGANDO OS DADOS DO GRUPO DE FATURAMENTO ONDE SER�O REGISTRADAS AS LEITURAS
FiltroFaturamentoGrupo filtroFaturamentoGrupo = new FiltroFaturamentoGrupo();
filtroFaturamentoGrupo.adicionarParametro(new ParametroSimples(
FiltroFaturamentoGrupo.ID, idFaturamentoGrupo));
Collection colecaoFaturamentoGrupo = fachada.pesquisar(filtroFaturamentoGrupo,
FaturamentoGrupo.class.getName());
if (colecaoFaturamentoGrupo != null && !colecaoFaturamentoGrupo.isEmpty()) {
faturamentoGrupo = (FaturamentoGrupo)
Util.retonarObjetoDeColecao(colecaoFaturamentoGrupo);
}
else {
throw new ActionServletException("atencao.entidade.inexistente",null,"Faturamento Grupo");
}
}
if (movimentoCelular != null) {
/*
* Caso o movimento seja proveniente de celular; ser� necess�rio recuperar os dados
* do movimento daquele grupo.
*/
if (movimentoCelular.equals("1")) {
//RECUPERANDO OS DADOS DAS MEDI��ES
colecaoMedicaoHistorico =
fachada.recuperarMedicoesHistorico(new Integer(idFaturamentoGrupo));
}
else {
// VERIFICA SE N�O FOI INFORMADO UM DIRET�RIO
if (!item.isFormField()) {
// COLOCA O NOME DO ARQUIVO PARA MAI�SCULO
nomeItem = item.getName().toUpperCase();
// VERIFICA SE O ARQUIVO EST� COM A EXTENS�O .TXT
if (nomeItem.endsWith(".TXT")) {
colecaoMedicaoHistorico = fachada.processarArquivoTextoParaRegistrarLeiturasAnormalidades(
new Integer(idFaturamentoGrupo), item);
}
else {
throw new ActionServletException("atencao.tipo_importacao.nao_txt");
}
}
}
}
}
//VARIFICANDO SE EXISTE ALGUMA MEDI��O DIPON�VEL PARA REGISTRAR
if (colecaoMedicaoHistorico != null && !colecaoMedicaoHistorico.isEmpty()) {
fachada.registrarLeiturasAnormalidades(colecaoMedicaoHistorico,
faturamentoGrupo.getId(), faturamentoGrupo.getAnoMesReferencia(),
getUsuarioLogado(httpServletRequest), nomeItem);
}
else if (movimentoCelular != null && movimentoCelular.endsWith("1")) {
throw new ActionServletException(
"atencao.movimento_roteiro_empresa_dados", null, idFaturamentoGrupo);
}
else {
throw new ActionServletException(
"atencao.arquivo_sem_dados", null, item.getName());
}
} catch (FileUploadException e) {
e.printStackTrace();
throw new ActionServletException("erro.sistema", e);
}
// MONTANDO A P�GINA DE SUCESSO
montarPaginaSucesso(httpServletRequest,
"Leituras e Anormalidades Enviado para Processamento",
"Voltar", "/exibirRegistrarLeiturasAnormalidadesAction.do");
return retorno;
}
}