0014278: Ativação da Contingência por Estado no módulo ADM

bug#14278
dev:emerson
qua:

Primeira parte

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@94043 d1611594-4594-4d17-8e1d-87c2c4800839
master
valdir 2019-05-31 20:38:25 +00:00
parent 010bc4c681
commit 38659aad5e
8 changed files with 529 additions and 0 deletions

View File

@ -0,0 +1,283 @@
/**
*
*/
package com.rjconsultores.ventaboletos.web.gui.controladores.seguridad;
import java.util.List;
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.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zul.Button;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Paging;
import org.zkoss.zul.Textbox;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Estado;
import com.rjconsultores.ventaboletos.entidad.LogHistoricoContingencia;
import com.rjconsultores.ventaboletos.service.ContingenciaService;
import com.rjconsultores.ventaboletos.service.EstadoService;
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.paginacion.HibernateSearchObject;
import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderHistoricoContingencia;
import com.trg.search.Filter;
/**
* @author vjcor
*
*/
@Controller("editarContigenciaController")
@Scope("prototype")
public class EditarContigenciaController extends MyGenericForwardComposer {
private static final long serialVersionUID = 1L;
private static Logger log = Logger.getLogger(EditarContigenciaController.class);
@Autowired
private ContingenciaService contigenciaService;
@Autowired
private EstadoService estadoService;
private List<Estado> lsEstado;
private Combobox cmbEmpresa;
private Combobox cmbEstado;
private List<Empresa> lsEmpresas;
private MyListbox historicoList;
private Button btnContingencia;
private Boolean setarContigencia;
private Textbox txtMotivo;
private Textbox txtStatus;
private Paging pagingHistorico;
@Autowired
private transient PagedListWrapper<LogHistoricoContingencia> plwLogContingencia;
@Override
public void doAfterCompose(Component comp) throws Exception {
lsEstado = estadoService.obtenerTodos();
lsEmpresas = UsuarioLogado.getUsuarioLogado().getEmpresa();
super.doAfterCompose(comp);
historicoList.setItemRenderer(new RenderHistoricoContingencia());
setarContigencia = false;
txtStatus.setDisabled(true);
cmbEmpresa.addEventListener("onChange", new EventListener() {
@Override
public void onEvent(Event arg0) throws Exception {
buscarHistoricoContigencia();
}
});
cmbEstado.addEventListener("onChange", new EventListener() {
@Override
public void onEvent(Event arg0) throws Exception {
buscarHistoricoContigencia();
}
});
btnContingencia.setDisabled(true);
}
public void onClick$btnContingencia(Event ev) {
try {
if (Messagebox.show("Deseja Continuar?", "Continuar?", Messagebox.YES | Messagebox.NO, Messagebox.QUESTION) == Messagebox.NO) {
return;
}
if("".equals(txtMotivo.getValue().trim())) {
try {
Messagebox.show("É necessário inserir o motivo da operação para continuar.",
Labels.getLabel("editarContigencia.window.title"),
Messagebox.OK, Messagebox.INFORMATION);
} catch (InterruptedException ex) {
}
return;
}
// TODO: setar status pelo servico criado pelo alberto de acordo com o boolean 'setarContigencia' definido anteriormente na pesquisa
// TODO: em caso de sucesso salvar o historico
LogHistoricoContingencia logHistorico = new LogHistoricoContingencia();
Comboitem itemEmpresa = cmbEmpresa.getSelectedItem();
Empresa empresa = (Empresa) itemEmpresa.getValue();
logHistorico.setEmpresa(empresa);
Comboitem itemEstado = cmbEstado.getSelectedItem();
Estado estado = (Estado) itemEstado.getValue();
logHistorico.setEstado(estado);
logHistorico.setMotivo(txtMotivo.getValue().trim());
contigenciaService.salvarHistoricoContingencia(logHistorico);
try {
Messagebox.show("Status alterado com sucesso.",
Labels.getLabel("editarContigencia.window.title"),
Messagebox.OK, Messagebox.INFORMATION);
} catch (InterruptedException ex) {
}
buscarHistoricoContigencia();
} catch (Exception e) {
log.error("Erro ao setar contingencia: " , e);
try {
Messagebox.show("Ocorreu um erro ao setar a contingencia",
Labels.getLabel("editarContigencia.window.title"),
Messagebox.OK, Messagebox.ERROR);
} catch (InterruptedException ex) {
}
}
}
private void verificarStatus() {
//TODO: buscar o status pelo servico e mostrar o status atual e alterar o label do botão de acordo com a acao que pode ser tomada
txtStatus.setValue("");
// TODO: setar o botao para contigencia caso for e mostrar p status
setarContigencia = true;
alterarTextoBotao();
}
private void buscarHistoricoContigencia() {
if(cmbEmpresa.getSelectedIndex() < 0 || cmbEstado.getSelectedIndex() < 0) {
log.info("Não foi seecionado empresa e/ou estado");
return;
}
txtMotivo.setValue("");
//Verifica o status do estado e seta os labels do botao e status
verificarStatus();
HibernateSearchObject<LogHistoricoContingencia> sistemaBusqueda = new HibernateSearchObject<LogHistoricoContingencia>
(LogHistoricoContingencia.class, pagingHistorico.getPageSize());
Comboitem itemEmpresa = cmbEmpresa.getSelectedItem();
Empresa empresa = (Empresa) itemEmpresa.getValue();
sistemaBusqueda.addFilter(Filter.equal("empresa", empresa));
Comboitem itemEstado = cmbEstado.getSelectedItem();
Estado estado = (Estado) itemEstado.getValue();
sistemaBusqueda.addFilter(Filter.equal("estado", estado));
sistemaBusqueda.addSortDesc("LogHistoricoContingenciaId");
plwLogContingencia.init(sistemaBusqueda, historicoList, pagingHistorico);
}
private void alterarTextoBotao() {
btnContingencia.setDisabled(false);
if(setarContigencia) {
btnContingencia.setLabel("SETAR CONTINGENCIA");
} else {
btnContingencia.setLabel("RETIRAR CONTINGENCIA");
}
}
public List<Estado> getLsEstado() {
return lsEstado;
}
public void setLsEstado(List<Estado> lsEstado) {
this.lsEstado = lsEstado;
}
public Combobox getCmbEmpresa() {
return cmbEmpresa;
}
public void setCmbEmpresa(Combobox cmbEmpresa) {
this.cmbEmpresa = cmbEmpresa;
}
public List<Empresa> getLsEmpresas() {
return lsEmpresas;
}
public void setLsEmpresas(List<Empresa> lsEmpresas) {
this.lsEmpresas = lsEmpresas;
}
public Combobox getCmbEstado() {
return cmbEstado;
}
public void setCmbEstado(Combobox cmbEstado) {
this.cmbEstado = cmbEstado;
}
public MyListbox getHistoricoList() {
return historicoList;
}
public void setHistoricoList(MyListbox historicoList) {
this.historicoList = historicoList;
}
public Paging getPagingHistorico() {
return pagingHistorico;
}
public void setPagingHistorico(Paging pagingHistorico) {
this.pagingHistorico = pagingHistorico;
}
public Button getBtnContingencia() {
return btnContingencia;
}
public void setBtnContingencia(Button btnContingencia) {
this.btnContingencia = btnContingencia;
}
public Textbox getTxtMotivo() {
return txtMotivo;
}
public void setTxtMotivo(Textbox txtMotivo) {
this.txtMotivo = txtMotivo;
}
public Textbox getTxtStatus() {
return txtStatus;
}
public void setTxtStatus(Textbox txtStatus) {
this.txtStatus = txtStatus;
}
}

View File

@ -0,0 +1,51 @@
package com.rjconsultores.ventaboletos.web.utilerias;
import org.apache.log4j.Logger;
/**
* @author vjcor
*
*/
public class ContingenciaUtils {
private static Logger log = Logger.getLogger(ContingenciaUtils.class);
private static ContingenciaUtils instance;
public static ContingenciaUtils getInstance() {
if(instance == null) {
instance = new ContingenciaUtils();
}
return instance;
}
private String buscarConstanteURL() {
//TODO: buscar constante com o valor da URL
return "http://10.20.30.157:8130";
}
private void verificarStatus(String uf, String ambiente, String cnpj) {
String uri = buscarConstanteURL().concat("/BPeRS/rest/adm/contingencia/tipoEmissaoEmpresa");
/*
String response = null;
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
HttpGet httpGet = new HttpGet(uri+"?uf=".concat(uf).concat("&ambiente=").concat(ambiente).concat("&cnpj=").concat(cnpj));
String encoding = Base64.getEncoder().encodeToString("rjconsultores:RJ#C0nsul10res@2019".getBytes());
httpGet.addHeader("Authorization", "Basic " + encoding);
httpGet.setHeader("Content-type", MediaType.APPLICATION_JSON);
httpGet.setHeader("accept", MediaType.APPLICATION_JSON);
try (CloseableHttpResponse httpResponse = httpClient.execute(httpGet)) {
response = EntityUtils.toString(httpResponse.getEntity());
}
} catch (IOException e) {
log.error("Erro: ", e);
}
log.info("[response] " + response);
*/
}
}

View File

@ -0,0 +1,26 @@
package com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad;
import org.zkoss.util.resource.Labels;
import com.rjconsultores.ventaboletos.constantes.ConstantesFuncionSistema;
import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria;
import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema;
public class ItemMenuContingencia extends DefaultItemMenuSistema {
public ItemMenuContingencia() {
super("indexController.mniTelaContingencia.label");
}
@Override
public String getClaveMenu() {
return ConstantesFuncionSistema.CLAVE_CONTINGENCIA;
}
@Override
public void ejecutar() {
PantallaUtileria.openWindow("/gui/seguridad/editarContingencia.zul",
Labels.getLabel("editarContigencia.window.title"), getArgs(), desktop);
}
}

View File

@ -259,6 +259,7 @@ seguridad.custom=com.rjconsultores.ventaboletos.web.utilerias.menu.item.segurida
seguridad.dispositivoVendaEmbarcada=com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad.ItemMenuDispositivoVendaEmbarcada
seguridad.autorizacaoSerieEmbarcada=com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad.ItemMenuAutorizacaoUsoSerieEmbarcada
seguridad.painelBpe=com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad.ItemMenuPainelBPe
seguridad.contingencia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad.ItemMenuContingencia
pasajerofrecuente=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.MenuPasajeroFrecuente
pasajerofrecuente.cliente=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.ItemMenuCliente
pasajerofrecuente.importarClientes=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.ItemMenuImportarClientes

View File

@ -0,0 +1,34 @@
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.LogHistoricoContingencia;
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
public class RenderHistoricoContingencia implements ListitemRenderer {
@Override
public void render(Listitem lstm, Object o) throws Exception {
LogHistoricoContingencia log = (LogHistoricoContingencia) o;
Listcell lc = new Listcell(log.getLogHistoricoContingenciaId().toString());
lc.setParent(lstm);
lc = new Listcell(log.getMotivo());
lc.setParent(lstm);
lc = new Listcell(log.getUsuario().getUsuarioId() + " - " + log.getUsuario().getName());
lc.setParent(lstm);
lc = new Listcell(DateUtil.getStringDateHour(log.getDataHora()));
lc.setParent(lstm);
lc = new Listcell(log.getStatus());
lc.setParent(lstm);
lstm.setAttribute("data", log);
}
}

View File

@ -8142,3 +8142,19 @@ relatorioReceitasDespesasDivController.msg.erro.empresa = Sem dados para gerar o
editarEmpresaController.permitirVendaEstudanteTotem.ajuda = Habilita la venta de pasajes para estudiantes en el Toten para la Empresa configurada. Se necesitará el número de fidelidad para la validación del paso. Para que esta configuración haga efecto es necesario habilitar la configuración 'Habilita Fidelidad'.
editarEmpresaController.permitirVendaEstudanteTotem = Habilitar la venta de pasajes para estudiantes en el tótem.
#Tela de contigencia
indexController.mniTelaContingencia.label=Contigência
editarContigencia.window.title=Contingência
editarContigencia.btnFechar.tooltiptext= Fechar
editarContigencia.estado.label = Estado
editarContigencia.empresa.label = Empresa
editarContigencia.status.label = Status
editarContigencia.motivo.label = Motivo
editarContigencia.btnSetarContingencia.label=Setar Contingência
editarContigencia.btnRetirarContingencia.label=Retirar Contingência
editarContigencia.tabela.id=ID
editarContigencia.tabela.motivo=MOTIVO
editarContigencia.tabela.usuario=USUARIO
editarContigencia.tabela.data=DATA
editarContigencia.tabela.status=STATUS

View File

@ -8637,3 +8637,19 @@ relatorioReceitasDespesasDivController.msg.erro.empresa = Sem dados para gerar o
#painelBpe
painelbpe.title=Painel BPe
painelbpe.message.naoconfigurado=Favor realizar a configuração do Painel BPe. O mesmo não se encontra configurado: {0}.
#Tela de contigencia
indexController.mniTelaContingencia.label=Contigência
editarContigencia.window.title=Contingência
editarContigencia.btnFechar.tooltiptext= Fechar
editarContigencia.estado.label = Estado
editarContigencia.empresa.label = Empresa
editarContigencia.status.label = Status
editarContigencia.motivo.label = Motivo
editarContigencia.btnSetarContingencia.label=Setar Contingência
editarContigencia.btnRetirarContingencia.label=Retirar Contingência
editarContigencia.tabela.id=ID
editarContigencia.tabela.motivo=MOTIVO
editarContigencia.tabela.usuario=USUARIO
editarContigencia.tabela.data=DATA
editarContigencia.tabela.status=STATUS

View File

@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8"?>
<?page contentType="text/html;charset=UTF-8"?>
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" arg0="winEditarContingencia"?>
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>
<zk xmlns="http://www.zkoss.org/2005/zul">
<window id="winEditarContingencia" border="normal" apply="${editarContigenciaController}"
width="800px" height="457px" contentStyle="overflow:auto" sizable="true"
title="${c:l('editarContigencia.window.title')}">
<toolbar>
<hbox spacing="5px" style="padding:1px" align="right">
<button id="btnFechar" height="20"
image="/gui/img/exit.png" width="35px"
onClick="winEditarContingencia.detach()"
tooltiptext="${c:l('editarContigencia.btnFechar.tooltiptext')}"/>
</hbox>
</toolbar>
<grid fixedLayout="true">
<columns>
<column width="10%" />
<column />
<column width="10%" />
<column />
</columns>
<rows>
<row>
<label
value="${c:l('editarContigencia.empresa.label')}" />
<combobox id="cmbEmpresa"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar"
width="100%" mold="rounded" buttonVisible="true"
model="@{winEditarContingencia$composer.lsEmpresas}"/>
<label
value="${c:l('editarContigencia.estado.label')}" />
<combobox id="cmbEstado"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar"
mold="rounded" buttonVisible="true" width="99%"
model="@{winEditarContingencia$composer.lsEstado}" />
</row>
</rows>
</grid>
<grid >
<columns>
<column width="10%" />
<column />
</columns>
<rows>
<row>
<label
value="${c:l('editarContigencia.status.label')}" />
<textbox id="txtStatus" width="99%" />
</row>
</rows>
</grid>
<grid >
<columns>
<column width="10%" />
<column />
<column width="25%" />
</columns>
<rows>
<row>
<label
value="${c:l('editarContigencia.motivo.label')}" />
<textbox id="txtMotivo" width="99%" />
<button id="btnContingencia" width="98%"
label="${c:l('editarContigencia.btnSetarContingencia.label')}"/>
</row>
</rows>
</grid>
<paging id="pagingHistorico" pageSize="20" />
<listbox id="historicoList" use="com.rjconsultores.ventaboletos.web.utilerias.MyListbox"
multiple="false" width="100%">
<listhead sizable="true">
<listheader image="/gui/img/create_doc.gif"
label="${c:l('editarContigencia.tabela.id')}"
sort="auto(LogHistoricoContingenciaId)" width="8%"/>
<listheader image="/gui/img/create_doc.gif"
label="${c:l('editarContigencia.tabela.motivo')}"
sort="auto(motivo)" width="45%"/>
<listheader image="/gui/img/create_doc.gif"
label="${c:l('editarContigencia.tabela.usuario')}"
sort="auto(usuario.usuarioId)"/>
<listheader image="/gui/img/create_doc.gif"
label="${c:l('editarContigencia.tabela.data')}"
sort="auto(dataHora)"/>
<listheader image="/gui/img/create_doc.gif"
label="${c:l('editarContigencia.tabela.status')}"
sort="auto(status)"/>
</listhead>
</listbox>
</window>
</zk>