VM暫存
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

4077 lignes
173KB

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