/**
  * 納品書の設定画面表示.
  *
  * @param Application $app
  * @param Request     $request
  *
  * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response
  *
  * @throws NotFoundHttpException
  */
 public function index(Application $app, Request $request)
 {
     // requestから受注番号IDの一覧を取得する.
     $ids = $this->getIds($request);
     if (count($ids) == 0) {
         $app->addError('admin.plugin.order_pdf.parameter.notfound', 'admin');
         log_info('The Order cannot found!');
         return $app->redirect($app->url('admin_order'));
     }
     /* @var OrderPdfRepository $repos */
     $repos = $app['orderpdf.repository.order_pdf'];
     $OrderPdf = $repos->find($app->user());
     if (EntityUtil::isEmpty($OrderPdf)) {
         $OrderPdf = new OrderPdf();
         $OrderPdf->setTitle($app->trans('admin.plugin.order_pdf.title.default'))->setMessage1($app->trans('admin.plugin.order_pdf.message1.default'))->setMessage2($app->trans('admin.plugin.order_pdf.message2.default'))->setMessage3($app->trans('admin.plugin.order_pdf.message3.default'));
     }
     /**
      * @var FormBuilder $builder
      */
     $builder = $app['form.factory']->createBuilder('admin_order_pdf', $OrderPdf);
     /* @var Form $form */
     $form = $builder->getForm();
     // Formへの設定
     $form->get('ids')->setData(implode(',', $ids));
     return $app->render('OrderPdf/Resource/template/admin/order_pdf.twig', array('form' => $form->createView()));
 }
 /**
  * Save admin history.
  *
  * @param array $arrData
  *
  * @return bool
  */
 public function save(array $arrData)
 {
     /**
      * @var Member $Member
      */
     $Member = $arrData['admin'];
     $em = $this->getEntityManager();
     try {
         $OrderPdf = $this->find($Member);
         if (!$OrderPdf) {
             $OrderPdf = new OrderPdf();
         }
         $OrderPdf->setId($Member->getId())->setTitle($arrData['title'])->setMessage1($arrData['message1'])->setMessage2($arrData['message2'])->setMessage3($arrData['message3'])->setNote1($arrData['note1'])->setNote2($arrData['note2'])->setNote3($arrData['note3'])->setDelFlg(Constant::DISABLED);
         $em->persist($OrderPdf);
         $em->flush($OrderPdf);
     } catch (\Exception $e) {
         return false;
     }
     return true;
 }
 /**
  * Render order pdf download.
  */
 public function testDownloadWithPreviousInputSuccess()
 {
     $Order = $this->createOrderForSearch();
     $orderId = $Order->getId();
     /**
      * @var Client $client
      */
     $client = $this->client;
     /**
      * @var Generator $faker
      */
     $faker = $this->getFaker();
     $OrderPdf = new OrderPdf();
     $Admin = $this->app->user();
     $mid = 2;
     // member default id.
     if ($Admin instanceof Member) {
         $mid = $Admin->getId();
     }
     $OrderPdf->setId($mid)->setIssueDate(new \DateTime())->setTitle($faker->text(50))->setMessage1($faker->text(30))->setMessage2($faker->text(30))->setMessage3($faker->text(30))->setNote1($faker->text(50))->setNote2($faker->text(50))->setNote3($faker->text(50))->setDelFlg(Constant::DISABLED);
     $this->app['orm.em']->persist($OrderPdf);
     $this->app['orm.em']->flush($OrderPdf);
     $crawler = $client->request('GET', $this->app->url('plugin_admin_order_pdf') . '?ids' . $orderId . '=on');
     $html = $crawler->filter('.box-body')->html();
     $this->assertContains((string) $orderId, $html);
     $this->assertContains($OrderPdf->getTitle(), $html);
     $this->assertContains($OrderPdf->getMessage1(), $html);
     $this->assertContains($OrderPdf->getMessage2(), $html);
     $this->assertContains($OrderPdf->getMessage3(), $html);
     $this->assertContains($OrderPdf->getNote1(), $html);
     $this->assertContains($OrderPdf->getNote2(), $html);
     $this->assertContains($OrderPdf->getNote3(), $html);
     $form = $this->getForm($crawler);
     $client->submit($form);
     $this->actual = $client->getResponse()->headers->get('Content-Type');
     $this->expected = 'application/pdf';
     $this->verify();
 }