Eccube\Controller\Admin\Setting\Shop\DeliveryController::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);
        $repo = $app['eccube.repository.delivery'];
        $Delivery = $repo->find($id);
        if (!$Delivery) {
            $app->deleteMessage();
            return $app->redirect($app->url('admin_setting_shop_delivery'));
        }
        $Delivery->setDelFlg(Constant::ENABLED)->setRank(0);
        $app['orm.em']->persist($Delivery);
        $rank = 1;
        $Delivs = $repo->findBy(array('del_flg' => Constant::DISABLED), array('rank' => 'ASC'));
        foreach ($Delivs as $Deliv) {
            if ($Deliv->getId() != $id) {
                $Deliv->setRank($rank);
                $rank++;
            }
        }
        $app['orm.em']->flush();
        $event = new EventArgs(array('Delivs' => $Delivs, 'Delivery' => $Delivery), $request);
        $app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_SETTING_SHOP_DELIVERY_DELETE_COMPLETE, $event);
        $app->addSuccess('admin.delete.complete', 'admin');
        return $app->redirect($app->url('admin_setting_shop_delivery'));
    }