Explorar el Código

Fix Buy process via transfer - refs #7768

Angel Fernando Quiroz Campos hace 9 años
padre
commit
821d22090b

+ 94 - 0
plugin/buycourses/src/process_confirm.php

@@ -64,5 +64,99 @@ switch ($sale['payment_type']) {
         RedirectToPayPal($expressCheckout["TOKEN"]);
         break;
     case BuyCoursesPlugin::PAYMENT_TYPE_TRANSFER:
+        $buyingCourse = false;
+        $buyingSession = false;
+
+        switch ($sale['product_type']) {
+            case BuyCoursesPlugin::PRODUCT_TYPE_COURSE:
+                $buyingCourse = true;
+                $course = $plugin->getCourseInfo($sale['product_id']);
+                break;
+            case BuyCoursesPlugin::PRODUCT_TYPE_SESSION:
+                $buyingSession = true;
+                $session = $plugin->getSessionInfo($sale['product_id']);
+                break;
+        }
+
+        $transferAccounts = $plugin->getTransferAccounts();
+        $userInfo = api_get_user_info($sale['user_id']);
+
+        $form = new FormValidator('success', 'POST', api_get_self(), null, null, FormValidator::LAYOUT_INLINE);
+
+        if ($form->validate()) {
+            $formValues = $form->getSubmitValues();
+
+            if (isset($formValues['cancel'])) {
+                $plugin->cancelSale($sale['id']);
+
+                unset($_SESSION['bc_sale_id']);
+
+                header('Location: ' . api_get_path(WEB_PLUGIN_PATH) . 'buycourses/index.php');
+                exit;
+            }
+
+            $messageTemplate = new Template();
+            $messageTemplate->assign('user', $userInfo);
+            $messageTemplate->assign(
+                'sale',
+                [
+                    'date' => api_format_date($sale['date'], DATE_FORMAT_LONG_NO_DAY),
+                    'product' => $sale['product_name'],
+                    'currency' => $currency['iso_code'],
+                    'price' => $sale['price'],
+                ]
+            );
+            $messageTemplate->assign('sale_product', $sale['product_name']);
+            $messageTemplate->assign('sale_currency', $currency['iso_code']);
+            $messageTemplate->assign('sale_price', $sale['price']);
+            $messageTemplate->assign('transfer_accounts', $transferAccounts);
+
+            api_mail_html(
+                $userInfo['complete_name'],
+                $userInfo['email'],
+                $plugin->get_lang('bc_subject'),
+                $messageTemplate->fetch('buycourses/view/message_transfer.tpl')
+            );
+
+            Display::addFlash(
+                Display::return_message(
+                    sprintf(
+                        $plugin->get_lang('PurchaseStatusX'),
+                        $plugin->get_lang('PendingReasonByTransfer')
+                    ),
+                    'success'
+                )
+            );
+
+            unset($_SESSION['bc_sale_id']);
+            header('Location: ' . api_get_path(WEB_PLUGIN_PATH) . 'buycourses/src/list.php');
+            exit;
+        }
+
+        $form->addButton('confirm', $plugin->get_lang('ConfirmOrder'), 'check', 'success');
+        $form->addButtonCancel($plugin->get_lang('CancelOrder'), 'cancel');
+
+        $template = new Template();
+
+        if ($buyingCourse) {
+            $template->assign('course', $course);
+        } elseif ($buyingSession) {
+            $template->assign('session', $session);
+        }
+
+        $template->assign('buying_course', $buyingCourse);
+        $template->assign('buying_session', $buyingSession);
+
+        $template->assign('title', $sale['product_name']);
+        $template->assign('price', $sale['price']);
+        $template->assign('currency', $sale['currency_id']);
+        $template->assign('user', $userInfo);
+        $template->assign('transfer_accounts', $transferAccounts);
+        $template->assign('form', $form->returnForm());
+
+        $content = $template->fetch('buycourses/view/process_confirm.tpl');
+
+        $template->assign('content', $content);
+        $template->display_one_col_template();
         break;
 }

+ 33 - 0
plugin/buycourses/view/message_transfer.tpl

@@ -0,0 +1,33 @@
+<div>
+    <p>{{ 'DearUser'|get_lang }}</p>
+    <p>{{ 'PurchaseDetailsIntro'|get_plugin_lang('BuyCoursesPlugin') }}</p>
+    <dl>
+        <dt>Fecha</dt>
+        <dd>{{ sale.date }}</dd>
+        <dt>Usuario</dt>
+        <dd>{{ user.complete_name }}</dd>
+        <dt>Curso</dt>
+        <dd>{{ sale.product }}</dd>
+        <dt>Precio</dt>
+        <dd>{{ sale.currency ~ ' ' ~ sale.price }}</dd>
+    </dl>
+    <p>{{ 'BankAccountIntro'|get_plugin_lang('BuyCoursesPlugin')|format(sale.product) }}</p>
+    <table>
+        <thead>
+            <tr>
+                <th>{{ 'Name'|get_lang }}</th>
+                <th>{{ 'BankAccount'|get_plugin_lang('BuyCoursesPlugin') }}</th>
+                <th>{{ 'SWIFT'|get_lang }}</th>
+            </tr>
+        </thead>
+        <tbody>
+            {% for account in transfer_accounts %}
+                <tr>
+                    <td>{{ account.name }}</td>
+                    <td>{{ account.account }}</td>
+                    <td>{{ account.swift }}</td>
+                </tr>
+            {% endfor %}
+        </tbody>
+    </table>
+</div>

+ 72 - 90
plugin/buycourses/view/process_confirm.tpl

@@ -1,104 +1,86 @@
-<script type='text/javascript' src="../js/buycourses.js"></script>
-
-<link rel="stylesheet" type="text/css" href="../resources/plugin.css"/>
-
 <div class="row">
-    <div class="col-md-3">
-        <div id="course_category_well" class="well">
-            <h4>{{ 'UserInformation'|get_plugin_lang('BuyCoursesPlugin') }}</h4>
-            <dl>
-                <dt>{{ 'Name'|get_lang }}</dt>
-                <dd>{{ name|e }}</dd>
-                <dt>{{ 'User'|get_lang }}</dt>
-                <dd>{{ user | e }}</dd>
-                <dt>{{ 'Email'|get_lang }}</dt>
-                <dd>{{ email | e}}</dd>
-            </dl>
-        </div>
+    <div class="col-sm-6 col-md-5">
+        <h3 class="page-header">{{ 'UserInformation'|get_plugin_lang('BuyCoursesPlugin') }}</h3>
+        <dl class="dl-horizontal">
+            <dt>{{ 'Name'|get_lang }}<dt>
+            <dd>{{ user.complete_name }}</dd>
+            <dt>{{ 'Username'|get_lang }}<dt>
+            <dd>{{ user.username }}</dd>
+            <dt>{{ 'EmailAddress'|get_lang }}<dt>
+            <dd>{{ user.email }}</dd>
+        </dl>
     </div>
-
-    <div class="col-md-9">
-        <div class="well">
+    <div class="col-sm-6 col-md-7">
+        {% if buying_course %}
             <div class="row">
-                <div class="span">
-                    <div class="thumbnail">
-                        <a class="ajax" rel="gb_page_center[778]" title=""
-                           href="{{ server }}plugin/buycourses/src/ajax.php?code={{ course.code }}">
-                            <img src="{{ server }}{{ course.course_img }}">
-                        </a>
-                    </div>
+                <div class="col-sm-6 col-md-5">
+                    <p>
+                        <img alt="{{ course.title }}" class="img-responsive" src="{{ course.course_img ? course.course_img : 'session_default.png'|icon() }}">
+                    </p>
+                    <p class="lead text-right">{{ course.currency }} {{ course.price }}</p>
                 </div>
-                <div class="span4">
-                    <div class="categories-course-description">
-                        <h3>{{ course.title }}</h3>
-                        <h5>{{ 'Teacher'|get_lang }}: {{ course.teacher }}</h5>
-                    </div>
-                </div>
-                <div class="span right">
-                    <div class="sprice right">{{ course.price }} {{ currency }}</div>
-                    <div class="cleared"></div>
-                    <div class="btn-toolbar right">
-                        <a class="ajax btn btn-primary" title=""
-                           href="{{ server }}plugin/buycourses/src/ajax.php?code={{ course.code }}">{{'Description'|get_lang }}
+                <div class="col-sm-6 col-md-7">
+                    <h3 class="page-header">{{ course.title }}</h3>
+                    <ul class="items-teacher list-unstyled">
+                        {% for teacher in course.teachers %}
+                            <li><i class="fa fa-user"></i> {{ teacher }}</li>
+                        {% endfor %}
+                    </ul>
+                    <p>
+                        <a class="ajax btn btn-primary btn-sm" data-title="{{ course.title }}" href="{{ _p.web_ajax ~ 'course_home.ajax.php?' ~ {'a': 'show_course_information', 'code': course.code}|url_encode() }}">
+                            {{'Description'|get_lang }}
                         </a>
-                    </div>
+                    </p>
                 </div>
             </div>
-        </div>
-    </div>
-</div>
-
-<hr/>
-
-<div class="row">
-    <div class="col-md-5 col-md-offset-2">
-        <div class="panel panel-default">
-            <div class="panel-heading">
-                <h3 class="panel-title">{{ 'BankAccountInformation'|get_plugin_lang('BuyCoursesPlugin') }}</h3>
-            </div>
-            <div class="panel-body">
-                {% for account in accounts %}
-                    <p class="lead text-center">{{ account.name | e }}</p>
-
-                    <dl class="dl-horizontal">
-                        {% if account.swift != '' %}
-                            <dt>SWIFT</dt>
-                            <dd>{{ account.swift | e }}</dd>
-                        {% endif %}
-
-                        <dt>{{ 'BankAccount'|get_plugin_lang('BuyCoursesPlugin') }}</dt>
-                        <dd>{{ account.account }}</dd>
+        {% elseif buying_session %}
+            <h3 class="page-header">{{ session.name }}</h3>
+            <div class="row">
+                <div class="col-sm-12 col-md-5">
+                    <p>
+                        <img alt="{{ session.name }}" class="img-responsive" src="{{ session.image ? session.image : 'session_default.png'|icon() }}">
+                    </p>
+                    <p class="lead text-right">{{ session.currency }} {{ session.price }}</p>
+                </div>
+                <div class="col-sm-12 col-md-7">
+                    <p>{{ session.dates.display }}</p>
+                    <dl>
+                        {% for course in session.courses %}
+                            <dt>{{ course.title }}</dt>
+                            {% for coach in course.coaches %}
+                                <dd><i class="fa fa-user fa-fw"></i> {{ coach }}</dd>
+                            {% endfor %}
+                        {% endfor %}
                     </dl>
-
-                    {% if lopp.index > 1 %}
-                        <hr>
-                    {% endif %}
-                {% endfor %}
+                </div>
             </div>
-        </div>
-    </div>
-    <div class="col-md-3">
-        <div class="alert alert-info">
-            <i class="fa fa-info-circle"></i>
-            {{ 'OnceItIsConfirmed,YouWillReceiveAnEmailWithTheBankInformationAndAnOrderReference'|get_plugin_lang('BuyCoursesPlugin') }}
-        </div>
+        {% endif %}
     </div>
 </div>
-
 <div class="row">
-    <div class="col-md-4 col-md-offset-4">
-        <hr>
-
-        <form method="post" name="frmConfirm" action="../src/process_confirm.php">
-            <input type="hidden" name="payment_type" value="Transfer"/>
-            <input type="hidden" name="name" value="{{ name | e }}"/>
-            <input type="hidden" name="price" value="{{ course.price }}"/>
-            <input type="hidden" name="title" value="{{ course.title | e }}"/>
-
-            <p class="text-center">
-                <input class="btn btn-success" type="submit" name="Confirm" value="{{ 'ConfirmOrder'|get_plugin_lang('BuyCoursesPlugin') }}"/>
-                <input class="btn btn-danger" type="button" name="Cancel" value="{{ 'CancelOrder'|get_plugin_lang('BuyCoursesPlugin') }}" id="CancelOrder"/>
-            </p>
-        </form>
+    <div class="col-xs-12">
+        <h3 class="page-header">{{ 'BankAccountInformation'|get_plugin_lang('BuyCoursesPlugin') }}</h3>
+        <div class="table-responsive">
+            <table class="table table-striped table-hover">
+                <thead>
+                    <tr>
+                        <th>{{ 'Name'|get_lang }}</th>
+                        <th class="text-center">{{ 'BankAccount'|get_plugin_lang('BuyCoursesPlugin') }}</th>
+                        <th class="text-center">{{ 'SWIFT'|get_lang }}</th>
+                    </tr>
+                </thead>
+                <tbody>
+                    {% for account in transfer_accounts %}
+                        <tr>
+                            <td>{{ account.name }}</td>
+                            <td class="text-center">{{ account.account }}</td>
+                            <td class="text-center">{{ account.swift }}</td>
+                        </tr>
+                    {% endfor %}
+                </tbody>
+            </table>
+        </div>
     </div>
 </div>
+    
+{{ form }}