Code Duplication    Length = 11-15 lines in 4 locations

src/Eccube/Service/PurchaseFlow/PurchaseFlow.php 4 locations

@@ 282-296 (lines=15) @@
279
        }
280
    }
281
282
    protected function calculateSubTotal(ItemHolderInterface $itemHolder)
283
    {
284
        $total = $itemHolder->getItems()
285
            ->getProductClasses()
286
            ->reduce(function ($sum, ItemInterface $item) {
287
                $sum += $item->getPriceIncTax() * $item->getQuantity();
288
289
                return $sum;
290
            }, 0);
291
        // TODO
292
        if ($itemHolder instanceof Order) {
293
            // Order の場合は SubTotal をセットする
294
            $itemHolder->setSubTotal($total);
295
        }
296
    }
297
298
    /**
299
     * @param ItemHolderInterface $itemHolder
@@ 301-311 (lines=11) @@
298
    /**
299
     * @param ItemHolderInterface $itemHolder
300
     */
301
    protected function calculateDeliveryFeeTotal(ItemHolderInterface $itemHolder)
302
    {
303
        $total = $itemHolder->getItems()
304
            ->getDeliveryFees()
305
            ->reduce(function ($sum, ItemInterface $item) {
306
                $sum += $item->getPriceIncTax() * $item->getQuantity();
307
308
                return $sum;
309
            }, 0);
310
        $itemHolder->setDeliveryFeeTotal($total);
311
    }
312
313
    /**
314
     * @param ItemHolderInterface $itemHolder
@@ 316-327 (lines=12) @@
313
    /**
314
     * @param ItemHolderInterface $itemHolder
315
     */
316
    protected function calculateDiscount(ItemHolderInterface $itemHolder)
317
    {
318
        $total = $itemHolder->getItems()
319
            ->getDiscounts()
320
            ->reduce(function ($sum, ItemInterface $item) {
321
                $sum += $item->getPriceIncTax() * $item->getQuantity();
322
323
                return $sum;
324
            }, 0);
325
        // TODO 後方互換のため discount には正の整数を代入する
326
        $itemHolder->setDiscount($total * -1);
327
    }
328
329
    /**
330
     * @param ItemHolderInterface $itemHolder
@@ 332-342 (lines=11) @@
329
    /**
330
     * @param ItemHolderInterface $itemHolder
331
     */
332
    protected function calculateCharge(ItemHolderInterface $itemHolder)
333
    {
334
        $total = $itemHolder->getItems()
335
            ->getCharges()
336
            ->reduce(function ($sum, ItemInterface $item) {
337
                $sum += $item->getPriceIncTax() * $item->getQuantity();
338
339
                return $sum;
340
            }, 0);
341
        $itemHolder->setCharge($total);
342
    }
343
344
    /**
345
     * @param ItemHolderInterface $itemHolder