/** * @Route("/auction/{id}", name="auction_payment_create", options={"expose"=true}) * @ParamConverter("auction", class="WoojinStoreBundle:Auction") * @Method("POST") */ public function createAction(Auction $auction, Request $request) { /** * DoctrineManager * * @var \Doctrine\ORM\EntityManager; */ $em = $this->getDoctrine()->getManager(); /** * 目前登入的使用者實體 * * @var \Woojin\UserBundle\Entity\User */ $user = $this->get('security.token_storage')->getToken()->getUser(); /** * @var \Woojin\OrderBundle\Entity\PayType */ $payType = $em->getRepository('WoojinOrderBundle:PayType')->find($request->request->get('pay_type')); /** * Amount * * @var integer */ $amount = (int) $request->request->get('amount'); /** * @var \DateTime */ $paidAt = new \DateTime($request->request->get('paid_at')); /** * Session * * @var \Symfony\Component\HttpFoundation\Session\Session */ $session = $this->get('session'); /** * @var \Woojin\Service\Store\AuctionPaymentService */ $service = $this->get('auction.payment.service'); if (!$auction->isAllowedEditPayment($user)) { throw $this->createAccessDeniedException('Not allowed to edit this auction!'); } try { $payment = $service->create(array('auction' => $auction, 'payType' => $payType, 'amount' => $amount, 'creater' => $user, 'paidAt' => $paidAt)); $em->persist($payment); $em->flush(); $session->getFlashBag()->add('success', '競拍付款新增成功!'); } catch (\Exception $e) { $session->getFlashBag()->add('error', $e->getMessage()); } return $this->redirect($this->generateUrl('goods_edit_v2', array('id' => $auction->getProduct()->getId())) . '/#_soldop'); }