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 feriadoPag=feriadoRepository.findAllFeriado(page); model.addAttribute("feriados", feriadoPag.getContent()); model.addAttribute("pages", feriadoPag.getTotalPages()); } else { Page feriadoPag=feriadoRepository.findByMotivoFeriadoContainingIgnoreCase(feriado.trim(),page); model.addAttribute("pages", feriadoPag.getTotalPages()); model.addAttribute("feriados", feriadoPag.getContent()); } return "feriados"; } @PostMapping(path = {"/agregar","/modificar/{id}"}) public String addFeriado(@RequestPart(name = "file") MultipartFile file, @RequestPart(name = "motivoFeriado") String motivoFeriado, @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"; } }