1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
<?php require_once('../webadmin/basic_info.php');
global $dbh;
if ($_GET["for"] == "check_available_room") {
echo check_available_room($_POST["master_room_id"]); }
if ($_GET["for"] == "select_room_size") {
/*var_dump($_POST); exit;*/
$check_available_room = check_available_room($_POST["master_room_id"]);
$master_room_id = (int)$_POST["master_room_id"];
if($check_available_room){
//get room id /*$sql = "select * from room where status = ? and deleted = ? and master_room_id = ?"; $parameters = array("OPEN", 0, $master_room_id); $room_info = bind_pdo($sql, $parameters, "selectone"); $room_id = $room_info["id"];*/
$room_id = $_SESSION["available_master_room_id"];
//update room status $sql = "update room set status = ?, online_hold_time = ?, session_id = ? where id = ?"; $online_hold_time = new DateTime(); $online_hold_time->modify('+15 minutes'); $parameters = array("OPEN_FOR_INTERNAL", $online_hold_time->format("Y-m-d H:i:s"), session_id(), $room_id); bind_pdo($sql, $parameters);
$selected_room_size_info = array(); $selected_room_size_info["master_room_id"] = $master_room_id; $selected_room_size_info["room_id"] = $room_id;
$master_room_info = get_master_room($master_room_id);
$master_room_price_info = get_master_room_price($master_room_id); $selected_room_size_info["retail_price"] = $master_room_price_info["retail_price"];
$date = new DateTime(); $effectivedate_from = new DateTime($master_room_price_info["effectivedate_from"]); $effectivedate_to = new DateTime($master_room_price_info["effectivedate_to"]);
if ($date->format("Y-m-d") >= $effectivedate_from->format("Y-m-d") && $date->format("Y-m-d") <= $effectivedate_to->format("Y-m-d")) { //discounted price valid $selected_room_size_info["discounted_price"] = $master_room_price_info["discounted_price"]; } else { $selected_room_size_info["discounted_price"] = $master_room_price_info["retail_price"]; }
//get all discount info of this room size $master_room_discount_info = get_master_room_discount_by_mater_room_id($master_room_id, date("Y-m-d")); $discount_message = ""; foreach ($master_room_discount_info as $master_room_discount) { if($master_room_discount["status"] == 0) continue;
$payment_term_info = get_master_type_code("PAYMENT_TERM", $master_room_discount["payment_term"]);
$discount_message .= "<remark>".$payment_term_info["name_".$langcode].". 獲得 ".floatval($master_room_discount["discount"])."% off</remark><br>"; } $discount_message = substr_replace($discount_message, "", -4); $selected_room_size_info["discount_text"] = $discount_message;
//calculate discounted price $sql = "select *, discount.id as master_room_discount_id from master_room_discount discount INNER JOIN master_type_code mtcode ON discount.payment_term = mtcode.code where discount.master_room_id = ? and discount.deleted = ? and mtcode.typeid = ? and ? >= discount.effectivedate_from and ? <= discount.effectivedate_to and discount.status = ? order by mtcode.config_value DESC "; $parameters = array($_POST["master_room_id"], 0, "PAYMENT_TERM", date("Y-m-d"), date("Y-m-d"), 1); $master_room_discount_info = bind_pdo($sql, $parameters, "selectall");
$discount_message = ""; $pass_prepaid_discount = false;
if (!empty($master_room_discount_info)) { $i = 0; foreach ($master_room_discount_info as $master_room_discount) {
if ($master_room_discount["payment_term"] == "SPECIFIC_SIZE") {
$selected_room_size_info["order_discount"][$i]["master_room_discount_id"] = $master_room_discount["master_room_discount_id"]; $selected_room_size_info["order_discount"][$i]["discount_type"] = $master_room_discount["discount_type"]; $selected_room_size_info["order_discount"][$i]["discount"] = $master_room_discount["discount"]; $selected_room_size_info["order_discount"][$i]["monthly_deduct"] = round($selected_room_size_info["discounted_price"] * ($master_room_discount["discount"]) / 100, 1);
$selected_room_size_info["discounted_price"] = round($selected_room_size_info["discounted_price"] * (100 - $master_room_discount["discount"]) / 100, 1);
} else {
//if(($_POST["prepaid"] == 1) && $_POST["rent_month"] >= $master_room_discount["config_value"] && !$pass_prepaid_discount){ if(($_POST["prepaid"] == 1) && $_POST["rent_month"] == $master_room_discount["config_value"] && !$pass_prepaid_discount){
$selected_room_size_info["order_discount"][$i]["master_room_discount_id"] = $master_room_discount["master_room_discount_id"]; $selected_room_size_info["order_discount"][$i]["discount_type"] = $master_room_discount["discount_type"]; $selected_room_size_info["order_discount"][$i]["discount"] = $master_room_discount["discount"]; $selected_room_size_info["order_discount"][$i]["monthly_deduct"] = round($selected_room_size_info["discounted_price"] * ($master_room_discount["discount"]) / 100, 1);
$selected_room_size_info["discounted_price"] = round($selected_room_size_info["discounted_price"] * (100 - $master_room_discount["discount"]) / 100, 1);
$pass_prepaid_discount = true;
if($master_room_discount["is_final_discount"] == 1){ break; } }else{
} }
$i++; } }
$selected_room_size_info["deposit"] = $master_room_price_info["retail_price"] * 2;
$selected_room_size_info["first_month_half_price"] = 0;
$order_exist = false; $new_customer = false; $customer_id = ""; $selected_room_size_info["warehousing_date_range"] = 0;
if(!empty($_POST["email"])){ $result = check_new_customer_new_order_by_email_phone($_POST["email"], $_POST["phone"]);
if($result["new_customer"] && !$result["order_exist"] && $_POST["prepaid"] == 1){ $selected_room_size_info["first_month_half_price"] = (round($selected_room_size_info["discounted_price"]-$selected_room_size_info["retail_price"]*0.5, 1)); }
if($result["new_customer"] && !$result["order_exist"]){ $selected_room_size_info["warehousing_date_range"] = 1; } }
if($selected_room_size_info["retail_price"] != $selected_room_size_info["discounted_price"]){ $selected_room_size_info["price_text"] = "<ins>HK$".numberformat($selected_room_size_info["discounted_price"])."</ins> <del>HK$".numberformat($selected_room_size_info["retail_price"])."</del>";
}else{ $selected_room_size_info["price_text"] = "<ins>HK$".numberformat($selected_room_size_info["discounted_price"])."</ins>"; }
$selected_room_size_info["total_amount"] = $selected_room_size_info["discounted_price"]*(int)$_POST["rent_month"]+$selected_room_size_info["deposit"]-$selected_room_size_info["first_month_half_price"];
$_SESSION["selected_room_size_info"] = $selected_room_size_info; echo json_encode($selected_room_size_info);
//echo 1; }else{ $_SESSION["selected_room_size_info"] = "";
echo 0; } }
|