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); $orderPayment->setCreatedBy($orderShop->getUser()) ; $orderPayment->setUpdatedBy($orderShop->getUser()) ; 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) && $this->priceUtils->getTotalWithTax($order)>0) { return true; } else { return false; } } public function getTotalOrderPayments($order): float { $totalAmount = floatval(0); foreach ($order->getOrderPayments() as $orderPayment) { $totalAmount = $orderPayment->getAmount() + $totalAmount; } return $totalAmount; } }