/** * {@inheritDoc} */ public function load(ObjectManager $manager) { $inquiry1 = new Inquiry(); $inquiry1->setName('フランツ・クサーヴァー・モーツァルト'); $inquiry1->setEmail('*****@*****.**'); $inquiry1->setTel('000-1111-2222'); $inquiry1->setType(0); $inquiry1->setContent('私の作った曲を演奏していただけませんか?'); $inquiry1->setProcessStatus(1); $inquiry1->setProcessMemo('返信済'); $manager->persist($inquiry1); $inquiry2 = new Inquiry(); $inquiry2->setName('ニコロ・パガニーニ'); $inquiry2->setEmail('*****@*****.**'); $inquiry2->setTel('012-1111-3333'); $inquiry2->setType(1); $inquiry2->setContent('バイオリンパートの奏者として応募したいのですが、選考はいつ行っていますか?私は今月末頃なら東京に滞在しています。'); $inquiry2->setProcessStatus(0); $manager->persist($inquiry2); $inquiry3 = new Inquiry(); $inquiry3->setName('ニコロ・パガニーニ3'); $inquiry3->setEmail('*****@*****.**'); $inquiry3->setTel('012-1111-4444'); $inquiry3->setType(1); $inquiry3->setContent('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); $inquiry3->setProcessStatus(0); $manager->persist($inquiry3); $manager->flush(); }
/** * @test */ public function CSVが正しく作られること() { $inquiry1 = new Inquiry(); $inquiry1->setId(1); $inquiry1->setName('テストあいうえお'); $inquiry1->setEmail('*****@*****.**'); $inquiry2 = new Inquiry(); $inquiry2->setId(2); $inquiry2->setName('テストかきくけこ'); $inquiry2->setEmail('*****@*****.**'); $inquiryCollection = new ArrayCollection([$inquiry1, $inquiry2]); $this->inquiryRepository->expects($this->once())->method('findAllByKeyword')->willReturn($inquiryCollection); $result = $this->SUT->build('テスト'); $expected = "1,テストあいうえお,aiu@example.com\r\n" . "2,テストかきくけこ,keko@example.com\r\n"; $this->assertThat($result, $this->equalTo($expected)); }
/** * @Route("/booking/inquiry/{id}/{dateFrom}/{dateTo}", name="booking-inquiry") */ public function inquiryAction(Request $request, $id, $dateFrom, $dateTo) { $loggedIn = $this->get('security.context')->isGranted('IS_AUTHENTICATED_REMEMBERED'); // user logged in $eq = $this->getDoctrineRepo('AppBundle:Equipment')->find($id); // init/calculate inquiry details //<editor-fold> $from = DateTime::createFromFormat('Y-m-d\\TH:i+', $dateFrom); $to = DateTime::createFromFormat('Y-m-d\\TH:i+', $dateTo); $days = $to->diff($from)->days; $price = ($days + 1) * $eq->getPrice(); $inquiry = array('from' => $from, 'to' => $to, 'days' => $days, 'price' => $price, 'whereabouts' => $eq->getWhereaboutsAsString()); //</editor-fold> // build form //<editor-fold> $url = $this->generateUrl('booking-inquiry', array('id' => $id, 'dateFrom' => $dateFrom, 'dateTo' => $dateTo)); $builder = $this->createFormBuilder()->setAction($url); if (!$loggedIn) { $builder->add('name', 'text', array('attr' => array('max-length' => 128), 'constraints' => array(new NotBlank(), new Length(array('max' => 128)))))->add('email', 'email', array('attr' => array('max-length' => 128), 'constraints' => array(new NotBlank(), new Length(array('max' => 128)), new Email(array('checkHost' => true))))); } $builder->add('message', 'textarea', array('constraints' => array(new NotBlank()))); $form = $builder->getForm(); //</editor-fold> $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); $inq = new Inquiry(); // map fields & save //<editor-fold> $inq->setEquipment($eq); if (!$loggedIn) { $inq->setName($data['name']); $inq->setEmail($data['email']); } else { $inq->setUser($this->getUser()); } $inq->setMessage($data['message']); $inq->setFromAt($inquiry['from']); $inq->setToAt($inquiry['to']); $inq->setPrice($inquiry['price']); $inq->setDeposit($eq->getDeposit()); $inq->setPriceBuy($eq->getPriceBuy()); // TODO: filter out any contact data from the message (phone, email) $em = $this->getDoctrine()->getManager(); $em->persist($inq); $em->flush(); //</editor-fold> // send email //<editor-fold> // prepare params $provider = $eq->getUser(); $url = $request->getSchemeAndHttpHost() . $this->generateUrl('booking-response', array('id' => $inq->getId())); $from = array($this->getParameter('mailer_fromemail') => $this->getParameter('mailer_fromname')); $emailHtml = $this->renderView('Emails/inquiry.html.twig', array('mailer_image_url_prefix' => $this->getParameter('mailer_image_url_prefix'), 'provider' => $provider, 'inquiry' => $inq, 'equipment' => $eq, 'url' => $url)); $message = Swift_Message::newInstance()->setSubject('Du hast soeben eine Anfrage erhalten')->setFrom($from)->setTo($provider->getEmail())->setBody($emailHtml, 'text/html'); $this->get('mailer')->send($message); //</editor-fold> return new JsonResponse(array('status' => 'ok')); } return $this->render('booking/inquiry.html.twig', array('loggedIn' => $loggedIn, 'inquiry' => $inquiry, 'form' => $form->createView(), 'equipment' => $eq)); }