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);
}