Code Duplication    Length = 11-15 lines in 4 locations

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

@@ 208-222 (lines=15) @@
205
        }
206
    }
207
208
    protected function calculateSubTotal(ItemHolderInterface $itemHolder)
209
    {
210
        $total = $itemHolder->getItems()
211
            ->getProductClasses()
212
            ->reduce(function ($sum, ItemInterface $item) {
213
                $sum += $item->getPriceIncTax() * $item->getQuantity();
214
215
                return $sum;
216
            }, 0);
217
        // TODO
218
        if ($itemHolder instanceof Order) {
219
            // Order の場合は SubTotal をセットする
220
            $itemHolder->setSubTotal($total);
221
        }
222
    }
223
224
    /**
225
     * @param ItemHolderInterface $itemHolder
@@ 227-237 (lines=11) @@
224
    /**
225
     * @param ItemHolderInterface $itemHolder
226
     */
227
    protected function calculateDeliveryFeeTotal(ItemHolderInterface $itemHolder)
228
    {
229
        $total = $itemHolder->getItems()
230
            ->getDeliveryFees()
231
            ->reduce(function ($sum, ItemInterface $item) {
232
                $sum += $item->getPriceIncTax() * $item->getQuantity();
233
234
                return $sum;
235
            }, 0);
236
        $itemHolder->setDeliveryFeeTotal($total);
237
    }
238
239
    /**
240
     * @param ItemHolderInterface $itemHolder
@@ 242-253 (lines=12) @@
239
    /**
240
     * @param ItemHolderInterface $itemHolder
241
     */
242
    protected function calculateDiscount(ItemHolderInterface $itemHolder)
243
    {
244
        $total = $itemHolder->getItems()
245
            ->getDiscounts()
246
            ->reduce(function ($sum, ItemInterface $item) {
247
                $sum += $item->getPriceIncTax() * $item->getQuantity();
248
249
                return $sum;
250
            }, 0);
251
        // TODO 後方互換のため discount には正の整数を代入する
252
        $itemHolder->setDiscount($total * -1);
253
    }
254
255
    /**
256
     * @param ItemHolderInterface $itemHolder
@@ 258-268 (lines=11) @@
255
    /**
256
     * @param ItemHolderInterface $itemHolder
257
     */
258
    protected function calculateCharge(ItemHolderInterface $itemHolder)
259
    {
260
        $total = $itemHolder->getItems()
261
            ->getCharges()
262
            ->reduce(function ($sum, ItemInterface $item) {
263
                $sum += $item->getPriceIncTax() * $item->getQuantity();
264
265
                return $sum;
266
            }, 0);
267
        $itemHolder->setCharge($total);
268
    }
269
270
    /**
271
     * @param ItemHolderInterface $itemHolder