ConvocatoriaController.java 5.92 KB
Newer Older
1 2 3 4
package com.roshka.controller;

import java.text.SimpleDateFormat;
import java.util.Date;
5
import java.util.List;
6

7
import com.roshka.modelo.Cargo;
8
import com.roshka.modelo.ConvocatoriaCargo;
9 10
import com.roshka.modelo.EstadoConvocatoria;
import com.roshka.modelo.EstadoConvocatoriaConverter;
11 12 13
import com.roshka.repositorio.CargoRepository;
import com.roshka.repositorio.ConvocatoriaRepository;

14 15
import org.apache.jasper.tagplugins.jstl.core.ForEach;
import org.dom4j.Branch;
16 17 18 19
import org.hibernate.jpa.TypedParameterValue;
import org.hibernate.type.IntegerType;
import org.hibernate.type.LongType;
import org.springframework.beans.factory.annotation.Autowired;
20
import org.springframework.context.MessageSource;
21 22 23 24
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
25 26 27 28 29 30 31 32
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
33
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
34 35 36 37 38 39 40 41 42 43 44 45 46 47

@Controller
public class ConvocatoriaController {

    CargoRepository cargoRepo;
    ConvocatoriaRepository convoRepo;

    @Autowired
    public ConvocatoriaController(CargoRepository cargoRepo, ConvocatoriaRepository convoRepo) {
        this.cargoRepo = cargoRepo;
        this.convoRepo = convoRepo;
    }

    @RequestMapping("/convocatorias")
48
    public String menuConvocatorias(Model model,RedirectAttributes redirectAttrs,
49
                            @RequestParam(required = false) Long cargoId,
50 51
                            @RequestParam(required = false) Integer isOpen,//1: true, 0: false
                            @RequestParam(defaultValue = "0")Integer nroPagina
52 53
                            ) {

54 55
        final Integer CANTIDAD_POR_PAGINA = 1;
        Pageable page = PageRequest.of(nroPagina,CANTIDAD_POR_PAGINA,Sort.by("id"));
56
        model.addAttribute("cargos", cargoRepo.findAll());
57 58 59
        Page<ConvocatoriaCargo> convoPag=convoRepo.f1ndByCargoAndEstado(new TypedParameterValue(LongType.INSTANCE, cargoId), new Date(), new TypedParameterValue(IntegerType.INSTANCE, isOpen),page);
        model.addAttribute("convocatorias", convoPag.getContent());
        model.addAttribute("pages", convoPag.getTotalPages());
60 61 62 63
        
        //model.addAttribute("convocatorias",cargoId==null? convoRepo.findAll() : convoRepo.findByCargoId(cargoId));
        return "convocatorias";
    }
64 65 66 67 68 69
    @RequestMapping("/convocatoria")
    public String formConvocatoria(Model model) {
        model.addAttribute("cargos", cargoRepo.findAll());
        model.addAttribute("convocatoria", new ConvocatoriaCargo());
        return "convocatoria-form";
    }
70
    
71
    @PostMapping("/convocatoria")
72 73 74 75 76 77 78
    public String guardarConvocatoria(@ModelAttribute ConvocatoriaCargo convocatoria, BindingResult result,RedirectAttributes redirectAttributes) {
        for (ConvocatoriaCargo conv:convoRepo.findByCargoId(convocatoria.getCargoId())) {
            if(conv.getEstado()==EstadoConvocatoria.abierto){
                redirectAttributes.addFlashAttribute("SUCCESS_MESSAGE", "Ya existe una convocatoria Abierta con ese cargo");
                return "redirect:/convocatorias";
           }
        }
79 80 81 82 83 84 85
        if(result.hasErrors()); 
        convocatoria.setFechaInicio(new Date());
        convocatoria.setEstado(EstadoConvocatoria.abierto);
        convoRepo.save(convocatoria);
        System.out.println(convocatoria.getFechaInicio());
        return "redirect:/convocatorias";
    }
86 87


88
   /* @RequestMapping("/convocatoria/{id}")
89 90
    public String formConvocatoria(Model model,@PathVariable(required = false) Long id) {
        model.addAttribute("cargos", cargoRepo.findAll());
91 92 93 94
        if(id == null){
             model.addAttribute("convocatoria", new ConvocatoriaCargo());
             model.addAttribute("listaConvocatoria", convoRepo.findAll());
        }
95 96 97 98 99 100
        else {
            ConvocatoriaCargo cc = convoRepo.getById(id);
            cc.setFechaFinS(new SimpleDateFormat("yyyy-MM-dd").format((cc.getFechaFin())));
            cc.setFechaInicioS(new SimpleDateFormat("yyyy-MM-dd").format((cc.getFechaInicio())));
            
            model.addAttribute("convocatoria", cc);
101
            model.addAttribute("listaConvocatoria", convoRepo.findAll());
102 103 104
        }
        
        return "convocatoria-form";
105
    }*/
106

107
    @RequestMapping("/convocatoria/{id}")
108
    public String guardarConvocatoria(@ModelAttribute ConvocatoriaCargo convocatoria, BindingResult result, @PathVariable(required = false) Long id,Model model) {
109
        if(id != null) convocatoria.setId(id);
110 111 112 113 114
        convocatoria=convoRepo.findByIdConvocatoriaCargo(id);
        convocatoria.setEstado(EstadoConvocatoria.cerrado);
        convocatoria.setFechaFin(new Date());
        convoRepo.save(convocatoria);
        /*if(id != null) convocatoria.setId(id);
115 116 117 118
        //System.out.println(convoRepo.filtrarConvocatoriasPorCargo(convocatoria.getCargoId()));
        for(ConvocatoriaCargo c: convoRepo.filtrarConvocatoriasPorCargo(convocatoria.getCargoId())){
            
           
119 120
            if(result.hasErrors() || c.getCargoId()==convocatoria.getCargoId() &&   c.getFechaFin().after(convocatoria.getFechaInicio()) )
            {           
121
                
122 123 124
                model.addAttribute("existeFecha", true);
                System.out.println("no debe");
                return "convocatoria-form";
125 126 127 128 129 130 131 132
                             
            }
            else{
                convoRepo.save(convocatoria);
                System.out.println("si anda");
                break;

            }
133
        }*/
134 135

        
136 137 138
        return "redirect:/convocatorias";
    }
}