Code Duplication    Length = 5-9 lines in 3 locations

src/Eccube/Form/Type/Shopping/ShippingType.php 1 location

@@ 81-85 (lines=5) @@
78
                // 配送商品に含まれる商品種別を抽出.
79
                $OrderItems = $Shipping->getProductOrderItems();
80
                $ProductTypes = array();
81
                foreach ($OrderItems as $OrderItem) {
82
                    $ProductClass = $OrderItem->getProductClass();
83
                    $ProductType = $ProductClass->getProductType();
84
                    $ProductTypes[$ProductType->getId()] = $ProductType;
85
                }
86
87
                // 商品種別に紐づく配送業者を取得.
88
                $Deliveries = $this->deliveryRepository->getDeliveries($ProductTypes);

src/Eccube/Service/OrderHelper.php 2 locations

@@ 323-327 (lines=5) @@
320
        // 配送商品に含まれる商品種別を抽出.
321
        $OrderItems = $Shipping->getOrderItems();
322
        $ProductTypes = [];
323
        foreach ($OrderItems as $OrderItem) {
324
            $ProductClass = $OrderItem->getProductClass();
325
            $ProductType = $ProductClass->getProductType();
326
            $ProductTypes[$ProductType->getId()] = $ProductType;
327
        }
328
329
        // 商品種別に紐づく配送業者を取得.
330
        $Deliveries = $this->deliveryRepository->getDeliveries($ProductTypes);
@@ 352-360 (lines=9) @@
349
        // 受注明細に含まれる商品種別を抽出.
350
        $ProductTypes = [];
351
        /** @var OrderItem $OrderItem */
352
        foreach ($OrderItems as $OrderItem) {
353
            $ProductClass = $OrderItem->getProductClass();
354
            if (is_null($ProductClass)) {
355
                // 商品明細のみ対象とする. 送料明細等はスキップする.
356
                continue;
357
            }
358
            $ProductType = $ProductClass->getProductType();
359
            $ProductTypes[$ProductType->getId()] = $ProductType;
360
        }
361
362
        // 商品種別に紐づく配送業者を抽出
363
        $Deliveries = $this->deliveryRepository->getDeliveries($ProductTypes);