You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

297 lines
15 KiB

  1. <?php
  2. require_once "Api/ApiBase.php";
  3. require_once "Lib/Action/ModifyHotelOrder.class.php";
  4. require_once "Lib/Action/MakeHotelOrder.class.php";
  5. require_once "Lib/Common/word.php";
  6. /**
  7. * Created by PhpStorm.
  8. * User: luocj
  9. * Date: 2016/10/18
  10. * Time: 10:25
  11. */
  12. date_default_timezone_set('PRC'); //设置中国时区
  13. class ModifyHTOrder extends ApiBase
  14. {
  15. //订单信息
  16. function order_list()
  17. {
  18. $order_id = isset($_REQUEST['order_id']) ? $_REQUEST['order_id'] : "";
  19. $ModifyHotelOrder = new ModifyHotelOrder();
  20. $data = $ModifyHotelOrder->getOrderInfo($order_id);
  21. return $data;
  22. }
  23. //可用库存
  24. function stockList()
  25. {
  26. $start_date = isset($_POST['start_date']) ? $_POST['start_date'] : (isset($_GET['start_date']) ? $_GET['start_date'] : "");
  27. $end_date = isset($_POST['end_date']) ? $_POST['end_date'] : (isset($_GET['end_date']) ? $_GET['end_date'] : "");
  28. $hotel_id = isset($_POST['hotel_id']) ? $_POST['hotel_id'] : (isset($_GET['hotel_id']) ? $_GET['hotel_id'] : "");
  29. $room_type = isset($_POST['room_type']) ? $_POST['room_type'] : (isset($_GET['room_type']) ? $_GET['room_type'] : "");
  30. $org_id = isset($_POST['org_id']) ? $_POST['org_id'] : (isset($_GET['org_id']) ? $_GET['org_id'] : "");
  31. $parent_room_type = isset($_POST['parent_room_type']) ? $_POST['parent_room_type'] : (isset($_GET['parent_room_type']) ? $_GET['parent_room_type'] : "");
  32. $obj = new MakeHotelOrder;
  33. $data = $obj->getRoomStock($hotel_id, $parent_room_type, $room_type, $org_id, $start_date, $end_date);
  34. return $data;
  35. }
  36. function order_status()
  37. {
  38. $order_id = isset($_REQUEST['order_id']) ? $_REQUEST['order_id'] : "";
  39. if ($order_id == "") {
  40. $data['code'] = "16";
  41. $data['info'] = "缺少订单号";
  42. return $data;
  43. }
  44. $ModifyHotelOrder = new ModifyHotelOrder();
  45. $data = $ModifyHotelOrder->getOrderStatus($order_id);
  46. return $data;
  47. }
  48. /*
  49. * 修改订单
  50. */
  51. function modify_order()
  52. {
  53. $user_id = $this->login_user_id;
  54. $hotel_id = isset($_POST['hotel_id']) ? $_POST['hotel_id'] : (isset($_GET['hotel_id']) ? $_GET['hotel_id'] : "");
  55. $room_type = isset($_POST['room_type']) ? $_POST['room_type'] : (isset($_GET['room_type']) ? $_GET['room_type'] : "");
  56. $org_id = isset($_POST['org_id']) ? $_POST['org_id'] : (isset($_GET['org_id']) ? $_GET['org_id'] : "");
  57. $org_num = isset($_POST['org_num']) ? $_POST['org_num'] : (isset($_GET['org_num']) ? $_GET['org_num'] : "");
  58. $room_list = isset($_POST['room_list']) ? $_POST['room_list'] : (isset($_GET['room_list']) ? $_GET['room_list'] : "");
  59. $cus_list = isset($_POST['cus_list']) ? $_POST['cus_list'] : (isset($_GET['cus_list']) ? $_GET['cus_list'] : "");
  60. $checkin_time = isset($_POST['checkin_time']) ? $_POST['checkin_time'] : (isset($_GET['checkin_time']) ? $_GET['checkin_time'] : "");
  61. $if_cancel = isset($_REQUEST['if_cancel']) ? $_REQUEST['if_cancel'] : '0';
  62. $order_id = isset($_REQUEST['order_id']) ? $_REQUEST['order_id'] : '0';
  63. $benefit = isset($_REQUEST['benefit']) ? $_REQUEST['benefit'] : '';
  64. $total_commission = isset($_REQUEST['total_commission']) ? $_REQUEST['total_commission'] : '';
  65. $logList = isset($_REQUEST['logList']) ? $_REQUEST['logList'] : '';
  66. $ModifyHotelOrder = new ModifyHotelOrder();
  67. $data = $ModifyHotelOrder->getModifyOrderList($user_id, $hotel_id, $room_type, $org_id, $org_num, $room_list, $cus_list, $checkin_time, $if_cancel, $benefit, $total_commission, $order_id, $logList);
  68. // $MakeOrder = new MakeHotelOrder();
  69. // $data = $MakeOrder->makeOrderList($user_id, $hotel_id, $room_type, $org_id, $org_num, $room_list, $cus_list, $checkin_time, $if_cancel, $benefit, $total_commission, $order_id);
  70. return $data;
  71. }
  72. // public function export(){
  73. // $A=new ModifyHotelOrder();
  74. // $res=$A->getO();
  75. // $str = "姓名\t性别\t年龄\t\n";
  76. // $str = iconv('utf-8','gb2312',$str);
  77. // foreach($res as $row){
  78. // @$name = iconv('utf-8','gb2312',$row['HOTEL_ID']);
  79. // @$sex = iconv('utf-8','gb2312',$row['HOTEL_NAME']);
  80. // $str .= $name."\t".$sex."\t".$row['AREA_ID']."\t\n";
  81. // }
  82. // $filename = date('Ymd').'.xls';
  83. // self::exportExcel($filename,$str);
  84. // }
  85. //
  86. // function exportExcel($filename,$content){
  87. // header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  88. // header("Content-Type: application/vnd.ms-execl");
  89. // header("Content-Type: application/force-download");
  90. // header("Content-Type: application/download");
  91. // header("Content-Disposition: attachment; filename=".$filename);
  92. // header("Content-Transfer-Encoding: binary");
  93. // header("Pragma: no-cache");
  94. // header("Expires: 0");
  95. //
  96. // echo $content;
  97. // }
  98. public function export()
  99. {
  100. $user_id = $this->login_user_id;
  101. $order_id = isset($_REQUEST['order_id']) ? $_REQUEST['order_id'] : "";
  102. $ModifyHotelOrder = new ModifyHotelOrder();
  103. $data = $ModifyHotelOrder->getBookInfo($order_id);
  104. $user_name = $ModifyHotelOrder->getTrueName($user_id);
  105. //判断是否修改单
  106. $res = $ModifyHotelOrder->isUpdate($order_id);
  107. if ($data['hotel_order_detail'][0]['order_status'] == 148||$data['hotel_order_detail'][0]['order_status']==383) {
  108. $type = "酒店取消单";
  109. } else {
  110. if ($res['rowset']) {
  111. $type = "酒店修改单";
  112. } else {
  113. $type = "酒店确认单";
  114. }
  115. }
  116. @$info = $data['hotel_order_detail'][0];
  117. $memo = $info['customer_memo'];
  118. $notes = explode('||', $memo);
  119. if (count($notes) > 0) {
  120. $tmp = array();
  121. foreach ($notes as $note) {
  122. $item = explode('|', $note);
  123. if (count($item) >= 3 && $item[2] == 0 && $item[3] != '') {
  124. $tmp[] = $item[3];
  125. }
  126. }
  127. $memo = implode(';', $tmp);
  128. } else {
  129. $memo = $notes[0];
  130. }
  131. @$customer_memo = $memo;
  132. $obj = $ModifyHotelOrder->getPrice($order_id);
  133. $mes = '';
  134. $total_price = 0;
  135. foreach ($obj as $v) {
  136. @$mes .= "<div>" . $v['prod_start_station_date'] . ' ' . '数量:' . $v['num'] . '间' . ' ' . '结算价:' . ($v['base_price']/$v['num']) . '元/间' . "</div>";
  137. @$total_price += $v['base_price'];
  138. }
  139. $message = $mes . '订单总计:' . $total_price . '元';
  140. $date = date("Y-m-d", time());
  141. $head_org_name = '';
  142. if ($info['org_id'] == 1) {
  143. $head_org_name = "上海南顺";
  144. } elseif ($info['org_id'] == 2) {
  145. $head_org_name = '上海蜘蛛行';
  146. } elseif ($info['org_id'] == 3) {
  147. $head_org_name = '上海自在';
  148. } elseif ($info['org_id'] == 4) {
  149. $head_org_name = '杭州启程';
  150. } elseif ($info['org_id'] == 5) {
  151. $head_org_name = '杭州倒计时';
  152. }
  153. $word = new word();
  154. $html = "<!DOCTYPE html>
  155. <html lang=\"en\">
  156. <head>
  157. <meta charset=\"UTF - 8\">
  158. <title>{$type}</title>
  159. </head>
  160. <style>
  161. td {
  162. padding: 6px; height: 45px;
  163. }
  164. </style>
  165. <body style=\"margin: 0 auto;width: 800px;font-family: 宋体\">
  166. <div>
  167. <!--头部-->
  168. <div style=\"width: 100%;text-align: center;margin-top: 15px;\">
  169. <span style=\"font-family: 宋体;font-size: 42px;font-weight: 600;\">{$head_org_name}{$type}</span></div>
  170. </div>
  171. <!--body部-->
  172. <div style=\"margin-top: 30px;\">
  173. <table border=\"2\" cellpadding=\"0\" cellspacing=\"0\"
  174. style=\"width: 100%;height: 100%; border-color: #a9c6c9;border-collapse: collapse;\">
  175. <tr>
  176. <th style=\"padding: 4px; height: 45px;font-size: 16px;width: 120px;\">订单号:</th>
  177. <td style=\"padding: 4px; height: 45px;font-size: 16px;text-align: center;\">{$order_id}</td>
  178. <th style=\"padding: 4px; height: 45px;font-size: 16px;width: 120px;\">付款方式:</th>
  179. <td style=\"padding: 4px; height: 45px;font-size: 16px;text-align: center;\">{$info['type_name']}&nbsp;{$info['type_time']}</td>
  180. </tr>
  181. <tr>
  182. <th style=\"padding: 4px; height: 45px;font-size: 16px;width: 120px;\">发 自:</th>
  183. <td colspan=\"3\" style=\"padding: 4px; height: 45px;font-size: 16px;text-align: center;font-weight: 600;\">{$info['org_name']}</td>
  184. </tr>
  185. <tr>
  186. <th style=\"padding: 4px; height: 45px;font-size: 16px;width: 120px;\">传 真:</th>
  187. <td style=\"padding: 4px; height: 45px;font-size: 16px;text-align: center;\">021-33280184</td>
  188. <th style=\"padding: 4px; height: 45px;font-size: 16px;width: 120px;\">电 话:</th>
  189. <td style=\"padding: 4px; height: 45px;font-size: 16px;text-align: center;\">021-33280578</td>
  190. </tr>
  191. </table>
  192. <div style='height: 60px;'>&nbsp;</div>
  193. <table border=\"2\" cellpadding=\"0\" cellspacing=\"0\"
  194. style=\"width: 100%;height: 100%; border-color: #a9c6c9;border-collapse: collapse;\">
  195. <tr >
  196. <th style=\"padding: 4px; height: 45px;font-size: 16px;width: 120px;\">预订房型:</th>
  197. <td colspan=\"3\" style=\"padding: 4px; height: 45px;font-size: 16px;text-align: center;font-weight: 600;\">{$info['hotel_name']} {$info['product_name']}</td>
  198. </tr>
  199. <tr>
  200. <th style=\"padding: 4px; height: 45px;font-size: 16px;width: 120px;\">客人姓名:</th>
  201. <td colspan=\"3\" style=\"padding: 4px; height: 45px;font-size: 16px;text-align: center;\">{$info['customer_name']}</td>
  202. </tr>
  203. <tr>
  204. <th style=\"padding: 4px; height: 50px;font-size: 16px;width: 120px;\">结算总价:</th>
  205. <td style=\"padding: 4px; height: 50px;font-size: 16px;\">&nbsp;{$total_price}元</td>
  206. <th style=\"padding: 4px; height: 50px;font-size: 16px;width: 120px;\">客人电话:</th>
  207. <td style=\"padding: 4px; height: 50px;font-size: 16px;\">&nbsp;{$info['customer_mobile']}</td>
  208. </tr>
  209. <tr>
  210. <th style=\"padding: 4px; height: 45px;font-size: 16px;width: 120px;\">入住日期:</th>
  211. <td style=\"padding: 4px; height: 45px;font-size: 16px;font-weight: 600;\">&nbsp;{$info['start_date']}</td>
  212. <th style=\"padding: 4px; height: 45px;font-size: 16px;width: 120px;\">离店日期:</th>
  213. <td style=\"padding: 4px; height: 45px;font-size: 16px;font-weight: 600;\">&nbsp;{$info['end_date']}</td>
  214. </tr>
  215. <tr style=\"height: 70px;\">
  216. <th style=\"padding: 4px; height: 45px;font-size: 16px;width: 120px;\">备 注:</th>
  217. <td colspan=\"3\" style=\"padding: 4px; height: 45px;font-size: 16px;text-align: center;\">{$customer_memo}</td>
  218. </tr>
  219. <tr>
  220. <th style=\"padding: 4px; height: 45px;font-size: 16px;width: 120px;\">酒店确认号:</th>
  221. <td style=\"padding: 4px; height: 45px;font-size: 16px;\">&nbsp;{$info['order_confirm_code']}</td>
  222. <th style=\"padding: 4px; height: 45px;font-size: 16px;width: 120px;\">确认人:</th>
  223. <td style=\"padding: 4px; height: 45px;font-size: 16px;\">&nbsp;</td>
  224. </tr>
  225. <tr style=\"height: 170px;\">
  226. <td colspan=\"4\" style=\"line-height: 20px; font-size: 16px;padding-left: 20px; padding-right: 20px;word-break:break-all\">{$message}</td>
  227. </tr>
  228. </table>
  229. <div style=\"height:50px;padding: 20px;float: right;\"><br>
  230. <table>
  231. <tr >
  232. <td style=\"width: 71%;\"></td>
  233. <td style=\"font-size: 16px;font-weight: 600;\">操作人:</td><td style=\"font-size: 16px;\">{$user_name['true_name']}</td>
  234. </tr>
  235. <tr >
  236. <td style=\"width: 71%\"></td>
  237. <td style=\"font-weight: 600;font-size: 16px;\">操作日期:</td><td style=\"font-size: 16px;\">{$date}</td>
  238. </tr>
  239. </table>
  240. <!-- <span style=\"font-weight: 600;font-size: 13px;\">操 作 人:</span><span style=\"font-size: 13px;\">王海顺</span><br><br>
  241. <span style=\"font-weight: 600;margin-top: 5px;font-size: 13px;\">操作日期12:</span><span style=\"font-size: 13px;\">2016-12-12</span>-->
  242. </div>
  243. </div>
  244. <div style=\"padding: 20px;width:800px;text-align: center;margin-top: 55px;\">
  245. <span style=\"font-size: 12px;color: darkgray\">* {$info['org_name']} 电话:021-33280578 传真:021-33280184</span>
  246. </div>
  247. </div>
  248. </div>
  249. </body>
  250. </html>";
  251. // var_dump($message);
  252. $word->start();
  253. $filename = $head_org_name . $type . date('m-d h:i', time()) . ".doc";
  254. echo $html;
  255. $word->save($filename);
  256. header('Content-type: application/word');
  257. header("Content-Disposition: attachment; filename={$filename}");
  258. // @readfile($filename,0777);
  259. ob_flush();
  260. flush();
  261. exit();
  262. }
  263. }
  264. $op = isset($_REQUEST['op']) ? $_REQUEST['op'] : "";
  265. $data = array();
  266. $data['code'] = "0";
  267. $data['info'] = "";
  268. if ($op == "") {
  269. $data['code'] = "5";
  270. $data['info'] = "缺少必要参数";
  271. echo json_encode($data);
  272. exit();
  273. }
  274. $obj = new ModifyHTOrder();
  275. if ($op == "order_list") {
  276. $data = $obj->order_list();
  277. } elseif ($op == "order_status") {
  278. $data = $obj->order_status();
  279. } else if ($op == "modify_order") {
  280. $data = $obj->modify_order();
  281. } else if ($op == 'export') {
  282. $date = $obj->export();
  283. } else if ($op == 'stock_list') {
  284. $data = $obj->stockList();
  285. }
  286. echo json_encode($data);