From b7453b113890395d67b3b9c292d4661699caa146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Tue, 24 Feb 2026 13:24:39 +0100 Subject: [PATCH 1/7] trabajando --- src/main/resources/i18n/cart_es.properties | 2 ++ .../static/assets/js/pages/imprimelibros/checkout/checkout.js | 2 ++ .../resources/templates/imprimelibros/checkout/checkout.html | 3 +++ 3 files changed, 7 insertions(+) diff --git a/src/main/resources/i18n/cart_es.properties b/src/main/resources/i18n/cart_es.properties index 30c633a..b1a5120 100644 --- a/src/main/resources/i18n/cart_es.properties +++ b/src/main/resources/i18n/cart_es.properties @@ -29,6 +29,8 @@ cart.shipping.tipo-envio=Tipo de envío: cart.shipping.errors.units-error=Por favor, introduzca un número válido entre 1 y {max}. cart.shipping.errors.noAddressSelected=Debe seleccionar una dirección de envío para el pedido. cart.shipping.errors.fillAddressesItems=Debe seleccionar una dirección de envío para cada artículo de la cesta. +cart.shipping.errors.fillBillingAddressItems=Debe seleccionar una dirección de facturación para poder realizar el pago. + cart.resumen.title=Resumen de la cesta cart.resumen.base=Base imponible diff --git a/src/main/resources/static/assets/js/pages/imprimelibros/checkout/checkout.js b/src/main/resources/static/assets/js/pages/imprimelibros/checkout/checkout.js index 76d9fab..1ba9e00 100644 --- a/src/main/resources/static/assets/js/pages/imprimelibros/checkout/checkout.js +++ b/src/main/resources/static/assets/js/pages/imprimelibros/checkout/checkout.js @@ -158,6 +158,7 @@ $(() => { $('.cart-summary-container').remove(); parent.append(response); $('#dirFactId').val(direccionId); + $('#dirFactWarning').addClass('d-none'); }, error: function () { console.error('Error al actualizar el resumen del carrito.'); @@ -187,6 +188,7 @@ $(() => { success: function (response) { const parent = $('.cart-summary-container').parent(); $('.cart-summary-container').remove(); + $('#dirFactWarning').removeClass('d-none'); parent.append(response); }, error: function () { diff --git a/src/main/resources/templates/imprimelibros/checkout/checkout.html b/src/main/resources/templates/imprimelibros/checkout/checkout.html index 34bc29f..7efcc4c 100644 --- a/src/main/resources/templates/imprimelibros/checkout/checkout.html +++ b/src/main/resources/templates/imprimelibros/checkout/checkout.html @@ -50,6 +50,9 @@
Dirección de envío
+ + From f3d96361a05c33fd4a4e48129bb072305f1e6192 Mon Sep 17 00:00:00 2001 From: jjimenez Date: Tue, 24 Feb 2026 14:32:47 +0100 Subject: [PATCH 2/7] corregidos varios problemas --- .../erp/checkout/CheckoutController.java | 14 ++++---- .../erp/payments/PaymentController.java | 35 +++++++++++++++---- .../pages/imprimelibros/checkout/checkout.js | 2 +- .../imprimelibros/checkout/_summary.html | 2 +- 4 files changed, 39 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/imprimelibros/erp/checkout/CheckoutController.java b/src/main/java/com/imprimelibros/erp/checkout/CheckoutController.java index c33ee1d..eabd393 100644 --- a/src/main/java/com/imprimelibros/erp/checkout/CheckoutController.java +++ b/src/main/java/com/imprimelibros/erp/checkout/CheckoutController.java @@ -22,7 +22,6 @@ import com.imprimelibros.erp.direcciones.DireccionService; import com.imprimelibros.erp.cart.Cart; import com.imprimelibros.erp.cart.CartService; - @Controller @RequestMapping("/checkout") public class CheckoutController { @@ -49,7 +48,7 @@ public class CheckoutController { "app.cancelar", "app.seleccionar", "app.yes", - "checkout.billing-address.title", + "checkout.billing-address.title", "checkout.billing-address.new-address", "checkout.billing-address.select-placeholder", "checkout.billing-address.errors.noAddressSelected"); @@ -63,20 +62,23 @@ public class CheckoutController { return "imprimelibros/checkout/checkout"; // crea esta vista si quieres (tabla simple) } - @GetMapping({"/get-summary", "/get-summary/{direccionId}"}) - public String getCheckoutSummary(@PathVariable(required = false) Long direccionId, Principal principal, Model model, Locale locale) { + @GetMapping({ "/get-summary", "/get-summary/{direccionId}/{method}" }) + public String getCheckoutSummary(@PathVariable(required = false) Long direccionId, + @PathVariable(required = false) String method, Principal principal, Model model, Locale locale) { Long userId = Utils.currentUserId(principal); Cart cart = cartService.getOrCreateActiveCart(userId); Boolean hasTaxes = true; - if(direccionId != null) { + if (direccionId != null) { hasTaxes = direccionService.hasTaxes(direccionId); } Map summary = cartService.getCartSummary(cart, locale, hasTaxes); model.addAttribute("summary", summary); + if (method != null) { + model.addAttribute("method", method); + } return "imprimelibros/checkout/_summary :: checkoutSummary(summary=${summary})"; } - @GetMapping("/get-address/{id}") public String getDireccionCard(@PathVariable Long id, Model model, Locale locale) { diff --git a/src/main/java/com/imprimelibros/erp/payments/PaymentController.java b/src/main/java/com/imprimelibros/erp/payments/PaymentController.java index ebb12c8..ffbbbcc 100644 --- a/src/main/java/com/imprimelibros/erp/payments/PaymentController.java +++ b/src/main/java/com/imprimelibros/erp/payments/PaymentController.java @@ -184,11 +184,14 @@ public class PaymentController { // Campos ordenables List orderable = List.of( - "transferId", + "client", + "transfer_id", "status", "amountCents", - "payment.amountRefundedCents", - "createdAt", "updatedAt"); + "amountCentsRefund", + "payment.orderId", + "createdAt", + "processedAt"); Specification base = (root, query, cb) -> cb.or( cb.equal(root.get("status"), PaymentTransactionStatus.pending), @@ -215,6 +218,26 @@ public class PaymentController { return DataTable .of(repoPaymentTransaction, PaymentTransaction.class, dt, searchable) .orderable(orderable) + .orderable("client", (root, query, cb) -> { + var sq = query.subquery(String.class); + var u = sq.from(User.class); + sq.select(u.get("fullName")); + sq.where(cb.equal(u.get("id"), root.join("payment").get("userId"))); + return sq; + }) + .orderable("transfer_id", (root, query, cb) -> { + var orderId = root.join("payment").get("orderId").as(Long.class); + return cb.selectCase() + .when(cb.isNull(orderId), Long.MAX_VALUE) + .otherwise(orderId); + }) + .orderable("payment.orderId", (root, query, cb) -> { + var orderId = root.join("payment").get("orderId").as(Long.class); + return cb.selectCase() + .when(cb.isNull(orderId), Long.MAX_VALUE) + .otherwise(orderId); + }) + .orderable("amountCentsRefund", (root, query, cb) -> root.join("payment").get("amountRefundedCents")) .add("created_at", pago -> Utils.formatDateTime(pago.getCreatedAt(), locale)) .add("processed_at", pago -> Utils.formatDateTime(pago.getProcessedAt(), locale)) .add("client", pago -> { @@ -237,14 +260,14 @@ public class PaymentController { return ""; }) .add("order_id", pago -> { - if (pago.getStatus() != PaymentTransactionStatus.pending) { + //if (pago.getStatus() != PaymentTransactionStatus.pending) { if (pago.getPayment() != null && pago.getPayment().getOrderId() != null) { return pago.getPayment().getOrderId().toString(); } else { return ""; } - } - return messageSource.getMessage("pagos.transferencia.no-pedido", null, "Pendiente", locale); + //} + //return messageSource.getMessage("pagos.transferencia.no-pedido", null, "Pendiente", locale); }).add("amount_cents", pago -> Utils.formatCurrency(pago.getAmountCents() / 100.0, locale)) .add("amount_cents_refund", pago -> diff --git a/src/main/resources/static/assets/js/pages/imprimelibros/checkout/checkout.js b/src/main/resources/static/assets/js/pages/imprimelibros/checkout/checkout.js index 1ba9e00..5711dfd 100644 --- a/src/main/resources/static/assets/js/pages/imprimelibros/checkout/checkout.js +++ b/src/main/resources/static/assets/js/pages/imprimelibros/checkout/checkout.js @@ -151,7 +151,7 @@ $(() => { if (direccionId) { $.ajax({ - url: `/checkout/get-summary/${direccionId}`, + url: `/checkout/get-summary/${direccionId}/${$('input[name="method"]').val()}`, type: 'GET', success: function (response) { const parent = $('.cart-summary-container').parent(); diff --git a/src/main/resources/templates/imprimelibros/checkout/_summary.html b/src/main/resources/templates/imprimelibros/checkout/_summary.html index 85ce845..6b5bcb9 100644 --- a/src/main/resources/templates/imprimelibros/checkout/_summary.html +++ b/src/main/resources/templates/imprimelibros/checkout/_summary.html @@ -48,7 +48,7 @@
- + + + diff --git a/src/main/resources/templates/imprimelibros/presupuestos/presupuestador-view.html b/src/main/resources/templates/imprimelibros/presupuestos/presupuestador-view.html index 0c361fb..638db40 100644 --- a/src/main/resources/templates/imprimelibros/presupuestos/presupuestador-view.html +++ b/src/main/resources/templates/imprimelibros/presupuestos/presupuestador-view.html @@ -44,18 +44,40 @@ + + + + + + + +
-

Resumen del +

+ Resumen del presupuesto

-
REIMPRESION
+
REIMPRESION
+
+ +
+
+ +
@@ -207,7 +229,7 @@
- +
@@ -234,6 +256,8 @@ + +