src/Entity/RefusedVisa.php line 14
<?phpnamespace App\Entity;use App\Repository\RefusedVisaRepository;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\HttpFoundation\File\File;use Vich\UploaderBundle\Mapping\Annotation as Vich;use League\Csv\Writer;#[ORM\Entity(repositoryClass: RefusedVisaRepository::class)]#[Vich\Uploadable]class RefusedVisa{#[ORM\Id]#[ORM\GeneratedValue]#[ORM\Column]private ?int $id = null;#[ORM\ManyToOne(inversedBy: 'refusedVisas')]private ?User $user = null;#[ORM\Column(length: 255, nullable: true)]private ?string $city = null;#[ORM\Column(length: 255, nullable: true)]private ?string $nationality = null;#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]private ?\DateTimeInterface $refusedAt = null;#[ORM\Column(length: 255, nullable: true)]private ?string $countryDelivery = null;#[ORM\Column(length: 255, nullable: true)]private ?string $issuingConsulate = null;#[ORM\Column(length: 255, nullable: true)]private ?string $type = null;#[Vich\UploadableField(mapping: "departureCertificate_file", fileNameProperty: "departureCertificateName")]private ?File $pictureCertificate = null;#[ORM\Column(length: 255, nullable: true)]private ?string $departureCertificateName = null;#[Vich\UploadableField(mapping: "denialNotification_file", fileNameProperty: "denialNotificationName")]private ?File $pictureNotification = null;#[ORM\Column(length: 255, nullable: true)]private ?string $denialNotificationName = null;#[ORM\Column(type: 'datetime', nullable: true)]private ?\DateTimeInterface $uploadedAt = null;public function __construct(){$this->uploadedAt = new \DateTime();}public function getExportData(): array{return [['ID' => $this->id,'Nom et Prénom' => $this->user,'Nationalité' => $this->nationality,'Type' => $this->type,'City' => $this->city,'Refusé le' => $this->refusedAt ? $this->refusedAt->format('d/m/Y') : '','Pays de Délivrance du Visa' => $this->countryDelivery,'Consulat' => $this->issuingConsulate,'Certificat de Départ' => $this->departureCertificateName ? "https://roomlers.com/images/files/" . $this->departureCertificateName : '','Certificat de Refus' => $this->denialNotificationName ? "https://roomlers.com/images/files/" . $this->denialNotificationName : '','Ajouté le' => $this->uploadedAt ? $this->uploadedAt->format('d/m/Y H:i:s') : '',]];}public function exportToCSV($filename): void{$exportData = $this->getExportData();$file = fopen($filename, 'w');fputcsv($file, array_keys($exportData[0])); // Write the CSV headerforeach ($exportData as $data) {fputcsv($file, $data); // Write each row of data}fclose($file);}public function getId(): ?int{return $this->id;}public function getUser(): ?User{return $this->user;}public function setUser(?User $user): self{$this->user = $user;return $this;}public function getCity(): ?string{return $this->city;}public function setCity(?string $city): self{$this->city = $city;return $this;}public function getNationality(): ?string{return $this->nationality;}public function setNationality(?string $nationality): self{$this->nationality = $nationality;return $this;}public function getRefusedAt(): ?\DateTimeInterface{return $this->refusedAt;}public function setRefusedAt(?\DateTimeInterface $refusedAt): self{$this->refusedAt = $refusedAt;return $this;}public function getCountryDelivery(): ?string{return $this->countryDelivery;}public function setCountryDelivery(?string $countryDelivery): self{$this->countryDelivery = $countryDelivery;return $this;}public function getIssuingConsulate(): ?string{return $this->issuingConsulate;}public function setIssuingConsulate(?string $issuingConsulate): self{$this->issuingConsulate = $issuingConsulate;return $this;}public function getType(): ?string{return $this->type;}public function setType(?string $type): self{$this->type = $type;return $this;}public function getDepartureCertificateName(): ?string{return $this->departureCertificateName;}public function setDepartureCertificateName(?string $departureCertificateName): self{$this->departureCertificateName = $departureCertificateName;return $this;}public function getDenialNotificationName(): ?string{return $this->denialNotificationName;}public function setDenialNotificationName(?string $denialNotificationName): self{$this->denialNotificationName = $denialNotificationName;return $this;}/*** @return File|null*/public function getPictureCertificate(): ?File{return $this->pictureCertificate;}/*** @param File|null $pictureCertificate*/public function setPictureCertificate(?File $pictureCertificate): void{$this->pictureCertificate = $pictureCertificate;if ($pictureCertificate) {$this->uploadedAt = new \DateTime('now');}}/*** @return File|null*/public function getPictureNotification(): ?File{return $this->pictureNotification;}/*** @param File|null $pictureNotification*/public function setPictureNotification(?File $pictureNotification): void{$this->pictureNotification = $pictureNotification;if ($pictureNotification) {$this->uploadedAt = new \DateTime('now');}}/*** @return \DateTimeInterface|null*/public function getUploadedAt(): ?\DateTimeInterface{return $this->uploadedAt;}/*** @param \DateTimeInterface|null $uploadedAt*/public function setUploadedAt(?\DateTimeInterface $uploadedAt): void{$this->uploadedAt = $uploadedAt;}}