package gcom.gui.atendimentopublico.ordemservico;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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;
/**
* [UC1225] Incluir Dados Acompanhamento de Servi�o
*
* Este caso de uso permite a inser��o de dados na tabela de ordem de servi�o para acompanhamento do servi�o.
*
* @author Th�lio Ara�jo
* @date 22/09/2011
*/
public class AtualizarOrdemServicoAcompanhamentoCelularAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("telaSucesso");
try {
DiskFileUpload upload = new DiskFileUpload();
// Parse the request
List itensForm = upload.parseRequest(httpServletRequest);
Iterator iteItensForm = itensForm.iterator();
Fachada fachada = Fachada.getInstancia();
while ( iteItensForm.hasNext() ){
FileItem item = ( FileItem )iteItensForm.next();
// Caso n�o seja um field do formulario
// � o arquivo
if ( !item.isFormField() ){
// Lemos
InputStreamReader reader = new InputStreamReader(item.getInputStream());
BufferedReader buffer = new BufferedReader(reader);
//[FS0002] - Verificar exist�ncia de dados no arquivo
//Caso o arquivo esteja sem dados, exibir a mensagem ?Arquivo <<nome do arquivo >> sem dados?
//e cancelar a opera��o.
if ( buffer != null ) {
fachada.retornoAtualizarOrdemServicoAcompanhamentoServico(buffer);
}else{
throw new ActionServletException("atencao.ordem_servico_atualiza_celular_sem_dados", item.getFieldName());
}
}
}
// montando p�gina de sucesso
montarPaginaSucesso(httpServletRequest,
"Ordem Servi�o Movimento Celular Atualizado com sucesso",
"Voltar",
"/exibirAtualizarOrdemServicoAcompanhamentoCelularAction.do");
return retorno;
} catch (FileUploadException e) {
throw new ActionServletException("erro.atualizacao.nao_concluida");
} catch (IOException e) {
throw new ActionServletException("erro.atualizacao.nao_concluida");
}
}
}