FeriadoController.java 3.4 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
package com.roshka.controller;

import com.roshka.modelo.Birthday;
import com.roshka.modelo.Feriado;
import com.roshka.repositorio.BirthdayRepository;
import com.roshka.repositorio.FeriadoRepository;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

@Controller
@RequestMapping("/feriados")
public class FeriadoController {

    FeriadoRepository feriadoRepository;


    @Autowired
    public FeriadoController(FeriadoRepository feriadoRepository){
        this.feriadoRepository = feriadoRepository;
    }

    @GetMapping(path = {"/agregar","/modificar/{id}"})
    public String addFeriadoView(Model model, @PathVariable(required = false) Long id) {

        if(id == null) model.addAttribute("feriado", new Feriado());
        else model.addAttribute("feriado", feriadoRepository.getById(id));
        return "feriado-form";
    }

    @RequestMapping()
    public String menuFeriados(Model model, @RequestParam(required = false) String feriado, @RequestParam(defaultValue = "0")Integer nroPagina) {
        final Integer CANTIDAD_POR_PAGINA = 10;
        Pageable page = PageRequest.of(nroPagina,CANTIDAD_POR_PAGINA,Sort.by("id"));

        if(feriado == null || feriado.trim().isEmpty()) {
            Page<Feriado> feriadoPag=feriadoRepository.findAllFeriado(page);
            model.addAttribute("feriados", feriadoPag.getContent());
            model.addAttribute("pages", feriadoPag.getTotalPages());
        }
        else {
57
            Page<Feriado> feriadoPag=feriadoRepository.findByMotivoFeriadoContainingIgnoreCase(feriado.trim(),page);
58 59 60 61 62 63 64
            model.addAttribute("pages", feriadoPag.getTotalPages());
            model.addAttribute("feriados", feriadoPag.getContent());
        }
        return "feriados";
    }

    @PostMapping(path = {"/agregar","/modificar/{id}"})
Sofía Benitez committed
65
   public String addFeriado(@RequestPart(name = "motivoFeriado") String motivoFeriado,
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
                              @RequestPart(name = "fecha") String fecha,
                              @PathVariable(required = false) Long id,
                              Model model) {
        if((id==null && feriadoRepository.existsByMotivoFeriadoIgnoreCase(motivoFeriado))){
            model.addAttribute("mismoMotivo", true);
            return "feriado-form";
        }
        Feriado feriado = new Feriado();
        if (id != null) {
            feriado = feriadoRepository.getById(id);
        }
        feriado.setMotivoFeriado(motivoFeriado);
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date date = formatter.parse(fecha);
            feriado.setFecha(date);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }

        if(id != null ) feriado.setId(id);
        feriadoRepository.save(feriado);
        return "redirect:/feriados";
    }
}