/** * [アクション] 入金を確定させ、結果画面を生成する * * @return array ページ名, 画面(html) */ function plugin_movieviewer_purchase_confirm_payment_action_execute() { $page = plugin_movieviewer_get_current_page(); try { plugin_movieviewer_validate_csrf_token(); } catch (MovieViewerValidationException $ex) { return plugin_movieviewer_action_error_response($page, "不正なリクエストです。"); } $ids = filter_input(INPUT_POST, 'purchase_requests', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY); foreach ($ids as $req_id) { try { plugin_movieviewer_validate_deal_pack_request_id($req_id); } catch (MovieViewerValidationException $ex) { return plugin_movieviewer_action_error_response($page, "指定した内容に誤りがあります。"); } } $requests = array(); foreach ($ids as $req_id) { try { $request = plugin_movieviewer_get_deal_pack_purchase_request_repository()->findById($req_id); } catch (MovieViewerRepositoryObjectNotFoundException $ex) { return plugin_movieviewer_action_error_response($page, "指定した内容に誤りがあります。"); } $requests[] = $request; } $date_begin = filter_input(INPUT_POST, 'viewing_perod_date_begin', FILTER_DEFAULT); try { plugin_movieviewer_validate_ymd($date_begin); } catch (MovieViewerValidationException $ex) { return plugin_movieviewer_action_error_response($page, "指定した内容に誤りがあります。"); } $date_begin = new DateTime($date_begin); foreach ($requests as $request) { $request->confirmPayment($date_begin); } $hsc = "plugin_movieviewer_hsc"; foreach ($requests as $request) { $confirmation = $request->getPaymentConfirmation(); $content_row = <<<TEXT <tr> <td>{$hsc($request->getUser()->lastName)} {$hsc($request->getUser()->firstName)}</td> <td>{$hsc($request->getUser()->id)}</td> <td>{$hsc($request->getPack()->describe())}</td> <td>{$hsc($request->getDateRequested()->format("Y/m/d H:m:s"))}</td> <td>{$hsc($confirmation->getViewingPeriod()->date_begin->format("Y/m/d"))}</td> <td>{$hsc($confirmation->getViewingPeriod()->date_end->format("Y/m/d"))}</td> </tr> TEXT; $content_rows .= $content_row; } $content = <<<TEXT <script src="https://code.jquery.com/jquery-1.11.2.min.js"></script> <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script> <link href="https://code.jquery.com/ui/1.11.4/themes/redmond/jquery-ui.css" rel="stylesheet"> <link href="plugin/movieviewer/assets/css/movieviewer.css" rel="stylesheet"> <h2>入金確認完了</h2> <p> 以下の申し込みの入金を確定しました。 </p> <p> <table class="table purchase-requests"> <thead> <tr> <th>名前</th> <th>メールアドレス</th> <th>受講対象</th> <th>申込日</th> <th>視聴期限(開始)</th> <th>視聴期限(終了)</th> </tr> </thead> <tbody> {$content_rows} <tbody> </table> </p> TEXT; return array('msg' => $page, 'body' => $content); }
function accept() { $purchase_request = new MovieViewerDealPackPurchaseRequest($this->_user->id, $this->_pack->getId()); plugin_movieviewer_get_deal_pack_purchase_request_repository()->store($purchase_request); $this->_purchase_request = $purhase_request; }
private function generateMessageRequestingDealPack($user, $context) { $objects = plugin_movieviewer_get_deal_pack_purchase_request_repository()->findRequestingByUser($user->id); if (count($objects) === 0) { return ''; } $content = ""; foreach ($objects as $object) { $content .= <<<TEXT <li>{$object->getPack()->describe()}</li> TEXT; } return $content; }