sebastian-mollie / SyliusMolliePlugin-DO-NOT-USE-

OLD Sylius Mollie payment gateway integration. Please use the newest version. I will be closing this repo by the end of the year.
https://github.com/mollie/Sylius/releases/tag/v5.0.0
MIT License
1 stars 4 forks source link

Error on documentation installation #287

Open ytilotti opened 2 years ago

ytilotti commented 2 years ago

There is an error on the documentation installation (step 3). BitBag\SyliusMolliePlugin\Entity\OrderTrait doesn't exists.

<?php

declare(strict_types=1);

namespace App\Entity\Order;

use BitBag\SyliusMolliePlugin\Entity\OrderInterface;
use BitBag\SyliusMolliePlugin\Entity\OrderTrait;

use Sylius\Component\Core\Model\Order as BaseOrder;

class Order extends BaseOrder implements OrderInterface
{
    use AbandonedEmailOrderTrait;
}

Need to use use BitBag\SyliusMolliePlugin\Entity\AbandonedEmailOrderTrait I suppose. And there are missing functions. Another Trait is missing?

treeleaf commented 1 year ago

@ytilotti I found the missing methods in Tests\BitBag\SyliusMolliePlugin\Entity, so I used this:

<?php

declare(strict_types=1);

namespace App\Entity\Order;

use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use BitBag\SyliusMolliePlugin\Entity\OrderInterface;
use BitBag\SyliusMolliePlugin\Entity\AbandonedEmailOrderTrait;
use BitBag\SyliusMolliePlugin\Entity\RecurringOrderTrait;
use BitBag\SyliusMolliePlugin\Entity\ProductVariantInterface;
use Sylius\Component\Core\Model\Order as BaseOrder;
use Sylius\Component\Core\Model\OrderItemInterface;

/**
 * @ORM\Entity
 * @ORM\Table(name="sylius_order")
 */
class Order extends BaseOrder implements OrderInterface
{
    use AbandonedEmailOrderTrait;
    use RecurringOrderTrait;

    public function hasRecurringContents(): bool
    {
        return 0 < $this->getRecurringItems()->count();
    }

    public function hasNonRecurringContents(): bool
    {
        return 0 < $this->getNonRecurringItems()->count();
    }

    public function getRecurringItems(): Collection
    {
        return $this
            ->items
            ->filter(function (OrderItemInterface $orderItem) {
                $variant = $orderItem->getVariant();

                return $variant instanceof ProductVariantInterface
                    && true === $variant->isRecurring();
            })
            ;
    }

    public function getNonRecurringItems(): Collection
    {
        return $this
            ->items
            ->filter(function (OrderItemInterface $orderItem) {
                $variant = $orderItem->getVariant();

                return $variant instanceof ProductVariantInterface
                    && false === $variant->isRecurring();
            })
            ;
    }
}