Continuando Los cambios a las listas, encontrando un erro de creacion raro, habia que comental la linea del id en los create htmls. Acabado los contactos y tabla de sucursales esta casi acabado, falta borar por id
parent
19f3bc0f7f
commit
dffe0bdbf0
@ -0,0 +1,89 @@
|
||||
package com.example.proyectofinal.controllers.modelControllers;
|
||||
|
||||
import com.example.proyectofinal.models.empresas.Empresa;
|
||||
import com.example.proyectofinal.models.empresas.Sucursal;
|
||||
import com.example.proyectofinal.servicios.EmpresaService;
|
||||
import com.example.proyectofinal.servicios.SucursalService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Controller
|
||||
public class SucursalController {
|
||||
|
||||
@Autowired
|
||||
private SucursalService sucursalService;
|
||||
@Autowired
|
||||
private EmpresaService empresaService;
|
||||
|
||||
@GetMapping("/admin/sucursal/create")
|
||||
public String showCreateForm(Model model) {
|
||||
Sucursal sucursal = new Sucursal();
|
||||
Empresa empresa = new Empresa();
|
||||
List<Empresa> empresas = empresaService.findAll();
|
||||
model.addAttribute("sucursal", sucursal);
|
||||
model.addAttribute("empresa", empresa);
|
||||
model.addAttribute("empresas", empresas);
|
||||
return "admin/sucursal/create";
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/sucursal/save")
|
||||
public ResponseEntity<String> saveSucursal(Sucursal sucursal, @RequestParam("empresa.id") Long empresaId){
|
||||
try{
|
||||
Empresa existingEmpresa = empresaService.findById(empresaId);
|
||||
sucursal.setEmpresa(existingEmpresa);
|
||||
if(sucursalService.exists(sucursal) != null){
|
||||
return new ResponseEntity<>("Este sucursal ya existe en la base de datos", HttpStatus.BAD_REQUEST);
|
||||
}else {
|
||||
sucursalService.save(sucursal);
|
||||
return new ResponseEntity<>("La sucursal fue guardado con exito", HttpStatus.OK);
|
||||
}
|
||||
}catch (Exception e) {
|
||||
return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
@GetMapping("/admin/sucursal/update/{id}")
|
||||
public String showUpdateForm(Model model, @PathVariable Long id) {
|
||||
Sucursal sucursal = sucursalService.findById(id);
|
||||
Empresa empresa = new Empresa();
|
||||
List<Empresa> empresas = empresaService.findAll();
|
||||
model.addAttribute("sucursal", sucursal);
|
||||
model.addAttribute("empresa", empresa);
|
||||
model.addAttribute("empresas", empresas);
|
||||
model.addAttribute("sedeCentral", sucursal.getSedeCentral());
|
||||
return "admin/sucursal/update";
|
||||
}
|
||||
|
||||
@PostMapping("/sucursal/update")
|
||||
public ResponseEntity<String> updateSucursal(Sucursal sucursal, @RequestParam("empresa.id") Long sectorId){
|
||||
try{
|
||||
Empresa existingEmpresa = empresaService.findById(sectorId);
|
||||
sucursal.setEmpresa(existingEmpresa);
|
||||
sucursalService.save(sucursal);
|
||||
return new ResponseEntity<>("Los datos del sucursal fue renovados con exito", HttpStatus.OK);
|
||||
}catch (Exception e) {
|
||||
return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping("/sucursal/delete/{id}")
|
||||
public ResponseEntity<String> deleteSucursal(@PathVariable Long id){
|
||||
System.out.println("Attempting to delete Sucursal with ID: " + id);
|
||||
try{
|
||||
sucursalService.deleteById(id);
|
||||
return new ResponseEntity<>("La empresa ha sido eliminado", HttpStatus.OK);
|
||||
}catch (Exception e){
|
||||
System.out.println("Error deleting Sucursal: " + e.getMessage());
|
||||
return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,139 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Creacion: Empresa</title>
|
||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css" th:href="@{/top.css}">
|
||||
<style>
|
||||
form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
margin: auto;
|
||||
padding: 25px;
|
||||
margin-top: 100px;
|
||||
}
|
||||
|
||||
.btn {
|
||||
margin-top: 25px;
|
||||
margin-right: 5px;
|
||||
width: 120px;
|
||||
height: 40px;
|
||||
font-family: Verdana;
|
||||
}
|
||||
form input[type="submit"], form input[type="button"] {
|
||||
width: 100px;
|
||||
}
|
||||
form input[type="text"]{
|
||||
width: 75%;
|
||||
}
|
||||
form label{
|
||||
font-size: 20px;
|
||||
margin-bottom: 10px;
|
||||
font-family: Verdana, Geneva, Tahoma, sans-serif;
|
||||
}
|
||||
|
||||
body, h1 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Añadir Empresa<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
|
||||
|
||||
<form th:action="@{/sucursal/save}" method="post" enctype="multipart/form-data" th:object="${sucursal}">
|
||||
<!--<input type="hidden" th:field="*{id}"/>-->
|
||||
<div class="p-3">
|
||||
<div class ="form-group row">
|
||||
<label class="col-sm-3 col-form-label" for="nombre">Nombre</label>
|
||||
<div class = "col-sm-9">
|
||||
<input type="text" th:field="*{nombre}" required minlength="2" maxlength="128" class="form-control" id="nombre">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class ="form-group row">
|
||||
<label class="col-sm-3 col-form-label" for="localidad">Localidad</label>
|
||||
<div class = "col-sm-9">
|
||||
<input type="text" th:field="*{localidad}" required minlength="2" maxlength="75" title="Entra una localidad valida" class="form-control" id="localidad">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class ="form-group row">
|
||||
<label class="col-sm-3 col-form-label" for="direccion">Direccion</label>
|
||||
<div class = "col-sm-9">
|
||||
<input type="text" th:field="*{direccion}" required minlength="2" maxlength="75" title="Entra una dirreccion valida." class="form-control" id="direccion">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class ="form-group row">
|
||||
<label class="col-sm-3 col-form-label" for="sedeCentral">Sede Central</label>
|
||||
<div class = "col-sm-9">
|
||||
<input type="number" th:field="*{sedeCentral}" required min="0" max="1" title="Entra 0 o 1" class="form-control" id="sedeCentral">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class ="form-group row">
|
||||
<label class="col-sm-3 col-form-label" for="empresa">Empresas</label>
|
||||
<div class = "col-sm-9">
|
||||
<select th:field="*{empresa.id}" class="form-control" id="empresa">
|
||||
<option th:each="empresa : ${empresas}" th:value="${empresa.id}" th:text="${empresa.nombre}"></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<input type="submit" value="Guardar" class="btn"/>
|
||||
<input type="button" value="Cancelar" id="btnCancelar" class="btn" onclick="goBack()"/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
function goBack() {
|
||||
console.log("goBack function called");
|
||||
window.history.back();
|
||||
}
|
||||
$(document).ready(function () {
|
||||
$("form").on("submit", function (event) {
|
||||
event.preventDefault();
|
||||
|
||||
var formData = $(this).serialize();
|
||||
var empresaId = $('#empresa').val();
|
||||
formData += '&sucursal=' + encodeURIComponent(empresaId);
|
||||
$.ajax({
|
||||
url: '/sucursal/save',
|
||||
type: 'post',
|
||||
data: formData,
|
||||
success: function (message) {
|
||||
if(message === "La sucursal fue guardado con exito") {
|
||||
alert("La sucursal fue guardado con exito")
|
||||
window.history.go(-1); // Go back two pages
|
||||
} else if(message === "Este sucursal ya existe en la base de datos"){
|
||||
alert("Este sucursal ya existe en la base de datos");
|
||||
window.history.go(-1);
|
||||
}else{
|
||||
alert("Error, consulata a los informaticos")
|
||||
window.history.go(-1)
|
||||
}
|
||||
},
|
||||
error: function (jqXHR) {
|
||||
alert(jqXHR.responseText);
|
||||
window.history.back();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,137 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Update: Empresa</title>
|
||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css" th:href="@{/top.css}">
|
||||
<style>
|
||||
form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
margin: auto;
|
||||
padding: 25px;
|
||||
margin-top: 100px;
|
||||
}
|
||||
|
||||
.btn {
|
||||
margin-top: 25px;
|
||||
margin-right: 5px;
|
||||
width: 120px;
|
||||
height: 40px;
|
||||
font-family: Verdana;
|
||||
}
|
||||
form input[type="submit"], form input[type="button"] {
|
||||
width: 100px;
|
||||
}
|
||||
form input[type="text"]{
|
||||
width: 75%;
|
||||
}
|
||||
form label{
|
||||
font-size: 20px;
|
||||
margin-bottom: 10px;
|
||||
font-family: Verdana, Geneva, Tahoma, sans-serif;
|
||||
}
|
||||
|
||||
body, h1 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Editar datos de Empresa<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
|
||||
|
||||
<form th:action="@{/sucursal/update}" method="post" enctype="multipart/form-data" th:object="${sucursal}">
|
||||
<input type="hidden" th:field="*{id}"/>
|
||||
<div class="p-3">
|
||||
<div class ="form-group row">
|
||||
<label class="col-sm-3 col-form-label" for="nombre">Nombre</label>
|
||||
<div class = "col-sm-9">
|
||||
<input type="text" th:field="*{nombre}" required minlength="2" maxlength="128" class="form-control" id="nombre">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class ="form-group row">
|
||||
<label class="col-sm-3 col-form-label" for="localidad">Localidad</label>
|
||||
<div class = "col-sm-9">
|
||||
<input type="text" th:field="*{localidad}" required minlength="2" maxlength="75" title="Entra una localidad valida" class="form-control" id="localidad">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class ="form-group row">
|
||||
<label class="col-sm-3 col-form-label" for="direccion">Direccion</label>
|
||||
<div class = "col-sm-9">
|
||||
<input type="text" th:field="*{direccion}" required minlength="2" maxlength="75" title="Entra una dirreccion valida." class="form-control" id="direccion">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class ="form-group row">
|
||||
<label class="col-sm-3 col-form-label" for="sedeCentral">Sede Central</label>
|
||||
<div class = "col-sm-9">
|
||||
<input type="text" th:field="*{sedeCentral}" pattern="[0-1]" title="Enter either 0 or 1" class="form-control" id="sedeCentral" th:value="${sedeCentral}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class ="form-group row">
|
||||
<label class="col-sm-3 col-form-label" for="empresa">Empresas</label>
|
||||
<div class = "col-sm-9">
|
||||
<select th:field="*{empresa.id}" class="form-control" id="empresa">
|
||||
<option th:each="empresa : ${empresas}" th:value="${empresa.id}" th:text="${empresa.nombre}"></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-center">
|
||||
<input type="submit" value="Guardar" class="btn"/>
|
||||
<input type="button" value="Cancelar" id="btnCancelar" class="btn" onclick="goBack()"/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
function goBack() {
|
||||
console.log("goBack function called");
|
||||
window.history.back();
|
||||
}
|
||||
$(document).ready(function () {
|
||||
$("form").on("submit", function (event) {
|
||||
event.preventDefault();
|
||||
|
||||
var formData = $(this).serialize();
|
||||
var empresaId = $('#empresa').val();
|
||||
formData += '&sucursal=' + encodeURIComponent(empresaId);
|
||||
$.ajax({
|
||||
url: '/sucursal/update',
|
||||
type: 'post',
|
||||
data: formData,
|
||||
success: function (message) {
|
||||
if(message === "Los datos del sucursal fue renovados con exito") {
|
||||
alert("Los datos del sucursal fue renovada con exito")
|
||||
window.history.go(-1); // Go back two pages
|
||||
}else{
|
||||
alert("Error, consulata a los informaticos")
|
||||
window.history.go(-1)
|
||||
}
|
||||
},
|
||||
error: function (jqXHR) {
|
||||
alert(jqXHR.responseText);
|
||||
window.history.back();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in new issue