/var/www/hkosl.com/innoutstorage2019/tc/_ajax.php


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_iddate("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"]) / 1001);

                        
$selected_room_size_info["discounted_price"] = round($selected_room_size_info["discounted_price"] * (100 $master_room_discount["discount"]) / 1001);

                    } 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"]) / 1001);

                            
$selected_room_size_info["discounted_price"] = round($selected_room_size_info["discounted_price"] * (100 $master_room_discount["discount"]) / 1001);

                            
$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.51));
                }

                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;
        }
    }