VM暫存
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

member_add.php 21KB

vor 8 Jahren
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446
  1. <!-- ----- 會員加入填寫資料 ----- -->
  2. <div data-items="member_add" class="row" style="display:none;"><!-- 會員加入填寫資料 -->
  3. <div class="col-lg-12">
  4. <div class="panel panel-default">
  5. <div id="member_data_type" class="panel-heading">新增會員資料</div><!-- 資料顯示區灰色小表頭 -->
  6. <div class="panel-body">
  7. <div data-rows class="row">
  8. <div class="col-lg-6">
  9. <!--form id="member_add" role="form" method="post" data-src="action::APP_URL::member_add"-->
  10. <form id="member_add" role="form" method="post" data-src="/admins_station.html/member_add">
  11. <div class="form-group">
  12. <label>*場站</label>
  13. <select class="form-control" id="station_no_modify" name="station_no">
  14. </select>
  15. </div>
  16. <div class="form-group">
  17. <label>*車牌號碼</label>
  18. <input id="ma_lpr" name="lpr" class="form-control" placeholder="限英數字碼" style="text-transform:uppercase" />
  19. <input id="ma_old_lpr" name="old_lpr" type="hidden" />
  20. </div>
  21. <div class="form-group">
  22. <label>eTag</label>
  23. <input id="ma_etag" name="etag" class="form-control" placeholder="限英數字碼" style="text-transform:uppercase">
  24. </div>
  25. <div class="form-group">
  26. <label>*不足月開始日期(開始日)</label>
  27. <input id="ma_demonth_start_date" type="datetime" name="demonth_start_date" class="form-control" onchange="calculate_rents_amt();"/>
  28. </div>
  29. <div class="form-group">
  30. <label>*不足月結束日期</label>
  31. <input id="ma_demonth_end_date" type="datetime" name="demonth_end_date" class="form-control" />
  32. </div>
  33. <div class="form-group">
  34. <label>*足月開始日期</label>
  35. <input id="ma_start_date" type="datetime" name="start_date" class="form-control" />
  36. </div>
  37. <div class="form-group">
  38. <label>*足月結束日期(到期日)</label>
  39. <input id="ma_end_date" type="datetime" name="end_date" class="form-control" />
  40. </div>
  41. <div class="form-group">
  42. <label class="select-inline">
  43. <button type="button" class="btn btn-default btn-xl btn-primary pull-left" onclick="member_park_time();">*進出場時段</button>&nbsp;
  44. </label>
  45. </div>
  46. <div class="form-group">
  47. <label class="select-inline">*首期繳期
  48. <select class="form-control input-sm" id="fee_period1" name="fee_period1" onClick="calculate_rents_amt();"></select>
  49. </label>
  50. <label class="select-inline">*首期租金 (依使用天數拆分)
  51. <input id="ma_amt1" name="amt1" class="form-control" value="0" onblur="re_amt();">
  52. </label>
  53. <label class="select-inline" id="amt1_max_view">
  54. &nbsp;說明:&nbsp;
  55. &nbsp;每日租金(&nbsp;<span id="amt1_max">0</span>&nbsp;元
  56. &nbsp;/ &nbsp;<span id="amt1_days_total">0</span>&nbsp;天)
  57. &nbsp;* 實際天數&nbsp;<span id="amt1_days">0</span>&nbsp;天
  58. </label>
  59. </div>
  60. <div class="form-group">
  61. <label class="select-inline">*例行繳期
  62. <select class="form-control input-sm" id="fee_period" name="fee_period" onClick="calculate_rents_amt();"></select>
  63. </label>
  64. <label class="select-inline">*例行租金 (依使用月數拆分)
  65. <input id="ma_amt" name="amt" class="form-control" value="0" onblur="re_amt();">
  66. </label>
  67. <!-- 第一版, 按日拆
  68. label class="select-inline" id="amt2_max_view">
  69. &nbsp;*說明:&nbsp;
  70. &nbsp;每日租金(&nbsp;<span id="amt2_max">0</span>&nbsp;元
  71. &nbsp;/ &nbsp;<span id="amt2_days_total">0</span>&nbsp;天)
  72. &nbsp;* 實際天數&nbsp;<span id="amt2_days">0</span>&nbsp;天
  73. </label-->
  74. <label class="select-inline" id="amt2_max_view">
  75. &nbsp;說明:&nbsp;
  76. &nbsp;每月租金(&nbsp;<span id="amt2_max">0</span>&nbsp;元
  77. &nbsp;/ &nbsp;<span id="amt2_months_total">0</span>&nbsp;個月)
  78. &nbsp;* 實際月數&nbsp;<span id="amt2_months">0</span>&nbsp;個月
  79. </label>
  80. </div>
  81. <div class="form-group">
  82. <label class="select-inline">*會員身份
  83. <select class="form-control input-sm" id="member_attr" name="member_attr" onClick="calculate_rents_amt();"></select>
  84. </label>
  85. <label class="select-inline">*押金(不列入發票金額)
  86. <input id="ma_deposit" name="deposit" class="form-control" value="0" onblur="re_amt();">
  87. </label>
  88. <label class="select-inline" id="amt_accrued_view">
  89. &nbsp;&nbsp;應計金額 (原價):<span id="amt_accrued">0</span>
  90. </label>
  91. </div>
  92. <div class="form-group">
  93. <label class="select-inline" style="color:blue;font-size:18px;" id="amt_tot_view">
  94. 租金:<span id="amt_tot">0</span>
  95. </label>
  96. </div>
  97. <div class="form-group">
  98. <label>合約號碼</label>
  99. <input id="ma_contract_no" name="contract_no" class="form-control">
  100. </div>
  101. <div class="form-group">
  102. <label>*姓名/公司名稱</label>
  103. <input id="ma_member_name" name="member_name" class="form-control" style="font-size:48px;height:56px;">
  104. </div>
  105. <div class="form-group">
  106. <label>*手機</label>
  107. <input id="ma_mobile_no" name='mobile_no' class="form-control">
  108. </div>
  109. <div class="form-group">
  110. <label>身份證號</label>
  111. <input id="ma_member_id" name="member_id" class="form-control">
  112. </div>
  113. <div class="form-group">
  114. <label>會員統一編號</label>
  115. <input id="ma_member_company_no" name="member_company_no" class="form-control">
  116. </div>
  117. <div class="form-group">
  118. <label>電話(宅)</label>
  119. <input id="ma_tel_h" name='tel_h' class="form-control">
  120. </div>
  121. <div class="form-group">
  122. <label>電話(公)</label>
  123. <input id="ma_tel_o" name='tel_o' class="form-control">
  124. </div>
  125. <div class="form-group">
  126. <label>地址</label>
  127. <input id="ma_addr" name='addr' class="form-control">
  128. </div>
  129. <div class="form-group">
  130. <button type="submit" class="btn btn-large btn-success pull-left">存檔</button>
  131. &nbsp;&nbsp;
  132. <!--button type="reset" class="btn btn-large btn-cancel">重填</button-->
  133. <input id="ma_member_no" type="hidden" name="member_no" value="0" />
  134. <input id="ma_company_no" type="hidden" name="company_no" value="<?=$company_no?>"/>
  135. <input id="ma_park_time" type="hidden" name="park_time" />
  136. <input id="ma_amt_tot" type="hidden" name="amt_tot" />
  137. <input id="ma_amt_accrued" type="hidden" name="amt_accrued" />
  138. <input id="ma_demonth_start_date_done" type="hidden" name="demonth_start_date_done"/>
  139. <input id="ma_demonth_end_date_done" type="hidden" name="demonth_end_date_done"/>
  140. <input id="ma_start_date_done" type="hidden" name="start_date_done"/>
  141. <input id="ma_end_date_done" type="hidden" name="end_date_done"/>
  142. <!--input id="ma_fee_period1_done" type="hidden" name="fee_period1_done"/>
  143. <input id="ma_fee_period_done" type="hidden" name="fee_period_done"/>
  144. <input id="ma_member_attr_done" type="hidden" name="member_attr_done"/-->
  145. <input id="ma_refund_transfer_id" type="hidden" name="refund_transfer_id" value="0" /> <!-- 轉租,來源退租編號 -->
  146. <input id="ma_refund_transfer_discount" type="hidden" name="refund_transfer_discount" value="0" /> <!-- 退租,來源退租折扣金 -->
  147. </div>
  148. </form>
  149. </div>
  150. <!-- /.col-lg-6 (nested) -->
  151. </div>
  152. <!-- /.row (nested) -->
  153. </div>
  154. <!-- /.panel-body -->
  155. </div>
  156. <!-- /.panel -->
  157. </div>
  158. <!-- /.col-lg-12 -->
  159. </div>
  160. <!-- ----- 會員加入填寫資料(結束) ----- -->
  161. <script>
  162. // 設定場站資訊
  163. for(station_no in st)
  164. {
  165. $(new Option(st[station_no],station_no)).appendTo('#station_no_modify'); // 會員修改場站編號
  166. }
  167. // 會員身份類別
  168. for(idx in mem_attr)
  169. {
  170. $(new Option(mem_attr[idx],idx)).appendTo('#member_attr');
  171. }
  172. // 繳期表(首期)
  173. for(idx in period_name)
  174. {
  175. $(new Option(period_name[idx],idx)).appendTo('#fee_period1');
  176. }
  177. // 繳期表(例行)
  178. for(idx in period_name)
  179. {
  180. $(new Option(period_name[idx],idx)).appendTo('#fee_period');
  181. }
  182. // 設定時段表
  183. str = "";
  184. for(pt_id in pt)
  185. {
  186. str += "<tr>";
  187. str += "<td style='text-align:center;'><input type='checkbox' id='pt_id_"+pt_id+"' class='pt_id_checkbox' value='"+pt_id+"' /></td>";
  188. str += "<td style='text-align:center;'>"+pt_id+"</td>";
  189. str += "<td style='text-align:left;'>"+pt[pt_id]['remarks']+"</td>";
  190. str += "</tr>";
  191. }
  192. $("#pt_list").html(str);
  193. $("#ma_demonth_start_date").datetimepicker({language:"zh-TW",autoclose:true,minView:2,format:"yyyy-mm-dd"});
  194. $("#ma_demonth_end_date").datetimepicker({language:"zh-TW",autoclose:true,minView:2,format:"yyyy-mm-dd"});
  195. $("#ma_start_date").datetimepicker({language:"zh-TW",autoclose:true,minView:2,format:"yyyy-mm-dd"});
  196. $("#ma_end_date").datetimepicker({language:"zh-TW",autoclose:true,minView:2,format:"yyyy-mm-dd"});
  197. $("#stop_rents_end_date").datetimepicker({language:"zh-TW",autoclose:true,minView:2,format:"yyyy-mm-dd"});
  198. // 會員新增修改
  199. $("#member_add").submit(function(event)
  200. {
  201. event.preventDefault();
  202. // 停車時段
  203. $("#ma_park_time").val($('input:checkbox:checked.pt_id_checkbox').map(function(){ return this.value; }).get().join(","));
  204. if ($("#ma_member_no").val() == "0")
  205. {
  206. if($("#ma_refund_transfer_id").val() == "0")
  207. {
  208. $("#ma_old_lpr").val($("#ma_lpr").val());
  209. }
  210. else
  211. {
  212. // 轉租 console.log('ma_refund_transfer_id: ' + $("#ma_refund_transfer_id").val());
  213. }
  214. // 新增:檢查必填欄位
  215. if ($("#ma_lpr").val() == "" ||
  216. $("#ma_start_date").val() == "" ||
  217. $("#ma_end_date").val() == "" ||
  218. $("#ma_member_name").val() == "" ||
  219. $("#ma_mobile_no").val() == "" ||
  220. $("#ma_park_time").val() == ""
  221. )
  222. {
  223. alertify_msg("必填欄位不可空白");
  224. return false;
  225. }
  226. }
  227. else
  228. {
  229. // 修改:檢查必填欄位
  230. if ($("#ma_lpr").val() == "" ||
  231. //$("#ma_start_date").val() == "" ||
  232. $("#ma_end_date").val() == "" ||
  233. $("#ma_member_name").val() == "" ||
  234. $("#ma_mobile_no").val() == "" ||
  235. $("#ma_park_time").val() == ""
  236. )
  237. {
  238. alertify_msg("必填欄位不可空白");
  239. return false;
  240. }
  241. }
  242. $("#ma_amt_tot").val($("#amt_tot").text());
  243. $("#ma_amt_accrued").val($("#amt_accrued").text());
  244. if($("#ma_member_company_no").val() == "") $("#ma_member_company_no").val(0);
  245. // 禁止直接輸入,補值
  246. $("#ma_demonth_end_date_done").val($("#ma_demonth_end_date").val());
  247. $("#ma_start_date_done").val($("#ma_start_date").val());
  248. $("#ma_end_date_done").val($("#ma_end_date").val());
  249. $.ajax
  250. ({
  251. url: APP_URL+"member_add",
  252. type: "post",
  253. dataType:"json",
  254. data: $(this).serialize(),
  255. error:function(xhr, ajaxOptions, thrownError)
  256. {
  257. alertify_msg(xhr.responseText);
  258. console.log("error:"+xhr.responseText+"|"+ajaxOptions+"|"+thrownError);
  259. return false;
  260. },
  261. success: function(jdata)
  262. {
  263. if(jdata == 'update_error')
  264. {
  265. alertify_msg("更新失敗, 請稍候再試");
  266. }
  267. else if(jdata == 'trans_error')
  268. {
  269. alertify_msg("操作失敗, 請稍候再試");
  270. }
  271. else if (jdata["member_no"] != "0")
  272. {
  273. if(jdata["action_code"] == "A")
  274. {
  275. // 新增會員資料, 印發票
  276. xvars["rents"] = Array();
  277. xvars["rents"]["tx_no"] = jdata["tx_no"];
  278. xvars["rents"]["tx_bill_no"] = jdata["tx_bill_no"];
  279. xvars["rents"]["station_no"] = station_no;
  280. xvars["rents"]["member_no"] = jdata["member_no"];
  281. xvars["rents"]["member_company_no"] = $("#ma_member_company_no").val();
  282. xvars["rents"]["company_no"] = company_no;
  283. xvars["rents"]["fee_period"] = $("#fee_period").val();
  284. xvars["rents"]["amt"] = parseInt($("#ma_amt").val());
  285. xvars["rents"]["amt1"] = parseInt($("#ma_amt1").val());
  286. xvars["rents"]["invoice_amt"] = jdata["invoice_amt"];
  287. xvars["rents"]["remain_amt"] = jdata["remain_amt"];
  288. xvars["rents"]["period_3_amt"] = jdata["period_3_amt"];
  289. xvars["rents"]["amt_discount"] = jdata["amt_discount"];
  290. $("#first_rents_name").text($("#ma_member_name").val()+" ("+ $("#ma_lpr").val() +")");
  291. $("#first_rents_station_name").text(st[xvars["rents"]["station_no"]]);
  292. $("#first_rents_start_date").text($("#ma_demonth_start_date").val()); // 上期開始日
  293. $("#first_rents_end_date").text($("#ma_end_date").val()); // 本期結束日
  294. if(xvars["rents"]["amt_discount"] == $("#ma_deposit").val())
  295. {
  296. $("#first_rents_deposit").text($("#ma_deposit").val() + "元 (押金由上期折扺)");
  297. }
  298. else if(xvars["rents"]["amt_discount"] > 0)
  299. {
  300. $("#first_rents_deposit").text($("#ma_deposit").val() + "元 (可扣除" + xvars["rents"]["amt_discount"] + "元,多退少補)");
  301. }
  302. else
  303. {
  304. $("#first_rents_deposit").text($("#ma_deposit").val() + "元");
  305. }
  306. $("#first_rents_period").text(period_name[xvars["rents"]["fee_period"]]);
  307. $("#first_rents_amt").text(xvars["rents"]["amt"] + "元");
  308. $("#first_rents_amt1").text(xvars["rents"]["amt1"] + "元");
  309. $("#first_rents_invoice_amt").text(xvars["rents"]["invoice_amt"] + "元");
  310. $("#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"])); // 發票說明
  311. $("#first_rents_company_no").val(xvars["rents"]["company_no"]); // 賣方統編
  312. if(xvars["rents"]["member_company_no"] == 0 || xvars["rents"]["member_company_no"] == '')
  313. {
  314. $("#first_rents_member_company_no").val("");
  315. }
  316. else
  317. {
  318. $("#first_rents_member_company_no").val(xvars["rents"]["member_company_no"]); // 買方統編
  319. }
  320. $("#first_rents_dialog").modal({backdrop:false,keyboard:false});
  321. }
  322. else if(jdata["action_code"] == "U")
  323. {
  324. // 更新會員資料
  325. alertify_msg("月租資料存檔完成 !");
  326. }
  327. else
  328. {
  329. // 未知
  330. alertify_msg("未知的操作..");
  331. }
  332. show_item('member_query', 'member_query');
  333. }
  334. else
  335. {
  336. alertify_msg(jdata["msg"]);
  337. }
  338. }
  339. });
  340. });
  341. // 計算租金
  342. function calculate_rents_amt()
  343. {
  344. // 計算月租金額
  345. $.ajax
  346. ({
  347. url:APP_URL+"calculate_rents_amt",
  348. dataType:"json",
  349. type:"post",
  350. data:
  351. {
  352. "cmd":"calculate_rents_amt",
  353. "station_no":station_no,
  354. "demonth_start_date":$("#ma_demonth_start_date").val(),
  355. "member_attr":$("#member_attr").val(),
  356. "period_1":$("#fee_period1").val(), // 首期繳期
  357. "period_2":$("#fee_period").val() // 例行繳期
  358. },
  359. success:function(jdata)
  360. {
  361. $("#ma_demonth_start_date").val(jdata["demonth_start_date"]);
  362. $("#ma_demonth_end_date").val(jdata["demonth_end_date"]).prop("disabled",true);
  363. $("#ma_start_date").val(jdata["start_date"]).prop("disabled",true);
  364. $("#ma_end_date").val(jdata["end_date"]).prop("disabled",true);
  365. $("#amt1_max").text(jdata["demonth_amt"]);
  366. $("#amt1_days").text(jdata["demonth_days"]);
  367. $("#amt1_days_total").text(jdata["demonth_days_total"]);
  368. $("#amt1_max_view").show();
  369. // 第一版: 依天數拆分
  370. /*
  371. $("#amt2_max").text(jdata["amonth_amt"]);
  372. $("#amt2_days").text(jdata["amonth_days"]);
  373. $("#amt2_days_total").text(jdata["amonth_days_total"]);
  374. $("#amt2_max_view").show();
  375. */
  376. // 第二版: 依月數拆分 2017-02-13 updated
  377. $("#amt2_max").text(jdata["amonth_amt"]);
  378. $("#amt2_months").text(jdata["amonth_months"]);
  379. $("#amt2_months_total").text(jdata["amonth_months_total"]);
  380. $("#amt2_max_view").show();
  381. $("#ma_amt1").val(jdata["rents_amt1"]);
  382. $("#ma_amt").val(jdata["rents_amt2"]);
  383. $("#ma_deposit").val(jdata["rents_deposit"]);
  384. $("#amt_accrued").text(parseInt(jdata["rents_amt1"])+parseInt(jdata["rents_amt2"])+parseInt(jdata["rents_deposit"]));
  385. $("#ma_amt_accrued").val($("#amt_accrued").text());
  386. re_amt(true);
  387. }
  388. });
  389. }
  390. // 重新計算實際租金
  391. function re_amt(show_sccured_view=false)
  392. {
  393. if ($("#ma_amt1").val() == "") $("#ma_amt1").val(0);
  394. if ($("#ma_amt").val() == "") $("#ma_amt").val(0);
  395. if ($("#ma_deposit").val() == "") $("#ma_deposit").val(0);
  396. $("#amt_tot").text(parseInt($("#ma_amt1").val())+parseInt($("#ma_amt").val())+parseInt($("#ma_deposit").val()));
  397. //$("#amt_tot").text(parseInt($("#ma_amt1").val())+parseInt($("#ma_amt").val())); // 無押金
  398. $("#ma_amt_tot").val($("#amt_tot").text());
  399. $("#amt_tot_view").show();
  400. if(show_sccured_view)
  401. {
  402. $("#amt_accrued_view").show();
  403. }
  404. }
  405. </script>