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; } }