현금 영수증을 발급할수 있는 결제수단 조건 코드 추가

This commit is contained in:
thisgun
2019-11-08 18:25:42 +09:00
parent cf5cdcb0b1
commit d7f2939815
7 changed files with 96 additions and 5 deletions

View File

@ -156,6 +156,12 @@ if(!isset($default['de_listtype_list_skin'])) {
ADD `de_mobile_listtype_img_width` int(11) NOT NULL DEFAULT '0' AFTER `de_mobile_listtype_list_row`,
ADD `de_mobile_listtype_img_height` int(11) NOT NULL DEFAULT '0' AFTER `de_mobile_listtype_img_width` ", true);
}
// 현금영수증 발급 조건 추가
if(!isset($default['de_taxsave_types'])) {
sql_query(" ALTER TABLE `{$g5['g5_shop_default_table']}`
ADD `de_taxsave_types` set('account','vbank','transfer') NOT NULL DEFAULT 'account' AFTER `de_taxsave_use` ", true);
}
?>
<form name="fconfig" action="./configformupdate.php" onsubmit="return fconfig_check(this)" method="post" enctype="MULTIPART/FORM-DATA">
@ -616,6 +622,28 @@ if(!isset($default['de_listtype_list_skin'])) {
<option value="1" <?php echo get_selected($default['de_taxsave_use'], 1); ?>>사용</option>
</select>
</td>
</tr>
<?php
$account_checked = $vbank_checked = $transfer_checked = '';
if (strstr($default['de_taxsave_types'], 'account')) {
$account_checked = 'checked="checked"';
}
if (strstr($default['de_taxsave_types'], 'vbank')) {
$vbank_checked = 'checked="checked"';
}
if (strstr($default['de_taxsave_types'], 'transfer')) {
$transfer_checked = 'checked="checked"';
}
?>
<tr id="de_taxsave_types" class="de_taxsave_types">
<th scope="row">현금영수증<br>적용수단</th>
<td>
<?php echo help("현금영수증 발급 사용일 경우 해당됩니다.<br>현금 영수증 발급은 무통장입금, 가상계좌, 실시간계좌에만 적용됩니다.<br>아래 체크된 수단에 한해서 회원이 직접 주문 보기 페이지에서 현금영수증을 발급 받을수 있습니다.<br>!!! 만약 PG사 상점관리자에서 가상계좌 또는 실시간계좌이체가 자동으로 현금영수증이 발급되는 경우이면, 아래 가상계좌와 실시간계좌이체 체크박스를 해제하여 사용해 주세요.( 중복으로 발급되는 것을 막기 위함입니다. )", 50); ?>
<input type="checkbox" id="de_taxsave_types_account" name="de_taxsave_types_account" value="account" <?php echo $account_checked; ?> > <label for="de_taxsave_types_account" disabled>무통장입금</label><br>
<input type="checkbox" id="de_taxsave_types_vbank" name="de_taxsave_types_vbank" value="vbank" <?php echo $vbank_checked; ?> > <label for="de_taxsave_types_vbank">가상계좌</label><br>
<input type="checkbox" id="de_taxsave_types_transfer" name="de_taxsave_types_transfer" value="transfer" <?php echo $transfer_checked; ?> > <label for="de_taxsave_types_transfer">실시간계좌이체</label>
</td>
</tr>
<tr>
<th scope="row"><label for="cf_use_point">포인트 사용</label></th>
@ -1696,6 +1724,20 @@ $(function() {
}
});
});
$(document).on("change", "#de_taxsave_use", function(e){
var $val = $(this).val();
if( parseInt($val) > 0 ){
$("#de_taxsave_types").show();
} else {
$("#de_taxsave_types").hide();
}
});
// 현금영수증 발급수단 중 무통장입금은 무조건 체크처리
document.getElementById("de_taxsave_types_account").checked = true;
document.getElementById("de_taxsave_types_account").disabled = true;
});
</script>

View File

@ -71,6 +71,16 @@ foreach($check_skin_keys as $key){
}
}
// 현금영수증 발급수단
$de_taxsave_types = 'account'; // 무통장
if(isset($_POST['de_taxsave_types_vbank']) && $_POST['de_taxsave_types_vbank']){ //가상계좌
$de_taxsave_types .= ',vbank';
}
if(isset($_POST['de_taxsave_types_transfer']) && $_POST['de_taxsave_types_transfer']){ //실시간계좌이체
$de_taxsave_types .= ',transfer';
}
//KVE-2019-0689, KVE-2019-0691, KVE-2019-0694
$check_sanitize_keys = array(
'de_admin_company_name', //회사명
@ -132,7 +142,7 @@ $check_sanitize_keys = array(
'de_card_use', //신용카드 결제사용
'de_card_noint_use', //신용카드 무이자할부사용
'de_easy_pay_use', //PG사 간편결제 버튼 사용
'de_taxsave_use', //현금영수증 발사용
'de_taxsave_use', //현금영수증 발사용
'cf_use_point', //포인트 사용
'de_settle_min_point', //결제 최소포인트
'de_settle_max_point', //최대 결제포인트
@ -384,6 +394,7 @@ $sql = " update {$g5['g5_shop_default_table']}
de_admin_buga_no = '{$de_admin_buga_no}',
de_vbank_use = '{$de_vbank_use}',
de_taxsave_use = '{$de_taxsave_use}',
de_taxsave_types = '{$de_taxsave_types}',
de_guest_privacy = '{$_POST['de_guest_privacy']}',
de_hp_use = '{$de_hp_use}',
de_escrow_use = '{$de_escrow_use}',

View File

@ -364,6 +364,7 @@ CREATE TABLE IF NOT EXISTS `g5_shop_default` (
`de_admin_buga_no` varchar(255) NOT NULL DEFAULT '',
`de_vbank_use` varchar(255) NOT NULL DEFAULT '',
`de_taxsave_use` tinyint(4) NOT NULL,
`de_taxsave_types` set('account','vbank','transfer') NOT NULL DEFAULT 'account',
`de_guest_privacy` text NOT NULL,
`de_hp_use` tinyint(4) NOT NULL DEFAULT '0',
`de_escrow_use` tinyint(4) NOT NULL DEFAULT '0',

View File

@ -2392,6 +2392,31 @@ function get_itemuselist_thumbnail($it_id, $contents, $thumb_width, $thumb_heigh
return $img;
}
function shop_is_taxsave($od, $is_view_receipt=false){
global $default, $is_memeber;
$od_pay_type = '';
if( $od['od_settle_case'] == '무통장' ){
$od_pay_type = 'account';
} else if ( $od['od_settle_case'] == '계좌이체' ) {
$od_pay_type = 'vbank';
} else if ( $od['od_settle_case'] == '가상계좌' ) {
$od_pay_type = 'transfer';
}
// 아직 현금영수증 받기전 상태일때만
if( $default['de_taxsave_use'] && ! $od['od_cash'] && strstr( $default['de_taxsave_types'], $od_pay_type ) ){
return 1;
}
if( $is_view_receipt && ! $od['od_cash'] && in_array($od['od_settle_case'], array('계좌이체', '가상계좌')) && ! strstr( $default['de_taxsave_types'], $od_pay_type ) ){
return 2;
}
return 0;
}
// 장바구니 상품삭제
function cart_item_clean()
{

View File

@ -267,6 +267,10 @@ if($od['od_pg'] == 'lg') {
} else if($od['od_settle_case'] == '가상계좌' || $od['od_settle_case'] == '계좌이체') {
$app_no_subj = '거래번호';
$app_no = $od['od_tno'];
if( function_exists('shop_is_taxsave') && $misu_price == 0 && shop_is_taxsave($od, true) === 2 ){
$disp_receipt = true;
}
}
?>
@ -358,7 +362,7 @@ if($od['od_pg'] == 'lg') {
<?php
}
if($od['od_settle_case'] == '신용카드' || is_inicis_order_pay($od['od_settle_case']) )
if($od['od_settle_case'] == '신용카드' || is_inicis_order_pay($od['od_settle_case']) || (shop_is_taxsave($od, true) && $misu_price == 0) )
{
if($od['od_pg'] == 'lg') {
require_once G5_SHOP_PATH.'/settle_lg.inc.php';
@ -412,7 +416,7 @@ if($od['od_pg'] == 'lg') {
}
// 현금영수증 발급을 사용하는 경우에만
if ($default['de_taxsave_use']) {
if (function_exists('shop_is_taxsave') && shop_is_taxsave($od)) {
// 미수금이 없고 현금일 경우에만 현금영수증을 발급 할 수 있습니다.
if ($misu_price == 0 && $od['od_receipt_price'] && ($od['od_settle_case'] == '무통장' || $od['od_settle_case'] == '계좌이체' || $od['od_settle_case'] == '가상계좌')) {
?>

View File

@ -260,6 +260,10 @@ if($od['od_pg'] == 'lg') {
} else if($od['od_settle_case'] == '가상계좌' || $od['od_settle_case'] == '계좌이체') {
$app_no_subj = '거래번호';
$app_no = $od['od_tno'];
if( function_exists('shop_is_taxsave') && $misu_price == 0 && shop_is_taxsave($od, true) === 2 ){
$disp_receipt = true;
}
}
?>
@ -347,7 +351,7 @@ if($od['od_pg'] == 'lg') {
<?php
}
if($od['od_settle_case'] == '신용카드' || is_inicis_order_pay($od['od_settle_case']) )
if($od['od_settle_case'] == '신용카드' || is_inicis_order_pay($od['od_settle_case']) || (shop_is_taxsave($od, true) && $misu_price == 0) )
{
if($od['od_pg'] == 'lg') {
require_once G5_SHOP_PATH.'/settle_lg.inc.php';
@ -401,7 +405,7 @@ if($od['od_pg'] == 'lg') {
}
// 현금영수증 발급을 사용하는 경우에만
if ($default['de_taxsave_use']) {
if (function_exists('shop_is_taxsave') && shop_is_taxsave($od)) {
// 미수금이 없고 현금일 경우에만 현금영수증을 발급 할 수 있습니다.
if ($misu_price == 0 && $od['od_receipt_price'] && ($od['od_settle_case'] == '무통장' || $od['od_settle_case'] == '계좌이체' || $od['od_settle_case'] == '가상계좌')) {
?>

View File

@ -31,6 +31,10 @@ if($tx == 'personalpay') {
if (!$od)
die('<p id="scash_empty">주문서가 존재하지 않습니다.</p>');
if ( ! $is_admin && ! (shop_is_taxsave($od)) ){
die('해당 주문은 현금영수증을 발급할수 없습니다.');
}
$goods = get_goods($od['od_id']);
$goods_name = $goods['full_name'];
$amt_tot = (int)($od['od_receipt_price'] - $od['od_refund_price']);