<?phpnamespace App\Entity\Training;use ApiPlatform\Core\Annotation\ApiResource;use App\Repository\Training\FpaylineRepository;use App\Entity\Training\Fee;use App\Entity\Training\Trashfpayment;use App\Traits\Actions;use Doctrine\ORM\Mapping as ORM;#[ORM\Entity(repositoryClass: FpaylineRepository::class)]#[ORM\Table(name: 'hs_tc_training_trashfpayline')]#[ApiResource]class Trashfpayline{ use Actions; #[ORM\ManyToOne(targetEntity: Trashfpayment::class, inversedBy: "items")] #[ORM\JoinColumn(nullable: false)] private Trashfpayment $payment; #[ORM\Column] private ?int $feeId=null; #[ORM\Column(name: "amount", type: "float")] private float $amount; public function __construct(Fpayline $fpayline) { $this->feeId = $fpayline->getFee()->getId(); $this->amount = $fpayline->getAmount(); $this->published=$fpayline->isPublished(); } /** * @return Trashfpayment */ public function getPayment(): ?Trashfpayment { return $this->payment; } /** * @param Trashfpayment $payment */ public function setPayment(?Trashfpayment $payment): Trashfpayline { $this->payment = $payment; return $this; } public function getFeeId(): ?int { return $this->feeId; } public function setFeeId(?int $feeId): void { $this->feeId = $feeId; } /** * Set amount * * @param float $amount * * @return Fpayline */ 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()->getTrainee()->isDiscount() || !$this->fee->isDiscount()) return $this->amount; else{ return $this->amount*$this->fee->getRegularAmount()/$this->fee->getMontant(); } } public function restore(Fee $fee) : Fpayline { $fpayline = new Fpayline(); $fpayline->setFee($fee); $fpayline->setAmount($this->getAmount()); $fpayline->setPublished($this->isPublished()); return $fpayline; }}