Ejemplo n.º 1
0
         $tempmanager = $managers_list[array_rand($managers_list)];
     }
 }
 // Выбор доступных городов, если у пользователя была сохранена область
 if (isset($saved['city'])) {
     $cities_list = $Cities->SetFieldsByInput($saved['city']['region']);
     if (!$Deliveryservice->SetFieldsByInput($saved['city']['name'], $saved['city']['region'])) {
         unset($deliverymethods_list[3]);
     }
     $Deliveryservice->SetListByRegion($saved['city']['names_regions']);
     $deliveryservices_list = $Deliveryservice->list;
     $Delivery->SetFieldsByInput($saved['city']['shipping_comp'], $saved['city']['name'], $saved['city']['region']);
     $deliverydepartments_list = $Delivery->list;
 }
 if (isset($_SESSION['cart']['id_gift'])) {
     $Products->SetFieldsById($_SESSION['cart']['id_gift']);
     $Products->fields['images'] = $Products->GetPhotoById($Products->fields['id_product']);
     $tpl->Assign('gift', $Products->fields);
 }
 /* output data */
 $tpl->Assign('customer', $customer);
 $tpl->Assign('regions_list', $regions_list);
 $tpl->Assign('deliverymethods_list', $deliverymethods_list);
 $tpl->Assign('cities_list', $cities_list);
 $tpl->Assign('deliveryservices_list', $deliveryservices_list);
 $tpl->Assign('deliverydepartments_list', $deliverydepartments_list);
 $tpl->Assign('managers_list', $managers_list);
 $tpl->Assign('saved', $saved);
 $tpl->Assign('personal_discount', isset($_SESSION['cart']) && isset($_SESSION['cart']['personal_discount']) ? $_SESSION['cart']['personal_discount'] : 1);
 /* Действия */
 if (isset($GLOBALS['Rewrite']) && is_numeric($GLOBALS['Rewrite'])) {
Ejemplo n.º 2
0
 public function UpdateCartQty($data)
 {
     $Products = new Products();
     $Products->SetFieldsById($data['id_product'], 0);
     $product = $Products->fields;
     if ($product['price_mopt'] == 0) {
         $product['min_mopt_qty'] = $product['inbox_qty'];
     }
     $quantity = $data['quantity'];
     $note = isset($data['note']) ? $data['note'] : (isset($data['note_opt']) && !empty($data['note_opt']) ? $data['note_opt'] : (isset($data['note_mopt']) && !empty($data['note_mopt']) ? $data['note_mopt'] : ''));
     if (isset($data['button']) && $data['button']) {
         if ($data['direction'] == 1) {
             if ($product['qty_control'] == 1 && fmod($quantity, $product['min_mopt_qty']) != 0) {
                 $quantity = $product['min_mopt_qty'] * ceil($quantity / $product['min_mopt_qty']);
             }
             if ($quantity < $product['min_mopt_qty']) {
                 $quantity = $product['min_mopt_qty'];
             }
         } else {
             if ($product['qty_control'] == 1 && fmod($quantity, $product['min_mopt_qty']) != 0) {
                 $quantity = $product['min_mopt_qty'] * floor($quantity / $product['min_mopt_qty']);
             }
             if ($quantity < $product['min_mopt_qty']) {
                 $quantity = 0;
             }
         }
     } else {
         if ($quantity > 0) {
             if ($product['qty_control'] == 1 && fmod($quantity, $product['min_mopt_qty']) != 0) {
                 $quantity = $product['min_mopt_qty'] * round($quantity / $product['min_mopt_qty']);
             }
             if ($quantity < $product['min_mopt_qty']) {
                 $quantity = $product['min_mopt_qty'];
             }
         }
     }
     $quantity = $quantity > $product['min_mopt_qty'] ? $quantity : $product['min_mopt_qty'];
     if ($quantity < $product['inbox_qty'] || $product['price_opt'] == 0) {
         $mode = 'mopt';
         $other_mode = 'opt';
     } else {
         $mode = 'opt';
         $other_mode = 'mopt';
     }
     $base_price = $product['price_' . $mode];
     // Заполнение массива основных цен и суммы товара
     foreach ($correction_set = explode(';', $GLOBALS['CONFIG']['correction_set_' . $product[$mode . '_correction_set']]) as $cs) {
         $summary[] = round(round($cs * $base_price, 2) * $quantity, 2);
         $actual_prices[] = round($cs * $base_price, 2);
     }
     // Заполнение массива дополнительных цен
     foreach (explode(';', $GLOBALS['CONFIG']['correction_set_' . $product[$other_mode . '_correction_set']]) as $cs) {
         $other_prices[] = round($cs * $product['price_' . $other_mode], 2);
     }
     if ($quantity > 0) {
         $_SESSION['cart']['products'][$product['id_product']]['quantity'] = $product['quantity'] = $quantity;
         $_SESSION['cart']['products'][$product['id_product']]['mode'] = $mode;
         $_SESSION['cart']['products'][$product['id_product']]['summary'] = $summary;
         $_SESSION['cart']['products'][$product['id_product']]['base_price'] = $base_price;
         $_SESSION['cart']['products'][$product['id_product']]['actual_prices'] = $product['actual_prices'] = $actual_prices;
         $_SESSION['cart']['products'][$product['id_product']]['other_prices'] = $product['other_prices'] = $other_prices;
         $_SESSION['cart']['products'][$product['id_product']]['correction_set'] = $correction_set;
         $_SESSION['cart']['products'][$product['id_product']]['note'] = $note;
         if (isset($data['id_cart_product'])) {
             $_SESSION['cart']['products'][$product['id_product']]['id_cart_product'] = $data['id_cart_product'];
         }
     } else {
         if (isset($_SESSION['cart']['products'][$product['id_product']]['id_cart_product'])) {
             $this->db->StartTrans();
             $this->db->DeleteRowFrom(_DB_PREFIX_ . "cart_product", "id_cart_product", $_SESSION['cart']['products'][$product['id_product']]['id_cart_product']);
             $this->db->CompleteTrans();
         }
         unset($_SESSION['cart']['products'][$product['id_product']]);
         $product['quantity'] = $quantity;
         $product['actual_prices'] = $actual_prices;
         $product['other_prices'] = $other_prices;
     }
     // if($quantity > $product['product_limit']){
     // 	$_SESSION['cart']['products'][$product['id_product']]['error_limit'] = true;
     // }
     $this->RecalcCart();
     return array('cart' => $_SESSION['cart'], 'product' => $product);
 }
Ejemplo n.º 3
0
// список всех менеджеров
$Contragents->SetList();
$tpl->Assign('managers_list', $Contragents->list);
if (!isset($_SESSION['member']['promo_code']) || $_SESSION['member']['promo_code'] == '') {
    $Contragents->GetSavedFields($Customers->fields['id_contragent']);
    $tpl->Assign('SavedContragent', $Contragents->fields);
} else {
    $Suppliers = new Suppliers();
    $Suppliers->GetSupplierIdByPromoCode($_SESSION['member']['promo_code']);
    $tpl->Assign('promo_supplier', $Suppliers->fields);
    unset($Suppliers);
}
// Выборка просмотренных товаров
if (isset($_COOKIE['view_products'])) {
    foreach (json_decode($_COOKIE['view_products']) as $value) {
        $Products->SetFieldsById($value, 1, 1);
        $product = $Products->fields;
        if (isset($product['id_product']) && $product['id_product'] != '') {
            $product['images'] = $Products->GetPhotoById($product['id_product']);
        }
        $result[] = $product;
    }
    $tpl->Assign('view_products_list', array_reverse($result));
    unset($result, $product, $value);
}
// Обработка сортировок ====================================
if (isset($_COOKIE['sorting'])) {
    $sort = (array) json_decode($_COOKIE['sorting'], true);
}
if (isset($GLOBALS['Sort'])) {
    $sort_value = $GLOBALS['Sort'];
Ejemplo n.º 4
0
<?if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'){
	header('Content-Type: text/javascript; charset=utf-8');
	$Products = new Products();
	$Customer = new Customers();
	$User = new Users();
	$User->SetUser(isset($_SESSION['member'])?$_SESSION['member']:null);
	if(isset($_POST['action']))
		switch($_POST['action']){
			case "get_array_product":
				$Products->SetFieldsById($_POST['id_product']);
				$prod = $Products->fields;
				$prod['images'] = $Products->GetPhotoById($prod['id_product']);
				$rating_stars = '';
				for($i = 1; $i <= 5; $i++){
					$star = 'star';
					if($i > floor($prod['c_rating'])){
						if($i == ceil($prod['c_rating'])){
							$star .= '_half';
						}else{
							$star .= '_outline';
						}
					}
					$rating_stars .= '<li><span class="icon-font">'.$star.'</span></li>';
				}
				$rating_title = ($prod['c_rating'] != '')?'Рейтинг: '.round($prod['c_rating'],2):'Нет оценок';
				$comments_count = $prod['c_count'];
				if($prod['c_count'] == 1){
					$comments_count .= ' отзыв';
				}elseif(substr($prod['c_count'], -1) == 1 && substr($prod['c_count'], -2, 1) != 1){
					$comments_count .= ' отзыв';
				}elseif(substr($prod['c_count'], -1) == 2 || substr($prod['c_count'], -1) == 3 || substr($prod['c_count'], -1) == 4 && substr($prod['c_count'], -2, 1) != 1){
Ejemplo n.º 5
0
                header('Location: ' . $GLOBALS['URL_base'] . 'adm/productadd/');
                exit;
            }
            header('Location: ' . $GLOBALS['URL_base'] . 'adm/productedit/' . $id_product);
            unset($_POST);
        } else {
            $tpl->Assign('msg', 'Товар не обновлен.');
            $tpl->Assign('errm', $errm);
        }
    } else {
        // показываем все заново но с сообщениями об ошибках
        $tpl->Assign('msg', 'Товар не обновлен2.');
        $tpl->Assign('errm', $errm);
    }
}
if (!$Products->SetFieldsById($id_product, 0)) {
    die('Ошибка при выборе товара.');
}
// Формирование списка категорий для выпадающего списка
$list = $Products->generateCategory();
// Определение категории к которой принадлежит товар
if (isset($item['id_category']) && $item['id_category'] == $Products->fields['id_category']) {
    $category['name'] = $item['name'];
    $category['id_category'] = $item['id_category'];
}
$tpl->Assign('list', $list);
// get last article
$tpl->Assign('last_article', $Products->GetLastArticle());
//Дубликат товара
if (isset($_POST['smb_duplicate'])) {
    if ($id = $Products->DuplicateProduct($_POST)) {