Commit 36107160 by Joel Florentin

convocatoria repository nuevo listado por filtrosde estado

parent e1c5f4b7
...@@ -34,7 +34,7 @@ public class CargoController { ...@@ -34,7 +34,7 @@ public class CargoController {
@RequestMapping("/cargos") @RequestMapping("/cargos")
public String menuCargos(Model model,@RequestParam(required = false) String nombre,@RequestParam(defaultValue = "0")Integer nroPagina) { public String menuCargos(Model model,@RequestParam(required = false) String nombre,@RequestParam(defaultValue = "0")Integer nroPagina) {
final Integer CANTIDAD_POR_PAGINA = 1; final Integer CANTIDAD_POR_PAGINA = 10;
Pageable page = PageRequest.of(nroPagina,CANTIDAD_POR_PAGINA,Sort.by("id")); Pageable page = PageRequest.of(nroPagina,CANTIDAD_POR_PAGINA,Sort.by("id"));
if(nombre == null || nombre.trim().isEmpty()) { if(nombre == null || nombre.trim().isEmpty()) {
Page<Cargo> CargoPag=cargoRepo.findAll(page); Page<Cargo> CargoPag=cargoRepo.findAll(page);
......
...@@ -47,16 +47,17 @@ public class ConvocatoriaController { ...@@ -47,16 +47,17 @@ public class ConvocatoriaController {
@RequestMapping("/convocatorias") @RequestMapping("/convocatorias")
public String menuConvocatorias(Model model,RedirectAttributes redirectAttrs, public String menuConvocatorias(Model model,RedirectAttributes redirectAttrs,
@RequestParam(required = false) Long cargoId, @RequestParam(required = false) Long cargoId,
@RequestParam(required = false) Integer isOpen,//1: true, 0: false @RequestParam(required = false) EstadoConvocatoria estado,//1: true, 0: false
@RequestParam(defaultValue = "0")Integer nroPagina @RequestParam(defaultValue = "0")Integer nroPagina
) { ) {
final Integer CANTIDAD_POR_PAGINA = 1; final Integer CANTIDAD_POR_PAGINA = 10;
Pageable page = PageRequest.of(nroPagina,CANTIDAD_POR_PAGINA,Sort.by("id")); Pageable page = PageRequest.of(nroPagina,CANTIDAD_POR_PAGINA,Sort.by("id"));
model.addAttribute("cargos", cargoRepo.findAll()); model.addAttribute("cargos", cargoRepo.findAll());
Page<ConvocatoriaCargo> convoPag=convoRepo.f1ndByCargoAndEstado(new TypedParameterValue(LongType.INSTANCE, cargoId), new Date(), new TypedParameterValue(IntegerType.INSTANCE, isOpen),page); Page<ConvocatoriaCargo> convoPag=convoRepo.findByCargoAndEstado(cargoId,estado,page);
model.addAttribute("convocatorias", convoPag.getContent()); model.addAttribute("convocatorias", convoPag.getContent());
model.addAttribute("pages", convoPag.getTotalPages()); model.addAttribute("pages", convoPag.getTotalPages());
model.addAttribute("estados", EstadoConvocatoria.values());
//model.addAttribute("convocatorias",cargoId==null? convoRepo.findAll() : convoRepo.findByCargoId(cargoId)); //model.addAttribute("convocatorias",cargoId==null? convoRepo.findAll() : convoRepo.findByCargoId(cargoId));
return "convocatorias"; return "convocatorias";
......
...@@ -29,6 +29,8 @@ import org.hibernate.jpa.TypedParameterValue; ...@@ -29,6 +29,8 @@ import org.hibernate.jpa.TypedParameterValue;
import org.hibernate.type.IntegerType; import org.hibernate.type.IntegerType;
import org.hibernate.type.LongType; import org.hibernate.type.LongType;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
...@@ -83,7 +85,8 @@ public class PostulanteController { ...@@ -83,7 +85,8 @@ public class PostulanteController {
model.addAttribute("estadosCiviles", EstadoCivil.values()); model.addAttribute("estadosCiviles", EstadoCivil.values());
model.addAttribute("nacionalidades", Nacionalidad.values()); model.addAttribute("nacionalidades", Nacionalidad.values());
model.addAttribute("tiposExperencia", TipoExperiencia.values()); model.addAttribute("tiposExperencia", TipoExperiencia.values());
model.addAttribute("CargosDisponibles", convoRepo.f1ndByCargoAndEstado(new TypedParameterValue(LongType.INSTANCE, null), new Date(), new TypedParameterValue(IntegerType.INSTANCE, 1))); model.addAttribute("CargosDisponibles",
convoRepo.findByCargoAndEstado(null, EstadoConvocatoria.abierto, PageRequest.of(0,Integer.MAX_VALUE,Sort.by("id"))).getContent());
try { try {
model.addAttribute("ciudades", new ObjectMapper().writeValueAsString(ciuRepo.findAll())); model.addAttribute("ciudades", new ObjectMapper().writeValueAsString(ciuRepo.findAll()));
} catch (JsonProcessingException er) { } catch (JsonProcessingException er) {
......
...@@ -100,7 +100,7 @@ public class PostulanteRRHHController { ...@@ -100,7 +100,7 @@ public class PostulanteRRHHController {
@RequestParam(required = false)Long convId, @RequestParam(required = false)Long convId,
@RequestParam(defaultValue = "0")Integer nroPagina @RequestParam(defaultValue = "0")Integer nroPagina
) throws IOException { ) throws IOException {
final Integer CANTIDAD_POR_PAGINA = 1; final Integer CANTIDAD_POR_PAGINA = 10;
Pageable page = PageRequest.of(nroPagina,CANTIDAD_POR_PAGINA,Sort.by("id")); Pageable page = PageRequest.of(nroPagina,CANTIDAD_POR_PAGINA,Sort.by("id"));
model.addAttribute("tecnologias", tecRepo.findAll()); model.addAttribute("tecnologias", tecRepo.findAll());
model.addAttribute("disponibilidades", Disponibilidad.values()); model.addAttribute("disponibilidades", Disponibilidad.values());
......
...@@ -26,22 +26,6 @@ public class Cargo { ...@@ -26,22 +26,6 @@ public class Cargo {
@Column(name = "nombre") @Column(name = "nombre")
private String nombre; private String nombre;
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public String getNombre() {
return this.nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
@OneToMany(mappedBy = "cargo") @OneToMany(mappedBy = "cargo")
@JsonManagedReference @JsonManagedReference
private List<ConvocatoriaCargo> convocatorias; private List<ConvocatoriaCargo> convocatorias;
......
...@@ -4,6 +4,7 @@ import java.util.Date; ...@@ -4,6 +4,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
import com.roshka.modelo.ConvocatoriaCargo; import com.roshka.modelo.ConvocatoriaCargo;
import com.roshka.modelo.EstadoConvocatoria;
import org.hibernate.jpa.TypedParameterValue; import org.hibernate.jpa.TypedParameterValue;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
...@@ -17,8 +18,13 @@ public interface ConvocatoriaRepository extends JpaRepository<ConvocatoriaCargo, ...@@ -17,8 +18,13 @@ public interface ConvocatoriaRepository extends JpaRepository<ConvocatoriaCargo,
public List<ConvocatoriaCargo> findByCargoId(Long cargoId); public List<ConvocatoriaCargo> findByCargoId(Long cargoId);
//@Query(value="selec x from ConvocatoriaCargo x where (x.fechaFinal > ?1)",nativeQuery = true) //@Query(value="selec x from ConvocatoriaCargo x where (x.fechaFinal > ?1)",nativeQuery = true)
//public List<ConvocatoriaCargo> findConvocatoriaCargoByCargo(Date fechaFinal); //public List<ConvocatoriaCargo> findConvocatoriaCargoByCargo(Date fechaFinal);
@Query("select c from ConvocatoriaCargo c where ( ?1 is null and ?3 is null) or ( ( ( ((c.fechaFin > ?2 or c.fechaFin=null) and ?3 = 1) or ((c.fechaFin < ?2 ) and ?3 = 0)) or ?3 is null ) and (c.cargoId = ?1 or ?1 is null) )") /* @Query("select c from ConvocatoriaCargo c where ( ?1 is null and ?3 is null) or ( ( ( ((c.fechaFin > ?2 or c.fechaFin=null) and ?3 = 1) or ((c.fechaFin < ?2 ) and ?3 = 0)) or ?3 is null ) and (c.cargoId = ?1 or ?1 is null) )")
public Page<ConvocatoriaCargo> f1ndByCargoAndEstado(TypedParameterValue cargoId, Date fecha, TypedParameterValue isOpen, Pageable page); public Page<ConvocatoriaCargo> f1ndByCargoAndEstado(TypedParameterValue cargoId, Date fecha, TypedParameterValue isOpen, Pageable page); */
@Query("select c from ConvocatoriaCargo c "+
"where (c.cargoId = ?1 or ?1 is null) and "+
"(c.estado = ?2 or ?2 is null)")
public Page<ConvocatoriaCargo> findByCargoAndEstado(Long cargoId, EstadoConvocatoria estado, Pageable page);
@Query("SELECT c FROM ConvocatoriaCargo c WHERE (cargoId=?1)") @Query("SELECT c FROM ConvocatoriaCargo c WHERE (cargoId=?1)")
public List<ConvocatoriaCargo> filtrarConvocatoriasPorCargo(Long cargoId); public List<ConvocatoriaCargo> filtrarConvocatoriasPorCargo(Long cargoId);
......
...@@ -108,7 +108,7 @@ function validarfecha(fechaDesde, fechaHasta){ ...@@ -108,7 +108,7 @@ function validarfecha(fechaDesde, fechaHasta){
return "la fecha desde no puede ser mayor a la fecha actual" ; return "la fecha desde no puede ser mayor a la fecha actual" ;
} }
if(fechaHasta =! null && fechaDesde>fechaHasta){ if(fechaHasta =! null && fechaHasta.trim().length >0 && fechaDesde>fechaHasta){
return "la fecha desde no puede ser mayor a la fecha hasta"; return "la fecha desde no puede ser mayor a la fecha hasta";
} }
...@@ -223,7 +223,7 @@ function agregarFieldExpierncia(event){ ...@@ -223,7 +223,7 @@ function agregarFieldExpierncia(event){
let pos_rec; let pos_rec;
let returnFlag = false; let returnFlag = false;
let requiredValues = ["institucion", "cargo", "fechaDesde", "descripcion"] let requiredValues = ["institucion", "cargo", "fechaDesde", "descripcion","nombreReferencia","telefonoReferencia"]
formData.forEach((value, key)=>{ formData.forEach((value, key)=>{
if(requiredValues.includes(key) if(requiredValues.includes(key)
......
...@@ -40,19 +40,18 @@ ...@@ -40,19 +40,18 @@
<label for="form-check-label">Estado: </label> <label for="form-check-label">Estado: </label>
<div class="form-check form-check-inline"> <div class="form-check form-check-inline">
<input class="form-check-input" type="radio" id="cualquiera" name="isOpen" checked value=""> <input class="form-check-input" type="radio" id="cualquiera" name="estado" checked value="">
<label class="form-check-label" for="cualquiera">Cualquiera</label><br> <label class="form-check-label" for="cualquiera">Cualquiera</label><br>
</div> </div>
<div class="form-check form-check-inline"> <c:forEach var="estado" items="${estados}">
<input class="form-check-input" type="radio" id="abierto" name="isOpen" value="1"> <div class="form-check form-check-inline">
<label class="form-check-label" for="abierto">Abierto</label><br>
</div> <input class="form-check-input" type="radio" id="${estado}" name="estado" value="${estado}">
<div class="form-check form-check-inline"> <label class="form-check-label" for="abierto">${estado}</label><br>
</div>
<input class="form-check-input" type="radio" id="cerrado" name="isOpen" value="0"> </c:forEach>
<label class="form-check-label" for="cerrado">Cerrado</label><br>
</div>
</div> </div>
<div class="col-auto"> <div class="col-auto">
...@@ -91,7 +90,11 @@ ...@@ -91,7 +90,11 @@
<td><fmt:formatDate value="${convocatoria.getFechaInicio()}" pattern="dd-MM-yyyy" /></td> <td><fmt:formatDate value="${convocatoria.getFechaInicio()}" pattern="dd-MM-yyyy" /></td>
<td><fmt:formatDate value="${convocatoria.getFechaFin()}" pattern="dd-MM-yyyy" /></td> <td><fmt:formatDate value="${convocatoria.getFechaFin()}" pattern="dd-MM-yyyy" /></td>
<td><a href="/postulantes?convId=${convocatoria.id}">Ver postulantes</a></td> <td><a href="/postulantes?convId=${convocatoria.id}">Ver postulantes</a></td>
<td><a class="btn btn-secondary" href="/convocatoria/${convocatoria.id}">Cerrar convocatoria</a></td> <td>
<c:if test="${convocatoria.getEstado() != 'cerrado'}">
<a class="btn btn-secondary" href="/convocatoria/${convocatoria.id}">Cerrar convocatoria</a>
</c:if>
</td>
</tr> </tr>
</c:forEach> </c:forEach>
......
...@@ -358,11 +358,11 @@ ...@@ -358,11 +358,11 @@
</div> </div>
<div class="inputs"> <div class="inputs">
<label for="refNombre" class="form-label">Nombre de la Referencia</label> <label for="refNombre" class="form-label">Nombre de la Referencia</label>
<input placeholder="&#xf007; Ingrese el nombre de su referencia" type="text" class="form-control FA " name="nombreReferencia" id="refNombre" > <input placeholder="&#xf007; Ingrese el nombre de su referencia" type="text" class="form-control FA " name="nombreReferencia" id="refNombre" required>
</div> </div>
<div class="inputs"> <div class="inputs">
<label for="refTel" class="form-label">Telefono de la Referencia</label> <label for="refTel" class="form-label">Telefono de la Referencia</label>
<input placeholder="&#xf095; Ingrese el telefono de su referencia" type="number" class="form-control FA" name="telefonoReferencia" id="refTel" > <input placeholder="&#xf095; Ingrese el telefono de su referencia" type="number" class="form-control FA" name="telefonoReferencia" id="refTel" required>
</div> </div>
<div class="inputs"> <div class="inputs">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment