diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java index 423c58325..902e43c58 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; - import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; @@ -30,6 +29,8 @@ import com.rjconsultores.ventaboletos.entidad.Cliente; import com.rjconsultores.ventaboletos.entidad.ClienteDescuento; import com.rjconsultores.ventaboletos.entidad.ClienteDireccion; import com.rjconsultores.ventaboletos.entidad.ClienteFidelidad; +import com.rjconsultores.ventaboletos.entidad.Curso; +import com.rjconsultores.ventaboletos.entidad.Escola; import com.rjconsultores.ventaboletos.entidad.MotivoViaje; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.Ruta; @@ -37,6 +38,8 @@ import com.rjconsultores.ventaboletos.entidad.TarjetaFidelidad; import com.rjconsultores.ventaboletos.entidad.TipoDomicilio; import com.rjconsultores.ventaboletos.entidad.TipoOcupacion; import com.rjconsultores.ventaboletos.service.ClienteService; +import com.rjconsultores.ventaboletos.service.CursoService; +import com.rjconsultores.ventaboletos.service.EscolaService; import com.rjconsultores.ventaboletos.service.MotivoViajeService; import com.rjconsultores.ventaboletos.service.RutaService; import com.rjconsultores.ventaboletos.service.TipoDomicilioService; @@ -61,6 +64,13 @@ public class EditarClienteController extends MyGenericForwardComposer { private MotivoViajeService motivoViajeService; private TipoOcupacionService tipoOcupacionService; private TipoDomicilioService tipoDomicilioService; + @Autowired + private EscolaService escolaService; + @Autowired + private CursoService cursoService; + @Autowired + private RutaService rutaService; + private Cliente cliente; private MyListbox clienteList; private MyTextbox txtNombCliente; @@ -79,6 +89,7 @@ public class EditarClienteController extends MyGenericForwardComposer { private MyTextbox txtDescColonia; private MyTextbox txtDescEstado; private MyTextbox txtCP; + private Datebox dateFecNacimiento; private Intbox txtCanthijos; private Intbox txtNumFidelidade; @@ -90,14 +101,18 @@ public class EditarClienteController extends MyGenericForwardComposer { private Combobox cmbDomicilio; private Combobox cmbOcupacion; private Combobox cmbMotivacionViaje; + private Combobox cmbCurso; + private Combobox cmbEscola; + private List lsMotivoViaje; private List lsTipoOcupacion; private List lsClienteDireccion; private List lsTipoDomicilio; - private Checkbox chkBloqueo; - @Autowired - private RutaService rutaService; + private List lsCurso; + private List lsEscola; private List lsLinhas; + + private Checkbox chkBloqueo; private MyComboboxEstandar cmbLinha; private Ruta linha; private MyComboboxParada cmbParadaOrigem; @@ -106,92 +121,26 @@ public class EditarClienteController extends MyGenericForwardComposer { private MyComboboxParada cmbParadaDestino; private MyComboboxParadaCve cmbParadaDestinoCve; private Parada destino; - private Checkbox chkINDLUNES; - private Boolean boolINDLUNES; - private Checkbox chkINDMARTES; - private Boolean boolINDMARTES; - private Checkbox chkINDMIERCOLES; - private Boolean boolINDMIERCOLES; - private Checkbox chkINDJUEVES; - private Boolean boolINDJUEVES; - private Checkbox chkINDVIERNES; - private Boolean boolINDVIERNES; - private Checkbox chkINDSABADO; - private Boolean boolINDSABADO; - private Checkbox chkINDDOMINGO; - private Boolean boolINDDOMINGO; + private Checkbox chkINDLUNES; + private Boolean boolINDLUNES; + private Checkbox chkINDMARTES; + private Boolean boolINDMARTES; + private Checkbox chkINDMIERCOLES; + private Boolean boolINDMIERCOLES; + private Checkbox chkINDJUEVES; + private Boolean boolINDJUEVES; + private Checkbox chkINDVIERNES; + private Boolean boolINDVIERNES; + private Checkbox chkINDSABADO; + private Boolean boolINDSABADO; + private Checkbox chkINDDOMINGO; + private Boolean boolINDDOMINGO; private Intbox cantMaxMes; private Datebox datInicial; private Datebox datFinal; private Integer cantMaxMesInt; private Boolean estudanteComDesconto; private Checkbox chkEstudanteComDesconto; - - - - public Cliente getCliente() { - return cliente; - } - - public void setCliente(Cliente cliente) { - this.cliente = cliente; - } - - public List getLsMotivoViaje() { - return lsMotivoViaje; - } - - public void setLsMotivoViaje(List lsMotivoViaje) { - this.lsMotivoViaje = lsMotivoViaje; - } - - public List getLsTipoOcupacion() { - return lsTipoOcupacion; - } - - public void setLsTipoOcupacion(List lsTipoOcupacion) { - this.lsTipoOcupacion = lsTipoOcupacion; - } - - public MotivoViajeService getMotivoViajeService() { - return motivoViajeService; - } - - public void setMotivoViajeService(MotivoViajeService motivoViajeService) { - this.motivoViajeService = motivoViajeService; - } - - public TipoOcupacionService getTipoOcupacionService() { - return tipoOcupacionService; - } - - public void setTipoOcupacionService(TipoOcupacionService tipoOcupacionService) { - this.tipoOcupacionService = tipoOcupacionService; - } - - public TipoDomicilioService getTipoDomicilioService() { - return tipoDomicilioService; - } - - public void setTipoDomicilioService(TipoDomicilioService tipoDomicilioService) { - this.tipoDomicilioService = tipoDomicilioService; - } - - public List getLsClienteDireccion() { - return lsClienteDireccion; - } - - public void setLsClienteDireccion(List lsClienteDireccion) { - this.lsClienteDireccion = lsClienteDireccion; - } - - public List getLsTipoDomicilio() { - return lsTipoDomicilio; - } - - public void setLsTipoDomicilio(List lsTipoDomicilio) { - this.lsTipoDomicilio = lsTipoDomicilio; - } public void aplicarMascara() { Clients.evalJavaScript("jQuery('#" + txtNumFax.getUuid() @@ -227,6 +176,8 @@ public class EditarClienteController extends MyGenericForwardComposer { cmbDomicilio.setDisabled(desabilitar); cmbOcupacion.setDisabled(desabilitar); cmbMotivacionViaje.setDisabled(desabilitar); + cmbCurso.setDisabled(desabilitar); + cmbEscola.setDisabled(desabilitar); } private Boolean isClienteImportacao() { @@ -260,7 +211,7 @@ public class EditarClienteController extends MyGenericForwardComposer { public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); lsLinhas = rutaService.obtenerTodos(); - + cmbParadaOrigemCve.setItemRenderer(new ComboitemRenderer() { @Override public void render(Comboitem cmbtm, Object o) throws Exception { @@ -280,12 +231,15 @@ public class EditarClienteController extends MyGenericForwardComposer { cmbtm.setValue(parada); } }); - + aplicarMascara(); lsTipoOcupacion = tipoOcupacionService.obtenerTodos(); lsMotivoViaje = motivoViajeService.obtenerTodos(); lsTipoDomicilio = tipoDomicilioService.obtenerTodos(); + lsCurso = cursoService.obtenerTodos(); + lsEscola = escolaService.obtenerTodos(); + estudanteComDesconto = false; try { cliente = (Cliente) Executions.getCurrent().getArg().get("cliente"); @@ -295,7 +249,7 @@ public class EditarClienteController extends MyGenericForwardComposer { btnApagar.setVisible(Boolean.FALSE); } else { cliente = clienteService.obtenerID(cliente.getClienteId()); - + if (cliente.getMotivoviajeId() != null) { cmbMotivacionViaje.setText(cliente.getMotivoviajeId().getDescMotivoViaje()); } @@ -304,6 +258,14 @@ public class EditarClienteController extends MyGenericForwardComposer { cmbOcupacion.setText(cliente.getTipoocupacionId().getDesctipo()); } + if (cliente.getCurso() != null) { + cmbCurso.setText(cliente.getCurso().getNomcurso()); + } + + if (cliente.getEscola() != null) { + cmbEscola.setText(cliente.getEscola().getNombescola()); + } + if (cliente.getIndsexo() != null) { if (cliente.getIndsexo().equals("F")) { radFeminino.setChecked(true); @@ -311,10 +273,10 @@ public class EditarClienteController extends MyGenericForwardComposer { radMasculino.setChecked(true); } } - + if (null != cliente.getIndBloqueo() && cliente.getIndBloqueo()) { chkBloqueo.setChecked(Boolean.TRUE); - }else{ + } else { chkBloqueo.setChecked(Boolean.FALSE); } @@ -351,12 +313,12 @@ public class EditarClienteController extends MyGenericForwardComposer { } } } - if((cliente.getLsClienteDescuento() != null) && (!cliente.getLsClienteDescuento().isEmpty())){ - if(null != cliente.getLsClienteDescuento().get(cliente.getLsClienteDescuento().size()-1) && - cliente.getLsClienteDescuento().get(cliente.getLsClienteDescuento().size()-1).getActivo()==1 ){ + if ((cliente.getLsClienteDescuento() != null) && (!cliente.getLsClienteDescuento().isEmpty())) { + if (null != cliente.getLsClienteDescuento().get(cliente.getLsClienteDescuento().size() - 1) && + cliente.getLsClienteDescuento().get(cliente.getLsClienteDescuento().size() - 1).getActivo() == 1) { estudanteComDesconto = true; chkEstudanteComDesconto.setChecked(true); - ClienteDescuento cd = cliente.getLsClienteDescuento().get(cliente.getLsClienteDescuento().size()-1); + ClienteDescuento cd = cliente.getLsClienteDescuento().get(cliente.getLsClienteDescuento().size() - 1); cmbLinha.setText(cd.getRuta().getDescruta()); linha = cd.getRuta(); cmbParadaOrigem.setText(cd.getOrigem().getDescparada()); @@ -388,7 +350,7 @@ public class EditarClienteController extends MyGenericForwardComposer { } } } - + if (cliente.getNumfax() != null) { txtNumFax.setValue(cliente.getNumfax()); } @@ -462,7 +424,7 @@ public class EditarClienteController extends MyGenericForwardComposer { } public void onClick$chkEstudanteComDesconto(Event ev) { - if(chkEstudanteComDesconto.isChecked()){ + if (chkEstudanteComDesconto.isChecked()) { cmbLinha.setConstraint("no empty"); cmbLinha.setDisabled(false); cmbParadaOrigem.setConstraint("no empty"); @@ -486,12 +448,12 @@ public class EditarClienteController extends MyGenericForwardComposer { datFinal.setDisabled(false); cantMaxMes.setConstraint("no zero, no negative, no empty"); cantMaxMes.setDisabled(false); - - }else{ + + } else { cmbLinha.setConstraint(""); cmbLinha.setValue(""); cmbLinha.setDisabled(true); - linha=null; + linha = null; cmbParadaOrigem.setConstraint(""); cmbParadaOrigem.setValue(""); cmbParadaOrigem.setDisabled(true); @@ -506,25 +468,25 @@ public class EditarClienteController extends MyGenericForwardComposer { cmbParadaDestinoCve.setDisabled(true); chkINDLUNES.setChecked(false); chkINDLUNES.setDisabled(true); - boolINDLUNES=null; + boolINDLUNES = null; chkINDMARTES.setChecked(false); chkINDMARTES.setDisabled(true); - boolINDMARTES=null; + boolINDMARTES = null; chkINDMIERCOLES.setChecked(false); chkINDMIERCOLES.setDisabled(true); - boolINDMIERCOLES=null; + boolINDMIERCOLES = null; chkINDJUEVES.setChecked(false); chkINDJUEVES.setDisabled(true); - boolINDJUEVES=null; + boolINDJUEVES = null; chkINDVIERNES.setChecked(false); chkINDVIERNES.setDisabled(true); - boolINDVIERNES=null; + boolINDVIERNES = null; chkINDSABADO.setChecked(false); chkINDSABADO.setDisabled(true); - boolINDSABADO=null; + boolINDSABADO = null; chkINDDOMINGO.setChecked(false); chkINDDOMINGO.setDisabled(true); - boolINDDOMINGO=null; + boolINDDOMINGO = null; datInicial.setConstraint(""); datInicial.setValue(null); datInicial.setDisabled(true); @@ -534,11 +496,11 @@ public class EditarClienteController extends MyGenericForwardComposer { cantMaxMes.setConstraint(""); cantMaxMes.setValue(null); cantMaxMes.setDisabled(true); - cantMaxMesInt=null; - + cantMaxMesInt = null; + } } - + public void onClick$btnSalvar(Event ev) throws InterruptedException { txtNombCliente.getValue(); txtApellidoPaterno.getValue(); @@ -566,7 +528,7 @@ public class EditarClienteController extends MyGenericForwardComposer { return; } } - + setClienteDireccion(); try { if (cliente.getClienteId() == null) { @@ -585,16 +547,16 @@ public class EditarClienteController extends MyGenericForwardComposer { } cliente.setLsClienteDireccion(lsClienteDireccion); - -// if(estudantePreenchido()){ - setarManagedDescuentoInCliente(); -// } - + + // if(estudantePreenchido()){ + setarManagedDescuentoInCliente(); + // } + clienteService.suscribir(cliente); clienteList.addItemNovo(cliente); } else { setarManagedDescuentoInCliente(); - + clienteService.actualizacion(cliente); clienteList.updateItem(cliente); } @@ -638,7 +600,7 @@ public class EditarClienteController extends MyGenericForwardComposer { Messagebox.OK, Messagebox.ERROR); } } - + public MyComboboxEstandar getCmbLinha() { return cmbLinha; } @@ -646,7 +608,7 @@ public class EditarClienteController extends MyGenericForwardComposer { public void setCmbLinha(MyComboboxEstandar cmbLinha) { this.cmbLinha = cmbLinha; } - + public List getLsLinhas() { return lsLinhas; } @@ -654,7 +616,7 @@ public class EditarClienteController extends MyGenericForwardComposer { public void setLsLinhas(List lsLinhas) { this.lsLinhas = lsLinhas; } - + public void onSelect$cmbParadaOrigemCve(Event ev) { if (cmbParadaOrigemCve.getSelectedItem() != null) { cmbParadaOrigem.setComboItemByParada((Parada) cmbParadaOrigemCve.getSelectedItem().getValue()); @@ -677,7 +639,7 @@ public class EditarClienteController extends MyGenericForwardComposer { cmbParadaDestinoCve.setComboItemByParada((Parada) cmbParadaDestino.getSelectedItem().getValue()); } } - + public void onClick$btnApagar(Event ev) { try { int resp = Messagebox.show( @@ -686,8 +648,8 @@ public class EditarClienteController extends MyGenericForwardComposer { Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); if (resp == Messagebox.YES) { - if(null != cliente.getLsClienteDescuento() && 0 != cliente.getLsClienteDescuento().size()-1 && null != cliente.getLsClienteDescuento().get(cliente.getLsClienteDescuento().size()-1)){ - cliente.getLsClienteDescuento().get(cliente.getLsClienteDescuento().size()-1).setActivo(0); + if (null != cliente.getLsClienteDescuento() && 0 != cliente.getLsClienteDescuento().size() - 1 && null != cliente.getLsClienteDescuento().get(cliente.getLsClienteDescuento().size() - 1)) { + cliente.getLsClienteDescuento().get(cliente.getLsClienteDescuento().size() - 1).setActivo(0); } clienteService.borrar(cliente); @@ -704,7 +666,7 @@ public class EditarClienteController extends MyGenericForwardComposer { log.error(ex); } } - + public Intbox getCantMaxMes() { return cantMaxMes; } @@ -714,23 +676,23 @@ public class EditarClienteController extends MyGenericForwardComposer { } private void setarManagedDescuentoInCliente() throws InterruptedException { -// caso chkEstudanteComDesconto não esteja checkado e o cliente ja tenha tido algum desconto no passado, -// entende-se que o cliente nao esteja estudando ou nao tenha mais direito à nenhum desconto - if(!chkEstudanteComDesconto.isChecked() && cliente.getLsClienteDescuento() != null &&cliente.getLsClienteDescuento().size() > 0){ - cliente.getLsClienteDescuento().get(cliente.getLsClienteDescuento().size()-1).setActivo(0); + // caso chkEstudanteComDesconto não esteja checkado e o cliente ja tenha tido algum desconto no passado, + // entende-se que o cliente nao esteja estudando ou nao tenha mais direito à nenhum desconto + if (!chkEstudanteComDesconto.isChecked() && cliente.getLsClienteDescuento() != null && cliente.getLsClienteDescuento().size() > 0) { + cliente.getLsClienteDescuento().get(cliente.getLsClienteDescuento().size() - 1).setActivo(0); } -// Caso todos os dias da semana forem false, significa que, não foi determinado nenhum dia da semana para ter desconto, -// assim nunca será possível aplicar o desconto - if(chkEstudanteComDesconto.isChecked() && !chkINDDOMINGO.isChecked() && !chkINDLUNES.isChecked() && - !chkINDMARTES.isChecked() && !chkINDMIERCOLES.isChecked() && - !chkINDJUEVES.isChecked() && !chkINDVIERNES.isChecked() && !chkINDSABADO.isChecked() ){ + // Caso todos os dias da semana forem false, significa que, não foi determinado nenhum dia da semana para ter desconto, + // assim nunca será possível aplicar o desconto + if (chkEstudanteComDesconto.isChecked() && !chkINDDOMINGO.isChecked() && !chkINDLUNES.isChecked() && + !chkINDMARTES.isChecked() && !chkINDMIERCOLES.isChecked() && + !chkINDJUEVES.isChecked() && !chkINDVIERNES.isChecked() && !chkINDSABADO.isChecked()) { throw new WrongValueException(); - }else if(chkEstudanteComDesconto.isChecked()){ - try{ + } else if (chkEstudanteComDesconto.isChecked()) { + try { ClienteDescuento cd = new ClienteDescuento(); cd.setRuta((Ruta) cmbLinha.getSelectedItem().getValue()); - cd.setOrigem((Parada)cmbParadaOrigem.getSelectedItem().getValue()); - cd.setDestino((Parada)cmbParadaDestino.getSelectedItem().getValue()); + cd.setOrigem((Parada) cmbParadaOrigem.getSelectedItem().getValue()); + cd.setDestino((Parada) cmbParadaDestino.getSelectedItem().getValue()); cd.setINDDOMINGO(chkINDDOMINGO.isChecked()); cd.setINDLUNES(chkINDLUNES.isChecked()); cd.setINDMARTES(chkINDMARTES.isChecked()); @@ -741,17 +703,16 @@ public class EditarClienteController extends MyGenericForwardComposer { cd.setCantMaxMes(cantMaxMes.getValue()); cd.setFecIni(datInicial.getValue()); cd.setFecFin(datFinal.getValue()); - + cd.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); cd.setFecmodif(Calendar.getInstance().getTime()); cd.setActivo(1); - - - if(null == cliente.getLsClienteDescuento() || 0 == cliente.getLsClienteDescuento().size() ){ + + if (null == cliente.getLsClienteDescuento() || 0 == cliente.getLsClienteDescuento().size()) { cliente.setLsClienteDescuento(new ArrayList()); cliente.getLsClienteDescuento().add(cd); - }else{ - cliente.getLsClienteDescuento().get(cliente.getLsClienteDescuento().size()-1).setActivo(0); + } else { + cliente.getLsClienteDescuento().get(cliente.getLsClienteDescuento().size() - 1).setActivo(0); cliente.getLsClienteDescuento().add(cd); } } catch (Exception ex) { @@ -765,10 +726,8 @@ public class EditarClienteController extends MyGenericForwardComposer { Messagebox.OK, Messagebox.ERROR); } } - - } - + } public Boolean getBoolINDLUNES() { return boolINDLUNES; @@ -865,4 +824,84 @@ public class EditarClienteController extends MyGenericForwardComposer { public void setDestino(Parada destino) { this.destino = destino; } + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public List getLsMotivoViaje() { + return lsMotivoViaje; + } + + public void setLsMotivoViaje(List lsMotivoViaje) { + this.lsMotivoViaje = lsMotivoViaje; + } + + public List getLsTipoOcupacion() { + return lsTipoOcupacion; + } + + public void setLsTipoOcupacion(List lsTipoOcupacion) { + this.lsTipoOcupacion = lsTipoOcupacion; + } + + public List getLsCurso() { + return lsCurso; + } + + public void setLsCurso(List lsCurso) { + this.lsCurso = lsCurso; + } + + public List getLsEscola() { + return lsEscola; + } + + public void setLsEscola(List lsEscola) { + this.lsEscola = lsEscola; + } + + public MotivoViajeService getMotivoViajeService() { + return motivoViajeService; + } + + public void setMotivoViajeService(MotivoViajeService motivoViajeService) { + this.motivoViajeService = motivoViajeService; + } + + public TipoOcupacionService getTipoOcupacionService() { + return tipoOcupacionService; + } + + public void setTipoOcupacionService(TipoOcupacionService tipoOcupacionService) { + this.tipoOcupacionService = tipoOcupacionService; + } + + public TipoDomicilioService getTipoDomicilioService() { + return tipoDomicilioService; + } + + public void setTipoDomicilioService(TipoDomicilioService tipoDomicilioService) { + this.tipoDomicilioService = tipoDomicilioService; + } + + public List getLsClienteDireccion() { + return lsClienteDireccion; + } + + public void setLsClienteDireccion(List lsClienteDireccion) { + this.lsClienteDireccion = lsClienteDireccion; + } + + public List getLsTipoDomicilio() { + return lsTipoDomicilio; + } + + public void setLsTipoDomicilio(List lsTipoDomicilio) { + this.lsTipoDomicilio = lsTipoDomicilio; + } } diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index a5a98e334..6491efba5 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -4926,6 +4926,8 @@ editarClienteController.lbServico.cantMaxMes = Quantidade máxima por mês editarClienteController.lbFecIni.value = Inicio período editarClienteController.lbFecFin.value = Fim período editarClienteController.lbEstudanteDesconto.value = É estudante com descuento? +editarClienteController.lbCurso.value = Curso +editarClienteController.lbEscola.value = Escola MSG.Error.ClienteAbaEstudante = Na aba de estudante não é permitido campos em branco quando o cliente possuir desconto # EditarEmpleado diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index cfc080550..702d03903 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -4986,6 +4986,8 @@ editarClienteController.lbServico.cantMaxMes = Quantidade máxima por mês editarClienteController.lbFecIni.value = Inicio período editarClienteController.lbFecFin.value = Fim período editarClienteController.lbEstudanteDesconto.value = É estudante com desconto? +editarClienteController.lbCurso.value = Curso +editarClienteController.lbEscola.value = Escola MSG.Error.ClienteAbaEstudante = Na aba de estudante não é permitido campos em branco quando o cliente possuir desconto # EditarEmpleado diff --git a/web/gui/senda_amigo/editarCliente.zul b/web/gui/senda_amigo/editarCliente.zul index c7b50c041..9cad03740 100644 --- a/web/gui/senda_amigo/editarCliente.zul +++ b/web/gui/senda_amigo/editarCliente.zul @@ -134,6 +134,27 @@ model="@{winEditarCliente$composer.lsTipoOcupacion}" selectedItem="@{winEditarCliente$composer.cliente.tipoocupacionId}" /> + + + + + + + + + - @@ -259,7 +282,8 @@ - + @@ -270,16 +294,16 @@