소스 검색

货币计算问题

llp 1 주 전
부모
커밋
aacbb147a7

+ 4 - 2
packages/Longyi/Gift/src/Http/Controllers/Shop/GiftController.php

@@ -46,6 +46,7 @@ class GiftController extends Controller
                         'giftcard_number' => $giftCard->giftcard_number,
                         'giftcard_number' => $giftCard->giftcard_number,
                         'giftcard_amount' => $giftCard->giftcard_amount,
                         'giftcard_amount' => $giftCard->giftcard_amount,
                         'remaining_giftcard_amount' => $giftCard->remaining_giftcard_amount,
                         'remaining_giftcard_amount' => $giftCard->remaining_giftcard_amount,
+                        'formatted_remaining_giftcard_amount' => core()->formatPrice(core()->convertPrice($giftCard->remaining_giftcard_amount)),
                         'used_giftcard_amount' => $giftCard->used_giftcard_amount,
                         'used_giftcard_amount' => $giftCard->used_giftcard_amount,
                         'expirationdate' => $giftCard->expirationdate->format('Y-m-d'),
                         'expirationdate' => $giftCard->expirationdate->format('Y-m-d'),
                         'giftcard_status' => $giftCard->giftcard_status,
                         'giftcard_status' => $giftCard->giftcard_status,
@@ -79,7 +80,8 @@ class GiftController extends Controller
                    'message'  => trans('Coupon not found.'),
                    'message'  => trans('Coupon not found.'),
                ]))->response()->setStatusCode(Response::HTTP_UNPROCESSABLE_ENTITY);
                ]))->response()->setStatusCode(Response::HTTP_UNPROCESSABLE_ENTITY);
            }
            }
-           if ($giftCard->remaining_giftcard_amount <= 0) {
+           $remainingGiftcardAmount = core()->convertPrice($giftCard->remaining_giftcard_amount);
+           if ($remainingGiftcardAmount <= 0) {
                return (new JsonResource([
                return (new JsonResource([
                    'data'     => new CustomCartResource(Cart::getCart()),
                    'data'     => new CustomCartResource(Cart::getCart()),
                    'message'  => trans('Gift card already used.'),
                    'message'  => trans('Gift card already used.'),
@@ -94,7 +96,7 @@ class GiftController extends Controller
 
 
 
 
            $cartTotal = $cart->grand_total;
            $cartTotal = $cart->grand_total;
-           $remainingAmount = $giftCard->remaining_giftcard_amount - $cartTotal;
+           $remainingAmount = $remainingGiftcardAmount - $cartTotal;
 
 
            if ($remainingAmount >= 0) {
            if ($remainingAmount >= 0) {
                // Apply the gift card to the cart
                // Apply the gift card to the cart

+ 2 - 2
packages/Longyi/Gift/src/Listeners/GiftHandler.php

@@ -28,8 +28,8 @@ class GiftHandler
     {
     {
         $giftCardAmount = $cart->giftcard_amount ?? 0;
         $giftCardAmount = $cart->giftcard_amount ?? 0;
         if ($giftCardAmount) {
         if ($giftCardAmount) {
-            $cart->grand_total = max(0, $cart->grand_total - $giftCardAmount);
-            $cart->base_grand_total = max(0, $cart->base_grand_total - $giftCardAmount);
+            $cart->grand_total = max(0, round($cart->grand_total - $giftCardAmount, 2));
+            $cart->base_grand_total = max(0, round($cart->base_grand_total - core()->convertToBasePrice($giftCardAmount), 2));
             $cart->save();
             $cart->save();
         }
         }
     }
     }

+ 1 - 1
packages/Longyi/Gift/src/Listeners/OrderCancelHandler.php

@@ -26,7 +26,7 @@ class OrderCancelHandler
         }
         }
 
 
         $giftCardNumber = $order->giftcard_number;
         $giftCardNumber = $order->giftcard_number;
-        $refundAmount = $order->giftcard_amount;
+        $refundAmount = core()->convertToBasePrice($order->giftcard_amount);
 
 
         // 查找礼品卡
         // 查找礼品卡
         $giftCard = GiftCards::where('giftcard_number', $giftCardNumber)->first();
         $giftCard = GiftCards::where('giftcard_number', $giftCardNumber)->first();

+ 1 - 1
packages/Longyi/Gift/src/Listeners/OrderPlacedHandler.php

@@ -25,7 +25,7 @@ class OrderPlacedHandler
             return;
             return;
         }
         }
         $giftCardNumber = $cart->giftcard_number;
         $giftCardNumber = $cart->giftcard_number;
-        $usedAmount = $cart->giftcard_amount;
+        $usedAmount = core()->convertToBasePrice($cart->giftcard_amount);
 
 
         // 查找礼品卡
         // 查找礼品卡
         $giftCard = GiftCards::where('giftcard_number', $giftCardNumber)->first();
         $giftCard = GiftCards::where('giftcard_number', $giftCardNumber)->first();

+ 2 - 4
packages/Longyi/Gift/src/Models/GiftCards.php

@@ -39,15 +39,13 @@ class GiftCards extends Model implements GiftCardsContract
         }
         }
         $cart = cart()->getCart();
         $cart = cart()->getCart();
         $cart->giftcard_number = $giftcard->giftcard_number;
         $cart->giftcard_number = $giftcard->giftcard_number;
+        $remainingGiftcardAmount = core()->convertPrice($giftcard->remaining_giftcard_amount);
         // 计算可以使用的礼品卡金额
         // 计算可以使用的礼品卡金额
-        if ($cart->grand_total <= $giftcard->remaining_giftcard_amount) {
+        if ($cart->grand_total <= $remainingGiftcardAmount) {
             $cart->giftcard_amount = $cart->grand_total - 0.01;
             $cart->giftcard_amount = $cart->grand_total - 0.01;
         } else {
         } else {
             $cart->giftcard_amount = $giftcard->remaining_giftcard_amount;
             $cart->giftcard_amount = $giftcard->remaining_giftcard_amount;
         }
         }
-        // 更新购物车总额
-        $cart->grand_total = max(0, $cart->grand_total - $cart->giftcard_amount);
-        $cart->base_grand_total = max(0, $cart->base_grand_total - $cart->giftcard_amount);
         $cart->save();
         $cart->save();
         return true;
         return true;
     }
     }

+ 2 - 2
packages/Longyi/Gift/src/Resources/views/components/giftcard-cartsummary.blade.php

@@ -69,7 +69,7 @@
                                                     @{{ giftCard.giftcard_number }}
                                                     @{{ giftCard.giftcard_number }}
                                                 </p>
                                                 </p>
                                                 <p class="text-sm text-gray-600 mt-1">
                                                 <p class="text-sm text-gray-600 mt-1">
-                                                    余额: <span class="font-bold text-green-600">$@{{ giftCard.remaining_giftcard_amount }}</span>
+                                                    余额: <span class="font-bold text-green-600">@{{ giftCard.formatted_remaining_giftcard_amount }}</span>
                                                 </p>
                                                 </p>
                                                 <p class="text-xs text-gray-500 mt-1">
                                                 <p class="text-xs text-gray-500 mt-1">
                                                     有效期至: @{{ giftCard.expirationdate }}
                                                     有效期至: @{{ giftCard.expirationdate }}
@@ -288,7 +288,7 @@
     </p>
     </p>
 
 
     <p class="text-base font-medium">
     <p class="text-base font-medium">
-        - $@{{ cart.giftcard_amount }}
+        - @{{ cart.formatted_giftcard_amount }}
     </p>
     </p>
 </div>
 </div>
 
 

+ 2 - 0
packages/Webkul/Shop/src/Http/Resources/CartResource.php

@@ -51,7 +51,9 @@ class CartResource extends JsonResource
             $this->mergeWhen($this->giftcard_number, [
             $this->mergeWhen($this->giftcard_number, [
                 'giftcard_number'           => $this->giftcard_number,
                 'giftcard_number'           => $this->giftcard_number,
                 'giftcard_amount'           => $this->giftcard_amount,
                 'giftcard_amount'           => $this->giftcard_amount,
+                'formatted_giftcard_amount'           => core()->formatPrice($this->giftcard_amount),
                 'remaining_giftcard_amount' => $this->remaining_giftcard_amount,
                 'remaining_giftcard_amount' => $this->remaining_giftcard_amount,
+                'formatted_remaining_giftcard_amount' => core()->formatPrice($this->remaining_giftcard_amount),
             ]),
             ]),
         ];
         ];
     }
     }