Merge branch 'master' of github.com:gnuboard/yc4s
This commit is contained in:
@ -157,6 +157,29 @@ function get_it_stock_qty($it_id)
|
|||||||
$sql = " select SUM(ct_qty) as sum_qty
|
$sql = " select SUM(ct_qty) as sum_qty
|
||||||
from {$g4['shop_cart_table']}
|
from {$g4['shop_cart_table']}
|
||||||
where it_id = '$it_id'
|
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_stock_use = 0
|
||||||
and ct_status in ('주문', '준비') ";
|
and ct_status in ('주문', '준비') ";
|
||||||
$row = sql_fetch($sql);
|
$row = sql_fetch($sql);
|
||||||
|
|||||||
@ -142,41 +142,45 @@ else // 장바구니에 담기
|
|||||||
if (!$_POST['it_id'])
|
if (!$_POST['it_id'])
|
||||||
alert('장바구니에 담을 상품을 선택하여 주십시오.');
|
alert('장바구니에 담을 상품을 선택하여 주십시오.');
|
||||||
|
|
||||||
if ($_POST['ct_qty'] < 1)
|
for($i=0; $i<count($_POST['ct_qty']); $i++) {
|
||||||
alert('수량은 1 이상 입력해 주십시오.');
|
if ($_POST['ct_qty'][$i] < 1)
|
||||||
|
alert('수량은 1 이상 입력해 주십시오.');
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------
|
//--------------------------------------------------------
|
||||||
// 변조 검사
|
// 변조 검사
|
||||||
//--------------------------------------------------------
|
//--------------------------------------------------------
|
||||||
$opt_amount = 0;
|
$total_price = 0;
|
||||||
|
$option_count = count($_POST['io_id']);
|
||||||
$sql = " select * from {$g4['shop_item_table']} where it_id = '{$_POST['it_id']}' ";
|
$sql = " select * from {$g4['shop_item_table']} where it_id = '{$_POST['it_id']}' ";
|
||||||
$it = sql_fetch($sql);
|
$it = sql_fetch($sql);
|
||||||
for ($i=1; $i<=6; $i++) {
|
|
||||||
//$dst_opt = $_POST["it_opt".$i];
|
// 옵션정보를 얻어서 배열에 저장
|
||||||
$dst_opt = trim($_POST["it_opt".$i]);
|
$opt_list = array();
|
||||||
if ($dst_opt) {
|
$sql = " select * from {$g4['shop_item_option_table']} where it_id = '{$_POST['it_id']}' and io_use = '1' order io_no asc ";
|
||||||
$org_opt = $it["it_opt".$i];
|
$result = sql_query($sql);
|
||||||
$exp_opt = explode("\n", trim($org_opt));
|
for($i=0; $row=sql_fetch_array($result); $i++) {
|
||||||
$exists = false;
|
$opt_list[$row['io_type']][$row['io_id']]['price'] = $row['io_price'];
|
||||||
for ($k=0; $k<count($exp_opt); $k++) {
|
$opt_list[$row['io_type']][$row['io_id']]['stock'] = $row['io_stock_qty'];
|
||||||
$opt = trim($exp_opt[$k]);
|
|
||||||
if ($dst_opt == $opt) {
|
|
||||||
$exists = true;
|
|
||||||
$exp_option = explode(";", $opt);
|
|
||||||
$opt_amount += (int)$exp_option[1];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($exists == false) {
|
|
||||||
// 옵션이 다름
|
|
||||||
die("Error.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$price = get_price($it) + $opt_amount;
|
for($i=0; $i<$option_count; $i++) {
|
||||||
// 상품가격이 다름
|
$opt_id = $_POST['io_id'][$i];
|
||||||
if ((int)$price !== (int)$_POST['it_price'])
|
$opt_type = $_POST['io_type'][$i];
|
||||||
|
$opt_price = $_POST['io_price'][$i];
|
||||||
|
$opt_qty = $_POST['ct_qty'][$i];
|
||||||
|
|
||||||
|
if((int)$opt_price !== (int)$opt_list[$opt_type][$opt_id]['price'])
|
||||||
|
die("Option Price Mismatch");
|
||||||
|
|
||||||
|
if($opt_type == 1)
|
||||||
|
$total_price += $opt_price * $opt_qty;
|
||||||
|
else
|
||||||
|
$total_price += ($it['it_price'] + $opt_price) * $opt_qty;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 상품 총금액이 다름
|
||||||
|
if ((int)$_POST['total_price'] !== (int)$total_price)
|
||||||
die("Error..");
|
die("Error..");
|
||||||
|
|
||||||
$point = $it['it_point'];
|
$point = $it['it_point'];
|
||||||
@ -190,17 +194,25 @@ else // 장바구니에 담기
|
|||||||
// 재고 검사
|
// 재고 검사
|
||||||
//--------------------------------------------------------
|
//--------------------------------------------------------
|
||||||
// 이미 장바구니에 있는 같은 상품의 수량합계를 구한다.
|
// 이미 장바구니에 있는 같은 상품의 수량합계를 구한다.
|
||||||
$sql = " select SUM(ct_qty) as cnt from {$g4['shop_cart_table']}
|
for($i=0; $i<$option_count; $i++) {
|
||||||
where it_id = '{$_POST['it_id']}'
|
$sql = " select SUM(ct_qty) as cnt from {$g4['shop_cart_table']}
|
||||||
and uq_id = '$tmp_uq_id' ";
|
where it_id = '{$_POST['it_id']}'
|
||||||
$row = sql_fetch($sql);
|
and uq_id = '$tmp_uq_id',
|
||||||
$sum_qty = $row['cnt'];
|
and io_id = '{$_POST['io_id'][$i]}' ";
|
||||||
|
$row = sql_fetch($sql);
|
||||||
|
$sum_qty = $row['cnt'];
|
||||||
|
|
||||||
// 재고 구함
|
// 재고 구함
|
||||||
$it_stock_qty = get_it_stock_qty($_POST['it_id']);
|
$ct_qty = $_POST['ct_qty'][$i];
|
||||||
if ($ct_qty + $sum_qty > $it_stock_qty)
|
if(!$_POST['io_id'][$i])
|
||||||
{
|
$it_stock_qty = get_it_stock_qty($_POST['it_id']);
|
||||||
alert("$it_name 의 재고수량이 부족합니다.\\n\\n현재 재고수량 : " . number_format($it_stock_qty) . " 개");
|
else
|
||||||
|
$it_stock_qty = get_option_stock_qty($_POST['it_id'], $_POST['io_id'][$i]);
|
||||||
|
|
||||||
|
if ($ct_qty + $sum_qty > $it_stock_qty)
|
||||||
|
{
|
||||||
|
alert($_POST['io_value'][$i]." 의 재고수량이 부족합니다.\\n\\n현재 재고수량 : " . number_format($it_stock_qty) . " 개");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//--------------------------------------------------------
|
//--------------------------------------------------------
|
||||||
|
|
||||||
@ -215,25 +227,16 @@ else // 장바구니에 담기
|
|||||||
if (!$config['cf_use_point']) { $_POST['it_point'] = 0; }
|
if (!$config['cf_use_point']) { $_POST['it_point'] = 0; }
|
||||||
|
|
||||||
// 장바구니에 Insert
|
// 장바구니에 Insert
|
||||||
$sql = " insert {$g4['shop_cart_table']}
|
$comma = '';
|
||||||
set uq_id = '$tmp_uq_id',
|
$sql = " INSERT INTO {$g4['shop_cart_table']}
|
||||||
it_id = '{$_POST['it_id']}',
|
( 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 )
|
||||||
it_name = '{$_POST['it_name']}',
|
VALUES ";
|
||||||
it_opt1 = '{$_POST['it_opt1']}',
|
|
||||||
it_opt2 = '{$_POST['it_opt2']}',
|
for($i=0; $i<$option_count; $i++) {
|
||||||
it_opt3 = '{$_POST['it_opt3']}',
|
$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' )";
|
||||||
it_opt4 = '{$_POST['it_opt4']}',
|
$comma = ' , ';
|
||||||
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' ";
|
|
||||||
sql_query($sql);
|
sql_query($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
159
shop/item.php
159
shop/item.php
@ -325,6 +325,10 @@ else
|
|||||||
</table>
|
</table>
|
||||||
|
|
||||||
<!-- ########## 선택옵션이 있을 때만 출력 - 지운아빠 2013-05-24 -->
|
<!-- ########## 선택옵션이 있을 때만 출력 - 지운아빠 2013-05-24 -->
|
||||||
|
<?php
|
||||||
|
$option_1 = get_item_options($it['it_id'], $it['it_option_subject']);
|
||||||
|
if($option_1) {
|
||||||
|
?>
|
||||||
<section>
|
<section>
|
||||||
<h3>선택옵션</h3>
|
<h3>선택옵션</h3>
|
||||||
<table class="sit_ov_tbl">
|
<table class="sit_ov_tbl">
|
||||||
@ -334,7 +338,7 @@ else
|
|||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
<?php // 선택옵션
|
<?php // 선택옵션
|
||||||
echo get_item_options($it['it_id'], $it['it_option_subject']);
|
echo $option_1;
|
||||||
?>
|
?>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@ -342,9 +346,16 @@ else
|
|||||||
<button type="button" id="sit_selopt_submit" class="btn_frmline">추가</button>
|
<button type="button" id="sit_selopt_submit" class="btn_frmline">추가</button>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
<!-- ########## 선택옵션이 있을 때만 출력 끝 -->
|
<!-- ########## 선택옵션이 있을 때만 출력 끝 -->
|
||||||
|
|
||||||
<!-- ########## 추가옵션이 있을 때만 출력 - 지운아빠 2013-05-24 -->
|
<!-- ########## 추가옵션이 있을 때만 출력 - 지운아빠 2013-05-24 -->
|
||||||
|
<?php
|
||||||
|
$option_2 = get_item_supply($it['it_id'], $it['it_supply_subject']);
|
||||||
|
if($option_2) {
|
||||||
|
?>
|
||||||
<section>
|
<section>
|
||||||
<h3>추가옵션</h3>
|
<h3>추가옵션</h3>
|
||||||
<table class="sit_ov_tbl">
|
<table class="sit_ov_tbl">
|
||||||
@ -354,11 +365,14 @@ else
|
|||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
<?php // 추가옵션
|
<?php // 추가옵션
|
||||||
echo get_item_supply($it['it_id'], $it['it_supply_subject']);
|
echo $option_2;
|
||||||
?>
|
?>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</section>
|
</section>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
<!-- ########## 추가옵션이 있을 때만 출력 끝 -->
|
<!-- ########## 추가옵션이 있을 때만 출력 끝 -->
|
||||||
|
|
||||||
<?php } // 전화문의가 아닐 경우 끝 ?>
|
<?php } // 전화문의가 아닐 경우 끝 ?>
|
||||||
@ -420,62 +434,27 @@ else
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var id = "";
|
// 선택옵션 자동추가 기능을 사용하려면 아래 false를 true로 설정
|
||||||
var value, sel_opt, item, price, stock, run_error = false;
|
sel_option_process(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);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 추가옵션
|
// 추가옵션
|
||||||
$("select[name='it_supply[]']").change(function() {
|
$("select[name='it_supply[]']").change(function() {
|
||||||
var val = $(this).val();
|
var $el = $(this);
|
||||||
var info = val.split(",");
|
// 선택옵션 자동추가 기능을 사용하려면 아래 false를 true로 설정
|
||||||
|
sel_supply_process($el, false);
|
||||||
|
});
|
||||||
|
|
||||||
// 재고체크
|
// 선택옵션 추가
|
||||||
if(parseInt(info[2]) < 1) {
|
$("#sit_selopt_submit").click(function() {
|
||||||
alert("선택하신 추가옵션상품은 재고가 부족하여 구매할 수 없습니다.");
|
sel_option_process(true);
|
||||||
return false;
|
});
|
||||||
}
|
|
||||||
|
|
||||||
var item = $(this).closest("tr").find("th label").text();
|
// 추가옵션 추가
|
||||||
var id = item+chr(30)+info[0];
|
$("button.sit_sel_submit").click(function() {
|
||||||
var option = item+":"+info[0];
|
var $el = $(this).closest("td").find("select[name='it_supply[]']");
|
||||||
var price = info[1];
|
sel_supply_process($el, true);
|
||||||
var stock = info[2];
|
|
||||||
|
|
||||||
if(!same_option_check(option))
|
|
||||||
add_sel_option(1, id, option, price, stock);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// 수량변경 및 삭제
|
// 수량변경 및 삭제
|
||||||
@ -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)
|
function add_sel_option(type, id, option, price, stock)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user