#288 포인트 계산 코드 수정

This commit is contained in:
chicpro
2013-09-06 11:05:39 +09:00
parent b94e98aba1
commit 82efe3656e
4 changed files with 81 additions and 62 deletions

View File

@ -655,15 +655,19 @@ ob_end_clean();
// 포인트 결제 사용 포인트보다 회원의 포인트가 크다면
if ($member['mb_point'] >= $default['de_point_settle'])
{
$temp_point = $tot_amount * ($default['de_point_per'] / 100); // 포인트 결제 % 적용
$temp_point = (int)((int)($temp_point / 100) * 100); // 100점 단위
$temp_point = (int)$default['de_settle_max_point'];
$member_point = (int)((int)($member['mb_point'] / 100) * 100); // 100점 단위
if ($temp_point > $member_point)
$temp_point = $member_point;
if($temp_point > (int)$tot_sell_amount)
$temp_point = (int)$tot_sell_amount;
echo '<div><input type="hidden" name="max_temp_point" value="'.$temp_point.'">결제포인트 : <input type="text" id="od_temp_point" name="od_temp_point" value="0" size="10">점 (100점 단위로 입력하세요.)</div>';
echo '<div>회원님의 보유포인트('.display_point($member['mb_point']).')중 <strong id="use_max_point">'.display_point($temp_point).'</strong>(주문금액 '.$default['de_point_per'].'%) 내에서 결제가 가능합니다.</div>';
if($temp_point > (int)$member['mb_point'])
$temp_point = (int)$member['mb_point'];
$point_unit = (int)$default['de_settle_point_unit'];
$temp_point = (int)((int)($temp_point / $point_unit) * $point_unit);
echo '<div><input type="hidden" name="max_temp_point" value="'.$temp_point.'">결제포인트 : <input type="text" id="od_temp_point" name="od_temp_point" value="0" size="10">점 ('.$point_unit.'점 단위로 입력하세요.)</div>';
echo '<div>회원님의 보유포인트('.display_point($member['mb_point']).')중 <strong id="use_max_point">'.display_point($temp_point).'</strong>까지 사용 가능합니다.</div>';
$multi_settle++;
}
}
@ -1144,14 +1148,18 @@ function calculate_order_amount()
function calculate_temp_point()
{
var sell_amount = parseInt($("input[name=od_amount]").val());
var send_cost = parseInt($("input[name=od_send_cost]").val());
var send_coupon = parseInt($("input[name=od_send_coupon]").val());
var point_per = <?php echo $default['de_point_per']; ?>;
var temp_point = parseInt((sell_amount + send_cost - send_coupon) * (point_per / 100) / 100) * 100;
var point = <?php echo (int)$member_point; ?>
var mb_point = parseInt(<?php echo $member['mb_point']; ?>);
var max_point = parseInt(<?php echo $default['de_settle_max_point']; ?>);
var point_unit = parseInt(<?php echo $default['de_settle_point_unit']; ?>);
var temp_point = max_point;
if(temp_point > point)
temp_point = point;
if(temp_point > sell_amount)
temp_point = sell_amount;
if(temp_point > mb_point)
temp_point = mb_point;
temp_point = parseInt(temp_point / point_unit) * point_unit;
$("#use_max_point").text("최대 "+number_format(String(temp_point))+"점");
$("input[name=max_temp_point]").val(temp_point);
@ -1357,14 +1365,17 @@ function orderfield_check(f)
// 결제체크
function payment_check(f)
{
temp_point = 0;
var tot_amount = <?php echo (int)$tot_amount; ?>;
var temp_point = 0;
var max_point = 0;
var tot_sell_amount = parseInt($("input[name=od_amount]").val());
if (typeof(f.max_temp_point) != "undefined")
var max_point = parseInt(f.max_temp_point.value);
if (typeof(f.od_temp_point) != "undefined") {
if (f.od_temp_point.value)
{
var point_unit = parseInt(<?php echo $default['de_settle_point_unit']; ?>);
temp_point = parseInt(f.od_temp_point.value);
if (temp_point < 0) {
@ -1373,8 +1384,8 @@ function payment_check(f)
return false;
}
if (temp_point > tot_amount) {
alert("주문금액 보다 많이 포인트결제할 수 없습니다.");
if (temp_point > tot_sell_amount) {
alert("상품 주문금액(배송비 제외) 보다 많이 포인트결제할 수 없습니다.");
f.od_temp_point.select();
return false;
}
@ -1391,8 +1402,8 @@ function payment_check(f)
return false;
}
if (parseInt(parseInt(temp_point / 100) * 100) != temp_point) {
alert("포인트를 100점 단위로 입력하세요.");
if (parseInt(parseInt(temp_point / point_unit) * point_unit) != temp_point) {
alert("포인트를 "+String(point_unit)+"점 단위로 입력하세요.");
f.od_temp_point.select();
return false;
}

View File

@ -270,20 +270,21 @@ if($send_cost2 !== $i_send_cost2)
die("Error...");
// 결제포인트가 상이함
$tot_amount = $tot_sell_amount + $send_cost;
// 회원이면서 포인트사용이면
$temp_point = 0;
if ($is_member && $config['cf_use_point'])
{
// 포인트 결제 사용 포인트보다 회원의 포인트가 크다면
if ($member['mb_point'] >= $default['de_point_settle'])
{
$temp_point = $tot_amount * ($default['de_point_per'] / 100); // 포인트 결제 % 적용
$temp_point = (int)((int)($temp_point / 100) * 100); // 100점 단위
if($member['mb_point'] >= $default['de_settle_min_point']) {
$temp_point = (int)$default['de_settle_max_point'];
$member_point = (int)((int)($member['mb_point'] / 100) * 100); // 100점 단위
if ($temp_point > $member_point)
$temp_point = $member_point;
if($temp_point > (int)$tot_od_amount)
$temp_point = (int)$tot_od_amount;
if($temp_point > (int)$member['mb_point'])
$temp_point = (int)$member['mb_point'];
$point_unit = (int)$default['de_settle_point_unit'];
$temp_point = (int)((int)($temp_point / $point_unit) * $point_unit);
}
}

View File

@ -891,19 +891,23 @@ function get_intall_file()
if ($is_member && $config['cf_use_point'])
{
// 포인트 결제 사용 포인트보다 회원의 포인트가 크다면
if ($member['mb_point'] >= $default['de_point_settle'])
if ($member['mb_point'] >= $default['de_settle_min_point'])
{
$temp_point = $tot_amount * ($default['de_point_per'] / 100); // 포인트 결제 % 적용
$temp_point = (int)((int)($temp_point / 100) * 100); // 100점 단위
$temp_point = (int)$default['de_settle_max_point'];
$member_point = (int)((int)($member['mb_point'] / 100) * 100); // 100점 단위
if ($temp_point > $member_point)
$temp_point = $member_point;
if($temp_point > (int)$tot_sell_amount)
$temp_point = (int)$tot_sell_amount;
if($temp_point > (int)$member['mb_point'])
$temp_point = (int)$member['mb_point'];
$point_unit = (int)$default['de_settle_point_unit'];
$temp_point = (int)((int)($temp_point / $point_unit) * $point_unit);
?>
<p>보유포인트(<?php echo display_point($member['mb_point']); ?>)중 <strong id="use_max_point">최대 <?php echo display_point($temp_point); ?></strong>까지 사용 가능 (주문금액 <?php echo $default['de_point_per']; ?>%)</p>
<p>보유포인트(<?php echo display_point($member['mb_point']); ?>)중 <strong id="use_max_point">최대 <?php echo display_point($temp_point); ?></strong>까지 사용 가능</p>
<input type="hidden" name="max_temp_point" value="<?php echo $temp_point; ?>">
<label for="od_temp_point">사용 포인트</label>
<input type="text" name="od_temp_point" value="0" id="od_temp_point" class="frm_input" size="10">점 (100점 단위로 입력하세요.)
<input type="text" name="od_temp_point" value="0" id="od_temp_point" class="frm_input" size="10">점 (<?php echo $point_unit; ?>점 단위로 입력하세요.)
<?php
$multi_settle++;
}
@ -1361,14 +1365,18 @@ function calculate_order_amount()
function calculate_temp_point()
{
var sell_amount = parseInt($("input[name=od_amount]").val());
var send_cost = parseInt($("input[name=od_send_cost]").val());
var send_coupon = parseInt($("input[name=od_send_coupon]").val());
var point_per = <?php echo $default['de_point_per']; ?>;
var temp_point = parseInt((sell_amount + send_cost - send_coupon) * (point_per / 100) / 100) * 100;
var point = <?php echo (int)$member_point; ?>;
var mb_point = parseInt(<?php echo $member['mb_point']; ?>);
var max_point = parseInt(<?php echo $default['de_settle_max_point']; ?>);
var point_unit = parseInt(<?php echo $default['de_settle_point_unit']; ?>);
var temp_point = max_point;
if(temp_point > point)
temp_point = point;
if(temp_point > sell_amount)
temp_point = sell_amount;
if(temp_point > mb_point)
temp_point = mb_point;
temp_point = parseInt(temp_point / point_unit) * point_unit;
$("#use_max_point").text("최대 "+number_format(String(temp_point))+"점");
$("input[name=max_temp_point]").val(temp_point);
@ -1503,7 +1511,7 @@ function forderform_check(f)
return false;
}
var tot_amount = <?php echo (int)$tot_amount; ?>;
var tot_sell_amount = parseInt($("input[name=od_amount]").val());
var max_point = 0;
if (typeof(f.max_temp_point) != "undefined")
max_point = parseInt(f.max_temp_point.value);
@ -1512,6 +1520,7 @@ function forderform_check(f)
if (typeof(f.od_temp_point) != "undefined") {
if (f.od_temp_point.value)
{
var point_unit = parseInt(<?php echo $default['de_settle_point_unit']; ?>);
temp_point = parseInt(f.od_temp_point.value);
if (temp_point < 0) {
@ -1520,8 +1529,8 @@ function forderform_check(f)
return false;
}
if (temp_point > tot_amount) {
alert("주문금액 보다 많이 포인트결제할 수 없습니다.");
if (temp_point > tot_sell_amount) {
alert("상품 주문금액(배송비 제외) 보다 많이 포인트결제할 수 없습니다.");
f.od_temp_point.select();
return false;
}
@ -1538,8 +1547,8 @@ function forderform_check(f)
return false;
}
if (parseInt(parseInt(temp_point / 100) * 100) != temp_point) {
alert("포인트를 100점 단위로 입력하세요.");
if (parseInt(parseInt(temp_point / point_unit) * point_unit) != temp_point) {
alert("포인트를 "+String(point_unit)+"점 단위로 입력하세요.");
f.od_temp_point.select();
return false;
}

View File

@ -3,13 +3,10 @@ include_once('./_common.php');
if(get_magic_quotes_gpc())
{
//$_GET = array_map("stripslashes", $_GET);
//$_POST = array_map("stripslashes", $_POST);
$_GET = array_add_callback("stripslashes", $_GET);
$_POST = array_add_callback("stripslashes", $_POST);
}
//$_GET = array_map("mysql_real_escape_string", $_GET);
//$_POST = array_map("mysql_real_escape_string", $_POST);
$_GET = array_add_callback("mysql_real_escape_string", $_GET);
$_POST = array_add_callback("mysql_real_escape_string", $_POST);
@ -264,20 +261,21 @@ if($send_cost2 !== $i_send_cost2)
die("Error...");
// 결제포인트가 상이함
$tot_amount = $tot_od_amount + ($send_cost - $tot_sc_cp_amount);
// 회원이면서 포인트사용이면
$temp_point = 0;
if ($is_member && $config['cf_use_point'])
{
// 포인트 결제 사용 포인트보다 회원의 포인트가 크다면
if ($member['mb_point'] >= $default['de_point_settle'])
{
$temp_point = $tot_amount * ($default['de_point_per'] / 100); // 포인트 결제 % 적용
$temp_point = (int)((int)($temp_point / 100) * 100); // 100점 단위
if($member['mb_point'] >= $default['de_settle_min_point']) {
$temp_point = (int)$default['de_settle_max_point'];
$member_point = (int)((int)($member['mb_point'] / 100) * 100); // 100점 단위
if ($temp_point > $member_point)
$temp_point = $member_point;
if($temp_point > (int)$tot_od_amount)
$temp_point = (int)$tot_od_amount;
if($temp_point > (int)$member['mb_point'])
$temp_point = (int)$member['mb_point'];
$point_unit = (int)$default['de_settle_point_unit'];
$temp_point = (int)((int)($temp_point / $point_unit) * $point_unit);
}
}