src/Entity/Training/Trashfpayline.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Training;
  3. use ApiPlatform\Core\Annotation\ApiResource;
  4. use App\Repository\Training\FpaylineRepository;
  5. use App\Entity\Training\Fee;
  6. use App\Entity\Training\Trashfpayment;
  7. use App\Traits\Actions;
  8. use Doctrine\ORM\Mapping as ORM;
  9. #[ORM\Entity(repositoryClassFpaylineRepository::class)]
  10. #[ORM\Table(name'hs_tc_training_trashfpayline')]
  11. #[ApiResource]
  12. class Trashfpayline
  13. {
  14.     use Actions;
  15.     #[ORM\ManyToOne(targetEntityTrashfpayment::class, inversedBy"items")]
  16.     #[ORM\JoinColumn(nullablefalse)]
  17.     private Trashfpayment $payment;
  18.     #[ORM\Column]
  19.     private ?int $feeId=null;
  20.     #[ORM\Column(name"amount"type"float")]
  21.     private float $amount;
  22.     public function __construct(Fpayline $fpayline)
  23.     {
  24.         $this->feeId $fpayline->getFee()->getId();
  25.         $this->amount $fpayline->getAmount();
  26.         $this->published=$fpayline->isPublished();
  27.     }
  28.     /**
  29.      * @return Trashfpayment
  30.      */
  31.     public function getPayment(): ?Trashfpayment
  32.     {
  33.         return $this->payment;
  34.     }
  35.     /**
  36.      * @param Trashfpayment $payment
  37.      */
  38.     public function setPayment(?Trashfpayment $payment): Trashfpayline
  39.     {
  40.         $this->payment $payment;
  41.         return $this;
  42.     }
  43.     public function getFeeId(): ?int
  44.     {
  45.         return $this->feeId;
  46.     }
  47.     public function setFeeId(?int $feeId): void
  48.     {
  49.         $this->feeId $feeId;
  50.     }
  51.     /**
  52.      * Set amount
  53.      *
  54.      * @param float $amount
  55.      *
  56.      * @return Fpayline
  57.      */
  58.     public function setAmount($amount)
  59.     {
  60.         $this->amount $amount;
  61.         return $this;
  62.     }
  63.     /**
  64.      * Get amount
  65.      *
  66.      * @return float
  67.      */
  68.     public function getAmount()
  69.     {
  70.         return $this->amount;
  71.     }
  72.     public function getPrinterAmount(){
  73.         if($this->getPayment()->getTrainee()->isDiscount() || !$this->fee->isDiscount()) return $this->amount;
  74.         else{
  75.             return $this->amount*$this->fee->getRegularAmount()/$this->fee->getMontant();
  76.         }
  77.     }
  78.     public function restore(Fee $fee) : Fpayline
  79.     {
  80.         $fpayline = new Fpayline();
  81.         $fpayline->setFee($fee);
  82.         $fpayline->setAmount($this->getAmount());
  83.         $fpayline->setPublished($this->isPublished());
  84.         return $fpayline;
  85.     }
  86. }