From 164c67bcda2d664fd2bffcaaf722d2fe4b6a2e16 Mon Sep 17 00:00:00 2001 From: chicpro Date: Thu, 1 Aug 2013 17:54:32 +0900 Subject: [PATCH] =?UTF-8?q?#270=20cartupdate=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EA=B0=84=EC=86=8C=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/shop.js | 24 ++-- mobile/shop/item.php | 10 +- mobile/shop/wishlist.php | 9 +- shop/cartoption.php | 16 +-- shop/cartupdate.php | 269 ++++++++------------------------------- shop/item.php | 10 +- shop/wishlist.php | 9 +- 7 files changed, 95 insertions(+), 252 deletions(-) diff --git a/js/shop.js b/js/shop.js index 87069bcd0..ba7def26c 100644 --- a/js/shop.js +++ b/js/shop.js @@ -50,7 +50,7 @@ $(function() { var sel_count = $("select[name='it_option[]']").size(); var idx = $("select[name='it_option[]']").index($(this)); var val = $(this).val(); - var it_id = $("input[name=it_id]").val(); + var it_id = $("input[name='it_id[]']").val(); // 선택값이 없을 경우 하위 옵션은 disabled if(val == "") { @@ -161,7 +161,7 @@ $(function() { $("#sit_sel_option li button").live("click", function() { var mode = $(this).text(); var this_qty, max_qty = 9999, min_qty = 1; - var $el_qty = $(this).closest("li").find("input[name='ct_qty[]']"); + var $el_qty = $(this).closest("li").find("input[name^=ct_qty]"); var stock = parseInt($(this).closest("li").find("input[name='io_stock[]']").val()); switch(mode) { @@ -221,7 +221,7 @@ $(function() { }); // 수량직접입력 - $("input[name='ct_qty[]']").live("keyup", function() { + $("input[name^=ct_qty]").live("keyup", function() { var val= $(this).val(); if(val != "") { @@ -328,6 +328,7 @@ function sel_supply_process($el, add_exec) // 선택된 옵션 출력 function add_sel_option(type, id, option, price, stock) { + var item_code = $("input[name='it_id[]']").val(); var opt = ""; var li_class = "sit_opt_list"; if(type) @@ -340,14 +341,14 @@ function add_sel_option(type, id, option, price, stock) opt_prc = "("+number_format(String(price))+"원)"; opt += "
  • \n"; - opt += "\n"; - opt += "\n"; - opt += "\n"; + opt += "\n"; + opt += "\n"; + opt += "\n"; opt += "\n"; opt += "\n"; opt += ""+option+"\n"; opt += ""+opt_prc+"\n"; - opt += "
    \n"; + opt += "
    \n"; opt += "\n"; opt += "\n"; opt += "
    \n"; @@ -387,7 +388,7 @@ function add_sel_option(type, id, option, price, stock) function same_option_check(val) { var result = false; - $("input[name='io_value[]']").each(function() { + $("input[name^=io_value]").each(function() { if(val == $(this).val()) { result = true; return false; @@ -404,9 +405,9 @@ function same_option_check(val) function price_calculate() { var it_price = parseInt($("input[name=it_price]").val()); - var $el_prc = $("input[name='io_price[]']"); - var $el_qty = $("input[name='ct_qty[]']"); - var $el_type = $("input[name='io_type[]']"); + var $el_prc = $("input[name^=io_price]"); + var $el_qty = $("input[name^=ct_qty]"); + var $el_type = $("input[name^=io_type]"); var price, type, qty, total = 0; $el_prc.each(function(index) { @@ -421,7 +422,6 @@ function price_calculate() } }); - $("input[name=total_price]").val(total); $("#sit_tot_price").empty().html("총 금액 : "+number_format(String(total))+"원"); } diff --git a/mobile/shop/item.php b/mobile/shop/item.php index 299e6c05a..0735802d2 100644 --- a/mobile/shop/item.php +++ b/mobile/shop/item.php @@ -162,7 +162,7 @@ else
    - + @@ -404,15 +404,15 @@ else
    • - - - + + + (+0원)
      - +
      diff --git a/mobile/shop/wishlist.php b/mobile/shop/wishlist.php index 5be977fcd..d14912259 100644 --- a/mobile/shop/wishlist.php +++ b/mobile/shop/wishlist.php @@ -61,11 +61,14 @@ include_once(G4_MSHOP_PATH.'/_head.php'); { ?> 품절 - - + - + + + + + 삭제 diff --git a/shop/cartoption.php b/shop/cartoption.php index 7b115baa7..8a7529f55 100644 --- a/shop/cartoption.php +++ b/shop/cartoption.php @@ -26,12 +26,9 @@ if(!mysql_num_rows($result)) - + - - -
    • - - - - + + +
      - + @@ -128,7 +124,7 @@ if($option_2) { function formcheck(f) { var val, result = true; - $("li input[name='ct_qty[]']").each(function() { + $("li input[name^=ct_qty]").each(function() { val = $(this).val(); if(val.length < 1) { diff --git a/shop/cartupdate.php b/shop/cartupdate.php index ee4ed56df..d6bd4169a 100644 --- a/shop/cartupdate.php +++ b/shop/cartupdate.php @@ -1,7 +1,7 @@ $it_stock_qty) { - $error .= "{$_POST['it_name'][$i]} 의 재고수량이 부족합니다. 현재 재고수량 : $it_stock_qty\\n\\n"; - } - } - - // 오류가 있다면 오류메세지 출력 - if ($error != "") { alert($error); } - - $ct_count = 0; - $comma = ''; - $sql = " INSERT INTO {$g4['shop_cart_table']} - ( uq_id, mb_id, it_id, it_name, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, ct_num, ct_notax, io_id, io_type, io_price, ct_time, ct_ip, ct_send_cost, ct_direct, ct_select ) - VALUES "; - $ct_select = 0; - if($sw_direct) - $ct_select = 1; - - for ($i=0; $i<$fldcnt; $i++) - { - if ($_POST['it_id'][$i] == "" || $_POST['ct_qty'][$i] <= 0) continue; - - // 옵션있는 상품이라면 건너뜀 - if($arr_item[$i]['opt_skip']) - continue; - - // 동일옵션의 상품이 있으면 수량 더함 - $sql2 = " select ct_id - from {$g4['shop_cart_table']} - where uq_id = '$tmp_uq_id' - and it_id = '{$_POST['it_id'][$i]}' - and ct_status = '쇼핑' "; - $row2 = sql_fetch($sql2); - if($row2['ct_id']) { - $sql3 = " update {$g4['shop_cart_table']} - set ct_qty = ct_qty + {$_POST['ct_qty'][$i]} - where ct_id = '{$row2['ct_id']}' "; - sql_query($sql3); - - continue; - } - - $sql .= $comma."( '$tmp_uq_id', '{$member['mb_id']}', '{$arr_item[$i]['id']}', '{$arr_item[$i]['name']}', '쇼핑', '{$arr_item[$i]['price']}', '{$arr_item[$i]['point']}', '0', '0', '{$arr_item[$i]['name']}', '{$_POST['ct_qty'][$i]}', '0', '{$arr_item[$i]['notax']}', '', '0', '0', '".G4_TIME_YMDHIS."', '$REMOTE_ADDR', '$ct_send_cost', '$sw_direct', '$ct_select' )"; - $comma = ' , '; - $ct_count++; - } - - if($ct_count > 0) - sql_query($sql); -} -else if ($act == "optionmod") // 장바구니에서 옵션변경 -{ - if (!$_POST['it_id']) - alert('장바구니에 담을 상품을 선택하여 주십시오.'); - - $option_count = count($_POST['io_id']); - - if($_POST['io_type'][0] != 0) - alert('상품의 선택옵션을 선택해 주십시오.'); - - if($option_count) { - for($i=0; $i $it_stock_qty) - { - alert($_POST['io_value'][$i]." 의 재고수량이 부족합니다.\\n\\n현재 재고수량 : " . number_format($it_stock_qty) . " 개"); - } - } - //-------------------------------------------------------- - - // 기존 장바구니 자료를 먼저 삭제 - sql_query(" delete from {$g4['shop_cart_table']} where uq_id = '$tmp_uq_id' and it_id = '$it_id' "); - - // 장바구니에 Insert - $comma = ''; - $sql = " INSERT INTO {$g4['shop_cart_table']} - ( uq_id, mb_id, it_id, it_name, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, ct_num, ct_notax, io_id, io_type, io_price, ct_time, ct_ip, ct_direct, ct_send_cost ) - VALUES "; - - for($i=0; $i<$option_count; $i++) { - $opt_id = $_POST['io_id'][$i]; - $opt_type = $_POST['io_type'][$i]; - - // 옵션테이블에 정보가 없으면 건너뜀 - if($opt_id && !$opt_list[$opt_type][$opt_id]['id']) - continue; - - $opt_price = $opt_list[$opt_type][$opt_id]['price']; - $opt_qty = $_POST['ct_qty'][$i]; - - $sql .= $comma."( '$tmp_uq_id', '{$member['mb_id']}', '{$it['it_id']}', '{$it['it_name']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '{$_POST['io_value'][$i]}', '$opt_qty', '$i', '{$it['it_notax']}', '$opt_id', '$opt_type', '$opt_price', '".G4_TIME_YMDHIS."', '$REMOTE_ADDR', '$sw_direct', '$ct_send_cost' )"; - $comma = ' , '; - } - - sql_query($sql); - } else { - // 기존 장바구니 자료 삭제 - sql_query(" delete from {$g4['shop_cart_table']} where uq_id = '$tmp_uq_id' and it_id = '$it_id' "); - } -} else // 장바구니에 담기 { - if (!$_POST['it_id']) + $count = count($_POST['it_id']); + if ($count < 1) alert('장바구니에 담을 상품을 선택하여 주십시오.'); - $option_count = count($_POST['io_id']); - if($option_count) { - if($_POST['io_type'][0] != 0) + for($i=0; $i<$count; $i++) { + // 보관함의 상품을 담을 때 체크되지 않은 상품 건너뜀 + if($act == 'multi' && !$_POST['chk_it_id'][$i]) + continue; + + $it_id = $_POST['it_id'][$i]; + $opt_count = count($_POST['io_id'][$it_id]); + + if($opt_count && $_POST['io_type'][$it_id][0] != 0) alert('상품의 선택옵션을 선택해 주십시오.'); - for($i=0; $i $it_stock_qty) { - alert($_POST['io_value'][$i]." 의 재고수량이 부족합니다.\\n\\n현재 재고수량 : " . number_format($it_stock_qty) . " 개"); + alert($io_value." 의 재고수량이 부족합니다.\\n\\n현재 재고수량 : " . number_format($it_stock_qty) . " 개"); } } //-------------------------------------------------------- // 바로구매에 있던 장바구니 자료를 지운다. - sql_query(" delete from {$g4['shop_cart_table']} where uq_id = '$tmp_uq_id' and ct_direct = 1 ", false); + if($i == 0) + sql_query(" delete from {$g4['shop_cart_table']} where uq_id = '$tmp_uq_id' and ct_direct = 1 ", false); + + // 옵션수정일 때 기존 장바구니 자료를 먼저 삭제 + if($act == 'optionmod') + sql_query(" delete from {$g4['shop_cart_table']} where uq_id = '$tmp_uq_id' and it_id = '$it_id' "); // 장바구니에 Insert $sql = " select ct_num from {$g4['shop_cart_table']} - where it_id = '{$_POST['it_id']}' + where it_id = '$it_id' and uq_id = '$tmp_uq_id' order by ct_num desc "; $row = sql_fetch($sql); @@ -344,35 +181,39 @@ else // 장바구니에 담기 ( uq_id, mb_id, it_id, it_name, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, ct_num, ct_notax, io_id, io_type, io_price, ct_time, ct_ip, ct_send_cost, ct_direct, ct_select ) VALUES "; - for($i=0; $i<$option_count; $i++) { - $opt_id = $_POST['io_id'][$i]; - $opt_type = $_POST['io_type'][$i]; + for($k=0; $k<$opt_count; $k++) { + $io_id = $_POST['io_id'][$it_id][$k]; + $io_type = $_POST['io_type'][$it_id][$k]; + $io_value = $_POST['io_value'][$it_id][$k]; - // 옵션테이블에 정보가 없으면 건너뜀 - if($opt_id && !$opt_list[$opt_type][$opt_id]['id']) + // 옵션정보가 존재하는데 선택된 옵션이 없으면 건너뜀 + if($lst_count && $io_id == '') continue; - $opt_price = $opt_list[$opt_type][$opt_id]['price']; - $opt_qty = $_POST['ct_qty'][$i]; + // 구매할 수 없는 옵션은 건너뜀 + if($io_id && !$opt_list[$io_type][$io_id]['use']) + continue; + + $io_price = $opt_list[$io_type][$io_id]['price']; + $ct_qty = $_POST['ct_qty'][$it_id][$k]; // 동일옵션의 상품이 있으면 수량 더함 $sql2 = " select ct_id from {$g4['shop_cart_table']} where uq_id = '$tmp_uq_id' - and it_id = '{$_POST['it_id']}' - and io_id = '{$_POST['io_id'][$i]}' + and it_id = '$it_id' + and io_id = '$io_id' and ct_status = '쇼핑' "; $row2 = sql_fetch($sql2); if($row2['ct_id']) { $sql3 = " update {$g4['shop_cart_table']} - set ct_qty = ct_qty + {$_POST['ct_qty'][$i]} + set ct_qty = ct_qty + '$ct_qty' where ct_id = '{$row2['ct_id']}' "; sql_query($sql3); - continue; } - $sql .= $comma."( '$tmp_uq_id', '{$member['mb_id']}', '{$it['it_id']}', '{$it['it_name']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '{$_POST['io_value'][$i]}', '$opt_qty', '$ct_num', '{$it['it_notax']}', '$opt_id', '$opt_type', '$opt_price', '".G4_TIME_YMDHIS."', '$REMOTE_ADDR', '$ct_send_cost', '$sw_direct', '$ct_select' )"; + $sql .= $comma."( '$tmp_uq_id', '{$member['mb_id']}', '{$it['it_id']}', '{$it['it_name']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '$io_value', '$ct_qty', '$ct_num', '{$it['it_notax']}', '$io_id', '$io_type', '$io_price', '".G4_TIME_YMDHIS."', '$REMOTE_ADDR', '$ct_send_cost', '$sw_direct', '$ct_select' )"; $comma = ' , '; $ct_num++; $ct_count++; diff --git a/shop/item.php b/shop/item.php index 8cfa84f8c..56f2b2b4a 100644 --- a/shop/item.php +++ b/shop/item.php @@ -162,7 +162,7 @@ else
      - + @@ -400,15 +400,15 @@ else
      • - - - + + + (+0원)
        - +
        diff --git a/shop/wishlist.php b/shop/wishlist.php index e16ee1b34..66dc6ab62 100644 --- a/shop/wishlist.php +++ b/shop/wishlist.php @@ -61,11 +61,14 @@ include_once('./_head.php'); { ?> 품절 - - + - + + + + +