Explorar o código

修改发票展示

llp hai 2 días
pai
achega
dacb987b2b

+ 12 - 0
packages/Longyi/Gift/src/Resources/views/sales/invoices/view.blade.php

@@ -298,6 +298,12 @@
                             </p>
                         @endif
 
+                        @if ($invoice->base_shipping_insurance_amount > 0)
+                            <p class="!leading-5 text-gray-600 dark:text-gray-300">
+                                @lang('shippinginsurance::app.shop.label')
+                            </p>
+                        @endif
+
                         @if ($order->giftcard_amount > 0)
                             <p class="text-gray-600 dark:text-gray-300 !leading-5 text-sm">
                                 @lang('gift::app.giftcard.giftcard_amount')
@@ -375,6 +381,12 @@
                                 {{ core()->formatBasePrice($invoice->base_discount_amount) }}
                             </p>
                         @endif
+                        <!-- Shipping Insurance Amount -->
+                        @if ($invoice->base_shipping_insurance_amount > 0)
+                            <p class="!leading-5 text-gray-600 dark:text-gray-300">
+                                + {{ core()->formatBasePrice($invoice->base_shipping_insurance_amount) }}
+                            </p>
+                        @endif
                         <!-- Giftcard Amount -->
                         @if ($order->giftcard_amount > 0)
                             <p class="text-gray-600 dark:text-gray-300 !leading-5">

+ 37 - 0
packages/Longyi/ShippingInsurance/src/Listeners/OrderViewHandler.php

@@ -0,0 +1,37 @@
+<?php
+
+namespace Longyi\ShippingInsurance\Listeners;
+
+use Webkul\Sales\Models\Order;
+
+class OrderViewHandler
+{
+    /**
+     * 订单详情:在 discount 之后、grand total 之前显示运费险金额。
+     *
+     * 参考 Longyi\Gift\Listeners\OrderViewHandler 的实现:
+     * 从当前路由参数获取订单 ID 并查询订单,通过 echo 渲染组件,
+     * 不依赖视图事件是否传递 $order 变量。
+     *
+     * @param  mixed  $viewRenderEventManager
+     * @return void
+     */
+    public function renderShippingInsurance($viewRenderEventManager)
+    {
+        // 从当前路由参数中获取订单ID
+        $orderId = request()->route('id');
+
+        if (! $orderId) {
+            return;
+        }
+
+        // 查询订单
+        $order = Order::find($orderId);
+
+        if (! $order || ! $order->shipping_insurance_amount || $order->shipping_insurance_amount <= 0) {
+            return;
+        }
+
+        echo view('shippinginsurance::components.shipping-insurance-ordersummary', compact('order'))->render();
+    }
+}

+ 8 - 1
packages/Longyi/ShippingInsurance/src/Providers/EventServiceProvider.php

@@ -10,7 +10,7 @@ class EventServiceProvider extends ServiceProvider
     /**
      * Bootstrap services.
      */
-    public function boot()
+    public function boot(): void
     {
         // 运费险计算:监听购物车总计收集事件
         Event::listen('checkout.cart.collect.totals.after', 'Longyi\ShippingInsurance\Listeners\ShippingInsuranceHandler@applyShippingInsurance');
@@ -24,5 +24,12 @@ class EventServiceProvider extends ServiceProvider
         Event::listen('bagisto.shop.checkout.onepage.summary.tax.after', function ($viewRenderEventManager) {
             $viewRenderEventManager->addTemplate('shippinginsurance::components.shipping-insurance-cartsummary');
         });
+
+        // 后台订单详情:在 discount 之后、grand total 之前显示运费险金额
+        // 参考礼品卡的 OrderViewHandler 方式:从路由获取订单后 echo 渲染组件
+        Event::listen('bagisto.admin.sales.order.view.discount.after', 'Longyi\ShippingInsurance\Listeners\OrderViewHandler@renderShippingInsurance');
+
+        // 前台会员中心订单详情:在 discount 之后、grand total 之前显示运费险金额
+        Event::listen('bagisto.shop.customers.account.orders.view.information.discount.after', 'Longyi\ShippingInsurance\Listeners\OrderViewHandler@renderShippingInsurance');
     }
 }

+ 16 - 0
packages/Longyi/ShippingInsurance/src/Resources/views/components/shipping-insurance-ordersummary.blade.php

@@ -0,0 +1,16 @@
+{!! view_render_event('bagisto.sales.order.view.shipping_insurance.before') !!}
+
+<!-- Shipping Insurance Amount -->
+@if (isset($order) && $order->shipping_insurance_amount && $order->shipping_insurance_amount > 0)
+    <div class="flex w-full justify-between gap-x-5">
+        <p class="!leading-5 text-gray-600 dark:text-gray-300">
+            @lang('shippinginsurance::app.shop.label')
+        </p>
+
+        <p class="!leading-5 text-gray-600 dark:text-gray-300">
+            + {{ core()->formatPrice($order->shipping_insurance_amount, $order->order_currency_code) }}
+        </p>
+    </div>
+@endif
+
+{!! view_render_event('bagisto.sales.order.view.shipping_insurance.after') !!}