|
- /**
- * Created by luocj on 2016/12/6.
- */
- // var start_date = '';
- // var end_date = '';
- // var hotel_id = '';
- // var room_type = '';
- // var org_id = '';
- var hotel_name = getPar('hotel_name');
- var product_name = getPar('product_name');
- var hotel_id = getPar('hotel_id');
- var parent_room_type = getPar('parent_type'); //基础房型
- var room_type = getPar('room_type');
- var start_date = '';
- var end_date = '';
-
- // var start_date = '2016-12-05';
- // var end_date = '2016-12-08';
- // var hotel_id = 294;
- // var room_type = 1;
- // var org_id = 4;
- //总佣金,总结算,总利润
- var all_yongj = 0;
- var all_jiesuan = 0;
- var all_profit = 0;
- //得到替换行
- var tr = $('.tr_str').prop('outerHTML');
- window.onload = function () {
- $('#hotel_name').text(hotel_name);
- $('#product_name').text(product_name);
- //初始时间不需要给默认值
- // $("#start_date").val(getDateTime(0));
- // $("#end_date").val(after(getDateTime(0)));
- // start_date = $('#start_date').val();
- // end_date = $('#end_date').val();
- //获取渠道
- getOrgList();
- // //获取可下订单
- // getRoomStock();
- //最晚到店时间
- getTimeList();
- };
- // 获取渠道
- function getOrgList() {
- var url = base_api + "?type=order_MakeHTOrder&op=org_list";
- $.getJSON(url, function (data) {
- ZZLog(data);
-
- if (data['code'] != "0") {
- alert(data['info']);
- } else {
- var outHTML = '<option selected=selected id=0 value="0" style=font-size: 12px;>请选择</option>';
- org_list = data['org_list'];
- for (var i = 0; i < org_list.length; i++) {
- var HTML = '<option id=0>请选择</option>';
- var dict = org_list[i];
- HTML = HTML.replace('请选择', dict['org_name']);
- HTML = HTML.replace("id=0", "id=" + dict['org_id'] + " value=" + dict['org_id']);
- outHTML += HTML
- }
- $('#org_id').html(outHTML);
- $('.select_line').comboSelect();
- }
- })
- }
- //获取可下库存
- function getRoomStock() {
- var url = base_api + "?type=order_MakeHTOrder&op=order_list&hotel_id=" + hotel_id + "&room_type=" + room_type + "&parent_room_type=" + parent_room_type + "&org_id=" + org_id + "&start_date=" + start_date + "&end_date=" + end_date;
- // ZZLog(url);
- $.getJSON(url, function (data) {
- ZZLog(data);
- if (data['code'] != 0) {
- ZZAlertInfo(data['info'], function () {
- return;
- });
- } else {
- setDataHTML(data)
- }
- }).error(function (data) {
-
- })
- }
- //页面数据替换
- function setDataHTML(data) {
- var sumHTML = '';
- for (var i = 0; i < data['order_list'][0].length; i++) {
- var dict = data['order_list'][0][i];
- var HTML = tr;
- //替换入住日期
- HTML = HTML.replace('[入住日期]', dict['run_date']);
- //end 替换入住日期
-
- //替换数量
- //得到替换数量,逻辑:先判断超售oversell_flag,1为可以超售,如果可以超售则取data['order_list'][1]中的该天所有库存,超了不能下单。
- var count = 0;
- if (dict['oversell_flag'] == 1 && dict['remaining_count'] != -1) {
- for (var j = 0; j < data['order_list'][1].length; j++) {
- var dict1 = data['order_list'][1][j];
- if (dict['run_date'] == dict1['run_date']) {
- count += parseInt(dict1['remaining_count']);
- // ZZLog(dict1);
- //将调用超售库存的信息放入data-json-baoliu,maiduan,xianxun
- if (dict1['stock_type'] == '228') {//买断
- HTML = HTML.replace('[data-json-maiduan]', setJsonHtml(dict1))
- } else if (dict1['stock_type'] == '229') {//现询
- HTML = HTML.replace('[data-json-xianxun]', setJsonHtml(dict1))
- } else if (dict1['stock_type'] == '230') {//保留
- HTML = HTML.replace('[data-json-baoliu]', setJsonHtml(dict1))
- } else {
- ZZAlertInfo('没有该库存类型');
- }
- }
- }
- } else {
- for (var j = 0; j < data['order_list'][1].length; j++) {
- var dict1 = data['order_list'][1][j];
- if (dict['run_date'] == dict1['run_date']) {
- // ZZLog(dict1);
- //将调用超售库存的信息放入data-json-baoliu,maiduan,xianxun
- if (dict1['stock_type'] == '228') {//买断
- HTML = HTML.replace('[data-json-maiduan]', setJsonHtml(dict1))
- } else if (dict1['stock_type'] == '229') {//现询
- HTML = HTML.replace('[data-json-xianxun]', setJsonHtml(dict1))
- } else if (dict1['stock_type'] == '230') {//保留
- HTML = HTML.replace('[data-json-baoliu]', setJsonHtml(dict1))
- } else {
- ZZAlertInfo('没有该库存类型');
- }
- }
- }
- count = parseInt(dict['remaining_count'] == -1 ? 0 : dict['remaining_count'])
- }
- // ZZLog(count);
- //end 得到替换数量
- //循环替换数量
- var selHTML = '<select onchange="changeCount(this)" class="prod_count" style="width: 40px">';
- for (var m = 0; m <= count; m++) {
- if (m > 20) {
- break;
- }
- var temp = "<option value='" + m + "'>" + m + "</option>";
- selHTML += temp;
- }
- selHTML += '</select>';
- HTML = HTML.replace('[数量]', selHTML);
- //end 替换数量
- //结算价替换
- HTML = HTML.replace('[结算价]', '<input type="text" oninput="changeCount(this)" class="prod_price" style="width: 60px" value="' + dict['price'] + '">')
- //end 结算价替换
- //佣金规则
- var ling = 0;
- var ling1 = ling.toFixed(2);
- if (dict['commision_flag'] == 0) {//为0不返佣,为1返佣
- HTML = HTML.replace('[佣金]', '-');
- } else {
- HTML = HTML.replace('[佣金]', ling1);
- }
- //end 佣金规则
- HTML = HTML.replace('[结算价总额]', ling1);
- HTML = HTML.replace('[销售利润]', ling1);
- //将非超卖库存存入data-json
- HTML = HTML.replace('[data-json]', setJsonHtml(dict));
- sumHTML += HTML
- }
- $('#make_order_list').html(sumHTML);
- if (sumHTML) {
- $('#make_table').show();
- } else {
- $('#make_table').hide();
- }
-
- //刷新总计
- all_sum();
- }
- //数量与结算单价改变对应的渠道佣金,结算总价,销售利润的变化
- function changeCount(obj) {
- // 房间数量
- var room_count = $(obj).closest('tr').find('.prod_count').val();
- // 结算单价
- var room_price = $(obj).closest('tr').find('.prod_price').val();
- // 佣金规则
- var dict = getJsonHtml($(obj).closest('tr').attr('data-json'));
- var dict_maiduan = getJsonHtml($(obj).closest('tr').attr('data-json-maiduan'));
- var dict_baoliu = getJsonHtml($(obj).closest('tr').attr('data-json-baoliu'));
- var dict_xianxun = getJsonHtml($(obj).closest('tr').attr('data-json-xianxun'));
- var commision_price = 0;
- if (dict['commision_flag'] == '1') {//有佣金规则
- if (dict['back_commision_method'] == '309') {//308 按销售金额309 按结算金额
- commision_price = dict['back_value']
- } else if (dict['back_commision_method'] == '308') {
- commision_price = room_count * room_price * parseFloat(dict['back_percent']) / 100;
- }
- } else {//无佣金规则
- commision_price = 0;
- }
- //end 佣金规则
- //结算总价
- var jiesuan_price = room_count * room_price;
- //end 结算总价
- //库存类型与成本
- var maiduan_count = dict_maiduan['remaining_count'] ? dict_maiduan['remaining_count'] : 0;
- var baoliu_count = dict_baoliu['remaining_count'] ? dict_baoliu['remaining_count'] : 0;
- var xianxun_count = dict_xianxun['remaining_count'] ? dict_xianxun['remaining_count'] : 0;
- var maiduan_price = dict_maiduan['cost_price'] ? dict_maiduan['cost_price'] : 0;
- var baoliu_price = dict_baoliu['cost_price'] ? dict_baoliu['cost_price'] : 0;
- var xianxun_price = dict_xianxun['cost_price'] ? dict_xianxun['cost_price'] : 0;
- //end 库存类型与成本
- //销售利润
- var profit = 0;
- if (parseInt(room_count) <= parseInt(maiduan_count)) {//所选房间数小于等于买断数
- profit = jiesuan_price - commision_price - maiduan_price * room_count
- } else if (parseInt(room_count) > parseInt(maiduan_count) && parseInt(room_count) <= (parseInt(maiduan_count) + parseInt(baoliu_count))) { //所选房间数大于买断数,小于等于保留数+买断数
- profit = jiesuan_price - commision_price - maiduan_price * maiduan_count - baoliu_price * (room_count - maiduan_count)
- } else if (parseInt(room_count) > (parseInt(maiduan_count) + parseInt(baoliu_count)) && parseInt(room_count) <= (parseInt(maiduan_count) + parseInt(baoliu_count) + parseInt(xianxun_count))) {
- profit = jiesuan_price - commision_price - maiduan_price * maiduan_count - baoliu_price * baoliu_count - xianxun_price * (room_count - maiduan_count - baoliu_count)
- }
- //end 销售利润
- //佣金显示
- var commision_price1 = parseFloat(commision_price).toFixed(2);
- if (dict['commision_flag'] == 1) {
- $(obj).closest('tr').find('.yongj_sum').text(commision_price1);
- } else {
- $(obj).closest('tr').find('.yongj_sum').text('-');
- }
- //结算总价显示
- var jiesuan_price1 = parseFloat(jiesuan_price).toFixed(2);
- if (jiesuan_price1) {
- $(obj).closest('tr').children().eq(4).text(jiesuan_price1);
- }
- //销售利润显示
- var profit1 = parseFloat(profit).toFixed(2);
- if (profit1) {
- $(obj).closest('tr').children().eq(5).text(profit1);
- }
- //总计
- all_sum();
- }
- // 获取1至23小时
- function getTimeList() {
- var outHTML = '<option selected="selected" value="-1">请选择</option>'
- for (var i = 1; i <= 23; i++) {
- var HTML = '<option>24:00</option>';
- var time = i;
- HTML = HTML.replace('<option>24:00</option>', '<option selected="selected" value=' + i + ':00>' + i + ':00</option>');
- outHTML += HTML
- }
- $('#time').html(outHTML);
- }
- //获取时差并获取相应时间的订单
- function timeDiff() {
- var start = $("#start_date").val();
- var end = $("#end_date").val();
- start = start.replace(/-/g, "/");
- var startdate = new Date(start);
- end = end.replace(/-/g, "/");
- var enddate = new Date(end);
- var time = enddate.getTime() - startdate.getTime();
- var days = parseInt(time / (1000 * 60 * 60 * 24));
- $('#datediff').html('共 ' + days + ' 晚');
- start_date = $('#start_date').val();
- end_date = $('#end_date').val();
- org_id = $('#org_id').val();
- getRoomStock()
- }
- //日历点击事件
- function timeDiffStart() {
- timeDiff();
- $('#end_date').focus();
- }
- //添加备注
- function addNote(e) {
- var note = '<div style="margin-top: 20px" class="note"><span style="width: 100px;display: inline-block"></span>';
- //不同用户登录,显示不同内容
- var display = 'none';
- var user_org_id = getCookie('user_org_id');
- if (user_org_id == 0) {
- display = 'inline-block';
- }
- note += ' <select name="note[type][]" style=" display: ' + display + ';"><option value="0">公共备注</option><option value="1">内部备注</option></select>';
- note += ' <input name="note[text][]" style="width: 300px;height: 30px;font-size: 13px;color: inherit" placeholder="填写备注" />';
- var user_id = getCookie('user_id');
- if ($.inArray(user_id, [1, 35, 160]))
- note += ' <a href="javascript:;" onclick="removeNote(this)" >删除</a>';
-
- note += '</div>';
- $(".note:last").after(note);
- }
- //提交订单
- function commit(identify) {
- if ($('#button').text() == '保存中' || $('#button_send').text() == '保存中') {
- return;
- }
- $('#button').text('保存中');
- $('#button').css('background', 'darkgray');
- $('#button_send').text('保存中');
- $('#button_send').css('background', 'darkgray');
- //获取联系人,联系方式,备注
- var contacts = $('#contacts').val().replace(/\,/g, ' ').trim();
- var phone = $('#phone').val();
- var more = '';
- //拒单标识0为不能拒单,1为可以拒单
- var if_cancel = 0;
- //备注要拼接字符串
- $.each($("[name^='note[type]']"), function (key, item) {
- var text = $(item).next().val().replace(/[\|,]/g, ' ').trim();
- if (text != '') {
- if (more != '')
- more += '||';
-
- more += getCookie('user_id') + '|' + parseInt(Date.now() / 1000) + '|' + item.value + '|' + text;
- }
- });
- //end 备注要拼接字符串
- var cus_list = "{" + contacts + "," + phone + "," + more + "}";
- //end 获取联系人,联系方式,备注
- //获取最晚到店时间
- var checkin_time = $('#time').val().toString();
- //渠道订单号
- var org_num = $('#org_num').val();
- //渠道id
- var org_id = $('#org_id').val();
- //获取房型列表
- var room_list = '';
- $('.tr_str').each(function () {
- var start_date = $(this).find('td').eq(0).text();
- var all_count = $(this).find('.prod_count').val();
- if (all_count == 0) {
- /*$('#button').text("保存");
- $('#button').attr('disabled',"false");*/
- ZZAlertInfo('请选择库存', function () {
- return;
- })
- }
- var dan_jiesuan = $(this).find('.prod_price').val();
- if ($(this).find('.yongj_sum').text() == '-') {
- var dan_yongj = 0
- } else {
- var dan_yongj = (parseFloat($(this).find('.yongj_sum').text()) / parseInt(all_count)).toFixed(2);
- }
- //获得买断,保留,现询的价格与库存
- var dict_maiduan = getJsonHtml($(this).attr('data-json-maiduan'));
- var dict_baoliu = getJsonHtml($(this).attr('data-json-baoliu'));
- var dict_xianxun = getJsonHtml($(this).attr('data-json-xianxun'));
- //库存类型与成本
- var maiduan_count = dict_maiduan == 0 ? 0 : dict_maiduan['remaining_count'];
- var baoliu_count = dict_baoliu == 0 ? 0 : dict_baoliu['remaining_count'];
- var xianxun_count = dict_xianxun == 0 ? 0 : dict_xianxun['remaining_count'];
- var maiduan_price = dict_maiduan == 0 ? 0 : dict_maiduan['cost_price'];
- var baoliu_price = dict_baoliu == 0 ? 0 : dict_baoliu['cost_price'];
- var xianxun_price = dict_xianxun == 0 ? 0 : dict_xianxun['cost_price'];
- if (maiduan_price == 0 && baoliu_price == 0 && xianxun_price == 0) {
- ZZAlertInfo('存在成本价为零,请至对应房型列表确认', function () {
- })
- }
- //end 库存类型与成本
- //end 获得买断,保留,现询的价格与库存
- //判断库存
- var maiduan_field = '';
- var baoliu_field = '';
- var xianxun_field = '';
- var sum_field = '';
- if (parseInt(all_count) <= parseInt(maiduan_count)) {//小于等于买断库存228
- sum_field = '228' + ',' + all_count + ',' + maiduan_price
- } else if (parseInt(all_count) > parseInt(maiduan_count) && parseInt(all_count) <= (parseInt(maiduan_count) + parseInt(baoliu_count))) {
- maiduan_field = '228' + ',' + maiduan_count + ',' + maiduan_price;
- baoliu_field = '230' + ',' + (all_count - maiduan_count) + ',' + baoliu_price;
- sum_field = maiduan_field + '|' + baoliu_field
- } else if (parseInt(all_count) > (parseInt(maiduan_count) + parseInt(baoliu_count)) && parseInt(all_count) <= (parseInt(maiduan_count) + parseInt(baoliu_count) + parseInt(xianxun_count))) {
- if_cancel = 1;
- maiduan_field = '228' + ',' + maiduan_count + ',' + maiduan_price;
- baoliu_field = '230' + ',' + baoliu_count + ',' + baoliu_price;
- xianxun_field = '229' + ',' + (all_count - baoliu_count - maiduan_count) + ',' + xianxun_price;
- sum_field = maiduan_field + '|' + baoliu_field + '|' + xianxun_field
- } else {
- /*ZZAlertInfo('获取库存信息失败', function () {
- return false;
- })*/
- }
- // ZZLog(sum_field);
- room_list += '{\'\'' + start_date + '\'\',' + all_count + ',' + dan_jiesuan + ',' + dan_yongj + '}';
- //end 判断库存
- });
- //end 获取房型列表
- var param = {
- type: "order_MakeHTOrder",
- op: "make_order",
- hotel_id: hotel_id,
- room_type: room_type,
- org_id: org_id,
- org_num: org_num,
- room_list: room_list,
- cus_list: cus_list,
- checkin_time: checkin_time,
- if_cancel: if_cancel,
- order_id: 0,
- total_commission: all_yongj,
- benefit: all_profit
- };
- ZZLog(param);
- //最晚到店不为空,联系人不为空,订单渠道不为空,渠道订单号不为空,入住日期得连续,库存不问空
- if (hotel_id == '' || room_type == '' || org_id == '' || room_list == '' || checkin_time == '' || if_cancel === '' || contacts === '') {
- /*$('#button').text("保存");
- $('#button').attr('disabled',"false");*/
- ZZAlertInfo('请完整填写数据', function () {
- $('#button').text('提交');
- $('#button').css('background', '#428bca!important');
- $('#button_send').text('提交并发单');
- $('#button_send').css('background', '#428bca!important');
- })
- return false;
- } else {
- loading();
- $.ajax({
- url: base_api,
- type: 'post',
- dataTye: 'json',
- data: param,
- success: function (res_data) {
- closeLoading();
- res_data = JSON.parse(res_data);
- if (res_data['code'] != "0") {
- $('#button').text('提交');
- $('#button').css('background', '#428bca!important');
- $('#button_send').text('提交并发单');
- $('#button_send').css('background', '#428bca!important');
- ZZAlertInfo('下单失败', function () {
- })
- } else {
- $('#button').text('提交');
- $('#button').css('background', '#428bca!important');
- $('#button_send').text('提交并发单');
- $('#button_send').css('background', '#428bca!important');
- if (identify == 1) { // 继续发单
- var url = base_api;
- var param = {
- type: "order_HotelOrderList",
- op: "billing",
- order_id: res_data['order_id']
- };
- $.ajax({
- url: url,
- type: "post",
- dataType: "json",
- data: param,
- success: function (send_data) {
- ZZLog(send_data);
- if (send_data['code'] != "0") {
- ZZAlertInfo('下单成功!订单号为' + res_data['order_id'] + ';自动发单失败:' + send_data['info'] + ',请到酒店订单列表进行手动发单操作', function () {
- window.location.href = "./hotel_order_list.html";
- });
- } else {
- ZZAlertInfo('下单成功!订单号为' + res_data['order_id'], function () {
- window.location.href = "./hotel_order_list.html";
- });
- }
- }, error: function (error) {
- ZZLog(error);
- }
- })
- } else {
- ZZAlertInfo('下单成功!订单号为' + res_data['order_id'], function () {
- window.location.href = "./hotel_order_list.html";
- });
- }
- }
- },
- error: function (msg) {
- closeLoading();
- }
-
- })
- }
-
- }
- //获取总计
- function all_sum() {
- all_yongj = 0;
- all_jiesuan = 0;
- all_profit = 0;
- var all_yongj1 = 0;
- var all_jiesuan1 = 0;
- var all_profit1 = 0;
- $('.yongj_sum').each(function () {
- all_yongj += parseFloat($(this).text())
- });
- if (isNaN(all_yongj)) {
- all_yongj = 0
- }
- $('.jiesuan_sum').each(function () {
- all_jiesuan += parseFloat($(this).text())
- });
- if (isNaN(all_jiesuan)) {
- all_jiesuan = 0
- }
- $('.benefit_sum').each(function () {
- all_profit += parseFloat($(this).text())
- });
- if (isNaN(all_profit)) {
- all_profit = 0
- }
- all_yongj1 = all_yongj.toFixed(2);
- all_jiesuan1 = all_jiesuan.toFixed(2);
- all_profit1 = all_profit.toFixed(2);
- $('#all_yongj').text(all_yongj1 + '元');
- $('#all_jiesuan').text(all_jiesuan1 + '元');
- $('#all_profit').text(all_profit1 + '元');
- }
|