VM暫存
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

772 líneas
35KB

  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. <th style="text-align:center;">退租發票</th>
  35. <th style="text-align:center;">發票狀態</th>
  36. <th style="text-align:center;">建立時間</th>
  37. </tr>
  38. </thead>
  39. <tbody id="member_tx_refund" style="font-size:18px;"></tbody>
  40. </table>
  41. </div><?php /* ----- end of dataTable_wrapper ----- */?>
  42. </div><?php /* ----- end of panel-body ----- */?>
  43. </div><?php /* ----- end of panel panel-default ----- */?>
  44. </div><?php /* ----- end of col-lg-12 ----- */?>
  45. <div id="member_tx_refund_list_detail_box" class="col-lg-12" style="display:none;">
  46. <div class="panel panel-default">
  47. <div class="panel-heading">
  48. 交易記錄(車號:<span id='member_tx_refund_list_detail_lpr'></span>,退租時間:<span id='member_tx_refund_list_detail_refund_time'></span>)
  49. </div>
  50. <!-- /.panel-heading -->
  51. <div class="panel-body">
  52. <div class="dataTable_wrapper">
  53. <table class="table table-striped table-bordered table-hover">
  54. <thead>
  55. <tr>
  56. <th style="text-align:left;">代號</th>
  57. <th style="text-align:center;">入帳日</th>
  58. <th style="text-align:left;">車號</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. <th style="text-align:center;">發票種類</th>
  74. <th style="text-align:center;">狀態</th>
  75. <th style="text-align:center;">待辦金額</th>
  76. </tr>
  77. </thead>
  78. <tbody id="member_tx_refund_list_detail" style="font-size:16px;"></tbody>
  79. </table>
  80. </div><!-- ----- end of dataTable_wrapper ----- -->
  81. </div><!-- ----- end of panel-body ----- -->
  82. </div><!-- ----- end of panel panel-default ----- -->
  83. </div><!-- ----- end of col-lg-12 ----- -->
  84. </div>
  85. <?php /* ----- 交易退款總覽(結束) ----- */?>
  86. <script>
  87. // 設定場站資訊
  88. for(station_no in st)
  89. {
  90. $(new Option(st[station_no],station_no)).appendTo('#station_refund_select'); // 會員退租場站編號
  91. }
  92. // 退租查詢
  93. $("#member_tx_refund_form").submit(function(e)
  94. {
  95. e.preventDefault();
  96. if ($("#q_refund_str").val() == "")
  97. {
  98. alertify_log("請填寫查詢關鍵字..");
  99. return false;
  100. }
  101. $("#member_tx_refund").html(""); // clean all
  102. $("#member_tx_refund_list_detail").html("");
  103. $("#member_tx_refund_list_detail_box").hide();
  104. $.ajax
  105. ({
  106. url: "<?=APP_URL?>member_tx_refund_query",
  107. type: "post",
  108. dataType:"json",
  109. data:{"station_no":$("#station_refund_select").val(), "q_item":$("input:radio:checked[name=q_item]").val(), "q_str":$("#q_refund_str").val()},
  110. error:function(xhr, ajaxOptions, thrownError)
  111. {
  112. var error_msg = xhr.responseText ? xhr.responseText : "連線失敗, 請稍候再試";
  113. alertify_msg(error_msg);
  114. console.log("error:"+error_msg+"|"+ajaxOptions+"|"+thrownError);
  115. },
  116. success:function(jdata)
  117. {
  118. var member_list = ['<tr>'];
  119. for(idx in jdata)
  120. {
  121. var refund_tot_amt = parseInt(jdata[idx]['refund_tot_amt']);
  122. var refund_deposit = parseInt(jdata[idx]['refund_deposit']);
  123. var refund_amt = parseInt(jdata[idx]['refund_amt']);
  124. member_refund_id = jdata[idx]['member_refund_id'];
  125. member_list = member_list.concat(["<td style='text-align:center;'>", jdata[idx]['member_refund_id'], "</td>"]);
  126. member_list = member_list.concat(["<td id='member_tx_refund_query_lpr_", member_refund_id,
  127. "' data-station_no='", jdata[idx]['station_no'],
  128. "' data-member_no='", jdata[idx]['member_no'],
  129. "' data-lpr='", jdata[idx]['lpr'],
  130. "' data-member_company_no='", jdata[idx]['member_company_no'],
  131. "' data-company_no='", jdata[idx]['company_no'],
  132. "' data-refund_amt='", refund_amt,
  133. "' data-refund_deposit='", refund_deposit,
  134. "' data-refund_tot_amt='", refund_tot_amt,
  135. "' data-refund_time='", jdata[idx]['refund_time'],
  136. "' data-refund_state='", jdata[idx]['refund_state'],
  137. "' data-dismiss_state='", jdata[idx]['dismiss_state'],
  138. "' data-create_time='", jdata[idx]['create_time'],
  139. "' style='text-align:left;'>", jdata[idx]['lpr'], "</td>"]);
  140. if(refund_amt >= 0)
  141. {
  142. member_list = member_list.concat(["<td style='text-align:center;'>", refund_amt, " 元</td>"]);
  143. }
  144. else
  145. {
  146. member_list = member_list.concat(["<td style='text-align:center;color:red;'>補繳 ", -refund_amt, " 元</td>"]);
  147. }
  148. member_list = member_list.concat(["<td style='text-align:center;'>", refund_deposit, " 元</td>"]);
  149. member_list = member_list.concat(["<td style='text-align:center;'>", jdata[idx]['refund_time'], "</td>"]);
  150. // a.結算描述
  151. if(refund_tot_amt >= refund_deposit)
  152. {
  153. // a.1 總金額,超過押金
  154. member_list = member_list.concat(["<td style='text-align:left;color:green;'>",
  155. "可轉移押金", refund_deposit, "元, 共可退", refund_tot_amt, " 元</td>"]);
  156. }
  157. else if(refund_tot_amt >= 0)
  158. {
  159. // a.2 總金額,未達押金
  160. member_list = member_list.concat(["<td style='text-align:left;color:blue;'>",
  161. "扣除部份押金後,共可退", refund_tot_amt, " 元</td>"]);
  162. }
  163. else
  164. {
  165. // a.3 總金額需補繳
  166. member_list = member_list.concat(["<td style='color:red;text-align:left;color:red;'>",
  167. "扣除所有押金後,需補繳 ", -refund_tot_amt, " 元</td>"]);
  168. }
  169. // b.結算描述操作
  170. if(jdata[idx]['dismiss_state'] == 0)
  171. {
  172. // b.1 剛退租
  173. member_list = member_list.concat(["<td style='text-align:left;'>"]);
  174. if(refund_tot_amt >= refund_deposit)
  175. {
  176. // b.1.1 剛退租, 押金保留,退還剩餘金額
  177. member_list = member_list.concat(["<button class='btn btn-default' onclick='member_refund_keep_deposit(", member_refund_id ,");'>退還", refund_amt, "元,押金保留</button>"]);
  178. }
  179. else
  180. {
  181. // b.1.2 剛退租, 結清所有金額
  182. member_list = member_list.concat(["<button class='btn btn-default' onclick='member_refund_dismiss_all(", member_refund_id ,");'>結清所有金額</button>"]);
  183. }
  184. member_list = member_list.concat(["</td>"]);
  185. member_list = member_list.concat(["<td style='text-align:left;'></td>"]);
  186. member_list = member_list.concat(["<td style='color:red;text-align:center;'>未結清</td>"]);
  187. }
  188. else if(jdata[idx]['dismiss_state'] == 1)
  189. {
  190. // b.2 已轉租
  191. member_list = member_list.concat(["<td style='text-align:left;'></td>"]);
  192. member_list = member_list.concat(["<td style='text-align:left;'></td>"]);
  193. member_list = member_list.concat(["<td style='color:green;text-align:center;'>已轉租</td>"]);
  194. }
  195. else if(jdata[idx]['dismiss_state'] == 10)
  196. {
  197. // b.3 尚餘押金, 結清所有金額 或 轉租
  198. member_list = member_list.concat(["<td style='text-align:left;'>"]);
  199. member_list = member_list.concat(["<button class='btn btn-default' onclick='member_refund_keep_deposit_dismiss_all(", member_refund_id ,");'>退還押金</button>"]);
  200. member_list = member_list.concat(["</td>"]);
  201. member_list = member_list.concat(["<td style='text-align:left;'><button class='btn btn-default' onclick='member_refund_transfer(", member_refund_id ,");'>轉租</button></td>"]);
  202. member_list = member_list.concat(["<td style='color:blue;text-align:center;'>待退押金</td>"]);
  203. }
  204. else if(jdata[idx]['dismiss_state'] == 100)
  205. {
  206. // b.4 已結清
  207. member_list = member_list.concat(["<td style='text-align:left;'></td>"]);
  208. member_list = member_list.concat(["<td style='text-align:left;'></td>"]);
  209. member_list = member_list.concat(["<td style='color:black;text-align:center;'>已結清</td>"]);
  210. }
  211. else
  212. {
  213. // b.z 未知
  214. member_list = member_list.concat(["<td style='text-align:left;'></td>"]);
  215. member_list = member_list.concat(["<td style='text-align:left;'></td>"]);
  216. member_list = member_list.concat(["<td style='color:red;text-align:center;'>未定義</td>"]);
  217. }
  218. 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>"]);
  219. // c. 發票狀態
  220. if(jdata[idx]['refund_state'] == 0)
  221. {
  222. member_list = member_list.concat(["<td style='color:blue;text-align:center;'>待確認</td>"]);
  223. }
  224. else if(jdata[idx]['refund_state'] == 1)
  225. {
  226. member_list = member_list.concat(["<td style='color:red;text-align:center;'>待補開</td>"]);
  227. }
  228. else if(jdata[idx]['refund_state'] == 2)
  229. {
  230. member_list = member_list.concat(["<td style='color:red;text-align:center;'>待折讓</td>"]);
  231. }
  232. else if(jdata[idx]['refund_state'] == 100)
  233. {
  234. member_list = member_list.concat(["<td style='color:black;text-align:center;'>已完成</td>"]);
  235. }
  236. else
  237. {
  238. member_list = member_list.concat(["<td style='color:red;text-align:center;'>未定義</td>"]);
  239. }
  240. member_list = member_list.concat(["<td style='text-align:center;'>", jdata[idx]['create_time'], "</td>"]);
  241. member_list = member_list.concat(["</tr>"]);
  242. }
  243. $("#member_tx_refund").append(member_list.join(''));
  244. }
  245. });
  246. });
  247. // 押金保留,結清其它金額
  248. function member_refund_keep_deposit(member_refund_id)
  249. {
  250. var station_no = $("#member_tx_refund_query_lpr_"+member_refund_id).data("station_no");
  251. var refund_amt = $("#member_tx_refund_query_lpr_"+member_refund_id).data("refund_amt");
  252. var refund_deposit = $("#member_tx_refund_query_lpr_"+member_refund_id).data("refund_deposit");
  253. var meta_str_1 = "已退還金額 " + refund_amt + " 元";
  254. var meta_str_2 = "未退還金額 " + refund_deposit + " 元(押金)";
  255. var msg = "注意!!請先確認以下事項:<br/><br/>" +
  256. "1. 此用戶," + meta_str_1 + "<br/>" +
  257. "2. 此用戶," + meta_str_2 + "<br/>" +
  258. "<br/>※ 此操作完成後,才能進行轉租操作!**";
  259. ajax_member_refund_dismiss('member_refund_keep_deposit', member_refund_id, msg);
  260. }
  261. // 押金保留,結清所有金額
  262. function member_refund_keep_deposit_dismiss_all(member_refund_id)
  263. {
  264. var station_no = $("#member_tx_refund_query_lpr_"+member_refund_id).data("station_no");
  265. var refund_tot_amt = $("#member_tx_refund_query_lpr_"+member_refund_id).data("refund_tot_amt");
  266. var refund_deposit = $("#member_tx_refund_query_lpr_"+member_refund_id).data("refund_deposit");
  267. var meta_str = "已退還押金 " + refund_deposit + " 元,合計金額共" + refund_tot_amt + '元,已全數退還完畢!'
  268. var msg = "注意!!請先確認以下事項:<br/><br/>" +
  269. "1. 此用戶," + meta_str + "<br/>" +
  270. "2. 此用戶,與本場站互不相欠<br/>" +
  271. "<br/>※ 以上兩點都必需確認完成,才結清!**" +
  272. "<br/>※ 結清後,將無法進行任何轉租操作!**";
  273. ajax_member_refund_dismiss('member_refund_dismiss_all', member_refund_id, msg);
  274. }
  275. // 結清所有金額
  276. function member_refund_dismiss_all(member_refund_id)
  277. {
  278. var station_no = $("#member_tx_refund_query_lpr_"+member_refund_id).data("station_no");
  279. var refund_tot_amt = $("#member_tx_refund_query_lpr_"+member_refund_id).data("refund_tot_amt");
  280. var meta_str = (refund_tot_amt > 0) ? ('總待退金額共:' + refund_tot_amt + '元,己全數退還!') : ('需補繳金額共:' + -refund_tot_amt + '元,已全數補繳!');
  281. var msg = "注意!!請先確認以下兩點事項:<br/><br/>" +
  282. "1. 此用戶," + meta_str + "<br/>" +
  283. "2. 此用戶,已無任何押金留在本場站<br/>" +
  284. "<br/>※ 以上兩點都必需確認完成,才結清!**" +
  285. "<br/>※ 結清後,將無法進行任何轉租操作!**";
  286. ajax_member_refund_dismiss('member_refund_dismiss_all', member_refund_id, msg);
  287. }
  288. // 結清 (ajax)
  289. function ajax_member_refund_dismiss(cmd, member_refund_id, msg)
  290. {
  291. var station_no = $("#member_tx_refund_query_lpr_"+member_refund_id).data("station_no");
  292. alertify.set({
  293. buttonFocus: "cancel",
  294. labels: {
  295. ok : "確認完成",
  296. cancel : "取消"
  297. }
  298. });
  299. alertify.confirm(
  300. msg
  301. , function (e){
  302. if (e) {
  303. $.ajax
  304. ({
  305. url: APP_URL + cmd,
  306. dataType:"text",
  307. type:"post",
  308. data: {"station_no": station_no, "member_refund_id": member_refund_id},
  309. error:function(xhr, ajaxOptions, thrownError)
  310. {
  311. var error_msg = xhr.responseText ? xhr.responseText : "連線失敗, 請稍候再試";
  312. alertify_msg(error_msg);
  313. console.log("error:"+error_msg+"|"+ajaxOptions+"|"+thrownError);
  314. },
  315. success:function(result)
  316. {
  317. if(result == 'ok')
  318. {
  319. alertify_log('操作完成!');
  320. $("#member_tx_refund_form").submit();
  321. }
  322. else
  323. {
  324. alertify_error('操作失敗..');
  325. }
  326. }
  327. });
  328. } else {
  329. alertify_log('請記得處理, 謝謝');
  330. }
  331. });
  332. }
  333. // 轉租
  334. function member_refund_transfer(member_refund_id)
  335. {
  336. var station_no = $("#member_tx_refund_query_lpr_"+member_refund_id).data("station_no");
  337. var member_no = $("#member_tx_refund_query_lpr_"+member_refund_id).data("member_no");
  338. // 取得退租資料
  339. $.ajax
  340. ({
  341. url:APP_URL+"member_refund_transfer_data_query",
  342. type:"post",
  343. dataType:"json",
  344. data:{"station_no":station_no, "member_no":member_no, "member_refund_id":member_refund_id},
  345. error:function(xhr, ajaxOptions, thrownError)
  346. {
  347. alertify_msg(xhr.responseText);
  348. console.log("error:"+xhr.responseText+"|"+ajaxOptions+"|"+thrownError);
  349. return false;
  350. },
  351. success:function(jdata)
  352. {
  353. if(jdata['result_code'] == 'OK')
  354. {
  355. show_item('member_add', 'member_add');
  356. var member_id = jdata['result']['member_id'];
  357. var member_no = jdata['result']['member_no'];
  358. var member_name = jdata['result']['member_name'];
  359. var member_nick_name = jdata['result']['member_nick_name'];
  360. var member_attr = jdata['result']['member_attr'];
  361. var fee_period = jdata['result']['fee_period'];
  362. var contract_no = jdata['result']['contract_no'];
  363. var lpr = jdata['result']['lpr'];
  364. var etag = jdata['result']['etag'];
  365. var member_company_no = jdata['result']['member_company_no'];
  366. var mobile_no = jdata['result']['mobile_no'];
  367. var tel_o = jdata['result']['tel_o'];
  368. var tel_h = jdata['result']['tel_h'];
  369. var addr = jdata['result']['addr'];
  370. var park_time = jdata['result']['park_time'];
  371. var refund_deposit = jdata['result']['refund_deposit'];
  372. var refund_amt = jdata['result']['refund_amt'];
  373. var refund_state = jdata['result']['refund_state'];
  374. var dismiss_state = jdata['result']['dismiss_state'];
  375. var refund_time = jdata['result']['refund_time'];
  376. // 取得折扣金額 (目前就是押金)
  377. var member_refund_discount = refund_deposit;
  378. $("#station_no_modify").val(station_no);
  379. $("#ma_station_no").val(station_no);
  380. $("#ma_lpr").val(lpr);
  381. $("#ma_old_lpr").val(lpr);
  382. $("#ma_etag").val(etag);
  383. $("#ma_member_id").val(member_id);
  384. $("#ma_member_company_no").val(member_company_no);
  385. $("#ma_tel_o").val(tel_o);
  386. $("#ma_tel_h").val(tel_h);
  387. $("#ma_addr").val(addr);
  388. $("#ma_member_name").val(member_name);
  389. $("#ma_mobile_no").val(mobile_no);
  390. // 記錄本此轉租資訊
  391. $("#ma_refund_transfer_id").val(member_refund_id);
  392. $("#ma_refund_transfer_discount").val(member_refund_discount);
  393. // 留空
  394. //$("#ma_demonth_start_date").val('');
  395. //$("#ma_contract_no").val('');
  396. //$("#ma_deposit").val('');
  397. //$("#ma_amt1").val('');
  398. //$("#ma_amt").val('');
  399. $("#fee_period1 option[value='"+fee_period+"']").prop("selected", "selected");
  400. $("#fee_period option[value='"+fee_period+"']").prop("selected", "selected");
  401. $("#member_attr option[value='"+member_attr+"']").prop("selected", "selected");
  402. if(contract_no)
  403. {
  404. $("#member_data_type").html("轉租操作:上期合約編號 [" + contract_no + "] 未退押金" + refund_deposit + "元,可折扺本次交易押金(多退少補)</button>");
  405. }
  406. else
  407. {
  408. $("#member_data_type").html("轉租操作:上期未退押金" + refund_deposit + "元,可折扺本次交易押金(多退少補)</button>");
  409. }
  410. $("input[id^=pt_id_]").prop("checked",false); // 全部取消勾
  411. arr = park_time.split(",");
  412. for(idx in arr)
  413. {
  414. $("#pt_id_"+arr[idx]).prop("checked",true);
  415. }
  416. }
  417. else if(jdata['result_code'] == 'NOT_FOUND')
  418. {
  419. alertify_msg("資料異常,請通知總公司處理。。");
  420. }
  421. else
  422. {
  423. alertify_error('操作失敗..');
  424. }
  425. }
  426. });
  427. }
  428. // 折讓發票
  429. function member_refund_invoice_allowance(tx_bill_no)
  430. {
  431. if (!confirm("確定折讓發票 ?")) return false;
  432. var station_no = $("#tx_bill_lpr_"+tx_bill_no).data("station_no");
  433. var member_no = $("#tx_bill_lpr_"+tx_bill_no).data("member_no");
  434. var refund_amt = $("#tx_bill_lpr_"+tx_bill_no).data("refund_amt");
  435. var tx_no = $("#tx_bill_lpr_"+tx_bill_no).data("tx_no");
  436. if(refund_amt > 0)
  437. {
  438. // 尚餘金額繼續開立
  439. $.ajax
  440. ({
  441. url:APP_URL+"refund_invoice_allowance",
  442. type:"post",
  443. dataType:"text",
  444. data:{ "station_no":station_no, "tx_no":tx_no,
  445. "tx_bill_no":tx_bill_no, "member_no":member_no,
  446. "refund_amt":refund_amt},
  447. error:function(xhr, ajaxOptions, thrownError)
  448. {
  449. var error_msg = xhr.responseText ? xhr.responseText : "連線失敗, 請稍候再試";
  450. alertify_msg(error_msg);
  451. console.log("error:"+error_msg+"|"+ajaxOptions+"|"+thrownError);
  452. },
  453. success:function(jdata)
  454. {
  455. if (jdata == "ok")
  456. {
  457. alertify_msg("折讓完成 ! ");
  458. $("#member_tx_refund_form").submit();
  459. }
  460. else if (jdata == "tx_error_not_found")
  461. {
  462. alertify_msg("異常:查無開立資訊");
  463. }
  464. else if (jdata == "tx_error_not_ready")
  465. {
  466. alertify_msg("異常:查無發票資訊");
  467. }
  468. else
  469. {
  470. alertify_msg("異常:" + jdata);
  471. }
  472. }
  473. });
  474. }
  475. else
  476. {
  477. // 各期月租發票補印
  478. alertify_msg("流程異常:請通知總公司處理:" + tx_bill_no);
  479. }
  480. }
  481. // 退租記錄
  482. function show_member_refund_detail(member_refund_id)
  483. {
  484. var refund_lpr = $("#member_tx_refund_query_lpr_"+member_refund_id).data("lpr");
  485. var refund_time = $("#member_tx_refund_query_lpr_"+member_refund_id).data("refund_time");
  486. $("#member_tx_refund_list_detail_lpr").text(refund_lpr);
  487. $("#member_tx_refund_list_detail_refund_time").text(refund_time);
  488. show_member_tx_refund_bill(0, '', '', '4', 0, member_refund_id);
  489. }
  490. // 完成退租交易
  491. /*
  492. function complete_member_refund(member_refund_id)
  493. {
  494. var refund_state = $("#member_tx_refund_query_lpr_"+member_refund_id).data("refund_state");
  495. var refund_lpr = $("#member_tx_refund_query_lpr_"+member_refund_id).data("lpr");
  496. $("#member_tx_refund_list_detail_lpr").text(refund_lpr);
  497. if(refund_state == 0)
  498. {
  499. // 待確認流程
  500. alertify_log("待確認流程");
  501. }
  502. else if(refund_state == 1)
  503. {
  504. show_member_tx_refund_bill(0, '', '1', '4'); // 待補開 (已退租)
  505. }
  506. else if(refund_state == 2)
  507. {
  508. show_member_tx_refund_bill(0, '', '2', '4'); // 待折讓 (已退租, 已開立發票)
  509. }
  510. else
  511. {
  512. // 未定義
  513. alertify_log("未定義");
  514. }
  515. return false;
  516. }
  517. */
  518. // 發票開立記錄
  519. 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)
  520. {
  521. $("#member_tx_refund_list_detail").html(""); // -- 清除原內容 --
  522. $.ajax
  523. ({
  524. url:APP_URL+"member_refund_bill_query",
  525. type:"post",
  526. dataType:"json",
  527. data:{"station_no":station_no, "tx_no":tx_no, "verify_state_str":verify_state_str,
  528. "invoice_state_str":invoice_state_str, "tx_state_str":tx_state_str,
  529. "tx_bill_no":tx_bill_no, "member_refund_id":member_refund_id},
  530. error:function(xhr, ajaxOptions, thrownError)
  531. {
  532. var error_msg = xhr.responseText ? xhr.responseText : "連線失敗, 請稍候再試";
  533. alertify_msg(error_msg);
  534. console.log("error:"+error_msg+"|"+ajaxOptions+"|"+thrownError);
  535. $("#member_tx_refund_list_detail_box").hide();
  536. },
  537. success:function(jdata)
  538. {
  539. $("#member_tx_refund_list_detail_box").show();
  540. var member_list = [["<tr>"]];
  541. for(idx in jdata)
  542. {
  543. //console.log(jdata.length + " : " + idx + " , " + jdata[idx]['invoice_amt'] + " : " + jdata[idx]['remain_amt']);
  544. tx_no = jdata[idx]['tx_no'];
  545. member_list = member_list.concat(["<td style='text-align:left;'>", jdata[idx]['tx_no'], "_", jdata[idx]['tx_bill_no'], "</td>"]);
  546. //member_list = member_list.concat(["<td style='text-align:left;'>", st[jdata[idx]['station_no']], "</td>"]);
  547. member_list = member_list.concat(["<td id='acc_date_", tx_no, "' style='text-align:center;'>", jdata[idx]['acc_date'], "</td>"]);
  548. member_list = member_list.concat(["<td id='tx_bill_lpr_", jdata[idx]['tx_bill_no'],
  549. "' data-station_no='", jdata[idx]['station_no'],
  550. "' data-member_no='", jdata[idx]['member_no'],
  551. "' data-tx_bill_no='", jdata[idx]['tx_bill_no'],
  552. "' data-tx_no='", jdata[idx]['tx_no'],
  553. "' data-member_company_no='", jdata[idx]['member_company_no'],
  554. "' data-company_no='", jdata[idx]['company_no'],
  555. "' data-invoice_amt='", jdata[idx]['invoice_amt'],
  556. "' data-remain_amt='", jdata[idx]['remain_amt'],
  557. "' data-period_3_amt='", jdata[idx]['period_3_amt'],
  558. "' data-amt='", jdata[idx]['amt'],
  559. "' data-amt1='", jdata[idx]['amt1'],
  560. "' data-deposit='", jdata[idx]['deposit'],
  561. "' data-start_date_last='", jdata[idx]['start_date_last'],
  562. "' data-end_date='", jdata[idx]['end_date'],
  563. "' data-lpr='", jdata[idx]['lpr'],
  564. "' data-fee_period='", jdata[idx]['fee_period'],
  565. "' data-refund_amt='", jdata[idx]['refund_amt'],
  566. "' data-invoice_state='", jdata[idx]['invoice_state'],
  567. "' style='text-align:left;'>", jdata[idx]['lpr'], "</td>"]);
  568. member_list = member_list.concat(["<td id='sdate_last_", tx_no, "' style='text-align:center;'>", jdata[idx]['start_date_last'], "</td>"]);
  569. member_list = member_list.concat(["<td id='fee_period_last_", tx_no, "' style='text-align:center;'>", period_name[jdata[idx]['fee_period_last']], "</td>"]);
  570. member_list = member_list.concat(["<td id='edate_last_", tx_no, "' style='text-align:center;'>", jdata[idx]['end_date_last'], "</td>"]);
  571. member_list = member_list.concat(["<td id='amt_last_", tx_no, "' style='text-align:center;'>", jdata[idx]['amt_last'], "</td>"]);
  572. member_list = member_list.concat(["<td id='fee_period_", tx_no, "' style='text-align:center;'>", period_name[jdata[idx]['fee_period']], "</td>"]);
  573. member_list = member_list.concat(["<td id='sdate_", tx_no, "' style='text-align:center;'>", jdata[idx]['start_date'], "</td>"]);
  574. if(jdata[idx]['invoice_state'] == 1)
  575. {
  576. // 待補開
  577. member_list = member_list.concat(["<td id='edate_", tx_no, "' style='text-align:center;'>指定退租日<br/>", jdata[idx]['end_date'], "</td>"]);
  578. member_list = member_list.concat(["<td id='amt_", tx_no, "' style='text-align:center;'>補繳總金額<br/>", jdata[idx]['amt'], " 元</td>"]);
  579. }
  580. else if(jdata[idx]['invoice_state'] == 2)
  581. {
  582. // 待折讓
  583. member_list = member_list.concat(["<td id='edate_", tx_no, "' style='text-align:center;'>指定退租日<br/>", jdata[idx]['end_date'], "</td>"]);
  584. member_list = member_list.concat(["<td id='amt_", tx_no, "' style='text-align:center;'>折讓總金額<br/>", jdata[idx]['amt'], " 元</td>"]);
  585. }
  586. else
  587. {
  588. member_list = member_list.concat(["<td id='edate_", tx_no, "' style='text-align:center;'>", jdata[idx]['end_date'], "</td>"]);
  589. member_list = member_list.concat(["<td id='amt_", tx_no, "' style='text-align:center;'>", jdata[idx]['amt'], " 元</td>"]);
  590. }
  591. // 是否已有發票
  592. if(jdata[idx]['invoice_no'] > 0)
  593. {
  594. member_list = member_list.concat(["<td id='invoice_time_", tx_no, "' style='text-align:center;'>", jdata[idx]['invoice_time'], "</td>"]);
  595. member_list = member_list.concat(["<td id='member_company_no_", tx_no, "' style='text-align:center;'>", jdata[idx]['member_company_no'], "</td>"]);
  596. member_list = member_list.concat(["<td id='company_no_", tx_no, "' style='text-align:center;'>", jdata[idx]['company_no'], "</td>"]);
  597. member_list = member_list.concat(["<td id='invoice_amt_", tx_no, "' style='text-align:center;'>", jdata[idx]['invoice_amt'], "</td>"]);
  598. member_list = member_list.concat(["<td id='invoice_track_", tx_no, "' style='text-align:center;'>", jdata[idx]['invoice_track'], "</td>"]);
  599. member_list = member_list.concat(["<td id='invoice_no_", tx_no, "' style='text-align:center;'>", jdata[idx]['invoice_no'], "</td>"]);
  600. if(jdata[idx]['invoice_type'] == 0)
  601. {
  602. member_list = member_list.concat(["<td id='invoice_type_", tx_no, "' style='text-align:center;'>電子發票</td>"]);
  603. }
  604. else if(jdata[idx]['invoice_type'] == 1)
  605. {
  606. member_list = member_list.concat(["<td id='invoice_type_", tx_no, "' style='text-align:center;'>手開發票</td>"]);
  607. }
  608. else
  609. {
  610. member_list = member_list.concat(["<td id='invoice_type_", tx_no, "' style='text-align:center;'>異常</td>"]);
  611. }
  612. }
  613. else
  614. {
  615. member_list = member_list.concat(["<td id='invoice_time_", tx_no, "' style='text-align:center;'>未開立</td>"]);
  616. member_list = member_list.concat(["<td id='member_company_no_", tx_no, "' style='text-align:center;'>", jdata[idx]['member_company_no'], "</td>"]);
  617. member_list = member_list.concat(["<td id='company_no_", tx_no, "' style='text-align:center;'>", jdata[idx]['company_no'], "</td>"]);
  618. member_list = member_list.concat(["<td id='invoice_amt_", tx_no, "' style='text-align:center;'>", jdata[idx]['invoice_amt'], "</td>"]);
  619. member_list = member_list.concat(["<td id='invoice_track_", tx_no, "' style='text-align:center;'></td>"]);
  620. if(jdata[idx]['tx_state'] == 4 && jdata[idx]['invoice_state'] == 0)
  621. {
  622. // 已退租, 原先交易將不再開放開立
  623. member_list = member_list.concat(["<td id='invoice_no_", tx_no, "' style='text-align:center;'></td>"]);
  624. member_list = member_list.concat(["<td id='invoice_type_", tx_no, "' style='text-align:center;'></td>"]);
  625. }
  626. else
  627. {
  628. 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>"]);
  629. 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>"]);
  630. }
  631. }
  632. //member_list = member_list.concat(["<td style='color:blue;text-align:center;' id='remarks_", jdata[idx]['tx_bill_no'], "'>", jdata[idx]['remarks'], "</td>"]);
  633. if(jdata[idx]['tx_state'] == 4)
  634. {
  635. member_list = member_list.concat(["<td style='color:black;text-align:center;'>已退租</td>"]);
  636. }
  637. else if(jdata[idx]['tx_state'] == 44)
  638. {
  639. member_list = member_list.concat(["<td style='color:black;text-align:center;'>交易取消</td>"]);
  640. }
  641. else if(jdata[idx]['verify_state'] == 0)
  642. {
  643. 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>"]);
  644. }
  645. else if(jdata[idx]['verify_state'] == 1)
  646. {
  647. member_list = member_list.concat(["<td style='color:green;text-align:center;'>已審核</td>"]);
  648. }
  649. else
  650. {
  651. 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>"]);
  652. }
  653. // 剩餘開立金額
  654. if(jdata[idx]['invoice_state'] == 1)
  655. {
  656. // 待開立
  657. if(jdata[idx]['remain_amt'] > 0)
  658. {
  659. 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>"]);
  660. }
  661. else
  662. {
  663. member_list = member_list.concat(["<td style='text-align:center;'>無</td>"]);
  664. }
  665. }
  666. else if(jdata[idx]['invoice_state'] == 2)
  667. {
  668. // 待折讓
  669. if(jdata[idx]['refund_amt'] > 0)
  670. {
  671. //member_list = member_list.concat(["<td style='text-align:center;'><button class='btn btn-default' onclick='member_refund_invoice_allowance(", jdata[idx]['tx_bill_no'] ,");'>待折讓 ", jdata[idx]['refund_amt'] ," 元</button></td>"]);
  672. member_list = member_list.concat(["<td style='text-align:center;'><button class='btn btn-default' onclick='member_tx_check(", jdata[idx]['tx_bill_no'] ,");'>待折讓 ", jdata[idx]['refund_amt'] ," 元</button></td>"]);
  673. }
  674. else
  675. {
  676. member_list = member_list.concat(["<td style='text-align:center;'>異常</td>"]);
  677. }
  678. }
  679. else
  680. {
  681. // 待開立
  682. if(jdata[idx]['remain_amt'] > 0)
  683. {
  684. if(jdata[idx]['tx_state'] == 4 && jdata[idx]['invoice_state'] == 0)
  685. {
  686. // 已退租, 原先交易將不再開放開立
  687. member_list = member_list.concat(["<td style='text-align:center;'>尚餘 ", jdata[idx]['remain_amt'] ," 元</td>"]);
  688. }
  689. else
  690. {
  691. 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>"]);
  692. }
  693. }
  694. else
  695. {
  696. member_list = member_list.concat(["<td style='text-align:center;'>無</td>"]);
  697. }
  698. }
  699. member_list = member_list.concat(["</tr>"]);;
  700. }
  701. $("#member_tx_refund_list_detail").append(member_list.join(''));
  702. }
  703. });
  704. }
  705. </script>