diff --git a/adm/shop_admin/orderrequestform.php b/adm/shop_admin/orderrequestform.php
new file mode 100644
index 000000000..0ff12376e
--- /dev/null
+++ b/adm/shop_admin/orderrequestform.php
@@ -0,0 +1,277 @@
+
+
+
+
+
+ 요청 처리내역
+ 처리내역을 클릭하시면 상세 내용을 확인할 수 있습니다.
+
+
+
+
+
+ 처리내역이 없습니다.';
+ ?>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/adm/shop_admin/orderrequestformupdate.php b/adm/shop_admin/orderrequestformupdate.php
new file mode 100644
index 000000000..11d06fdca
--- /dev/null
+++ b/adm/shop_admin/orderrequestformupdate.php
@@ -0,0 +1,227 @@
+ 0) {
+ $sql = " update {$g4['shop_order_table']}
+ set od_refund_amount = '$rq_amount1'
+ where od_id = '{$od['od_id']}' ";
+ sql_query($sql);
+}
+
+// 처리내용입력
+$sql = " insert into `{$g4['shop_request_table']}`
+ ( rq_type, rq_parent, od_id, ct_id, mb_id, rq_content, rq_status, rq_item, rq_recv, dl_company, rq_invoice, rq_amount1, rq_amount2, rq_amount3, rq_account, rq_ip, rq_time )
+ values
+ ( '{$rq['rq_type']}', '$rq_id', '{$od['od_id']}', '{$rq['ct_id']}', '{$member['mb_id']}', '$rq_content', '$rq_status', '$rq_item', '$rq_recv', '$dl_company', '$rq_invoice', '$rq_amount1', '$rq_amount2', '$rq_amount3', '$rq_account', '$REMOTE_ADDR', '".G4_TIME_YMDHIS."' ) ";
+sql_query($sql);
+
+// 부분취소처리
+if(($od['od_settle_case'] == '신용카드' || $od['od_settle_case'] == '계좌이체') && ($rq_status == 1 || $rq_status == 2))
+{
+ $rq_amount2 = preg_replace('/[^0-9]/', '', $rq_amount2);
+ $rq_amount3 = preg_replace('/[^0-9]/', '', $rq_amount3);
+
+ switch($rq['rq_type']) {
+ case 0:
+ $type = '취소';
+ break;
+ case 1:
+ $type = '교환';
+ break;
+ case 2:
+ $type = '반품';
+ break;
+ default:
+ $type = '';
+ break;
+ }
+
+ if($od['od_settle_case'] == '계좌이체' && substr(0, 10, $od['od_time']) >= G4_TIME_YMD)
+ die('실시간 계좌이체건의 부분취소 요청은 결제일 익일에 가능합니다.');
+
+ // 취소사유의 한글깨짐 방지처리
+ $def_locale = setlocale(LC_CTYPE, 0);
+ $locale_change = false;
+ if(preg_match("/utf[\-]?8/i", $def_locale)) {
+ setlocale(LC_CTYPE, 'ko_KR.euc-kr');
+ $locale_change = true;
+ }
+
+ // 부분취소 실행
+ if ($default['de_card_test']) {
+ if ($default['de_escrow_use'] == 1) {
+ // 에스크로결제 테스트
+ $default['de_kcp_mid'] = "T0007";
+ $default['de_kcp_site_key'] = '2.mDT7R4lUIfHlHq4byhYjf__';
+ }
+ else {
+ // 일반결제 테스트
+ $default['de_kcp_mid'] = "T0000";
+ $default['de_kcp_site_key'] = '3grptw1.zW0GSo4PQdaGvsF__';
+ }
+ }
+ else {
+ $default['de_kcp_mid'] = "SR".$default['de_kcp_mid'];
+ }
+
+ $g_conf_site_cd = $default['de_kcp_mid'];
+ $g_conf_site_key = $default['de_kcp_site_key'];
+ $g_conf_home_dir = G4_SHOP_PATH.'/kcp';
+ $g_conf_key_dir = '';
+ $g_conf_log_dir = '';
+ if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
+ {
+ $g_conf_key_dir = G4_SHOP_PATH.'/kcp/bin/pub.key';
+ $g_conf_log_dir = G4_SHOP_PATH.'/kcp/log';
+ }
+
+ if (preg_match("/^T000/", $g_conf_site_cd) || $default['de_card_test']) {
+ $g_conf_gw_url = "testpaygw.kcp.co.kr";
+ }
+ else {
+ $g_conf_gw_url = "paygw.kcp.co.kr";
+ if (!preg_match("/^SR/", $g_conf_site_cd)) {
+ alert("SR 로 시작하지 않는 KCP SITE CODE 는 지원하지 않습니다.");
+ }
+ }
+
+ $g_conf_log_level = "3";
+ $g_conf_gw_port = "8090";
+
+ include G4_SHOP_PATH.'/kcp/pp_cli_hub_lib.php';
+
+ $tno = $od['od_tno'];
+ $req_tx = 'mod';
+ $mod_desc = '고객 '.$type.'요청으로 인한 부분취소';
+ $cust_ip = getenv('REMOTE_ADDR');
+ $rem_mny = $od['od_receipt_amount'] - $od['od_cancel_card'];;
+ $mod_mny = $rq_amount2;
+ $tax_mny = $rq_amount2;
+ $mod_free_mny = $rq_amount3;
+ $mod_type = 'RN07';
+ if($od['od_settle_case'] == '계좌이체')
+ $mod_type = 'STPA';
+
+ if($default['de_tax_flag_use']) {
+ $mod_mny = strval($tax_mny + $mod_free_mny);
+ }
+
+ $c_PayPlus = new C_PAYPLUS_CLI;
+ $c_PayPlus->mf_clear();
+
+ if ( $req_tx == "mod" )
+ {
+ $tran_cd = "00200000";
+
+ $c_PayPlus->mf_set_modx_data( "tno" , $tno ); // KCP 원거래 거래번호
+ $c_PayPlus->mf_set_modx_data( "mod_type" , $mod_type ); // 원거래 변경 요청 종류
+ $c_PayPlus->mf_set_modx_data( "mod_ip" , $cust_ip ); // 변경 요청자 IP
+ $c_PayPlus->mf_set_modx_data( "mod_desc" , $mod_desc ); // 변경 사유
+ $c_PayPlus->mf_set_modx_data( "rem_mny" , $rem_mny ); // 취소 가능 잔액
+ $c_PayPlus->mf_set_modx_data( "mod_mny" , $mod_mny ); // 취소 요청 금액
+
+ if($default['de_tax_flag_use'])
+ {
+ $mod_tax_mny = round((int)$tax_mny / 1.1);
+ $mod_vat_mny = (int)$tax_mny - $mod_tax_mny;
+
+ $c_PayPlus->mf_set_modx_data( "tax_flag" , "TG03" ); // 복합과세 구분
+ $c_PayPlus->mf_set_modx_data( "mod_tax_mny" , strval($mod_tax_mny) ); // 공급가 부분 취소 요청 금액
+ $c_PayPlus->mf_set_modx_data( "mod_vat_mny" , strval($mod_vat_mny) ); // 부과세 부분 취소 요청 금액
+ $c_PayPlus->mf_set_modx_data( "mod_free_mny" , $mod_free_mny ); // 비관세 부분 취소 요청 금액
+ }
+ }
+
+ if ( $tran_cd != "" )
+ {
+ $c_PayPlus->mf_do_tx( "", $g_conf_home_dir, $g_conf_site_cd,
+ $g_conf_site_key, $tran_cd, "",
+ $g_conf_gw_url, $g_conf_gw_port, "payplus_cli_slib",
+ $ordr_idxx, $cust_ip, $g_conf_log_level,
+ "", 0 );
+
+ $res_cd = $c_PayPlus->m_res_cd; // 결과 코드
+ $res_msg = $c_PayPlus->m_res_msg; // 결과 메시지
+ /* $res_en_msg = $c_PayPlus->mf_get_res_data( "res_en_msg" ); // 결과 영문 메세지 */
+ }
+ else
+ {
+ $c_PayPlus->m_res_cd = "9562";
+ $c_PayPlus->m_res_msg = "연동 오류|Payplus Plugin이 설치되지 않았거나 tran_cd값이 설정되지 않았습니다.";
+ }
+
+ if ($res_cd != '0000')
+ {
+ $res_msg = iconv("euc-kr", "utf-8", $res_msg);
+
+ die("$res_cd : $res_msg");
+ }
+
+ /* ============================================================================== */
+ /* = 취소 결과 처리 = */
+ /* = -------------------------------------------------------------------------- = */
+ if ( $req_tx == "mod" )
+ {
+ if ( $res_cd == "0000" )
+ {
+ $tno = $c_PayPlus->mf_get_res_data( "tno" ); // KCP 거래 고유 번호
+ $amount = $c_PayPlus->mf_get_res_data( "amount" ); // 원 거래금액
+ $mod_mny = $c_PayPlus->mf_get_res_data( "panc_mod_mny" ); // 취소요청된 금액
+ $rem_mny = $c_PayPlus->mf_get_res_data( "panc_rem_mny" ); // 취소요청후 잔액
+
+ $sql = " update {$g4['shop_order_table']}
+ set od_cancel_card = od_cancel_card + '$mod_mny'
+ where od_id = '{$od['od_id']}' ";
+ sql_query($sql);
+ } // End of [res_cd = "0000"]
+
+ /* = -------------------------------------------------------------------------- = */
+ /* = 취소 실패 결과 처리 = */
+ /* = -------------------------------------------------------------------------- = */
+ else
+ {
+ }
+ }
+
+ if($locale_change)
+ setlocale(LC_CTYPE, $def_locale);
+}
+?>
\ No newline at end of file
diff --git a/adm/shop_admin/orderrequestlist.php b/adm/shop_admin/orderrequestlist.php
new file mode 100644
index 000000000..a90b363bd
--- /dev/null
+++ b/adm/shop_admin/orderrequestlist.php
@@ -0,0 +1,228 @@
+전체목록';
+?>
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/adm/shop_admin/orderrequestview.php b/adm/shop_admin/orderrequestview.php
new file mode 100644
index 000000000..2c4cf463b
--- /dev/null
+++ b/adm/shop_admin/orderrequestview.php
@@ -0,0 +1,94 @@
+
+
+
+ 요청 상품
+
+
+
+ | 상품명 |
+ 옵션항목 |
+ 판매가 |
+ 수량 |
+ 소계 |
+ 상태 |
+
+
+
+
+
+ | |
+ |
+ |
+ |
+ |
+ |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/extend/shop.extend2.php b/extend/shop.extend2.php
index 125b422ab..652113209 100644
--- a/extend/shop.extend2.php
+++ b/extend/shop.extend2.php
@@ -364,29 +364,23 @@ if(!sql_query(" select rq_id from {$g4['shop_request_table']} limit 1 ", false))
sql_query(" CREATE TABLE IF NOT EXISTS `{$g4['shop_request_table']}` (
`rq_id` INT(11) NOT NULL AUTO_INCREMENT,
`rq_type` TINYINT(4) NOT NULL DEFAULT '0',
+ `rq_parent` INT(11) NOT NULL DEFAULT '0',
`od_id` BIGINT(20) unsigned NOT NULL,
`ct_id` VARCHAR(255) NOT NULL DEFAULT '',
`mb_id` VARCHAR(20) NOT NULL DEFAULT '',
`rq_content` TEXT NOT NULL,
- `rq_reg_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
- `rq_ip` VARCHAR(255) NOT NULL DEFAULT '',
`rq_status` TINYINT(4) NOT NULL DEFAULT '0',
`rq_item` TEXT NOT NULL,
`rq_recv` TINYINT(4) NOT NULL DEFAULT '0',
`dl_company` INT(11) NOT NULL DEFAULT '0',
- `rq_invoice` VARCHAR(255) NOT NULL DEFAULT '0',
+ `rq_invoice` VARCHAR(255) NOT NULL DEFAULT '',
`rq_amount1` INT(11) NOT NULL DEFAULT '0',
`rq_amount2` INT(11) NOT NULL DEFAULT '0',
- `rq_account` VARCHAR(255) NOT NULL DEFAULT '0',
- `rq_process` TEXT NOT NULL,
- `rq_is_admin` TINYINT(4) NOT NULL DEFAULT '0',
+ `rq_amount3` INT(11) NOT NULL DEFAULT '0',
+ `rq_account` VARCHAR(255) NOT NULL DEFAULT '',
+ `rq_ip` VARCHAR(255) NOT NULL DEFAULT '',
`rq_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`rq_id`)
) ", false);
}
-
-if(!sql_query(" select rq_parent from {$g4['shop_request_table']} limit 1 ", false)) {
- sql_query(" ALTER TABLE `{$g4['shop_request_table']}`
- ADD `rq_parent` INT(11) NOT NULL DEFAULT '0' AFTER `rq_ip` ", true);
-}
?>
\ No newline at end of file
diff --git a/install/shop.sql b/install/shop.sql
index 56141a823..9d31fe195 100644
--- a/install/shop.sql
+++ b/install/shop.sql
@@ -665,22 +665,21 @@ DROP TABLE IF EXISTS `shop_request`;
CREATE TABLE IF NOT EXISTS `shop_request` (
`rq_id` INT(11) NOT NULL AUTO_INCREMENT,
`rq_type` TINYINT(4) NOT NULL DEFAULT '0',
+ `rq_parent` INT(11) NOT NULL DEFAULT '0',
`od_id` BIGINT(20) unsigned NOT NULL,
`ct_id` VARCHAR(255) NOT NULL DEFAULT '',
`mb_id` VARCHAR(20) NOT NULL DEFAULT '',
- `rq_content` TEXT NOT NULL,
- `rq_reg_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
- `rq_ip` VARCHAR(255) NOT NULL DEFAULT '',
- `rq_parent` INT(11) NOT NULL DEFAULT '0',
+ `rq_content` TEXT NOT NULL,
`rq_status` TINYINT(4) NOT NULL DEFAULT '0',
`rq_item` TEXT NOT NULL,
`rq_recv` TINYINT(4) NOT NULL DEFAULT '0',
`dl_company` INT(11) NOT NULL DEFAULT '0',
- `rq_invoice` VARCHAR(255) NOT NULL DEFAULT '0',
+ `rq_invoice` VARCHAR(255) NOT NULL DEFAULT '',
`rq_amount1` INT(11) NOT NULL DEFAULT '0',
`rq_amount2` INT(11) NOT NULL DEFAULT '0',
- `rq_account` VARCHAR(255) NOT NULL DEFAULT '0',
- `rq_process` TEXT NOT NULL,
+ `rq_amount3` INT(11) NOT NULL DEFAULT '0',
+ `rq_account` VARCHAR(255) NOT NULL DEFAULT '',
+ `rq_ip` VARCHAR(255) NOT NULL DEFAULT '',
`rq_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`rq_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
diff --git a/shop/orderrequestupdate.php b/shop/orderrequestupdate.php
index 58074bf8c..b7b365951 100644
--- a/shop/orderrequestupdate.php
+++ b/shop/orderrequestupdate.php
@@ -45,7 +45,7 @@ for($i=0; $i<$count; $i++) {
}
$sql = " insert into {$g4['shop_request_table']}
- ( rq_type, od_id, ct_id, mb_id, rq_content, rq_reg_time, rq_ip )
+ ( rq_type, od_id, ct_id, mb_id, rq_content, rq_time, rq_ip )
values
( '$rq_type', '$od_id', '$ct_id', '{$member['mb_id']}', '$rq_content', '".G4_TIME_YMDHIS."', '$REMOTE_ADDR' ) ";
sql_query($sql);