package com.titanic.ventapasajes.controller; /** * Created by josediaz on 12/13/15. */ import com.titanic.ventapasajes.modelo.Recorrido; import com.titanic.ventapasajes.modelo.TarifaGeneral; import com.titanic.ventapasajes.modelo.Terminal; import com.titanic.ventapasajes.modelo.TipoAsiento; import com.titanic.ventapasajes.repositorio.TerminalRepositorio; import com.titanic.ventapasajes.service.RegistroRecorridoService; import com.titanic.ventapasajes.jsf.FacesUtil; import com.titanic.ventapasajes.util.cdi.InjectedConfiguration; import com.titanic.ventapasajes.ws.*; import org.primefaces.event.CellEditEvent; import javax.faces.application.FacesMessage; import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; import javax.inject.Inject; import javax.inject.Named; import java.io.Serializable; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; /** * Created by josediaz on 7/25/14. */ @Named @ViewScoped public class RegistroRecorridoBean implements Serializable { private static final long serialVersionUID = 1L; @Inject private RegistroRecorridoService recorridoService; @Inject private TerminalRepositorio terminalRepositorio; @Inject @InjectedConfiguration(key="ruc") String ruc; @Inject @InjectedConfiguration(key="usuario") String usuario; @Inject @InjectedConfiguration(key="clave") String clave; @Inject @InjectedConfiguration(key="partida") String partida; private List<Terminal> terminales; private Recorrido recorrido; public void inicializar(){ if(!FacesUtil.isPostback()){ terminales = terminalRepositorio.listarTerminales(); if (this.recorrido == null) { this.recorrido = new Recorrido(); recorrido.setRuta("ORIGEN-DESTINO"); } if(recorrido.getPrecios() == null || recorrido.getPrecios().isEmpty()){ List<TarifaGeneral> precios = new ArrayList<>(); for(TipoAsiento tipoAsiento: TipoAsiento.values()){ TarifaGeneral precio = new TarifaGeneral(); precio.setPrecio(new BigDecimal("0.00")); precio.setTipoAsiento(tipoAsiento); precio.setTipoPasaje("INGRESE CONCEPTO"); precio.setRecorrido(this.recorrido); precios.add(precio); } recorrido.setPrecios(precios); } } } public List<Terminal> getTerminales() { return terminales; } public void setTerminales(List<Terminal> terminales) { this.terminales = terminales; } public void registrarRecorrido() { StringTokenizer tokens=new StringTokenizer(recorrido.getRuta(), "|"); this.recorrido.setCodeRuta(tokens.nextToken()); this.recorrido.setRuta(tokens.nextToken()); this.recorrido = recorridoService.registrarRecorrido(this.recorrido); limpiarFormulario(); FacesUtil.adicionarMensajeInfo("El Recorrido se registro correctamente"); } private void limpiarFormulario() { recorrido = new Recorrido(); } public Recorrido getRecorrido() { return recorrido; } public void setRecorrido(Recorrido recorrido) { this.recorrido = recorrido; } public TipoAsiento[] getTiposAsientos() { return TipoAsiento.values(); } public boolean isEditando(){ return this.recorrido.getIdeRecorrido() !=null; } public void onCellEdit(CellEditEvent event) { Object oldValue = event.getOldValue(); Object newValue = event.getNewValue(); if(newValue != null && !newValue.equals(oldValue)) { FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Destino modificado", "Anterior: " + oldValue + ", Nuevo:" + newValue); FacesContext.getCurrentInstance().addMessage(null, msg); } } public List<Ruta> getRutas(){ WSServiciosHR mtc = new WSServiciosHR(); WSServiciosHRSoap mtcClient = mtc.getWSServiciosHRSoap(); Seguridad seguridad = new Seguridad(); seguridad.setRuc(ruc); seguridad.setUsuario(usuario); seguridad.setClave(clave); seguridad.setPartida(partida); Parametro oParametro = new Parametro(); oParametro.setSeguridad(seguridad); ResultParametro resultado = mtcClient.getParametro(oParametro); ArrayOfRuta rutasArray = resultado.getRutas(); List<Ruta> rutas = rutasArray.getRuta(); return rutas; } }