package gcom.gui.cobranca.cobrancaporresultado;
import gcom.batch.Processo;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
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 processar e importar o arquivo.
*
* [UC1182] Recepcionar Arquivo TXT Encerramento OS Cobran�a
*
* @author Mariana Victor
* @date 17/06/2011
*/
public class RegistrarArquivoTxtEncerramentoOSCobrancaAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("telaSucesso");
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado");
Fachada fachada = Fachada.getInstancia();
String idEmpresa = null;
Object[] parametrosFormulario = null;
FileItem arquivoInformado = null;
//ARQUIVO
try{
parametrosFormulario = recebendoObjetos(httpServletRequest);
} catch (FileUploadException e) {
throw new ActionServletException("erro.sistema", e);
}
arquivoInformado = (FileItem) parametrosFormulario[0];
idEmpresa = (String) parametrosFormulario[1];
// VALIDA��O DO ARQUIVO
// [FS0003 � Verificar exist�ncia de dados no arquivo]
// [FS0004 � Verificar exist�ncia do arquivo de empresa de cobran�a]
StringBuilder stringBuilder = fachada.validarArquivoTxtEncerramentoOSCobranca(arquivoInformado);
String[] nomeArquivoPartido = arquivoInformado.getName().split("\\.");
Map parametros = new HashMap();
parametros.put("idEmpresa", idEmpresa);
parametros.put("stringBuilder", stringBuilder);
parametros.put("nomeArquivo", nomeArquivoPartido[0]);
fachada.inserirProcessoIniciadoParametrosLivres(parametros,
Processo.PROCESSAR_ARQUIVO_TXT_ENCERRAMENTO_OS_COBRANCA, usuarioLogado);
//montando p�gina de sucesso
montarPaginaSucesso(httpServletRequest,
"Arquivo TXT para Encerramento de Ordens de Servi�o de Cobran�a Enviado para Processamento",
"Voltar",
"exibirRegistrarArquivoTxtEncerramentoOSCobrancaAction.do?menu=sim");
return retorno;
}
/**
* Realizando o upload do arquivo informado
*
* @author Mariana Victor
* @date 20/06/2011
*
* @param HttpServletRequest
*/
private Object[] recebendoObjetos(HttpServletRequest httpServletRequest) throws FileUploadException {
Object[] parametrosFormulario = new Object[2];
DiskFileUpload upload = new DiskFileUpload();
List itens = upload.parseRequest(httpServletRequest);
FileItem fileItem = null;
if (itens != null) {
Iterator iter = itens.iterator();
while (iter.hasNext()) {
fileItem = (FileItem) iter.next();
if (fileItem.getFieldName().equals("uploadPicture")) {
parametrosFormulario[0] = fileItem;
}
if (fileItem.getFieldName().equals("idEmpresa")) {
parametrosFormulario[1] = fileItem.getString();
}
}
}
return parametrosFormulario;
}
}