Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

211 linhas
8.7 KiB

  1. getProductInfo();
  2. $("#datetimeStart").datetimepicker({
  3. format: 'yyyy-mm-dd',
  4. minView: 'month',
  5. language: 'zh-CN',
  6. autoclose: true,
  7. todayHighlight: true
  8. }).on("click", function () {
  9. $("#datetimeStart").datetimepicker("setEndDate", $("#datetimeEnd").val())
  10. });
  11. $("#datetimeEnd").datetimepicker({
  12. format: 'yyyy-mm-dd',
  13. minView: 'month',
  14. language: 'zh-CN',
  15. autoclose: true,
  16. todayHighlight: true
  17. }).on("click", function () {
  18. $("#datetimeEnd").datetimepicker("setStartDate", addDate($("#datetimeStart").val(), 1))
  19. });
  20. $('#SalesChannels').change(function () {
  21. getProductInfo();
  22. validateOutsideOrder();
  23. });
  24. $("#datetimeStart").change(function () {
  25. getProductInfo();
  26. });
  27. $("#datetimeEnd").change(function () {
  28. getProductInfo();
  29. });
  30. $('.field-customer_memo2').css('display','none');
  31. /**
  32. * 计算每天的总价、佣金、利润
  33. */
  34. function room_num_select() {
  35. var room_num = $("#ordermain-room_count").val();
  36. $("#room_table").find('tr').each(function () {
  37. var chengben = '';
  38. $(this).find(".order_price").html(($(this).find(".base_price").val() * room_num).toFixed(2));
  39. if ($(this).find('.commission').attr('data-sale-type') == 309) { //按照结算金额
  40. if ($(this).find('.commission').attr('data-back_value') != '0.00') {
  41. commission = $(this).find('.commission').attr('data-back_value') * room_num.toFixed(2);
  42. } else {
  43. commission = '0.00';
  44. }
  45. $(this).find(".commission").html(commission);
  46. if (parseInt(room_num) <= parseInt($(this).find('.commission').attr('data-buyout'))) { //说明预定的库存全部消耗买断
  47. //这个时候,成本价取的是买断的价格
  48. chengben = $(this).find('.commission').attr('data-base_price_buyout') * room_num;
  49. }
  50. else if (parseInt(room_num) > parseInt($(this).find('.commission').attr('data-buyout')) && parseInt(room_num) <= parseInt($(this).find('.commission').attr('data-retain'))) {
  51. //库存小于等于买断+保留,但大于买断
  52. chengben = $(this).find('.commission').attr('data-base_price_buyout') * $(this).find('.commission').attr('data-buyout') + $(this).find('.commission').attr('data-base_price_reserve') * (room_num - $(this).find('.commission').attr('data-buyout'));
  53. } else {
  54. //需要消耗买断+保留+现询3种库存
  55. chengben = $(this).find('.commission').attr('data-base_price_buyout') * $(this).find('.commission').attr('data-buyout') +
  56. $(this).find('.commission').attr('data-retain') * $(this).find('.commission').attr('data-base_price_reserve') +
  57. (room_num - $(this).find('.commission').attr('data-buyout') - $(this).find('.commission').attr('data-retain')) * $(this).find('.commission').attr('data-base_price_inquiry');
  58. }
  59. var profit_value = $(this).find(".order_price").html() - $(this).find(".commission").html() - chengben;
  60. $(this).find(".profit").html(profit_value);
  61. } else { //按销售比例
  62. var back_percent = ($(this).find('.commission').attr('data-back_percent')) / 100;
  63. if (back_percent != '0.00') {
  64. $(this).find(".commission").html(($(this).find(".base_price").val() * room_num * back_percent).toFixed(2));
  65. }
  66. if (parseInt(room_num) <= parseInt($(this).find('.commission').attr('data-buyout'))) { //说明预定的库存全部消耗买断
  67. //这个时候,成本价取的是买断的价格
  68. chengben = $(this).find('.commission').attr('data-base_price_buyout') * room_num;
  69. }
  70. else if (parseInt(room_num) > parseInt($(this).find('.commission').attr('data-buyout')) && parseInt(room_num) <= parseInt($(this).find('.commission').attr('data-retain'))) {
  71. //库存小于等于买断+保留,但大于买断
  72. chengben = $(this).find('.commission').attr('data-base_price_buyout') * $(this).find('.commission').attr('data-buyout') + $(this).find('.commission').attr('data-base_price_reserve') * (room_num - $(this).find('.commission').attr('data-buyout'));
  73. } else {
  74. //需要消耗买断+保留+现询3种库存
  75. chengben = $(this).find('.commission').attr('data-base_price_buyout') * $(this).find('.commission').attr('data-buyout') +
  76. $(this).find('.commission').attr('data-retain') * $(this).find('.commission').attr('data-base_price_reserve') +
  77. (room_num - $(this).find('.commission').attr('data-buyout') - $(this).find('.commission').attr('data-retain')) * $(this).find('.commission').attr('data-base_price_inquiry');
  78. }
  79. var profit = $(this).find(".order_price").html() - $(this).find(".commission").html() - chengben;
  80. $(this).find(".profit").html(profit);
  81. }
  82. });
  83. calTotalPrice();
  84. }
  85. /**
  86. * 计算合计
  87. */
  88. function calTotalPrice() {
  89. var total_price = 0;
  90. var total_commission = 0;
  91. var total_profit = 0;
  92. $("#room_table").find('tr').each(function () {
  93. total_price += $(this).find(".order_price").html() != undefined ? Number($(this).find(".order_price").html()) : 0;
  94. total_commission += $(this).find(".commission").html() != undefined ? Number($(this).find(".commission").html()) : 0;
  95. total_profit += $(this).find(".profit").html() != undefined ? Number($(this).find(".profit").html()) : 0;
  96. });
  97. $('#total_price').val(total_price.toFixed(2));
  98. $('#total_commission').html(total_commission.toFixed(2));
  99. $('#total_profit').html(total_profit.toFixed(2));
  100. }
  101. function getProductInfo() {
  102. room_id = $("#room_id").val();
  103. distrib_id = $('#SalesChannels').val();
  104. start_date = $("#datetimeStart").val();
  105. end_date = $("#datetimeEnd").val();
  106. if (room_id != '' && distrib_id != '' && start_date != '' && end_date != '') {
  107. $.pjax.reload({
  108. container: '#pjax-order-modal',
  109. url: '/hotel/hotel-room/book-order?room_id=' + room_id,
  110. data: {
  111. CommonOrder: {
  112. RoomID: room_id,
  113. DistribID: distrib_id,
  114. CheckIn: start_date,
  115. CheckOut: end_date,
  116. _csrf: yii.getCsrfToken()
  117. }
  118. },
  119. replace: false,
  120. timeout: false
  121. })
  122. }
  123. }
  124. /**
  125. *
  126. * @param e
  127. * @param type
  128. */
  129. function changeButton(e,type) {
  130. $('.primary').removeClass('btn-primary');
  131. $(e).addClass('btn-primary primary');
  132. if(type==1){ //内部备注
  133. $('.field-customer_memo1').css('display','block');
  134. $('.field-customer_memo2').css('display','none');
  135. }else {
  136. $('.field-customer_memo2').css('display','block');
  137. $('.field-customer_memo1').css('display','none');
  138. }
  139. }
  140. function minusDate(date, days) {
  141. if (days == undefined || days == '') {
  142. days = 1;
  143. }
  144. var date = new Date(date);
  145. date.setDate(date.getDate() - days);
  146. var month = date.getMonth() + 1;
  147. var day = date.getDate();
  148. return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day);
  149. }
  150. function addDate(date, days) {
  151. if (days == undefined || days == '') {
  152. days = 1;
  153. }
  154. var date = new Date(date);
  155. date.setDate(date.getDate() + days);
  156. var month = date.getMonth() + 1;
  157. var day = date.getDate();
  158. return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day);
  159. }
  160. // 日期月份/天的显示,如果是1位数,则在前面加上'0'
  161. function getFormatDate(arg) {
  162. if (arg == undefined || arg == '') {
  163. return '';
  164. }
  165. var re = arg + '';
  166. if (re.length < 2) {
  167. re = '0' + re;
  168. }
  169. return re;
  170. }
  171. $('#book_order_form').on('afterValidate', function (e) {
  172. if ($("#book_order_form").find('.has-error').length > 0) {
  173. closeLoading();
  174. }
  175. });
  176. $('#ordermain-outside_order_no').blur(function () {
  177. validateOutsideOrder();
  178. });
  179. // 渠道订单号重复提示
  180. function validateOutsideOrder() {
  181. var outside_order_id = $('#ordermain-outside_order_no').val();
  182. var channel_id = $('#SalesChannels').val();
  183. var param = {"outside_order_id": outside_order_id, "channel_id": channel_id};
  184. $.ajax({
  185. type: 'post',
  186. data: param,
  187. dataType: 'json',
  188. async: true,
  189. url: '/hotel/hotel-room/validate-out-order',
  190. success: function (res_data) {
  191. if (res_data['code']) {
  192. $('.outside_order_exists').css('display', 'block');
  193. } else {
  194. $('.outside_order_exists').css('display', 'none');
  195. }
  196. },
  197. error: function () {
  198. }
  199. });
  200. }