daniel.zauli 2017-01-18 20:52:16 +00:00
parent 984f601c63
commit 401692376e
2 changed files with 138 additions and 6 deletions

View File

@ -1,6 +1,7 @@
package com.rjconsultores.ventaboletos.web.gui.controladores.tarifas;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
@ -24,7 +25,9 @@ import com.rjconsultores.ventaboletos.service.CalcularPeajeService;
import com.rjconsultores.ventaboletos.service.EmpresaImpostoService;
import com.rjconsultores.ventaboletos.service.OrgaoConcedenteService;
import com.rjconsultores.ventaboletos.service.RutaService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
@Controller("calcularPeajeController")
@Scope("prototype")
@ -47,6 +50,12 @@ public class CalcularPeajeController extends MyGenericForwardComposer {
private Radio rdConsiderarICMSNo;
private Radio rdConsiderarICMSSi;
private Combobox cmbRuta;
private List<Ruta> listSelectedRutas;
private MyListbox selectedRutasList;
private List<Ruta> lsRutas;
Set<Integer> lsIdsOrgSemIndice = new HashSet<Integer>();
public List<OrgaoConcedente> getLsOrgaoConcedente() {
return lsOrgaoConcedente;
}
@ -65,6 +74,7 @@ public class CalcularPeajeController extends MyGenericForwardComposer {
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
lsOrgaoConcedente = new ArrayList<OrgaoConcedente>();
@ -77,12 +87,33 @@ public class CalcularPeajeController extends MyGenericForwardComposer {
for (Integer orgaoConcedenteId : Constantes.ORGAOS_CONCEDENTES_CALCULO_AGER) {
lsOrgaoConcedente.add(orgaoConcedenteService.obtenerID(orgaoConcedenteId));
}
lsRutas = rutaService.buscarRutasPorEmpresas(UsuarioLogado.getUsuarioLogado().getEmpresa());
listSelectedRutas = new ArrayList<Ruta>();
}
public void onClick$btnCalcularPeaje(Event ev) throws InterruptedException {
OrgaoConcedente orgao = ((OrgaoConcedente) cmbOrgaoConcedente.getSelectedItem().getValue());
if (orgao.getIndicePeaje() != null) {
List<Ruta> lsRuta = rutaService.buscaRutasFromOrgao(orgao);
OrgaoConcedente orgao ;
boolean orgaoListaRutasHasIndices = true;
if(!listSelectedRutas.isEmpty()){
orgao = null;
for(Ruta r : listSelectedRutas){
if(r.getOrgaoConcedente().getIndicePeaje() == null){
orgaoListaRutasHasIndices = false;
lsIdsOrgSemIndice.add(r.getOrgaoConcedente().getOrgaoConcedenteId());
}
}
}else{
orgao = ((OrgaoConcedente) cmbOrgaoConcedente.getSelectedItem().getValue());
}
if ((orgao != null && orgao.getIndicePeaje() != null) || (!listSelectedRutas.isEmpty() && orgaoListaRutasHasIndices)) {
List<Ruta> lsRuta;
if(!listSelectedRutas.isEmpty()){
lsRuta = listSelectedRutas;
}else{
lsRuta = rutaService.buscaRutasFromOrgao(orgao);
}
boolean usarICMS;
if(rdConsiderarICMSSi.isChecked()){
usarICMS = true;
@ -128,9 +159,30 @@ public class CalcularPeajeController extends MyGenericForwardComposer {
// TODO else: show some generic error for unexpected error
}
} else {
if(orgao != null){
Messagebox.show(
Labels.getLabel("calcularPeajeController.MSG.orgaoSemIndice", new Object[] { orgao.getOrgaoConcedenteId() }),
Labels.getLabel("indexController.mniCalculoPeaje.label"), Messagebox.NO, Messagebox.ERROR);
}else{
Messagebox.show(
Labels.getLabel("calcularPeajeController.MSG.orgaoSemIndice", new Object[] { retornaIdsOrgaoSemIndice(lsIdsOrgSemIndice) }),
Labels.getLabel("indexController.mniCalculoPeaje.label"), Messagebox.NO, Messagebox.ERROR);
}
}
}
private String retornaIdsOrgaoSemIndice(Set<Integer> s){
List l = new ArrayList<Integer>(s);
if(l.size()==1){
return l.get(0).toString();
}else{
StringBuilder sb = new StringBuilder();
sb.append(l.get(0).toString());
for(int x = 1 ; x < l.size() ; x++){
sb.append(", "+l.get(x).toString());
}
return sb.toString();
}
}
@ -157,4 +209,50 @@ public class CalcularPeajeController extends MyGenericForwardComposer {
return true;
}
public void onClick$btnAddRuta(Event ev) throws InterruptedException {
if (cmbRuta.getSelectedItem() != null) {
listSelectedRutas.add((Ruta) cmbRuta.getSelectedItem().getValue());
selectedRutasList.setData(listSelectedRutas);
cmbRuta.setSelectedItem(null);
}
}
public void onClick$btnRemoveRuta(Event ev) throws InterruptedException {
Ruta ruta = (Ruta) selectedRutasList.getSelected();
listSelectedRutas.remove(ruta);
selectedRutasList.setData(listSelectedRutas);
}
public Combobox getCmbRuta() {
return cmbRuta;
}
public void setCmbRuta(Combobox cmbRuta) {
this.cmbRuta = cmbRuta;
}
public List<Ruta> getListSelectedRutas() {
return listSelectedRutas;
}
public void setListSelectedRutas(List<Ruta> listSelectedRutas) {
this.listSelectedRutas = listSelectedRutas;
}
public MyListbox getSelectedRutasList() {
return selectedRutasList;
}
public void setSelectedRutasList(MyListbox selectedRutasList) {
this.selectedRutasList = selectedRutasList;
}
public List<Ruta> getLsRutas() {
return lsRutas;
}
public void setLsRutas(List<Ruta> lsRutas) {
this.lsRutas = lsRutas;
}
}

View File

@ -47,5 +47,39 @@
</row>
</rows>
</grid>
<grid fixedLayout="true">
<columns>
<column width="40%" />
<column width="60%" />
</columns>
<rows>
<row>
<label
value="${c:l('editarConfiguracionCorridaController.cmbRuta.value')}" />
<combobox id="cmbRuta"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar"
mold="rounded" buttonVisible="true"
model="@{winCalcularPeaje$composer.lsRutas}" width="99%" />
</row>
</rows>
</grid>
<toolbar>
<button id="btnRemoveRuta" height="20"
image="/gui/img/remove.png" width="35px"
tooltiptext="${c:l('generarTarifaOrgaoController.labelRemoveRuta.value')}" />
<button id="btnAddRuta" height="20"
image="/gui/img/add.png" width="35px"
tooltiptext="${c:l('generarTarifaOrgaoController.labelAddRuta.value')}" />
</toolbar>
<listbox id="selectedRutasList"
use="com.rjconsultores.ventaboletos.web.utilerias.MyListbox"
multiple="false">
<listhead sizable="true">
<listheader image="/gui/img/builder.gif"
label="${c:l('generarTarifaOrgaoController.labelRuta.value')}" width="70%"/>
<listheader image="/gui/img/builder.gif"
label="${c:l('generarTarifaOrgaoController.labelOrgao.value')}" />
</listhead>
</listbox>
</window>
</zk>