|
- <?php
-
- namespace Lc\ShopBundle\Services\Order;
-
-
- use Lc\ShopBundle\Context\OrderPaymentInterface;
-
- trait OrderUtilsPaymentTrait
- {
- public function createOrderPayment($orderShop, $meanPayment, $amount, $reference = null, $comment = null, $paidAt = null)
- {
- $classOrderPayment = $this->em->getClassMetadata(OrderPaymentInterface::class)->getName();
- $orderPayment = new $classOrderPayment;
-
- $orderPayment->setOrderShop($orderShop);
- $orderPayment->setMeanPayment($meanPayment);
- $orderPayment->setAmount($amount);
- $orderPayment->setReference($reference);
- $orderPayment->setComment($comment);
- $orderPayment->setEditable(false);
-
- if ($paidAt) {
- $orderPayment->setPaidAt($paidAt);
- } else {
- $orderPayment->setPaidAt(new \DateTime('now'));
- }
-
- $this->em->persist($orderPayment);
- $this->em->flush();
-
- return $orderPayment ;
- }
-
- public function isOrderPaid($order)
- {
- if ($this->getTotalOrderPayments($order) >= $this->priceUtils->getTotalWithTax($order)) {
- return true;
- } else {
- return false;
- }
- }
-
- public function getTotalOrderPayments($order): float
- {
- $totalAmount = floatval(0);
- foreach ($order->getOrderPayments() as $orderPayment) {
- $totalAmount = $orderPayment->getAmount() + $totalAmount;
- }
- return $totalAmount;
- }
-
- }
|