<?phpnamespace App\Entity\Formation;use ApiPlatform\Core\Annotation\ApiResource;use App\Repository\Formation\ApaylineRepository;use App\Entity\Formation\Cost;use App\Entity\Formation\Trashapayment;use App\Traits\Actions;use Doctrine\ORM\Mapping as ORM;#[ORM\Entity(repositoryClass: ApaylineRepository::class)]#[ORM\Table(name: 'hs_tc_formation_trashapayline')]#[ApiResource]class Trashapayline{ use Actions; #[ORM\ManyToOne(targetEntity: Trashapayment::class, inversedBy: "items")] #[ORM\JoinColumn(nullable: false)] private Trashapayment $payment; #[ORM\Column] private ?int $costId=null; #[ORM\Column(name: "amount", type: "float")] private float $amount; public function __construct(Apayline $apayline) { $this->costId = $apayline->getCost()->getId(); $this->amount = $apayline->getAmount(); $this->published=$apayline->isPublished(); } /** * @return Trashapayment */ public function getPayment(): ?Trashapayment { return $this->payment; } /** * @param Trashapayment $payment */ public function setPayment(?Trashapayment $payment): Trashapayline { $this->payment = $payment; return $this; } public function getCostId(): ?int { return $this->costId; } public function setCostId(?int $costId): void { $this->costId = $costId; } /** * Set amount * * @param float $amount * * @return Apayline */ public function setAmount($amount) { $this->amount = $amount; return $this; } /** * Get amount * * @return float */ public function getAmount() { return $this->amount; } public function getPrinterAmount(){ if($this->getPayment()->getParticipant()->isDiscount() || !$this->cost->isDiscount()) return $this->amount; else{ return $this->amount*$this->cost->getRegularAmount()/$this->cost->getMontant(); } } public function restore(Cost $cost) : Apayline { $apayline = new Apayline(); $apayline->setCost($cost); $apayline->setAmount($this->getAmount()); $apayline->setPublished($this->isPublished()); return $apayline; }}