vista de pedidos casi terminada (a falta de acciones delos botones, cambio de estados, etc). Trabajando en el presupuesto para modificar las reimpresiones

This commit is contained in:
2025-11-29 13:42:57 +01:00
parent 9baf880022
commit 58fd4815c6
16 changed files with 2089 additions and 8379 deletions

View File

@ -389,6 +389,19 @@ public class skApiClient {
}
/*
public Map<String, Object> checkPedidoEstado(Long presupuestoId){
try{
}
catch(Exception e){
e.printStackTrace();
return Map.of("error", "Internal Server Error: 1"); // Fallback en caso de error
}
}
*/
/******************
* PRIVATE METHODS
******************/

View File

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

View File

@ -21,6 +21,7 @@ import com.imprimelibros.erp.datatables.DataTablesParser;
import com.imprimelibros.erp.datatables.DataTablesRequest;
import com.imprimelibros.erp.datatables.DataTablesResponse;
import com.imprimelibros.erp.paises.PaisesService;
import com.imprimelibros.erp.presupuesto.service.PresupuestoService;
import com.imprimelibros.erp.users.UserDao;
import jakarta.persistence.criteria.Join;
@ -28,11 +29,15 @@ import jakarta.persistence.criteria.JoinType;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/pedidos")
public class PedidosController {
private final PresupuestoService presupuestoService;
private final PedidoRepository repoPedido;
private final PedidoService pedidoService;
private final UserDao repoUser;
@ -40,14 +45,16 @@ public class PedidosController {
private final PedidoLineaRepository repoPedidoLinea;
private final PaisesService paisesService;
public PedidosController(PedidoRepository repoPedido, PedidoService pedidoService, UserDao repoUser, MessageSource messageSource,
PedidoLineaRepository repoPedidoLinea, PaisesService paisesService) {
public PedidosController(PedidoRepository repoPedido, PedidoService pedidoService, UserDao repoUser,
MessageSource messageSource,
PedidoLineaRepository repoPedidoLinea, PaisesService paisesService, PresupuestoService presupuestoService) {
this.repoPedido = repoPedido;
this.pedidoService = pedidoService;
this.repoUser = repoUser;
this.messageSource = messageSource;
this.repoPedidoLinea = repoPedidoLinea;
this.paisesService = paisesService;
this.presupuestoService = presupuestoService;
}
@GetMapping
@ -71,8 +78,7 @@ public class PedidosController {
Long currentUserId = Utils.currentUserId(principal);
List<String> searchable = List.of(
"id"
);
"id");
// Campos ordenables
List<String> orderable = List.of(
@ -171,8 +177,8 @@ public class PedidosController {
@GetMapping("/view/{id}")
public String verPedido(
@PathVariable(name = "id", required = true) Long id,
Model model, Locale locale) {
@PathVariable(name = "id", required = true) Long id,
Model model, Locale locale) {
Boolean isAdmin = Utils.isCurrentUserAdmin();
if (isAdmin) {
@ -182,7 +188,7 @@ public class PedidosController {
}
PedidoDireccion direccionFacturacion = pedidoService.getDireccionFacturacionPedido(id);
if(direccionFacturacion != null){
if (direccionFacturacion != null) {
String paisNombre = paisesService.getPaisNombrePorCode3(direccionFacturacion.getPaisCode3(), locale);
direccionFacturacion.setPaisNombre(paisNombre);
}
@ -192,8 +198,7 @@ public class PedidosController {
List<Map<String, Object>> lineas = pedidoService.getLineas(id, locale);
for (Map<String, Object> linea : lineas) {
List<PedidoDireccion> dirEntrega = pedidoService.getDireccionesEntregaPedidoLinea(
((Number) linea.get("lineaId")).longValue()
);
((Number) linea.get("lineaId")).longValue());
if (dirEntrega != null && !dirEntrega.isEmpty()) {
for (PedidoDireccion direccion : dirEntrega) {
@ -202,11 +207,25 @@ public class PedidosController {
}
}
linea.put("direccionesEntrega", dirEntrega);
}
model.addAttribute("lineas", lineas);
model.addAttribute("id", id);
return "imprimelibros/pedidos/pedidos-view";
}
// -------------------------------------
// Acciones sobre las lineas de pedido
// -------------------------------------
@GetMapping("/linea/{id}/update-status")
public String getMethodName(
@PathVariable(name = "id", required = true) Long id) {
PedidoLinea linea = repoPedidoLinea.findById(id).orElse(null);
if (linea != null) {
Long externalId = linea.getPresupuesto().getProveedorRef2();
}
return new String();
}
}

View File

@ -1357,6 +1357,10 @@ public class PresupuestoService {
return resumen;
}
public Presupuesto findPresupuestoById(Long id) {
return presupuestoRepository.findById(id).orElse(null);
}
// =======================================================================
// Métodos privados
// =======================================================================