From 9dadf05e3a88c93558b3262f31c1cc6337f16326 Mon Sep 17 00:00:00 2001 From: hskwon Date: Wed, 24 Dec 2025 14:44:21 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20Design=20=EC=8B=9C=EB=AE=AC=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20=EC=83=98=ED=94=8C=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20Seeder=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CategoryGroupSeeder: 면적/중량/수량 기반 단가 계산 그룹 3개 - DesignItemSeeder: Design 샘플 품목 99개 (RM:20, SM:25, SF:40, FG:14) - 완제품 BOM 데이터 포함 (수량 수식 quantityFormula 지원) --- database/seeders/CategoryGroupSeeder.php | 83 +++ database/seeders/DesignItemSeeder.php | 649 +++++++++++++++++++++++ 2 files changed, 732 insertions(+) create mode 100644 database/seeders/CategoryGroupSeeder.php create mode 100644 database/seeders/DesignItemSeeder.php diff --git a/database/seeders/CategoryGroupSeeder.php b/database/seeders/CategoryGroupSeeder.php new file mode 100644 index 00000000..f91f7d94 --- /dev/null +++ b/database/seeders/CategoryGroupSeeder.php @@ -0,0 +1,83 @@ +command->info('카테고리 그룹 시딩 시작...'); + + DB::transaction(function () { + // 기존 데이터 삭제 + CategoryGroup::withoutGlobalScopes() + ->where('tenant_id', $this->tenantId) + ->delete(); + + $this->seedCategoryGroups(); + }); + + $count = CategoryGroup::withoutGlobalScopes() + ->where('tenant_id', $this->tenantId) + ->count(); + $this->command->info("카테고리 그룹 시딩 완료! (총 {$count}개)"); + } + + protected function seedCategoryGroups(): void + { + $groups = [ + [ + 'code' => CategoryGroup::CODE_AREA_BASED, + 'name' => '면적기반', + 'multiplier_variable' => CategoryGroup::MULTIPLIER_AREA, + 'categories' => ['원단', '패널', '도장', '표면처리', '스크린원단'], + 'description' => '면적(㎡)을 기준으로 단가를 계산합니다. 최종단가 = 기본단가 × M(면적)', + 'sort_order' => 1, + ], + [ + 'code' => CategoryGroup::CODE_WEIGHT_BASED, + 'name' => '중량기반', + 'multiplier_variable' => CategoryGroup::MULTIPLIER_WEIGHT, + 'categories' => ['강판', '알루미늄', '스테인리스', '철재'], + 'description' => '중량(kg)을 기준으로 단가를 계산합니다. 최종단가 = 기본단가 × K(중량)', + 'sort_order' => 2, + ], + [ + 'code' => CategoryGroup::CODE_QUANTITY_BASED, + 'name' => '수량기반', + 'multiplier_variable' => null, + 'categories' => ['볼트', '너트', '와셔', '앵커', '모터', '제어반', '리모컨', '스위치', '전선', '가이드레일', '케이스', '커버', '브라켓', '실링재', '패킹'], + 'description' => '수량을 기준으로 단가를 계산합니다. 최종단가 = 기본단가 (곱셈 없음)', + 'sort_order' => 3, + ], + ]; + + foreach ($groups as $group) { + CategoryGroup::create([ + 'tenant_id' => $this->tenantId, + 'code' => $group['code'], + 'name' => $group['name'], + 'multiplier_variable' => $group['multiplier_variable'], + 'categories' => $group['categories'], + 'description' => $group['description'], + 'sort_order' => $group['sort_order'], + 'is_active' => true, + ]); + } + } +} diff --git a/database/seeders/DesignItemSeeder.php b/database/seeders/DesignItemSeeder.php new file mode 100644 index 00000000..c8234d83 --- /dev/null +++ b/database/seeders/DesignItemSeeder.php @@ -0,0 +1,649 @@ +command->info('Design 샘플 품목 시딩 시작...'); + + DB::transaction(function () { + // 기존 Design 샘플 품목 삭제 (RM-, SM-, SF-, FG- 접두사) + DB::table('items') + ->where('tenant_id', $this->tenantId) + ->where(function ($query) { + $query->where('code', 'like', 'RM-%') + ->orWhere('code', 'like', 'SM-%') + ->orWhere('code', 'like', 'SF-%') + ->orWhere('code', 'like', 'FG-%'); + }) + ->delete(); + + $this->seedRawMaterials(); + $this->seedSubMaterials(); + $this->seedScreenSemiProducts(); + $this->seedSteelSemiProducts(); + $this->seedFinishedProducts(); + }); + + $count = DB::table('items') + ->where('tenant_id', $this->tenantId) + ->where(function ($query) { + $query->where('code', 'like', 'RM-%') + ->orWhere('code', 'like', 'SM-%') + ->orWhere('code', 'like', 'SF-%') + ->orWhere('code', 'like', 'FG-%'); + }) + ->count(); + + $this->command->info("Design 샘플 품목 시딩 완료! (총 {$count}개)"); + } + + /** + * 원자재 (RM) 20종 + */ + protected function seedRawMaterials(): void + { + $items = [ + ['code' => 'RM-S001', 'name' => '강판 1.2T', 'unit' => 'KG', 'price' => 3500, 'category' => '강판'], + ['code' => 'RM-S002', 'name' => '강판 1.6T', 'unit' => 'KG', 'price' => 3800, 'category' => '강판'], + ['code' => 'RM-S003', 'name' => '강판 2.0T', 'unit' => 'KG', 'price' => 4200, 'category' => '강판'], + ['code' => 'RM-S004', 'name' => '강판 2.3T', 'unit' => 'KG', 'price' => 4500, 'category' => '강판'], + ['code' => 'RM-A001', 'name' => '알루미늄 프로파일', 'unit' => 'M', 'price' => 15000, 'category' => '알루미늄'], + ['code' => 'RM-A002', 'name' => '알루미늄 판재 2.0T', 'unit' => 'KG', 'price' => 8500, 'category' => '알루미늄'], + ['code' => 'RM-P001', 'name' => '파우더 도료 (흰색)', 'unit' => 'KG', 'price' => 12000, 'category' => '도장'], + ['code' => 'RM-P002', 'name' => '파우더 도료 (검정)', 'unit' => 'KG', 'price' => 12000, 'category' => '도장'], + ['code' => 'RM-P003', 'name' => '파우더 도료 (회색)', 'unit' => 'KG', 'price' => 12000, 'category' => '도장'], + ['code' => 'RM-F001', 'name' => '방화원단 A급', 'unit' => 'M2', 'price' => 28000, 'category' => '원단'], + ['code' => 'RM-F002', 'name' => '방화원단 B급', 'unit' => 'M2', 'price' => 22000, 'category' => '원단'], + ['code' => 'RM-R001', 'name' => '고무 패킹 3mm', 'unit' => 'M', 'price' => 3500, 'category' => '패킹'], + ['code' => 'RM-R002', 'name' => '고무 패킹 5mm', 'unit' => 'M', 'price' => 4200, 'category' => '패킹'], + ['code' => 'RM-W001', 'name' => '목재 (집성목)', 'unit' => 'M', 'price' => 25000, 'category' => '목재'], + ['code' => 'RM-G001', 'name' => '유리섬유', 'unit' => 'KG', 'price' => 15000, 'category' => '유리'], + ['code' => 'RM-I001', 'name' => '단열재 50mm', 'unit' => 'M2', 'price' => 12000, 'category' => '단열재'], + ['code' => 'RM-I002', 'name' => '단열재 100mm', 'unit' => 'M2', 'price' => 18000, 'category' => '단열재'], + ['code' => 'RM-C001', 'name' => '케이블 피복재', 'unit' => 'M', 'price' => 2800, 'category' => '전선'], + ['code' => 'RM-ST001', 'name' => 'STS304 판재', 'unit' => 'KG', 'price' => 9500, 'category' => '스테인리스'], + ['code' => 'RM-Z001', 'name' => '아연도금강판', 'unit' => 'KG', 'price' => 4800, 'category' => '강판'], + ]; + + $this->insertItems($items, 'RM'); + } + + /** + * 부자재 (SM) 25종 + */ + protected function seedSubMaterials(): void + { + $items = [ + ['code' => 'SM-B001', 'name' => '볼트 M8x30', 'unit' => 'EA', 'price' => 150, 'category' => '볼트'], + ['code' => 'SM-B002', 'name' => '볼트 M10x40', 'unit' => 'EA', 'price' => 200, 'category' => '볼트'], + ['code' => 'SM-B003', 'name' => '볼트 M12x50', 'unit' => 'EA', 'price' => 280, 'category' => '볼트'], + ['code' => 'SM-N001', 'name' => '너트 M8', 'unit' => 'EA', 'price' => 80, 'category' => '너트'], + ['code' => 'SM-N002', 'name' => '너트 M10', 'unit' => 'EA', 'price' => 100, 'category' => '너트'], + ['code' => 'SM-N003', 'name' => '너트 M12', 'unit' => 'EA', 'price' => 120, 'category' => '너트'], + ['code' => 'SM-W001', 'name' => '와셔 M8', 'unit' => 'EA', 'price' => 50, 'category' => '와셔'], + ['code' => 'SM-W002', 'name' => '와셔 M10', 'unit' => 'EA', 'price' => 60, 'category' => '와셔'], + ['code' => 'SM-W003', 'name' => '와셔 M12', 'unit' => 'EA', 'price' => 70, 'category' => '와셔'], + ['code' => 'SM-R001', 'name' => '리벳 4x10', 'unit' => 'EA', 'price' => 40, 'category' => '리벳'], + ['code' => 'SM-R002', 'name' => '리벳 5x12', 'unit' => 'EA', 'price' => 50, 'category' => '리벳'], + ['code' => 'SM-A001', 'name' => '앵커볼트 M10', 'unit' => 'EA', 'price' => 350, 'category' => '앵커'], + ['code' => 'SM-A002', 'name' => '앵커볼트 M12', 'unit' => 'EA', 'price' => 450, 'category' => '앵커'], + ['code' => 'SM-S001', 'name' => '실리콘 (투명)', 'unit' => 'EA', 'price' => 8500, 'category' => '실링재'], + ['code' => 'SM-S002', 'name' => '실리콘 (백색)', 'unit' => 'EA', 'price' => 8500, 'category' => '실링재'], + ['code' => 'SM-T001', 'name' => '양면테이프 20mm', 'unit' => 'M', 'price' => 1200, 'category' => '테이프'], + ['code' => 'SM-C001', 'name' => '케이블타이 200mm', 'unit' => 'EA', 'price' => 100, 'category' => '케이블'], + ['code' => 'SM-P001', 'name' => '보호필름', 'unit' => 'M2', 'price' => 2500, 'category' => '필름'], + ['code' => 'SM-G001', 'name' => '그리스', 'unit' => 'EA', 'price' => 12000, 'category' => '윤활'], + ['code' => 'SM-O001', 'name' => '윤활유', 'unit' => 'L', 'price' => 15000, 'category' => '윤활'], + ['code' => 'SM-E001', 'name' => '전선 2.5SQ', 'unit' => 'M', 'price' => 1800, 'category' => '전선'], + ['code' => 'SM-E002', 'name' => '전선 4.0SQ', 'unit' => 'M', 'price' => 2500, 'category' => '전선'], + ['code' => 'SM-L001', 'name' => 'LED 표시등', 'unit' => 'EA', 'price' => 5500, 'category' => '전기'], + ['code' => 'SM-WD001', 'name' => '용접봉 3.2mm', 'unit' => 'KG', 'price' => 8500, 'category' => '용접'], + ['code' => 'SM-SP001', 'name' => '스프링와셔 M10', 'unit' => 'EA', 'price' => 90, 'category' => '와셔'], + ]; + + $this->insertItems($items, 'SM'); + } + + /** + * 스크린용 반제품 (SF-SCR) 20종 + */ + protected function seedScreenSemiProducts(): void + { + $items = [ + ['code' => 'SF-SCR-F01', 'name' => '스크린 원단', 'unit' => 'M2', 'price' => 35000, 'category' => '스크린원단', 'process' => 'screen'], + ['code' => 'SF-SCR-F02', 'name' => '가이드레일 (좌)', 'unit' => 'M', 'price' => 42000, 'category' => '가이드레일', 'process' => 'screen'], + ['code' => 'SF-SCR-F03', 'name' => '가이드레일 (우)', 'unit' => 'M', 'price' => 42000, 'category' => '가이드레일', 'process' => 'screen'], + ['code' => 'SF-SCR-F04', 'name' => '상부 케이스', 'unit' => 'EA', 'price' => 145000, 'category' => '케이스', 'process' => 'screen'], + ['code' => 'SF-SCR-F05', 'name' => '하부 바텀바', 'unit' => 'EA', 'price' => 55000, 'category' => '바텀바', 'process' => 'screen'], + ['code' => 'SF-SCR-M01', 'name' => '모터 (0.75KW)', 'unit' => 'EA', 'price' => 350000, 'category' => '모터', 'process' => 'screen'], + ['code' => 'SF-SCR-M02', 'name' => '모터 (1.5KW)', 'unit' => 'EA', 'price' => 480000, 'category' => '모터', 'process' => 'screen'], + ['code' => 'SF-SCR-M03', 'name' => '모터 (2.2KW)', 'unit' => 'EA', 'price' => 620000, 'category' => '모터', 'process' => 'screen'], + ['code' => 'SF-SCR-M04', 'name' => '모터 (3.7KW)', 'unit' => 'EA', 'price' => 850000, 'category' => '모터', 'process' => 'screen'], + ['code' => 'SF-SCR-C01', 'name' => '제어반 (표준)', 'unit' => 'EA', 'price' => 280000, 'category' => '제어반', 'process' => 'screen'], + ['code' => 'SF-SCR-C02', 'name' => '제어반 (고급)', 'unit' => 'EA', 'price' => 450000, 'category' => '제어반', 'process' => 'screen'], + ['code' => 'SF-SCR-S01', 'name' => '감지기 세트', 'unit' => 'SET', 'price' => 180000, 'category' => '감지기', 'process' => 'screen'], + ['code' => 'SF-SCR-W01', 'name' => '권취축', 'unit' => 'EA', 'price' => 125000, 'category' => '권취축', 'process' => 'screen'], + ['code' => 'SF-SCR-B01', 'name' => '브라켓 세트', 'unit' => 'SET', 'price' => 78000, 'category' => '브라켓', 'process' => 'screen'], + ['code' => 'SF-SCR-E01', 'name' => '엣지윙 (좌)', 'unit' => 'M', 'price' => 15000, 'category' => '엣지윙', 'process' => 'screen'], + ['code' => 'SF-SCR-E02', 'name' => '엣지윙 (우)', 'unit' => 'M', 'price' => 15000, 'category' => '엣지윙', 'process' => 'screen'], + ['code' => 'SF-SCR-SP01', 'name' => '스프링 세트', 'unit' => 'SET', 'price' => 45000, 'category' => '스프링', 'process' => 'screen'], + ['code' => 'SF-SCR-CH01', 'name' => '체인 세트', 'unit' => 'SET', 'price' => 65000, 'category' => '체인', 'process' => 'screen'], + ['code' => 'SF-SCR-REM01', 'name' => '리모컨', 'unit' => 'EA', 'price' => 85000, 'category' => '리모컨', 'process' => 'screen'], + ['code' => 'SF-SCR-SW01', 'name' => '스위치 BOX', 'unit' => 'EA', 'price' => 45000, 'category' => '스위치', 'process' => 'screen'], + ]; + + $this->insertItems($items, 'SF'); + } + + /** + * 철재/절곡용 반제품 (SF-STL/BND) 20종 + */ + protected function seedSteelSemiProducts(): void + { + $items = [ + ['code' => 'SF-STL-D01', 'name' => '철재 도어', 'unit' => 'EA', 'price' => 320000, 'category' => '도어', 'process' => 'steel'], + ['code' => 'SF-STL-F01', 'name' => '철재 프레임', 'unit' => 'M', 'price' => 58000, 'category' => '프레임', 'process' => 'steel'], + ['code' => 'SF-STL-P01', 'name' => '철재 패널', 'unit' => 'M2', 'price' => 68000, 'category' => '패널', 'process' => 'steel'], + ['code' => 'SF-STL-H01', 'name' => '경첩 세트 (표준)', 'unit' => 'SET', 'price' => 42000, 'category' => '경첩', 'process' => 'steel'], + ['code' => 'SF-STL-H02', 'name' => '경첩 세트 (중형)', 'unit' => 'SET', 'price' => 58000, 'category' => '경첩', 'process' => 'steel'], + ['code' => 'SF-STL-L01', 'name' => '도어락 (기계식)', 'unit' => 'EA', 'price' => 95000, 'category' => '도어락', 'process' => 'steel'], + ['code' => 'SF-STL-L02', 'name' => '도어락 (전자식)', 'unit' => 'EA', 'price' => 380000, 'category' => '도어락', 'process' => 'steel'], + ['code' => 'SF-STL-C01', 'name' => '도어클로저', 'unit' => 'EA', 'price' => 115000, 'category' => '도어클로저', 'process' => 'steel'], + ['code' => 'SF-STL-S01', 'name' => '실링재', 'unit' => 'M', 'price' => 9500, 'category' => '실링재', 'process' => 'steel'], + ['code' => 'SF-STL-G01', 'name' => '유리 (방화)', 'unit' => 'M2', 'price' => 220000, 'category' => '유리', 'process' => 'steel'], + ['code' => 'SF-STL-T01', 'name' => '문턱', 'unit' => 'EA', 'price' => 58000, 'category' => '문턱', 'process' => 'steel'], + ['code' => 'SF-STL-V01', 'name' => '환기구', 'unit' => 'EA', 'price' => 75000, 'category' => '환기구', 'process' => 'steel'], + ['code' => 'SF-STL-K01', 'name' => '킥플레이트', 'unit' => 'EA', 'price' => 45000, 'category' => '킥플레이트', 'process' => 'steel'], + ['code' => 'SF-STL-W01', 'name' => '창틀', 'unit' => 'M', 'price' => 35000, 'category' => '창틀', 'process' => 'steel'], + ['code' => 'SF-STL-B01', 'name' => '볼트/너트 세트', 'unit' => 'SET', 'price' => 18000, 'category' => '볼트', 'process' => 'steel'], + ['code' => 'SF-STL-P02', 'name' => '파우더 도장', 'unit' => 'M2', 'price' => 32000, 'category' => '도장', 'process' => 'steel'], + ['code' => 'SF-BND-L01', 'name' => '절곡 L형 브라켓', 'unit' => 'EA', 'price' => 28000, 'category' => '절곡', 'process' => 'bending'], + ['code' => 'SF-BND-U01', 'name' => '절곡 U형 채널', 'unit' => 'M', 'price' => 42000, 'category' => '절곡', 'process' => 'bending'], + ['code' => 'SF-BND-Z01', 'name' => '절곡 Z형 앵글', 'unit' => 'M', 'price' => 38000, 'category' => '절곡', 'process' => 'bending'], + ['code' => 'SF-BND-C01', 'name' => '절곡 ㄷ형 보강재', 'unit' => 'M', 'price' => 35000, 'category' => '절곡', 'process' => 'bending'], + ]; + + $this->insertItems($items, 'SF'); + } + + /** + * 완제품 (FG) 14종 + */ + protected function seedFinishedProducts(): void + { + // 스크린 완제품 5종 + $screenProducts = [ + [ + 'code' => 'FG-SCR-001', + 'name' => '방화 스크린 셔터 (소형)', + 'unit' => 'EA', + 'price' => 1050000, + 'category' => 'SCREEN', + 'process' => 'screen', + 'bom' => $this->getScreenBom001(), + ], + [ + 'code' => 'FG-SCR-002', + 'name' => '방화 스크린 셔터 (중형)', + 'unit' => 'EA', + 'price' => 1150000, + 'category' => 'SCREEN', + 'process' => 'screen', + 'bom' => $this->getScreenBom002(), + ], + [ + 'code' => 'FG-SCR-003', + 'name' => '방화 스크린 셔터 (대형)', + 'unit' => 'EA', + 'price' => 1300000, + 'category' => 'SCREEN', + 'process' => 'screen', + 'bom' => $this->getScreenBom003(), + ], + [ + 'code' => 'FG-SCR-004', + 'name' => '방화 스크린 셔터 (특대)', + 'unit' => 'EA', + 'price' => 1500000, + 'category' => 'SCREEN', + 'process' => 'screen', + 'bom' => $this->getScreenBom004(), + ], + [ + 'code' => 'FG-SCR-005', + 'name' => '방화 스크린 셔터 (맞춤형)', + 'unit' => 'EA', + 'price' => 1230000, + 'category' => 'SCREEN', + 'process' => 'screen', + 'bom' => $this->getScreenBom005(), + ], + ]; + + foreach ($screenProducts as $item) { + $this->insertFinishedProduct($item); + } + + // 철재 완제품 5종 + $steelProducts = [ + [ + 'code' => 'FG-STL-001', + 'name' => '철재 방화문 (소형)', + 'unit' => 'EA', + 'price' => 1000000, + 'category' => 'STEEL', + 'process' => 'steel', + 'bom' => $this->getSteelBom001(), + ], + [ + 'code' => 'FG-STL-002', + 'name' => '철재 방화문 (중형)', + 'unit' => 'EA', + 'price' => 1120000, + 'category' => 'STEEL', + 'process' => 'steel', + 'bom' => $this->getSteelBom002(), + ], + [ + 'code' => 'FG-STL-003', + 'name' => '철재 방화문 (대형)', + 'unit' => 'EA', + 'price' => 1280000, + 'category' => 'STEEL', + 'process' => 'steel', + 'bom' => $this->getSteelBom003(), + ], + [ + 'code' => 'FG-STL-004', + 'name' => '철재 방화문 (양개)', + 'unit' => 'EA', + 'price' => 1200000, + 'category' => 'STEEL', + 'process' => 'steel', + 'bom' => $this->getSteelBom004(), + ], + [ + 'code' => 'FG-STL-005', + 'name' => '철재 방화문 (특수)', + 'unit' => 'EA', + 'price' => 1170000, + 'category' => 'STEEL', + 'process' => 'steel', + 'bom' => $this->getSteelBom005(), + ], + ]; + + foreach ($steelProducts as $item) { + $this->insertFinishedProduct($item); + } + + // 절곡 완제품 4종 + $bendingProducts = [ + [ + 'code' => 'FG-BND-001', + 'name' => '절곡 철재 프레임 (L형)', + 'unit' => 'EA', + 'price' => 500000, + 'category' => 'STEEL', + 'process' => 'bending', + 'bom' => $this->getBendingBom001(), + ], + [ + 'code' => 'FG-BND-002', + 'name' => '절곡 철재 패널 (U형)', + 'unit' => 'EA', + 'price' => 550000, + 'category' => 'STEEL', + 'process' => 'bending', + 'bom' => $this->getBendingBom002(), + ], + [ + 'code' => 'FG-BND-003', + 'name' => '절곡 철재 커버 (Z형)', + 'unit' => 'EA', + 'price' => 470000, + 'category' => 'STEEL', + 'process' => 'bending', + 'bom' => $this->getBendingBom003(), + ], + [ + 'code' => 'FG-BND-004', + 'name' => '절곡 철재 보강재 (ㄷ형)', + 'unit' => 'EA', + 'price' => 450000, + 'category' => 'STEEL', + 'process' => 'bending', + 'bom' => $this->getBendingBom004(), + ], + ]; + + foreach ($bendingProducts as $item) { + $this->insertFinishedProduct($item); + } + } + + /** + * 품목 일괄 삽입 + */ + protected function insertItems(array $items, string $itemType): void + { + $now = now(); + + foreach ($items as $item) { + DB::table('items')->insert([ + 'tenant_id' => $this->tenantId, + 'item_type' => $itemType, + 'code' => $item['code'], + 'name' => $item['name'], + 'unit' => $item['unit'], + 'process_type' => $item['process'] ?? null, + 'item_category' => $item['category'] ?? null, + 'attributes' => json_encode(['salesPrice' => $item['price']]), + 'is_active' => true, + 'created_at' => $now, + 'updated_at' => $now, + ]); + } + } + + /** + * 완제품 삽입 (BOM 포함) + */ + protected function insertFinishedProduct(array $item): void + { + $now = now(); + + DB::table('items')->insert([ + 'tenant_id' => $this->tenantId, + 'item_type' => 'FG', + 'code' => $item['code'], + 'name' => $item['name'], + 'unit' => $item['unit'], + 'process_type' => $item['process'], + 'item_category' => $item['category'], + 'bom' => json_encode($item['bom']), + 'attributes' => json_encode(['salesPrice' => $item['price']]), + 'is_active' => true, + 'created_at' => $now, + 'updated_at' => $now, + ]); + } + + // ===== 스크린 BOM 정의 ===== + + protected function getScreenBom001(): array + { + return [ + ['childItemCode' => 'SF-SCR-F01', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000'], + ['childItemCode' => 'SF-SCR-F02', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-F03', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-F04', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-F05', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-M01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '소형용'], + ['childItemCode' => 'SF-SCR-C01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-S01', 'quantity' => 1, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-W01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-B01', 'quantity' => 1, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-SW01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SM-B002', 'quantity' => 20, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '조립용'], + ['childItemCode' => 'SM-N002', 'quantity' => 20, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SM-W002', 'quantity' => 20, 'unit' => 'EA', 'quantityFormula' => ''], + ]; + } + + protected function getScreenBom002(): array + { + return [ + ['childItemCode' => 'SF-SCR-F01', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000'], + ['childItemCode' => 'SF-SCR-F02', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-F03', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-F04', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-F05', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-M02', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '중형용'], + ['childItemCode' => 'SF-SCR-C01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-S01', 'quantity' => 1, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-W01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-B01', 'quantity' => 2, 'unit' => 'SET', 'quantityFormula' => '', 'note' => '중형용 2세트'], + ['childItemCode' => 'SF-SCR-E01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-E02', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-REM01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SM-B002', 'quantity' => 30, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '조립용'], + ['childItemCode' => 'SM-N002', 'quantity' => 30, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SM-A001', 'quantity' => 8, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '고정용'], + ]; + } + + protected function getScreenBom003(): array + { + return [ + ['childItemCode' => 'SF-SCR-F01', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000'], + ['childItemCode' => 'SF-SCR-F02', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-F03', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-F04', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-F05', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-M03', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '대형용'], + ['childItemCode' => 'SF-SCR-C02', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '고급형'], + ['childItemCode' => 'SF-SCR-S01', 'quantity' => 2, 'unit' => 'SET', 'quantityFormula' => '', 'note' => '대형용 2세트'], + ['childItemCode' => 'SF-SCR-W01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-B01', 'quantity' => 3, 'unit' => 'SET', 'quantityFormula' => '', 'note' => '대형용 3세트'], + ['childItemCode' => 'SF-SCR-E01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-E02', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-CH01', 'quantity' => 1, 'unit' => 'SET', 'quantityFormula' => '', 'note' => '보조 승강'], + ['childItemCode' => 'SF-SCR-REM01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SM-B003', 'quantity' => 40, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '조립용'], + ['childItemCode' => 'SM-N003', 'quantity' => 40, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SM-A002', 'quantity' => 12, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '고정용'], + ]; + } + + protected function getScreenBom004(): array + { + return [ + ['childItemCode' => 'SF-SCR-F01', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000'], + ['childItemCode' => 'SF-SCR-F02', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-F03', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-F04', 'quantity' => 2, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '특대형 2개'], + ['childItemCode' => 'SF-SCR-F05', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-M04', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '특대형용'], + ['childItemCode' => 'SF-SCR-C02', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '고급형'], + ['childItemCode' => 'SF-SCR-S01', 'quantity' => 2, 'unit' => 'SET', 'quantityFormula' => '', 'note' => '특대형용 2세트'], + ['childItemCode' => 'SF-SCR-W01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-B01', 'quantity' => 4, 'unit' => 'SET', 'quantityFormula' => '', 'note' => '특대형용 4세트'], + ['childItemCode' => 'SF-SCR-E01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-E02', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-SP01', 'quantity' => 2, 'unit' => 'SET', 'quantityFormula' => '', 'note' => '보조 스프링'], + ['childItemCode' => 'SF-SCR-CH01', 'quantity' => 2, 'unit' => 'SET', 'quantityFormula' => '', 'note' => '보조 승강'], + ['childItemCode' => 'SF-SCR-REM01', 'quantity' => 2, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '예비 포함'], + ['childItemCode' => 'SM-B003', 'quantity' => 60, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '조립용'], + ['childItemCode' => 'SM-N003', 'quantity' => 60, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SM-A002', 'quantity' => 16, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '고정용'], + ['childItemCode' => 'SM-G001', 'quantity' => 2, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '윤활'], + ]; + } + + protected function getScreenBom005(): array + { + return [ + ['childItemCode' => 'SF-SCR-F01', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000'], + ['childItemCode' => 'SF-SCR-F02', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-F03', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-F04', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-F05', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-M02', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '중형용'], + ['childItemCode' => 'SF-SCR-C02', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '맞춤형 고급'], + ['childItemCode' => 'SF-SCR-S01', 'quantity' => 1, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-W01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-B01', 'quantity' => 2, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-E01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-E02', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'H/1000'], + ['childItemCode' => 'SF-SCR-REM01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-SCR-SW01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SM-B002', 'quantity' => 35, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '조립용'], + ['childItemCode' => 'SM-N002', 'quantity' => 35, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SM-A001', 'quantity' => 10, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '고정용'], + ]; + } + + // ===== 철재 BOM 정의 ===== + + protected function getSteelBom001(): array + { + return [ + ['childItemCode' => 'SF-STL-D01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-F01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => '(W+H)*2/1000'], + ['childItemCode' => 'SF-STL-P01', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000'], + ['childItemCode' => 'SF-STL-H01', 'quantity' => 1, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-L01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-C01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-S01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => '(W+H)*2/1000', 'note' => '둘레 기준'], + ['childItemCode' => 'SF-STL-T01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-K01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-B01', 'quantity' => 2, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SM-A001', 'quantity' => 8, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '고정용'], + ['childItemCode' => 'SM-S001', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '실링'], + ]; + } + + protected function getSteelBom002(): array + { + return [ + ['childItemCode' => 'SF-STL-D01', 'quantity' => 2, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '양쪽 도어'], + ['childItemCode' => 'SF-STL-F01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => '(W+H)*2/1000'], + ['childItemCode' => 'SF-STL-P01', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000'], + ['childItemCode' => 'SF-STL-H02', 'quantity' => 2, 'unit' => 'SET', 'quantityFormula' => '', 'note' => '중형 경첩'], + ['childItemCode' => 'SF-STL-L01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-C01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-S01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => '(W+H)*2/1000'], + ['childItemCode' => 'SF-STL-T01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-K01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-B01', 'quantity' => 3, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SM-A001', 'quantity' => 12, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '고정용'], + ['childItemCode' => 'SM-S001', 'quantity' => 2, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '실링'], + ]; + } + + protected function getSteelBom003(): array + { + return [ + ['childItemCode' => 'SF-STL-D01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-F01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => '(W+H)*2/1000'], + ['childItemCode' => 'SF-STL-P01', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000'], + ['childItemCode' => 'SF-STL-G01', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/4000000', 'note' => '창문 25%'], + ['childItemCode' => 'SF-STL-H02', 'quantity' => 2, 'unit' => 'SET', 'quantityFormula' => '', 'note' => '대형 경첩'], + ['childItemCode' => 'SF-STL-L02', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '전자식'], + ['childItemCode' => 'SF-STL-C01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-S01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => '(W+H)*2/1000'], + ['childItemCode' => 'SF-STL-T01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-V01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '환기구'], + ['childItemCode' => 'SF-STL-W01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => 'W/1000', 'note' => '창틀'], + ['childItemCode' => 'SF-STL-B01', 'quantity' => 4, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SM-A002', 'quantity' => 16, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '고정용'], + ['childItemCode' => 'SM-S002', 'quantity' => 2, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '실링'], + ]; + } + + protected function getSteelBom004(): array + { + return [ + ['childItemCode' => 'SF-STL-D01', 'quantity' => 2, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '양개 도어'], + ['childItemCode' => 'SF-STL-F01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => '(W+H)*2/1000'], + ['childItemCode' => 'SF-STL-P01', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000'], + ['childItemCode' => 'SF-STL-H02', 'quantity' => 4, 'unit' => 'SET', 'quantityFormula' => '', 'note' => '양쪽 경첩'], + ['childItemCode' => 'SF-STL-L01', 'quantity' => 2, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '양쪽 잠금'], + ['childItemCode' => 'SF-STL-C01', 'quantity' => 2, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '양쪽 클로저'], + ['childItemCode' => 'SF-STL-S01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => '(W+H)*2/1000'], + ['childItemCode' => 'SF-STL-T01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-B01', 'quantity' => 4, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SM-A001', 'quantity' => 16, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '고정용'], + ['childItemCode' => 'SM-S001', 'quantity' => 2, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '실링'], + ]; + } + + protected function getSteelBom005(): array + { + return [ + ['childItemCode' => 'SF-STL-D01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-F01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => '(W+H)*2/1000'], + ['childItemCode' => 'SF-STL-P01', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000'], + ['childItemCode' => 'SF-STL-P02', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000', 'note' => '특수 도장'], + ['childItemCode' => 'SF-STL-H02', 'quantity' => 2, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-L02', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '전자식'], + ['childItemCode' => 'SF-STL-C01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-S01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => '(W+H)*2/1000'], + ['childItemCode' => 'SF-STL-T01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-K01', 'quantity' => 1, 'unit' => 'EA', 'quantityFormula' => ''], + ['childItemCode' => 'SF-STL-B01', 'quantity' => 3, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SM-A002', 'quantity' => 12, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '고정용'], + ['childItemCode' => 'SM-S002', 'quantity' => 2, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '실링'], + ]; + } + + // ===== 절곡 BOM 정의 ===== + + protected function getBendingBom001(): array + { + return [ + ['childItemCode' => 'SF-BND-L01', 'quantity' => 4, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '코너 4개'], + ['childItemCode' => 'SF-STL-F01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => '(W+H)*2/1000'], + ['childItemCode' => 'SF-STL-P02', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000'], + ['childItemCode' => 'SF-STL-B01', 'quantity' => 2, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SM-B002', 'quantity' => 16, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '조립용'], + ['childItemCode' => 'SM-N002', 'quantity' => 16, 'unit' => 'EA', 'quantityFormula' => ''], + ]; + } + + protected function getBendingBom002(): array + { + return [ + ['childItemCode' => 'SF-BND-U01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => '(W+H)*2/1000'], + ['childItemCode' => 'SF-STL-P01', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000'], + ['childItemCode' => 'SF-STL-P02', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000'], + ['childItemCode' => 'SF-STL-B01', 'quantity' => 2, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SM-B002', 'quantity' => 20, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '조립용'], + ['childItemCode' => 'SM-N002', 'quantity' => 20, 'unit' => 'EA', 'quantityFormula' => ''], + ]; + } + + protected function getBendingBom003(): array + { + return [ + ['childItemCode' => 'SF-BND-Z01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => '(W+H)*2/1000'], + ['childItemCode' => 'SF-STL-P02', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000'], + ['childItemCode' => 'SF-STL-B01', 'quantity' => 1, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SM-B001', 'quantity' => 12, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '조립용'], + ['childItemCode' => 'SM-N001', 'quantity' => 12, 'unit' => 'EA', 'quantityFormula' => ''], + ]; + } + + protected function getBendingBom004(): array + { + return [ + ['childItemCode' => 'SF-BND-C01', 'quantity' => 1, 'unit' => 'M', 'quantityFormula' => '(W+H)*2/1000'], + ['childItemCode' => 'SF-STL-P02', 'quantity' => 1, 'unit' => 'M2', 'quantityFormula' => 'W*H/1000000'], + ['childItemCode' => 'SF-STL-B01', 'quantity' => 1, 'unit' => 'SET', 'quantityFormula' => ''], + ['childItemCode' => 'SM-B001', 'quantity' => 10, 'unit' => 'EA', 'quantityFormula' => '', 'note' => '조립용'], + ['childItemCode' => 'SM-N001', 'quantity' => 10, 'unit' => 'EA', 'quantityFormula' => ''], + ]; + } +}