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

442 lines
22KB

  1. <?php /* ----- 交易退款總覽 ----- */?>
  2. <div data-items="member_tx_refund_query" class="row" style="display:none;">
  3. <div class="col-lg-12">
  4. <div class="panel panel-default">
  5. <div class="panel-heading">
  6. 退租查詢
  7. <form id="member_tx_refund_form" role="form">
  8. <div class="form-group">
  9. <label class="select-inline" for="station_refund_select">
  10. <select class="form-control" id="station_refund_select">
  11. </select>
  12. </label>
  13. <label class="radio-inline"><input type="radio" name="q_item" value="lpr" checked />車號</label>
  14. <label class="input-inline">&nbsp;&nbsp;<input type="text" id="q_refund_str" placeholder="關鍵字" /></label>
  15. <label class="input-inline"><input type="submit" value="查詢" /></label>
  16. </div>
  17. </form>
  18. </div>
  19. <!-- /.panel-heading -->
  20. <div class="panel-body">
  21. <div class="dataTable_wrapper">
  22. <table class="table table-striped table-bordered table-hover">
  23. <thead>
  24. <tr>
  25. <th style="text-align:center;">代號</th>
  26. <th style="text-align:center;">車號</th>
  27. <th style="text-align:center;">金額</th>
  28. <th style="text-align:center;">押金</th>
  29. <th style="text-align:center;">總金額 (金額 + 押金)</th>
  30. <th style="text-align:center;">退租時間</th>
  31. <th style="text-align:center;">退租發票</th>
  32. <th style="text-align:center;">退租狀態</th>
  33. <th style="text-align:center;">建立時間</th>
  34. </tr>
  35. </thead>
  36. <tbody id="member_tx_refund" style="font-size:18px;"></tbody>
  37. </table>
  38. </div><?php /* ----- end of dataTable_wrapper ----- */?>
  39. </div><?php /* ----- end of panel-body ----- */?>
  40. </div><?php /* ----- end of panel panel-default ----- */?>
  41. </div><?php /* ----- end of col-lg-12 ----- */?>
  42. <div id="member_tx_refund_list_detail_box" class="col-lg-12" style="display:none;">
  43. <div class="panel panel-default">
  44. <div class="panel-heading">
  45. 交易記錄(車號:<span id='member_tx_refund_list_detail_lpr'></span>,退租時間:<span id='member_tx_refund_list_detail_refund_time'></span>)
  46. </div>
  47. <!-- /.panel-heading -->
  48. <div class="panel-body">
  49. <div class="dataTable_wrapper">
  50. <table class="table table-striped table-bordered table-hover">
  51. <thead>
  52. <tr>
  53. <th style="text-align:left;">代號</th>
  54. <th style="text-align:center;">入帳日</th>
  55. <th style="text-align:left;">車號</th>
  56. <th style="text-align:center;">會員開始日</th>
  57. <th style="text-align:center;">上期繳期</th>
  58. <th style="text-align:center;">上期結束日</th>
  59. <th style="text-align:center;">上期租金</th>
  60. <th style="text-align:center;">本期繳期</th>
  61. <th style="text-align:center;">本期開始日</th>
  62. <th style="text-align:center;">本期結束日</th>
  63. <th style="text-align:center;">本期租金</th>
  64. <th style="text-align:center;">發票時間</th>
  65. <th style="text-align:center;">買方統編</th>
  66. <th style="text-align:center;">賣方統編</th>
  67. <th style="text-align:center;">發票金額</th>
  68. <th style="text-align:center;">發票字軌</th>
  69. <th style="text-align:center;">發票號碼</th>
  70. <th style="text-align:center;">發票種類</th>
  71. <th style="text-align:center;">狀態</th>
  72. <th style="text-align:center;">待辦金額</th>
  73. </tr>
  74. </thead>
  75. <tbody id="member_tx_refund_list_detail" style="font-size:16px;"></tbody>
  76. </table>
  77. </div><!-- ----- end of dataTable_wrapper ----- -->
  78. </div><!-- ----- end of panel-body ----- -->
  79. </div><!-- ----- end of panel panel-default ----- -->
  80. </div><!-- ----- end of col-lg-12 ----- -->
  81. </div>
  82. <?php /* ----- 交易退款總覽(結束) ----- */?>
  83. <script>
  84. // 設定場站資訊
  85. for(station_no in st)
  86. {
  87. $(new Option(st[station_no],station_no)).appendTo('#station_refund_select'); // 會員退租場站編號
  88. }
  89. // 退租查詢
  90. $("#member_tx_refund_form").submit(function(e)
  91. {
  92. e.preventDefault();
  93. if ($("#q_refund_str").val() == "")
  94. {
  95. alertify_log("請填寫查詢關鍵字..");
  96. return false;
  97. }
  98. $("#member_tx_refund").html(""); // clean all
  99. $("#member_tx_refund_list_detail").html("");
  100. $("#member_tx_refund_list_detail_box").hide();
  101. $.ajax
  102. ({
  103. url: "<?=APP_URL?>member_tx_refund_query",
  104. type: "post",
  105. dataType:"json",
  106. data:{"station_no":$("#station_refund_select").val(), "q_item":$("input:radio:checked[name=q_item]").val(), "q_str":$("#q_refund_str").val()},
  107. error:function(xhr, ajaxOptions, thrownError)
  108. {
  109. var error_msg = xhr.responseText ? xhr.responseText : "連線失敗, 請稍候再試";
  110. alertify_msg(error_msg);
  111. console.log("error:"+error_msg+"|"+ajaxOptions+"|"+thrownError);
  112. },
  113. success:function(jdata)
  114. {
  115. var member_list = ['<tr>'];
  116. for(idx in jdata)
  117. {
  118. member_refund_id = jdata[idx]['member_refund_id'];
  119. member_list = member_list.concat(["<td style='text-align:center;'>", jdata[idx]['member_refund_id'], "</td>"]);
  120. member_list = member_list.concat(["<td id='member_tx_refund_query_lpr_", member_refund_id,
  121. "' data-station_no='", jdata[idx]['station_no'],
  122. "' data-member_no='", jdata[idx]['member_no'],
  123. "' data-lpr='", jdata[idx]['lpr'],
  124. "' data-member_company_no='", jdata[idx]['member_company_no'],
  125. "' data-company_no='", jdata[idx]['company_no'],
  126. "' data-refund_amt='", jdata[idx]['refund_amt'],
  127. "' data-refund_deposit='", jdata[idx]['refund_deposit'],
  128. "' data-refund_tot_amt='", jdata[idx]['refund_tot_amt'],
  129. "' data-refund_time='", jdata[idx]['refund_time'],
  130. "' data-refund_state='", jdata[idx]['refund_state'],
  131. "' data-create_time='", jdata[idx]['create_time'],
  132. "' style='text-align:left;'>", jdata[idx]['lpr'], "</td>"]);
  133. if(jdata[idx]['refund_amt'] >= 0)
  134. {
  135. member_list = member_list.concat(["<td style='text-align:center;'>", jdata[idx]['refund_amt'], " 元</td>"]);
  136. }
  137. else
  138. {
  139. member_list = member_list.concat(["<td style='text-align:center;'>需補繳 ", -jdata[idx]['refund_amt'], " 元</td>"]);
  140. }
  141. member_list = member_list.concat(["<td style='text-align:center;'>", jdata[idx]['refund_deposit'], " 元</td>"]);
  142. if(jdata[idx]['refund_tot_amt'] >= 0)
  143. {
  144. member_list = member_list.concat(["<td style='text-align:center;'>共退還 ", jdata[idx]['refund_tot_amt'], " 元</td>"]);
  145. }
  146. else
  147. {
  148. member_list = member_list.concat(["<td style='color:red;text-align:center;'>總共需補繳 ", -jdata[idx]['refund_tot_amt'], " 元</td>"]);
  149. }
  150. member_list = member_list.concat(["<td style='text-align:center;'>", jdata[idx]['refund_time'], "</td>"]);
  151. 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>"]);
  152. if(jdata[idx]['refund_state'] == 0)
  153. {
  154. member_list = member_list.concat(["<td style='color:blue;text-align:center;'>待確認</td>"]);
  155. }
  156. else if(jdata[idx]['refund_state'] == 1)
  157. {
  158. member_list = member_list.concat(["<td style='color:red;text-align:center;'>待補開</td>"]);
  159. }
  160. else if(jdata[idx]['refund_state'] == 2)
  161. {
  162. member_list = member_list.concat(["<td style='color:red;text-align:center;'>待折讓</td>"]);
  163. }
  164. else if(jdata[idx]['refund_state'] == 100)
  165. {
  166. member_list = member_list.concat(["<td style='color:black;text-align:center;'>已完成</td>"]);
  167. }
  168. else
  169. {
  170. member_list = member_list.concat(["<td style='color:red;text-align:center;'>未定義</td>"]);
  171. }
  172. member_list = member_list.concat(["<td style='text-align:center;'>", jdata[idx]['create_time'], "</td>"]);
  173. member_list = member_list.concat(["</tr>"]);
  174. }
  175. $("#member_tx_refund").append(member_list.join(''));
  176. }
  177. });
  178. });
  179. // 退租記錄
  180. function show_member_refund_detail(member_refund_id)
  181. {
  182. var refund_lpr = $("#member_tx_refund_query_lpr_"+member_refund_id).data("lpr");
  183. var refund_time = $("#member_tx_refund_query_lpr_"+member_refund_id).data("refund_time");
  184. $("#member_tx_refund_list_detail_lpr").text(refund_lpr);
  185. $("#member_tx_refund_list_detail_refund_time").text(refund_time);
  186. show_member_tx_refund_bill(0, '', '', '4', 0, member_refund_id);
  187. }
  188. // 完成退租交易
  189. /*
  190. function complete_member_refund(member_refund_id)
  191. {
  192. var refund_state = $("#member_tx_refund_query_lpr_"+member_refund_id).data("refund_state");
  193. var refund_lpr = $("#member_tx_refund_query_lpr_"+member_refund_id).data("lpr");
  194. $("#member_tx_refund_list_detail_lpr").text(refund_lpr);
  195. if(refund_state == 0)
  196. {
  197. // 待確認流程
  198. alertify_log("待確認流程");
  199. }
  200. else if(refund_state == 1)
  201. {
  202. show_member_tx_refund_bill(0, '', '1', '4'); // 待補開 (已退租)
  203. }
  204. else if(refund_state == 2)
  205. {
  206. show_member_tx_refund_bill(0, '', '2', '4'); // 待折讓 (已退租, 已開立發票)
  207. }
  208. else
  209. {
  210. // 未定義
  211. alertify_log("未定義");
  212. }
  213. return false;
  214. }
  215. */
  216. // 發票開立記錄
  217. function show_member_tx_refund_bill(tx_no=0, verify_state_str='', invoice_state_str='', tx_state_str='', tx_bill_no =0, member_refund_id=0)
  218. {
  219. $("#member_tx_refund_list_detail").html(""); // -- 清除原內容 --
  220. $.ajax
  221. ({
  222. url:APP_URL+"member_tx_bill_query",
  223. type:"post",
  224. dataType:"json",
  225. data:{"station_no":station_no, "tx_no":tx_no, "verify_state_str":verify_state_str,
  226. "invoice_state_str":invoice_state_str, "tx_state_str":tx_state_str,
  227. "tx_bill_no":tx_bill_no, "member_refund_id":member_refund_id},
  228. error:function(xhr, ajaxOptions, thrownError)
  229. {
  230. var error_msg = xhr.responseText ? xhr.responseText : "連線失敗, 請稍候再試";
  231. alertify_msg(error_msg);
  232. console.log("error:"+error_msg+"|"+ajaxOptions+"|"+thrownError);
  233. $("#member_tx_refund_list_detail_box").hide();
  234. },
  235. success:function(jdata)
  236. {
  237. $("#member_tx_refund_list_detail_box").show();
  238. var member_list = [["<tr>"]];
  239. for(idx in jdata)
  240. {
  241. //console.log(jdata.length + " : " + idx + " , " + jdata[idx]['invoice_amt'] + " : " + jdata[idx]['remain_amt']);
  242. tx_no = jdata[idx]['tx_no'];
  243. member_list = member_list.concat(["<td style='text-align:left;'>", jdata[idx]['tx_no'], "_", jdata[idx]['tx_bill_no'], "</td>"]);
  244. //member_list = member_list.concat(["<td style='text-align:left;'>", st[jdata[idx]['station_no']], "</td>"]);
  245. member_list = member_list.concat(["<td id='acc_date_", tx_no, "' style='text-align:center;'>", jdata[idx]['acc_date'], "</td>"]);
  246. member_list = member_list.concat(["<td id='tx_bill_lpr_", jdata[idx]['tx_bill_no'],
  247. "' data-station_no='", jdata[idx]['station_no'],
  248. "' data-member_no='", jdata[idx]['member_no'],
  249. "' data-tx_bill_no='", jdata[idx]['tx_bill_no'],
  250. "' data-tx_no='", jdata[idx]['tx_no'],
  251. "' data-member_company_no='", jdata[idx]['member_company_no'],
  252. "' data-company_no='", jdata[idx]['company_no'],
  253. "' data-invoice_amt='", jdata[idx]['invoice_amt'],
  254. "' data-remain_amt='", jdata[idx]['remain_amt'],
  255. "' data-period_3_amt='", jdata[idx]['period_3_amt'],
  256. "' data-amt='", jdata[idx]['amt'],
  257. "' data-amt1='", jdata[idx]['amt1'],
  258. "' data-deposit='", jdata[idx]['deposit'],
  259. "' data-start_date_last='", jdata[idx]['start_date_last'],
  260. "' data-end_date='", jdata[idx]['end_date'],
  261. "' data-lpr='", jdata[idx]['lpr'],
  262. "' data-fee_period='", jdata[idx]['fee_period'],
  263. "' data-refund_amt='", jdata[idx]['refund_amt'],
  264. "' data-invoice_state='", jdata[idx]['invoice_state'],
  265. "' style='text-align:left;'>", jdata[idx]['lpr'], "</td>"]);
  266. member_list = member_list.concat(["<td id='sdate_last_", tx_no, "' style='text-align:center;'>", jdata[idx]['start_date_last'], "</td>"]);
  267. member_list = member_list.concat(["<td id='fee_period_last_", tx_no, "' style='text-align:center;'>", period_name[jdata[idx]['fee_period_last']], "</td>"]);
  268. member_list = member_list.concat(["<td id='edate_last_", tx_no, "' style='text-align:center;'>", jdata[idx]['end_date_last'], "</td>"]);
  269. member_list = member_list.concat(["<td id='amt_last_", tx_no, "' style='text-align:center;'>", jdata[idx]['amt_last'], "</td>"]);
  270. member_list = member_list.concat(["<td id='fee_period_", tx_no, "' style='text-align:center;'>", period_name[jdata[idx]['fee_period']], "</td>"]);
  271. member_list = member_list.concat(["<td id='sdate_", tx_no, "' style='text-align:center;'>", jdata[idx]['start_date'], "</td>"]);
  272. if(jdata[idx]['invoice_state'] == 1)
  273. {
  274. // 待補開
  275. member_list = member_list.concat(["<td id='edate_", tx_no, "' style='text-align:center;'>指定退租日<br/>", jdata[idx]['end_date'], "</td>"]);
  276. member_list = member_list.concat(["<td id='amt_", tx_no, "' style='text-align:center;'>補繳總金額<br/>", jdata[idx]['amt'], " 元</td>"]);
  277. }
  278. else if(jdata[idx]['invoice_state'] == 2)
  279. {
  280. // 待折讓
  281. member_list = member_list.concat(["<td id='edate_", tx_no, "' style='text-align:center;'>指定退租日<br/>", jdata[idx]['end_date'], "</td>"]);
  282. member_list = member_list.concat(["<td id='amt_", tx_no, "' style='text-align:center;'>折讓總金額<br/>", jdata[idx]['amt'], " 元</td>"]);
  283. }
  284. else
  285. {
  286. member_list = member_list.concat(["<td id='edate_", tx_no, "' style='text-align:center;'>", jdata[idx]['end_date'], "</td>"]);
  287. member_list = member_list.concat(["<td id='amt_", tx_no, "' style='text-align:center;'>", jdata[idx]['amt'], " 元</td>"]);
  288. }
  289. // 是否已有發票
  290. if(jdata[idx]['invoice_no'] > 0)
  291. {
  292. member_list = member_list.concat(["<td id='invoice_time_", tx_no, "' style='text-align:center;'>", jdata[idx]['invoice_time'], "</td>"]);
  293. member_list = member_list.concat(["<td id='member_company_no_", tx_no, "' style='text-align:center;'>", jdata[idx]['member_company_no'], "</td>"]);
  294. member_list = member_list.concat(["<td id='company_no_", tx_no, "' style='text-align:center;'>", jdata[idx]['company_no'], "</td>"]);
  295. member_list = member_list.concat(["<td id='invoice_amt_", tx_no, "' style='text-align:center;'>", jdata[idx]['invoice_amt'], "</td>"]);
  296. member_list = member_list.concat(["<td id='invoice_track_", tx_no, "' style='text-align:center;'>", jdata[idx]['invoice_track'], "</td>"]);
  297. member_list = member_list.concat(["<td id='invoice_no_", tx_no, "' style='text-align:center;'>", jdata[idx]['invoice_no'], "</td>"]);
  298. if(jdata[idx]['invoice_type'] == 0)
  299. {
  300. member_list = member_list.concat(["<td id='invoice_type_", tx_no, "' style='text-align:center;'>電子發票</td>"]);
  301. }
  302. else if(jdata[idx]['invoice_type'] == 1)
  303. {
  304. member_list = member_list.concat(["<td id='invoice_type_", tx_no, "' style='text-align:center;'>手開發票</td>"]);
  305. }
  306. else
  307. {
  308. member_list = member_list.concat(["<td id='invoice_type_", tx_no, "' style='text-align:center;'>異常</td>"]);
  309. }
  310. }
  311. else
  312. {
  313. member_list = member_list.concat(["<td id='invoice_time_", tx_no, "' style='text-align:center;'>未開立</td>"]);
  314. member_list = member_list.concat(["<td id='member_company_no_", tx_no, "' style='text-align:center;'>", jdata[idx]['member_company_no'], "</td>"]);
  315. member_list = member_list.concat(["<td id='company_no_", tx_no, "' style='text-align:center;'>", jdata[idx]['company_no'], "</td>"]);
  316. member_list = member_list.concat(["<td id='invoice_amt_", tx_no, "' style='text-align:center;'>", jdata[idx]['invoice_amt'], "</td>"]);
  317. member_list = member_list.concat(["<td id='invoice_track_", tx_no, "' style='text-align:center;'></td>"]);
  318. if(jdata[idx]['tx_state'] == 4 && jdata[idx]['invoice_state'] == 0)
  319. {
  320. // 已退租, 原先交易將不再開放開立
  321. member_list = member_list.concat(["<td id='invoice_no_", tx_no, "' style='text-align:center;'></td>"]);
  322. member_list = member_list.concat(["<td id='invoice_type_", tx_no, "' style='text-align:center;'></td>"]);
  323. }
  324. else
  325. {
  326. 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>"]);
  327. 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>"]);
  328. }
  329. }
  330. //member_list = member_list.concat(["<td style='color:blue;text-align:center;' id='remarks_", jdata[idx]['tx_bill_no'], "'>", jdata[idx]['remarks'], "</td>"]);
  331. if(jdata[idx]['tx_state'] == 4)
  332. {
  333. member_list = member_list.concat(["<td style='color:black;text-align:center;'>已退租</td>"]);
  334. }
  335. else if(jdata[idx]['tx_state'] == 44)
  336. {
  337. member_list = member_list.concat(["<td style='color:black;text-align:center;'>交易取消</td>"]);
  338. }
  339. else if(jdata[idx]['verify_state'] == 0)
  340. {
  341. 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>"]);
  342. }
  343. else if(jdata[idx]['verify_state'] == 1)
  344. {
  345. member_list = member_list.concat(["<td style='color:green;text-align:center;'>已審核</td>"]);
  346. }
  347. else
  348. {
  349. 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>"]);
  350. }
  351. // 剩餘開立金額
  352. if(jdata[idx]['invoice_state'] == 1)
  353. {
  354. // 待開立
  355. if(jdata[idx]['remain_amt'] > 0)
  356. {
  357. 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>"]);
  358. }
  359. else
  360. {
  361. member_list = member_list.concat(["<td style='text-align:center;'>無</td>"]);
  362. }
  363. }
  364. else if(jdata[idx]['invoice_state'] == 2)
  365. {
  366. // 待折讓
  367. if(jdata[idx]['refund_amt'] > 0)
  368. {
  369. 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>"]);
  370. }
  371. else
  372. {
  373. member_list = member_list.concat(["<td style='text-align:center;'>異常</td>"]);
  374. }
  375. }
  376. else
  377. {
  378. // 待開立
  379. if(jdata[idx]['remain_amt'] > 0)
  380. {
  381. if(jdata[idx]['tx_state'] == 4 && jdata[idx]['invoice_state'] == 0)
  382. {
  383. // 已退租, 原先交易將不再開放開立
  384. member_list = member_list.concat(["<td style='text-align:center;'>尚餘 ", jdata[idx]['remain_amt'] ," 元</td>"]);
  385. }
  386. else
  387. {
  388. 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>"]);
  389. }
  390. }
  391. else
  392. {
  393. member_list = member_list.concat(["<td style='text-align:center;'>無</td>"]);
  394. }
  395. }
  396. member_list = member_list.concat(["</tr>"]);;
  397. }
  398. $("#member_tx_refund_list_detail").append(member_list.join(''));
  399. }
  400. });
  401. }
  402. </script>