/** * 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 = ''; org_list = data['org_list']; for (var i = 0; i < org_list.length; i++) { var HTML = ''; 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 = ''; HTML = HTML.replace('[数量]', selHTML); //end 替换数量 //结算价替换 HTML = HTML.replace('[结算价]', '') //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 = '' for (var i = 1; i <= 23; i++) { var HTML = ''; var time = i; HTML = HTML.replace('', ''); 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 = '
'; //不同用户登录,显示不同内容 var display = 'none'; var user_org_id = getCookie('user_org_id'); if (user_org_id == 0) { display = 'inline-block'; } note += ' '; note += ' '; var user_id = getCookie('user_id'); if ($.inArray(user_id, [1, 35, 160])) note += ' 删除'; note += '
'; $(".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 + '元'); }