/** * Created by luocj on 2016/9/29. */ var tbodyHTML = ''; var order_detail; var tr = $('.tr_str').prop('outerHTML'); var hotel_name = getPar('hotel_name'); var product_name = getPar('product_name'); var hotel_id = getPar('hotel_id'); var room_type = getPar('room_type'); var parent_room_type = getPar('parent_room_type'); //基础房型 var start_date = ''; var end_date = ''; var org_id = getPar('org_id'); var org_list = ''; var order_list = ''; var order_id = getPar('order_id'); var org_name = getPar('org_name'); var all_order_detail = ''; var all_money_sum = ''; var benefit_sum = ''; //总佣金,总结算,总利润 var all_yongj = 0; var all_jiesuan = 0; var all_profit = 0; var _old_data = { org_id: '', org_num: '', contact: '', mobile: '', start_date: '', // end_date: '', total: '', memo: '', amount: 0 }; //原订单日期对应库存类型及其数量 var _old_stock = []; var load_detail_finished = false, load_finished = false; window.onload = function () { tbodyHTML = $('#make_order_list').html(); start_date = $('#start_date').val(); end_date = $('#end_date').val(); getOrgList(); getOrderDetail(); //可选库存具体数量,需要等待原订单库存的数据,再加上 getOrderStatus(); }; // 获取渠道 function getOrgList() { var url = base_api + "?type=order_MakeHTOrder&op=org_list"; ZZLog(url); load_finished = false; $.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']); if (dict['org_id'] == org_id) { HTML = HTML.replace("id=0", "id=" + dict['org_id'] + " value=" + dict['org_id'] + " selected=selected"); } else { HTML = HTML.replace("id=0", "id=" + dict['org_id'] + " value=" + dict['org_id']); } outHTML += HTML } $('#org_id').html(outHTML); $('.select_line').comboSelect(); } load_finished = true; }) } var refuse_flag = ''; //获取订单详情 function getOrderDetail() { load_detail_finished = false; start_date = $('#start_date').val(); end_date = $('#end_date').val(); var url = base_api + "?type=order_ModifyHTOrder&op=order_list&start_date=" + start_date + "&end_date=" + end_date + "&hotel_id=" + hotel_id + "&room_type=" + room_type + "&org_id=" + org_id + "&order_id=" + order_id; ZZLog(url); $.getJSON(url, function (data) { ZZLog(data); all_order_detail = data; order_detail = data; initOldData(data); //对 $.each(data['hotel_child_order_detail'], function (key, item) { _old_stock.push({'date': item['run_date'], 'stock_type': item['stock_type'], 'stock_count': item['total']}) }) var main_order = data['hotel_order_detail'][0]; var hotel_name = main_order['hotel_name']; refuse_flag = main_order['refuse_flag']; var product_name = main_order['product_name']; var order_status = main_order['order_status']; var customer_name = main_order['customer_name']; var customer_mobile = main_order['customer_mobile']; var customer_memo = main_order['customer_memo']; var checkin_time = data['hotel_child_order_detail'][0]['checkin_time']; var org_id = getPar('org_id'); var start_date = data['hotel_child_order_detail'][0]['run_date']; var end_date = getDateByDay(1, data['hotel_child_order_detail'][data['hotel_child_order_detail'].length - 1]['run_date']); $('#start_date').val(start_date); $('#end_date').val(end_date); $('#hotel_name').html(hotel_name); $('#product_name').html(product_name); $('#org_name').html('订单渠道: ' + org_name); $('#order_id').html('订 单 号: ' + order_id); if (order_status == 145) { $('#order_status').html('待支付'); } else if (order_status == 313) { $('#order_status').html('待发单'); } else if (order_status == 198) { $('#order_status').html('待确认'); } else if (order_status == 314) { $('#order_status').html('已安排'); } else if (order_status == 147) { $('#order_status').html('已完成'); } else if (order_status == 148) { $('#order_status').html('已取消'); } else if (order_status == 382) { $('#order_status').html('异常处理待发单'); } //下方 $('#org_num').val(main_order['outside_order_no']); $('#org_id').val(org_id); $('#contacts').val(customer_name); $('#phone').val(customer_mobile); var notes = customer_memo.split('||'); var user_org_id = getCookie('user_org_id'); $.each(notes, function (key, item) { if (item != '') { var tmp = item.split('|'); var note = '
'; //不同用户登录,显示不同内容 var display = 'none'; if (user_org_id == 0) { display = 'inline-block'; } var selected = ''; if (tmp[2] == 1) selected = 'selected'; note += ' '; // } note += ' '; var user_id = getCookie('user_id'); if ($.inArray(parseInt(user_id), [1, 35, 160]) >= 0) note += ' 删除'; note += '
'; if (user_org_id == 0 || tmp[2] == 0) $(".note:last").after(note); } }) $('#more').val(customer_memo); lastchecktime(); $('#time').val(checkin_time); timeDiff(); //获取订单列表 //getOrderList() load_detail_finished = true; }) } //获取可下库存 function getRoomStock() { var url = base_api + "?type=order_ModifyHTOrder&op=stock_list&hotel_id=" + hotel_id + "&parent_room_type=" + parent_room_type + "&room_type=" + 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) updateStock(); } }).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') {//买断 count += parseInt(dict1['remaining_count']); 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') {//保留 count += parseInt(dict1['remaining_count']); 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(); } var data_detail = order_detail; $.each($("#make_order_list tr"), function (key, tr) { for (var n = 0; n < data_detail['hotel_child_order_detail'].length; n++) { if (data_detail['hotel_child_order_detail'][n]['run_date'] == $(tr).find("td:first").text()) { $(tr).find(".prod_price").val(data_detail['hotel_child_order_detail'][n]['order_price']); } } }); //刷新总计 all_sum(); } //获取时差并获取相应时间的订单 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 + ' 晚'); // alert(days); start_date = $('#start_date').val(); end_date = $('#end_date').val(); org_id = $('#org_id').val(); getRoomStock(); } var yongj = ''; //改变产品数量与结算价 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'] == undefined ? 0 : dict_maiduan['remaining_count']; var baoliu_count = dict_baoliu['remaining_count'] == undefined ? 0 : dict_baoliu['remaining_count']; var xianxun_count = dict_xianxun['remaining_count'] == undefined ? 0 : dict_xianxun['remaining_count']; var maiduan_price = dict_maiduan['cost_price'] == undefined ? 0 : dict_maiduan['cost_price']; var baoliu_price = dict_baoliu['cost_price'] == undefined ? 0 : dict_baoliu['cost_price']; var xianxun_price = dict_xianxun['cost_price'] == undefined ? 0 : dict_xianxun['cost_price']; //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(); } //获取最晚到店时间 function lastchecktime() { var sumHTML = ''; for (var i = 1; i <= 23; i++) { var HTML = ''; HTML = HTML.replace('', '') sumHTML += HTML; } $('#time').html(sumHTML); } //获取上方状态栏 function getOrderStatus() { var url = base_api; var param = { type: "order_ModifyHTOrder", op: "order_status", order_id: order_id } $.ajax({ url: url, type: "post", dataType: "json", data: param, success: function (res_data) { ZZLog(res_data); for (var i = 0; i < res_data['order_status'].length; i++) { var dict = res_data['order_status'][i]; var temp_date = dict['create_time'].split(" "); var date = temp_date[0]; var time = temp_date[1]; if (dict['order_status_name'] == "待支付") { $('li[data-target="#step1"]').addClass('active'); $('li[data-target="#step2"]').addClass('active'); $('#create_date').text(date); $('#create_time').text(time); $('#pay_date').text(date); $('#pay_time').text(time); } else if (dict['order_status_name'] == "待发单") { $('li[data-target="#step1"]').addClass('active'); $('li[data-target="#step2"]').addClass('active'); $('#create_date').text(date); $('#create_time').text(time); $('#pay_date').text(date); $('#pay_time').text(time); } else if (dict['order_status_name'] == "待确认") { $('li[data-target="#step3"]').addClass('active'); $('#send_date').text(date); $('#send_time').text(time); } else if (dict['order_status_name'] == "已安排") { $('li[data-target="#step4"]').addClass('active'); $('#arr_date').text(date); $('#arr_time').text(time); } else if (dict['order_status_name'] == "已完成") { $('li[data-target="#step5"]').addClass('active'); $('#finish_date').text(date); $('#finish_time').text(time); } else { } } } }) } //提交 function commit() { if ($('#button').text() == '保存中') { return; } $('#button').text('保存中'); $('#button').css('background', 'darkgray'); //获取联系人,联系方式,备注 var contacts = $('#contacts').val().replace(/\,/g, ' ').trim(); var phone = $('#phone').val(); var more = '', total = 0; //拒单标识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 += '||'; var user_id = $(item).closest('div').find('input[name="edit_user_id"]'); more += (user_id.length > 0 ? user_id.val() : 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); } //获得买断,保留,现询的价格与库存 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) { /* $('#button').text("保存"); $('#button').attr('disabled',"false");*/ ZZAlertInfo('存在成本价为零,请至对应房型列表确认', function () { return; }) } //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 { // alert('出错了,不可能!!'); return; } // ZZLog(sum_field); room_list += '{\'\'' + start_date + '\'\',' + all_count + ',' + dan_jiesuan + ',' + dan_yongj + '}'; total += all_count; //end 判断库存 }); //end 获取房型列表 var param = { type: "order_ModifyHTOrder", op: "modify_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, contact: contacts, mobile: phone, start_date: start_date, memo: more, total: total, checkin_time: checkin_time, if_cancel: if_cancel, order_id: order_id, total_commission: all_yongj, benefit: all_profit, }; param.logList = compareOldData(param); //最晚到店不为空,联系人不为空,订单渠道不为空,渠道订单号不为空,入住日期得连续,库存不问空 if (hotel_id == '' || room_type == '' || org_id == '' || room_list == '' || checkin_time == '' || if_cancel === '' || contacts === '') { $('#button').text('保存'); $('#button').css('background', '#428bca!important'); ZZAlertInfo('请完整填写数据', function () { }) 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'); ZZAlertInfo('修改失败', function () { }) } else { $('#button').text('保存'); $('#button').css('background', '#428bca!important'); ZZAlertInfo('修改成功!', function () { window.location.href = "./hotel_order_list.html"; }); } }, error: function (msg) { closeLoading(); } }) } } //添加备注 function addNote(e) { ZZConfirm('确认添加备注?', function () { var note = '
'; //不同用户登录,显示不同内容 var display = 'none'; var user_org_id = getCookie('user_org_id'); if (user_org_id == 0) { display = 'inline-block'; } note += ' '; // } note += ' '; note += ' 删除'; note += '
'; $(".note:last").after(note); }) } //更新库存 function updateStock() { if (load_detail_finished && load_finished) { var trList = $("#make_order_list tr td.checkin_date").closest('tr'); $.each(_old_stock, function (key, item) { $.each(trList, function (key, tr) { if ($($(tr).find('td')[0]).html() == item['date']) { //根据不同类型,选择不同库存 var json_type = ''; if (item['stock_type'] == '228') {//买断 json_type = 'data-json-maiduan'; } else if (item['stock_type'] == '229') {//现询 json_type = 'data-json-xianxun'; } else if (item['stock_type'] == '230') {//保留 json_type = 'data-json-baoliu'; } else { } var tr_json_data = $(tr).attr(json_type); if (tr_json_data != '' && tr_json_data.indexOf('[data-json') == -1) { var tmp_data = JSON.parse(tr_json_data); tmp_data['remaining_count'] = parseInt(tmp_data['remaining_count']) + parseInt(item['stock_count']); var json_str = JSON.stringify(tmp_data); $(tr).attr(json_type, json_str); } var count = parseInt($(tr).find('.prod_count option:last').html()); var new_count = count + parseInt(item['stock_count']) for (var i = count + 1; i <= new_count && i < 20; i++) { $(tr).find('.prod_count option:last').after(''); } $(tr).find('.prod_count').val(item['stock_count']).change(); } }) }) } } //获取总计 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 + '元'); }