안녕하세요~
청춘님의 펜션예약관리 프로그램을 수정해서 사용하고 있는 데요~
질문이 있어 문의를 드립니다~
금액계산관련하여~ 궁금한점이 있는데요~
주말관련 금액계산문제 입니다....
더듬더듬 찾아가니... 주말요금문제를 해결하였는데요~~~~~
주중, 주말 설정을 하다보니.. 궁금한 점이 생겨 문의드립니다~
주중 : 월 ~ 금
주말 : 토 ~ 일
공휴일 : 공휴일
이렇게 설정하고 싶은데요~
금액변동이 항상 그 전에 변경된다는점입니다~
질문이 어렵게 느껴지는데요 ㅠ.ㅠ
주중에는 50000원으로 하고
토, 일 요일 요금을 100000원, 공휴일도 100000만원으로 싶은데요
그런데 하루전요금에서 변동이 발생합니다~
무슨 이야기인가 하면....
주말이 토,일로 설정하지만 금요일과, 토요일이 주말요금으로 되고,
일요일은 주중요금으로 계산되어지는 점입니다~
공휴일또한 마찬가지이구요~
공휴일 당일은 50000원 이고,,,, 공휴일 전날이 100000원으로 설정된다~
이런 이야기 입니다~
계산하는 부분중~ 어느곳을 변경해야 될지.. 혹시 가르쳐 주실분 계실지요~
<?php
// 스킨파일은 단독으로 실행할 수 없다
if(defined('_GNUBOARD_') == false)
{
exit('함수파일은 단독으로 실행할 수 없습니다.');
}
// 목록화면을 위한 관리자 인증세션을 저장한다
if($type == 'true')
{
$_SESSION['admin'] = true;
goto_url($g4['bbs_path'] . '/board.php?bo_table=' . $bo_table);
}
// 달력화면을 위한 관리자 인증세션을 삭제한다
if($type == 'false')
{
unset($_SESSION['admin']);
goto_url($g4['bbs_path'] . '/board.php?bo_table=' . $bo_table);
}
// 버튼의 유형을 정의한다 (달력보기 or 목록보기)
if($is_admin && $_SESSION['admin'])
{
$BUTTON = "<img src=\"{$board_skin_path}/img/b_list.gif\" alt=\"목록보기\" />";
}
else
{
$BUTTON = "<img src=\"{$board_skin_path}/img/b_calendar.gif\" alt=\"달력보기\" />";
}
// 객실정보게시판이 정의되지 않았다면 실행을 중지한다
$OBJECT = sql_fetch("SELECT * FROM {$g4['board_table']} WHERE bo_table = '{$board['bo_1']}'");
if(isset($OBJECT['bo_table']) == false)
{
alert('객실정보게시판이 정의되지 않았습니다.');
}
// 필요한 변수값이 정의되지 않았다면 기본값으로 설정한다
if((int)$board['bo_3'] < 1)
{
$board['bo_3'] = 1;
}
if((int)$board['bo_4'] < 1)
{
$board['bo_4'] = 90;
}
if((int)$board['bo_5'] < 1)
{
$board['bo_5'] = 10;
}
if((int)$board['bo_6'] < 1)
{
$board['bo_6'] = $board['bo_3'];
}
// 예약내역삭제일이 경과한 미입금 예약목록은 삭제한다
$result = sql_query("SELECT wr_id FROM {$write_table} WHERE wr_last < DATE_SUB(now(), INTERVAL {$board['bo_6']} DAY) AND wr_7 = 'F'");
while($row = sql_fetch_array($result))
{
sql_query("DELETE FROM {$write_table} WHERE wr_parent = '{$row['wr_id']}'");
sql_query("DELETE FROM {$g4['board_new_table']} WHERE bo_table = '{$bo_table}' AND wr_parent = '{$row['wr_id']}'");
sql_query("UPDATE {$g4['board_table']} SET bo_count_write = bo_count_write - 1 WHERE bo_table = '{$bo_table}'");
}
// 예약이 가능한 일자를 추출하여 선택박스로 출력한다
function optionDate($select = null)
{
global $g4, $board;
$arr = array('0' => '(월)', '1' => '(화)', '2' => '(수)', '3' => '(목)', '4' => '(금)', '5' => '(토)', '6' => '(일)');
for($i = $board['bo_3']; $i < $board['bo_4']; $i++)
{
$date = sql_fetch("SELECT '{$g4['time_ymd']}' + INTERVAL {$i} DAY AS this");
$week = sql_fetch("SELECT weekday('{$date['this']}') AS this");
echo "<option value=\"{$date['this']}\"";
if($date['this'] == $select)
{
echo ' selected="selected"';
}
echo ">{$date['this']} {$arr[$week['this']]}</option>";
}
return;
}
// 숙박이 가능한 일자를 추출하여 선택박스로 출력한다
function optionStay($max)
{
for($i = 1; $i <= $max; $i++)
{
$var = $i + 1;
echo "<option value=\"{$i}\">{$i}박 {$var}일</option>";
}
return;
}
// 숙박이 가능한 인원을 추출하여 선택박스로 출력한다
function optionPerson($min, $max)
{
for($i = $min; $i <= $max; $i++)
{
echo "<option value=\"{$i}\">{$i}명</option>";
}
return;
}
// 선택한 일자가 성수기인지를 추출한다 (성수기 : 1000, 비성수기 : 2000)
function getSeason($select)
{
global $board;
$result = 2000;
$var = substr($select, 5, 5);
$arr = explode('|', $board['bo_2']);
$max = count($arr);
for($i = 0; $i < $max; $i++)
{
list($open, $close) = explode('~', $arr[$i]);
if($open <= $var || $var <= $close)
{
$result = 1000;
break;
}
}
return $result;
}
// 선택한 일자가 주말(금,토요일)인지를 추출한다 (주말 : 1000, 주중 : 2000)
function getWeek($select)
{
list($var) = mysql_fetch_array(sql_query("SELECT weekday('{$select}')"));
if($var == 4 || $var == 5)
{
$result = 1000;
}
else
{
$result = 2000;
}
return $result;
}
// 선택한 일자의 이용요금을 추출한다 (이용요금을 추출할 수 있는 테이블의 필드명을 리턴한다)
function getPrice($select)
{
$arr = array(
'1000' => array('1000' => 'wr_7', '2000' => 'wr_6'),
'2000' => array('1000' => 'wr_5', '2000' => 'wr_4')
);
$season = getSeason($select);
$week = getWeek($select);
$result = $arr[$season][$week];
return $result;
}
// 인원별, 기간별 이용요금을 산출한다
function getTotal($wr_id, $select, $stay, $person)
{
global $g4, $board;
$result = 0;
$write = sql_fetch("SELECT * FROM {$g4['write_prefix']}{$board['bo_1']} WHERE wr_id = '{$wr_id}'");
for($i = 0; $i < $stay; $i++)
{
list($date) = mysql_fetch_array(sql_query("SELECT '{$select}' + INTERVAL {$i} DAY"));
$field = getPrice($date);
$result += $write[$field];
}
$result += (($person - $write['wr_2']) * $write['wr_8'] * $stay);
return $result;
}
// 선택일자에 예약된 객실의 개수를 산출한다
function getRoom($day, $number)
{
global $class, $room;
$result = 0;
$max = count($class[$number]);
for($i = 0; $i < $max; $i++)
{
$var = $class[$number][$i];
$result += count($room[$day][$var]);
}
return $result;
}
// 문자메시지를 전송합니다 (아이코드 클래스)
function SMS($message, $receive = null)
{
global $board;
list($id, $password) = explode('|', $board['bo_8']);
list($phone, $mobile) = explode('|', $board['bo_9']);
if(isset($receive) == false)
{
$receive = $mobile;
}
$SMS = new ICODE;
$SMS -> Connect($id, $password);
$SMS -> Add($phone, $receive, $message);
$SMS -> Send();
return;
}
function BLANK($string, $size)
{
for($i = 0; $i < $size; $i++)
{
$string .= ' ';
}
$result = substr($string, 0, $size);
return $result;
}
class ICODE
{
var $ID;
var $PASSWORD;
var $SERVER;
var $PORT;
var $DATA;
function Connect($id, $password)
{
$this -> ID = BLANK($id, 10);
$this -> PASSWORD = BLANK($password, 10);
$this -> SERVER = '211.172.232.124';
$this -> PORT = rand(7192, 7195);
return;
}
function Add($send, $mobile, $message)
{
$send = str_replace('-', null, $send);
$send = BLANK($send, 33);
$mobile = str_replace('-', null, $mobile);
$mobile = BLANK($mobile, 11);
$message = stripslashes($message);
$message = BLANK($message, 80);
$this -> DATA = '01144 ' . $this -> ID . $this -> PASSWORD . $mobile . $send . $message;
return;
}
function Send()
{
$fgets = null;
$fsockopen = fsockopen($this -> SERVER, $this -> PORT);
fputs($fsockopen, $this -> DATA);
while(isset($fgets) == false)
{
$fgets = fgets($fsockopen, 30);
}
fclose($fsockopen);
$result = substr($fgets, 0, 19);
$key = '0223 00' . substr($this -> DATA, 26, 11);
$this -> DATA = null;
if($result != $key)
{
return false;
}
return true;
}
}
?>
---- 금액 변동되는 부분의 소스입니다
청춘님의 펜션예약관리 프로그램을 수정해서 사용하고 있는 데요~
질문이 있어 문의를 드립니다~
금액계산관련하여~ 궁금한점이 있는데요~
주말관련 금액계산문제 입니다....
더듬더듬 찾아가니... 주말요금문제를 해결하였는데요~~~~~
주중, 주말 설정을 하다보니.. 궁금한 점이 생겨 문의드립니다~
주중 : 월 ~ 금
주말 : 토 ~ 일
공휴일 : 공휴일
이렇게 설정하고 싶은데요~
금액변동이 항상 그 전에 변경된다는점입니다~
질문이 어렵게 느껴지는데요 ㅠ.ㅠ
주중에는 50000원으로 하고
토, 일 요일 요금을 100000원, 공휴일도 100000만원으로 싶은데요
그런데 하루전요금에서 변동이 발생합니다~
무슨 이야기인가 하면....
주말이 토,일로 설정하지만 금요일과, 토요일이 주말요금으로 되고,
일요일은 주중요금으로 계산되어지는 점입니다~
공휴일또한 마찬가지이구요~
공휴일 당일은 50000원 이고,,,, 공휴일 전날이 100000원으로 설정된다~
이런 이야기 입니다~
계산하는 부분중~ 어느곳을 변경해야 될지.. 혹시 가르쳐 주실분 계실지요~
<?php
// 스킨파일은 단독으로 실행할 수 없다
if(defined('_GNUBOARD_') == false)
{
exit('함수파일은 단독으로 실행할 수 없습니다.');
}
// 목록화면을 위한 관리자 인증세션을 저장한다
if($type == 'true')
{
$_SESSION['admin'] = true;
goto_url($g4['bbs_path'] . '/board.php?bo_table=' . $bo_table);
}
// 달력화면을 위한 관리자 인증세션을 삭제한다
if($type == 'false')
{
unset($_SESSION['admin']);
goto_url($g4['bbs_path'] . '/board.php?bo_table=' . $bo_table);
}
// 버튼의 유형을 정의한다 (달력보기 or 목록보기)
if($is_admin && $_SESSION['admin'])
{
$BUTTON = "<img src=\"{$board_skin_path}/img/b_list.gif\" alt=\"목록보기\" />";
}
else
{
$BUTTON = "<img src=\"{$board_skin_path}/img/b_calendar.gif\" alt=\"달력보기\" />";
}
// 객실정보게시판이 정의되지 않았다면 실행을 중지한다
$OBJECT = sql_fetch("SELECT * FROM {$g4['board_table']} WHERE bo_table = '{$board['bo_1']}'");
if(isset($OBJECT['bo_table']) == false)
{
alert('객실정보게시판이 정의되지 않았습니다.');
}
// 필요한 변수값이 정의되지 않았다면 기본값으로 설정한다
if((int)$board['bo_3'] < 1)
{
$board['bo_3'] = 1;
}
if((int)$board['bo_4'] < 1)
{
$board['bo_4'] = 90;
}
if((int)$board['bo_5'] < 1)
{
$board['bo_5'] = 10;
}
if((int)$board['bo_6'] < 1)
{
$board['bo_6'] = $board['bo_3'];
}
// 예약내역삭제일이 경과한 미입금 예약목록은 삭제한다
$result = sql_query("SELECT wr_id FROM {$write_table} WHERE wr_last < DATE_SUB(now(), INTERVAL {$board['bo_6']} DAY) AND wr_7 = 'F'");
while($row = sql_fetch_array($result))
{
sql_query("DELETE FROM {$write_table} WHERE wr_parent = '{$row['wr_id']}'");
sql_query("DELETE FROM {$g4['board_new_table']} WHERE bo_table = '{$bo_table}' AND wr_parent = '{$row['wr_id']}'");
sql_query("UPDATE {$g4['board_table']} SET bo_count_write = bo_count_write - 1 WHERE bo_table = '{$bo_table}'");
}
// 예약이 가능한 일자를 추출하여 선택박스로 출력한다
function optionDate($select = null)
{
global $g4, $board;
$arr = array('0' => '(월)', '1' => '(화)', '2' => '(수)', '3' => '(목)', '4' => '(금)', '5' => '(토)', '6' => '(일)');
for($i = $board['bo_3']; $i < $board['bo_4']; $i++)
{
$date = sql_fetch("SELECT '{$g4['time_ymd']}' + INTERVAL {$i} DAY AS this");
$week = sql_fetch("SELECT weekday('{$date['this']}') AS this");
echo "<option value=\"{$date['this']}\"";
if($date['this'] == $select)
{
echo ' selected="selected"';
}
echo ">{$date['this']} {$arr[$week['this']]}</option>";
}
return;
}
// 숙박이 가능한 일자를 추출하여 선택박스로 출력한다
function optionStay($max)
{
for($i = 1; $i <= $max; $i++)
{
$var = $i + 1;
echo "<option value=\"{$i}\">{$i}박 {$var}일</option>";
}
return;
}
// 숙박이 가능한 인원을 추출하여 선택박스로 출력한다
function optionPerson($min, $max)
{
for($i = $min; $i <= $max; $i++)
{
echo "<option value=\"{$i}\">{$i}명</option>";
}
return;
}
// 선택한 일자가 성수기인지를 추출한다 (성수기 : 1000, 비성수기 : 2000)
function getSeason($select)
{
global $board;
$result = 2000;
$var = substr($select, 5, 5);
$arr = explode('|', $board['bo_2']);
$max = count($arr);
for($i = 0; $i < $max; $i++)
{
list($open, $close) = explode('~', $arr[$i]);
if($open <= $var || $var <= $close)
{
$result = 1000;
break;
}
}
return $result;
}
// 선택한 일자가 주말(금,토요일)인지를 추출한다 (주말 : 1000, 주중 : 2000)
function getWeek($select)
{
list($var) = mysql_fetch_array(sql_query("SELECT weekday('{$select}')"));
if($var == 4 || $var == 5)
{
$result = 1000;
}
else
{
$result = 2000;
}
return $result;
}
// 선택한 일자의 이용요금을 추출한다 (이용요금을 추출할 수 있는 테이블의 필드명을 리턴한다)
function getPrice($select)
{
$arr = array(
'1000' => array('1000' => 'wr_7', '2000' => 'wr_6'),
'2000' => array('1000' => 'wr_5', '2000' => 'wr_4')
);
$season = getSeason($select);
$week = getWeek($select);
$result = $arr[$season][$week];
return $result;
}
// 인원별, 기간별 이용요금을 산출한다
function getTotal($wr_id, $select, $stay, $person)
{
global $g4, $board;
$result = 0;
$write = sql_fetch("SELECT * FROM {$g4['write_prefix']}{$board['bo_1']} WHERE wr_id = '{$wr_id}'");
for($i = 0; $i < $stay; $i++)
{
list($date) = mysql_fetch_array(sql_query("SELECT '{$select}' + INTERVAL {$i} DAY"));
$field = getPrice($date);
$result += $write[$field];
}
$result += (($person - $write['wr_2']) * $write['wr_8'] * $stay);
return $result;
}
// 선택일자에 예약된 객실의 개수를 산출한다
function getRoom($day, $number)
{
global $class, $room;
$result = 0;
$max = count($class[$number]);
for($i = 0; $i < $max; $i++)
{
$var = $class[$number][$i];
$result += count($room[$day][$var]);
}
return $result;
}
// 문자메시지를 전송합니다 (아이코드 클래스)
function SMS($message, $receive = null)
{
global $board;
list($id, $password) = explode('|', $board['bo_8']);
list($phone, $mobile) = explode('|', $board['bo_9']);
if(isset($receive) == false)
{
$receive = $mobile;
}
$SMS = new ICODE;
$SMS -> Connect($id, $password);
$SMS -> Add($phone, $receive, $message);
$SMS -> Send();
return;
}
function BLANK($string, $size)
{
for($i = 0; $i < $size; $i++)
{
$string .= ' ';
}
$result = substr($string, 0, $size);
return $result;
}
class ICODE
{
var $ID;
var $PASSWORD;
var $SERVER;
var $PORT;
var $DATA;
function Connect($id, $password)
{
$this -> ID = BLANK($id, 10);
$this -> PASSWORD = BLANK($password, 10);
$this -> SERVER = '211.172.232.124';
$this -> PORT = rand(7192, 7195);
return;
}
function Add($send, $mobile, $message)
{
$send = str_replace('-', null, $send);
$send = BLANK($send, 33);
$mobile = str_replace('-', null, $mobile);
$mobile = BLANK($mobile, 11);
$message = stripslashes($message);
$message = BLANK($message, 80);
$this -> DATA = '01144 ' . $this -> ID . $this -> PASSWORD . $mobile . $send . $message;
return;
}
function Send()
{
$fgets = null;
$fsockopen = fsockopen($this -> SERVER, $this -> PORT);
fputs($fsockopen, $this -> DATA);
while(isset($fgets) == false)
{
$fgets = fgets($fsockopen, 30);
}
fclose($fsockopen);
$result = substr($fgets, 0, 19);
$key = '0223 00' . substr($this -> DATA, 26, 11);
$this -> DATA = null;
if($result != $key)
{
return false;
}
return true;
}
}
?>
---- 금액 변동되는 부분의 소스입니다
댓글 4개
게시글 목록
| 번호 | 제목 |
|---|---|
| 284508 | |
| 284499 | |
| 284492 | |
| 284490 | |
| 284484 | |
| 284481 | |
| 284478 | |
| 284476 | |
| 284474 | |
| 284472 | |
| 284470 | |
| 284458 | |
| 284457 | |
| 284454 | |
| 284453 | |
| 284447 | |
| 284446 | |
| 284444 | |
| 284441 | |
| 284440 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기