VM暫存
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

419 строки
20KB

  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" />
  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. </div>
  146. </form>
  147. </div>
  148. <!-- /.col-lg-6 (nested) -->
  149. </div>
  150. <!-- /.row (nested) -->
  151. </div>
  152. <!-- /.panel-body -->
  153. </div>
  154. <!-- /.panel -->
  155. </div>
  156. <!-- /.col-lg-12 -->
  157. </div>
  158. <!-- ----- 會員加入填寫資料(結束) ----- -->
  159. <script>
  160. // 設定場站資訊
  161. for(station_no in st)
  162. {
  163. $(new Option(st[station_no],station_no)).appendTo('#station_no_modify'); // 會員修改場站編號
  164. }
  165. // 會員身份類別
  166. for(idx in mem_attr)
  167. {
  168. $(new Option(mem_attr[idx],idx)).appendTo('#member_attr');
  169. }
  170. // 繳期表(首期)
  171. for(idx in period_name)
  172. {
  173. $(new Option(period_name[idx],idx)).appendTo('#fee_period1');
  174. }
  175. // 繳期表(例行)
  176. for(idx in period_name)
  177. {
  178. $(new Option(period_name[idx],idx)).appendTo('#fee_period');
  179. }
  180. // 設定時段表
  181. str = "";
  182. for(pt_id in pt)
  183. {
  184. str += "<tr>";
  185. str += "<td style='text-align:center;'><input type='checkbox' id='pt_id_"+pt_id+"' class='pt_id_checkbox' value='"+pt_id+"' /></td>";
  186. str += "<td style='text-align:center;'>"+pt_id+"</td>";
  187. str += "<td style='text-align:left;'>"+pt[pt_id]['remarks']+"</td>";
  188. str += "</tr>";
  189. }
  190. $("#pt_list").html(str);
  191. $("#ma_demonth_start_date").datetimepicker({language:"zh-TW",autoclose:true,minView:2,format:"yyyy-mm-dd"});
  192. $("#ma_demonth_end_date").datetimepicker({language:"zh-TW",autoclose:true,minView:2,format:"yyyy-mm-dd"});
  193. $("#ma_start_date").datetimepicker({language:"zh-TW",autoclose:true,minView:2,format:"yyyy-mm-dd"});
  194. $("#ma_end_date").datetimepicker({language:"zh-TW",autoclose:true,minView:2,format:"yyyy-mm-dd"});
  195. $("#stop_rents_end_date").datetimepicker({language:"zh-TW",autoclose:true,minView:2,format:"yyyy-mm-dd"});
  196. // 會員新增修改
  197. $("#member_add").submit(function(event)
  198. {
  199. event.preventDefault();
  200. // 停車時段
  201. $("#ma_park_time").val($('input:checkbox:checked.pt_id_checkbox').map(function(){ return this.value; }).get().join(","));
  202. if ($("#ma_member_no").val() == "0")
  203. {
  204. $("#ma_old_lpr").val($("#ma_lpr").val());
  205. // 新增:檢查必填欄位
  206. if ($("#ma_lpr").val() == "" ||
  207. $("#ma_start_date").val() == "" ||
  208. $("#ma_end_date").val() == "" ||
  209. $("#ma_member_name").val() == "" ||
  210. $("#ma_mobile_no").val() == "" ||
  211. $("#ma_park_time").val() == ""
  212. )
  213. {
  214. alertify_msg("必填欄位不可空白");
  215. return false;
  216. }
  217. }
  218. else
  219. {
  220. // 修改:檢查必填欄位
  221. if ($("#ma_lpr").val() == "" ||
  222. //$("#ma_start_date").val() == "" ||
  223. $("#ma_end_date").val() == "" ||
  224. $("#ma_member_name").val() == "" ||
  225. $("#ma_mobile_no").val() == "" ||
  226. $("#ma_park_time").val() == ""
  227. )
  228. {
  229. alertify_msg("必填欄位不可空白");
  230. return false;
  231. }
  232. }
  233. $("#ma_amt_tot").val($("#amt_tot").text());
  234. $("#ma_amt_accrued").val($("#amt_accrued").text());
  235. if($("#ma_member_company_no").val() == "") $("#ma_member_company_no").val(0);
  236. // 禁止直接輸入,補值
  237. $("#ma_demonth_end_date_done").val($("#ma_demonth_end_date").val());
  238. $("#ma_start_date_done").val($("#ma_start_date").val());
  239. $("#ma_end_date_done").val($("#ma_end_date").val());
  240. $.ajax
  241. ({
  242. url: APP_URL+"member_add",
  243. type: "post",
  244. dataType:"json",
  245. data: $(this).serialize(),
  246. error:function(xhr, ajaxOptions, thrownError)
  247. {
  248. alertify_msg(xhr.responseText);
  249. console.log("error:"+xhr.responseText+"|"+ajaxOptions+"|"+thrownError);
  250. },
  251. success: function(jdata)
  252. {
  253. if(jdata == 'update_error')
  254. {
  255. alertify_msg("更新失敗, 請稍候再試");
  256. }
  257. else if(jdata == 'trans_error')
  258. {
  259. alertify_msg("操作失敗, 請稍候再試");
  260. }
  261. else if (jdata["member_no"] != "0")
  262. {
  263. if(jdata["action_code"] == "A")
  264. {
  265. // 新增會員資料, 印發票
  266. xvars["rents"] = Array();
  267. xvars["rents"]["tx_no"] = jdata["tx_no"];
  268. xvars["rents"]["station_no"] = station_no;
  269. xvars["rents"]["member_no"] = jdata["member_no"];
  270. xvars["rents"]["member_company_no"] = $("#ma_member_company_no").val();
  271. xvars["rents"]["company_no"] = company_no;
  272. xvars["rents"]["fee_period"] = $("#fee_period").val();
  273. xvars["rents"]["amt"] = parseInt($("#ma_amt").val());
  274. xvars["rents"]["amt1"] = parseInt($("#ma_amt1").val());
  275. xvars["rents"]["invoice_amt"] = jdata["invoice_amt"];
  276. xvars["rents"]["remain_amt"] = jdata["remain_amt"];
  277. xvars["rents"]["period_3_amt"] = jdata["period_3_amt"];
  278. $("#first_rents_name").text($("#ma_member_name").val()+" ("+ $("#ma_lpr").val() +")");
  279. $("#first_rents_station_name").text(st[xvars["rents"]["station_no"]]);
  280. $("#first_rents_start_date").text($("#ma_demonth_start_date").val()); // 上期開始日
  281. $("#first_rents_end_date").text($("#ma_end_date").val()); // 本期結束日
  282. $("#first_rents_deposit").text($("#ma_deposit").val());
  283. $("#first_rents_period").text(period_name[xvars["rents"]["fee_period"]]);
  284. $("#first_rents_amt").text(xvars["rents"]["amt"]);
  285. $("#first_rents_amt1").text(xvars["rents"]["amt1"]);
  286. $("#first_rents_invoice_amt").text(xvars["rents"]["invoice_amt"]);
  287. $("#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"])); // 發票說明
  288. $("#first_rents_company_no").val(xvars["rents"]["company_no"]); // 賣方統編
  289. if(xvars["rents"]["member_company_no"] == 0 || xvars["rents"]["member_company_no"] == '')
  290. {
  291. $("#first_rents_member_company_no").val("");
  292. }
  293. else
  294. {
  295. $("#first_rents_member_company_no").val(xvars["rents"]["member_company_no"]); // 買方統編
  296. }
  297. $("#first_rents_dialog").modal({backdrop:false,keyboard:false});
  298. }
  299. else if(jdata["action_code"] == "U")
  300. {
  301. // 更新會員資料
  302. alertify_msg("月租資料存檔完成 !");
  303. }
  304. else
  305. {
  306. // 未知
  307. alertify_msg("未知的操作..");
  308. }
  309. show_item('member_query', 'member_query');
  310. }
  311. else
  312. {
  313. alertify_msg(jdata["msg"]);
  314. }
  315. }
  316. });
  317. });
  318. // 計算租金
  319. function calculate_rents_amt()
  320. {
  321. // 計算月租金額
  322. $.ajax
  323. ({
  324. url:APP_URL+"calculate_rents_amt",
  325. dataType:"json",
  326. type:"post",
  327. data:
  328. {
  329. "cmd":"calculate_rents_amt",
  330. "station_no":station_no,
  331. "demonth_start_date":$("#ma_demonth_start_date").val(),
  332. "member_attr":$("#member_attr").val(),
  333. "period_1":$("#fee_period1").val(), // 首期繳期
  334. "period_2":$("#fee_period").val() // 例行繳期
  335. },
  336. success:function(jdata)
  337. {
  338. $("#ma_demonth_start_date").val(jdata["demonth_start_date"]);
  339. $("#ma_demonth_end_date").val(jdata["demonth_end_date"]).prop("disabled",true);
  340. $("#ma_start_date").val(jdata["start_date"]).prop("disabled",true);
  341. $("#ma_end_date").val(jdata["end_date"]).prop("disabled",true);
  342. $("#amt1_max").text(jdata["demonth_amt"]);
  343. $("#amt1_days").text(jdata["demonth_days"]);
  344. $("#amt1_days_total").text(jdata["demonth_days_total"]);
  345. $("#amt1_max_view").show();
  346. // 第一版: 依天數拆分
  347. /*
  348. $("#amt2_max").text(jdata["amonth_amt"]);
  349. $("#amt2_days").text(jdata["amonth_days"]);
  350. $("#amt2_days_total").text(jdata["amonth_days_total"]);
  351. $("#amt2_max_view").show();
  352. */
  353. // 第二版: 依月數拆分 2017-02-13 updated
  354. $("#amt2_max").text(jdata["amonth_amt"]);
  355. $("#amt2_months").text(jdata["amonth_months"]);
  356. $("#amt2_months_total").text(jdata["amonth_months_total"]);
  357. $("#amt2_max_view").show();
  358. $("#ma_amt1").val(jdata["rents_amt1"]);
  359. $("#ma_amt").val(jdata["rents_amt2"]);
  360. $("#ma_deposit").val(jdata["rents_deposit"]);
  361. $("#amt_accrued").text(parseInt(jdata["rents_amt1"])+parseInt(jdata["rents_amt2"])+parseInt(jdata["rents_deposit"]));
  362. $("#ma_amt_accrued").val($("#amt_accrued").text());
  363. re_amt(true);
  364. }
  365. });
  366. }
  367. // 重新計算實際租金
  368. function re_amt(show_sccured_view=false)
  369. {
  370. if ($("#ma_amt1").val() == "") $("#ma_amt1").val(0);
  371. if ($("#ma_amt").val() == "") $("#ma_amt").val(0);
  372. if ($("#ma_deposit").val() == "") $("#ma_deposit").val(0);
  373. $("#amt_tot").text(parseInt($("#ma_amt1").val())+parseInt($("#ma_amt").val())+parseInt($("#ma_deposit").val()));
  374. //$("#amt_tot").text(parseInt($("#ma_amt1").val())+parseInt($("#ma_amt").val())); // 無押金
  375. $("#ma_amt_tot").val($("#amt_tot").text());
  376. $("#amt_tot_view").show();
  377. if(show_sccured_view)
  378. {
  379. $("#amt_accrued_view").show();
  380. }
  381. }
  382. </script>