주문일괄처리 수정중, 주문상태를 상수에서 직접값으로 처리 예를 들어 G5_OD_STATUS_SETTLE 결제완료 -> 입금

This commit is contained in:
gnuboard
2013-10-04 18:01:43 +09:00
parent c4cd9bff0c
commit 0641581bc1
7 changed files with 162 additions and 50 deletions

View File

@ -25,19 +25,15 @@ if ($search != "") {
if ($od_status) {
$where[] = " od_status = '$od_status' ";
switch ($od_status) {
case G5_OD_STATUS_ORDER : // 입금확인중
case '주문' :
$sort1 = "od_id";
$sort2 = "desc";
break;
case G5_OD_STATUS_SETTLE : // 결제완료
case '입금' : // 결제완료
$sort1 = "od_receipt_time";
$sort2 = "desc";
break;
case G5_OD_STATUS_READY : // 배송준비
$sort1 = "od_receipt_time";
$sort2 = "desc";
break;
case G5_OD_STATUS_DELIVERY : // 배송중
case '배송' : // 배송중
$sort1 = "od_invoice_time";
$sort2 = "desc";
break;
@ -48,6 +44,30 @@ if ($od_status) {
$where[] = " od_status = '$od_status' ";
}
if ($od_settle_case) {
$where[] = " od_settle_case = '$od_settle_case' ";
}
if ($od_misu) {
$where[] = " od_misu != 0 ";
}
if ($od_cancel_price) {
$where[] = " od_cancel_price != 0 ";
}
if ($od_refund_price) {
$where[] = " od_refund_price != 0 ";
}
if ($od_receipt_point) {
$where[] = " od_receipt_point != 0 ";
}
if ($od_coupon) {
$where[] = " od_coupon != 0 ";
}
if ($fr_date && $to_date) {
$where[] = " od_time between '$fr_date 00:00:00' and '$to_date 23:59:59' ";
}
@ -144,33 +164,60 @@ if ($search) // 검색렬일 때만 처음 버튼을 보여줌
</ul>
<ul id="sort_sodr" class="sort_odr" style="display:none;">
<li><a href="<?php $_SERVER['PHP_SELF']; ?>?od_status=<?php echo G5_OD_STATUS_ORDER; ?>" ><?php echo G5_OD_STATUS_ORDER; ?></a></li>
<li><a href="<?php $_SERVER['PHP_SELF']; ?>?od_status=<?php echo G5_OD_STATUS_SETTLE; ?>" ><?php echo G5_OD_STATUS_SETTLE; ?></a></li>
<li><a href="<?php $_SERVER['PHP_SELF']; ?>?od_status=<?php echo G5_OD_STATUS_READY; ?>" ><?php echo G5_OD_STATUS_READY; ?></a></li>
<li><a href="<?php $_SERVER['PHP_SELF']; ?>?od_status=<?php echo G5_OD_STATUS_DELIVERY; ?>" ><?php echo G5_OD_STATUS_DELIVERY; ?></a></li>
<li><a href="<?php $_SERVER['PHP_SELF']; ?>?od_status=<?php echo G5_OD_STATUS_FINISH; ?>" ><?php echo G5_OD_STATUS_FINISH; ?></a></li>
<li><a href="<?php $_SERVER['PHP_SELF']; ?>?od_status=주문">주문</a></li>
<li><a href="<?php $_SERVER['PHP_SELF']; ?>?od_status=입금">입금</a></li>
<li><a href="<?php $_SERVER['PHP_SELF']; ?>?od_status=배송">배송</a></li>
<li><a href="<?php $_SERVER['PHP_SELF']; ?>?od_status=완료">완료</a></li>
</ul>
<form>
주문상태 :
<select id="od_status" name="od_status">
<option value="">전체</option>
<option value="<?php echo G5_OD_STATUS_ORDER; ?>" <?php echo get_selected($od_status, G5_OD_STATUS_ORDER ); ?>><?php echo G5_OD_STATUS_ORDER; ?></option>
<option value="<?php echo G5_OD_STATUS_SETTLE; ?>" <?php echo get_selected($od_status, G5_OD_STATUS_SETTLE ); ?>><?php echo G5_OD_STATUS_SETTLE; ?></option>
<option value="<?php echo G5_OD_STATUS_READY; ?>" <?php echo get_selected($od_status, G5_OD_STATUS_READY ); ?>><?php echo G5_OD_STATUS_READY; ?></option>
<option value="<?php echo G5_OD_STATUS_DELIVERY;?>" <?php echo get_selected($od_status, G5_OD_STATUS_DELIVERY ); ?>><?php echo G5_OD_STATUS_DELIVERY; ?></option>
<option value="<?php echo G5_OD_STATUS_FINISH; ?>" <?php echo get_selected($od_status, G5_OD_STATUS_FINISH ); ?>><?php echo G5_OD_STATUS_FINISH; ?></option>
</select>
<div>
주문상태 :
<label><input type="radio" name="od_status" value="" <?php echo get_checked($od_status, ''); ?>> 전체</label>
<label><input type="radio" name="od_status" value="주문" <?php echo get_checked($od_status, '주문'); ?>> 주문</label>
<label><input type="radio" name="od_status" value="입금" <?php echo get_checked($od_status, '입금'); ?>> 입금</label>
<label><input type="radio" name="od_status" value="배송" <?php echo get_checked($od_status, '배송'); ?>> 배송</label>
<label><input type="radio" name="od_status" value="완료" <?php echo get_checked($od_status, '완료'); ?>> 완료</label>
<!-- <select id="od_status" name="od_status">
<option value="">전체</option>
<option value="주문" <?php echo get_selected($od_status, '주문'); ?>>주문</option>
<option value="입금" <?php echo get_selected($od_status, '입금'); ?>>입금</option>
<option value="배송" <?php echo get_selected($od_status, '배송'); ?>>배송</option>
<option value="완료" <?php echo get_selected($od_status, '완료'); ?>>완료</option>
</select> -->
<div>
주문일 : <input type="text" id="fr_date" name="fr_date" value="<?php echo $fr_date; ?>" size="10" maxlength="10"> ~
<input type="text" id="to_date" name="to_date" value="<?php echo $to_date; ?>" size="10" maxlength="10">
<a href="javascript:set_date('오늘');">오늘</a>
<a href="javascript:set_date('어제');">어제</a>
<a href="javascript:set_date('이번주');">이번주</a>
<a href="javascript:set_date('이번달');">이번달</a>
<a href="javascript:set_date('지난주');">지난주</a>
<a href="javascript:set_date('지난달');">지난달</a>
<input type="submit" value="검색">
<div>
결제수단 :
<label><input type="radio" name="od_settle_case" value="" <?php echo get_checked($od_settle_case, ''); ?>> 전체</label>
<label><input type="radio" name="od_settle_case" value="무통장" <?php echo get_checked($od_settle_case, '무통장'); ?>> 무통장</label>
<label><input type="radio" name="od_settle_case" value="가상계좌" <?php echo get_checked($od_settle_case, '가상계좌'); ?>> 가상계좌</label>
<label><input type="radio" name="od_settle_case" value="계좌이체" <?php echo get_checked($od_settle_case, '계좌이체'); ?>> 계좌이체</label>
<label><input type="radio" name="od_settle_case" value="휴대폰" <?php echo get_checked($od_settle_case, '휴대폰'); ?>> 휴대폰</label>
<label><input type="radio" name="od_settle_case" value="신용카드" <?php echo get_checked($od_settle_case, '신용카드'); ?>> 신용카드</label>
<div>
<div>
기타선택 :
<label><input type="checkbox" name="od_misu" value="Y" <?php echo get_checked($od_misu, 'Y'); ?>> 미수금</label>
<label><input type="checkbox" name="od_cancel_price" value="Y" <?php echo get_checked($od_cancel_price, 'Y'); ?>> 취소,반품,품절</label>
<label><input type="checkbox" name="od_refund_price" value="Y" <?php echo get_checked($od_refund_price, 'Y'); ?>> 환불</label>
<label><input type="checkbox" name="od_receipt_point" value="Y" <?php echo get_checked($od_receipt_point, 'Y'); ?>> 포인트주문</label>
<label><input type="checkbox" name="od_coupon" value="Y" <?php echo get_checked($od_coupon, 'Y'); ?>> 쿠폰</label>
<div>
<div>
주문일자 : <input type="text" id="fr_date" name="fr_date" value="<?php echo $fr_date; ?>" size="10" maxlength="10"> ~
<input type="text" id="to_date" name="to_date" value="<?php echo $to_date; ?>" size="10" maxlength="10">
<a href="javascript:set_date('오늘');">오늘</a>
<a href="javascript:set_date('어제');">어제</a>
<a href="javascript:set_date('이번주');">이번주</a>
<a href="javascript:set_date('이번달');">이번달</a>
<a href="javascript:set_date('지난주');">지난주</a>
<a href="javascript:set_date('지난달');">지난달</a>
<a href="javascript:set_date('전체');">전체</a>
<input type="submit" value="검색">
</div>
</form>
<form name="forderlist" id="forderlist" action="./orderlistupdate.php" onsubmit="return forderlist_submit(this);" method="post">
@ -296,15 +343,16 @@ if ($search) // 검색렬일 때만 처음 버튼을 보여줌
변경하실 주문상태 :
<select name="od_status">
<option value="">선택하세요</option>
<option value="<?php echo G5_OD_STATUS_ORDER; ?>"><?php echo G5_OD_STATUS_ORDER; ?></option>
<option value="<?php echo G5_OD_STATUS_SETTLE; ?>"><?php echo G5_OD_STATUS_SETTLE; ?></option>
<option value="<?php echo G5_OD_STATUS_READY; ?>"><?php echo G5_OD_STATUS_READY; ?></option>
<option value="<?php echo G5_OD_STATUS_DELIVERY;?>"><?php echo G5_OD_STATUS_DELIVERY; ?></option>
<option value="<?php echo G5_OD_STATUS_FINISH; ?>"><?php echo G5_OD_STATUS_FINISH; ?></option>
<option value="주문">주문</option>
<option value="입금">입금</option>
<option value="배송">배송</option>
<option value="완료">완료</option>
</select>
<input type="submit" value="선택수정" onclick="document.pressed=this.value">
<p>"무통장"인 경우에만 "주문"에서 "입금"으로 변경됩니다. 가상계좌는 입금시 자동으로 "입금" 처리됩니다.</p>
</form>
</section>
@ -336,6 +384,9 @@ function set_date(today)
} else if (today == "지난달") {
document.getElementById("fr_date").value = "<?php echo date('Y-m-01', strtotime('-1 Month', G5_SERVER_TIME)); ?>";
document.getElementById("to_date").value = "<?php echo date('Y-m-t', strtotime('-1 Month', G5_SERVER_TIME)); ?>";
} else if (today == "전체") {
document.getElementById("fr_date").value = "";
document.getElementById("to_date").value = "";
}
}
</script>
@ -352,7 +403,7 @@ function forderlist_submit(f)
case "" :
alert("변경하실 주문상태를 선택하세요.");
return false;
case "<?php echo G5_OD_STATUS_ORDER; ?>" :
case '주문' :
default :

View File

@ -2,7 +2,35 @@
$sub_menu = '400400';
include_once('./_common.php');
//print_r2($_POST);
// 주문상태변경 처리
function change_order_status($od_status1, $od_status2, $od)
{
global $g5;
// 원래 주문상태와 바뀔 주문상태가 같다면 처리하지 않음
if ($od_status1 == $od_status2) return '';
$od_id = $od['od_id'];
if ($od_status1 == '주문') {
if ($od_status2 == '입금') {
if ($od['od_settle_case'] != '무통장') return '';
$sql = " update {$g5['g5_shop_order_table']}
set od_status = '입금',
od_receipt_price = od_misu,
od_misu = 0
where od_id = '$od_id' ";
sql_query($sql, true);
/*
$sql = " update {$g5['g5_shop_cart_table']} set ct_status = '결제완료' where od_id = '$od_id' and ct_status not in ('취소', '반품', '품절') ";
sql_query($sql);
*/
}
}
}
print_r2($_POST);
for ($i=0; $i<count($_POST['chk']); $i++)
{
@ -10,7 +38,10 @@ for ($i=0; $i<count($_POST['chk']); $i++)
$k = $_POST['chk'][$i];
$od_id = $_POST['od_id'][$k];
$od = sql_fetch(" select * from {$g5['g5_shop_order_table']} where od_id = '$od_id' ");
change_order_status($od['od_status'], $_POST['od_status'], $od);
echo $od_id . "<br>";
}

View File

@ -40,12 +40,40 @@ define('G5_SHOP_SKIN_URL', G5_URL .'/'.G5_SKIN_DIR.'/shop/'.$default['de_shop_
define('G5_MSHOP_SKIN_PATH', G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/shop/'.$default['de_shop_mobile_skin']);
define('G5_MSHOP_SKIN_URL', G5_MOBILE_URL .'/'.G5_SKIN_DIR.'/shop/'.$default['de_shop_mobile_skin']);
/*
// 주문상태 상수
define('G5_OD_STATUS_ORDER' , '입금확인중');
define('G5_OD_STATUS_SETTLE' , '결제완료');
define('G5_OD_STATUS_READY' , '배송준비중');
define('G5_OD_STATUS_DELIVERY' , '배송중');
define('G5_OD_STATUS_FINISH' , '배송완료');
*/
/*
# 주문상태는 상수로 처리하지 않고 실제 문자열 값을 처리한다.
'쇼핑' : 고객이 장바구니에 상품을 담고 있는 경우 입니다.
'입금확인중' : 무통장, 가상계좌의 경우 결제하기 전을 말합니다.
'결제완료' : 결제가 완료된 상태를 말합니다.
'배송준비중' : 배송준비중이 되면 취소가 불가합니다.
'배송중' : 배송중이면 반품이 불가합니다.
'배송완료' : 배송이 완료된 상태에서만 포인트적립이 가능합니다.
'취소' : 입금확인중이나 결제완료후 취소가 가능합니다.
'반품' : 배송완료 후에만 반품처리가 가능합니다.
'품절' :
# 13.10.04
'쇼핑' : 고객이 장바구니에 상품을 담고 있는 경우 입니다.
'주문' : 무통장, 가상계좌의 경우 결제하기 전을 말합니다.
'입금' : 신용카드, 계좌이체, 휴대폰결제가 된 상태, 무통장, 가상계좌는 주문후 입금한 상태를 말합니다.
'배송' : 배송이 되면 취소가 불가합니다.
'완료' : 배송이 완료된 상태에서만 포인트적립이 가능합니다.
'취소' : 입금이후로는 고객의 취소가 불가합니다.
'반품' : 배송완료 후에만 반품처리가 가능합니다.
'품절' : 주문이나 입금후 상품의 품절된 상태를 나타냅니다.
*/
//==============================================================================
// 쇼핑몰 필수 실행코드 모음 끝

View File

@ -274,7 +274,7 @@ if ($od_settle_case == "무통장")
$od_receipt_point = $i_temp_point;
$od_receipt_price = 0;
$od_misu = $i_price - $od_receipt_price;
$od_status = G5_OD_STATUS_ORDER;
$od_status = '주문';
}
else if ($od_settle_case == "계좌이체")
{
@ -290,7 +290,7 @@ else if ($od_settle_case == "계좌이체")
$od_bank_account = $bank_name;
$pg_price = $amount;
$od_misu = $i_price - $od_receipt_price;
$od_status = G5_OD_STATUS_SETTLE;
$od_status = '입금';
}
else if ($od_settle_case == "가상계좌")
{
@ -305,7 +305,7 @@ else if ($od_settle_case == "가상계좌")
$od_deposit_name = $od_name;
$pg_price = $amount;
$od_misu = $i_price - $od_receipt_price;
$od_status = G5_OD_STATUS_ORDER;
$od_status = '주문';
}
else if ($od_settle_case == "휴대폰")
{
@ -318,7 +318,7 @@ else if ($od_settle_case == "휴대폰")
$od_bank_account = $commid.' '.$mobile_no;
$pg_price = $amount;
$od_misu = $i_price - $od_receipt_price;
$od_status = G5_OD_STATUS_SETTLE;
$od_status = '입금';
}
else if ($od_settle_case == "신용카드")
{
@ -333,7 +333,7 @@ else if ($od_settle_case == "신용카드")
$od_bank_account = $card_name;
$pg_price = $amount;
$od_misu = $i_price - $od_receipt_price;
$od_status = G5_OD_STATUS_SETTLE;
$od_status = '입금';
}
else
{

View File

@ -269,7 +269,7 @@ if ($od_settle_case == "무통장")
$od_receipt_point = $i_temp_point;
$od_receipt_price = 0;
$od_misu = $i_price - $od_receipt_price;
$od_status = G5_OD_STATUS_ORDER;
$od_status = '주문';
}
else if ($od_settle_case == "계좌이체")
{
@ -285,7 +285,7 @@ else if ($od_settle_case == "계좌이체")
$od_bank_account = $bank_name;
$pg_price = $amount;
$od_misu = $i_price - $od_receipt_price;
$od_status = G5_OD_STATUS_SETTLE;
$od_status = '입금';
}
else if ($od_settle_case == "가상계좌")
{
@ -300,7 +300,7 @@ else if ($od_settle_case == "가상계좌")
$od_deposit_name = $depositor;
$pg_price = $amount;
$od_misu = $i_price - $od_receipt_price;
$od_status = G5_OD_STATUS_ORDER;
$od_status = '주문';
}
else if ($od_settle_case == "휴대폰")
{
@ -313,7 +313,7 @@ else if ($od_settle_case == "휴대폰")
$od_bank_account = $commid.' '.$mobile_no;
$pg_price = $amount;
$od_misu = $i_price - $od_receipt_price;
$od_status = G5_OD_STATUS_SETTLE;
$od_status = '입금';
}
else if ($od_settle_case == "신용카드")
{
@ -328,7 +328,7 @@ else if ($od_settle_case == "신용카드")
$od_bank_account = $card_name;
$pg_price = $amount;
$od_misu = $i_price - $od_receipt_price;
$od_status = G5_OD_STATUS_SETTLE;
$od_status = '입금';
}
else
{

View File

@ -46,12 +46,14 @@ if(openwin != null) {
<dl id="sod_fin_legend">
<dt>주문</dt>
<dd>주문이 접수되었습니다.</dd>
<dt>입금</dt>
<dd>입금(결제)이 완료 되었습니다.</dd>
<dt>준비</dt>
<dd>상품 준비 중입니다.</dd>
<dt>배송</dt>
<dd>상품 배송 중입니다.</dd>
<dt>완료</dt>
<dd>상품 배송이 완료되었습니다.</dd>
<dd>상품 배송이 완료 되었습니다.</dd>
</dl>
<?php
$st_count1 = $st_count2 = 0;

View File

@ -159,7 +159,7 @@ if(!$default['de_card_test']) {
$sql = " update {$g5['g5_shop_order_table']}
set od_receipt_price = od_receipt_price + '$ipgm_mnyx',
od_receipt_time = '$tx_tm',
od_status = '".G5_OD_STATUS_SETTLE."',
od_status = '입금',
od_shop_memo = concat(od_shop_memo, \"\\n개인결제 ".$row['pp_id']." 로 결제완료 - ".$receipt_time."\")
where od_id = '{$row['od_id']}' ";
sql_query($sql, FALSE);
@ -169,7 +169,7 @@ if(!$default['de_card_test']) {
$sql = " update {$g5['g5_shop_order_table']}
set od_receipt_price = '$ipgm_mnyx',
od_receipt_time = '$tx_tm',
od_status = '".G5_OD_STATUS_SETTLE."'
od_status = '입금'
where od_id = '$order_no'
and od_tno = '$tno' ";
sql_query($sql, FALSE);