Code Duplication    Length = 37-40 lines in 2 locations

src/Eccube/Controller/Admin/Product/ProductController.php 1 location

@@ 923-962 (lines=40) @@
920
            // データ行の出力.
921
            $this->csvExportService->setExportQueryBuilder($qb);
922
923
            $this->csvExportService->exportData(function ($entity, CsvExportService $csvService) use ($request) {
924
                $Csvs = $csvService->getCsvs();
925
926
                /** @var $Product \Eccube\Entity\Product */
927
                $Product = $entity;
928
929
                /** @var $ProductClassess \Eccube\Entity\ProductClass[] */
930
                $ProductClassess = $Product->getProductClasses();
931
932
                foreach ($ProductClassess as $ProductClass) {
933
                    $ExportCsvRow = new ExportCsvRow();
934
935
                    // CSV出力項目と合致するデータを取得.
936
                    foreach ($Csvs as $Csv) {
937
                        // 商品データを検索.
938
                        $ExportCsvRow->setData($csvService->getData($Csv, $Product));
939
                        if ($ExportCsvRow->isDataNull()) {
940
                            // 商品規格情報を検索.
941
                            $ExportCsvRow->setData($csvService->getData($Csv, $ProductClass));
942
                        }
943
944
                        $event = new EventArgs(
945
                            [
946
                                'csvService' => $csvService,
947
                                'Csv' => $Csv,
948
                                'ProductClass' => $ProductClass,
949
                                'ExportCsvRow' => $ExportCsvRow,
950
                            ],
951
                            $request
952
                        );
953
                        $this->eventDispatcher->dispatch(EccubeEvents::ADMIN_PRODUCT_CSV_EXPORT, $event);
954
955
                        $ExportCsvRow->pushData();
956
                    }
957
958
                    // $row[] = number_format(memory_get_usage(true));
959
                    // 出力.
960
                    $csvService->fputcsv($ExportCsvRow->getRow());
961
                }
962
            });
963
        });
964
965
        $now = new \DateTime();

src/Eccube/Controller/Admin/Order/OrderController.php 1 location

@@ 331-367 (lines=37) @@
328
329
            // データ行の出力.
330
            $this->csvExportService->setExportQueryBuilder($qb);
331
            $this->csvExportService->exportData(function ($entity, $csvService) use ($request) {
332
                $Csvs = $csvService->getCsvs();
333
334
                $Order = $entity;
335
                $OrderItems = $Order->getOrderItems();
336
337
                foreach ($OrderItems as $OrderItem) {
338
                    $ExportCsvRow = new \Eccube\Entity\ExportCsvRow();
339
340
                    // CSV出力項目と合致するデータを取得.
341
                    foreach ($Csvs as $Csv) {
342
                        // 受注データを検索.
343
                        $ExportCsvRow->setData($csvService->getData($Csv, $Order));
344
                        if ($ExportCsvRow->isDataNull()) {
345
                            // 受注データにない場合は, 受注明細を検索.
346
                            $ExportCsvRow->setData($csvService->getData($Csv, $OrderItem));
347
                        }
348
349
                        $event = new EventArgs(
350
                            [
351
                                'csvService' => $csvService,
352
                                'Csv' => $Csv,
353
                                'OrderItem' => $OrderItem,
354
                                'ExportCsvRow' => $ExportCsvRow,
355
                            ],
356
                            $request
357
                        );
358
                        $this->eventDispatcher->dispatch(EccubeEvents::ADMIN_ORDER_CSV_EXPORT_ORDER, $event);
359
360
                        $ExportCsvRow->pushData();
361
                    }
362
363
                    //$row[] = number_format(memory_get_usage(true));
364
                    // 出力.
365
                    $csvService->fputcsv($ExportCsvRow->getRow());
366
                }
367
            });
368
        });
369
370
        $now = new \DateTime();