Example #1
0
 public function cartItemCount()
 {
     $count = 0;
     $cart = $_SESSION['lms_cart'];
     $i = 0;
     foreach ($cart as $id_course => $extra) {
         if (is_array($extra)) {
             if (isset($extra['classroom'])) {
                 $count += count($extra['classroom']);
             } else {
                 $count += count($extra['edition']);
             }
         } else {
             $count++;
         }
     }
     if ($count == 0) {
         Learning_Cart::emptyCart();
     }
     return $count;
 }
Example #2
0
 /**
  * Return the complete code for the lms cart
  * @return <string>
  */
 public static function cart()
 {
     require_once _lms_ . '/lib/lib.cart.php';
     Learning_Cart::init();
     $html = '<div id="cart_box" class="cart_box" style="display:' . (Learning_Cart::cartItemCount() == 0 ? 'none' : 'inline') . ';">';
     $html .= '<a id="cart_action" href="index.php?r=cart/show"><span>' . Lang::t('_SHOPPING_CART', 'catalogue') . ' <sub class="num_notify" id="cart_element">' . Learning_Cart::cartItemCount() . '</sub></span></a></div>';
     return $html;
 }
 public function addToCart()
 {
     $id_course = Get::req('id_course', DOTY_INT, 0);
     $id_date = Get::req('id_date', DOTY_INT, 0);
     $id_edition = Get::req('id_edition', DOTY_INT, 0);
     if ($id_edition != 0) {
         $_SESSION['lms_cart'][$id_course]['edition'][$id_edition] = $id_edition;
     } elseif ($id_date != 0) {
         $_SESSION['lms_cart'][$id_course]['classroom'][$id_date] = $id_date;
     } else {
         $_SESSION['lms_cart'][$id_course] = $id_course;
     }
     $res['success'] = true;
     $res['message'] = UIFeedback::info(Lang::t('_COURSE_ADDED_IN_CART', 'catalogue'), true);
     if ($id_edition != 0 || $id_date != 0) {
         $must_change_status = $this->model->controlSubscriptionRemaining($id_course);
         $res['new_status'] = '';
         if (!$must_change_status) {
             $res['new_status'] = '<p class="cannot_subscribe">' . Lang::t('_ALL_EDITION_BUYED', 'catalogue') . '</p>';
         }
     } else {
         $res['new_status'] = '<p class="cannot_subscribe">' . Lang::t('_COURSE_IN_CART', 'catalogue') . '</p>';
     }
     require_once _lms_ . '/lib/lib.cart.php';
     $res['cart_element'] = '' . Learning_Cart::cartItemCount() . '';
     $res['num_element'] = Learning_Cart::cartItemCount();
     $res['cart_message'] = Lang::t('_COURSE_ADDED_IN_CART', 'catalogue');
     echo $this->json->encode($res);
 }
 public function makeOrder()
 {
     $wire = Get::req('wire', DOTY_INT, 0);
     $cart = $_SESSION['lms_cart'];
     require_once _lms_ . '/lib/lib.cart.php';
     if (Learning_Cart::cartItemCount() > 0) {
         $id_trans = $this->model->createTransaction();
     } else {
         $id_trans = false;
     }
     if ($id_trans === false) {
         $result = array('success' => false, 'message' => UIFeedback::error(Lang::t('_ERROR_CREATE_TRANS', 'catalogue'), true));
     } else {
         $course_info = $this->model->getCartList(true);
         $total_price = 0;
         foreach ($cart as $id_course => $extra) {
             $docebo_course = new DoceboCourse($id_course);
             require_once _lms_ . '/admin/models/SubscriptionAlms.php';
             $level_idst =& $docebo_course->getCourseLevel($id_course);
             if (count($level_idst) == 0 || $level_idst[1] == '') {
                 $level_idst =& $docebo_course->createCourseLevel($id_course);
             }
             $waiting = 1;
             $this->acl_man->addToGroup($level_idst[3], Docebo::user()->getIdSt());
             if (isset($extra['classroom'])) {
                 foreach ($extra['classroom'] as $id_date) {
                     $model = new SubscriptionAlms($id_course, 0, $id_date);
                     if (!$model->subscribeUser(Docebo::user()->getIdSt(), 3, $waiting)) {
                         $this->acl_man->removeFromGroup($level_idst[3], Docebo::user()->getIdSt());
                     } elseif ($this->model->addTransactionCourse($id_trans, $id_course, $id_date, 0, $course_info[$id_course . '_' . $id_date . '_0'])) {
                         unset($_SESSION['lms_cart'][$id_course]['classroom'][$id_date]);
                         $query = "UPDATE %lms_courseuser" . " SET status = '-2'" . " WHERE idUser = "******" AND idCourse = " . $id_course;
                         sql_query($query);
                         $total_price += $course_info[$id_course . '_' . $id_date . '_0']['price'];
                     }
                 }
             } elseif (isset($extra['edition'])) {
                 foreach ($extra['edition'] as $id_edition) {
                     $model = new SubscriptionAlms($id_course, $id_edition, 0);
                     if (!$model->subscribeUser(Docebo::user()->getIdSt(), 3, $waiting)) {
                         $this->acl_man->removeFromGroup($level_idst[3], Docebo::user()->getIdSt());
                     } elseif ($this->model->addTransactionCourse($id_trans, $id_course, 0, $id_edition, $course_info[$id_course . '_0_' . $id_edition])) {
                         unset($_SESSION['lms_cart'][$id_course]['edition'][$id_edition]);
                         $query = "UPDATE %lms_courseuser" . " SET status = '-2'" . " WHERE idUser = "******" AND idCourse = " . $id_course;
                         sql_query($query);
                         $total_price += $course_info[$id_course . '_0_' . $id_edition]['price'];
                     }
                 }
             } else {
                 $model = new SubscriptionAlms($id_course, 0, 0);
                 if (!$model->subscribeUser(Docebo::user()->getIdSt(), 3, $waiting)) {
                     $this->acl_man->removeFromGroup($level_idst[3], Docebo::user()->getIdSt());
                 } elseif ($this->model->addTransactionCourse($id_trans, $id_course, 0, 0, $course_info[$id_course . '_0_0'])) {
                     unset($_SESSION['lms_cart'][$id_course]);
                     $query = "UPDATE %lms_courseuser" . " SET status = '-2'" . " WHERE idUser = "******" AND idCourse = " . $id_course;
                     sql_query($query);
                     $total_price += $course_info[$id_course . '_0_0']['price'];
                 }
             }
         }
         require_once _lms_ . '/lib/lib.cart.php';
         if (Learning_Cart::cartItemCount() == 0) {
             $_SESSION['lms_cart'] = array();
         }
         $_SESSION['cart_transaction'] = $id_trans;
         $result = array('success' => true, 'message' => UIFeedback::info(Lang::t('_TRANS_CREATED', 'catalogue'), true), 'id_transaction' => $id_trans, 'total_price' => $total_price, 'link' => Get::sett('url') . _folder_lms_ . '/index.php?r=cart/show&id_transaction=' . $id_trans . '&cart=' . $_SESSION['cart_id']);
     }
     if ($wire) {
         if ($result['success']) {
             Util::jump_to('index.php?r=cart/wireInfo&id_transaction=' . $id_trans);
         }
         Util::jump_to('index.php?r=cart/show&error=1');
     } else {
         echo $this->json->encode($result);
     }
 }