diff --git a/src/java/com/rjconsultores/ventaboletos/web/cliente/conf/database.properties b/src/java/com/rjconsultores/ventaboletos/web/cliente/conf/database.properties new file mode 100644 index 000000000..efff4d709 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/cliente/conf/database.properties @@ -0,0 +1,31 @@ +################################################################################ +#CONFIGURACAO DATASOURCE +database.jndi.name=java:/sco +database.jndi.resourceRef=false + +#Banco de backup - Utilizado em relatórios +#!!!!!!!!!!!!!!!!!!!!!!Nunca mudar o datasource de leitura abaixo!!!!!!!!!!!!!!!!!!!!!! +database.read.jndi.name=java:/sco_read +database.read.jndi.resourceRef=false + +database.rds=true +#CONEXION PRUEBAS +database.url=jdbc:oracle:thin:@10.17.55.116:1521:XE +#database.url=jdbc:oracle:thin:@sistema.grupoguanabara.net.br:1521/ORCL +#database.username=vtabol +#database.password=vtax05 +#database.url=jdbc:oracle:thin:@producao.grupoguanabara.net.br:1521/ORCL +#database.username=vtabol +#database.password=prodx05 +database.username=vtabol_sco +database.password=vtax05 +################################################################################ +#CONFIGURACAO HIBERNATE +database.showSql=false +database.generateDdl=false +database.dialect=org.hibernate.dialect.Oracle10gDialect +database.driver=oracle.jdbc.OracleDriver +database.batch_size=50 +database.order_inserts=true +database.order_updates=true +database.jdbc.batch_versioned_data=true \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/cliente/conf/log4j.xml b/src/java/com/rjconsultores/ventaboletos/web/cliente/conf/log4j.xml new file mode 100644 index 000000000..52104b5df --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/cliente/conf/log4j.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/BusquedaImagemController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/BusquedaImagemController.java new file mode 100644 index 000000000..a283a0110 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/BusquedaImagemController.java @@ -0,0 +1,137 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.web.gui.controladores.catalogos; + +import java.util.HashMap; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.util.resource.Labels; +import org.zkoss.zhtml.Messagebox; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zul.Paging; +import org.zkoss.zul.Textbox; + +import com.rjconsultores.ventaboletos.entidad.Imagem; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; +import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject; +import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderImagem; + +@Controller("busquedaImagemController") +@Scope("prototype") +public class BusquedaImagemController extends MyGenericForwardComposer { + + @Autowired + private transient PagedListWrapper plwImagem; + private MyListbox imagemList; + private Paging pagingImagem; + private Textbox txtNome; + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + + imagemList.setItemRenderer(new RenderImagem()); + imagemList.addEventListener("onDoubleClick", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + Imagem c = (Imagem) imagemList.getSelected(); + verImagem(c); + } + }); + + refreshLista(); + + txtNome.focus(); + } + + private void verImagem(Imagem imagem) { + if (imagem == null) { + return; + } + + Map args = new HashMap(); + args.put("busquedaImagemController", this); + args.put("imagem", imagem); + args.put("imagemList", imagemList); + + openWindow("/gui/catalogos/editarImagem.zul", + Labels.getLabel("editarImagemController.window.title"), args, MODAL); + } + + public void refreshLista() { + HibernateSearchObject imagemBusqueda = new HibernateSearchObject(Imagem.class, + pagingImagem.getPageSize()); + + imagemBusqueda.addFilterLike("nombImagem", + "%" + txtNome.getText().trim().concat("%")); + + imagemBusqueda.addSortAsc("nombImagem"); + imagemBusqueda.addFilterEqual("activo", Boolean.TRUE); + + plwImagem.init(imagemBusqueda, imagemList, pagingImagem); + + if (imagemList.getData().length == 0) { + try { + Messagebox.show(Labels.getLabel("MSG.ningunRegistro"), + Labels.getLabel("busquedaMarcaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + } catch (InterruptedException ex) { + } + } + } + + public void onClick$btnPesquisa(Event ev) { + refreshLista(); + } + + public void onClick$btnRefresh(Event ev) { + refreshLista(); + } + + public void onClick$btnNovo(Event ev) { + verImagem(new Imagem()); + } + + public Textbox getTxtNome() { + return txtNome; + } + + public void setTxtNome(Textbox txtNome) { + this.txtNome = txtNome; + } + + public PagedListWrapper getPlwImagem() { + return plwImagem; + } + + public void setPlwImagem(PagedListWrapper plwImagem) { + this.plwImagem = plwImagem; + } + + public MyListbox getImagemList() { + return imagemList; + } + + public void setImagemList(MyListbox imagemList) { + this.imagemList = imagemList; + } + + public Paging getPagingImagem() { + return pagingImagem; + } + + public void setPagingImagem(Paging pagingImagem) { + this.pagingImagem = pagingImagem; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarImagemController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarImagemController.java new file mode 100644 index 000000000..25288f2e4 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarImagemController.java @@ -0,0 +1,322 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.web.gui.controladores.catalogos; + +import java.io.IOException; +import java.util.Calendar; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletContext; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.util.resource.Labels; +import org.zkoss.zhtml.Messagebox; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.Executions; +import org.zkoss.zk.ui.UiException; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.UploadEvent; +import org.zkoss.zul.Button; +import org.zkoss.zul.Combobox; +import org.zkoss.zul.Image; + +import com.rjconsultores.ventaboletos.constantes.Constantes; +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Imagem; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.service.ImagemService; +import com.rjconsultores.ventaboletos.utilerias.Application; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; +import com.rjconsultores.ventaboletos.web.utilerias.MyTextbox; +import com.rjconsultores.ventaboletos.web.utilerias.servlet.ImageServlet; +import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; + +@Controller("editarImagemController") +@Scope("prototype") +public class EditarImagemController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + @Autowired + private ImagemService imagemService; + @Autowired + private EmpresaService empresaService; + private Imagem imagem; + private List lsEmpresa; + private MyListbox imagemList; + private BusquedaImagemController busquedaImagemController; + private Image img; + private MyTextbox txtNome; + private Button btnApagar; + private static Logger log = Logger.getLogger(EditarImagemController.class); + private Combobox cmbEmpresa; + + @Override + public void doAfterCompose(Component comp) throws Exception { + + lsEmpresa = empresaService.obtenerTodos(); + super.doAfterCompose(comp); + + imagem = (Imagem) Executions.getCurrent().getArg().get("imagem"); + busquedaImagemController = (BusquedaImagemController) Executions.getCurrent().getArg().get("busquedaImagemController"); + if (imagem.getNombImagem() != null) { + img.setContent(new org.zkoss.image.AImage(imagem.getNombImagem(), + imagem.getImagem())); + } + imagemList = (MyListbox) Executions.getCurrent().getArg().get("imagemList"); + + if (imagem.getImagemId() == null) { + btnApagar.setVisible(Boolean.FALSE); + }else{ + txtNome.setDisabled(true); + } + + txtNome.focus(); + } + + public void uploadPhoto(UploadEvent event) { + org.zkoss.util.media.Media media = event.getMedia(); + + try { + if (media instanceof org.zkoss.image.Image) { + img.setContent(new org.zkoss.image.AImage(media.getName(), + media.getStreamData())); + } else { + Messagebox.show( + Labels.getLabel("editarMarcaController.MSG.errorIMG") + " " + media, + Labels.getLabel("editarMarcaController.window.title"), + Messagebox.OK, Messagebox.ERROR); + } + } catch (IOException ex) { + log.error(ex); + throw UiException.Aide.wrap(ex); + } catch (InterruptedException ex) { + log.error(ex); + throw UiException.Aide.wrap(ex); + } + } + + public void onClick$btnSalvar(Event ev) throws InterruptedException { + txtNome.getText(); + try { + String nomeImagem = imagem.getNombImagem(); + List lsImagens = imagemService.buscar(nomeImagem); + boolean podeSalvar = false; + if (lsImagens.isEmpty()) { + podeSalvar = true; + } else { + for (Imagem m : lsImagens) { + if (m.getImagemId().equals(imagem.getImagemId())) { + podeSalvar = true; + } + } + } + + if (podeSalvar) { + imagem.setActivo(Boolean.TRUE); + imagem.setFecmodif(Calendar.getInstance().getTime()); + imagem.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + + if (img.getContent() != null) { + imagem.setImagem(img.getContent().getByteData()); + } + + if (imagem.getImagem() == null) { + int resp = Messagebox.show( + Labels.getLabel("editarMarcaController.MSG.SinImagenPergunta"), + Labels.getLabel("editarMarcaController.window.title"), + Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); + + if (resp == Messagebox.YES) { + if (imagem.getImagemId() == null) { + imagemService.suscribir(imagem); + imagemList.addItem(imagem); + + Messagebox.show( + Labels.getLabel("editarMarcaController.MSG.suscribirOK"), + Labels.getLabel("editarMarcaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + + closeWindow(); + Executions.getCurrent().sendRedirect(""); + } else { + imagemService.actualizacion(imagem); + imagemList.updateItem(imagem); + + Messagebox.show( + Labels.getLabel("editarMarcaController.MSG.suscribirOK"), + Labels.getLabel("editarMarcaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + + closeWindow(); + Executions.getCurrent().sendRedirect(""); + } + } + } else { + if (imagem.getImagemId() == null) { + imagemService.suscribir(imagem); + imagemList.addItem(imagem); + } else { + imagemService.actualizacion(imagem); + imagemList.updateItem(imagem); + } + + sendUpdateImage(); + + Messagebox.show( + Labels.getLabel("editarMarcaController.MSG.suscribirOK"), + Labels.getLabel("editarMarcaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + busquedaImagemController.refreshLista(); + closeWindow(); + Executions.getCurrent().sendRedirect(""); + } + } else { + Messagebox.show( + Labels.getLabel("MSG.Registro.Existe"), + Labels.getLabel("editarMarcaController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + } + } catch (Exception ex) { + log.error("editarMarcaController: " + ex); + Messagebox.show( + Labels.getLabel("MSG.Error"), + Labels.getLabel("editarMarcaController.window.title"), + Messagebox.OK, Messagebox.ERROR); + } + } + + public void onClick$btnApagar(Event ev) { + try { + int resp = Messagebox.show( + Labels.getLabel("editarMarcaController.MSG.borrarPergunta"), + Labels.getLabel("editarMarcaController.window.title"), + Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); + + if (resp == Messagebox.YES) { + imagemService.borrar(imagem); + + Messagebox.show( + Labels.getLabel("editarMarcaController.MSG.borrarOK"), + Labels.getLabel("editarMarcaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + + imagemList.removeItem(imagem); + + closeWindow(); + } + } catch (Exception ex) { + log.error(ex); + } + } + + private void sendUpdateImage() { + + try { + + Set images = new HashSet(); + images.add(Constantes.IMAGEM_EMPRESA); + images.add(Constantes.IMAGEM_EMPRESA_GENERICA); + + if (imagem != null && images.contains(imagem.getNombImagem())) { + Application application = (Application) AppContext.getApplicationContext().getBean("app"); + application.setImage(imagem); + } + + } catch (Exception e) { + log.error("", e); + } + } + + public ImagemService getImagemService() { + return imagemService; + } + + public void setImagemService(ImagemService imagemService) { + this.imagemService = imagemService; + } + + public EmpresaService getEmpresaService() { + return empresaService; + } + + public void setEmpresaService(EmpresaService empresaService) { + this.empresaService = empresaService; + } + + public Imagem getImagem() { + return imagem; + } + + public void setImagem(Imagem imagem) { + this.imagem = imagem; + } + + public List getLsEmpresa() { + return lsEmpresa; + } + + public void setLsEmpresa(List lsEmpresa) { + this.lsEmpresa = lsEmpresa; + } + + public MyListbox getImagemList() { + return imagemList; + } + + public void setImagemList(MyListbox imagemList) { + this.imagemList = imagemList; + } + + public BusquedaImagemController getBusquedaImagemController() { + return busquedaImagemController; + } + + public void setBusquedaImagemController(BusquedaImagemController busquedaImagemController) { + this.busquedaImagemController = busquedaImagemController; + } + + public Image getImg() { + return img; + } + + public void setImg(Image img) { + this.img = img; + } + + public MyTextbox getTxtNome() { + return txtNome; + } + + public void setTxtNome(MyTextbox txtNome) { + this.txtNome = txtNome; + } + + public Button getBtnApagar() { + return btnApagar; + } + + public void setBtnApagar(Button btnApagar) { + this.btnApagar = btnApagar; + } + + public Combobox getCmbEmpresa() { + return cmbEmpresa; + } + + public void setCmbEmpresa(Combobox cmbEmpresa) { + this.cmbEmpresa = cmbEmpresa; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyAppInit.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyAppInit.java index f5c87e0e1..c881cb262 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyAppInit.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyAppInit.java @@ -7,6 +7,7 @@ package com.rjconsultores.ventaboletos.web.utilerias; import javax.servlet.ServletContext; import javax.sql.DataSource; +import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.flywaydb.core.Flyway; import org.quartz.JobDetail; @@ -24,6 +25,7 @@ import org.zkoss.zk.ui.WebApp; import com.rjconsultores.ventaboletos.FlyWay; import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.service.ConstanteService; +import com.rjconsultores.ventaboletos.utilerias.Application; import com.rjconsultores.ventaboletos.utilerias.ApplicationProperties; import com.rjconsultores.ventaboletos.web.gui.controladores.job.GeneracionConferenciaMovimentoJob; import com.rjconsultores.ventaboletos.web.gui.controladores.job.GeneracionCorridaJob; @@ -86,6 +88,7 @@ public class MyAppInit implements org.zkoss.zk.ui.util.WebAppInit { executeFlyway(); customToDatabase(); + imageToDatabase(); } @@ -116,12 +119,19 @@ public class MyAppInit implements org.zkoss.zk.ui.util.WebAppInit { } private void customToDatabase() { - + log.info("Executando customToDatabase..."); ApplicationProperties.getInstance().readConfigurationToDatabase(); - } - + + private void imageToDatabase() { + + log.info("Executando loadImageToDatabase..."); + ApplicationProperties.getInstance().loadImageToDatabase("empresa.png", false); + ApplicationProperties.getInstance().loadImageToDatabase("empresa_generica.png", true); + ApplicationProperties.getInstance().singletonImage(); + } + private boolean ipBloqueadoGeracaoServico() { Constante constanteServidorException = getConstanteService().buscarPorNomeConstante("SERVIDOR_EXCEPCION_GENERACION_CORRIDA"); String ipConstante = constanteServidorException == null ? "" : constanteServidorException.getValorconstante(); @@ -320,6 +330,7 @@ public class MyAppInit implements org.zkoss.zk.ui.util.WebAppInit { DataSource ds = (DataSource) factory.getBean("dataSource"); return ds; } + private ConstanteService getConstanteService() { ApplicationContext appContext = AppContext.getApplicationContext(); BeanFactory factory = (BeanFactory) appContext; diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/catalogos/ItemMenuImagem.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/catalogos/ItemMenuImagem.java new file mode 100644 index 000000000..78730635f --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/catalogos/ItemMenuImagem.java @@ -0,0 +1,26 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class ItemMenuImagem extends DefaultItemMenuSistema { + + public ItemMenuImagem() { + super("indexController.mniImagem.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.CATALOGO.MENU.IMAGEM"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/catalogos/busquedaImagem.zul", + Labels.getLabel("busquedaImagemController.window.title"), + getArgs() ,desktop); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties index b19420b56..7eb44e580 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties @@ -13,6 +13,7 @@ catalogos.empresa=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalog catalogos.formaPago=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuFormaPago catalogos.grupoRuta=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuGrupoRuta catalogos.marcas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuMarcas +catalogos.imagem=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuImagem catalogos.monedas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuMoneda catalogos.pais=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuPais catalogos.plaza=com.rjconsultores.ventaboletos.web.utilerias.menu.item.catalogos.ItemMenuPlaza diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderImagem.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderImagem.java new file mode 100644 index 000000000..20b9374af --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderImagem.java @@ -0,0 +1,26 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.Imagem; + +public class RenderImagem implements ListitemRenderer { + + public void render(Listitem lstm, Object o) throws Exception { + Imagem imagem = (Imagem) o; + + Listcell lc = new Listcell(imagem.getImagemId().toString()); + lc.setParent(lstm); + + lc = new Listcell(imagem.getNombImagem()); + lc.setParent(lstm); + + lstm.setAttribute("data", imagem); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/servlet/ImageServlet.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/servlet/ImageServlet.java index c0a92776e..2aa4e7492 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/servlet/ImageServlet.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/servlet/ImageServlet.java @@ -1,5 +1,6 @@ package com.rjconsultores.ventaboletos.web.utilerias.servlet; +import java.io.ByteArrayInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; @@ -13,10 +14,12 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.ApplicationContext; -import org.springframework.core.io.ClassPathResource; +import com.rjconsultores.ventaboletos.constantes.Constantes; import com.rjconsultores.ventaboletos.entidad.Constante; +import com.rjconsultores.ventaboletos.entidad.Imagem; import com.rjconsultores.ventaboletos.service.ConstanteService; +import com.rjconsultores.ventaboletos.utilerias.Application; import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; /** @@ -25,9 +28,10 @@ import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; public class ImageServlet extends HttpServlet { private static final long serialVersionUID = 1L; private static final String PATH_IMAGENES = "/com/rjconsultores/ventaboletos/web/cliente/imagenes/"; - private static final String IMAGENE_EMPRESA = "empresa.png"; - private static final String IMAGENE_EMPRESA_GENERICA = "empresa_generica.png"; +// private static final String IMAGENE_EMPRESA = "empresa.png"; +// private static final String IMAGENE_EMPRESA_GENERICA = "empresa_generica.png"; private static Boolean IMAGENE_EMPRESA_GENERICA_CHECKED = null; +// private static Imagem IMAGEM_EMPRESA_CARREGADA = null; /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) @@ -41,17 +45,21 @@ public class ImageServlet extends HttpServlet { // Open the file and output streams imagene = getNombreImagene(imagene); - InputStream in = getImagene(imagene); - OutputStream out = resp.getOutputStream(); - - // Copy the contents of the file to the output stream - byte[] buf = new byte[1024]; - int count = 0; - while ((count = in.read(buf)) >= 0) { - out.write(buf, 0, count); + InputStream in = getImagem(imagene); + if (in != null) { + OutputStream out = resp.getOutputStream(); + + // Copy the contents of the file to the output stream + byte[] buf = new byte[1024]; + int count = 0; + while ((count = in.read(buf)) >= 0) { + out.write(buf, 0, count); + } + in.close(); + out.close(); } - in.close(); - out.close(); + + } } catch (FileNotFoundException fnfe) { log("Arquivo da Imagem nao localizado"); @@ -67,7 +75,7 @@ public class ImageServlet extends HttpServlet { * @return */ private String getNombreImagene(String imagene){ - if (!imagene.equalsIgnoreCase(IMAGENE_EMPRESA)){ + if (!imagene.equalsIgnoreCase(Constantes.IMAGEM_EMPRESA)){ return imagene; } @@ -79,6 +87,7 @@ public class ImageServlet extends HttpServlet { ConstanteService constanteService = getConstanteService(); Constante constante = constanteService.buscarPorNomeConstante("IMAGENE_EMPRESA_GENERICA"); + if ( (constante != null) && StringUtils.isNotBlank(constante.getValorconstante())){ imageneGenericaEmpresaActivo= Boolean.parseBoolean(constante.getValorconstante()); @@ -87,9 +96,8 @@ public class ImageServlet extends HttpServlet { } - if ( (IMAGENE_EMPRESA_GENERICA_CHECKED != null) && (IMAGENE_EMPRESA_GENERICA_CHECKED) ){ - imagene = IMAGENE_EMPRESA_GENERICA; + imagene = Constantes.IMAGEM_EMPRESA_GENERICA; } return imagene; @@ -97,13 +105,33 @@ public class ImageServlet extends HttpServlet { } - private InputStream getImagene(String imagene) throws FileNotFoundException, IOException { + private InputStream getImagem(String imagene) { InputStream inputStream = null; try { - inputStream = new ClassPathResource(PATH_IMAGENES + imagene).getInputStream(); - } catch (FileNotFoundException fnfe) { - throw fnfe; - } catch (IOException e) { + Application application = (Application) AppContext.getApplicationContext().getBean("app"); + Imagem imagem = application.getImage(); + if ((imagem != null) && imagem.getImagem() != null) { + inputStream = getImagemLoaded(imagem.getImagem()); + } + } catch (Exception e) { + log("Erro ao carregar imagem do banco de dados."); + } finally { + if (inputStream != null) { + try { + inputStream.close(); + } catch (Exception e) { + } + } + } + return inputStream; + + } + + private InputStream getImagemLoaded(byte[] imagene) throws Exception { + InputStream inputStream = null; + try { + inputStream = new ByteArrayInputStream(imagene); + } catch (Exception e) { throw e; } return inputStream; @@ -116,4 +144,6 @@ public class ImageServlet extends HttpServlet { ConstanteService cs = (ConstanteService) factory.getBean("constanteService"); return cs; } + + } diff --git a/src/java/spring-config.xml b/src/java/spring-config.xml index 857eb7d91..b064efb2a 100644 --- a/src/java/spring-config.xml +++ b/src/java/spring-config.xml @@ -485,6 +485,7 @@ com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico com.rjconsultores.ventaboletos.entidad.LogHistoricoContingencia com.rjconsultores.ventaboletos.entidad.EmpresaTrocoSimples + com.rjconsultores.ventaboletos.entidad.Imagem @@ -521,6 +522,8 @@ + + diff --git a/web/gui/catalogos/busquedaImagem.zul b/web/gui/catalogos/busquedaImagem.zul new file mode 100644 index 000000000..2fe409ece --- /dev/null +++ b/web/gui/catalogos/busquedaImagem.zul @@ -0,0 +1,54 @@ + + + + + + + + + +