From 9533857eb9a155968ff13c5621c1ba95fc112a7d Mon Sep 17 00:00:00 2001 From: chicpro Date: Fri, 24 May 2013 16:48:42 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=EC=98=B5=EC=85=98=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=EC=97=90=20=EB=94=B0=EB=A5=B8=20=EA=B0=80?= =?UTF-8?q?=EA=B2=A9=20=EB=B0=8F=20=EC=9E=AC=EA=B3=A0=20=EC=B2=B4=ED=81=AC?= =?UTF-8?q?=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95=20=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shop/cartupdate.php | 86 ++++++++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 37 deletions(-) diff --git a/shop/cartupdate.php b/shop/cartupdate.php index 3db9459b6..d1ac9cdc6 100644 --- a/shop/cartupdate.php +++ b/shop/cartupdate.php @@ -142,41 +142,45 @@ else // 장바구니에 담기 if (!$_POST['it_id']) alert('장바구니에 담을 상품을 선택하여 주십시오.'); - if ($_POST['ct_qty'] < 1) - alert('수량은 1 이상 입력해 주십시오.'); + for($i=0; $i $it_stock_qty) - { - alert("$it_name 의 재고수량이 부족합니다.\\n\\n현재 재고수량 : " . number_format($it_stock_qty) . " 개"); + // 재고 구함 + $ct_qty = $_POST['ct_qty'][$i]; + if(!$_POST['io_id'][$i]) + $it_stock_qty = get_it_stock_qty($_POST['it_id']); + else + $it_stock_qty = get_option_stock_qty($_POST['io_id'][$i]); + + if ($ct_qty + $sum_qty > $it_stock_qty) + { + alert($_POST['io_value'][$i]." 의 재고수량이 부족합니다.\\n\\n현재 재고수량 : " . number_format($it_stock_qty) . " 개"); + } } //-------------------------------------------------------- From 7e0961564f00b49a4e73a80f54d00e97ac26490c Mon Sep 17 00:00:00 2001 From: chicpro Date: Fri, 24 May 2013 17:45:02 +0900 Subject: [PATCH 2/3] =?UTF-8?q?#195=20=EC=B6=94=EA=B0=80=20=EB=B2=84?= =?UTF-8?q?=ED=8A=BC=20=EC=B6=94=EA=B0=80=EC=97=90=20=EB=94=B0=EB=A5=B8=20?= =?UTF-8?q?=EC=8A=A4=ED=81=AC=EB=A6=BD=ED=8A=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shop/item.php | 159 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 108 insertions(+), 51 deletions(-) diff --git a/shop/item.php b/shop/item.php index 385670a65..c942eaf42 100644 --- a/shop/item.php +++ b/shop/item.php @@ -325,6 +325,10 @@ else +

선택옵션

@@ -334,7 +338,7 @@ else
@@ -342,9 +346,16 @@ else
+ +

추가옵션

@@ -354,11 +365,14 @@ else
+ @@ -420,62 +434,27 @@ else return false; } - var id = ""; - var value, sel_opt, item, price, stock, run_error = false; - var option = sep = ""; - $("select[name='it_option[]']").each(function(index) { - value = $(this).val(); - item = $(this).closest("tr").find("th label").text(); - - if(!value) { - run_error = true; - return false; - } - - // 옵션선택정보 - sel_opt = value.split(",")[0]; - if(id == "") { - id = sel_opt; - } else { - id += chr(30)+sel_opt; - sep = " / "; - } - - option += sep + item + ":" + sel_opt; - }); - - if(run_error) { - alert(item+"을(를) 선택해 주십시오."); - return false; - } - - price = info[1]; - stock = info[2]; - - if(!same_option_check(option)) - add_sel_option(0, id, option, price, stock); + // 선택옵션 자동추가 기능을 사용하려면 아래 false를 true로 설정 + sel_option_process(false); } }); // 추가옵션 $("select[name='it_supply[]']").change(function() { - var val = $(this).val(); - var info = val.split(","); + var $el = $(this); + // 선택옵션 자동추가 기능을 사용하려면 아래 false를 true로 설정 + sel_supply_process($el, false); + }); - // 재고체크 - if(parseInt(info[2]) < 1) { - alert("선택하신 추가옵션상품은 재고가 부족하여 구매할 수 없습니다."); - return false; - } + // 선택옵션 추가 + $("#sit_selopt_submit").click(function() { + sel_option_process(true); + }); - var item = $(this).closest("tr").find("th label").text(); - var id = item+chr(30)+info[0]; - var option = item+":"+info[0]; - var price = info[1]; - var stock = info[2]; - - if(!same_option_check(option)) - add_sel_option(1, id, option, price, stock); + // 추가옵션 추가 + $("button.sit_sel_submit").click(function() { + var $el = $(this).closest("td").find("select[name='it_supply[]']"); + sel_supply_process($el, true); }); // 수량변경 및 삭제 @@ -552,6 +531,84 @@ else }); }); + // 선택옵션 추가처리 + function sel_option_process(add_exec) + { + var id = ""; + var value, info, sel_opt, item, price, stock, run_error = false; + var option = sep = ""; + info = $("select[name='it_option[]']:last").val().split(","); + + $("select[name='it_option[]']").each(function(index) { + value = $(this).val(); + item = $(this).closest("tr").find("th label").text(); + + if(!value) { + run_error = true; + return false; + } + + // 옵션선택정보 + sel_opt = value.split(",")[0]; + + if(id == "") { + id = sel_opt; + } else { + id += chr(30)+sel_opt; + sep = " / "; + } + + option += sep + item + ":" + sel_opt; + }); + + if(run_error) { + alert(item+"을(를) 선택해 주십시오."); + return false; + } + + price = info[1]; + stock = info[2]; + + if(add_exec) { + if(same_option_check(option)) + return; + + add_sel_option(0, id, option, price, stock); + } + } + + // 추가옵션 추가처리 + function sel_supply_process($el, add_exec) + { + var val = $el.val(); + var item = $el.closest("tr").find("th label").text(); + + if(!val) { + alert(item+"을(를) 선택해 주십시오."); + return; + } + + var info = val.split(","); + + // 재고체크 + if(parseInt(info[2]) < 1) { + alert(info[0]+"은(는) 재고가 부족하여 구매할 수 없습니다."); + return false; + } + + var id = item+chr(30)+info[0]; + var option = item+":"+info[0]; + var price = info[1]; + var stock = info[2]; + + if(add_exec) { + if(same_option_check(option)) + return; + + add_sel_option(1, id, option, price, stock); + } + } + // 선택된 옵션 출력 function add_sel_option(type, id, option, price, stock) { From c9007b47490d3880d1063e2141ae70169d51f9ba Mon Sep 17 00:00:00 2001 From: chicpro Date: Fri, 24 May 2013 18:16:45 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EC=98=B5=EC=85=98=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=EC=97=90=20=EB=94=B0=EB=A5=B8=20=EC=9E=A5?= =?UTF-8?q?=EB=B0=94=EA=B5=AC=EB=8B=88=20=EC=9E=AC=EA=B3=A0=20=EC=B2=B4?= =?UTF-8?q?=ED=81=AC=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/shop.lib.php | 23 +++++++++++++++++++++++ shop/cartupdate.php | 31 +++++++++++-------------------- 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/lib/shop.lib.php b/lib/shop.lib.php index 738ead5e4..cfadc8562 100644 --- a/lib/shop.lib.php +++ b/lib/shop.lib.php @@ -157,6 +157,29 @@ function get_it_stock_qty($it_id) $sql = " select SUM(ct_qty) as sum_qty from {$g4['shop_cart_table']} where it_id = '$it_id' + and io_id = '' + and ct_stock_use = 0 + and ct_status in ('주문', '준비') "; + $row = sql_fetch($sql); + $daegi = (int)$row['sum_qty']; + + return $jaego - $daegi; +} + +// 옵션의 재고 (창고재고수량 - 주문대기수량) +function get_option_stock_qty($it_id, $io_id) +{ + global $g4; + + $sql = " select io_stock_qty from {$g4['shop_item_option_table']} where it_id = '$it_id' and io_id = '$io_id' and io_use = '1' "; + $row = sql_fetch($sql); + $jaego = (int)$row['it_stock_qty']; + + // 재고에서 빼지 않았고 주문인것만 + $sql = " select SUM(ct_qty) as sum_qty + from {$g4['shop_cart_table']} + where it_id = '$it_id' + and io_id = '$io_id' and ct_stock_use = 0 and ct_status in ('주문', '준비') "; $row = sql_fetch($sql); diff --git a/shop/cartupdate.php b/shop/cartupdate.php index d1ac9cdc6..64918ec15 100644 --- a/shop/cartupdate.php +++ b/shop/cartupdate.php @@ -207,7 +207,7 @@ else // 장바구니에 담기 if(!$_POST['io_id'][$i]) $it_stock_qty = get_it_stock_qty($_POST['it_id']); else - $it_stock_qty = get_option_stock_qty($_POST['io_id'][$i]); + $it_stock_qty = get_option_stock_qty($_POST['it_id'], $_POST['io_id'][$i]); if ($ct_qty + $sum_qty > $it_stock_qty) { @@ -227,25 +227,16 @@ else // 장바구니에 담기 if (!$config['cf_use_point']) { $_POST['it_point'] = 0; } // 장바구니에 Insert - $sql = " insert {$g4['shop_cart_table']} - set uq_id = '$tmp_uq_id', - it_id = '{$_POST['it_id']}', - it_name = '{$_POST['it_name']}', - it_opt1 = '{$_POST['it_opt1']}', - it_opt2 = '{$_POST['it_opt2']}', - it_opt3 = '{$_POST['it_opt3']}', - it_opt4 = '{$_POST['it_opt4']}', - it_opt5 = '{$_POST['it_opt5']}', - it_opt6 = '{$_POST['it_opt6']}', - ct_status = '쇼핑', - ct_price = '{$_POST['it_price']}', - ct_point = '{$_POST['it_point']}', - ct_point_use = '0', - ct_stock_use = '0', - ct_qty = '{$_POST['ct_qty']}', - ct_time = '".G4_TIME_YMDHIS."', - ct_ip = '$REMOTE_ADDR', - ct_direct = '$sw_direct' "; + $comma = ''; + $sql = " INSERT INTO {$g4['shop_cart_table']} + ( uq_id, it_id, it_name, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, io_id, io_type, io_price, ct_time, ct_ip, ct_direct ) + VALUES "; + + for($i=0; $i<$option_count; $i++) { + $sql .= $comma."( '$tmp_uq_id', '{$_POST['it_id']}', '{$_POST['it_name']}', '쇼핑', '{$_POST['it_price']}', '{$_POST['it_point']}', '0', '0', '{$_POST[['io_value'][$i]}', '{$_POST['ct_qty'][$i]}', '{$_POST['io_id'][$i]}', '{$_POST['io_type'][$i]}', '{$_POST['io_price']}', '".G4_TIME_YMDHIS."', '$REMOTE_ADDR', '$sw_direct' )"; + $comma = ' , '; + } + sql_query($sql); }