Eccube\Controller\Admin\Order\OrderController::delete PHP Method

delete() public method

public delete ( Application $app, Request $request, $id )
$app Eccube\Application
$request Symfony\Component\HttpFoundation\Request
    public function delete(Application $app, Request $request, $id)
    {
        $this->isTokenValid($app);
        $session = $request->getSession();
        $page_no = intval($session->get('eccube.admin.order.search.page_no'));
        $page_no = $page_no ? $page_no : Constant::ENABLED;
        $Order = $app['orm.em']->getRepository('Eccube\\Entity\\Order')->find($id);
        if (!$Order) {
            $app->deleteMessage();
            return $app->redirect($app->url('admin_order_page', array('page_no' => $page_no)) . '?resume=' . Constant::ENABLED);
        }
        log_info('受注削除開始', array($Order->getId()));
        $Order->setDelFlg(Constant::ENABLED);
        $app['orm.em']->persist($Order);
        $app['orm.em']->flush();
        $Customer = $Order->getCustomer();
        if ($Customer) {
            // 会員の場合、購入回数、購入金額などを更新
            $app['eccube.repository.customer']->updateBuyData($app, $Customer, $Order->getOrderStatus()->getId());
        }
        $event = new EventArgs(array('Order' => $Order, 'Customer' => $Customer), $request);
        $app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_ORDER_DELETE_COMPLETE, $event);
        $app->addSuccess('admin.order.delete.complete', 'admin');
        log_info('受注削除完了', array($Order->getId()));
        return $app->redirect($app->url('admin_order_page', array('page_no' => $page_no)) . '?resume=' . Constant::ENABLED);
    }