HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/zipwire.komma.pro/app/KommaApp/Shop/seeds/SampleOrders.php
<?php
/**
 * Created by PhpStorm.
 * User: julesgraus
 * Date: 02/02/2018
 * Time: 11:03
 */

namespace App\KommaApp\Shop\seeds;

use App\KommaApp\Shop\Orders\Models\Order;
use App\KommaApp\Shop\Products\Product\Product;
use App\KommaApp\Shop\Products\Product\ProductService;
use App\KommaApp\Shop\Products\ProductComposite\ProductComposite;
use App\KommaApp\Shop\Products\ProductComposite\ProductCompositeService;
use App\KommaApp\Shop\Products\ProductGroup\ProductGroup;
use App\KommaApp\Shop\Products\ProductGroup\ProductGroupService;
use Illuminate\Database\Seeder;

class SampleOrders extends Seeder
{
    public function run()
    {
        $productService = new ProductService();
        $productGroupService = new ProductGroupService();
        $productCompositeService = new ProductCompositeService();


        /** @var Order $order */
        $order = factory(Order::class)->create(); //Also links the order to a random user in the factory

        $items = 3;
        $products = Product::inRandomOrder()->take($items)->get();
        $group = ProductGroup::inRandomOrder()->take(1)->first();
        $composite = ProductComposite::inRandomOrder()->take(1)->first();

        $products->each(function ($product) use ($order, $productService) {
            $orderedProductsOrNull = $productService->createOrderedProductFromProduct($product, $order);
        });

        $orderedProductGroupOrNull = $productGroupService->createOrderedProductGroupFromProductGroup($group, $order);
        $orderedProductCompositeOrNull = $productCompositeService->createOrderedProductCompositeProductComposite($composite, $order);

        $order->save();
    }
}