Code Duplication    Length = 12-13 lines in 4 locations

src/Eccube/Controller/Admin/Product/CsvImportController.php 4 locations

@@ 340-351 (lines=12) @@
337
                        if ($ProductClasses->count() < 1) {
338
                            // 規格分類1(ID)がセットされていると規格なし商品、規格あり商品を作成
339
                            $ProductClassOrg = $this->createProductClass($row, $Product, $data, $headerByKey);
340
                            if ($this->BaseInfo->isOptionProductDeliveryFee()) {
341
                                if (isset($row[$headerByKey['delivery_fee']]) && StringUtil::isNotBlank($row[$headerByKey['delivery_fee']])) {
342
                                    $deliveryFee = str_replace(',', '', $row[$headerByKey['delivery_fee']]);
343
                                    $errors = $this->validator->validate($deliveryFee, new GreaterThanOrEqual(['value' => 0]));
344
                                    if ($errors->count() === 0) {
345
                                        $ProductClassOrg->setDeliveryFee($deliveryFee);
346
                                    } else {
347
                                        $message = trans('admin.common.csv_invalid_greater_than_zero', ['%line%' => $line, '%name%' => $headerByKey['delivery_fee']]);
348
                                        $this->addErrors($message);
349
                                    }
350
                                }
351
                            }
352
353
                            // 商品別税率機能が有効の場合に税率を更新
354
                            if ($this->BaseInfo->isOptionProductTaxRule()) {
@@ 465-476 (lines=12) @@
462
                                ) {
463
                                    $this->updateProductClass($row, $Product, $pc, $data, $headerByKey);
464
465
                                    if ($this->BaseInfo->isOptionProductDeliveryFee()) {
466
                                        if (isset($row[$headerByKey['delivery_fee']]) && StringUtil::isNotBlank($row[$headerByKey['delivery_fee']])) {
467
                                            $deliveryFee = str_replace(',', '', $row[$headerByKey['delivery_fee']]);
468
                                            $errors = $this->validator->validate($deliveryFee, new GreaterThanOrEqual(['value' => 0]));
469
                                            if ($errors->count() === 0) {
470
                                                $pc->setDeliveryFee($deliveryFee);
471
                                            } else {
472
                                                $message = trans('admin.common.csv_invalid_greater_than_zero', ['%line%' => $line, '%name%' => $headerByKey['delivery_fee']]);
473
                                                $this->addErrors($message);
474
                                            }
475
                                        }
476
                                    }
477
478
                                    // 商品別税率機能が有効の場合に税率を更新
479
                                    if ($this->BaseInfo->isOptionProductTaxRule()) {
@@ 583-594 (lines=12) @@
580
                                    }
581
                                    $ProductClass = $this->createProductClass($row, $Product, $data, $headerByKey, $ClassCategory1, $ClassCategory2);
582
583
                                    if ($this->BaseInfo->isOptionProductDeliveryFee()) {
584
                                        if (isset($row[$headerByKey['delivery_fee']]) && StringUtil::isNotBlank($row[$headerByKey['delivery_fee']])) {
585
                                            $deliveryFee = str_replace(',', '', $row[$headerByKey['delivery_fee']]);
586
                                            $errors = $this->validator->validate($deliveryFee, new GreaterThanOrEqual(['value' => 0]));
587
                                            if ($errors->count() === 0) {
588
                                                $ProductClass->setDeliveryFee($deliveryFee);
589
                                            } else {
590
                                                $message = trans('admin.common.csv_invalid_greater_than_zero', ['%line%' => $line, '%name%' => $headerByKey['delivery_fee']]);
591
                                                $this->addErrors($message);
592
                                            }
593
                                        }
594
                                    }
595
596
                                    // 商品別税率機能が有効の場合に税率を更新
597
                                    if ($this->BaseInfo->isOptionProductTaxRule()) {
@@ 1150-1162 (lines=13) @@
1147
            $this->addErrors($message);
1148
        }
1149
1150
        if ($this->BaseInfo->isOptionProductDeliveryFee()) {
1151
            if (isset($row[$headerByKey['delivery_fee']]) && StringUtil::isNotBlank($row[$headerByKey['delivery_fee']])) {
1152
                $delivery_fee = str_replace(',', '', $row[$headerByKey['delivery_fee']]);
1153
                $errors = $this->validator->validate($delivery_fee, new GreaterThanOrEqual(['value' => 0]));
1154
                if ($errors->count() === 0) {
1155
                    $ProductClass->setDeliveryFee($delivery_fee);
1156
                } else {
1157
                    $message = trans('admin.common.csv_invalid_greater_than_zero',
1158
                        ['%line%' => $line, '%name%' => $headerByKey['delivery_fee']]);
1159
                    $this->addErrors($message);
1160
                }
1161
            }
1162
        }
1163
1164
        $Product->addProductClass($ProductClass);
1165
        $ProductStock = new ProductStock();