/** * 納品書の設定画面表示. * * @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(); }