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 @@
- +