trbajando en las funciones de leer los estados

This commit is contained in:
2025-12-27 10:50:09 +01:00
parent b94a099e01
commit 3a00702bb1
7 changed files with 213 additions and 3596 deletions

File diff suppressed because it is too large Load Diff

View File

@ -307,7 +307,7 @@ public class skApiClient {
else { else {
int ancho = (int) tamanio.get("ancho"); int ancho = (int) tamanio.get("ancho");
return Map.of( return Map.of(
"maxSolapas", (int) (ancho * 0.8 ), "maxSolapas", (int) (ancho * 0.8),
"lomo", 0.0); "lomo", 0.0);
} }
} }
@ -395,18 +395,46 @@ public class skApiClient {
} }
/* public Map<String, Object> checkPedidoEstado(Long presupuestoId, Locale locale) {
public Map<String, Object> checkPedidoEstado(Long presupuestoId){
try{ try {
} String jsonResponse = performWithRetry(() -> {
catch(Exception e){ String url = this.skApiUrl + "api/estado-pedido/" + presupuestoId;
e.printStackTrace();
return Map.of("error", "Internal Server Error: 1"); // Fallback en caso de error HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setBearerAuth(authService.getToken()); // token actualizado
HttpEntity<Void> entity = new HttpEntity<>(headers);
ResponseEntity<String> response = restTemplate.exchange(
url,
HttpMethod.GET,
entity,
String.class);
return response.getBody();
});
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(jsonResponse);
if (root.get("data") == null || !root.get("data").isInt()) {
throw new RuntimeException(
"Sin respuesta desde el servidor del proveedor");
}
String estado = root.get("estado").asText();
return Map.of(
"estado", estado);
} catch (JsonProcessingException e) {
// Fallback al 80% del ancho
return Map.of(
"estado", null);
} }
} }
*/
/****************** /******************
* PRIVATE METHODS * PRIVATE METHODS

View File

@ -16,9 +16,10 @@ public class PedidoLinea {
aprobado("pedido.estado.aprobado", 4), aprobado("pedido.estado.aprobado", 4),
maquetacion("pedido.estado.maquetacion", 5), maquetacion("pedido.estado.maquetacion", 5),
haciendo_ferro("pedido.estado.haciendo_ferro", 6), haciendo_ferro("pedido.estado.haciendo_ferro", 6),
ferro_cliente("pedido.estado.ferro_cliente", 7), esperando_aceptacion_ferro("pedido.estado.esperando_aceptacion_ferro", 7),
produccion("pedido.estado.produccion", 8), ferro_cliente("pedido.estado.ferro_cliente", 8),
cancelado("pedido.estado.cancelado", 9); produccion("pedido.estado.produccion", 9),
cancelado("pedido.estado.cancelado", 10);
private final String messageKey; private final String messageKey;
private final int priority; private final int priority;

View File

@ -154,7 +154,6 @@ public class PedidoService {
return pedidoRepository.findById(pedidoId).orElse(null); return pedidoRepository.findById(pedidoId).orElse(null);
} }
/** Lista de los items del pedido preparados para la vista */ /** Lista de los items del pedido preparados para la vista */
@Transactional @Transactional
public List<Map<String, Object>> getLineas(Long pedidoId, Locale locale) { public List<Map<String, Object>> getLineas(Long pedidoId, Locale locale) {
@ -237,12 +236,39 @@ public class PedidoService {
return true; return true;
} }
public Boolean actualizarEstado(Long pedidoId) {
Pedido pedido = pedidoRepository.findById(pedidoId).orElse(null);
if (pedido == null) {
return false;
}
pedidoRepository.save(pedido);
return true;
}
public Boolean markPedidoAsMaquetacionDone(Long pedidoId) {
Pedido pedido = pedidoRepository.findById(pedidoId).orElse(null);
if (pedido == null) {
return false;
}
List<PedidoLinea> lineas = pedidoLineaRepository.findByPedidoId(pedidoId);
for (PedidoLinea linea : lineas) {
if (linea.getEstado() == Estado.maquetacion) {
linea.setEstado(Estado.haciendo_ferro);
pedidoLineaRepository.save(linea);
}
}
return true;
}
/*************************** /***************************
* MÉTODOS PRIVADOS * MÉTODOS PRIVADOS
***************************/ ***************************/
@Transactional @Transactional
private Map<String, Object> savePresupuestoSK(Long pedidoLineaId, Presupuesto presupuesto, Integer counter, Integer total) { private Map<String, Object> savePresupuestoSK(Long pedidoLineaId, Presupuesto presupuesto, Integer counter,
Integer total) {
Map<String, Object> data_to_send = presupuestoService.toSkApiRequest(presupuesto, true); Map<String, Object> data_to_send = presupuestoService.toSkApiRequest(presupuesto, true);
data_to_send.put("createPedido", 0); data_to_send.put("createPedido", 0);
@ -476,6 +502,7 @@ public class PedidoService {
} }
} }
private PedidoDireccion saveDireccion( private PedidoDireccion saveDireccion(
String email, String email,
Boolean palets, Boolean palets,

View File

@ -0,0 +1,37 @@
databaseChangeLog:
- changeSet:
id: 0022-add-estados-pago-to-pedidos-lineas-3
author: jjo
changes:
- modifyDataType:
tableName: pedidos_lineas
columnName: estado
newDataType: >
enum(
'pendiente_pago',
'procesando_pago',
'denegado_pago',
'aprobado',
'maquetacion',
'haciendo_ferro',
'esperando_aceptacion_ferro',
'produccion',
'terminado',
'cancelado'
)
rollback:
- modifyDataType:
tableName: pedidos_lineas
columnName: estado
newDataType: >
enum(
'pendiente_pago',
'procesando_pago',
'denegado_pago',
'aprobado',
'maquetacion',
'haciendo_ferro',
'produccion',
'terminado',
'cancelado'
)

View File

@ -24,6 +24,7 @@ pedido.estado.denegado_pago=Pago denegado
pedido.estado.aprobado=Aprobado pedido.estado.aprobado=Aprobado
pedido.estado.maquetacion=Maquetación pedido.estado.maquetacion=Maquetación
pedido.estado.haciendo_ferro=Haciendo ferro pedido.estado.haciendo_ferro=Haciendo ferro
pedido.estado.esperando_aceptacion_ferro=Esperando aceptación de ferro
pedido.estado.ferro_cliente=Esperando aprobación de ferro pedido.estado.ferro_cliente=Esperando aprobación de ferro
pedido.estado.produccion=Producción pedido.estado.produccion=Producción
pedido.estado.terminado=Terminado pedido.estado.terminado=Terminado
@ -34,6 +35,11 @@ pedido.pedido=Pedido
pedido.fecha-entrega=Fecha de entrega pedido.fecha-entrega=Fecha de entrega
pedido.cancelar=Cancelar pedido pedido.cancelar=Cancelar pedido
pedido.update-estado=Actualizar estado pedido.update-estado=Actualizar estado
pedido.maquetacion_finalizada=Maquetación finalizada
pedido.ferro=Ferro
pedido.cubierta=Cubierta
pedido.tapa=Tapa
pedido.aceptar_ferro=Aceptar ferro
pedido.shipping-addresses=Direcciones de envío pedido.shipping-addresses=Direcciones de envío
pedido.prueba=Prueba pedido.prueba=Prueba

View File

@ -121,6 +121,13 @@
th:text="#{pedido.update-estado}">Cancelar Pedido</span></i> th:text="#{pedido.update-estado}">Cancelar Pedido</span></i>
</a> </a>
</div> </div>
<div th:if="${item.estado == 'maquetacion'}">
<a href="javascript:void(0);" class="d-block text-body p-1 px-2 maquetacion-ok"
th:attr="data-linea-id=${item.lineaId}">
<i class="ri-check-double-line text-muted align-bottom me-1"><span
th:text="#{pedido.maquetacion_finalizada}"> Maquetación finalizada</span></i>
</a>
</div>
</div> </div>
</div> </div>