create( (new ItemCategoryAttr) ->setName($faker->jobTitle) ); // single item for ($j = 0; $j < 10; $j++) { $itemSaleInfoAttr = (new ItemSaleInfoAttr) ->setPrice($faker->numerify("####")) ->setChartOfAccountId( $chartOfAccountRepositoryInterface->getRandomId() ); $itemPurchaseInfoAttr = (new ItemPurchaseInfoAttr) ->setPrice($faker->numerify("####")) ->setChartOfAccountId( $chartOfAccountRepositoryInterface->getRandomId() ); $itemWarehouseAttrs = []; for ($k=0; $k <= 3; $k++) { $itemWarehouseAttrs[] = (new ItemWarehouseAttr) ->setWarehouseId($warehouseRepositoryInterface->getRandomId()) ->setInitialStock($faker->numerify("###")); } $relatedItemAttrs = []; for ($k=0; $k <= 3; $k++) { if ($relatedItemId = $itemRepositoryInterface->getRandomId()) { $relatedItemAttrs[] = (new RelatedItemAttr) ->setRelatedItemId($relatedItemId) ->setQty($faker->numerify("#")); } } $itemFacade->handleSaveItem( (new ItemAttr) ->setItemCategoryId($category->id) ->setName($faker->name) ->setSku($faker->numerify("#####")) ->setUnit($faker->colorName) ->setItemSaleInfoAttr($itemSaleInfoAttr) ->setItemPurchaseInfoAttr($itemPurchaseInfoAttr) ->setItemWarehouses($itemWarehouseAttrs) ->setRelatedItems($faker->randomElement([[], $relatedItemAttrs])) ); } } } }