Code Duplication    Length = 10-15 lines in 5 locations

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

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