<?php
namespace App\Controller\App;
use App\Entity\Reserve;
use App\Form\App\ReserveType;
use App\Repository\ReserveRepository;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Routing\Annotation\Route;
class DefaultController extends AbstractController
{
#[Route('/', name: 'top', methods: ['GET', 'POST'])]
public function index(Request $request, ReserveRepository $reserveRepository, MailerInterface $mailer): Response
{
$now = new \DateTimeImmutable();
$reserve = new Reserve();
$reserve
->setCarModel('blank')
->setStartDate($now)
->setStartTime($now)
->setEndDate($now)
->setEndTime($now)
;
$form = $this->createForm(ReserveType::class, $reserve);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$reserveRepository->save($reserve, true);
$email = (new TemplatedEmail())
->from('no-reply@camren.jp')
->to($reserve->getMail())
->subject('【キャンピングカーレンタル ビデオ1】お問い合わせいただきありがとうございます')
->textTemplate('app/default/mail.txt.twig')
->context([
'now' => new \DateTime(),
'reserve' => $reserve,
])
;
$mailer->send($email);
$email = (new TemplatedEmail())
->from('no-reply@camren.jp')
->to('info@camren.jp')
->subject('【キャンピングカーレンタル ビデオ1】お問い合わせがありました')
->textTemplate('app/default/admin_mail.txt.twig')
->context([
'now' => new \DateTime(),
'reserve' => $reserve,
])
;
$mailer->send($email);
$this->addFlash(
'success',
'お問い合わせ内容を送信しました。'
);
return $this->redirectToRoute('top', [], Response::HTTP_SEE_OTHER);
}
$cars = [];
if (($fp = fopen($this->getParameter('kernel.project_dir') . '/public/data/cars.csv', 'r')) !== FALSE) {
$index = 0;
while (($line = fgetcsv($fp))) {
$index++;
if ($index == 1) continue;
$car = [
'key' => $line[0], #'minicab',
'carName' => $line[1], #'三菱ミニキャブバン',
'subCarName' => $line[2], #'ブラボーキャンパー4WD',
'passenger' => $line[3], #'乗車定員4人',
'passengerDetail' => $line[4], #'就寝 大人2人 子供1人',
'shift' => $line[5], #'AT',
'fuel' => $line[6], #'レギュラーガソリン',
'drive' => $line[7], #'4WD(2WD',
'displacement' => $line[8], #'660cc',
'size' => $line[9], #'長さ3,390mm 幅1,470mm 高さ1,990mm',
'bed' => $line[10], #'縦 1810mm x 横 1000mm',
'description' => $line[11], #'三菱メーカー純正ミニキャブキャンパー!乗車4名可能で、就寝人数は大人2名子供1名可能です。ポップアップルーフを上げると車内は広々とした空間になります。',
'equipment1' => $line[12], #'・カーナビ・バックカメラ・ETC・ポップアップ・32インチモニター',
'equipment2' => $line[13], #'・DVDプレイヤー・外部電源・インバーター・ポータブル電源・サブバッテリー・シンク',
'description2' => $line[14], #'全ての車両にナビ・ETC・バックカメラ搭載!ターボ車ですので高速道路での走行性能に問題なし!',
'weekdaysBy12Hour' => $line[15], #'6,720', #平日12時間
'weekdaysBy1Hour' => $line[16], #'560', #平日1時間
'holidayBy12Hour' => $line[17], #'8,400', #祝日12時間
'holidayBy1Hour' => $line[18], #'700', #祝日1時間
'highSeasonBy12Hour' => $line[19], #'8,400', #ハイシーズン12時間
'highSeasonBy1Hour' => $line[20], #'700', #ハイシーズン1時間
'images' => $this->createImagePath($line[21]), #'img01.jpg'
];
$cars[] = $car;
}
}
return $this->renderForm('app/default/index.html.twig', [
'cars' => $cars,
'reserve' => $reserve,
'form' => $form,
]);
}
/**
* @param $count
* @return array
*/
private function createImagePath($count)
{
$images = [];
for($i = 1; $i <= $count; $i++) {
$images[] = sprintf("img%02d.jpg", $i);
}
return $images;
}
}