From 3483b48d9a71a4a06a1733110962244e67a3573f Mon Sep 17 00:00:00 2001 From: gnuboard Date: Mon, 7 Oct 2013 17:23:25 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EC=A3=BC=EB=AC=B8=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EC=88=98=EC=A0=95=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/shop_admin/orderlist.php | 9 ++ adm/shop_admin/orderlistupdate.php | 167 +++++++++++++++++++++++++---- 2 files changed, 158 insertions(+), 18 deletions(-) diff --git a/adm/shop_admin/orderlist.php b/adm/shop_admin/orderlist.php index c22809014..c2c520029 100644 --- a/adm/shop_admin/orderlist.php +++ b/adm/shop_admin/orderlist.php @@ -345,10 +345,19 @@ if ($search) // 검색렬일 때만 처음 버튼을 보여줌 + + + + + + + + +

"무통장"인 경우에만 "주문"에서 "입금"으로 변경됩니다. 가상계좌는 입금시 자동으로 "입금" 처리됩니다.

diff --git a/adm/shop_admin/orderlistupdate.php b/adm/shop_admin/orderlistupdate.php index 31a5017fc..369a7cd2b 100644 --- a/adm/shop_admin/orderlistupdate.php +++ b/adm/shop_admin/orderlistupdate.php @@ -2,35 +2,154 @@ $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 ''; + if ($od_status1 == $od_status2) return; - $od_id = $od['od_id']; + $od = sql_fetch(" select od_settle_case from {$g5['g5_shop_order_table']} where od_id = '$od_id' "); + if (!$od) return; + + switch ($od_status1) + { + case '주문' : + + if ($od_status2 != '입금') return; + if ($od['od_settle_case'] != '무통장') return; - 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' "; + od_misu = 0, + od_receipt_time = '".G5_TIME_YMDHIS."' + where od_id = '$od_id' and od_status = '주문' "; 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); - */ - } - } -} + $sql = " update {$g5['g5_shop_cart_table']} + set ct_status = '입금' + where od_id = '$od_id' and ct_status = '주문' "; + sql_query($sql, true); -print_r2($_POST); + break; + + case '입금' : + + if ($od_status2 != '준비') return; + + $sql = " update {$g5['g5_shop_order_table']} + set od_status = '준비' + where od_id = '$od_id' and od_status = '입금' "; + sql_query($sql, true); + + $sql = " update {$g5['g5_shop_cart_table']} + set ct_status = '준비' + where od_id = '$od_id' and ct_status = '입금' "; + sql_query($sql, true); + + break; + + case '준비' : + + if ($od_status2 != '배송') return; + + $sql = " update {$g5['g5_shop_order_table']} + set od_status = '배송' + where od_id = '$od_id' and od_status = '준비' "; + sql_query($sql, true); + + $sql = " update {$g5['g5_shop_cart_table']} + set ct_status = '배송' + where od_id = '$od_id' and ct_status = '준비' "; + sql_query($sql, true); + + $sql = " select * from {$g5['g5_shop_cart_table']} where od_id = '$od_id' "; + $result = sql_query($sql); + for ($i=0; $row=sql_fetch_array($result); $i++) { + // 재고를 이미 사용했다면 (재고에서 이미 뺐다면) + $stock_use = $row['ct_stock_use']; + if ($row['ct_stock_use']) + { + if ($ct_status == '주문' || $ct_status == '취소' || $ct_status == '반품' || $ct_status == '품절') + { + $stock_use = 0; + // 재고에 다시 더한다. + if($row['io_id']) { + $sql = " update {$g5['g5_shop_item_option_table']} + set io_stock_qty = io_stock_qty + '{$row['ct_qty']}' + where it_id = '{$row['it_id']}' + and io_id = '{$row['io_id']}' + and io_type = '{$row['io_type']}' "; + } else { + $sql = " update {$g5['g5_shop_item_table']} + set it_stock_qty = it_stock_qty + '{$row['ct_qty']}' + where it_id = '{$row['it_id']}' "; + } + + sql_query($sql); + } + } + else + { + // 재고 오류로 인한 수정 + if ($ct_status == '배송' || $ct_status == '완료') + { + $stock_use = 1; + // 재고에서 뺀다. + if($row['io_id']) { + $sql = " update {$g5['g5_shop_item_option_table']} + set io_stock_qty = io_stock_qty - '{$row['ct_qty']}' + where it_id = '{$row['it_id']}' + and io_id = '{$row['io_id']}' + and io_type = '{$row['io_type']}' "; + } else { + $sql = " update {$g5['g5_shop_item_table']} + set it_stock_qty = it_stock_qty - '{$row['ct_qty']}' + where it_id = '{$row['it_id']}' "; + } + + sql_query($sql); + } + } + + $point_use = $row['ct_point_use']; + // 회원이면서 포인트가 0보다 크면 + // 이미 포인트를 부여했다면 뺀다. + if ($od['mb_id'] && $row['ct_point'] && $row['ct_point_use']) + { + $point_use = 0; + delete_point($od['mb_id'], "@delivery", $od['mb_id'], "$od_id,{$row['ct_id']}"); + } + + $sql = " update {$g5['g5_shop_cart_table']} + set ct_point_use = '$point_use', + ct_stock_use = '$stock_use', + ct_status = '$ct_status', + ct_history = CONCAT(ct_history,'$ct_history') + where od_id = '$row['od_id']' "; + sql_query($sql); + } + + break; + } + + // 주문정보 + $info = get_order_info($od_id); + if(!$info) continue; + + $sql = " update {$g5['g5_shop_order_table']} + set od_misu = '{$info['od_misu']}', + od_tax_mny = '{$info['od_tax_mny']}', + od_vat_mny = '{$info['od_vat_mny']}', + od_free_mny = '{$info['od_free_mny']}', + od_send_cost = '{$info['od_send_cost']}' + where od_id = '$od_id' "; + sql_query($sql, true); +} for ($i=0; $i"; } + +$qstr = "sort1=$sort1&sort2=$sort2&sel_field=$sel_field&search=$search"; +$qstr .= "&od_status=$od_status"; +$qstr .= "&od_settle_case=$od_settle_case"; +$qstr .= "&od_misu=$od_misu"; +$qstr .= "&od_cancel_price=$od_cancel_price"; +$qstr .= "&od_receipt_price=$od_receipt_price"; +$qstr .= "&od_receipt_point=$od_receipt_point"; +$qstr .= "&od_receipt_coupon=$od_receipt_coupon"; +//$qstr .= "&page=$page"; + +goto_url("./orderlist.php?$qstr"); +?> \ No newline at end of file From bda98efbe0ee96066fac3628d60111b0f5df090a Mon Sep 17 00:00:00 2001 From: gnuboard Date: Tue, 8 Oct 2013 15:50:08 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=EC=A3=BC=EB=AC=B8=EC=83=81=ED=83=9C=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= =?UTF-8?q?=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/shop_admin/deliverylist.php | 37 ++++++-- adm/shop_admin/orderlist.php | 4 +- adm/shop_admin/orderlistupdate.php | 135 ++++++++++++++++------------- 3 files changed, 108 insertions(+), 68 deletions(-) diff --git a/adm/shop_admin/deliverylist.php b/adm/shop_admin/deliverylist.php index 467157d72..9bd1ddbe3 100644 --- a/adm/shop_admin/deliverylist.php +++ b/adm/shop_admin/deliverylist.php @@ -27,14 +27,15 @@ if ($search != "") { } } +$sql_search .= " $where od_status = '배송' "; + if ($sel_ca_id != "") { $sql_search .= " $where ca_id like '$sel_ca_id%' "; } if ($sel_field == "") $sel_field = "od_id"; -$sql_common = " from {$g5['g5_shop_order_table']} - $sql_search "; +$sql_common = " from {$g5['g5_shop_order_table']} $sql_search "; // 테이블의 전체 레코드수만 얻음 if ($chk_misu) { @@ -119,7 +120,7 @@ if ($search) // 검색렬일 때만 처음 버튼을 보여줌
  • ">운송장번호 순 정렬
  • -
    + @@ -130,6 +131,10 @@ if ($search) // 검색렬일 때만 처음 버튼을 보여줌 + @@ -143,8 +148,7 @@ if ($search) // 검색렬일 때만 처음 버튼을 보여줌 +
    + + + 주문번호 주문자 주문액
    - + + + + + @@ -209,7 +218,7 @@ if ($search) // 검색렬일 때만 처음 버튼을 보여줌
    - +
    @@ -218,6 +227,20 @@ if ($search) // 검색렬일 때만 처음 버튼을 보여줌 + + diff --git a/adm/shop_admin/orderlist.php b/adm/shop_admin/orderlist.php index c2c520029..a5162112d 100644 --- a/adm/shop_admin/orderlist.php +++ b/adm/shop_admin/orderlist.php @@ -220,7 +220,7 @@ if ($search) // 검색렬일 때만 처음 버튼을 보여줌 -
    + @@ -424,6 +424,8 @@ function forderlist_submit(f) } } + f.action = "./orderlistupdate.php"; + return true; } diff --git a/adm/shop_admin/orderlistupdate.php b/adm/shop_admin/orderlistupdate.php index 369a7cd2b..369718356 100644 --- a/adm/shop_admin/orderlistupdate.php +++ b/adm/shop_admin/orderlistupdate.php @@ -2,70 +2,105 @@ $sub_menu = '400400'; include_once('./_common.php'); -//print_r2($_POST); -// 주문상태변경 처리 -function change_order_status($od_status1, $od_status2, $od) +// 상품옵션별재고 또는 상품재고에 더하기 +function add_io_stock($it_id, $ct_qty, $io_id="", $io_type="") { global $g5; - // 원래 주문상태와 바뀔 주문상태가 같다면 처리하지 않음 - if ($od_status1 == $od_status2) return; + if($io_id) { + $sql = " update {$g5['g5_shop_item_option_table']} + set io_stock_qty = io_stock_qty + '{$ct_qty}' + where it_id = '{$it_id}' + and io_id = '{$io_id}' + and io_type = '{$io_type}' "; + } else { + $sql = " update {$g5['g5_shop_item_table']} + set it_stock_qty = it_stock_qty + '{$ct_qty}' + where it_id = '{$it_id}' "; + } + return sql_query($sql); +} + + +// 상품옵션별재고 또는 상품재고에서 빼기 +function subtract_io_stock($it_id, $ct_qty, $io_id="", $io_type="") +{ + global $g5; + + if($io_id) { + $sql = " update {$g5['g5_shop_item_option_table']} + set io_stock_qty = io_stock_qty - '{$ct_qty}' + where it_id = '{$it_id}' + and io_id = '{$io_id}' + and io_type = '{$io_type}' "; + } else { + $sql = " update {$g5['g5_shop_item_table']} + set it_stock_qty = it_stock_qty - '{$ct_qty}' + where it_id = '{$it_id}' "; + } + return sql_query($sql); +} + + +// 주문과 장바구니의 상태를 변경한다. +function change_status($od_id, $current_status, $change_status) +{ + global $g5; + + $sql = " update {$g5['g5_shop_order_table']} set od_status = '{$change_status}' where od_id = '{$od_id}' and od_status = '{$current_status}' "; + sql_query($sql, true); + + $sql = " update {$g5['g5_shop_cart_table']} set ct_status = '{$change_status}' where od_id = '{$od_id}' and ct_status = '{$current_status}' "; + sql_query($sql, true); +} + + + +//print_r2($_POST); + +// 주문상태변경 처리 +function change_order_status($current_staus, $change_status, $od) +{ + global $g5; + + // 현재 주문상태와 바뀔 주문상태가 같다면 처리하지 않음 + if ($current_staus == $change_status) return; $od = sql_fetch(" select od_settle_case from {$g5['g5_shop_order_table']} where od_id = '$od_id' "); if (!$od) return; - switch ($od_status1) + switch ($current_staus) { case '주문' : - if ($od_status2 != '입금') return; + if ($change_status != '입금') return; if ($od['od_settle_case'] != '무통장') return; $sql = " update {$g5['g5_shop_order_table']} - set od_status = '입금', - od_receipt_price = od_misu, + set od_receipt_price = od_misu, od_misu = 0, od_receipt_time = '".G5_TIME_YMDHIS."' where od_id = '$od_id' and od_status = '주문' "; sql_query($sql, true); - $sql = " update {$g5['g5_shop_cart_table']} - set ct_status = '입금' - where od_id = '$od_id' and ct_status = '주문' "; - sql_query($sql, true); + change_status($od_id, '주문', '입금'); break; case '입금' : - if ($od_status2 != '준비') return; + if ($change_status != '준비') return; - $sql = " update {$g5['g5_shop_order_table']} - set od_status = '준비' - where od_id = '$od_id' and od_status = '입금' "; - sql_query($sql, true); - - $sql = " update {$g5['g5_shop_cart_table']} - set ct_status = '준비' - where od_id = '$od_id' and ct_status = '입금' "; - sql_query($sql, true); + change_status($od_id, '입금', '준비'); break; case '준비' : - if ($od_status2 != '배송') return; + if ($change_status != '배송') return; - $sql = " update {$g5['g5_shop_order_table']} - set od_status = '배송' - where od_id = '$od_id' and od_status = '준비' "; - sql_query($sql, true); - - $sql = " update {$g5['g5_shop_cart_table']} - set ct_status = '배송' - where od_id = '$od_id' and ct_status = '준비' "; - sql_query($sql, true); + change_status($od_id, '준비', '배송'); $sql = " select * from {$g5['g5_shop_cart_table']} where od_id = '$od_id' "; $result = sql_query($sql); @@ -78,19 +113,7 @@ function change_order_status($od_status1, $od_status2, $od) { $stock_use = 0; // 재고에 다시 더한다. - if($row['io_id']) { - $sql = " update {$g5['g5_shop_item_option_table']} - set io_stock_qty = io_stock_qty + '{$row['ct_qty']}' - where it_id = '{$row['it_id']}' - and io_id = '{$row['io_id']}' - and io_type = '{$row['io_type']}' "; - } else { - $sql = " update {$g5['g5_shop_item_table']} - set it_stock_qty = it_stock_qty + '{$row['ct_qty']}' - where it_id = '{$row['it_id']}' "; - } - - sql_query($sql); + add_io_stock($row['it_id'], $row['ct_qty'], $row['io_id'], $row['io_type']); } } else @@ -100,19 +123,7 @@ function change_order_status($od_status1, $od_status2, $od) { $stock_use = 1; // 재고에서 뺀다. - if($row['io_id']) { - $sql = " update {$g5['g5_shop_item_option_table']} - set io_stock_qty = io_stock_qty - '{$row['ct_qty']}' - where it_id = '{$row['it_id']}' - and io_id = '{$row['io_id']}' - and io_type = '{$row['io_type']}' "; - } else { - $sql = " update {$g5['g5_shop_item_table']} - set it_stock_qty = it_stock_qty - '{$row['ct_qty']}' - where it_id = '{$row['it_id']}' "; - } - - sql_query($sql); + subtract_io_stock($row['it_id'], $row['ct_qty'], $row['io_id'], $row['io_type']); } } @@ -130,11 +141,15 @@ function change_order_status($od_status1, $od_status2, $od) ct_stock_use = '$stock_use', ct_status = '$ct_status', ct_history = CONCAT(ct_history,'$ct_history') - where od_id = '$row['od_id']' "; + where od_id = '{$row['od_id']}' "; sql_query($sql); } break; + + case '배송' : + + if ($change_status != '완료') return; } // 주문정보