打折導致金額不同,綠界電子發票開立失敗
andykao1026 opened this issue · 2 comments
andykao1026 commented
j7-dev commented
目前測試結果
- 打折後小數點結帳開發票,會成功
- 直接設定小數點也是開立成功
失敗原因
開不了是因為你那邊加總變成 1957 了 對不上訂單的 1956
綠界發票是
1377+199+299*2=2174,打完9折 1956.6,四捨五入,所以開1957發票
WC 訂單是
13770.9 省略為1239
1990.9 省略為179
29920.9 省略為538
合計 1956
就對不上了
參考資料
https://stackoverflow.com/questions/44659553/woocommerce-rounding-before-calculate-totals
j7-dev commented
新增判斷
如果 $order
取得的總金額 $order_total
與 $items
加總後總金額不同就用 $order_total_summed_by_items
當作 $order_total
$order_total_summed_by_items += round( (float) $shippingTotal, 2 ) + round( (float) $fee_amount, 2 );
if ( $order_total !== $order_total_summed_by_items && ( abs( $order_total - $order_total_summed_by_items ) < 2 ) ) {
// 如果金額不符合,且差距在 2 元內,就是把 $order_total 改為 $order_total_summed_by_items
$order_total = $order_total_summed_by_items;
}