package gcom.gui.cadastro;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
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;
/**
* implementa o m�todo de Informar no caso de uso [UC0491] Informar Ocorr�ncia de Cadastro e/ou Anormalidade de Elo
*
* @author Tiago Moreno
* @date 20/11/2006
*/
public class InformarOcorrenciaCadastroAnormalidadeEloAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
//instanciando a fachada
Fachada fachada = Fachada.getInstancia();
//setando o retorno para a tela de susseco
ActionForward retorno = actionMapping.findForward("telaSucesso");
//declarando as variaveis que serao recuperadas do form
String idImovel = null;
String idOcorrenciaCadastro = null;
String idAnormalidadeElo = null;
String dataOcorrenciaCadastro = null;
String dataAnormalidadeElo = null;
byte[] uploadPictureCadastro = null;
byte[] uploadPictureAnormalidade = null;
//essa rotina recupera os dados da Jsp inicial sem usar ActionForm
try {
DiskFileUpload upload = new DiskFileUpload();
//Parse the Request
List items = upload.parseRequest(httpServletRequest);
if (items != null) {
FileItem item = null;
//Pega uma Lista de Itens do Form
Iterator iter = items.iterator();
while (iter.hasNext()) {
item = (FileItem) iter.next();
if (item.getFieldName().equals("idImovel")) {
idImovel = item.getString();
}
if (item.getFieldName().equals("cadastroOcorrencia")) {
idOcorrenciaCadastro = item.getString();
}
if (item.getFieldName().equals("anormalidade")) {
idAnormalidadeElo = item.getString();
}
if (item.getFieldName().equals("dataOcorrenciaCadastro")) {
dataOcorrenciaCadastro = item.getString();
}
if (item.getFieldName().equals("dataAnormalidadeElo")) {
dataAnormalidadeElo = item.getString();
}
if (item.getFieldName().equals("uploadPictureCadastro")) {
if (item.get().length != 0){
//condiciona ao arquivo ser do tipo JPG ou GIF
if (item.getName().toUpperCase().endsWith(".JPG")){
//condiciona o arquivo ser menor que 300Kb ou 307200 Bytes
if (item.getSize() < 307200) {
uploadPictureCadastro = item.get();
}else {
throw new ActionServletException("atencao.imagem_tamanho_maximo_300kb");
}
} else {
throw new ActionServletException("atencao.arquivo_jpg_gif");
}
}
}
if (item.getFieldName().equals("uploadPictureAnormalidade")) {
if (item.get().length != 0){
//condiciona ao arquivo ser do tipo JPG ou GIF
if (item.getName().toUpperCase().endsWith(".JPG")){
//condiciona o arquivo ser menor que 300Kb ou 307200 Bytes
if (item.getSize() < 307200) {
uploadPictureAnormalidade = item.get();
}else {
throw new ActionServletException("atencao.imagem_tamanho_maximo");
}
} else {
throw new ActionServletException("atencao.arquivo_jpg_gif");
}
}
}
}
}
} catch (FileUploadException e) {
throw new ActionServletException("erro.sistema", e);
}
if (idOcorrenciaCadastro != null && !idOcorrenciaCadastro.equalsIgnoreCase("")){
if (dataOcorrenciaCadastro == null || dataOcorrenciaCadastro.equalsIgnoreCase("")){
throw new ActionServletException("atencao.data_ocorrencia");
}
}
if (idAnormalidadeElo != null && !idAnormalidadeElo.equalsIgnoreCase("")){
if (dataAnormalidadeElo == null || dataAnormalidadeElo.equalsIgnoreCase("")){
throw new ActionServletException("atencao.data_anormalidade");
}
}
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuarioLogado = (Usuario)sessao.getAttribute(Usuario.USUARIO_LOGADO);
Collection colecaoIdCadastroOcorrenciaRemover = (Collection) sessao.getAttribute("imovelCadastroOcorrenciaRemover");
Collection colecaoIdAnormalidadeRemover = (Collection) sessao.getAttribute("imovelAnormalidadeRemover");
//executando o metodo do ControladorImovel responsavel pelas validacoes e insercao no banco
fachada.informarOcorrenciaCadastroAnormalidadeElo(
idImovel,
idOcorrenciaCadastro,
idAnormalidadeElo,
dataOcorrenciaCadastro,
dataAnormalidadeElo,
uploadPictureCadastro,
uploadPictureAnormalidade,
usuarioLogado,
colecaoIdCadastroOcorrenciaRemover,
colecaoIdAnormalidadeRemover);
//montando pagina de sucesso
montarPaginaSucesso(httpServletRequest, "Ocorr�ncia e/ou Anormalidade do Im�vel inserida com sucesso.",
"Informar outro Ocorr�ncia/Anormalidade do Im�vel",
"exibirInformarOcorrenciaCadastroAnormalidadeEloAction.do?menu=sim");
return retorno;
}
}