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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/web/gui/catalogos/editarImagem.zul b/web/gui/catalogos/editarImagem.zul
new file mode 100644
index 000000000..7b73ea5ac
--- /dev/null
+++ b/web/gui/catalogos/editarImagem.zul
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+