VM暫存
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

3914 lines
165KB

  1. <!DOCTYPE html>
  2. <html lang="zh-TW">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <meta name="description" content="">
  8. <meta name="author" content="">
  9. <title>歐特儀營管系統</title>
  10. <script>
  11. // document.write("<base href='http://" + document.location.host + "' />");
  12. </script>
  13. <script src="/libs/js/jquery.min.js"></script>
  14. <script src="/admins_station.html/js_vars"></script>
  15. <style>
  16. .cario_list{text-align:center;vertical-align:middle;}
  17. </style>
  18. <!-- Bootstrap Core CSS -->
  19. <link href="/libs/bootstrap_sb/bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
  20. <!-- MetisMenu CSS -->
  21. <link href="/libs/bootstrap_sb/bower_components/metisMenu/dist/metisMenu.min.css" rel="stylesheet">
  22. <!-- Timeline CSS -->
  23. <link href="/libs/bootstrap_sb/dist/css/timeline.css" rel="stylesheet">
  24. <!-- Custom CSS -->
  25. <link href="/libs/bootstrap_sb/dist/css/sb-admin-2.css" rel="stylesheet">
  26. <!-- Morris Charts CSS -->
  27. <link href="/libs/bootstrap_sb/bower_components/morrisjs/morris.css" rel="stylesheet">
  28. <!-- Custom Fonts -->
  29. <link href="/libs/bootstrap_sb/bower_components/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
  30. <!-- Bootstrap Core JavaScript -->
  31. <script src="/libs/bootstrap_sb/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
  32. <script src="/libs/bootstrap_sb/bower_components/metisMenu/dist/metisMenu.min.js"></script>
  33. <link href="/libs/bootstrap/css/bootstrap-datetimepicker.min.css" rel="stylesheet">
  34. <script src="/libs/bootstrap/js/bootstrap-datetimepicker.min.js"></script>
  35. <script src="/libs/bootstrap/js/bootstrap-datetimepicker.zh-TW.js"></script>
  36. <!-- Morris Charts JavaScript -->
  37. <script src="/libs/bootstrap_sb/bower_components/raphael/raphael-min.js"></script>
  38. <!-- Custom Theme JavaScript -->
  39. <script src="/libs/bootstrap_sb/dist/js/sb-admin-2.js"></script>
  40. <!--script src="/libs/js/mqttws.min.js"></script-->
  41. <!-- alertify -->
  42. <link href="/libs/css/alertify.core.css" rel="stylesheet">
  43. <link href="/libs/css/alertify.bootstrap.css" rel="stylesheet">
  44. <script src="/libs/js/alertify.min.js"></script>
  45. <!-- moment -->
  46. <script src="/libs/js/moment.min.js"></script>
  47. </head>
  48. <body style="font-family:Microsoft JhengHei;">
  49. <div id="wrapper">
  50. <!-- Navigation -->
  51. <nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
  52. <div class="navbar-header">
  53. <a class="navbar-brand">歐特儀營管系統<span id="user_name" style="font-size:10px;color:blue;"></span></a>
  54. </div>
  55. <!-- /.navbar-top-links(左側選單) -->
  56. <div class="navbar-default sidebar" role="navigation">
  57. <div class="sidebar-nav navbar-collapse">
  58. <ul class="nav" id="side-menu">
  59. <li>
  60. <a href="#"><i class="fa fa-edit fa-fw"></i>帳務管理<span class="fa arrow"></span></a>
  61. <ul class="nav nav-second-level">
  62. <!--li>
  63. <a href="#" onclick="show_item('invoice_close', 'invoice_close');">關帳(每日)</a>
  64. </li>
  65. <li>
  66. <a href="#" onclick="show_item('invoice_history', 'invoice_history');">關帳記錄</a>
  67. </li-->
  68. <li>
  69. <a href="#" onclick="show_item('check_point', 'check_point');">關帳(手動)</a>
  70. </li>
  71. <li>
  72. <a href="#" onclick="show_item('check_point_report', 'check_point_report');">關帳查詢</a>
  73. </li>
  74. <li>
  75. <a href="#" onclick="show_item('price_plan_query_all', 'price_plan_query_all');">費率設定</a>
  76. </li>
  77. </ul>
  78. </li>
  79. <li>
  80. <a href="#"><i class="fa fa-user fa-fw"></i>會員管理<span class="fa arrow"></span></a>
  81. <ul class="nav nav-second-level">
  82. <li>
  83. <a href="#" onclick="show_item('member_query', 'member_query');">會員查詢</a>
  84. </li>
  85. <li>
  86. <a href="#" onclick="show_item('member_add', 'member_add');">會員加入</a>
  87. </li>
  88. <li>
  89. <a href="#" onclick="show_item('member_query_all', 'member_query_all');">會員清單</a>
  90. </li>
  91. <li>
  92. <a href="#" onclick="show_item('member_tx_refund_query', 'member_tx_refund_query');">退租查詢</a>
  93. </li>
  94. </ul>
  95. <!-- /.nav-second-level -->
  96. </li>
  97. <li>
  98. <a href="#"><i class="fa fa-user fa-fw"></i>查核作業<span class="fa arrow"></span></a>
  99. <ul class="nav nav-second-level">
  100. <li>
  101. <a href="#" onclick="show_item('member_tx_check_query', 'member_tx_check_query');">待審核交易</a>
  102. </li>
  103. <li>
  104. <a href="#" onclick="show_item('cario_temp_not_finished_query_all', 'cario_temp_not_finished_query_all');">臨停未結清單</a>
  105. </li>
  106. </ul>
  107. <!-- /.nav-second-level -->
  108. </li>
  109. <li>
  110. <a href="#"><i class="fa fa-user fa-fw"></i>發票管理<span class="fa arrow"></span></a>
  111. <ul class="nav nav-second-level">
  112. <li>
  113. <a href="#" onclick="show_item('member_tx_bill_query', 'ok');">待開立清單</a>
  114. </li>
  115. <li>
  116. <a href="#" onclick="show_item('member_tx_bill_query', 'more');">待補開清單</a>
  117. </li>
  118. <li>
  119. <a href="#" onclick="show_item('member_tx_bill_query', 'refund');">待折讓清單</a>
  120. </li>
  121. </ul>
  122. <!-- /.nav-second-level -->
  123. </li>
  124. <!--li>
  125. <a href="#"><i class="fa fa-user fa-fw"></i>發票管理<span class="fa arrow"></span></a>
  126. <ul class="nav nav-second-level">
  127. <li>
  128. <a href="#" onclick="show_item('invoice_open', 'invoice_open');">發票開帳</a>
  129. </li>
  130. <li>
  131. <a href="#" onclick="show_item('invoice_reprint', 'invoice_reprint');">發票補印</a>
  132. </li>
  133. <li>
  134. <a href="#" onclick="show_item('invoice_cancel', 'invoice_cancel');">發票作廢</a>
  135. </li>
  136. <li>
  137. <a href="#" onclick="show_item('invoice_rows', 'invoice_rows');">發票下載</a>
  138. </li>
  139. <li>
  140. <a href="#" onclick="show_item('invoice_close', 'invoice_close');">發票清帳</a>
  141. </li>
  142. </ul>
  143. </li-->
  144. <li>
  145. <a href="#" onclick="location.replace('/admins_station.html');">登出</a>
  146. <!-- /.nav-second-level -->
  147. </li>
  148. </ul>
  149. </div>
  150. <!-- /.sidebar-collapse -->
  151. </div>
  152. <!-- /.navbar-static-side -->
  153. </nav>
  154. <div id="page-wrapper"><!-- 主要資料顯示區 -->
  155. <div class="row">
  156. <div class="col-lg-12">
  157. <h1 class="page-header">營業管理作業</h1><!-- 右側小表頭 -->
  158. </div>
  159. <!-- /.col-lg-12 -->
  160. </div>
  161. <!-- /.row -->
  162. <!-- ----- 會員加入填寫資料 ----- -->
  163. <div data-items="member_add" class="row" style="display:none;"><!-- 會員加入填寫資料 -->
  164. <div class="col-lg-12">
  165. <div class="panel panel-default">
  166. <div id="member_data_type" class="panel-heading">新增會員資料</div><!-- 資料顯示區灰色小表頭 -->
  167. <div class="panel-body">
  168. <div data-rows class="row">
  169. <div class="col-lg-6">
  170. <!--form id="member_add" role="form" method="post" data-src="action::APP_URL::member_add"-->
  171. <form id="member_add" role="form" method="post" data-src="/admins_station.html/member_add">
  172. <div class="form-group">
  173. <label>*場站</label>
  174. <select class="form-control" id="station_no_modify" name="station_no">
  175. </select>
  176. </div>
  177. <div class="form-group">
  178. <label>*車牌號碼</label>
  179. <input id="ma_lpr" name="lpr" class="form-control" placeholder="限英數字碼" style="text-transform:uppercase" />
  180. <input id="ma_old_lpr" name="old_lpr" type="hidden" />
  181. </div>
  182. <div class="form-group">
  183. <label>eTag</label>
  184. <input id="ma_etag" name="etag" class="form-control" placeholder="限英數字碼" style="text-transform:uppercase">
  185. </div>
  186. <div class="form-group">
  187. <label>*不足月開始日期(開始日)</label>
  188. <input id="ma_demonth_start_date" type="datetime" name="demonth_start_date" class="form-control" onchange="calculate_rents_amt();"/>
  189. </div>
  190. <div class="form-group">
  191. <label>*不足月結束日期</label>
  192. <input id="ma_demonth_end_date" type="datetime" name="demonth_end_date" class="form-control" />
  193. </div>
  194. <div class="form-group">
  195. <label>*足月開始日期</label>
  196. <input id="ma_start_date" type="datetime" name="start_date" class="form-control" />
  197. </div>
  198. <div class="form-group">
  199. <label>*足月結束日期(到期日)</label>
  200. <input id="ma_end_date" type="datetime" name="end_date" class="form-control" />
  201. </div>
  202. <div class="form-group">
  203. <label class="select-inline">
  204. <button type="button" class="btn btn-default btn-xl btn-primary pull-left" onclick="member_park_time();">*進出場時段</button>&nbsp;
  205. </label>
  206. </div>
  207. <div class="form-group">
  208. <label class="select-inline">*首期繳期
  209. <select class="form-control input-sm" id="fee_period1" name="fee_period1" onClick="calculate_rents_amt();"></select>
  210. </label>
  211. <label class="select-inline">*首期租金 (依使用天數拆分)
  212. <input id="ma_amt1" name="amt1" class="form-control" value="0" onblur="re_amt();">
  213. </label>
  214. <label class="select-inline" id="amt1_max_view">
  215. &nbsp;說明:&nbsp;
  216. &nbsp;每日租金(&nbsp;<span id="amt1_max">0</span>&nbsp;元
  217. &nbsp;/ &nbsp;<span id="amt1_days_total">0</span>&nbsp;天)
  218. &nbsp;* 實際天數&nbsp;<span id="amt1_days">0</span>&nbsp;天
  219. </label>
  220. </div>
  221. <div class="form-group">
  222. <label class="select-inline">*例行繳期
  223. <select class="form-control input-sm" id="fee_period" name="fee_period" onClick="calculate_rents_amt();"></select>
  224. </label>
  225. <label class="select-inline">*例行租金 (依使用月數拆分)
  226. <input id="ma_amt" name="amt" class="form-control" value="0" onblur="re_amt();">
  227. </label>
  228. <!-- 第一版, 按日拆
  229. label class="select-inline" id="amt2_max_view">
  230. &nbsp;*說明:&nbsp;
  231. &nbsp;每日租金(&nbsp;<span id="amt2_max">0</span>&nbsp;元
  232. &nbsp;/ &nbsp;<span id="amt2_days_total">0</span>&nbsp;天)
  233. &nbsp;* 實際天數&nbsp;<span id="amt2_days">0</span>&nbsp;天
  234. </label-->
  235. <label class="select-inline" id="amt2_max_view">
  236. &nbsp;說明:&nbsp;
  237. &nbsp;每月租金(&nbsp;<span id="amt2_max">0</span>&nbsp;元
  238. &nbsp;/ &nbsp;<span id="amt2_months_total">0</span>&nbsp;個月)
  239. &nbsp;* 實際月數&nbsp;<span id="amt2_months">0</span>&nbsp;個月
  240. </label>
  241. </div>
  242. <div class="form-group">
  243. <label class="select-inline">*會員身份
  244. <select class="form-control input-sm" id="member_attr" name="member_attr" onClick="calculate_rents_amt();"></select>
  245. </label>
  246. <label class="select-inline">*押金(不列入發票金額)
  247. <input id="ma_deposit" name="deposit" class="form-control" value="0" onblur="re_amt();">
  248. </label>
  249. <label class="select-inline" id="amt_accrued_view">
  250. &nbsp;&nbsp;應計金額 (原價):<span id="amt_accrued">0</span>
  251. </label>
  252. </div>
  253. <div class="form-group">
  254. <label class="select-inline" style="color:blue;font-size:18px;" id="amt_tot_view">
  255. 租金:<span id="amt_tot">0</span>
  256. </label>
  257. </div>
  258. <div class="form-group">
  259. <label>合約號碼</label>
  260. <input id="ma_contract_no" name="contract_no" class="form-control">
  261. </div>
  262. <div class="form-group">
  263. <label>*姓名/公司名稱</label>
  264. <input id="ma_member_name" name="member_name" class="form-control" style="font-size:48px;height:56px;">
  265. </div>
  266. <div class="form-group">
  267. <label>*手機</label>
  268. <input id="ma_mobile_no" name='mobile_no' class="form-control">
  269. </div>
  270. <div class="form-group">
  271. <label>身份證號</label>
  272. <input id="ma_member_id" name="member_id" class="form-control">
  273. </div>
  274. <div class="form-group">
  275. <label>會員統一編號</label>
  276. <input id="ma_member_company_no" name="member_company_no" class="form-control">
  277. </div>
  278. <div class="form-group">
  279. <label>電話(宅)</label>
  280. <input id="ma_tel_h" name='tel_h' class="form-control">
  281. </div>
  282. <div class="form-group">
  283. <label>電話(公)</label>
  284. <input id="ma_tel_o" name='tel_o' class="form-control">
  285. </div>
  286. <div class="form-group">
  287. <label>地址</label>
  288. <input id="ma_addr" name='addr' class="form-control">
  289. </div>
  290. <div class="form-group">
  291. <button type="submit" class="btn btn-large btn-success pull-left">存檔</button>
  292. &nbsp;&nbsp;
  293. <!--button type="reset" class="btn btn-large btn-cancel">重填</button-->
  294. <input id="ma_member_no" type="hidden" name="member_no" value="0" />
  295. <input id="ma_company_no" type="hidden" name="company_no" />
  296. <input id="ma_park_time" type="hidden" name="park_time" />
  297. <input id="ma_amt_tot" type="hidden" name="amt_tot" />
  298. <input id="ma_amt_accrued" type="hidden" name="amt_accrued" />
  299. <input id="ma_demonth_start_date_done" type="hidden" name="demonth_start_date_done"/>
  300. <input id="ma_demonth_end_date_done" type="hidden" name="demonth_end_date_done"/>
  301. <input id="ma_start_date_done" type="hidden" name="start_date_done"/>
  302. <input id="ma_end_date_done" type="hidden" name="end_date_done"/>
  303. <!--input id="ma_fee_period1_done" type="hidden" name="fee_period1_done"/>
  304. <input id="ma_fee_period_done" type="hidden" name="fee_period_done"/>
  305. <input id="ma_member_attr_done" type="hidden" name="member_attr_done"/-->
  306. </div>
  307. </form>
  308. </div>
  309. <!-- /.col-lg-6 (nested) -->
  310. </div>
  311. <!-- /.row (nested) -->
  312. </div>
  313. <!-- /.panel-body -->
  314. </div>
  315. <!-- /.panel -->
  316. </div>
  317. <!-- /.col-lg-12 -->
  318. </div>
  319. <!-- ----- 會員加入填寫資料(結束) ----- -->
  320. <?php /* ----- 費率清單 ----- */?>
  321. <div data-items="price_plan_query_all" class="row" style="display:none;">
  322. <div class="col-lg-12">
  323. <div class="panel panel-default">
  324. <div class="panel-heading">
  325. 費率設定 <button class='btn btn-default' style='font-size:16px;' onclick='sync_price_plan();'>更新</button>
  326. </div>
  327. <!-- /.panel-heading -->
  328. <div class="panel-body">
  329. <div class="dataTable_wrapper">
  330. <table class="table table-striped table-bordered table-hover">
  331. <thead>
  332. <tr>
  333. <th style="text-align:left;">場站</th>
  334. <th style="text-align:left;">收費類型</th>
  335. <th style="text-align:left;" width="35%">費率設定</th>
  336. <th style="text-align:left;">註記事項</th>
  337. <th style="text-align:center;">啟用時間</th>
  338. <th style="text-align:center;">有效期限</th>
  339. </tr>
  340. </thead>
  341. <tbody id="price_plan_list" style="font-size:20px;"></tbody>
  342. </table>
  343. </div><?php /* ----- end of dataTable_wrapper ----- */?>
  344. </div><?php /* ----- end of panel-body ----- */?>
  345. </div><?php /* ----- end of panel panel-default ----- */?>
  346. </div><?php /* ----- end of col-lg-12 ----- */?>
  347. </div>
  348. <?php /* ----- 費率清單(結束) ----- */?>
  349. <?php /* ----- 交易查核總覽 ----- */?>
  350. <div data-items="member_tx_check_query" class="row" style="display:none;">
  351. <div class="col-lg-12">
  352. <div class="panel panel-default">
  353. <div class="panel-heading">
  354. 待審核清單
  355. </div>
  356. <!-- /.panel-heading -->
  357. <div class="panel-body">
  358. <div class="dataTable_wrapper">
  359. <table class="table table-striped table-bordered table-hover">
  360. <thead>
  361. <tr>
  362. <th style="text-align:left;">代號</th>
  363. <!--th style="text-align:left;">場站</th-->
  364. <th style="text-align:center;">入帳日</th>
  365. <th style="text-align:left;">入帳車號</th>
  366. <th style="text-align:left;">目前車號</th>
  367. <th style="text-align:center;">會員開始日</th>
  368. <th style="text-align:center;">上期繳期</th>
  369. <th style="text-align:center;">上期結束日</th>
  370. <th style="text-align:center;">上期租金</th>
  371. <th style="text-align:center;">本期繳期</th>
  372. <th style="text-align:center;">本期開始日</th>
  373. <th style="text-align:center;">本期結束日</th>
  374. <th style="text-align:center;">本期租金</th>
  375. <!--th style="text-align:center;">發票開立</th-->
  376. <th style="text-align:center;">審核狀態</th>
  377. <th style="text-align:center;">有效期限</th>
  378. <th style="text-align:center;">備註</th>
  379. </tr>
  380. </thead>
  381. <tbody id="member_tx_check" style="font-size:18px;"></tbody>
  382. </table>
  383. </div><?php /* ----- end of dataTable_wrapper ----- */?>
  384. </div><?php /* ----- end of panel-body ----- */?>
  385. </div><?php /* ----- end of panel panel-default ----- */?>
  386. </div><?php /* ----- end of col-lg-12 ----- */?>
  387. </div>
  388. <?php /* ----- 交易查核總覽(結束) ----- */?>
  389. <?php /* ----- 會員清單 ----- */?>
  390. <div data-items="member_query_all" class="row" style="display:none;">
  391. <div class="col-lg-12">
  392. <div class="panel panel-default">
  393. <div class="panel-heading">
  394. 會員清單
  395. </div>
  396. <!-- /.panel-heading -->
  397. <div class="panel-body">
  398. <div class="dataTable_wrapper">
  399. <table class="table table-striped table-bordered table-hover">
  400. <thead>
  401. <tr>
  402. <th style="text-align:left;">車號</th>
  403. <th style="text-align:left;">姓名</th>
  404. <th style="text-align:center;">手機</th>
  405. <th style="text-align:center;">開始日</th>
  406. <th style="text-align:center;">結束日</th>
  407. <th style="text-align:center;">繳期</th>
  408. <th style="text-align:center;">身份</th>
  409. <!--th style="text-align:center;">租金</th-->
  410. <th style="text-align:center;">停權</th>
  411. <!--th style="text-align:center;">狀態</th-->
  412. <th style="text-align:center;">有效期限</th>
  413. <!--th style="text-align:center;">備註</th-->
  414. </tr>
  415. </thead>
  416. <tbody id="member_list_all" style="font-size:18px;"></tbody>
  417. </table>
  418. </div><?php /* ----- end of dataTable_wrapper ----- */?>
  419. </div><?php /* ----- end of panel-body ----- */?>
  420. </div><?php /* ----- end of panel panel-default ----- */?>
  421. </div><?php /* ----- end of col-lg-12 ----- */?>
  422. </div>
  423. <?php /* ----- 會員清單(結束) ----- */?>
  424. <!-- ----- 會員查詢 ----- -->
  425. <div data-items="member_query" class="row">
  426. <div class="col-lg-12">
  427. <div class="panel panel-default">
  428. <div class="panel-heading">
  429. 會員查詢
  430. <form id="member_query_form" role="form">
  431. <div class="form-group">
  432. <label class="select-inline" for="station_select">
  433. <select class="form-control" id="station_select">
  434. </select>
  435. </label>
  436. <label class="radio-inline"><input type="radio" name="q_item" value="lpr" checked />車號</label>
  437. <label class="radio-inline"><input type="radio" name="q_item" value="member_name" />姓名</label>
  438. <label class="radio-inline"><input type="radio" name="q_item" value="mobile_no" />手機</label>
  439. <label class="radio-inline"><input type="radio" name="q_item" value="end_date" />到期日</label>
  440. <label class="radio-inline"><input type="radio" name="q_item" value="contract_no" />合約號碼</label>
  441. <label class="input-inline">&nbsp;&nbsp;<input type="text" id="q_str" placeholder="關鍵字" /></label>
  442. <label class="input-inline"><input type="submit" value="查詢" /></label>
  443. </div>
  444. </form>
  445. </div>
  446. <!-- /.panel-heading -->
  447. <div class="panel-body">
  448. <div class="dataTable_wrapper">
  449. <table class="table table-striped table-bordered table-hover">
  450. <thead>
  451. <tr>
  452. <th style="text-align:left;">場站</th>
  453. <th style="text-align:left;">車號</th>
  454. <th style="text-align:left;">姓名</th>
  455. <th style="text-align:center;">手機</th>
  456. <th style="text-align:center;">開始日</th>
  457. <th style="text-align:center;">結束日</th>
  458. <th style="text-align:center;">繳期</th>
  459. <th style="text-align:center;">身份</th>
  460. <th style="text-align:center;">合約號</th>
  461. <!--th style="text-align:center;">租金</th-->
  462. <th style="text-align:center;">停權</th>
  463. <th style="text-align:center;">功能</th>
  464. </tr>
  465. </thead>
  466. <tbody id="member_list" style="font-size:22px;"></tbody>
  467. </table>
  468. </div><!-- ----- end of dataTable_wrapper ----- -->
  469. </div><!-- ----- end of panel-body ----- -->
  470. </div><!-- ----- end of panel panel-default ----- -->
  471. </div><!-- ----- end of col-lg-12 ----- -->
  472. </div>
  473. <!-- ----- 會員查詢(結束) ----- -->
  474. <!-- ----- 交易記錄 ----- -->
  475. <div data-items="member_tx_query" class="row" style="display:none;">
  476. <div class="col-lg-12">
  477. <div class="panel panel-default">
  478. <div class="panel-heading">
  479. 交易記錄
  480. </div>
  481. <!-- /.panel-heading -->
  482. <div class="panel-body">
  483. <div class="dataTable_wrapper">
  484. <table class="table table-striped table-bordered table-hover">
  485. <thead>
  486. <tr>
  487. <th style="text-align:center;">代號</th>
  488. <!--th style="text-align:left;">場站</th-->
  489. <th style="text-align:center;">入帳日</th>
  490. <th style="text-align:left;">車號</th>
  491. <th style="text-align:center;">會員開始日</th>
  492. <th style="text-align:center;">上期繳期</th>
  493. <th style="text-align:center;">上期結束日</th>
  494. <th style="text-align:center;">上期租金</th>
  495. <th style="text-align:center;">本期繳期</th>
  496. <th style="text-align:center;">本期開始日</th>
  497. <th style="text-align:center;">本期結束日</th>
  498. <th style="text-align:center;">本期租金</th>
  499. <!--th style="text-align:center;">發票時間</th>
  500. <th style="text-align:center;">買方統編</th>
  501. <th style="text-align:center;">賣方統編</th>
  502. <th style="text-align:center;">發票字軌</th>
  503. <th style="text-align:center;">發票號碼</th>
  504. <th style="text-align:center;">發票金額</th>
  505. <th style="text-align:center;">發票種類</th-->
  506. <th style="text-align:center;">發票記錄</th>
  507. <th style="text-align:center;">審核狀態</th>
  508. <th style="text-align:center;">有效期限</th>
  509. <th style="text-align:center;">備註</th>
  510. <th style="text-align:center;">功能</th>
  511. </tr>
  512. </thead>
  513. <tbody id="member_tx_list" style="font-size:18px;"></tbody>
  514. </table>
  515. </div><!-- ----- end of dataTable_wrapper ----- -->
  516. </div><!-- ----- end of panel-body ----- -->
  517. </div><!-- ----- end of panel panel-default ----- -->
  518. </div><!-- ----- end of col-lg-12 ----- -->
  519. </div>
  520. <!-- ----- 交易查詢(結束) ----- -->
  521. <!-- ----- 發票記錄 ----- -->
  522. <div data-items="member_tx_bill_query" class="row" style="display:none;">
  523. <div class="col-lg-12">
  524. <div class="panel panel-default">
  525. <div class="panel-heading">
  526. 發票記錄
  527. </div>
  528. <!-- /.panel-heading -->
  529. <div class="panel-body">
  530. <div class="dataTable_wrapper">
  531. <table class="table table-striped table-bordered table-hover">
  532. <thead>
  533. <tr>
  534. <th style="text-align:left;">代號</th>
  535. <!--th style="text-align:left;">場站</th-->
  536. <th style="text-align:center;">入帳日</th>
  537. <th style="text-align:left;">車號</th>
  538. <th style="text-align:center;">會員開始日</th>
  539. <th style="text-align:center;">上期繳期</th>
  540. <th style="text-align:center;">上期結束日</th>
  541. <th style="text-align:center;">上期租金</th>
  542. <th style="text-align:center;">本期繳期</th>
  543. <th style="text-align:center;">本期開始日</th>
  544. <th style="text-align:center;">本期結束日</th>
  545. <th style="text-align:center;">本期租金</th>
  546. <th style="text-align:center;">發票時間</th>
  547. <th style="text-align:center;">買方統編</th>
  548. <th style="text-align:center;">賣方統編</th>
  549. <th style="text-align:center;">發票金額</th>
  550. <th style="text-align:center;">發票字軌</th>
  551. <th style="text-align:center;">發票號碼</th>
  552. <th style="text-align:center;">發票種類</th>
  553. <!--th style="text-align:center;">發票開立狀態</th>
  554. <th style="text-align:center;">審核狀態</th>
  555. <th style="text-align:center;">有效期限</th>
  556. <th style="text-align:center;">備註</th-->
  557. <th style="text-align:center;">狀態</th>
  558. <th style="text-align:center;">待辦金額</th>
  559. </tr>
  560. </thead>
  561. <tbody id="member_tx_bill_list" style="font-size:16px;"></tbody>
  562. </table>
  563. </div><!-- ----- end of dataTable_wrapper ----- -->
  564. </div><!-- ----- end of panel-body ----- -->
  565. </div><!-- ----- end of panel panel-default ----- -->
  566. </div><!-- ----- end of col-lg-12 ----- -->
  567. </div>
  568. <!-- ----- 發票記錄(結束) ----- -->
  569. <?php /* ----- 臨停未結清單 ----- */?>
  570. <div data-items="cario_temp_not_finished_query_all" class="row" style="display:none;">
  571. <div class="col-lg-12">
  572. <div class="panel panel-default">
  573. <div class="panel-heading">
  574. 臨停未結清單 (2017-02-01 00:00:00 進場 ~ 至 <span id='altob_current_time_str'></span>)
  575. </div>
  576. <!-- /.panel-heading -->
  577. <div class="panel-body">
  578. <div class="dataTable_wrapper">
  579. <table class="table table-striped table-bordered table-hover">
  580. <thead>
  581. <tr>
  582. <th style="text-align:left;">代號</th>
  583. <th style="text-align:left;">車牌號碼</th>
  584. <th style="text-align:center;">進場時間</th>
  585. <th style="text-align:center;">最後付款時間</th>
  586. <th style="text-align:center;">限時離場時間</th>
  587. <th style="text-align:center;">功能</th>
  588. </tr>
  589. </thead>
  590. <tbody id="cario_temp_not_finished_query_all" style="font-size:18px;"></tbody>
  591. </table>
  592. </div><?php /* ----- end of dataTable_wrapper ----- */?>
  593. </div><?php /* ----- end of panel-body ----- */?>
  594. </div><?php /* ----- end of panel panel-default ----- */?>
  595. </div><?php /* ----- end of col-lg-12 ----- */?>
  596. </div>
  597. <?php /* ----- 臨停未結清單(結束) ----- */?>
  598. </div>
  599. <!-- /#page-wrapper -->
  600. </div>
  601. <!-- /#wrapper -->
  602. <!-- 作為浮動顯示區之用 -->
  603. <div id="works" style="display:none;"></div>
  604. <!-- ----- 登入小框 ----- -->
  605. <div class="modal fade" id="login_dialog">
  606. <div class="modal-dialog modal-sm">
  607. <div class="modal-content">
  608. <div class="modal-header"><h3>登入</h3></div>
  609. <div class="modal-body">
  610. <form id="login_form" class="center-block" method="post" action="/admins_station.html/login_verify">
  611. <div class="main">
  612. <label>帳號</label>
  613. <div class="input-group">
  614. <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
  615. <input type="text" class="form-control" name="login_name" placeholder="請輸入帳號" autofocus />
  616. </div>
  617. <label>密碼</label>
  618. <div class="input-group">
  619. <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
  620. <input type="password" class="form-control" name="login_pswd" placeholder="請輸入密碼">
  621. </div>
  622. <div class="row"><br /></div>
  623. <div class="row">
  624. <div class="col-xs-6 col-md-6"></div>
  625. <div class="col-xs-6 col-md-6 pull-right">
  626. <button type="submit" class="btn btn-large btn-success pull-right">登入</button>
  627. </div>
  628. </div>
  629. </div>
  630. </form>
  631. </div><!-- end of modal-body -->
  632. </div><!-- end of modal-content -->
  633. </div><!-- end of modal-dialog -->
  634. </div><!-- end of modal show -->
  635. <!-- ----- 登入小框(結束) ----- -->
  636. <!-- ----- 會員時段表小框[修改或新增] ----- -->
  637. <div class="modal fade" id="pt_dialog">
  638. <!-- div class="modal-dialog modal-sm"-->
  639. <div class="modal-dialog">
  640. <div class="modal-content">
  641. <div class="modal-header"><h3>時段表</h3></div>
  642. <div class="modal-body">
  643. <form id="pt_form" class="center-block">
  644. <div class="main">
  645. <div class="dataTable_wrapper">
  646. <table class="table table-striped table-bordered table-hover">
  647. <thead>
  648. <tr>
  649. <th style="text-align:center;">選項</th>
  650. <th style="text-align:center;">代碼</th>
  651. <th style="text-align:left;">備註</th>
  652. </tr>
  653. </thead>
  654. <tbody id="pt_list" style="font-size:10px;"></tbody>
  655. </table>
  656. <button type="button" class="btn btn-large btn-success pull-left" onclick="$('#pt_dialog').modal('hide');">確定</button>
  657. &nbsp;&nbsp;
  658. <button type="button" class="btn btn-large btn-cancel" onclick="$('#pt_dialog').modal('hide');">取消</button>
  659. </div><!-- ----- end of dataTable_wrapper ----- -->
  660. </div><!-- ----- end of main ----- -->
  661. </form>
  662. </div><!-- end of modal-body -->
  663. </div><!-- end of modal-content -->
  664. </div><!-- end of modal-dialog -->
  665. </div><!-- end of modal show -->
  666. <!-- ----- 會員時段表小框[修改或新增](結束) ----- -->
  667. <!-- ----- 停車時段 ----- -->
  668. <div class="modal fade" id="park_time_dialog">
  669. <div class="modal-dialog modal-sm">
  670. <div class="modal-content">
  671. <div class="modal-header"><h3>停車時段</h3></div>
  672. <div class="modal-body">
  673. <form id="login_form" class="center-block" method="post" action="/admins_station.html/park_time_modify">
  674. <div class="main">
  675. <label>時段代碼</label>
  676. <div class="input-group">
  677. <input type="text" class="form-control" name="time_id" placeholder="請輸入時段代碼" autofocus />
  678. </div>
  679. <label>排序序號</label>
  680. <div class="input-group">
  681. <input type="text" class="form-control" name="seqno" placeholder="請輸入排序序號" />
  682. </div>
  683. <div class="row"><br /></div>
  684. <div class="row">
  685. <div class="col-xs-6 col-md-6"></div>
  686. <div class="col-xs-6 col-md-6 pull-right">
  687. <button type="submit" class="btn btn-large btn-success pull-left">存檔</button>
  688. <span class="button" data-dismiss="modal" aria-label="Close">&nbsp;&nbsp;
  689. <button type="button" class="btn btn-large btn-cancel">取消</button>
  690. </span>
  691. </div>
  692. </div>
  693. </div>
  694. </form>
  695. </div><!-- end of modal-body -->
  696. </div><!-- end of modal-content -->
  697. </div><!-- end of modal-dialog -->
  698. </div><!-- end of modal show -->
  699. <!-- ----- 停車時段(結束) ----- -->
  700. <!-- ----- 臨停未結確認小框 ----- -->
  701. <div class="modal fade" id="cario_temp_check_dialog">
  702. <div class="modal-dialog modal-sm">
  703. <div class="modal-content">
  704. <div class="modal-header"><h3>臨停未結查核作業</h3></div>
  705. <div class="modal-body">
  706. <form id="cario_temp_check_form" class="center-block">
  707. <div class="main">
  708. <div class="dataTable_wrapper">
  709. <table class="table table-striped table-bordered table-hover" style="font-size:12px;">
  710. <tbody id="cario_temp_check_list">
  711. <tr>
  712. <td style="text-align:right;">進場車號</td>
  713. <td style="text-align:left;" id="cario_temp_check_lpr"></td>
  714. </tr>
  715. <tr>
  716. <td style="text-align:right;">進場時間</td>
  717. <td style="text-align:left;" id="cario_temp_check_in_time"></td>
  718. </tr>
  719. <tr>
  720. <td style="text-align:right;">限時離場時間</td>
  721. <td style="text-align:left;" id="cario_temp_check_out_before_time"></td>
  722. </tr>
  723. <tr>
  724. <td style="text-align:right;">最後付款時間</td>
  725. <td style="text-align:left;" id="cario_temp_check_pay_time"></td>
  726. </tr>
  727. <tr>
  728. <td style="text-align:right;vertical-align:middle">臨停未結說明</td>
  729. <td style="text-align:left;"><input type="text" id="cario_temp_check_remarks" class="form-control" style="width:150px !important;" /></td>
  730. </tr>
  731. </tbody>
  732. </table>
  733. <button type="button" class="btn btn-large btn-success pull-left" onclick="do_cario_temp_check_ok();">確認完成</button>
  734. &nbsp;&nbsp;
  735. <button type="button" class="btn btn-large btn-cancel" onclick="$('#cario_temp_check_dialog').modal('hide');">取消</button>
  736. </div><!-- ----- end of dataTable_wrapper ----- -->
  737. </div><!-- ----- end of main ----- -->
  738. </form>
  739. </div><!-- end of modal-body -->
  740. </div><!-- end of modal-content -->
  741. </div><!-- end of modal-dialog -->
  742. </div><!-- end of modal show -->
  743. <!-- ----- 臨停未結確認小框 (結束) ----- -->
  744. <div id="works" style="display:none"></div>
  745. </body>
  746. </html>
  747. <script>
  748. function alertify_count_down($msg, $delay)
  749. {
  750. alertify.set({delay : $delay});
  751. alertify.log($msg);
  752. }
  753. function alertify_log($msg)
  754. {
  755. alertify.set({delay : 2000});
  756. alertify.log($msg);
  757. }
  758. function alertify_error($msg)
  759. {
  760. alertify.set({delay : 2000});
  761. alertify.error($msg);
  762. }
  763. function alertify_success($msg)
  764. {
  765. alertify.set({delay : 2000});
  766. alertify.success($msg);
  767. }
  768. function alertify_msg($msg)
  769. {
  770. alertify.set({ labels: {
  771. ok : "確定"
  772. } });
  773. alertify.alert($msg, function (e){
  774. // do nothing
  775. });
  776. }
  777. /*
  778. // 設定href, src, action的路徑及參數
  779. $("[data-src]").each(function()
  780. {
  781. arr = $(this).data("src").split("::");
  782. $(this).prop(arr[0], eval(arr[1])+arr[2]);
  783. });
  784. */
  785. // global var(共用陣列與變數)
  786. var week_name = Array("週日", "週一", "週二", "週三", "週四", "週五", "週六");
  787. var park_type = Array("", "一般", "非假日", "假日");
  788. // -- 顯示指定項目 --
  789. function show_item(tags, type)
  790. {
  791. // client.disconnect();
  792. // -- 新增月租資料, 設定初始值 --
  793. if (type == "member_add")
  794. {
  795. $("#member_list").html(""); // 清空member_list
  796. $("#member_list_all").html(""); // 清空member_list_all
  797. $("#ma_station_no").val("");
  798. $("#ma_lpr").val("").prop("readonly",false); // 2017-02-13 updated
  799. $("#ma_old_lpr").val("").prop("readonly",false); // 2017-02-13 updated
  800. $("#ma_etag").val("");
  801. $("#ma_demonth_start_date").val("").prop("disabled",false);
  802. // 禁止直接輸入到期日
  803. $("#ma_demonth_end_date").val("").prop("disabled",true);
  804. $("#ma_start_date").val("").prop("disabled",true);
  805. $("#ma_end_date").val("").prop("disabled",true);
  806. $("#ma_demonth_start_date_done").val("");
  807. $("#ma_demonth_end_date_done").val("");
  808. $("#ma_start_date_done").val("");
  809. $("#ma_end_date_done").val("");
  810. //$("#ma_fee_period1_done").val("");
  811. //$("#ma_fee_period_done").val("");
  812. //$("#ma_member_attr_done").val("");
  813. $("#ma_member_name").val("");
  814. $("#ma_member_id").val("");
  815. $("#ma_mobile_no").val("");
  816. $("#ma_deposit").val("").prop("readonly",true);
  817. $("#ma_amt1").val("").prop("readonly",true);
  818. $("#ma_amt").val("").prop("readonly",true);
  819. $("#ma_member_no").val("0");
  820. $("#ma_member_company_no").val("");
  821. $("#member_data_type").html("新增會員資料");
  822. // 設定以上三個item的第一個項目為選項預設值
  823. $("#member_attr")[0].selectedIndex = 0;
  824. $("#fee_period1")[0].selectedIndex = 0;
  825. $("#fee_period")[0].selectedIndex = 0;
  826. $("#member_attr").prop("disabled",false);
  827. $("#fee_period1").prop("disabled",false);
  828. $("#fee_period").prop("disabled",false);
  829. $('input:checkbox.pt_id_checkbox').prop("disabled",false);
  830. }
  831. else if (type == "member_switch")
  832. {
  833. // 繳期修改
  834. $("#member_attr").prop("disabled",false);
  835. $("#fee_period1").prop("disabled",true);
  836. $("#fee_period").prop("disabled",false);
  837. $('input:checkbox.pt_id_checkbox').prop("disabled",false);
  838. }
  839. else
  840. {
  841. $("#member_attr").prop("disabled",true);
  842. $("#fee_period1").prop("disabled",true);
  843. $("#fee_period").prop("disabled",true);
  844. $('input:checkbox.pt_id_checkbox').prop("disabled",true);
  845. }
  846. $("#amt_tot_view").hide();
  847. $("#amt_accrued_view").hide();
  848. //$("#ma_contract_no").hide();
  849. $("#amt1_max_view").hide();
  850. $("#amt2_max_view").hide();
  851. switch(tags)
  852. {
  853. // -- 費率總覽 --
  854. case "price_plan_query_all":
  855. $("#price_plan_list").html("");<?php /* 清除原內容 */ ?>
  856. $.ajax
  857. ({
  858. url: "<?=APP_URL?>price_plan_query_all",
  859. type: "post",
  860. dataType:"json",
  861. data: {},
  862. success: function(jdata)
  863. {
  864. var member_list = [];
  865. for(idx in jdata)
  866. {
  867. txid = jdata[idx]['txid'];
  868. member_list = member_list.concat(["<tr><td style='text-align:left;'>", st[jdata[idx]['station_no']], "</td>"]);
  869. var price_plan_content = [];
  870. if(jdata[idx]['tx_type'] == 0)
  871. {
  872. price_plan_name = "臨停費率";
  873. //jdata[idx]['price_plan'];
  874. }
  875. else
  876. {
  877. price_plan_name = "月租費率";
  878. target = JSON.parse(jdata[idx]['price_plan']);
  879. Object.keys(target)
  880. .sort(
  881. function(a,b){
  882. attr_a = a.split('_');
  883. attr_b = b.split('_');
  884. if(parseInt(attr_a[0], 10) > parseInt(attr_b[0], 10)) return 1;
  885. if(parseInt(attr_a[0], 10) < parseInt(attr_b[0], 10)) return -1;
  886. if(parseInt(attr_a[1], 10) > parseInt(attr_b[1], 10)) return 1;
  887. if(parseInt(attr_a[1], 10) < parseInt(attr_b[1], 10)) return -1;
  888. return 0;
  889. }
  890. )
  891. .forEach(function(k, i)
  892. {
  893. //console.log(k, target[k]);
  894. period_idx = k.split("_")[0];
  895. mem_idx = k.split("_")[1];
  896. if(k == '0_0')
  897. {
  898. price_plan_content = price_plan_content.concat(['*月租押金:', target[k], ' 元']);
  899. }
  900. else if(mem_idx == '0')
  901. {
  902. idx_period_name = (period_name[period_idx] == undefined) ? '繳期 ' + period_idx : period_name[period_idx];
  903. price_plan_content = price_plan_content.concat(['<br/> * [ ', idx_period_name, ' : ', target[k], ' 天 ] ']);
  904. }
  905. else
  906. {
  907. idx_mem_attr = (mem_attr[mem_idx] == undefined) ? '?? (' + mem_idx + ')': mem_attr[mem_idx];
  908. price_plan_content = price_plan_content.concat([' > ', idx_mem_attr, ":", target[k], ' 元 ']);
  909. }
  910. price_plan_content = price_plan_content.concat(['<br/>']);
  911. });
  912. }
  913. member_list = member_list.concat(["<td style='color:green;text-align:center;' id='tx_type_", txid, "'>", price_plan_name ,"</td>"]);
  914. member_list = member_list.concat(["<td style='color:blue;text-align:left;' id='price_plan_", txid, "'>", price_plan_content.join('') , "</td>"]);
  915. member_list = member_list.concat(["<td style='color:green;text-align:left;' id='remarks_", txid, "'>", jdata[idx]['remarks'], "</td>"]);
  916. member_list = member_list.concat(["<td id='start_time_", txid, "' style='text-align:center;'>", jdata[idx]['start_time'], "</td>"]);
  917. member_list = member_list.concat(["<td id='valid_time_", txid, "' style='text-align:center;'>", jdata[idx]['valid_time'], "</td>"]);
  918. member_list = member_list.concat(["</tr>"]);
  919. }
  920. $("#price_plan_list").append(member_list.join(''));
  921. }
  922. });
  923. break;
  924. // -- 會員總覽 --
  925. case "member_query_all":
  926. $("#member_list_all").html("");<?php /* 清除原內容 */ ?>
  927. $.ajax
  928. ({
  929. url: "<?=APP_URL?>member_query_all",
  930. type: "post",
  931. dataType:"json",
  932. data: {},
  933. success: function(jdata)
  934. {
  935. var member_list = [];
  936. for(idx in jdata)
  937. {
  938. mno = jdata[idx]['member_no'];
  939. member_list = member_list.concat([
  940. "<tr><td id='member_query_all_lpr_", mno, "' style='text-align:left; '>", jdata[idx]['lpr'], "</td>",
  941. "<td id='name_", mno, "' style='text-align:left; '>", jdata[idx]['member_name'], "</td>",
  942. "<td id='mobile_", mno, "' style='text-align:center; '>", jdata[idx]['mobile_no'], "</td>",
  943. "<td id='sdate_", mno, "' style='text-align:center; '>", jdata[idx]['start_date'], "</td>",
  944. "<td id='edate_", mno, "' style='text-align:center; '>", jdata[idx]['end_date'], "</td>",
  945. "<td id='fee_period_", mno, "' style='text-align:center; '>", period_name[jdata[idx]['fee_period']], "</td>",
  946. "<td id='member_attr_", mno, "' style='text-align:center; '>", mem_attr[jdata[idx]['member_attr']], "</td>",
  947. //"<td id='contract_", mno, "' style='text-align:center; '>", jdata[idx]['contract_no'], "</td>",
  948. //"<td id='etag_", mno, "' style='text-align:center; '>", jdata[idx]['etag'], "</td>",
  949. //"<td id='amt_", mno, "' style='text-align:center; '>", jdata[idx]['amt'], "</td>",
  950. //"<td style='text-align:center, '><select id='sel_", mno, "' onChange='member_modify(", mno, "); '><option value='choice'>請選擇</option><option value='modify'>修改</option><option value='delete'>刪除</option></select></td>",
  951. //"</tr>"
  952. ]);
  953. if(jdata[idx]['suspended'] == "1")
  954. {
  955. member_list = member_list.concat(["<td style='text-align:center;'><input type='checkbox' checked id='suspended_", mno, "' disabled/></td>"]);
  956. }
  957. else
  958. {
  959. member_list = member_list.concat(["<td style='text-align:center;'><input type='checkbox' id='suspended_", mno, "' disabled/></td>"]);
  960. }
  961. /*
  962. if(jdata[idx]['verify_state'] == 0)
  963. {
  964. member_list = member_list.concat(["<td style='color:red;text-align:center;' id='verify_state_", mno, "'><button class='btn btn-default' onclick='member_tx_check(0);'>待審核</button></td>"]);
  965. }
  966. else if(jdata[idx]['verify_state'] == 1)
  967. {
  968. member_list = member_list.concat(["<td style='color:green;text-align:center;' id='verify_state_", mno, "'>審核通過</td>"]);
  969. }
  970. else
  971. {
  972. member_list = member_list.concat(["<td style='color:blue;text-align:center;' id='verify_state_", mno, "'><button class='btn btn-default' style='color:blue;' onclick='member_tx_check(0);'>未通過</button></td>"]);
  973. }
  974. */
  975. if(jdata[idx]['valid_time'] < jdata[idx]['end_date'])
  976. {
  977. //member_list = member_list.concat(["<td style='color:red;text-align:left;' id='valid_time_", mno, "'>", jdata[idx]['valid_time'], "</td>"]);
  978. member_list = member_list.concat(["<td style='color:red;text-align:center;' id='valid_time_", mno, "'><button class='btn' style='color:red;' onclick='member_tx_check(0);'>將於 ", jdata[idx]['valid_time'], " 到期</button></td>"]);
  979. }
  980. else
  981. {
  982. member_list = member_list.concat(["<td style='color:green;text-align:left;' id='valid_time_", mno, "'>結束日 ", jdata[idx]['end_date'], " 到期</td>"]);
  983. }
  984. //member_list = member_list.concat(["<td style='color:blue;text-align:center;' id='remarks_", mno, "'>", jdata[idx]['remarks'], "</td>"]);
  985. member_list = member_list.concat(["</tr>"]);
  986. }
  987. $("#member_list_all").append(member_list.join(''));
  988. }
  989. });
  990. break;
  991. // -- 審核總覽 --
  992. case "member_tx_check_query":
  993. $("#member_tx_check").html(""); // -- 清除原內容 --
  994. $.ajax
  995. ({
  996. url: "<?=APP_URL?>member_tx_check_query",
  997. type: "post",
  998. dataType:"json",
  999. data: {},
  1000. success:function(jdata)
  1001. {
  1002. var member_list = ["<tr>"];
  1003. for(idx in jdata)
  1004. {
  1005. tx_no = jdata[idx]['tx_no'];
  1006. member_list = member_list.concat(["<td style='text-align:center;'>", tx_no, "</td>"]);
  1007. //member_list = member_list.concat(["<td style='text-align:center;'>", st[jdata[idx]['station_no']], "</td>"]);
  1008. member_list = member_list.concat(["<td id='acc_date_", tx_no, "' style='text-align:center;'>", jdata[idx]['acc_date'], "</td>"]);
  1009. member_list = member_list.concat(["<td id='member_tx_lpr_", tx_no,
  1010. "' data-station_no='", jdata[idx]['station_no'],
  1011. "' data-member_no='", jdata[idx]['member_no'],
  1012. "' data-tx_no='", jdata[idx]['tx_no'],
  1013. "' data-member_company_no='", jdata[idx]['member_company_no'],
  1014. "' data-company_no='", jdata[idx]['company_no'],
  1015. "' data-amt='", jdata[idx]['amt'],
  1016. "' data-amt1='", jdata[idx]['amt1'],
  1017. "' data-deposit='", jdata[idx]['deposit'],
  1018. "' data-start_date_last='", jdata[idx]['start_date_last'],
  1019. "' data-end_date='", jdata[idx]['end_date'],
  1020. "' data-lpr='", jdata[idx]['lpr'],
  1021. "' data-fee_period='", jdata[idx]['fee_period'],
  1022. "' style='text-align:left;'>", jdata[idx]['lpr'], "</td>"]);
  1023. if(jdata[idx]['current_lpr'])
  1024. {
  1025. member_list = member_list.concat(["<td id='current_lpr_", tx_no, "' style='text-align:center;'>", jdata[idx]['current_lpr'], "</td>"]);
  1026. }
  1027. else
  1028. {
  1029. member_list = member_list.concat(["<td id='current_lpr_", tx_no, "' style='text-align:center;'>已刪除</td>"]);
  1030. }
  1031. member_list = member_list.concat(["<td id='sdate_last_", tx_no, "' style='text-align:center;'>", jdata[idx]['start_date_last'], "</td>"]);
  1032. member_list = member_list.concat(["<td id='fee_period_last_", tx_no, "' style='text-align:center;'>", period_name[jdata[idx]['fee_period_last']], "</td>"]);
  1033. member_list = member_list.concat(["<td id='edate_last_", tx_no, "' style='text-align:center;'>", jdata[idx]['end_date_last'], "</td>"]);
  1034. member_list = member_list.concat(["<td id='amt_last_", tx_no, "' style='text-align:center;'>", jdata[idx]['amt_last'], "</td>"]);
  1035. member_list = member_list.concat(["<td id='fee_period_", tx_no, "' style='text-align:center;'>", period_name[jdata[idx]['fee_period']], "</td>"]);
  1036. member_list = member_list.concat(["<td id='sdate_", tx_no, "' style='text-align:center;'>", jdata[idx]['start_date'], "</td>"]);
  1037. member_list = member_list.concat(["<td id='edate_", tx_no, "' style='text-align:center;'>", jdata[idx]['end_date'], "</td>"]);
  1038. member_list = member_list.concat(["<td id='amt_", tx_no, "' style='text-align:center;'>", jdata[idx]['amt'], "</td>"]);
  1039. //member_list = member_list.concat(["<td style='text-align:center;'><button class='btn btn-default' onclick='show_member_tx_bill(", tx_no ,");'>瀏覽</button></td>"]);
  1040. if(jdata[idx]['tx_state'] == 4)
  1041. {
  1042. member_list = member_list.concat(["<td style='color:black;text-align:center;'>已退租</td>"]);
  1043. }
  1044. else if(jdata[idx]['tx_state'] == 44)
  1045. {
  1046. member_list = member_list.concat(["<td style='color:black;text-align:center;'>交易取消</td>"]);
  1047. }
  1048. else if(jdata[idx]['verify_state'] == 0)
  1049. {
  1050. member_list = member_list.concat(["<td style='color:red;text-align:center;'><button class='btn btn-default' style='color:red;' onclick='member_tx_check(", tx_no + ");'>待審核</button></td>"]);
  1051. }
  1052. else if(jdata[idx]['verify_state'] == 1)
  1053. {
  1054. member_list = member_list.concat(["<td style='color:green;text-align:center;'>已審核</td>"]);
  1055. }
  1056. else
  1057. {
  1058. member_list = member_list.concat(["<td style='color:red;text-align:center;'><button class='btn btn-default' style='color:blue;' onclick='member_tx_check(", tx_no + ");'>未通過</button></td>"]);
  1059. }
  1060. member_list = member_list.concat(["<td style='color:red;text-align:center;' id='valid_time_", tx_no, "'>", jdata[idx]['valid_time'], "</td>"]);
  1061. member_list = member_list.concat(["<td style='color:blue;text-align:left;' id='remarks_", tx_no, "'>", jdata[idx]['remarks'], "</td>"]);
  1062. member_list = member_list.concat(["</tr>"]);
  1063. }
  1064. $("#member_tx_check").append(member_list.join(''));
  1065. }
  1066. });
  1067. break;
  1068. // -- 臨停未結清單 --
  1069. case "cario_temp_not_finished_query_all":
  1070. $("#altob_current_time_str").text(moment(new Date()).format("YYYY-MM-DD HH:mm:ss"));
  1071. $("#cario_temp_not_finished_query_all").html(""); // -- 清除原內容 --
  1072. $.ajax
  1073. ({
  1074. url: "<?=APP_URL?>cario_temp_not_finished_query_all",
  1075. type: "post",
  1076. dataType:"json",
  1077. data:{"station_no":$("#station_select").val(), "q_item":'in_time', "q_str":'2017-02-01'},
  1078. success:function(jdata)
  1079. {
  1080. var cario_temp_list = ["<tr>"];
  1081. for(idx in jdata)
  1082. {
  1083. cario_no = jdata[idx]['cario_no'];
  1084. cario_temp_list = cario_temp_list.concat(["<td style='text-align:left;'>", cario_no, "</td>"]);
  1085. cario_temp_list = cario_temp_list.concat(["<td id='cario_temp_not_finished_query_all_lpr_", cario_no,
  1086. "' data-station_no='", jdata[idx]['station_no'],
  1087. "' data-cario_no='", jdata[idx]['cario_no'],
  1088. "' data-lpr='", jdata[idx]['lpr'],
  1089. "' data-in_time='", jdata[idx]['in_time'],
  1090. "' data-out_before_time='", jdata[idx]['out_before_time'],
  1091. "' data-pay_time='", jdata[idx]['pay_time'],
  1092. "' style='text-align:left;'>", jdata[idx]['lpr'], "</td>"]);
  1093. cario_temp_list = cario_temp_list.concat(["<td style='text-align:center;'>", jdata[idx]['in_time'], "</td>"]);
  1094. cario_temp_list = cario_temp_list.concat(["<td style='text-align:center;'>", jdata[idx]['pay_time'], "</td>"]);
  1095. cario_temp_list = cario_temp_list.concat(["<td style='text-align:center;'>", jdata[idx]['out_before_time'], "</td>"]);
  1096. cario_temp_list = cario_temp_list.concat(["<td style='color:red;text-align:center;'><button class='btn btn-default' style='color:red;' onclick='cario_temp_check(", cario_no + ");'>人工審核</button></td>"]);
  1097. cario_temp_list = cario_temp_list.concat(["</tr>"]);
  1098. }
  1099. $("#cario_temp_not_finished_query_all").append(cario_temp_list.join(''));
  1100. }
  1101. });
  1102. break;
  1103. // -- 退租交易清單 --
  1104. case "member_tx_refund_query":
  1105. load_page(tags);
  1106. break;
  1107. // -- 會員查詢, 並列出清單 --
  1108. case "member_query":
  1109. //$("#member_list").html(""); // -- 清除原內容 --
  1110. break;
  1111. // -- 交易查詢, 並列出清單 --
  1112. case "member_tx_query":
  1113. $("#member_tx_list").html(""); // -- 清除原內容 --
  1114. break;
  1115. // -- 發票查詢, 並列出清單 --
  1116. case "member_tx_bill_query":
  1117. $("#member_tx_bill_list").html(""); // -- 清除原內容 --
  1118. if (type == "ok")
  1119. {
  1120. show_member_tx_bill(0, '0,1,99', '100'); // 待開立 (未審核, 已審核, 審核未通過, 未開立發票)
  1121. }
  1122. else if (type == "more")
  1123. {
  1124. show_member_tx_bill(0, '', '1', '4'); // 待補開 (已退租, 待補開發票)
  1125. }
  1126. else if (type == "refund")
  1127. {
  1128. show_member_tx_bill(0, '', '2', '4'); // 待折讓 (已退租, 已開立發票)
  1129. }
  1130. break;
  1131. // -- 費率查詢, 並列出清單 --
  1132. case "price_plan_query_all":
  1133. $("#price_plan_list").html(""); // -- 清除原內容 --
  1134. break;
  1135. // 停車時段設定
  1136. case "park_time":
  1137. $.ajax
  1138. ({
  1139. url: APP_URL+"park_time",
  1140. type: "post",
  1141. dataType:"json",
  1142. data: {},
  1143. success: function(jdata)
  1144. {
  1145. var str = "";
  1146. for(idx in jdata)
  1147. {
  1148. pt_id = jdata[idx]['time_id'];
  1149. str += "<tr id='pt_"+pt_id+"' data-type='"+jdata[idx]['park_type']+"' data-week_start='"+jdata[idx]['week_start']+"' data-week_end='"+jdata[idx]['week_end']+"'>";
  1150. str += "<td id='pt_seqno_"+pt_id+"' style='text-align:center;'>"+jdata[idx]['seqno']+"</td>";
  1151. str += "<td id='pt_time_id_"+pt_id+"' style='text-align:center;'>"+pt_id+"</td>";
  1152. /*
  1153. str += "<td id='pt_park_type_"+pt_id+"' style='text-align:center;'>"+park_type[jdata[idx]['park_type']]+"</td>";
  1154. str += "<td id='pt_week_start_"+pt_id+"' style='text-align:center;'>"+week_name[jdata[idx]['week_start']]+"</td>";
  1155. str += "<td id='pt_week_end_"+pt_id+"' style='text-align:center;'>"+week_name[jdata[idx]['week_end']]+"</td>";
  1156. str += "<td id='pt_daytime_start_"+pt_id+"' style='text-align:center;'>"+jdata[idx]['daytime_start']+"</td>";
  1157. str += "<td id='pt_daytime_end_"+pt_id+"' style='text-align:center;'>"+jdata[idx]['daytime_end']+"</td>";
  1158. */
  1159. str += "<td id='pt_remarks_"+pt_id+"' style='text-align:left;'>"+jdata[idx]['remarks']+"</td>";
  1160. str += "<td style='text-align:center;'><select id='sel_park_time_"+pt_id+"' onclick='park_time_modify(\""+pt_id+"\");'><option value='choice'>請選擇</option><option value='modify'>修改</option><option value='delete'>刪除</option></select></td>";
  1161. str += "</tr>";
  1162. }
  1163. //$("#park_time_list").html("").append(str);
  1164. $("#park_time_list").html(str);
  1165. }
  1166. });
  1167. break;
  1168. case "check_point": // 關帳
  1169. $("#check_point_time").val(moment(new Date()).format("YYYY-MM-DD HH:mm:ss"));
  1170. $("#check_point_remarks").val("");
  1171. load_page(tags);
  1172. break;
  1173. case "check_point_report": // 關帳查詢
  1174. load_page(tags);
  1175. break;
  1176. case "invoice_open":
  1177. case "invoice_reprint":
  1178. case "invoice_cancel":
  1179. case "invoice_rows":
  1180. case "invoice_close":
  1181. load_page(tags);
  1182. break;
  1183. default:
  1184. $("#"+tags+"_list").html(""); // -- 清除原內容 --
  1185. break;
  1186. }
  1187. $("[data-items]").hide();
  1188. $("[data-items="+tags+"]").show();
  1189. return false;
  1190. }
  1191. // 載入頁面
  1192. function load_page(tags)
  1193. {
  1194. if ($("[data-items='"+tags+"']").length == 0) // 第一次loading
  1195. {
  1196. $.ajax
  1197. ({
  1198. url:APP_URL+"get_html",
  1199. async:false,
  1200. timeout:1500,
  1201. type:"post",
  1202. dataType:"text",
  1203. data:{"tag_name":tags,"company_no":company_no},
  1204. success:function(jdata)
  1205. {
  1206. $("#page-wrapper").append(jdata);
  1207. }
  1208. });
  1209. }
  1210. }
  1211. // 停車時段修改或刪除選項
  1212. function park_time_modify(park_time_id)
  1213. {
  1214. select_item = $("#sel_park_time_"+park_time_id).val();
  1215. switch(select_item)
  1216. {
  1217. case "choice": // -- 請選擇(忽略不處理) --
  1218. return false;
  1219. case "modify":
  1220. $("[name=time_id]").val($("#pt_time_id_"+park_time_id).text());
  1221. $("[name=seqno]").val($("#pt_seqno_"+park_time_id).text());
  1222. $("#park_time_dialog").modal
  1223. ({
  1224. backdrop:false,
  1225. keyboard:false
  1226. });
  1227. break;
  1228. case "delete":
  1229. if (!confirm("確定刪除嗎 ?")) return false;
  1230. $.ajax
  1231. ({
  1232. url:APP_URL+"park_time_delete",
  1233. type:"post",
  1234. dataType:"text",
  1235. data:{"time_id":park_time_id},
  1236. success:function(jdata)
  1237. {
  1238. if (jdata == "ok")
  1239. {
  1240. alertify_msg("刪除成功 !");
  1241. show_item("park_time", "");
  1242. }
  1243. }
  1244. });
  1245. break;
  1246. }
  1247. }
  1248. // 查核作業
  1249. function member_tx_check(tx_no)
  1250. {
  1251. alertify_msg("請通知總公司營管!<br/><br/>電話:02-27057716 分機 119<br/><br/>");
  1252. }
  1253. // 臨停未結確認
  1254. function cario_temp_check(cario_no)
  1255. {
  1256. var station_no = $("#cario_temp_not_finished_query_all_lpr_"+cario_no).data("station_no");
  1257. var lpr = $("#cario_temp_not_finished_query_all_lpr_"+cario_no).data("lpr");
  1258. var in_time = $("#cario_temp_not_finished_query_all_lpr_"+cario_no).data("in_time");
  1259. var pay_time = $("#cario_temp_not_finished_query_all_lpr_"+cario_no).data("pay_time");
  1260. var out_before_time = $("#cario_temp_not_finished_query_all_lpr_"+cario_no).data("out_before_time");
  1261. // 發票資訊
  1262. xvars["cario_temp_check"] = Array();
  1263. xvars["cario_temp_check"]["cario_no"] = cario_no;
  1264. xvars["cario_temp_check"]["station_no"] = station_no;
  1265. xvars["cario_temp_check"]["in_time"] = in_time;
  1266. xvars["cario_temp_check"]["pay_time"] = (pay_time == "") ? '未付款': pay_time;
  1267. xvars["cario_temp_check"]["out_before_time"] = out_before_time;
  1268. $("#cario_temp_check_lpr").text("").text(lpr);
  1269. $("#cario_temp_check_in_time").text("").text(in_time);
  1270. $("#cario_temp_check_pay_time").text("").text(pay_time);
  1271. $("#cario_temp_check_out_before_time").text("").text(out_before_time);
  1272. $("#cario_temp_check_remarks").text("");
  1273. $("#cario_temp_check_dialog").modal({backdrop:false,keyboard:false});
  1274. }
  1275. // 臨停未結確認完成
  1276. function do_cario_temp_check_ok()
  1277. {
  1278. if (!confirm("確認審核通過 ?")) return false;
  1279. var station_no = xvars["cario_temp_check"]["station_no"];
  1280. var cario_no = xvars["cario_temp_check"]["cario_no"];
  1281. var cario_temp_check_remarks = $("#cario_temp_check_remarks").val();
  1282. if (cario_temp_check_remarks == "")
  1283. {
  1284. alertify_msg("請說明原因,謝謝");
  1285. return false;
  1286. }
  1287. //alertify_msg("施工中..zzz");
  1288. //return false;
  1289. // 新增審核資訊
  1290. $.ajax
  1291. ({
  1292. url:APP_URL+"cario_temp_confirmed",
  1293. dataType:"text",
  1294. type:"post",
  1295. data:
  1296. {
  1297. "station_no": station_no,
  1298. "cario_no": cario_no,
  1299. "remarks": cario_temp_check_remarks
  1300. },
  1301. error:function(xhr, ajaxOptions, thrownError)
  1302. {
  1303. var error_msg = xhr.responseText ? xhr.responseText : "連線失敗, 請稍候再試";
  1304. alertify_msg(error_msg);
  1305. console.log("error:"+error_msg+"|"+ajaxOptions+"|"+thrownError);
  1306. },
  1307. success:function(jdata)
  1308. {
  1309. if (jdata == "ok")
  1310. {
  1311. alertify_msg("確認完成!");
  1312. show_item('cario_temp_not_finished_query_all', 'cario_temp_not_finished_query_all');
  1313. }
  1314. else if(jdata == "not_synced")
  1315. {
  1316. alertify_sync(station_no);
  1317. }
  1318. else if (jdata == "check_fail")
  1319. {
  1320. alertify_msg("操作失敗,已取消");
  1321. }
  1322. else
  1323. {
  1324. alertify_msg("操作失敗 !");
  1325. }
  1326. }
  1327. });
  1328. delete xvars["cario_temp_check"];
  1329. $('#cario_temp_check_dialog').modal('hide');
  1330. }
  1331. // 接續開立發票 (補開發票)
  1332. function next_refund_bill(tx_bill_no)
  1333. {
  1334. if (!confirm("建立下一張發票 ?")) return false;
  1335. var station_no = $("#tx_bill_lpr_"+tx_bill_no).data("station_no");
  1336. var member_no = $("#tx_bill_lpr_"+tx_bill_no).data("member_no");
  1337. var remain_amt = $("#tx_bill_lpr_"+tx_bill_no).data("remain_amt");
  1338. var tx_no = $("#tx_bill_lpr_"+tx_bill_no).data("tx_no");
  1339. if(remain_amt > 0)
  1340. {
  1341. // 尚餘金額繼續開立
  1342. xvars["rents"] = Array();
  1343. xvars["rents"]["tx_bill_no"] = tx_bill_no;
  1344. xvars["rents"]["tx_no"] = tx_no;
  1345. xvars["rents"]["station_no"] = station_no;
  1346. xvars["rents"]["member_no"] = member_no;
  1347. xvars["rents"]["remain_amt"] = parseInt(remain_amt);
  1348. //console.log(xvars["rents"]);
  1349. $.ajax
  1350. ({
  1351. url:APP_URL+"next_tx_bill",
  1352. type:"post",
  1353. dataType:"text",
  1354. data:{ "station_no":station_no, "tx_no":tx_no,
  1355. "tx_bill_no":tx_bill_no, "member_no":member_no,
  1356. "remain_amt":remain_amt},
  1357. success:function(jdata)
  1358. {
  1359. if (jdata == "ok")
  1360. {
  1361. alertify_msg("建立完成 ! ");
  1362. show_member_tx_bill(0, '', '1', '4'); // 待補開 (已退租, 待補開發票)
  1363. }
  1364. else if (jdata == "tx_error_not_found")
  1365. {
  1366. alertify_msg("異常:查無開立資訊");
  1367. }
  1368. else if (jdata == "tx_error_not_ready")
  1369. {
  1370. alertify_msg("操作錯誤:請先處理本期發票");
  1371. }
  1372. else if (jdata == "tx_error_next")
  1373. {
  1374. alertify_msg("異常:查無待開立資訊");
  1375. }
  1376. else
  1377. {
  1378. alertify_msg("請於 " + jdata + ",再建立新的發票");
  1379. }
  1380. }
  1381. });
  1382. }
  1383. else
  1384. {
  1385. // 各期月租發票補印
  1386. alertify_msg("流程異常:請通知總公司處理:" + tx_bill_no);
  1387. }
  1388. }
  1389. /*
  1390. function refund_invoice_more(tx_bill_no)
  1391. {
  1392. if (!confirm("確定補開發票 ?")) return false;
  1393. var station_no = $("#tx_bill_lpr_"+tx_bill_no).data("station_no");
  1394. var member_no = $("#tx_bill_lpr_"+tx_bill_no).data("member_no");
  1395. var invoice_amt = $("#tx_bill_lpr_"+tx_bill_no).data("invoice_amt");
  1396. var tx_no = $("#tx_bill_lpr_"+tx_bill_no).data("tx_no");
  1397. if(refund_amt > 0)
  1398. {
  1399. // 尚餘金額繼續開立
  1400. xvars["rents"] = Array();
  1401. xvars["rents"]["tx_bill_no"] = tx_bill_no;
  1402. xvars["rents"]["station_no"] = station_no;
  1403. xvars["rents"]["member_no"] = member_no;
  1404. xvars["rents"]["invoice_amt"] = parseInt(invoice_amt);
  1405. $.ajax
  1406. ({
  1407. url:APP_URL+"refund_invoice_more",
  1408. type:"post",
  1409. dataType:"text",
  1410. data:{ "station_no":station_no, "tx_no":tx_no,
  1411. "tx_bill_no":tx_bill_no, "member_no":member_no,
  1412. "refund_amt":refund_amt},
  1413. success:function(jdata)
  1414. {
  1415. if (jdata == "ok")
  1416. {
  1417. alertify_msg("補開完成 ! ");
  1418. show_member_tx_bill(0, '', '1', '4'); // 待補開 (已退租, 待補開發票)
  1419. }
  1420. else if (jdata == "tx_error_not_found")
  1421. {
  1422. alertify_msg("異常:查無開立資訊");
  1423. }
  1424. else if (jdata == "tx_error_not_ready")
  1425. {
  1426. alertify_msg("異常:查無發票資訊");
  1427. }
  1428. else
  1429. {
  1430. alertify_msg("異常:" + jdata);
  1431. }
  1432. }
  1433. });
  1434. }
  1435. else
  1436. {
  1437. // 各期月租發票補印
  1438. alertify_msg("流程異常:請通知總公司處理:" + tx_bill_no);
  1439. }
  1440. }
  1441. */
  1442. // 折讓發票
  1443. function refund_invoice_allowance(tx_bill_no)
  1444. {
  1445. if (!confirm("確定折讓發票 ?")) return false;
  1446. var station_no = $("#tx_bill_lpr_"+tx_bill_no).data("station_no");
  1447. var member_no = $("#tx_bill_lpr_"+tx_bill_no).data("member_no");
  1448. var refund_amt = $("#tx_bill_lpr_"+tx_bill_no).data("refund_amt");
  1449. var tx_no = $("#tx_bill_lpr_"+tx_bill_no).data("tx_no");
  1450. if(refund_amt > 0)
  1451. {
  1452. // 尚餘金額繼續開立
  1453. xvars["rents"] = Array();
  1454. xvars["rents"]["tx_bill_no"] = tx_bill_no;
  1455. xvars["rents"]["station_no"] = station_no;
  1456. xvars["rents"]["member_no"] = member_no;
  1457. xvars["rents"]["refund_amt"] = parseInt(refund_amt);
  1458. $.ajax
  1459. ({
  1460. url:APP_URL+"refund_invoice_allowance",
  1461. type:"post",
  1462. dataType:"text",
  1463. data:{ "station_no":station_no, "tx_no":tx_no,
  1464. "tx_bill_no":tx_bill_no, "member_no":member_no,
  1465. "refund_amt":refund_amt},
  1466. success:function(jdata)
  1467. {
  1468. if (jdata == "ok")
  1469. {
  1470. alertify_msg("折讓完成 ! ");
  1471. show_member_tx_bill(0, '', '2', '4'); // 待折讓 (已退租, 已開立發票)
  1472. }
  1473. else if (jdata == "tx_error_not_found")
  1474. {
  1475. alertify_msg("異常:查無開立資訊");
  1476. }
  1477. else if (jdata == "tx_error_not_ready")
  1478. {
  1479. alertify_msg("異常:查無發票資訊");
  1480. }
  1481. else
  1482. {
  1483. alertify_msg("異常:" + jdata);
  1484. }
  1485. }
  1486. });
  1487. }
  1488. else
  1489. {
  1490. // 各期月租發票補印
  1491. alertify_msg("流程異常:請通知總公司處理:" + tx_bill_no);
  1492. }
  1493. }
  1494. // 接續開立發票
  1495. function next_tx_bill(tx_bill_no)
  1496. {
  1497. if (!confirm("建立下一張發票 ?")) return false;
  1498. var station_no = $("#tx_bill_lpr_"+tx_bill_no).data("station_no");
  1499. var member_no = $("#tx_bill_lpr_"+tx_bill_no).data("member_no");
  1500. var remain_amt = $("#tx_bill_lpr_"+tx_bill_no).data("remain_amt");
  1501. var tx_no = $("#tx_bill_lpr_"+tx_bill_no).data("tx_no");
  1502. var invoice_state = $("#tx_bill_lpr_"+tx_bill_no).data("invoice_state");
  1503. if(remain_amt > 0)
  1504. {
  1505. // 尚餘金額繼續開立
  1506. xvars["rents"] = Array();
  1507. xvars["rents"]["tx_bill_no"] = tx_bill_no;
  1508. xvars["rents"]["tx_no"] = tx_no;
  1509. xvars["rents"]["station_no"] = station_no;
  1510. xvars["rents"]["member_no"] = member_no;
  1511. xvars["rents"]["remain_amt"] = parseInt(remain_amt);
  1512. //console.log(xvars["rents"]);
  1513. $.ajax
  1514. ({
  1515. url:APP_URL+"next_tx_bill",
  1516. type:"post",
  1517. dataType:"text",
  1518. data:{ "station_no":station_no, "tx_no":tx_no,
  1519. "tx_bill_no":tx_bill_no, "member_no":member_no,
  1520. "remain_amt":remain_amt},
  1521. success:function(jdata)
  1522. {
  1523. if (jdata == "ok")
  1524. {
  1525. alertify_msg("建立完成 ! ");
  1526. if(invoice_state == 1)
  1527. {
  1528. show_member_tx_bill(0, '', '1', '4'); // 待補開 (已退租)
  1529. }
  1530. else if(invoice_state == 2)
  1531. {
  1532. show_member_tx_bill(0, '', '2', '4'); // 待折讓 (已退租, 已開立發票)
  1533. }
  1534. else
  1535. {
  1536. show_member_tx_bill(tx_no);
  1537. }
  1538. }
  1539. else if (jdata == "tx_error_not_found")
  1540. {
  1541. alertify_msg("異常:查無開立資訊");
  1542. }
  1543. else if (jdata == "tx_error_not_ready")
  1544. {
  1545. alertify_msg("操作錯誤:請先處理本期發票");
  1546. }
  1547. else if (jdata == "tx_error_next")
  1548. {
  1549. alertify_msg("異常:查無待開立資訊");
  1550. }
  1551. else
  1552. {
  1553. alertify_msg("請於 " + jdata + ",再建立新的發票");
  1554. }
  1555. }
  1556. });
  1557. }
  1558. else
  1559. {
  1560. // 各期月租發票補印
  1561. alertify_msg("流程異常:請通知總公司處理:" + tx_bill_no);
  1562. }
  1563. }
  1564. // 待折讓 (已退租, 已開立發票)
  1565. function show_member_refund_allowance()
  1566. {
  1567. show_member_tx_bill(0, '', '2', '4');
  1568. }
  1569. // 待補開 (已退租)
  1570. function show_member_refund_more_invoice()
  1571. {
  1572. show_member_tx_bill(0, '', '1', '4');
  1573. }
  1574. // 發票開立記錄
  1575. function show_member_tx_bill(tx_no=0, verify_state_str='', invoice_state_str='', tx_state_str='', tx_bill_no =0, member_refund_id=0)
  1576. {
  1577. show_item("member_tx_bill_query", "member_tx_bill_query");
  1578. $.ajax
  1579. ({
  1580. url:APP_URL+"member_tx_bill_query",
  1581. type:"post",
  1582. dataType:"json",
  1583. data:{"station_no":station_no, "tx_no":tx_no, "verify_state_str":verify_state_str,
  1584. "invoice_state_str":invoice_state_str, "tx_state_str":tx_state_str,
  1585. "tx_bill_no":tx_bill_no, "member_refund_id":member_refund_id},
  1586. success:function(jdata)
  1587. {
  1588. var member_list = [["<tr>"]];
  1589. for(idx in jdata)
  1590. {
  1591. //console.log(jdata.length + " : " + idx + " , " + jdata[idx]['invoice_amt'] + " : " + jdata[idx]['remain_amt']);
  1592. tx_no = jdata[idx]['tx_no'];
  1593. member_list = member_list.concat(["<td style='text-align:left;'>", jdata[idx]['tx_no'], "_", jdata[idx]['tx_bill_no'], "</td>"]);
  1594. //member_list = member_list.concat(["<td style='text-align:left;'>", st[jdata[idx]['station_no']], "</td>"]);
  1595. member_list = member_list.concat(["<td id='acc_date_", tx_no, "' style='text-align:center;'>", jdata[idx]['acc_date'], "</td>"]);
  1596. member_list = member_list.concat(["<td id='tx_bill_lpr_", jdata[idx]['tx_bill_no'],
  1597. "' data-station_no='", jdata[idx]['station_no'],
  1598. "' data-member_no='", jdata[idx]['member_no'],
  1599. "' data-tx_bill_no='", jdata[idx]['tx_bill_no'],
  1600. "' data-tx_no='", jdata[idx]['tx_no'],
  1601. "' data-member_company_no='", jdata[idx]['member_company_no'],
  1602. "' data-company_no='", jdata[idx]['company_no'],
  1603. "' data-invoice_amt='", jdata[idx]['invoice_amt'],
  1604. "' data-remain_amt='", jdata[idx]['remain_amt'],
  1605. "' data-period_3_amt='", jdata[idx]['period_3_amt'],
  1606. "' data-amt='", jdata[idx]['amt'],
  1607. "' data-amt1='", jdata[idx]['amt1'],
  1608. "' data-deposit='", jdata[idx]['deposit'],
  1609. "' data-start_date_last='", jdata[idx]['start_date_last'],
  1610. "' data-end_date='", jdata[idx]['end_date'],
  1611. "' data-lpr='", jdata[idx]['lpr'],
  1612. "' data-fee_period='", jdata[idx]['fee_period'],
  1613. "' data-refund_amt='", jdata[idx]['refund_amt'],
  1614. "' data-invoice_state='", jdata[idx]['invoice_state'],
  1615. "' style='text-align:left;'>", jdata[idx]['lpr'], "</td>"]);
  1616. member_list = member_list.concat(["<td id='sdate_last_", tx_no, "' style='text-align:center;'>", jdata[idx]['start_date_last'], "</td>"]);
  1617. member_list = member_list.concat(["<td id='fee_period_last_", tx_no, "' style='text-align:center;'>", period_name[jdata[idx]['fee_period_last']], "</td>"]);
  1618. member_list = member_list.concat(["<td id='edate_last_", tx_no, "' style='text-align:center;'>", jdata[idx]['end_date_last'], "</td>"]);
  1619. member_list = member_list.concat(["<td id='amt_last_", tx_no, "' style='text-align:center;'>", jdata[idx]['amt_last'], "</td>"]);
  1620. member_list = member_list.concat(["<td id='fee_period_", tx_no, "' style='text-align:center;'>", period_name[jdata[idx]['fee_period']], "</td>"]);
  1621. member_list = member_list.concat(["<td id='sdate_", tx_no, "' style='text-align:center;'>", jdata[idx]['start_date'], "</td>"]);
  1622. if(jdata[idx]['invoice_state'] == 1)
  1623. {
  1624. // 待補開
  1625. member_list = member_list.concat(["<td id='edate_", tx_no, "' style='text-align:center;'>指定退租日<br/>", jdata[idx]['end_date'], "</td>"]);
  1626. member_list = member_list.concat(["<td id='amt_", tx_no, "' style='text-align:center;'>補繳總金額<br/>", jdata[idx]['amt'], " 元</td>"]);
  1627. }
  1628. else if(jdata[idx]['invoice_state'] == 2)
  1629. {
  1630. // 待折讓
  1631. member_list = member_list.concat(["<td id='edate_", tx_no, "' style='text-align:center;'>指定退租日<br/>", jdata[idx]['end_date'], "</td>"]);
  1632. member_list = member_list.concat(["<td id='amt_", tx_no, "' style='text-align:center;'>折讓總金額<br/>", jdata[idx]['amt'], " 元</td>"]);
  1633. }
  1634. else
  1635. {
  1636. member_list = member_list.concat(["<td id='edate_", tx_no, "' style='text-align:center;'>", jdata[idx]['end_date'], "</td>"]);
  1637. member_list = member_list.concat(["<td id='amt_", tx_no, "' style='text-align:center;'>", jdata[idx]['amt'], " 元</td>"]);
  1638. }
  1639. // 是否已有發票
  1640. if(jdata[idx]['invoice_no'] > 0)
  1641. {
  1642. member_list = member_list.concat(["<td id='invoice_time_", tx_no, "' style='text-align:center;'>", jdata[idx]['invoice_time'], "</td>"]);
  1643. member_list = member_list.concat(["<td id='member_company_no_", tx_no, "' style='text-align:center;'>", jdata[idx]['member_company_no'], "</td>"]);
  1644. member_list = member_list.concat(["<td id='company_no_", tx_no, "' style='text-align:center;'>", jdata[idx]['company_no'], "</td>"]);
  1645. member_list = member_list.concat(["<td id='invoice_amt_", tx_no, "' style='text-align:center;'>", jdata[idx]['invoice_amt'], "</td>"]);
  1646. member_list = member_list.concat(["<td id='invoice_track_", tx_no, "' style='text-align:center;'>", jdata[idx]['invoice_track'], "</td>"]);
  1647. member_list = member_list.concat(["<td id='invoice_no_", tx_no, "' style='text-align:center;'>", jdata[idx]['invoice_no'], "</td>"]);
  1648. if(jdata[idx]['invoice_type'] == 0)
  1649. {
  1650. member_list = member_list.concat(["<td id='invoice_type_", tx_no, "' style='text-align:center;'>電子發票</td>"]);
  1651. }
  1652. else if(jdata[idx]['invoice_type'] == 1)
  1653. {
  1654. member_list = member_list.concat(["<td id='invoice_type_", tx_no, "' style='text-align:center;'>手開發票</td>"]);
  1655. }
  1656. else
  1657. {
  1658. member_list = member_list.concat(["<td id='invoice_type_", tx_no, "' style='text-align:center;'>異常</td>"]);
  1659. }
  1660. }
  1661. else
  1662. {
  1663. member_list = member_list.concat(["<td id='invoice_time_", tx_no, "' style='text-align:center;'>未開立</td>"]);
  1664. member_list = member_list.concat(["<td id='member_company_no_", tx_no, "' style='text-align:center;'>", jdata[idx]['member_company_no'], "</td>"]);
  1665. member_list = member_list.concat(["<td id='company_no_", tx_no, "' style='text-align:center;'>", jdata[idx]['company_no'], "</td>"]);
  1666. member_list = member_list.concat(["<td id='invoice_amt_", tx_no, "' style='text-align:center;'>", jdata[idx]['invoice_amt'], "</td>"]);
  1667. member_list = member_list.concat(["<td id='invoice_track_", tx_no, "' style='text-align:center;'></td>"]);
  1668. if(jdata[idx]['tx_state'] == 4 && jdata[idx]['invoice_state'] == 0)
  1669. {
  1670. // 已退租, 原先交易將不再開放開立
  1671. member_list = member_list.concat(["<td id='invoice_no_", tx_no, "' style='text-align:center;'></td>"]);
  1672. member_list = member_list.concat(["<td id='invoice_type_", tx_no, "' style='text-align:center;'></td>"]);
  1673. }
  1674. else
  1675. {
  1676. member_list = member_list.concat(["<td id='invoice_no_", tx_no, "' style='text-align:center;'><button class='btn btn-default' onclick='print_tx_invoice(", jdata[idx]['tx_bill_no'] ,");'>列印發票</button></td>"]);
  1677. member_list = member_list.concat(["<td id='invoice_type_", tx_no, "' style='text-align:center;'><button class='btn btn-default' onclick='hand_tx_invoice(", jdata[idx]['tx_bill_no'] ,");'>手開發票</button></td>"]);
  1678. }
  1679. }
  1680. //member_list = member_list.concat(["<td style='color:blue;text-align:center;' id='remarks_", jdata[idx]['tx_bill_no'], "'>", jdata[idx]['remarks'], "</td>"]);
  1681. if(jdata[idx]['tx_state'] == 4)
  1682. {
  1683. member_list = member_list.concat(["<td style='color:black;text-align:center;'>已退租</td>"]);
  1684. }
  1685. else if(jdata[idx]['tx_state'] == 44)
  1686. {
  1687. member_list = member_list.concat(["<td style='color:black;text-align:center;'>交易取消</td>"]);
  1688. }
  1689. else if(jdata[idx]['verify_state'] == 0)
  1690. {
  1691. member_list = member_list.concat(["<td style='color:red;text-align:center;'><button class='btn btn-default' style='color:red;' onclick='member_tx_check(", tx_no + ");'>待審核</button></td>"]);
  1692. }
  1693. else if(jdata[idx]['verify_state'] == 1)
  1694. {
  1695. member_list = member_list.concat(["<td style='color:green;text-align:center;'>已審核</td>"]);
  1696. }
  1697. else
  1698. {
  1699. member_list = member_list.concat(["<td style='color:red;text-align:center;'><button class='btn btn-default' style='color:blue;' onclick='member_tx_check(", tx_no + ");'>未通過</button></td>"]);
  1700. }
  1701. // 剩餘開立金額
  1702. if(jdata[idx]['invoice_state'] == 1)
  1703. {
  1704. // 待開立
  1705. if(jdata[idx]['remain_amt'] > 0)
  1706. {
  1707. member_list = member_list.concat(["<td style='text-align:center;'><button class='btn btn-default' onclick='next_refund_bill(", jdata[idx]['tx_bill_no'] ,");'>尚餘 ", jdata[idx]['remain_amt'] ," 元</button></td>"]);
  1708. }
  1709. else
  1710. {
  1711. member_list = member_list.concat(["<td style='text-align:center;'>無</td>"]);
  1712. }
  1713. }
  1714. else if(jdata[idx]['invoice_state'] == 2)
  1715. {
  1716. // 待折讓
  1717. if(jdata[idx]['refund_amt'] > 0)
  1718. {
  1719. member_list = member_list.concat(["<td style='text-align:center;'><button class='btn btn-default' onclick='refund_invoice_allowance(", jdata[idx]['tx_bill_no'] ,");'>待折讓 ", jdata[idx]['refund_amt'] ," 元</button></td>"]);
  1720. }
  1721. else
  1722. {
  1723. member_list = member_list.concat(["<td style='text-align:center;'>異常</td>"]);
  1724. }
  1725. }
  1726. else
  1727. {
  1728. // 待開立
  1729. if(jdata[idx]['remain_amt'] > 0)
  1730. {
  1731. if(jdata[idx]['tx_state'] == 4 && jdata[idx]['invoice_state'] == 0)
  1732. {
  1733. // 已退租, 原先交易將不再開放開立
  1734. member_list = member_list.concat(["<td style='text-align:center;'>尚餘 ", jdata[idx]['remain_amt'] ," 元</td>"]);
  1735. }
  1736. else
  1737. {
  1738. member_list = member_list.concat(["<td style='text-align:center;'><button class='btn btn-default' onclick='next_tx_bill(", jdata[idx]['tx_bill_no'] ,");'>尚餘 ", jdata[idx]['remain_amt'] ," 元</button></td>"]);
  1739. }
  1740. }
  1741. else
  1742. {
  1743. member_list = member_list.concat(["<td style='text-align:center;'>無</td>"]);
  1744. }
  1745. }
  1746. member_list = member_list.concat(["</tr>"]);;
  1747. }
  1748. $("#member_tx_bill_list").append(member_list.join(''));
  1749. }
  1750. });
  1751. }
  1752. // 顯示會員交易記錄
  1753. function show_member_tx(member_no)
  1754. {
  1755. $.ajax
  1756. ({
  1757. url:APP_URL+"member_tx_query",
  1758. type:"post",
  1759. dataType:"json",
  1760. data:{"station_no":station_no, "member_no":member_no},
  1761. success:function(jdata)
  1762. {
  1763. show_item("member_tx_query", "member_tx_query");
  1764. var member_list = ['<tr>'];
  1765. for(idx in jdata)
  1766. {
  1767. tx_no = jdata[idx]['tx_no'];
  1768. member_list = member_list.concat(["<td style='text-align:center;'>", tx_no, "</td>"]);
  1769. //member_list = member_list.concat(["<td style='text-align:left;'>", st[jdata[idx]['station_no']], "</td>"]);
  1770. member_list = member_list.concat(["<td id='acc_date_", tx_no, "' style='text-align:center;'>", jdata[idx]['acc_date'], "</td>"]);
  1771. member_list = member_list.concat(["<td id='show_member_tx_lpr_", tx_no,
  1772. "' data-station_no='", jdata[idx]['station_no'],
  1773. "' data-member_no='", jdata[idx]['member_no'],
  1774. "' data-tx_no='", jdata[idx]['tx_no'],
  1775. "' data-member_company_no='", jdata[idx]['member_company_no'],
  1776. "' data-company_no='", jdata[idx]['company_no'],
  1777. "' data-amt='", jdata[idx]['amt'],
  1778. "' data-amt1='", jdata[idx]['amt1'],
  1779. "' data-deposit='", jdata[idx]['deposit'],
  1780. "' data-start_date_last='", jdata[idx]['start_date_last'],
  1781. "' data-end_date='", jdata[idx]['end_date'],
  1782. "' data-lpr='", jdata[idx]['lpr'],
  1783. "' data-fee_period='", jdata[idx]['fee_period'],
  1784. "' style='text-align:left;'>", jdata[idx]['lpr'], "</td>"]);
  1785. member_list = member_list.concat(["<td id='sdate_last_", tx_no, "' style='text-align:center;'>", jdata[idx]['start_date_last'], "</td>"]);
  1786. member_list = member_list.concat(["<td id='fee_period_last_", tx_no, "' style='text-align:center;'>", period_name[jdata[idx]['fee_period_last']], "</td>"]);
  1787. member_list = member_list.concat(["<td id='edate_last_", tx_no, "' style='text-align:center;'>", jdata[idx]['end_date_last'], "</td>"]);
  1788. member_list = member_list.concat(["<td id='amt_last_", tx_no, "' style='text-align:center;'>", jdata[idx]['amt_last'], "</td>"]);
  1789. member_list = member_list.concat(["<td id='fee_period_", tx_no, "' style='text-align:center;'>", period_name[jdata[idx]['fee_period']], "</td>"]);
  1790. member_list = member_list.concat(["<td id='sdate_", tx_no, "' style='text-align:center;'>", jdata[idx]['start_date'], "</td>"]);
  1791. member_list = member_list.concat(["<td id='edate_", tx_no, "' style='text-align:center;'>", jdata[idx]['end_date'], "</td>"]);
  1792. member_list = member_list.concat(["<td id='amt_", tx_no, "' style='text-align:center;'>", jdata[idx]['amt'], "</td>"]);
  1793. member_list = member_list.concat(["<td style='text-align:center;'><button class='btn btn-default' onclick='show_member_tx_bill(", tx_no ,");'>瀏覽</button></td>"]);
  1794. if(jdata[idx]['tx_state'] == 4)
  1795. {
  1796. member_list = member_list.concat(["<td style='color:black;text-align:center;'>已退租</td>"]);
  1797. }
  1798. else if(jdata[idx]['tx_state'] == 44)
  1799. {
  1800. member_list = member_list.concat(["<td style='color:black;text-align:center;'>交易取消</td>"]);
  1801. }
  1802. else if(jdata[idx]['verify_state'] == 0)
  1803. {
  1804. member_list = member_list.concat(["<td style='color:red;text-align:center;'><button class='btn btn-default' style='color:red;' onclick='member_tx_check(", tx_no + ");'>待審核</button></td>"]);
  1805. }
  1806. else if(jdata[idx]['verify_state'] == 1)
  1807. {
  1808. member_list = member_list.concat(["<td style='color:green;text-align:center;'>已審核</td>"]);
  1809. }
  1810. else
  1811. {
  1812. member_list = member_list.concat(["<td style='color:red;text-align:center;'><button class='btn btn-default' style='color:blue;' onclick='member_tx_check(", tx_no + ");'>未通過</button></td>"]);
  1813. }
  1814. member_list = member_list.concat(["<td style='color:red;text-align:center;' id='valid_time_", tx_no, "'>", jdata[idx]['valid_time'], "</td>"]);
  1815. member_list = member_list.concat(["<td style='color:blue;text-align:left;' id='remarks_", tx_no, "'>", jdata[idx]['remarks'], "</td>"]);
  1816. member_list = member_list.concat(["<td style='text-align:center, '><select id='member_tx_sel_",tx_no,"' onChange='member_tx_modify(", tx_no, "); '><option value='choice'>請選擇</option><option value='cancel'>交易取消</option></select></td>"]);
  1817. member_list = member_list.concat(["</tr>"]);
  1818. }
  1819. $("#member_tx_list").append(member_list.join(''));
  1820. }
  1821. });
  1822. }
  1823. // 交易異動
  1824. function member_tx_modify(tx_no)
  1825. {
  1826. select_item = $("#member_tx_sel_"+tx_no).val();
  1827. $("#member_tx_sel_"+tx_no+" option[value='choice']").prop("selected", true);
  1828. switch(select_item)
  1829. {
  1830. case "cancel":
  1831. if (!confirm("確定取消這筆交易 ? \n\n[注意事項]\n**若為剛建立之會員,且交易尚未審核\n**將直接刪除會員資料!!")) return false;
  1832. var member_no = $("#show_member_tx_lpr_"+tx_no).data("member_no");
  1833. $.ajax
  1834. ({
  1835. url:APP_URL+"member_tx_cancel",
  1836. type:"post",
  1837. dataType:"text",
  1838. data:
  1839. {
  1840. "station_no": $("#show_member_tx_lpr_"+tx_no).data("station_no"),
  1841. "member_no": member_no,
  1842. "tx_no": tx_no
  1843. },
  1844. error:function(xhr, ajaxOptions, thrownError)
  1845. {
  1846. alertify_msg(xhr.responseText);
  1847. console.log("error:"+xhr.responseText+"|"+ajaxOptions+"|"+thrownError);
  1848. },
  1849. success:function(jdata)
  1850. {
  1851. if (jdata == "ok")
  1852. {
  1853. alertify_msg("交易已取消");
  1854. show_member_tx(member_no);
  1855. }
  1856. else if (jdata == "tx_error_not_found")
  1857. {
  1858. alertify_msg("查無資料");
  1859. }
  1860. else if (jdata == "member_not_found")
  1861. {
  1862. alertify_msg("查無會員");
  1863. }
  1864. else if (jdata == "tx_error_refuse")
  1865. {
  1866. alertify_msg("拒絕處理:請進行退租操作");
  1867. }
  1868. else if (jdata == "tx_error_not_last")
  1869. {
  1870. alertify_msg("拒絕處理:請由最新一筆交易開始操作");
  1871. }
  1872. else
  1873. {
  1874. alertify_msg("未知的錯誤");
  1875. }
  1876. }
  1877. });
  1878. break;
  1879. default: // -- 其餘選擇(忽略不處理) --
  1880. return false;
  1881. }
  1882. }
  1883. // 修改或刪除選項
  1884. function member_modify(member_no)
  1885. {
  1886. select_item = $("#sel_"+member_no).val();
  1887. $("#sel_"+member_no+" option[value='choice']").prop("selected", true);
  1888. switch(select_item)
  1889. {
  1890. // 交易記錄
  1891. case "tx_logs":
  1892. show_member_tx(member_no);
  1893. break;
  1894. // 繳租作業
  1895. case "rents":
  1896. // get data
  1897. xvars["rents"] = Array();
  1898. xvars["rents"]["station_no"] = $("#lpr_"+member_no).data("station_no");
  1899. xvars["rents"]["member_no"] = member_no;
  1900. xvars["rents"]["member_attr"] = $("#lpr_"+member_no).data("member_attr");
  1901. xvars["rents"]["lpr"] = $("#lpr_"+member_no).text();
  1902. xvars["rents"]["fee_period"] = $("#lpr_"+member_no).data("fee_period");
  1903. xvars["rents"]["member_company_no"] = $("#lpr_"+member_no).data("member_company_no");
  1904. xvars["rents"]["company_no"] = $("#lpr_"+member_no).data("company_no");
  1905. xvars["rents"]["fee_period_last"] = $("#lpr_"+member_no).data("fee_period_last");
  1906. xvars["rents"]["amt_last"] = $("#lpr_"+member_no).data("amt");//$("#amt_"+member_no).text();
  1907. xvars["rents"]["end_date_last"] = $("#edate_"+member_no).text();
  1908. // clean view
  1909. $("#rents_name").text("");
  1910. $("#rents_station_name").text("");
  1911. $("#rents_end_date_last").text("");
  1912. $("#rents_period").text("");
  1913. $("#rents_company_no").val("");
  1914. $("#rents_member_company_no").val("");
  1915. $("#rents_amt").text("");
  1916. $("#rents_end_date").text("");
  1917. // set view
  1918. $("#rents_name").text($("#lpr_"+member_no).data("member_name")+" ("+$("#lpr_"+member_no).data("lpr")+")");
  1919. $("#rents_station_name").text(st[xvars["rents"]["station_no"]]);
  1920. $("#rents_end_date_last").text($("#lpr_"+member_no).data("end_date")); // 上期到期日
  1921. $("#rents_period").text(period_name[xvars["rents"]["fee_period"]]);
  1922. $("#rents_company_no").val(xvars["rents"]["company_no"]); // 賣方統編
  1923. $("#rents_member_company_no").val(xvars["rents"]["member_company_no"]); // 買方統編
  1924. // 一律顯示作業框
  1925. $("#rents_dialog").modal({backdrop:false,keyboard:false});
  1926. // 取得目前租金費率
  1927. $.ajax
  1928. ({
  1929. url:APP_URL+"get_rents_json",
  1930. type:"post",
  1931. dataType:"json",
  1932. error:function(xhr, ajaxOptions, thrownError)
  1933. {
  1934. alertify_msg(xhr.responseText);
  1935. console.log("error:"+xhr.responseText+"|"+ajaxOptions+"|"+thrownError);
  1936. },
  1937. success:function(jdata)
  1938. {
  1939. //console.log('data:' + xvars["rents"]["fee_period"] + ', ' + xvars["rents"]["member_attr"]);
  1940. xvars["rents"]["amt"] = jdata[xvars["rents"]["fee_period"]][xvars["rents"]["member_attr"]];
  1941. if(xvars["rents"]["amt"] > 0)
  1942. $("#rents_amt").text(xvars["rents"]["amt"]); // 本期租金
  1943. else
  1944. $("#rents_amt").text("查無設定。。"); // 異常
  1945. }
  1946. });
  1947. // 繳租作業小框
  1948. $.ajax
  1949. ({
  1950. url:WEB_SERVICE, // 計算下期截止日
  1951. type:"post",
  1952. dataType:"text",
  1953. data:
  1954. {
  1955. "cmd":"last_date_next",
  1956. "last_date_curr":$("#lpr_"+member_no).data("end_date"),
  1957. "fee_period":$("#lpr_"+member_no).data("fee_period")
  1958. },
  1959. error:function(xhr, ajaxOptions, thrownError)
  1960. {
  1961. var error_msg = xhr.responseText ? xhr.responseText : "連線失敗, 請稍候再試";
  1962. alertify_msg(error_msg);
  1963. console.log("error:"+error_msg+"|"+ajaxOptions+"|"+thrownError);
  1964. },
  1965. success:function(jdata)
  1966. {
  1967. xvars["rents"]["end_date"] = jdata;
  1968. if(xvars["rents"]["end_date"])
  1969. $("#rents_end_date").text(xvars["rents"]["end_date"]); // 本期到期日
  1970. else
  1971. $("#rents_end_date").text("發生異常。。"); // 異常
  1972. }
  1973. });
  1974. break;
  1975. // 手開:繳租作業
  1976. case "hand_rents":
  1977. $.ajax
  1978. ({
  1979. url:WEB_SERVICE, // 計算下期截止日
  1980. type:"post",
  1981. dataType:"text",
  1982. data:
  1983. {
  1984. "cmd":"last_date_next",
  1985. "last_date_curr":$("#lpr_"+member_no).data("end_date"),
  1986. "fee_period":$("#lpr_"+member_no).data("fee_period")
  1987. },
  1988. error:function(xhr, ajaxOptions, thrownError)
  1989. {
  1990. var error_msg = xhr.responseText ? xhr.responseText : "連線失敗, 請稍候再試";
  1991. alertify_msg(error_msg);
  1992. console.log("error:"+error_msg+"|"+ajaxOptions+"|"+thrownError);
  1993. },
  1994. success:function(jdata)
  1995. {
  1996. xvars["rents"] = Array();
  1997. xvars["rents"]["station_no"] = $("#lpr_"+member_no).data("station_no");
  1998. xvars["rents"]["member_no"] = member_no;
  1999. xvars["rents"]["lpr"] = $("#lpr_"+member_no).data("lpr");
  2000. xvars["rents"]["fee_period"] = $("#lpr_"+member_no).data("fee_period");
  2001. xvars["rents"]["member_company_no"] = $("#lpr_"+member_no).data("member_company_no");
  2002. xvars["rents"]["company_no"] = $("#lpr_"+member_no).data("company_no");
  2003. xvars["rents"]["fee_period_last"] = $("#lpr_"+member_no).data("fee_period_last");
  2004. xvars["rents"]["amt_last"] = $("#lpr_"+member_no).data("amt");//$("#amt_"+member_no).text();
  2005. xvars["rents"]["amt"] = xvars["rents"]["amt_last"];
  2006. xvars["rents"]["start_date"] = $("#lpr_"+member_no).data("start_date");
  2007. xvars["rents"]["end_date_last"] = $("#lpr_"+member_no).data("end_date");
  2008. xvars["rents"]["end_date"] = jdata;
  2009. $("#hand_rents_name").text($("#lpr_"+member_no).data("member_name")+" ("+$("#lpr_"+member_no).data("lpr")+")");
  2010. $("#hand_rents_station_name").text(st[xvars["rents"]["station_no"]]);
  2011. $("#hand_rents_end_date_last").text($("#lpr_"+member_no).data("end_date")); // 上期到期日
  2012. $("#hand_rents_end_date").text(xvars["rents"]["end_date"]); // 本期到期日
  2013. $("#hand_rents_period").text(period_name[xvars["rents"]["fee_period"]]);
  2014. $("#hand_rents_amt").text(xvars["rents"]["amt"]);
  2015. $("#hand_rents_amt_tot").text(xvars["rents"]["amt"]);
  2016. $("#hand_rents_company_no").val(xvars["rents"]["company_no"]); // 賣方統編
  2017. if(xvars["rents"]["member_company_no"] == 0 || xvars["rents"]["member_company_no"] == '')
  2018. {
  2019. $("#hand_rents_member_company_no").val("");
  2020. }
  2021. else
  2022. {
  2023. $("#hand_rents_member_company_no").val(xvars["rents"]["member_company_no"]); // 買方統編
  2024. }
  2025. $("#hand_rents_dialog").modal({backdrop:false,keyboard:false});
  2026. }
  2027. });
  2028. break;
  2029. // 修改作業
  2030. case "modify":
  2031. $("#station_no_modify").val($("#lpr_"+member_no).data("station_no"));
  2032. $("#ma_station_no").val($("#lpr_"+member_no).data("station_no"));
  2033. //$("#ma_lpr").val($("#lpr_"+member_no).data("lpr"));
  2034. //$("#ma_old_lpr").val($("#lpr_"+member_no).data("lpr"));
  2035. $("#ma_lpr").val($("#lpr_"+member_no).data("lpr")).prop("readonly",true); // 2017-02-13 updated
  2036. $("#ma_old_lpr").val($("#lpr_"+member_no).data("lpr")).prop("readonly",true); // 2017-02-13 updated
  2037. $("#ma_etag").val($("#lpr_"+member_no).data("etag"));
  2038. $("#ma_member_id").val($("#lpr_"+member_no).data("member_id"));
  2039. $("#ma_member_company_no").val($("#lpr_"+member_no).data("member_company_no"));
  2040. $("#ma_tel_o").val($("#lpr_"+member_no).data("tel_o"));
  2041. $("#ma_tel_h").val($("#lpr_"+member_no).data("tel_h"));
  2042. $("#ma_addr").val($("#lpr_"+member_no).data("addr"));
  2043. $("#ma_member_name").val($("#lpr_"+member_no).data("member_name"));
  2044. if( $("#lpr_"+member_no).data("demonth_start_date") == null &&
  2045. $("#lpr_"+member_no).data("demonth_end_date") == null &&
  2046. $("#lpr_"+member_no).data("rent_start_date") == null)
  2047. {
  2048. $("#ma_demonth_start_date").val($("#lpr_"+member_no).data("start_date")).prop("disabled",true); // 只有起訖時間的情況
  2049. }
  2050. else
  2051. {
  2052. $("#ma_demonth_start_date").val($("#lpr_"+member_no).data("demonth_start_date")).prop("disabled",true);
  2053. }
  2054. $("#ma_demonth_end_date").val($("#lpr_"+member_no).data("demonth_end_date")).prop("disabled",true);
  2055. $("#ma_start_date").val($("#lpr_"+member_no).data("rent_start_date")).prop("disabled",true);
  2056. $("#ma_end_date").val($("#lpr_"+member_no).data("end_date")).prop("disabled",true);
  2057. $("#ma_demonth_start_date_done").val($("#lpr_"+member_no).data("demonth_start_date"));
  2058. $("#ma_demonth_end_date_done").val($("#lpr_"+member_no).data("demonth_end_date"));
  2059. $("#ma_start_date_done").val($("#lpr_"+member_no).data("rent_start_date"));
  2060. $("#ma_end_date_done").val($("#lpr_"+member_no).data("end_date"));
  2061. //$("#ma_fee_period1_done").val($("#lpr_"+member_no).data("fee_period1"));
  2062. //$("#ma_fee_period_done").val($("#lpr_"+member_no).data("fee_period"));
  2063. //$("#ma_member_attr_done").val($("#lpr_"+member_no).data("member_attr"));
  2064. $("#ma_member_name").val($("#lpr_"+member_no).data("member_name"));
  2065. $("#ma_mobile_no").val($("#lpr_"+member_no).data("mobile_no"));
  2066. $("#ma_contract_no").val($("#lpr_"+member_no).data("contract_no"));
  2067. $("#ma_deposit").val($("#lpr_"+member_no).data("deposit")).prop("readonly",true);
  2068. $("#ma_amt1").val($("#lpr_"+member_no).data("amt1")).prop("readonly",true);
  2069. //$("#ma_amt").val($("#amt_"+member_no).text()).prop("readonly",true);
  2070. $("#ma_amt").val($("#lpr_"+member_no).data("amt")).prop("readonly",true);
  2071. $("#ma_member_no").val(member_no);
  2072. $("#fee_period1 option[value='"+$("#lpr_"+member_no).data("fee_period1")+"']").prop("selected", "selected");
  2073. $("#fee_period option[value='"+$("#lpr_"+member_no).data("fee_period")+"']").prop("selected", "selected");
  2074. $("#member_attr option[value='"+$("#lpr_"+member_no).data("member_attr")+"']").prop("selected", "selected");
  2075. $("#member_data_type").html("修改會員資料</button>");
  2076. $("input[id^=pt_id_]").prop("checked",false); // 全部取消勾
  2077. arr = $("#lpr_"+member_no).data("pt_id").split(",");
  2078. for(idx in arr)
  2079. {
  2080. $("#pt_id_"+arr[idx]).prop("checked",true);
  2081. }
  2082. show_item("member_add", "member_modify");
  2083. break;
  2084. case "switch":
  2085. alertify_msg("請通知總公司營管!<br/><br/>電話:02-27057716 分機 119<br/><br/>");
  2086. break;
  2087. case "stop":
  2088. xvars["rents"] = Array();
  2089. xvars["rents"]["station_no"] = $("#lpr_"+member_no).data("station_no");
  2090. xvars["rents"]["member_no"] = member_no;
  2091. xvars["rents"]["member_attr"] = $("#lpr_"+member_no).data("member_attr");
  2092. xvars["rents"]["lpr"] = $("#lpr_"+member_no).data("lpr");
  2093. xvars["rents"]["fee_period"] = $("#lpr_"+member_no).data("fee_period");
  2094. xvars["rents"]["member_company_no"] = $("#lpr_"+member_no).data("member_company_no");
  2095. xvars["rents"]["company_no"] = $("#lpr_"+member_no).data("company_no");
  2096. xvars["rents"]["fee_period_last"] = $("#lpr_"+member_no).data("fee_period_last");
  2097. xvars["rents"]["amt_last"] = $("#lpr_"+member_no).data("amt");//$("#amt_"+member_no).text();
  2098. xvars["rents"]["amt"] = xvars["rents"]["amt_last"];
  2099. xvars["rents"]["end_date_last"] = $("#lpr_"+member_no).data("end_date");
  2100. $("#stop_rents_name").text("").text($("#lpr_"+member_no).data("member_name")+" ("+$("#lpr_"+member_no).data("lpr")+")");
  2101. $("#stop_rents_station_name").text("").text(st[xvars["rents"]["station_no"]]);
  2102. /*
  2103. console.log(
  2104. 'demonth_start_date: ' + $("#lpr_"+member_no).data("demonth_start_date") +
  2105. ', demonth_end_date:' + $("#lpr_"+member_no).data("demonth_end_date") +
  2106. ', rent_start_date:' + $("#lpr_"+member_no).data("rent_start_date") +
  2107. ', fee_period:' + $("#lpr_"+member_no).data("fee_period") + ', fee_period1:' + $("#lpr_"+member_no).data("fee_period1") +
  2108. ', amt:' + $("#lpr_"+member_no).data("amt") + ', amt1:' + $("#lpr_"+member_no).data("amt1")
  2109. );
  2110. */
  2111. $("#stop_rents_tot_amt").text(""); // clean
  2112. $("#stop_rents_end_date").val(""); // clean
  2113. $("#stop_rents_desc").html("請指定 [退租日]");
  2114. $("#stop_rents_end_date_last").text("").text($("#lpr_"+member_no).data("end_date")); // 上期到期日
  2115. $("#stop_rents_period").text("").text(period_name[xvars["rents"]["fee_period"]]);
  2116. $("#stop_rents_member_attr").text("").text(mem_attr[xvars["rents"]["member_attr"]]);
  2117. //$("#stop_rents_amt").text("").text(xvars["rents"]["amt"]);
  2118. $("#stop_rents_dialog").modal({backdrop:false,keyboard:false});
  2119. break;
  2120. /*
  2121. case "delete":
  2122. if (!confirm("確定刪除嗎 ?")) return false;
  2123. $.ajax
  2124. ({
  2125. url:APP_URL+"member_delete",
  2126. type:"post",
  2127. dataType:"text",
  2128. data:{"member_no":member_no, "station_no":station_no},
  2129. error:function(xhr, ajaxOptions, thrownError)
  2130. {
  2131. alertify_msg(xhr.responseText);
  2132. console.log("error:"+xhr.responseText+"|"+ajaxOptions+"|"+thrownError);
  2133. },
  2134. success:function(jdata)
  2135. {
  2136. if (jdata == "ok")
  2137. {
  2138. alertify_msg("刪除成功 !");
  2139. show_item("member_query", "member_query");
  2140. }
  2141. else if (jdata == "delete_error")
  2142. {
  2143. alertify_msg("刪除失敗");
  2144. }
  2145. else
  2146. {
  2147. alertify_msg("處理失敗");
  2148. }
  2149. }
  2150. });
  2151. break;
  2152. */
  2153. default: // -- 其餘選擇(忽略不處理) --
  2154. return false;
  2155. }
  2156. }
  2157. $(document).ready(function()
  2158. {
  2159. $("#ma_company_no").val(company_no); // 預設值為場站統編
  2160. if (xvars["ck"] == "NOLOGIN")
  2161. {
  2162. $("#login_dialog").modal
  2163. ({
  2164. backdrop:false,
  2165. keyboard:false
  2166. });
  2167. }
  2168. // 設定場站資訊
  2169. for(station_no in st)
  2170. {
  2171. $(new Option(st[station_no],station_no)).appendTo('#station_select');
  2172. $(new Option(st[station_no],station_no)).appendTo('#station_no_modify'); // 會員修改場站編號
  2173. $(new Option(st[station_no],station_no)).appendTo('#station_refund_select'); // 會員退租場站編號
  2174. }
  2175. // 會員身份類別
  2176. for(idx in mem_attr)
  2177. {
  2178. $(new Option(mem_attr[idx],idx)).appendTo('#member_attr');
  2179. }
  2180. // 繳期表(首期)
  2181. for(idx in period_name)
  2182. {
  2183. $(new Option(period_name[idx],idx)).appendTo('#fee_period1');
  2184. }
  2185. // 繳期表(例行)
  2186. for(idx in period_name)
  2187. {
  2188. $(new Option(period_name[idx],idx)).appendTo('#fee_period');
  2189. }
  2190. /*
  2191. // 設定以上三個item的第一個項目為選項預設值
  2192. $("#member_attr")[0].selectedIndex = 0;
  2193. $("#fee_period1")[0].selectedIndex = 0;
  2194. $("#fee_period")[0].selectedIndex = 0;
  2195. */
  2196. // 設定時段表
  2197. str = "";
  2198. for(pt_id in pt)
  2199. {
  2200. str += "<tr>";
  2201. str += "<td style='text-align:center;'><input type='checkbox' id='pt_id_"+pt_id+"' class='pt_id_checkbox' value='"+pt_id+"' /></td>";
  2202. str += "<td style='text-align:center;'>"+pt_id+"</td>";
  2203. str += "<td style='text-align:left;'>"+pt[pt_id]['remarks']+"</td>";
  2204. str += "</tr>";
  2205. }
  2206. $("#pt_list").html(str);
  2207. $(".cario_list").css({"vertical-align":"middle"}); // 進出場實況表,強制垂直置中
  2208. $("#ma_demonth_start_date").datetimepicker({language:"zh-TW",autoclose:true,minView:2,format:"yyyy-mm-dd"});
  2209. $("#ma_demonth_end_date").datetimepicker({language:"zh-TW",autoclose:true,minView:2,format:"yyyy-mm-dd"});
  2210. $("#ma_start_date").datetimepicker({language:"zh-TW",autoclose:true,minView:2,format:"yyyy-mm-dd"});
  2211. $("#ma_end_date").datetimepicker({language:"zh-TW",autoclose:true,minView:2,format:"yyyy-mm-dd"});
  2212. $("#stop_rents_end_date").datetimepicker({language:"zh-TW",autoclose:true,minView:2,format:"yyyy-mm-dd"});
  2213. // 帳密登入檢核
  2214. $("#login_form").submit(function(e)
  2215. {
  2216. e.preventDefault();
  2217. if ($("[name=login_name]").val() == "" || $("[name=login_pswd]").val() == "")
  2218. {
  2219. alertify_msg("幄號或密碼不可為空白");
  2220. return false;
  2221. }
  2222. $.ajax
  2223. ({
  2224. url:APP_URL+"login_verify",
  2225. type: "post",
  2226. dataType:"json",
  2227. data: $(this).serialize(),
  2228. success: function(jdata)
  2229. {
  2230. if (jdata["rcode"] == "OK")
  2231. {
  2232. xvars["ck"] = jdata["ck"];
  2233. $('#login_dialog').modal('hide');
  2234. }
  2235. else
  2236. {
  2237. //xvars["ck"] = jdata["ck"];
  2238. //xvars["user_name"] = jdata["ck"];
  2239. alertify_msg("帳號或密碼錯誤, 請重新輸入! ");
  2240. }
  2241. }
  2242. });
  2243. });
  2244. // 會員查詢
  2245. $("#member_query_form").submit(function(e)
  2246. {
  2247. e.preventDefault();
  2248. if ($("#q_str").val() == "")
  2249. {
  2250. alertify_log("請填寫查詢關鍵字..");
  2251. return false;
  2252. }
  2253. $("#member_list").html("");
  2254. $.ajax
  2255. ({
  2256. url:APP_URL+"member_query",
  2257. type:"post",
  2258. dataType:"json",
  2259. data:{"station_no":$("#station_select").val(), "q_item":$("input:radio:checked[name=q_item]").val(), "q_str":$("#q_str").val()},
  2260. success:function(jdata)
  2261. {
  2262. var member_list = "";
  2263. for(idx in jdata)
  2264. {
  2265. mno = jdata[idx]['member_no'];
  2266. member_list += "<tr><td style='text-align:left;'>"+st[jdata[idx]['station_no']]+"</td>";
  2267. member_list += "<td id='lpr_"+mno+
  2268. "' data-station_no='"+jdata[idx]['station_no']+
  2269. "' data-member_no='"+mno+
  2270. "' data-member_company_no='"+jdata[idx]['member_company_no']+
  2271. //"' data-company_no='"+jdata[idx]['company_no']+
  2272. "' data-company_no='"+ company_no +
  2273. "' data-member_id='"+jdata[idx]['member_id']+
  2274. "' data-etag='"+jdata[idx]['etag']+
  2275. "' data-demonth_start_date='"+jdata[idx]['demonth_start_date']+
  2276. "' data-demonth_end_date='"+jdata[idx]['demonth_end_date']+
  2277. "' data-rent_start_date='"+jdata[idx]['rent_start_date']+
  2278. "' data-member_attr='"+jdata[idx]['member_attr']+
  2279. "' data-fee_period1='"+jdata[idx]['fee_period1']+
  2280. "' data-fee_period='"+jdata[idx]['fee_period']+
  2281. "' data-amt1='"+jdata[idx]['amt1']+
  2282. "' data-amt='"+jdata[idx]['amt']+
  2283. "' data-deposit='"+jdata[idx]['deposit']+
  2284. "' data-tel_o='"+jdata[idx]['tel_o']+
  2285. "' data-tel_h='"+jdata[idx]['tel_h']+
  2286. "' data-addr='"+jdata[idx]['addr']+
  2287. "' data-pt_id='"+jdata[idx]['park_time']+
  2288. "' data-lpr='"+jdata[idx]['lpr']+
  2289. "' data-member_name='"+jdata[idx]['member_name']+
  2290. "' data-mobile_no='"+jdata[idx]['mobile_no']+
  2291. "' data-contract_no='"+jdata[idx]['contract_no']+
  2292. "' data-start_date='"+jdata[idx]['start_date']+
  2293. "' data-end_date='"+jdata[idx]['end_date']+
  2294. "' style='text-align:left;'>"+jdata[idx]['lpr']+"</td>";
  2295. member_list += "<td id='name_"+mno+"' style='text-align:left;'>"+jdata[idx]['member_name']+"</td>";
  2296. member_list += "<td id='mobile_"+mno+"' style='text-align:center;'>"+jdata[idx]['mobile_no']+"</td>";
  2297. member_list += "<td id='sdate_"+mno+"' style='text-align:center;'>"+jdata[idx]['start_date']+"</td>";
  2298. member_list += "<td id='edate_"+mno+"' style='text-align:center;'>"+jdata[idx]['end_date']+"</td>";
  2299. member_list += "<td id='fee_period_"+mno+"' style='text-align:center;'>"+period_name[jdata[idx]['fee_period']]+"</td>";
  2300. member_list += "<td id='member_attr_"+mno+"' style='text-align:center;'>"+mem_attr[jdata[idx]['member_attr']]+"</td>";
  2301. member_list += "<td id='contract_"+mno+"' style='text-align:center;'>"+jdata[idx]['contract_no']+"</td>";
  2302. //member_list += "<td id='amt_"+mno+"' style='text-align:center;'>"+jdata[idx]['amt']+"</td>";
  2303. if(jdata[idx]['suspended'] == "1")
  2304. {
  2305. member_list += "<td style='text-align:center;'><input type='checkbox' checked id='suspended_"+mno+"' disabled/></td>";
  2306. member_list += "<td style='text-align:center;'><select id='sel_"+mno+"' onclick='member_modify("+mno+");'><option value='choice'>請選擇</option><option value='tx_logs'>交易記錄</option><option value='rents'>繳租</option></select></td>";
  2307. }
  2308. else
  2309. {
  2310. member_list += "<td style='text-align:center;'><input type='checkbox' id='suspended_"+mno+"' disabled/></td>";
  2311. member_list += "<td style='text-align:center;'><select id='sel_"+mno+"' onclick='member_modify("+mno+");'><option value='choice'>請選擇</option><option value='tx_logs'>交易記錄</option><option value='rents'>繳租</option><option value='modify'>一般修改</option><option value='switch'>繳期修改</option><option value='stop'>退租</option></select></td>";
  2312. }
  2313. member_list += "</tr>";
  2314. }
  2315. $("#member_list").html(member_list);
  2316. }
  2317. });
  2318. });
  2319. $("#member_add").submit(function(event)
  2320. {
  2321. event.preventDefault();
  2322. // 停車時段
  2323. $("#ma_park_time").val($('input:checkbox:checked.pt_id_checkbox').map(function(){ return this.value; }).get().join(","));
  2324. if ($("#ma_member_no").val() == "0")
  2325. {
  2326. $("#ma_old_lpr").val($("#ma_lpr").val());
  2327. // 新增:檢查必填欄位
  2328. if ($("#ma_lpr").val() == "" ||
  2329. $("#ma_start_date").val() == "" ||
  2330. $("#ma_end_date").val() == "" ||
  2331. $("#ma_member_name").val() == "" ||
  2332. $("#ma_mobile_no").val() == "" ||
  2333. $("#ma_park_time").val() == ""
  2334. )
  2335. {
  2336. alertify_msg("必填欄位不可空白");
  2337. return false;
  2338. }
  2339. }
  2340. else
  2341. {
  2342. // 修改:檢查必填欄位
  2343. if ($("#ma_lpr").val() == "" ||
  2344. //$("#ma_start_date").val() == "" ||
  2345. $("#ma_end_date").val() == "" ||
  2346. $("#ma_member_name").val() == "" ||
  2347. $("#ma_mobile_no").val() == "" ||
  2348. $("#ma_park_time").val() == ""
  2349. )
  2350. {
  2351. alertify_msg("必填欄位不可空白");
  2352. return false;
  2353. }
  2354. }
  2355. $("#ma_amt_tot").val($("#amt_tot").text());
  2356. $("#ma_amt_accrued").val($("#amt_accrued").text());
  2357. if($("#ma_member_company_no").val() == "") $("#ma_member_company_no").val(0);
  2358. // 禁止直接輸入,補值
  2359. $("#ma_demonth_end_date_done").val($("#ma_demonth_end_date").val());
  2360. $("#ma_start_date_done").val($("#ma_start_date").val());
  2361. $("#ma_end_date_done").val($("#ma_end_date").val());
  2362. $.ajax
  2363. ({
  2364. url: APP_URL+"member_add",
  2365. type: "post",
  2366. dataType:"json",
  2367. data: $(this).serialize(),
  2368. error:function(xhr, ajaxOptions, thrownError)
  2369. {
  2370. alertify_msg(xhr.responseText);
  2371. console.log("error:"+xhr.responseText+"|"+ajaxOptions+"|"+thrownError);
  2372. },
  2373. success: function(jdata)
  2374. {
  2375. if(jdata == 'update_error')
  2376. {
  2377. alertify_msg("更新失敗, 請稍候再試");
  2378. }
  2379. else if(jdata == 'trans_error')
  2380. {
  2381. alertify_msg("操作失敗, 請稍候再試");
  2382. }
  2383. else if (jdata["member_no"] != "0")
  2384. {
  2385. if(jdata["action_code"] == "A")
  2386. {
  2387. // 新增會員資料, 印發票
  2388. xvars["rents"] = Array();
  2389. xvars["rents"]["tx_no"] = jdata["tx_no"];
  2390. xvars["rents"]["station_no"] = station_no;
  2391. xvars["rents"]["member_no"] = jdata["member_no"];
  2392. xvars["rents"]["member_company_no"] = $("#ma_member_company_no").val();
  2393. xvars["rents"]["company_no"] = company_no;
  2394. xvars["rents"]["fee_period"] = $("#fee_period").val();
  2395. xvars["rents"]["amt"] = parseInt($("#ma_amt").val());
  2396. xvars["rents"]["amt1"] = parseInt($("#ma_amt1").val());
  2397. xvars["rents"]["invoice_amt"] = jdata["invoice_amt"];
  2398. xvars["rents"]["remain_amt"] = jdata["remain_amt"];
  2399. xvars["rents"]["period_3_amt"] = jdata["period_3_amt"];
  2400. $("#first_rents_name").text($("#ma_member_name").val()+" ("+ $("#ma_lpr").val() +")");
  2401. $("#first_rents_station_name").text(st[xvars["rents"]["station_no"]]);
  2402. $("#first_rents_start_date").text($("#ma_demonth_start_date").val()); // 上期開始日
  2403. $("#first_rents_end_date").text($("#ma_end_date").val()); // 本期結束日
  2404. $("#first_rents_deposit").text($("#ma_deposit").val());
  2405. $("#first_rents_period").text(period_name[xvars["rents"]["fee_period"]]);
  2406. $("#first_rents_amt").text(xvars["rents"]["amt"]);
  2407. $("#first_rents_amt1").text(xvars["rents"]["amt1"]);
  2408. $("#first_rents_invoice_amt").text(xvars["rents"]["invoice_amt"]);
  2409. $("#first_rents_remain_desc").html(get_invoice_desc(xvars["rents"]["amt"], xvars["rents"]["amt1"], xvars["rents"]["invoice_amt"], xvars["rents"]["remain_amt"], xvars["rents"]["period_3_amt"])); // 發票說明
  2410. $("#first_rents_company_no").val(xvars["rents"]["company_no"]); // 賣方統編
  2411. if(xvars["rents"]["member_company_no"] == 0 || xvars["rents"]["member_company_no"] == '')
  2412. {
  2413. $("#first_rents_member_company_no").val("");
  2414. }
  2415. else
  2416. {
  2417. $("#first_rents_member_company_no").val(xvars["rents"]["member_company_no"]); // 買方統編
  2418. }
  2419. $("#first_rents_dialog").modal({backdrop:false,keyboard:false});
  2420. }
  2421. else if(jdata["action_code"] == "U")
  2422. {
  2423. // 更新會員資料
  2424. alertify_msg("月租資料存檔完成 !");
  2425. }
  2426. else
  2427. {
  2428. // 未知
  2429. alertify_msg("未知的操作..");
  2430. }
  2431. show_item('member_query', 'member_query');
  2432. }
  2433. else
  2434. {
  2435. alertify_msg(jdata["msg"]);
  2436. }
  2437. }
  2438. });
  2439. });
  2440. // 定時自動更新頁面
  2441. (function autoReloadPage(){
  2442. var pageReloadTimeMillis = 600000; // 頁面, 自動重新載入週期 ( 10 min )
  2443. var pageCheckReloadTimeMillis = 10000; // 頁面, 判斷重新載入週期 ( 10 sec )
  2444. var pageShowReloadTimeMillis = 50000; // 頁面, 開始顯示倒數週期 ( 50 sec )
  2445. var aliveTime = moment();
  2446. var countdownTimeMillis = pageReloadTimeMillis;
  2447. $(document.body).bind("mousemove keypress", function(e) {
  2448. aliveTime = moment();
  2449. countdownTimeMillis = pageReloadTimeMillis;
  2450. });
  2451. function refresh() {
  2452. if(moment() - aliveTime >= pageReloadTimeMillis) // 如果頁面沒動作, 才更新
  2453. window.location.reload(true);
  2454. else{
  2455. countdownTimeMillis -= pageCheckReloadTimeMillis;
  2456. if(countdownTimeMillis < pageCheckReloadTimeMillis)
  2457. {
  2458. alertify_count_down("重新載入中..請稍候..", pageCheckReloadTimeMillis);
  2459. }
  2460. else if(countdownTimeMillis < pageShowReloadTimeMillis){
  2461. alertify_count_down("倒數: " + (countdownTimeMillis / 1000) + " 秒, 重新載入畫面..", pageCheckReloadTimeMillis);
  2462. }
  2463. setTimeout(refresh, pageCheckReloadTimeMillis);
  2464. }
  2465. }
  2466. setTimeout(refresh, pageCheckReloadTimeMillis);
  2467. })();
  2468. });
  2469. // 會員時段表
  2470. function member_park_time()
  2471. {
  2472. $("#pt_dialog").modal
  2473. ({
  2474. backdrop:false,
  2475. keyboard:false
  2476. });
  2477. }
  2478. // 同步場站費率
  2479. function sync_price_plan()
  2480. {
  2481. $.ajax
  2482. ({
  2483. url:APP_URL + "sync_price_plan",
  2484. dataType:"text",
  2485. type:"post",
  2486. data: {},
  2487. error:function(xhr, ajaxOptions, thrownError)
  2488. {
  2489. alertify_msg(xhr.responseText);
  2490. console.log("error:"+xhr.responseText+"|"+ajaxOptions+"|"+thrownError);
  2491. },
  2492. success:function(jdata)
  2493. {
  2494. if (jdata == "ok")
  2495. {
  2496. alertify_msg("同步成功 ! ");
  2497. show_item("price_plan_query_all", "price_plan_query_all");
  2498. }
  2499. else if (jdata == "sync_fail")
  2500. {
  2501. alertify_msg("同步失敗");
  2502. }
  2503. else
  2504. {
  2505. alertify_msg("同步失敗 !");
  2506. }
  2507. }
  2508. });
  2509. }
  2510. // 計算租金
  2511. function calculate_rents_amt()
  2512. {
  2513. // 計算月租金額
  2514. $.ajax
  2515. ({
  2516. url:APP_URL+"calculate_rents_amt",
  2517. dataType:"json",
  2518. type:"post",
  2519. data:
  2520. {
  2521. "cmd":"calculate_rents_amt",
  2522. "station_no":station_no,
  2523. "demonth_start_date":$("#ma_demonth_start_date").val(),
  2524. "member_attr":$("#member_attr").val(),
  2525. "period_1":$("#fee_period1").val(), // 首期繳期
  2526. "period_2":$("#fee_period").val() // 例行繳期
  2527. },
  2528. success:function(jdata)
  2529. {
  2530. $("#ma_demonth_start_date").val(jdata["demonth_start_date"]);
  2531. $("#ma_demonth_end_date").val(jdata["demonth_end_date"]).prop("disabled",true);
  2532. $("#ma_start_date").val(jdata["start_date"]).prop("disabled",true);
  2533. $("#ma_end_date").val(jdata["end_date"]).prop("disabled",true);
  2534. $("#amt1_max").text(jdata["demonth_amt"]);
  2535. $("#amt1_days").text(jdata["demonth_days"]);
  2536. $("#amt1_days_total").text(jdata["demonth_days_total"]);
  2537. $("#amt1_max_view").show();
  2538. // 第一版: 依天數拆分
  2539. /*
  2540. $("#amt2_max").text(jdata["amonth_amt"]);
  2541. $("#amt2_days").text(jdata["amonth_days"]);
  2542. $("#amt2_days_total").text(jdata["amonth_days_total"]);
  2543. $("#amt2_max_view").show();
  2544. */
  2545. // 第二版: 依月數拆分 2017-02-13 updated
  2546. $("#amt2_max").text(jdata["amonth_amt"]);
  2547. $("#amt2_months").text(jdata["amonth_months"]);
  2548. $("#amt2_months_total").text(jdata["amonth_months_total"]);
  2549. $("#amt2_max_view").show();
  2550. $("#ma_amt1").val(jdata["rents_amt1"]);
  2551. $("#ma_amt").val(jdata["rents_amt2"]);
  2552. $("#ma_deposit").val(jdata["rents_deposit"]);
  2553. $("#amt_accrued").text(parseInt(jdata["rents_amt1"])+parseInt(jdata["rents_amt2"])+parseInt(jdata["rents_deposit"]));
  2554. $("#ma_amt_accrued").val($("#amt_accrued").text());
  2555. re_amt(true);
  2556. }
  2557. });
  2558. }
  2559. // 重新計算實際租金
  2560. function re_amt(show_sccured_view=false)
  2561. {
  2562. if ($("#ma_amt1").val() == "") $("#ma_amt1").val(0);
  2563. if ($("#ma_amt").val() == "") $("#ma_amt").val(0);
  2564. if ($("#ma_deposit").val() == "") $("#ma_deposit").val(0);
  2565. $("#amt_tot").text(parseInt($("#ma_amt1").val())+parseInt($("#ma_amt").val())+parseInt($("#ma_deposit").val()));
  2566. //$("#amt_tot").text(parseInt($("#ma_amt1").val())+parseInt($("#ma_amt").val())); // 無押金
  2567. $("#ma_amt_tot").val($("#amt_tot").text());
  2568. $("#amt_tot_view").show();
  2569. if(show_sccured_view)
  2570. {
  2571. $("#amt_accrued_view").show();
  2572. }
  2573. }
  2574. // 取得發票開立說明
  2575. function get_invoice_desc(amt, amt1, invoice_amt, remain_amt, period_3_amt)
  2576. {
  2577. var thisAmt = parseInt(invoice_amt) - parseInt(amt1);
  2578. var result;
  2579. if(amt1 > 0)
  2580. {
  2581. result = ["首期 " , amt1 , " 元 + 本期 " , thisAmt , " 元 <br/><br/>*發票金額:" , invoice_amt , " 元"];
  2582. }
  2583. else
  2584. {
  2585. result = ["本期 " , thisAmt , " 元 <br/><br/>*發票金額:" , invoice_amt , " 元"];
  2586. }
  2587. if(remain_amt > 0)
  2588. {
  2589. result = result.concat("<br/>*尚餘:" , remain_amt , " 元,另外開立發票");
  2590. }
  2591. return result.join('');
  2592. }
  2593. </script>
  2594. <!-- ----- [H.1] 手開:首期繳租作業小框 ----- -->
  2595. <!-- ----- ID: hand_first_rents_dialog ----- -->
  2596. <!-- ----- action: do_hand_first_rents_payment() ----- -->
  2597. <div class="modal fade" id="hand_first_rents_dialog">
  2598. <div class="modal-dialog modal-sm">
  2599. <div class="modal-content">
  2600. <div class="modal-header"><h3>手開發票</h3></div>
  2601. <div class="modal-body">
  2602. <form id="hand_first_rents_form" class="center-block">
  2603. <div class="main">
  2604. <div class="dataTable_wrapper">
  2605. <table class="table table-striped table-bordered table-hover" style="font-size:12px;">
  2606. <tbody id="hand_first_rents_list">
  2607. <tr>
  2608. <td style="text-align:right;">姓名</td>
  2609. <td style="text-align:left;" id="hand_first_rents_name"></td>
  2610. </tr>
  2611. <tr>
  2612. <td style="text-align:right;">場站</td>
  2613. <td style="text-align:left;" id="hand_first_rents_station_name"></td>
  2614. </tr>
  2615. <tr>
  2616. <td style="text-align:right;vertical-align:middle">賣方統編</td>
  2617. <td style="text-align:left;"><input type="text" id="hand_first_rents_company_no" class="form-control" style="width:100px !important;" /></td>
  2618. </tr>
  2619. <tr>
  2620. <td style="text-align:right;">開始日</td>
  2621. <td style="text-align:left;" id="hand_first_rents_start_date"></td>
  2622. </tr>
  2623. <tr>
  2624. <td style="text-align:right;">到期日</td>
  2625. <td style="text-align:left;" id="hand_first_rents_end_date"></td>
  2626. </tr>
  2627. <tr>
  2628. <td style="text-align:right;">押金</td>
  2629. <td style="text-align:left;" id="hand_first_rents_deposit"></td>
  2630. </tr>
  2631. <tr>
  2632. <td style="text-align:right;">首期租金</td>
  2633. <td style="text-align:left;" id="hand_first_rents_amt1"></td>
  2634. </tr>
  2635. <tr>
  2636. <td style="text-align:right;">例行繳期</td>
  2637. <td style="text-align:left;" id="hand_first_rents_period"></td>
  2638. </tr>
  2639. <tr>
  2640. <td style="text-align:right;">例行租金</td>
  2641. <td style="text-align:left;" id="hand_first_rents_amt"></td>
  2642. </tr>
  2643. <tr>
  2644. <tr>
  2645. <td style="text-align:right;vertical-align:middle">買方統編</td>
  2646. <td style="text-align:left;"><input type="text" id="hand_first_rents_member_company_no" class="form-control" style="width:100px !important;" /></td>
  2647. </tr>
  2648. <tr>
  2649. <td style="text-align:right;">發票金額</td>
  2650. <td style="text-align:left;color:blue;" id="hand_first_rents_invoice_amt"></td>
  2651. </tr>
  2652. <tr>
  2653. <td style="text-align:right;">開立說明</td>
  2654. <td style="text-align:left;color:blue;" id="hand_first_rents_remain_desc"></td>
  2655. </tr>
  2656. <tr>
  2657. <td style="text-align:right;vertical-align:middle">發票字軌</td>
  2658. <td style="text-align:left;"><input type="text" id="hand_first_rents_invoice_track" class="form-control" style="width:100px !important;" /></td>
  2659. </tr>
  2660. <tr>
  2661. <td style="text-align:right;vertical-align:middle">發票號碼</td>
  2662. <td style="text-align:left;"><input type="text" id="hand_first_rents_invoice_no" class="form-control" style="width:100px !important;" /></td>
  2663. </tr>
  2664. </tbody>
  2665. </table>
  2666. <button type="button" class="btn btn-large btn-success pull-left" onclick="do_hand_first_rents_payment();">確認送出</button>
  2667. &nbsp;&nbsp;
  2668. <button type="button" class="btn btn-large btn-cancel" onclick="$('#hand_first_rents_dialog').modal('hide');">取消</button>
  2669. </div><!-- ----- end of dataTable_wrapper ----- -->
  2670. </div><!-- ----- end of main ----- -->
  2671. </form>
  2672. </div><!-- end of modal-body -->
  2673. </div><!-- end of modal-content -->
  2674. </div><!-- end of modal-dialog -->
  2675. </div><!-- end of modal show -->
  2676. <!-- ----- 手開:首期繳租作業小框(結束) ----- -->
  2677. <script>
  2678. // 手開:首期月租發票
  2679. function do_hand_first_rents_payment()
  2680. {
  2681. if($("#hand_first_rents_company_no").val() == '0' || $("#hand_first_rents_company_no").val() == '' || $("#hand_first_rents_company_no").val().length != 8)
  2682. {
  2683. alertify_error('賣方統編有誤,請修正');
  2684. return false;
  2685. }
  2686. if($("#hand_first_rents_member_company_no").val() != '' && $("#hand_first_rents_member_company_no").val().length != 8)
  2687. {
  2688. alertify_error('買方統編有誤,請修正');
  2689. return false;
  2690. }
  2691. if($("#hand_first_rents_invoice_track").val() == '0' || $("#hand_first_rents_invoice_track").val() == '' || $("#hand_first_rents_invoice_track").val().length != 2)
  2692. {
  2693. alertify_error('發票字軌有誤,請修正');
  2694. return false;
  2695. }
  2696. if($("#hand_first_rents_invoice_no").val() == '0' || $("#hand_first_rents_invoice_no").val() == '' || $("#hand_first_rents_invoice_no").val().length != 8)
  2697. {
  2698. alertify_error('發票號碼有誤,請修正');
  2699. return false;
  2700. }
  2701. if (!confirm("確認資料無誤並送出 ?")) return false;
  2702. var invoice_state = xvars["rents"]["invoice_state"];
  2703. var tx_bill_no = xvars["rents"]["tx_bill_no"];
  2704. var tx_no = xvars["rents"]["tx_no"];
  2705. var member_no = xvars["rents"]["member_no"];
  2706. var company_no = $("#hand_first_rents_company_no").val();
  2707. var member_company_no = $("#hand_first_rents_member_company_no").val();
  2708. if (member_company_no == "") member_company_no = "0"; // 列印二聯式發票
  2709. // 新增月租付款交易
  2710. $.ajax
  2711. ({
  2712. url:APP_URL+"hand_first_rents_payment",
  2713. dataType:"text",
  2714. type:"post",
  2715. data:
  2716. {
  2717. "tx_bill_no": tx_bill_no,
  2718. "tx_no": tx_no,
  2719. "station_no":xvars["rents"]["station_no"],
  2720. "member_no":member_no,
  2721. "member_company_no":member_company_no,
  2722. "company_no":company_no,
  2723. "amt":xvars["rents"]["amt"],
  2724. "amt1":xvars["rents"]["amt1"],
  2725. "invoice_amt": xvars["rents"]["invoice_amt"],
  2726. "invoice_track":$("#hand_first_rents_invoice_track").val(),
  2727. "invoice_no":$("#hand_first_rents_invoice_no").val()
  2728. },
  2729. error:function(xhr, ajaxOptions, thrownError)
  2730. {
  2731. alertify_msg(xhr.responseText);
  2732. console.log("error:"+xhr.responseText+"|"+ajaxOptions+"|"+thrownError);
  2733. },
  2734. success:function(jdata)
  2735. {
  2736. if (jdata == "ok")
  2737. {
  2738. alertify_msg("完成 ! ");
  2739. if(invoice_state == 1)
  2740. {
  2741. show_member_tx_bill(0, '', '1', '4'); // 待補開 (已退租)
  2742. }
  2743. else if(invoice_state == 2)
  2744. {
  2745. show_member_tx_bill(0, '', '2', '4'); // 待折讓 (已退租, 已開立發票)
  2746. }
  2747. else
  2748. {
  2749. show_member_tx_bill(tx_no);
  2750. }
  2751. }
  2752. else
  2753. {
  2754. alertify_msg("操作失敗!");
  2755. }
  2756. }
  2757. });
  2758. delete xvars["rents"];
  2759. $('#hand_first_rents_dialog').modal('hide');
  2760. }
  2761. // 手開發票
  2762. function hand_tx_invoice(tx_bill_no)
  2763. {
  2764. var station_no = $("#tx_bill_lpr_"+tx_bill_no).data("station_no");
  2765. var member_no = $("#tx_bill_lpr_"+tx_bill_no).data("member_no");
  2766. var member_name = $("#tx_bill_lpr_"+tx_bill_no).data("member_name");
  2767. var member_company_no = $("#tx_bill_lpr_"+tx_bill_no).data("member_company_no");
  2768. var company_no = $("#tx_bill_lpr_"+tx_bill_no).data("company_no");
  2769. var invoice_amt = $("#tx_bill_lpr_"+tx_bill_no).data("invoice_amt");
  2770. var remain_amt = $("#tx_bill_lpr_"+tx_bill_no).data("remain_amt");
  2771. var period_3_amt = $("#tx_bill_lpr_"+tx_bill_no).data("period_3_amt");
  2772. var amt = $("#tx_bill_lpr_"+tx_bill_no).data("amt");
  2773. var amt1 = $("#tx_bill_lpr_"+tx_bill_no).data("amt1");
  2774. var deposit = $("#tx_bill_lpr_"+tx_bill_no).data("deposit");
  2775. var start_date_last = $("#tx_bill_lpr_"+tx_bill_no).data("start_date_last");
  2776. var end_date = $("#tx_bill_lpr_"+tx_bill_no).data("end_date");
  2777. var lpr = $("#tx_bill_lpr_"+tx_bill_no).data("lpr");
  2778. var fee_period = $("#tx_bill_lpr_"+tx_bill_no).data("fee_period");
  2779. var fee_period_last = $("#tx_bill_lpr_"+tx_bill_no).data("fee_period_last");
  2780. var tx_no = $("#tx_bill_lpr_"+tx_bill_no).data("tx_no");
  2781. var invoice_state = $("#tx_bill_lpr_"+tx_bill_no).data("invoice_state");
  2782. if(invoice_amt > 0)
  2783. {
  2784. // 首期月租付款並列印發票
  2785. xvars["rents"] = Array();
  2786. xvars["rents"]["tx_bill_no"] = tx_bill_no;
  2787. xvars["rents"]["tx_no"] = tx_no;
  2788. xvars["rents"]["station_no"] = station_no;
  2789. xvars["rents"]["member_no"] = member_no;
  2790. xvars["rents"]["member_company_no"] = member_company_no;
  2791. xvars["rents"]["company_no"] = company_no;
  2792. xvars["rents"]["fee_period"] = fee_period;
  2793. xvars["rents"]["amt"] = parseInt(amt);
  2794. xvars["rents"]["amt1"] = parseInt(amt1);
  2795. xvars["rents"]["invoice_amt"] = parseInt(invoice_amt);
  2796. xvars["rents"]["remain_amt"] = parseInt(remain_amt);
  2797. xvars["rents"]["period_3_amt"] = parseInt(period_3_amt);
  2798. xvars["rents"]["invoice_state"] = invoice_state;
  2799. $("#hand_first_rents_name").text( "車號 " + lpr +"");
  2800. $("#hand_first_rents_station_name").text(st[xvars["rents"]["station_no"]]);
  2801. $("#hand_first_rents_start_date").text(start_date_last); // 上期開始日
  2802. $("#hand_first_rents_end_date").text(end_date); // 本期結束日
  2803. $("#hand_first_rents_deposit").text(deposit);
  2804. $("#hand_first_rents_period").text(period_name[xvars["rents"]["fee_period"]]);
  2805. $("#hand_first_rents_amt").text(xvars["rents"]["amt"]);
  2806. $("#hand_first_rents_amt1").text(xvars["rents"]["amt1"]);
  2807. $("#hand_first_rents_company_no").val(xvars["rents"]["company_no"]); // 賣方統編
  2808. $("#hand_first_rents_invoice_amt").text(xvars["rents"]["invoice_amt"]);
  2809. $("#hand_first_rents_remain_desc").html(get_invoice_desc(xvars["rents"]["amt"], xvars["rents"]["amt1"], xvars["rents"]["invoice_amt"], xvars["rents"]["remain_amt"], xvars["rents"]["period_3_amt"])); // 發票說明
  2810. if(xvars["rents"]["member_company_no"] == 0 || xvars["rents"]["member_company_no"] == '')
  2811. {
  2812. $("#hand_first_rents_member_company_no").val("");
  2813. }
  2814. else
  2815. {
  2816. $("#hand_first_rents_member_company_no").val(xvars["rents"]["member_company_no"]); // 買方統編
  2817. }
  2818. $("#hand_first_rents_dialog").modal({backdrop:false,keyboard:false});
  2819. }
  2820. else
  2821. {
  2822. // 各期月租發票補印
  2823. alertify_msg("流程異常:請通知總公司處理:" + tx_bill_no);
  2824. }
  2825. }
  2826. </script>
  2827. <!-- ----- [H.2] 手開:繳租作業小框 ----- -->
  2828. <!-- ----- ID: hand_rents_dialog ----- -->
  2829. <!-- ----- action: do_hand_rents_payment() ----- -->
  2830. <div class="modal fade" id="hand_rents_dialog">
  2831. <div class="modal-dialog modal-sm">
  2832. <div class="modal-content">
  2833. <div class="modal-header"><h3>手開發票</h3></div>
  2834. <div class="modal-body">
  2835. <form id="hand_rents_form" class="center-block">
  2836. <div class="main">
  2837. <div class="dataTable_wrapper">
  2838. <table class="table table-striped table-bordered table-hover" style="font-size:12px;">
  2839. <tbody id="hand_rents_list">
  2840. <tr>
  2841. <td style="text-align:right;">姓名</td>
  2842. <td style="text-align:left;" id="hand_rents_name"></td>
  2843. </tr>
  2844. <tr>
  2845. <td style="text-align:right;">場站</td>
  2846. <td style="text-align:left;" id="hand_rents_station_name"></td>
  2847. </tr>
  2848. <tr>
  2849. <td style="text-align:right;vertical-align:middle">賣方統編</td>
  2850. <td style="text-align:left;"><input type="text" id="hand_rents_company_no" class="form-control" style="width:100px !important;" /></td>
  2851. </tr>
  2852. <tr>
  2853. <td style="text-align:right;">上期到期日</td>
  2854. <td style="text-align:left;" id="hand_rents_end_date_last"></td>
  2855. </tr>
  2856. <tr>
  2857. <td style="text-align:right;">本期到期日</td>
  2858. <td style="text-align:left;" id="hand_rents_end_date"></td>
  2859. </tr>
  2860. <tr>
  2861. <td style="text-align:right;">繳期</td>
  2862. <td style="text-align:left;" id="hand_rents_period"></td>
  2863. </tr>
  2864. <tr>
  2865. <td style="text-align:right;">租金</td>
  2866. <td style="text-align:left;" id="hand_rents_amt"></td>
  2867. </tr>
  2868. <tr>
  2869. <td style="text-align:right;vertical-align:middle">買方統編</td>
  2870. <td style="text-align:left;"><input type="text" id="hand_rents_member_company_no" class="form-control" style="width:100px !important;" /></td>
  2871. </tr>
  2872. <tr>
  2873. <td style="text-align:right;">發票金額</td>
  2874. <td style="text-align:left;color:blue;" id="hand_rents_invoice_amt"></td>
  2875. </tr>
  2876. <tr>
  2877. <td style="text-align:right;">開立說明</td>
  2878. <td style="text-align:left;color:blue;" id="hand_rents_remain_desc"></td>
  2879. </tr>
  2880. <tr>
  2881. <td style="text-align:right;vertical-align:middle">發票字軌</td>
  2882. <td style="text-align:left;"><input type="text" id="hand_rents_invoice_track" class="form-control" style="width:100px !important;" /></td>
  2883. </tr>
  2884. <tr>
  2885. <td style="text-align:right;vertical-align:middle">發票號碼</td>
  2886. <td style="text-align:left;"><input type="text" id="hand_rents_invoice_no" class="form-control" style="width:100px !important;" /></td>
  2887. </tr>
  2888. </tbody>
  2889. </table>
  2890. <button type="button" class="btn btn-large btn-success pull-left" onclick="do_hand_rents_payment();">確認送出</button>
  2891. &nbsp;&nbsp;
  2892. <button type="button" class="btn btn-large btn-cancel" onclick="$('#hand_rents_dialog').modal('hide');">取消</button>
  2893. </div><!-- ----- end of dataTable_wrapper ----- -->
  2894. </div><!-- ----- end of main ----- -->
  2895. </form>
  2896. </div><!-- end of modal-body -->
  2897. </div><!-- end of modal-content -->
  2898. </div><!-- end of modal-dialog -->
  2899. </div><!-- end of modal show -->
  2900. <!-- ----- 手開:繳租作業小框(結束) ----- -->
  2901. <script>
  2902. // 手開:月租付款
  2903. function do_hand_rents_payment()
  2904. {
  2905. if($("#hand_rents_company_no").val() == '0' || $("#hand_rents_company_no").val() == '' || $("#hand_rents_company_no").val().length != 8)
  2906. {
  2907. alertify_error('賣方統編有誤,請修正');
  2908. return false;
  2909. }
  2910. if($("#hand_rents_member_company_no").val() != '' && $("#hand_rents_member_company_no").val().length != 8)
  2911. {
  2912. alertify_error('買方統編有誤,請修正');
  2913. return false;
  2914. }
  2915. /*
  2916. if($("#hand_rents_invoice_track").val() == '0' || $("#hand_rents_invoice_track").val() == '' || $("#hand_rents_invoice_track").val().length != 2)
  2917. {
  2918. alertify_error('發票字軌有誤,請修正');
  2919. return false;
  2920. }
  2921. if($("#hand_rents_invoice_no").val() == '0' || $("#hand_rents_invoice_no").val() == '' || $("#hand_rents_invoice_no").val().length != 8)
  2922. {
  2923. alertify_error('發票號碼有誤,請修正');
  2924. return false;
  2925. }
  2926. */
  2927. if (!confirm("確認資料無誤並送出 ?")) return false;
  2928. var member_no = xvars["rents"]["member_no"];
  2929. var company_no = $("#hand_rents_company_no").val();
  2930. var member_company_no = $("#hand_rents_member_company_no").val();
  2931. if (member_company_no == "") member_company_no = "0"; // 列印二聯式發票
  2932. // 新增月租付款交易
  2933. $.ajax
  2934. ({
  2935. url:APP_URL+"hand_rents_payment",
  2936. dataType:"text",
  2937. type:"post",
  2938. data:
  2939. {
  2940. "station_no":xvars["rents"]["station_no"],
  2941. "member_no":member_no,
  2942. "lpr":xvars["rents"]["lpr"],
  2943. "member_company_no":member_company_no,
  2944. "company_no":company_no,
  2945. "fee_period":xvars["rents"]["fee_period"],
  2946. "fee_period_last":xvars["rents"]["fee_period_last"],
  2947. "amt":xvars["rents"]["amt"],
  2948. "amt_last":xvars["rents"]["amt_last"],
  2949. "end_date":xvars["rents"]["end_date"],
  2950. "start_date_last":xvars["rents"]["start_date"],
  2951. "end_date_last":xvars["rents"]["end_date_last"],
  2952. "invoice_track":$("#hand_rents_invoice_track").val(),
  2953. "invoice_no":$("#hand_rents_invoice_no").val()
  2954. },
  2955. error:function(xhr, ajaxOptions, thrownError)
  2956. {
  2957. alertify_msg(xhr.responseText);
  2958. console.log("error:"+xhr.responseText+"|"+ajaxOptions+"|"+thrownError);
  2959. },
  2960. success:function(jdata)
  2961. {
  2962. if (jdata == "ok")
  2963. {
  2964. alertify_msg("完成 ! ");
  2965. show_member_tx(member_no);
  2966. }
  2967. else
  2968. {
  2969. alertify_msg("操作失敗!");
  2970. }
  2971. }
  2972. });
  2973. delete xvars["rents"];
  2974. $('#hand_rents_dialog').modal('hide');
  2975. }
  2976. </script>
  2977. <!-- ----- [P.1] 首期繳租作業小框 ----- -->
  2978. <!-- ----- ID: first_rents_dialog ----- -->
  2979. <!-- ----- action: do_first_rents_payment() ----- -->
  2980. <div class="modal fade" id="first_rents_dialog">
  2981. <div class="modal-dialog modal-sm">
  2982. <div class="modal-content">
  2983. <div class="modal-header"><h3>列印發票</h3></div>
  2984. <div class="modal-body">
  2985. <form id="first_rents_form" class="center-block">
  2986. <div class="main">
  2987. <div class="dataTable_wrapper">
  2988. <table class="table table-striped table-bordered table-hover" style="font-size:12px;">
  2989. <tbody id="first_rents_list">
  2990. <tr>
  2991. <td style="text-align:right;">姓名</td>
  2992. <td style="text-align:left;" id="first_rents_name"></td>
  2993. </tr>
  2994. <tr>
  2995. <td style="text-align:right;">場站</td>
  2996. <td style="text-align:left;" id="first_rents_station_name"></td>
  2997. </tr>
  2998. <tr>
  2999. <td style="text-align:right;vertical-align:middle">賣方統編</td>
  3000. <td style="text-align:left;"><input type="text" id="first_rents_company_no" class="form-control" style="width:100px !important;" /></td>
  3001. </tr>
  3002. <tr>
  3003. <td style="text-align:right;">開始日</td>
  3004. <td style="text-align:left;" id="first_rents_start_date"></td>
  3005. </tr>
  3006. <tr>
  3007. <td style="text-align:right;">到期日</td>
  3008. <td style="text-align:left;" id="first_rents_end_date"></td>
  3009. </tr>
  3010. <tr>
  3011. <td style="text-align:right;">押金</td>
  3012. <td style="text-align:left;" id="first_rents_deposit"></td>
  3013. </tr>
  3014. <tr>
  3015. <td style="text-align:right;">首期租金</td>
  3016. <td style="text-align:left;" id="first_rents_amt1"></td>
  3017. </tr>
  3018. <tr>
  3019. <td style="text-align:right;">例行繳期</td>
  3020. <td style="text-align:left;" id="first_rents_period"></td>
  3021. </tr>
  3022. <tr>
  3023. <td style="text-align:right;">例行租金</td>
  3024. <td style="text-align:left;" id="first_rents_amt"></td>
  3025. </tr>
  3026. <tr>
  3027. <td style="text-align:right;">發票金額</td>
  3028. <td style="text-align:left;color:blue;" id="first_rents_invoice_amt"></td>
  3029. </tr>
  3030. <tr>
  3031. <td style="text-align:right;">開立說明</td>
  3032. <td style="text-align:left;color:blue;" id="first_rents_remain_desc"></td>
  3033. </tr>
  3034. <tr>
  3035. <td style="text-align:right;vertical-align:middle">買方統編</td>
  3036. <td style="text-align:left;"><input type="text" id="first_rents_member_company_no" class="form-control" style="width:100px !important;" /></td>
  3037. </tr>
  3038. </tbody>
  3039. </table>
  3040. <button type="button" class="btn btn-large btn-success pull-left" onclick="do_first_rents_payment();">列印</button>
  3041. &nbsp;&nbsp;
  3042. <button type="button" class="btn btn-large btn-cancel" onclick="$('#first_rents_dialog').modal('hide');">稍後再印</button>
  3043. </div><!-- ----- end of dataTable_wrapper ----- -->
  3044. </div><!-- ----- end of main ----- -->
  3045. </form>
  3046. </div><!-- end of modal-body -->
  3047. </div><!-- end of modal-content -->
  3048. </div><!-- end of modal-dialog -->
  3049. </div><!-- end of modal show -->
  3050. <!-- ----- 首期繳租作業小框(結束) ----- -->
  3051. <script>
  3052. // 首期月租付款並列印發票
  3053. function do_first_rents_payment()
  3054. {
  3055. if($("#first_rents_company_no").val() == '0' || $("#first_rents_company_no").val() == '' || $("#first_rents_company_no").val().length != 8)
  3056. {
  3057. alertify_error('賣方統編有誤,請修正');
  3058. return false;
  3059. }
  3060. if($("#first_rents_member_company_no").val() != '' && $("#first_rents_member_company_no").val().length != 8)
  3061. {
  3062. alertify_error('買方統編有誤,請修正');
  3063. return false;
  3064. }
  3065. if (!confirm("確認已繳款並即將列印發票 ?")) return false;
  3066. var member_no = xvars["rents"]["member_no"];
  3067. var company_no = $("#first_rents_company_no").val();
  3068. var member_company_no = $("#first_rents_member_company_no").val();
  3069. if (member_company_no == "") member_company_no = "0"; // 列印二聯式發票
  3070. // 新增月租付款交易
  3071. $.ajax
  3072. ({
  3073. url:APP_URL+"first_rents_payment",
  3074. dataType:"text",
  3075. type:"post",
  3076. data:
  3077. {
  3078. "tx_no": xvars["rents"]["tx_no"],
  3079. "station_no":xvars["rents"]["station_no"],
  3080. "member_no":member_no,
  3081. "member_company_no":member_company_no,
  3082. "company_no":company_no,
  3083. "amt":xvars["rents"]["amt"],
  3084. "amt1":xvars["rents"]["amt1"],
  3085. "invoice_amt":xvars["rents"]["invoice_amt"],
  3086. "tx_bill_no":xvars["rents"]["tx_bill_no"]
  3087. },
  3088. error:function(xhr, ajaxOptions, thrownError)
  3089. {
  3090. alertify_msg(xhr.responseText);
  3091. console.log("error:"+xhr.responseText+"|"+ajaxOptions+"|"+thrownError);
  3092. },
  3093. success:function(jdata)
  3094. {
  3095. if (jdata == "ok")
  3096. {
  3097. alertify_msg("月租付款交易成功 ! ");
  3098. show_member_tx(member_no);
  3099. }
  3100. else if (jdata == "invoice_fail")
  3101. {
  3102. alertify_msg("發票列印失敗,請補印發票");
  3103. }
  3104. else
  3105. {
  3106. alertify_msg("月租付款失敗!");
  3107. }
  3108. }
  3109. });
  3110. delete xvars["rents"];
  3111. $('#first_rents_dialog').modal('hide');
  3112. }
  3113. // 補印發票
  3114. function print_tx_invoice(tx_bill_no)
  3115. {
  3116. var station_no = $("#tx_bill_lpr_"+tx_bill_no).data("station_no");
  3117. var member_no = $("#tx_bill_lpr_"+tx_bill_no).data("member_no");
  3118. var member_name = $("#tx_bill_lpr_"+tx_bill_no).data("member_name");
  3119. var member_company_no = $("#tx_bill_lpr_"+tx_bill_no).data("member_company_no");
  3120. var company_no = $("#tx_bill_lpr_"+tx_bill_no).data("company_no");
  3121. var invoice_amt = $("#tx_bill_lpr_"+tx_bill_no).data("invoice_amt");
  3122. var remain_amt = $("#tx_bill_lpr_"+tx_bill_no).data("remain_amt");
  3123. var period_3_amt = $("#tx_bill_lpr_"+tx_bill_no).data("period_3_amt");
  3124. var amt = $("#tx_bill_lpr_"+tx_bill_no).data("amt");
  3125. var amt1 = $("#tx_bill_lpr_"+tx_bill_no).data("amt1");
  3126. var deposit = $("#tx_bill_lpr_"+tx_bill_no).data("deposit");
  3127. var start_date_last = $("#tx_bill_lpr_"+tx_bill_no).data("start_date_last");
  3128. var end_date = $("#tx_bill_lpr_"+tx_bill_no).data("end_date");
  3129. var lpr = $("#tx_bill_lpr_"+tx_bill_no).data("lpr");
  3130. var fee_period = $("#tx_bill_lpr_"+tx_bill_no).data("fee_period");
  3131. var fee_period_last = $("#tx_bill_lpr_"+tx_bill_no).data("fee_period_last");
  3132. var tx_no = $("#tx_bill_lpr_"+tx_bill_no).data("tx_no");
  3133. if(invoice_amt > 0)
  3134. {
  3135. // 首期月租付款並列印發票
  3136. xvars["rents"] = Array();
  3137. xvars["rents"]["tx_bill_no"] = tx_bill_no;
  3138. xvars["rents"]["tx_no"] = tx_no;
  3139. xvars["rents"]["station_no"] = station_no;
  3140. xvars["rents"]["member_no"] = member_no;
  3141. xvars["rents"]["member_company_no"] = member_company_no;
  3142. xvars["rents"]["company_no"] = company_no;
  3143. xvars["rents"]["fee_period"] = fee_period;
  3144. xvars["rents"]["amt"] = parseInt(amt);
  3145. xvars["rents"]["amt1"] = parseInt(amt1);
  3146. xvars["rents"]["invoice_amt"] = parseInt(invoice_amt);
  3147. xvars["rents"]["remain_amt"] = parseInt(remain_amt);
  3148. xvars["rents"]["period_3_amt"] = parseInt(period_3_amt);
  3149. $("#first_rents_name").text( "新會員 (" + lpr +")");
  3150. $("#first_rents_station_name").text(st[xvars["rents"]["station_no"]]);
  3151. $("#first_rents_start_date").text(start_date_last); // 上期開始日
  3152. $("#first_rents_end_date").text(end_date); // 本期結束日
  3153. $("#first_rents_deposit").text(deposit);
  3154. $("#first_rents_period").text(period_name[xvars["rents"]["fee_period"]]);
  3155. $("#first_rents_amt").text(xvars["rents"]["amt"]);
  3156. $("#first_rents_amt1").text(xvars["rents"]["amt1"]);
  3157. $("#first_rents_invoice_amt").text(xvars["rents"]["invoice_amt"]);
  3158. $("#first_rents_remain_desc").html(get_invoice_desc(xvars["rents"]["amt"], xvars["rents"]["amt1"], xvars["rents"]["invoice_amt"], xvars["rents"]["remain_amt"], xvars["rents"]["period_3_amt"])); // 發票說明
  3159. $("#first_rents_company_no").val(xvars["rents"]["company_no"]); // 賣方統編
  3160. if(xvars["rents"]["member_company_no"] == 0 || xvars["rents"]["member_company_no"] == '')
  3161. {
  3162. $("#first_rents_member_company_no").val("");
  3163. }
  3164. else
  3165. {
  3166. $("#first_rents_member_company_no").val(xvars["rents"]["member_company_no"]); // 買方統編
  3167. }
  3168. $("#first_rents_dialog").modal({backdrop:false,keyboard:false});
  3169. }
  3170. else
  3171. {
  3172. // 各期月租發票補印
  3173. alertify_msg("流程異常:請通知總公司處理:" + tx_bill_no);
  3174. }
  3175. }
  3176. </script>
  3177. <!-- ----- [P.2] 繳租作業小框 ----- -->
  3178. <!-- ----- ID: rents_dialog ----- -->
  3179. <!-- ----- action: do_rents_payment() ----- -->
  3180. <div class="modal fade" id="rents_dialog">
  3181. <div class="modal-dialog modal-sm">
  3182. <div class="modal-content">
  3183. <div class="modal-header"><h3>繳租作業</h3></div>
  3184. <div class="modal-body">
  3185. <form id="rents_form" class="center-block">
  3186. <div class="main">
  3187. <div class="dataTable_wrapper">
  3188. <table class="table table-striped table-bordered table-hover" style="font-size:12px;">
  3189. <tbody id="rents_list">
  3190. <tr>
  3191. <td style="text-align:right;">姓名</td>
  3192. <td style="text-align:left;" id="rents_name"></td>
  3193. </tr>
  3194. <tr>
  3195. <td style="text-align:right;">場站</td>
  3196. <td style="text-align:left;" id="rents_station_name"></td>
  3197. </tr>
  3198. <tr>
  3199. <td style="text-align:right;vertical-align:middle">賣方統編</td>
  3200. <td style="text-align:left;"><input type="text" id="rents_company_no" class="form-control" style="width:100px !important;" /></td>
  3201. </tr>
  3202. <tr>
  3203. <td style="text-align:right;">上期到期日</td>
  3204. <td style="text-align:left;" id="rents_end_date_last"></td>
  3205. </tr>
  3206. <tr>
  3207. <td style="text-align:right;">本期到期日</td>
  3208. <td style="text-align:left;" id="rents_end_date"></td>
  3209. </tr>
  3210. <tr>
  3211. <td style="text-align:right;">繳期</td>
  3212. <td style="text-align:left;" id="rents_period"></td>
  3213. </tr>
  3214. <tr>
  3215. <td style="text-align:right;">租金</td>
  3216. <td style="text-align:left;" id="rents_amt"></td>
  3217. </tr>
  3218. <tr>
  3219. <td style="text-align:right;vertical-align:middle">買方統編</td>
  3220. <td style="text-align:left;"><input type="text" id="rents_member_company_no" class="form-control" style="width:100px !important;" /></td>
  3221. </tr>
  3222. </tbody>
  3223. </table>
  3224. <button type="button" class="btn btn-large btn-success pull-left" onclick="do_rents_payment();">確定</button>
  3225. &nbsp;&nbsp;
  3226. <button type="button" class="btn btn-large btn-cancel" onclick="$('#rents_dialog').modal('hide');">取消交易</button>
  3227. </div><!-- ----- end of dataTable_wrapper ----- -->
  3228. </div><!-- ----- end of main ----- -->
  3229. </form>
  3230. </div><!-- end of modal-body -->
  3231. </div><!-- end of modal-content -->
  3232. </div><!-- end of modal-dialog -->
  3233. </div><!-- end of modal show -->
  3234. <!-- ----- 繳租作業小框(結束) ----- -->
  3235. <script>
  3236. // 月租付款並列印發票
  3237. function do_rents_payment()
  3238. {
  3239. if($("#rents_company_no").val() == '0' || $("#rents_company_no").val() == '' || $("#rents_company_no").val().length != 8)
  3240. {
  3241. alertify_error('賣方統編有誤,請修正');
  3242. return false;
  3243. }
  3244. if($("#rents_company_no").val() != '' && $("#rents_company_no").val().length != 8)
  3245. {
  3246. alertify_error('買方統編有誤,請修正');
  3247. return false;
  3248. }
  3249. if (!confirm("確認已繳款並開立發票 ?")) return false;
  3250. var member_no = xvars["rents"]["member_no"];
  3251. var company_no = $("#rents_company_no").val();
  3252. var member_company_no = $("#rents_member_company_no").val();
  3253. if (member_company_no == "") member_company_no = "0"; // 列印二聯式發票
  3254. // 新增月租付款交易
  3255. $.ajax
  3256. ({
  3257. url:APP_URL+"rents_payment",
  3258. dataType:"text",
  3259. type:"post",
  3260. data:
  3261. {
  3262. "station_no":xvars["rents"]["station_no"],
  3263. "member_no":member_no,
  3264. "member_attr":xvars["rents"]["member_attr"],
  3265. "lpr":xvars["rents"]["lpr"],
  3266. "member_company_no":member_company_no,
  3267. "company_no":company_no,
  3268. "fee_period":xvars["rents"]["fee_period"],
  3269. "fee_period_last":xvars["rents"]["fee_period_last"],
  3270. "amt":xvars["rents"]["amt"],
  3271. "amt_last":xvars["rents"]["amt_last"],
  3272. "end_date":xvars["rents"]["end_date"],
  3273. "start_date_last":$("#sdate_"+xvars["rents"]["member_no"]).text(),
  3274. "end_date_last":xvars["rents"]["end_date_last"]
  3275. },
  3276. error:function(xhr, ajaxOptions, thrownError)
  3277. {
  3278. alertify_msg(xhr.responseText);
  3279. console.log("error:"+xhr.responseText+"|"+ajaxOptions+"|"+thrownError);
  3280. },
  3281. success:function(jdata)
  3282. {
  3283. if (jdata == "ok")
  3284. {
  3285. alertify_msg("月租付款交易成功 ! ");
  3286. show_member_tx(member_no);
  3287. }
  3288. else if (jdata == "invoice_fail")
  3289. {
  3290. alertify_msg("發票列印失敗,交易已取消");
  3291. }
  3292. else
  3293. {
  3294. alertify_msg("月租付款失敗 !");
  3295. }
  3296. }
  3297. });
  3298. delete xvars["rents"];
  3299. $('#rents_dialog').modal('hide');
  3300. }
  3301. </script>
  3302. <!-- ----- [S] 退租作業小框 ----- -->
  3303. <!-- ----- ID: stop_rents_dialog ----- -->
  3304. <!-- ----- action: do_stop_rents_payment() ----- -->
  3305. <div class="modal fade" id="stop_rents_dialog">
  3306. <div class="modal-dialog modal-xl">
  3307. <div class="modal-content">
  3308. <div class="modal-header"><h3>退租作業</h3></div>
  3309. <div class="modal-body">
  3310. <form id="stop_rents_form" class="center-block">
  3311. <div class="main">
  3312. <div class="dataTable_wrapper">
  3313. <table class="table table-striped table-bordered table-hover" style="font-size:18px;">
  3314. <tbody id="stop_rents_list">
  3315. <tr>
  3316. <td style="text-align:right;">姓名</td>
  3317. <td style="text-align:left;" id="stop_rents_name"></td>
  3318. </tr>
  3319. <tr>
  3320. <td style="text-align:right;">場站</td>
  3321. <td style="text-align:left;" id="stop_rents_station_name"></td>
  3322. </tr>
  3323. <tr>
  3324. <td style="text-align:right;">身份別</td>
  3325. <td style="text-align:left;" id="stop_rents_member_attr"></td>
  3326. </tr>
  3327. <tr>
  3328. <td style="text-align:right;">繳期</td>
  3329. <td style="text-align:left;" id="stop_rents_period"></td>
  3330. </tr>
  3331. <!--tr>
  3332. <td style="text-align:right;">繳期租金</td>
  3333. <td style="text-align:left;" id="stop_rents_amt"></td>
  3334. </tr-->
  3335. <tr>
  3336. <td style="text-align:right;">到期日</td>
  3337. <td style="text-align:left;" id="stop_rents_end_date_last"></td>
  3338. </tr>
  3339. <tr>
  3340. <td style="text-align:right;">退租日</td>
  3341. <td style="text-align:left;"><input id="stop_rents_end_date" type="datetime" name="stop_rents_end_date" class="form-control" onchange="calculate_stop_rents_amt();"/></td>
  3342. </tr>
  3343. <tr>
  3344. <td style="text-align:right;">退租明細</td>
  3345. <td style="text-align:left;font-size:24px;color:blue;" id="stop_rents_desc"></td>
  3346. </tr>
  3347. <tr>
  3348. <input id="stop_rents_tot_amt" type="hidden" name="stop_rents_tot_amt"/>
  3349. </tr>
  3350. </tbody>
  3351. </table>
  3352. <button type="button" class="btn btn-large btn-success pull-left" onclick="do_stop_rents_payment();">確定</button>
  3353. &nbsp;&nbsp;
  3354. <button type="button" class="btn btn-large btn-cancel" onclick="$('#stop_rents_dialog').modal('hide');">取消</button>
  3355. </div><!-- ----- end of dataTable_wrapper ----- -->
  3356. </div><!-- ----- end of main ----- -->
  3357. </form>
  3358. </div><!-- end of modal-body -->
  3359. </div><!-- end of modal-content -->
  3360. </div><!-- end of modal-dialog -->
  3361. </div><!-- end of modal show -->
  3362. <!-- ----- 退租作業小框(結束) ----- -->
  3363. <script>
  3364. // 退租, 試算
  3365. function calculate_stop_rents_amt()
  3366. {
  3367. var station_no = xvars["rents"]["station_no"];
  3368. var member_no = xvars["rents"]["member_no"];
  3369. var stop_date = $("#stop_rents_end_date").val();
  3370. $("#stop_rents_desc").html("");
  3371. $.ajax
  3372. ({
  3373. url:APP_URL+"calculate_stop_rents_amt",
  3374. dataType:"json",
  3375. type:"post",
  3376. data:
  3377. {
  3378. "station_no":station_no,
  3379. "member_no":member_no,
  3380. "stop_date":stop_date
  3381. },
  3382. success:function(jdata)
  3383. {
  3384. var tmp_list = [];
  3385. var invoice_tmp_list = [];
  3386. for(idx in jdata["results"])
  3387. {
  3388. var detail = jdata["results"][idx];
  3389. var fee_period_last_name = (detail.fee_period_last == 0) ? '臨停費率': period_name[detail.fee_period_last] ? period_name[detail.fee_period_last] : '繳期 ' + detail.fee_period_last;
  3390. var fee_period_name = (detail.fee_period == 0) ? '臨停費率': period_name[detail.fee_period] ? period_name[detail.fee_period] : '繳期 ' + detail.fee_period;
  3391. var stop_rents_period_name = (detail.stop_rents_period == 0) ? '臨停費率': period_name[detail.stop_rents_period] ? period_name[detail.stop_rents_period] : '繳期 ' + detail.stop_rents_period;
  3392. // 不足月
  3393. if(detail.amt1 > 0)
  3394. {
  3395. tmp_list = tmp_list.concat([
  3396. "[ ", detail.start_date_last, " 至 ", detail.end_date_last, " ] <br/>",
  3397. "* 計費:", detail.amt1, " 元 (", fee_period_last_name, ")<br/>"]);
  3398. if(detail.stop_rents_used_amt_last == detail.amt1)
  3399. {
  3400. tmp_list = tmp_list.concat(["**使用完畢**<br/>"]);
  3401. }
  3402. else if(detail.stop_rents_used_amt_last > 0)
  3403. {
  3404. tmp_list = tmp_list.concat([
  3405. "* 使用:", detail.stop_used_days_last, " 天<br/>",
  3406. "* 費用:", detail.stop_rents_used_amt_last, " 元 (臨停費率)<br/>"]);
  3407. }
  3408. else
  3409. {
  3410. tmp_list = tmp_list.concat(["**尚未使用**<br/>"]);
  3411. }
  3412. }
  3413. // 足月
  3414. if(detail.amt > 0)
  3415. {
  3416. tmp_list = tmp_list.concat([
  3417. "[ ", detail.start_date, " 至 ", detail.end_date, " ] <br/>",
  3418. "* 計費:", detail.amt, " 元 (", fee_period_name, ")<br/>"]);
  3419. if(detail.stop_rents_used_amt == detail.amt)
  3420. {
  3421. tmp_list = tmp_list.concat(["**使用完畢**<br/>"]);
  3422. }
  3423. else if(detail.stop_used_days > 0)
  3424. {
  3425. tmp_list = tmp_list.concat([
  3426. "* 使用:", detail.stop_used_days, " 天<br/>",
  3427. "* 費用:", detail.stop_rents_used_amt, " 元 (", stop_rents_period_name, ")<br/>"]);
  3428. }
  3429. else
  3430. {
  3431. tmp_list = tmp_list.concat(["**尚未使用**<br/>"]);
  3432. }
  3433. }
  3434. //發票資訊
  3435. for(idx_i in detail.stop_rents_invoices)
  3436. {
  3437. var invoice = detail.stop_rents_invoices[idx_i];
  3438. tmp_list = tmp_list.concat(["**發票: ", invoice.invoice_track, invoice.invoice_no, "**金額: ", invoice.invoice_amt]);
  3439. if(invoice.refund_amt > 0)
  3440. {
  3441. tmp_list = tmp_list.concat(["<br/>", "****************待折讓發票金額:", invoice.refund_amt]);
  3442. invoice_tmp_list = invoice_tmp_list.concat([
  3443. "**", detail.start_date, "**發票: ", invoice.invoice_track, invoice.invoice_no, "<br/>",
  3444. "****發票金額: ", invoice.invoice_amt, "**待折讓金額:", invoice.refund_amt, "<br/>"]);
  3445. }
  3446. tmp_list = tmp_list.concat(["<br/>"]);
  3447. }
  3448. // 審核狀態
  3449. if(detail.verify_state == 1)
  3450. {
  3451. // 本次結算
  3452. if(detail.stop_rents_return_amt == 0)
  3453. {
  3454. // do nothing
  3455. }
  3456. else if(detail.stop_rents_return_amt > 0)
  3457. {
  3458. tmp_list = tmp_list.concat([">>本次退還金額:", detail.stop_rents_return_amt, " 元<br/>"]);
  3459. }
  3460. else
  3461. {
  3462. tmp_list = tmp_list.concat([">>本次補繳金額:", - detail.stop_rents_return_amt, " 元<br/>"]);
  3463. }
  3464. }
  3465. else
  3466. {
  3467. tmp_list = tmp_list.concat(["**此交易,尚未通過審核**<br/>"]);
  3468. if(detail.remarks)
  3469. {
  3470. tmp_list = tmp_list.concat(["**備註:", detail.remarks, "<br/>"]);
  3471. }
  3472. }
  3473. tmp_list = tmp_list.concat(["<br/>"]);
  3474. }
  3475. // 總結
  3476. tmp_list = tmp_list.concat([
  3477. "[結算]<br/>",
  3478. "**合約終止時間:", stop_date, " 23:59:59 <br/> "]);
  3479. if(jdata["return_amt"] == 0)
  3480. {
  3481. tmp_list = tmp_list.concat([
  3482. "**總退還金額:無<br/> "]);
  3483. }
  3484. else if(jdata["return_amt"] > 0)
  3485. {
  3486. tmp_list = tmp_list.concat([
  3487. "**總退還金額:", jdata["return_amt"], " 元<br/> "]);
  3488. }
  3489. else
  3490. {
  3491. tmp_list = tmp_list.concat([
  3492. "**需補繳金額:", - jdata["return_amt"], " 元 (臨停費率)<br/> "]);
  3493. }
  3494. tmp_list = tmp_list.concat([
  3495. "**押金:", jdata["return_deposit"], " 元<br/><br/>"]);
  3496. // 總結 [折讓發票]
  3497. if(invoice_tmp_list.length > 0)
  3498. {
  3499. tmp_list = tmp_list.concat("[折讓發票]<br/>");
  3500. tmp_list = tmp_list.concat(invoice_tmp_list);
  3501. tmp_list = tmp_list.concat("<br/><br/>");
  3502. }
  3503. if(jdata["verify_state"])
  3504. {
  3505. // 設定總金額
  3506. var tot_amt = parseInt(jdata["return_amt"]) + parseInt(jdata["return_deposit"]);
  3507. $("#stop_rents_tot_amt").text(tot_amt);
  3508. //console.log(station_no + "|" + + member_no + "|" + tot_amt + "|" + stop_date);
  3509. }
  3510. else
  3511. {
  3512. // 審核未完成
  3513. tmp_list = tmp_list.concat([
  3514. "**審核未完成, 請通知營管處理**<br/><br/>"]);
  3515. $("#stop_rents_tot_amt").text('GG');
  3516. }
  3517. $("#stop_rents_desc").append(tmp_list.join(''));
  3518. }
  3519. });
  3520. }
  3521. // 退租
  3522. function do_stop_rents_payment()
  3523. {
  3524. if($("#stop_rents_end_date").val() == '0' || $("#stop_rents_end_date").val() == '')
  3525. {
  3526. alertify_error('退租日有誤,請修正!');
  3527. return false;
  3528. }
  3529. if($("#stop_rents_tot_amt").text() == 'GG')
  3530. {
  3531. alertify_error('請通知營管處理,謝謝!');
  3532. return false;
  3533. }
  3534. var station_no = xvars["rents"]["station_no"];
  3535. var member_no = xvars["rents"]["member_no"];
  3536. var stop_date = $("#stop_rents_end_date").val();
  3537. var tot_amt = $("#stop_rents_tot_amt").text();
  3538. var lpr = xvars["rents"]["lpr"];
  3539. // 新增退租交易
  3540. $.ajax
  3541. ({
  3542. url:APP_URL+"stop_rents_payment",
  3543. dataType:"text",
  3544. type:"post",
  3545. data:
  3546. {
  3547. "station_no":station_no,
  3548. "member_no":member_no,
  3549. "stop_date":stop_date,
  3550. "tot_amt":tot_amt
  3551. },
  3552. error:function(xhr, ajaxOptions, thrownError)
  3553. {
  3554. alertify_msg(xhr.responseText);
  3555. console.log("error:"+xhr.responseText+"|"+ajaxOptions+"|"+thrownError);
  3556. },
  3557. success:function(jdata)
  3558. {
  3559. if (jdata == "ok")
  3560. {
  3561. alertify_msg("成功 ! ");
  3562. // 自動搜尋退租
  3563. $("#q_refund_str").val(lpr);
  3564. $("#member_tx_refund_form").submit();
  3565. show_item('member_tx_refund_query', 'member_tx_refund_query');
  3566. }
  3567. else if (jdata == "invoice_fail")
  3568. {
  3569. alertify_msg("失敗,已取消");
  3570. }
  3571. else
  3572. {
  3573. alertify_msg("失敗 !");
  3574. }
  3575. }
  3576. });
  3577. delete xvars["rents"];
  3578. $('#stop_rents_dialog').modal('hide');
  3579. }
  3580. </script>