diff --git a/adm/shop_admin/personalpayform.php b/adm/shop_admin/personalpayform.php index 45bc6d661..3af42f7b8 100644 --- a/adm/shop_admin/personalpayform.php +++ b/adm/shop_admin/personalpayform.php @@ -55,6 +55,17 @@ if(!sql_query(" select pp_pg from {$g5['g5_shop_personalpay_table']} limit 1 ", // 개인결제 PG kcp로 설정 sql_query(" update {$g5['g5_shop_personalpay_table']} set pp_pg = 'kcp' "); } + +// 현금영수증 필드 추가 +if(!sql_query(" select pp_cash from {$g5['g5_shop_personalpay_table']} limit 1 ", false)) { + sql_query(" ALTER TABLE `{$g5['g5_shop_personalpay_table']}` + ADD `pp_cash` tinyint(4) NOT NULL DEFAULT '0' AFTER `pp_shop_memo`, + ADD `pp_cash_no` varchar(255) NOT NULL DEFAULT '' AFTER `pp_cash`, + ADD `pp_cash_info` text NOT NULL AFTER `pp_cash_no`, + ADD `pp_email` varchar(255) NOT NULL DEFAULT '' AFTER `pp_name`, + ADD `pp_hp` varchar(255) NOT NULL DEFAULT '' AFTER `pp_email`, + ADD `pp_casseqno` varchar(255) NOT NULL DEFAULT '' AFTER `pp_app_no` ", true); +} ?>
@@ -162,6 +173,47 @@ if(!sql_query(" select pp_pg from {$g5['g5_shop_personalpay_table']} limit 1 ", " id="pp_receipt_time" class="frm_input" maxlength="19"> + + + 현금영수증 + + + 현금영수증 확인 + + 현금영수증 발급 + + + + diff --git a/install/gnuboard5shop.sql b/install/gnuboard5shop.sql index 2f1249632..81d95ff39 100644 --- a/install/gnuboard5shop.sql +++ b/install/gnuboard5shop.sql @@ -668,12 +668,15 @@ CREATE TABLE IF NOT EXISTS `g5_shop_personalpay` ( `pp_id` BIGINT(20) unsigned NOT NULL, `od_id` BIGINT(20) unsigned NOT NULL, `pp_name` VARCHAR(255) NOT NULL DEFAULT '', + `pp_email` VARCHAR(255) NOT NULL DEFAULT '', + `pp_hp` VARCHAR(255) NOT NULL DEFAULT '', `pp_content` TEXT NOT NULL, `pp_use` TINYINT(4) NOT NULL DEFAULT '0', `pp_price` INT(11) NOT NULL DEFAULT '0', `pp_pg` varchar(255) NOT NULL DEFAULT '', `pp_tno` VARCHAR(255) NOT NULL DEFAULT '', `pp_app_no` VARCHAR(20) NOT NULL DEFAULT '', + `pp_casseqno` VARCHAR(255) NOT NULL DEFAULT '', `pp_receipt_price` INT(11) NOT NULL DEFAULT '0', `pp_settle_case` VARCHAR(255) NOT NULL DEFAULT '', `pp_bank_account` VARCHAR(255) NOT NULL DEFAULT '', @@ -681,6 +684,9 @@ CREATE TABLE IF NOT EXISTS `g5_shop_personalpay` ( `pp_receipt_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', `pp_receipt_ip` VARCHAR(255) NOT NULL DEFAULT '', `pp_shop_memo` TEXT NOT NULL, + `pp_cash` TINYINT(4) NOT NULL DEFAULT '0', + `pp_cash_no` varchar(255) NOT NULL DEFAULT '', + `pp_cash_info` TEXT NOT NULL, `pp_ip` VARCHAR(255) NOT NULL DEFAULT '', `pp_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`pp_id`), diff --git a/mobile/shop/personalpayresult.php b/mobile/shop/personalpayresult.php index 0ed78a0e2..8a3c8e065 100644 --- a/mobile/shop/personalpayresult.php +++ b/mobile/shop/personalpayresult.php @@ -171,6 +171,53 @@ if($pp['pp_pg'] == 'lg') { + + 현금영수증 + + + 현금영수증 확인하기 + + 현금영수증을 발급하시려면 클릭하십시오. + + + + diff --git a/shop/kcp/pp_cli_hub.php b/shop/kcp/pp_cli_hub.php index e36ace944..8a439f24c 100644 --- a/shop/kcp/pp_cli_hub.php +++ b/shop/kcp/pp_cli_hub.php @@ -2,7 +2,11 @@ include './_common.php'; include G5_LIB_PATH.'/etc.lib.php'; -$sql = " select count(*) as cnt from {$g5['g5_shop_order_table']} where od_id = '{$_POST['ordr_idxx']}' and od_cash = 1 "; +if($tx == 'personalpay') + $sql = " select count(*) as cnt from {$g5['g5_shop_personalpay_table']} where pp_id = '{$_POST['ordr_idxx']}' and pp_cash = 1 "; +else + $sql = " select count(*) as cnt from {$g5['g5_shop_order_table']} where od_id = '{$_POST['ordr_idxx']}' and od_cash = 1 "; + $row = sql_fetch($sql); if ($row['cnt']) { alert('이미 등록된 현금영수증 입니다.'); @@ -253,11 +257,20 @@ setlocale(LC_CTYPE, 'ko_KR.euc-kr'); $cash['id_info'] = $id_info; $cash_info = serialize($cash); - $sql = " update {$g5['g5_shop_order_table']} - set od_cash = '1', - od_cash_no = '$cash_no', - od_cash_info = '$cash_info' - where od_id = '$ordr_idxx' "; + if($tx == 'personalpay') { + $sql = " update {$g5['g5_shop_personalpay_table']} + set pp_cash = '1', + pp_cash_no = '$cash_no', + pp_cash_info = '$cash_info' + where pp_id = '$ordr_idxx' "; + } else { + $sql = " update {$g5['g5_shop_order_table']} + set od_cash = '1', + od_cash_no = '$cash_no', + od_cash_info = '$cash_info' + where od_id = '$ordr_idxx' "; + } + $result = sql_query($sql, false); if (!$result) $bSucc = "false"; diff --git a/shop/kcp/taxsave_form.php b/shop/kcp/taxsave_form.php index dcbd00b94..9f782a91e 100644 --- a/shop/kcp/taxsave_form.php +++ b/shop/kcp/taxsave_form.php @@ -22,7 +22,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 return; } - form.ordr_idxx.value = ""; + form.ordr_idxx.value = ""; form.amt_tot.value = ""; form.amt_sup.value = ""; form.amt_svc.value = ""; @@ -129,7 +129,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 주문 번호 - + 상품 정보 @@ -137,15 +137,15 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 주문자 이름 - + 주문자 E-Mail - + 주문자 전화번호 - + @@ -156,12 +156,13 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

현금영수증 발급 정보

+ - - - + + + diff --git a/shop/lg/taxsave_form.php b/shop/lg/taxsave_form.php index 49e1724af..621ab0513 100644 --- a/shop/lg/taxsave_form.php +++ b/shop/lg/taxsave_form.php @@ -94,7 +94,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 주문 번호 - + 상품 정보 @@ -102,15 +102,15 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 주문자 이름 - + 주문자 E-Mail - + 주문자 전화번호 - + @@ -121,6 +121,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

현금영수증 발급 정보

+
diff --git a/shop/lg/taxsave_result.php b/shop/lg/taxsave_result.php index ed64b0c15..b778f3857 100644 --- a/shop/lg/taxsave_result.php +++ b/shop/lg/taxsave_result.php @@ -3,15 +3,30 @@ include_once('./_common.php'); require_once(G5_SHOP_PATH.'/settle_lg.inc.php'); -$od = sql_fetch(" select * from {$g5['g5_shop_order_table']} where od_id = '$od_id' "); -if (!$od) - die('

주문서가 존재하지 않습니다.

'); +if($tx == 'personalpay') { + $od = sql_fetch(" select * from {$g5['g5_shop_personalpay_table']} where pp_id = '$od_id' "); + if (!$od) + die('

개인결제 내역이 존재하지 않습니다.

'); -$goods = get_goods($od['od_id']); -$goods_name = $goods['full_name']; -$order_price = $od['od_tax_mny'] + $od['od_vat_mny'] + $od['od_free_mny']; + $od_tno = $od['pp_tno']; + $goods_name = $od['pp_name'].'님 개인결제'; + $settle_case = $od['pp_settle_case']; + $order_price = $od['pp_receipt_price']; + $od_casseqno = $od['pp_casseqno']; +} else { + $od = sql_fetch(" select * from {$g5['g5_shop_order_table']} where od_id = '$od_id' "); + if (!$od) + die('

주문서가 존재하지 않습니다.

'); -switch($od['od_settle_case']) { + $od_tno = $od['od_tno']; + $goods = get_goods($od['od_id']); + $goods_name = $goods['full_name']; + $settle_case = $od['od_settle_case']; + $order_price = $od['od_tax_mny'] + $od['od_vat_mny'] + $od['od_free_mny']; + $od_casseqno = $od['od_casseqno']; +} + +switch($settle_case) { case '가상계좌': $pay_type = 'SC0040'; break; @@ -27,11 +42,11 @@ switch($od['od_settle_case']) { } $LGD_METHOD = 'AUTH'; //메소드('AUTH':승인, 'CANCEL' 취소) -$LGD_OID = $od['od_id']; //주문번호(상점정의 유니크한 주문번호를 입력하세요) +$LGD_OID = $od_id; //주문번호(상점정의 유니크한 주문번호를 입력하세요) $LGD_PAYTYPE = $pay_type; //결제수단 코드 (SC0030:계좌이체, SC0040:가상계좌, SC0100:무통장입금 단독) $LGD_AMOUNT = $order_price; //금액("," 를 제외한 금액을 입력하세요) $LGD_PRODUCTINFO = $goods_name; //상품명 -$LGD_TID = $od['od_tno']; //LG유플러스 거래번호 +$LGD_TID = $od_tno; //LG유플러스 거래번호 $LGD_CUSTOM_MERTNAME = $default['de_admin_company_name']; //상점명 $LGD_CUSTOM_CEONAME = $default['de_admin_company_owner']; //대표자명 $LGD_CUSTOM_BUSINESSNUM = $default['de_admin_company_saupja_no']; //사업자등록번호 @@ -61,7 +76,7 @@ if ($LGD_METHOD == "AUTH") { // 현금영수증 발급 요청 $xpay->Set("LGD_CASHRECEIPTUSE", $LGD_CASHRECEIPTUSE); $xpay->Set("LGD_ENCODING", "UTF-8"); - if($od['od_tax_flag'] && $od['od_free_mny'] > 0) { + if(isset($od['od_tax_flag']) && $od['od_tax_flag'] && $od['od_free_mny'] > 0) { $xpay->Set("LGD_TAXFREEAMOUNT", $od['od_free_mny']); //비과세 금액 } @@ -70,7 +85,7 @@ if ($LGD_METHOD == "AUTH") { // 현금영수증 발급 요청 } else if ($LGD_PAYTYPE == "SC0040"){ //기결제된 가상계좌건 현금영수증 발급요청시 필수 $xpay->Set("LGD_TID", $LGD_TID); - $xpay->Set("LGD_SEQNO", $od['od_casseqno']); + $xpay->Set("LGD_SEQNO", $od_casseqno); } else { //무통장입금 단독건 발급요청 $xpay->Set("LGD_PRODUCTINFO", $LGD_PRODUCTINFO); @@ -109,11 +124,20 @@ if ($xpay->TX()) { $cash['LGD_RESPDATE'] = $xpay->Response("LGD_RESPDATE",0); $cash_info = serialize($cash); - $sql = " update {$g5['g5_shop_order_table']} - set od_cash = '1', - od_cash_no = '$cash_no', - od_cash_info = '$cash_info' - where od_id = '$LGD_OID' "; + if($tx == 'personalpay') { + $sql = " update {$g5['g5_shop_personalpay_table']} + set pp_cash = '1', + pp_cash_no = '$cash_no', + pp_cash_info = '$cash_info' + where pp_id = '$LGD_OID' "; + } else { + $sql = " update {$g5['g5_shop_order_table']} + set od_cash = '1', + od_cash_no = '$cash_no', + od_cash_info = '$cash_info' + where od_id = '$LGD_OID' "; + } + $result = sql_query($sql, false); if(!$result) { // DB 정보갱신 실패시 취소 @@ -123,7 +147,7 @@ if ($xpay->TX()) { $xpay->Set("LGD_TID", $LGD_TID); if ($LGD_PAYTYPE == "SC0040"){ //가상계좌건 현금영수증 발급취소시 필수 - $xpay->Set("LGD_SEQNO", $od['od_casseqno']); + $xpay->Set("LGD_SEQNO", $od_casseqno); } if ($xpay->TX()) { @@ -216,7 +240,7 @@ switch($LGD_PAYTYPE) { diff --git a/shop/personalpayformupdate.php b/shop/personalpayformupdate.php index 56e4f8122..246132fd7 100644 --- a/shop/personalpayformupdate.php +++ b/shop/personalpayformupdate.php @@ -114,10 +114,13 @@ if((int)$pp['pp_price'] !== (int)$pg_price) { } $pp_pg = $default['de_pg_service']; +$pp_email = get_email_address($pp_email); // 결제정보 입력 $sql = " update {$g5['g5_shop_personalpay_table']} - set pp_pg = '$pp_pg', + set pp_email = '$pp_email', + pp_hp = '$pp_hp', + pp_pg = '$pp_pg', pp_tno = '$pp_tno', pp_app_no = '$app_no', pp_receipt_price = '$pp_receipt_price', diff --git a/shop/personalpayresult.php b/shop/personalpayresult.php index f88a45bba..0b0098af1 100644 --- a/shop/personalpayresult.php +++ b/shop/personalpayresult.php @@ -177,6 +177,53 @@ if($pp['pp_pg'] == 'lg') { + + + + +
현금영수증 URL - +

영수증 확인은 실 등록의 경우에만 가능합니다.

현금영수증 + + 현금영수증 확인하기 + + 현금영수증을 발급하시려면 클릭하십시오. + +
diff --git a/shop/settle_lg_common.php b/shop/settle_lg_common.php index 03b5345e9..80fe27b9a 100644 --- a/shop/settle_lg_common.php +++ b/shop/settle_lg_common.php @@ -83,8 +83,9 @@ if ( $LGD_HASHDATA2 == $LGD_HASHDATA ) { //해쉬값 검증이 성공이면 if($row['pp_id']) { // 개인결제 UPDATE $sql = " update {$g5['g5_shop_personalpay_table']} - set pp_receipt_price = '$LGD_AMOUNT', - pp_receipt_time = '$LGD_PAYDATE' + set pp_receipt_price = '$LGD_AMOUNT', + pp_receipt_time = '$LGD_PAYDATE', + pp_casseqno = '$LGD_CASSEQNO', where pp_id = '$LGD_OID' and pp_tno = '$LGD_TID' "; sql_query($sql, false); @@ -94,9 +95,9 @@ if ( $LGD_HASHDATA2 == $LGD_HASHDATA ) { //해쉬값 검증이 성공이면 $receipt_time = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/", "\\1-\\2-\\3 \\4:\\5:\\6", $LGD_PAYDATE); $sql = " update {$g5['g5_shop_order_table']} set od_receipt_price = od_receipt_price + '$LGD_AMOUNT', - od_receipt_time = '$LGD_PAYDATE', - od_casseqno = '$LGD_CASSEQNO', - od_shop_memo = concat(od_shop_memo, \"\\n개인결제 ".$row['pp_id']." 로 결제완료 - ".$receipt_time."\") + od_receipt_time = '$LGD_PAYDATE', + od_casseqno = '$LGD_CASSEQNO', + od_shop_memo = concat(od_shop_memo, \"\\n개인결제 ".$row['pp_id']." 로 결제완료 - ".$receipt_time."\") where od_id = '{$row['od_id']}' "; $result = sql_query($sql, FALSE); } @@ -104,8 +105,8 @@ if ( $LGD_HASHDATA2 == $LGD_HASHDATA ) { //해쉬값 검증이 성공이면 // 주문서 UPDATE $sql = " update {$g5['g5_shop_order_table']} set od_receipt_price = '$LGD_AMOUNT', - od_receipt_time = '$LGD_PAYDATE', - od_casseqno = '$LGD_CASSEQNO' + od_receipt_time = '$LGD_PAYDATE', + od_casseqno = '$LGD_CASSEQNO' where od_id = '$LGD_OID' and od_tno = '$LGD_TID' "; $result = sql_query($sql, FALSE); diff --git a/shop/taxsave.php b/shop/taxsave.php index 2c5144acd..d03832a90 100644 --- a/shop/taxsave.php +++ b/shop/taxsave.php @@ -4,32 +4,45 @@ include_once('./_common.php'); $g5['title'] = '주문번호 '.$od_id.' 현금영수증 발행'; include_once(G5_PATH.'/head.sub.php'); -$od = sql_fetch(" select * from {$g5['g5_shop_order_table']} where od_id = '$od_id' "); -if (!$od) - die('

주문서가 존재하지 않습니다.

'); +if($tx == 'personalpay') { + $od = sql_fetch(" select * from {$g5['g5_shop_personalpay_table']} where pp_id = '$od_id' "); + if (!$od) + die('

개인결제 내역이 존재하지 않습니다.

'); -$goods = get_goods($od['od_id']); -$goods_name = $goods['full_name']; -//if ($goods[count] > 1) $goods_name .= ' 외 '.$goods[count].'건'; + $goods_name = $od['pp_name'].'님 개인결제'; + $amt_tot = (int)$od['pp_receipt_price']; + $dir = $od['pp_pg']; + $od_name = $od['pp_name']; + $od_email = get_text($od['pp_email']); + $od_tel = get_text($od['pp_hp']); + + $amt_tot = (int)$od['pp_receipt_price']; + $amt_sup = (int)round(($amt_tot * 10) / 11); + $amt_svc = 0; + $amt_tax = (int)($amt_tot - $amt_sup); +} else { + $od = sql_fetch(" select * from {$g5['g5_shop_order_table']} where od_id = '$od_id' "); + if (!$od) + die('

주문서가 존재하지 않습니다.

'); + + $goods = get_goods($od['od_id']); + $goods_name = $goods['full_name']; + $amt_tot = (int)($od['od_receipt_price'] - $od['od_refund_price']); + $dir = $od['od_pg']; + $od_name = $od['od_name']; + $od_email = get_text($od['od_email']); + $od_tel = get_text($od['od_tel']); + + $amt_tot = (int)$od['od_tax_mny'] + (int)$od['od_vat_mny'] + (int)$od['od_free_mny']; + $amt_sup = (int)$od['od_tax_mny'] + (int)$od['od_free_mny']; + $amt_tax = (int)$od['od_vat_mny']; + $amt_svc = 0; +} $trad_time = date("YmdHis"); -/* -$amt_tot = (int)($od['od_receipt_price'] - $od['od_refund_price']); -$amt_sup = (int)round(($amt_tot * 10) / 11); -$amt_svc = 0; -$amt_tax = (int)($amt_tot - $amt_sup); -*/ - -$amt_tot = (int)$od['od_tax_mny'] + (int)$od['od_vat_mny'] + (int)$od['od_free_mny']; -$amt_sup = (int)$od['od_tax_mny'] + (int)$od['od_free_mny']; -$amt_tax = (int)$od['od_vat_mny']; -$amt_svc = 0; - // 신청폼 -if($od['od_pg']) - $dir = $od['od_pg']; -else +if(!$dir) $dir = $default['de_pg_service']; include_once(G5_SHOP_PATH.'/'.$dir.'/taxsave_form.php');