mirror of
https://git.imnavajas.es/jjimenez/erp-imprimelibros.git
synced 2026-02-28 21:59:13 +00:00
trabajando2
This commit is contained in:
@ -0,0 +1,47 @@
|
||||
package com.imprimelibros.erp.error;
|
||||
|
||||
import jakarta.servlet.RequestDispatcher;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import org.springframework.boot.web.servlet.error.ErrorController;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import com.imprimelibros.erp.common.Utils;
|
||||
|
||||
import java.time.ZonedDateTime;
|
||||
|
||||
@Controller
|
||||
public class ErrorPageController implements ErrorController {
|
||||
|
||||
@RequestMapping("/error")
|
||||
public String handleError(HttpServletRequest request, Model model) {
|
||||
|
||||
Object statusObj = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
|
||||
Integer statusCode = statusObj != null ? Integer.valueOf(statusObj.toString()) : 500;
|
||||
|
||||
HttpStatus status = HttpStatus.resolve(statusCode);
|
||||
if (status == null) status = HttpStatus.INTERNAL_SERVER_ERROR;
|
||||
|
||||
Object message = request.getAttribute(RequestDispatcher.ERROR_MESSAGE);
|
||||
Object exception = request.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
|
||||
Object path = request.getAttribute(RequestDispatcher.ERROR_REQUEST_URI);
|
||||
|
||||
model.addAttribute("status", status.value());
|
||||
model.addAttribute("error", status.getReasonPhrase());
|
||||
model.addAttribute("message", message != null ? message : "");
|
||||
model.addAttribute("path", path != null ? path : "");
|
||||
model.addAttribute("timestamp", ZonedDateTime.now());
|
||||
|
||||
// Puedes usar esto para cambiar iconos/texto según status
|
||||
model.addAttribute("is404", status == HttpStatus.NOT_FOUND);
|
||||
model.addAttribute("is403", status == HttpStatus.FORBIDDEN);
|
||||
model.addAttribute("is500", status.is5xxServerError());
|
||||
|
||||
if(Utils.isCurrentUserAdmin())
|
||||
// una sola vista para todos los errores
|
||||
return "imprimelibros/error/error";
|
||||
else
|
||||
return "redirect:/"; // redirige a home para usuarios no admin
|
||||
}
|
||||
}
|
||||
@ -14,14 +14,16 @@ public class PedidoLinea {
|
||||
procesando_pago("pedido.estado.procesando_pago", 2),
|
||||
denegado_pago("pedido.estado.denegado_pago", 3),
|
||||
aprobado("pedido.estado.aprobado", 4),
|
||||
maquetacion("pedido.estado.maquetacion", 5),
|
||||
haciendo_ferro("pedido.estado.haciendo_ferro", 6),
|
||||
esperando_aceptacion_ferro("pedido.estado.esperando_aceptacion_ferro", 7),
|
||||
ferro_cliente("pedido.estado.ferro_cliente", 8),
|
||||
produccion("pedido.estado.produccion", 9),
|
||||
terminado("pedido.estado.terminado", 10),
|
||||
enviado("pedido.estado.enviado", 11),
|
||||
cancelado("pedido.estado.cancelado", 12);
|
||||
procesando_pedido("pedido.estado.procesando_pedido", 5),
|
||||
maquetacion("pedido.estado.maquetacion", 6),
|
||||
haciendo_ferro_digital("pedido.estado.haciendo_ferro_digital", 7),
|
||||
esperando_aceptacion_ferro_digital("pedido.estado.esperando_aceptacion_ferro_digital", 8),
|
||||
haciendo_ferro("pedido.estado.haciendo_ferro", 9),
|
||||
esperando_aceptacion_ferro("pedido.estado.esperando_aceptacion_ferro", 10),
|
||||
produccion("pedido.estado.produccion", 11),
|
||||
terminado("pedido.estado.terminado", 12),
|
||||
enviado("pedido.estado.enviado", 13),
|
||||
cancelado("pedido.estado.cancelado", 14);
|
||||
|
||||
private final String messageKey;
|
||||
private final int priority;
|
||||
|
||||
@ -271,7 +271,7 @@ public class PedidoService {
|
||||
Integer counter = 1;
|
||||
for (PedidoLinea linea : lineas) {
|
||||
if (linea.getEstado() == Estado.pendiente_pago
|
||||
|| linea.getEstado() == Estado.denegado_pago) {
|
||||
|| linea.getEstado() == Estado.denegado_pago || linea.getEstado() == Estado.procesando_pago) {
|
||||
|
||||
Presupuesto presupuesto = linea.getPresupuesto();
|
||||
linea.setEstado(getEstadoInicial(presupuesto));
|
||||
@ -311,6 +311,7 @@ public class PedidoService {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public Map<String, Object> actualizarEstado(Long pedidoLineaId, Locale locale) {
|
||||
|
||||
PedidoLinea pedidoLinea = pedidoLineaRepository.findById(pedidoLineaId).orElse(null);
|
||||
@ -327,8 +328,8 @@ public class PedidoService {
|
||||
"message", messageSource.getMessage("pedido.errors.cannot-update", null, locale));
|
||||
}
|
||||
|
||||
// Rango: >= haciendo_ferro y < enviado
|
||||
if (estadoOld.getPriority() < PedidoLinea.Estado.haciendo_ferro.getPriority()
|
||||
// Rango: >= procesando_pedido y < enviado
|
||||
if (estadoOld.getPriority() < PedidoLinea.Estado.procesando_pedido.getPriority()
|
||||
|| estadoOld.getPriority() >= PedidoLinea.Estado.enviado.getPriority()) {
|
||||
return Map.of(
|
||||
"success", false,
|
||||
@ -788,7 +789,7 @@ public class PedidoService {
|
||||
if (presupuestoService.hasMaquetacion(p)) {
|
||||
return Estado.maquetacion;
|
||||
} else {
|
||||
return Estado.haciendo_ferro;
|
||||
return Estado.procesando_pedido;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -48,12 +48,12 @@ import com.imprimelibros.erp.presupuesto.classes.ImagenPresupuesto;
|
||||
import com.imprimelibros.erp.presupuesto.classes.PresupuestoMaquetacion;
|
||||
import com.imprimelibros.erp.presupuesto.classes.PresupuestoMarcapaginas;
|
||||
import com.imprimelibros.erp.presupuesto.dto.Presupuesto;
|
||||
import com.imprimelibros.erp.presupuesto.dto.PresupuestoFormDataMapper;
|
||||
import com.imprimelibros.erp.presupuesto.dto.PresupuestoFormDataMapper.PresupuestoFormDataDto;
|
||||
import com.imprimelibros.erp.presupuesto.service.PresupuestoService;
|
||||
import com.imprimelibros.erp.presupuesto.validation.PresupuestoValidationGroups;
|
||||
import com.imprimelibros.erp.users.UserDao;
|
||||
import com.imprimelibros.erp.users.UserDetailsImpl;
|
||||
import com.imprimelibros.erp.presupuesto.service.PresupuestoFormDataMapper;
|
||||
import com.imprimelibros.erp.presupuesto.service.PresupuestoFormDataMapper.PresupuestoFormDataDto;
|
||||
import com.imprimelibros.erp.common.Utils;
|
||||
import com.imprimelibros.erp.common.web.IpUtils;
|
||||
|
||||
|
||||
@ -284,6 +284,9 @@ public class Presupuesto extends AbstractAuditedEntity implements Cloneable {
|
||||
@Column(name = "lomo")
|
||||
private Double lomo;
|
||||
|
||||
@Column(name = "lomo_cubierta")
|
||||
private Double lomoCubierta;
|
||||
|
||||
@NotNull(message = "{presupuesto.errores.gramaje-interior}", groups = PresupuestoValidationGroups.Interior.class)
|
||||
@Column(name = "gramaje_interior")
|
||||
private Integer gramajeInterior;
|
||||
@ -731,6 +734,14 @@ public class Presupuesto extends AbstractAuditedEntity implements Cloneable {
|
||||
this.lomo = lomo;
|
||||
}
|
||||
|
||||
public Double getLomoCubierta() {
|
||||
return lomoCubierta;
|
||||
}
|
||||
|
||||
public void setLomoCubierta(Double lomoCubierta) {
|
||||
this.lomoCubierta = lomoCubierta;
|
||||
}
|
||||
|
||||
public Integer getGramajeInterior() {
|
||||
return gramajeInterior;
|
||||
}
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
package com.imprimelibros.erp.presupuesto.service;
|
||||
package com.imprimelibros.erp.presupuesto.dto;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.imprimelibros.erp.presupuesto.dto.Presupuesto;
|
||||
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -21,6 +19,7 @@ public class PresupuestoFormDataMapper {
|
||||
public Servicios servicios = new Servicios();
|
||||
public Integer selectedTirada;
|
||||
public Double lomo;
|
||||
public Double lomoCubierta;
|
||||
|
||||
// ===== Datos Generales =====
|
||||
public static class DatosGenerales {
|
||||
@ -194,7 +193,10 @@ public class PresupuestoFormDataMapper {
|
||||
|
||||
// ===== Selected tirada
|
||||
vm.selectedTirada = p.getSelectedTirada();
|
||||
|
||||
// ===== Lomos
|
||||
vm.lomo = p.getLomo();
|
||||
vm.lomoCubierta = p.getLomoCubierta();
|
||||
|
||||
// ===== Servicios desde JSONs
|
||||
vm.servicios.servicios = parse(p.getServiciosJson(),
|
||||
Reference in New Issue
Block a user