//date:2017-04-12
let cache_res_data = {};
let order_id = '';
let mao_location = '';
let temp_all_html = '';
let save_info = '保存';
let save_update_info = '保存并生成修改单';
let temp_docking_type = '';
let temp_order_status = '';
$(document).ready(function() {
order_id = getPar('order_id');
mao_location = getPar('location');
if(mao_location.indexOf('#') != -1) {
let index = mao_location.indexOf('#');
mao_location = mao_location.substring(0, index);
}
if('' == order_id) {
ZZAlertInfo('缺少订单号!');
return;
}
loading();
httpLoadInfo()
})
//加载基本信息
function httpLoadInfo() {
let data = {
"type": "order_HotelOrderDetailLevel",
"order_id": order_id
}
$.ajax({
type: "post",
url: base_api,
async: true,
data: data,
dataType: "json",
success: (res_data) => {
ZZLog(res_data);
if(res_data['code'] != "0") {
ZZAlertInfo(res_data['info']);
} else {
cache_res_data[order_id] = res_data;
loadHtml(res_data);
loadUpLog(res_data);
httpLoadLog();
closeLoading();
//锚点定位
// location.href = "#"+mao_location;
if(mao_location != "") window.location.hash = '#' + mao_location;
}
},
error: () => {
ZZAlertInfo(infoApiError);
}
});
}
//根据初始数据刷新页面
function loadHtml(res_data) {
// order_info
//:如果是直连订单 不能更改销售价
let order_info = res_data['order_info'];
let order_id = order_info['order_id'];
let order_status_name = order_info['order_status_name']
let org_id = order_info['org_id'];
let org_name = order_info['org_name'];
let org_num = order_info['org_num'];
$('#top-order-id').html('订单编号:' + order_id);
$('#top-order-status').html(order_status_name);
$('#top-order-channel').html('订单渠道:' + org_name);
$('#top-order-channel-order-id').html(org_num);
let docking_type = order_info['docking_type'];
temp_docking_type = docking_type;
let docking_type_desc = order_info['docking_type_desc'];
if('557' == docking_type) {
// $('#ludan').html(docking_type_desc);
$('#ludan').html('录');
$('#ludan').removeClass('hide_f')
}
if('556' == docking_type) {
// $('#zhilian').html(docking_type_desc);
$('#zhilian').html('直');
$('#zhilian').removeClass('hide_f')
}
let cha = order_info['seconds'];
if(cha >= 0) { //后30分钟内
timeJian();
function timeJian() {
cha--;
if(cha < 0) cha = 0;
let m = parseInt(cha / 60);
let s = cha % 60;
if(0 == m && s == 0) {
$('#top-order-status-main').children().eq(2).html(`${order_status_name} (超时)`);
return;
}
m = m < 10 ? `0${m}` : m;
s = s < 10 ? `0${s}` : s;
$('#top-order-status-main').children().eq(1).html('|');
$('#top-order-status-main').children().eq(2).html(`${order_status_name} (${m}:${s})`);
setTimeout(timeJian, 1000);
}
}
//订单状态
let order_status = res_data['order_status'];
if(order_status.hasOwnProperty('198')) $('.198').addClass('active'); //待安排
if(order_status.hasOwnProperty('314')) $('.314').addClass('active'); //已安排
if(order_status.hasOwnProperty('147')) $('.147').addClass('active'); //已入住
if('147' == order_info['order_status']) $('.147').addClass('active'); //已入住
temp_order_status = order_info['order_status'];
//三个单 下载 0:确认单 1:修改单 2:取消单
if('0' == order_info['order_level']) {
$('#top-btn-ok-d').removeClass('hide_f')
$('#top-btn-update-d').addClass('hide_f')
$('#top-btn-cancele-d').addClass('hide_f')
};
if('1' == order_info['order_level']) {
$('#top-btn-update-d').removeClass('hide_f')
$('#top-btn-ok-d').addClass('hide_f')
$('#top-btn-cancele-d').addClass('hide_f')
};
if('2' == order_info['order_level']) {
$('#top-btn-cancel-d').removeClass('hide_f')
$('#top-btn-ok-d').addClass('hide_f')
$('#top-btn-update-d').addClass('hide_f')
};
//1.入住需求
let hotel_id = order_info['hotel_id'];
let hotel_name = order_info['hotel_name'];
let room_type = order_info['room_type'];
let base_room_type = order_info['base_room_type'];
let room_name = order_info['room_name'];
$('#rz-hotel-name').attr('data-hotel-id', hotel_id);
$('#rz-hotel-name').html(hotel_name);
$('#rz-hotel-room').attr('data-room-type', room_type);
$('#rz-hotel-room').attr('data-base-room-type', base_room_type);
$('#rz-hotel-room').html(room_name);
//1.1渠道订单号
$('#order_channel_order_id_txt').html(org_num);
$('#order_channel_order_id').val(org_num);
$('#order_channel_txt').html(org_name);
let org_list = res_data['org_list'];
let channel_html = '';
org_list.forEach((v, i) => {
channel_html += ``;
})
$('#order_channel').html(channel_html);
$('#order_channel').val(org_id);
//1.2入住日期
let start_date = order_info['start_date'];
let end_date = order_info['end_date'];
$('#start_date').children().eq(0).val(start_date);
$('#end_date').children().eq(0).val(end_date);
let s_s = start_date.replace(/\-/g, '');
let e_s = end_date.replace(/\-/g, '');
let days = e_s - s_s - 0;
$('#datediff').html(`共${days}晚`);
$('#start_date_txt').html(start_date);
$('#end_date_txt').html(end_date);
//1.3表格
let one_day = order_info['one_day'];
let one_html = '';
let all_commission = order_info['all_commission'];
let all_price = order_info['all_price'];
let all_profit = order_info['all_profit'];
let all_html = `
小计 |
|
|
|
${all_price}元 |
${all_commission}元 |
${all_profit}元 |
`;
temp_all_html = all_html;
one_day.forEach((v, i) => {
let cstr1 = '';
for(let j = 1; j <= 20; j++) {
cstr1 += ``;
}
one_html += `
${v.start_date} |
${v.count}
|
${v.order_price}
|
${v.base_price}
|
${toDecimal2(v.order_price*v.count)} |
${toDecimal2(v.commission)} |
${toDecimal2(v.profit_value)} |
`;
});
one_html += all_html;
$('#rz-table').html(one_html);
$('.room_count').on('change', function() {
$parent = $(this).closest('.tr_line');
changeCount($parent);
})
$('.sale_single_price').on('input', function() {
$parent = $(this).closest('.tr_line');
tr_change($parent);
})
$('.cai_base_price').on('input', function() {
$parent = $(this).closest('.tr_line');
tr_change($parent);
})
$('.sale_single_price').on('blur', function() {
let val = $(this).val();
val = val.trim() == "" ? "0" : val.trim();
$(this).val(val);
})
$('.cai_base_price').on('blur', function() {
let val = $(this).val();
val = val.trim() == "" ? "0" : val.trim();
$(this).val(val);
})
//1.5三个按钮
//如果是直连 则不能够修改销售价 556:直连 557:录单
if('556' == docking_type) {
$('#btn-rz-update-xsj').hide();
$('#btn-rz-update-xsj').remove();
$('#btn-rz-update-xsj').css('opacity', '0');
//1.5.1
let status_arr1 = ['313'];
let status_arr2 = ["198", "382"];
let status_arr3 = ['313', '198', '382'];
if($.inArray(temp_order_status, status_arr3) == -1) {
$('#btn-rz-update-xq').hide();
$('#btn-rz-update-xq').remove();
$('#btn-rz-update-xq').css('opacity', '0');
$('#btn-rz-update-cgj').hide();
$('#btn-rz-update-cgj').remove();
$('#btn-rz-update-cgj').css('opacity', '0');
$('#btn-rz-update-cancel').hide();
$('#btn-rz-update-cancel').remove();
$('#btn-rz-update-cancel').css('opacity', '0');
//客人信息
$('#btn-customer-update').closest('.myBody').children().eq(2).css('opacity', '0');
$('#btn-customer-update').closest('.myBody').children().eq(2).hide();
//订单备注
$('.order-remark').css('opacity', '0');
$('.order-remark').hide();
$('.btn-comment').attr("disabled", "disabled");
$('.btn-comment').hide();
}
}
if("557" == docking_type) {
//1.5.2
let status_arr1 = ['313'];
let status_arr2 = ["198", "382"];
let status_arr3 = ['313', '198', '382'];
if($.inArray(temp_order_status, status_arr3) == -1) {
//三个按钮
$('#btn-rz-update-xq').hide();
$('#btn-rz-update-xq').remove();
$('#btn-rz-update-xq').css('opacity', '0');
$('#btn-rz-update-xsj').hide();
$('#btn-rz-update-xsj').remove();
$('#btn-rz-update-xsj').css('opacity', '0');
$('#btn-rz-update-cgj').hide();
$('#btn-rz-update-cgj').remove();
$('#btn-rz-update-cgj').css('opacity', '0');
$('#btn-rz-update-cancel').hide();
$('#btn-rz-update-cancel').remove();
$('#btn-rz-update-cancel').css('opacity', '0');
//客人信息
$('#btn-customer-update').closest('.myBody').children().eq(2).css('opacity', '0');
$('#btn-customer-update').closest('.myBody').children().eq(2).hide();
//订单备注
$('.order-remark').css('opacity', '0');
$('.order-remark').hide();
$('.btn-comment').attr("disabled", "disabled");
$('.btn-comment').hide();
}
}
//2.0客人信息
let customer_name = order_info['customer_name'];
let customer_mobile = order_info['customer_mobile'];
$('#customer_name_txt').html(customer_name);
$('#customer_name').val(customer_name);
$('#customer_phone_txt').html(customer_mobile ? customer_mobile : "-");
$('#customer_phone').val(customer_mobile);
//3.0订单备注
let order_comment = res_data['order_comment'];
let comment_html = '';
order_comment.forEach((v, i) => {
comment_html += `
${v.comment_type_desc} |
${v.comment_txt} |
${v.user_true_name?v.user_true_name:"-"} |
${v.create_time} |
|
`;
})
$('#remark-table').html(comment_html);
//删除备注
$('.btn-comment').on('click', function() {
let $this = $(this);
ZZConfirm("您真的要删除该条备注吗?", function() {
let comment_id = $this.attr('data-comment-id');
let data = {
type: "order_ModifyHTOrderLevel",
op: "commentDel",
order_id,
comment_id
}
$.ajax({
type: "post",
url: base_api,
async: true,
data: data,
dataType: "json",
success: (res_data) => {
ZZLog(res_data);
if(res_data['code'] != "0") {
ZZAlertInfo(res_data['info']);
} else {
httpLoadInfo();
}
},
error: () => {
ZZAlertInfo(infoApiError);
}
});
})
})
}
function changeCount($parent) {
// 房间数量
var room_count = $parent.find('.room_count');
// 结算单价
var room_price = $parent.find('.sale_single_price');
// 佣金规则
var dict = getJsonHtml($parent.attr('data-json'));
var dict_maiduan = getJsonHtml($parent.attr('data-json-maiduan'));
var dict_baoliu = getJsonHtml($parent.attr('data-json-baoliu'));
var dict_xianxun = getJsonHtml($parent.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) {
$parent.find('.tr_all_commission').text(commision_price1);
} else {
$parent.find('.tr_all_commission').text('-');
}
//结算总价显示
var jiesuan_price1 = parseFloat(jiesuan_price).toFixed(2);
if(jiesuan_price1) {
$parent.find('.tr_all_price').text(jiesuan_price1);
}
//销售利润显示
var profit1 = parseFloat(profit).toFixed(2);
if(profit1) {
$parent.find('.tr_profit_value').text(profit1);
}
total_price_jisuan();
}
function tr_change($parent) {
let room_count = $parent.find('.room_count').val();
let sale_single_price = $parent.find('.sale_single_price').val();
let cai_base_price = $parent.find('.cai_base_price').val();
let commission = $parent.find('.tr_all_commission').attr('data-commission');
let tr_all_1 = sale_single_price * room_count;
tr_all_1 = tr_all_1.toFixed(2);
let tr_all_2 = commission * room_count;
tr_all_2 = tr_all_2.toFixed(2);
let tr_all_3 = tr_all_1 - cai_base_price * room_count;
tr_all_3 = tr_all_3.toFixed(2);
if(isNaN(tr_all_1)) tr_all_1 = 0;
if(isNaN(tr_all_2)) tr_all_2 = 0;
if(isNaN(tr_all_3)) tr_all_3 = 0;
// if(0==tr_all_1) tr_all_1 = '-';
// if(0==tr_all_2) tr_all_2 = '-';
// if(0==tr_all_3) tr_all_3 = '-';
$parent.find('.tr_all_price').text(tr_all_1);
$parent.find('.tr_all_commission').text(tr_all_2);
$parent.find('.tr_profit_value').text(tr_all_3);
total_price_jisuan();
}
function total_price_jisuan() {
let all_1 = 0,
all_2 = 0,
all_3 = 0;
$('.tr_all_price').each(function(index, dom) {
let tr_all_1 = $(this).text();
all_1 += tr_all_1 - 0;
})
$('.tr_all_commission').each(function(index, dom) {
let tr_all_2 = $(this).text();
all_2 += tr_all_2 - 0;
})
$('.tr_profit_value').each(function(index, dom) {
let tr_all_3 = $(this).text();
all_3 += tr_all_3 - 0;
})
if(isNaN(all_1)) all_1 = 0;
if(isNaN(all_2)) all_2 = 0;
if(isNaN(all_3)) all_3 = 0;
$('.all_price').text(all_1.toFixed(2) + '元');
$('.all_price').attr('data-value', all_1.toFixed(2));
$('.all_commission').text(all_2.toFixed(2) + '元');
$('.all_commission').attr('data-value', all_2.toFixed(2));
$('.all_profit').text(all_3.toFixed(2) + '元');
$('.all_profit').attr('data-value', all_2.toFixed(2));
}
function loadUpLog(res_data) {
let log_update_user = res_data['log_update_user'];
let log_html = ' ';
log_update_user.forEach((v, i) => {
log_html += ``;
})
$('#update-user').html(log_html);
$('#update-user').comboSelect();
}
$('#log-search').on('click', function() {
httpLoadLog();
})
//请求操作日志
function httpLoadLog() {
let log_user = $('#update-user').val();
let log_start_date = $('#log-start-date').val();
let log_end_date = $('#log-end-date').val();
let data = {
order_id,
type: "log_LogLogInformation",
name: "getHotelDetail",
operator: log_user,
startDate: log_start_date,
endDate: log_end_date
}
ZZLog(JSON.stringify(data));
$.ajax({
type: "post",
url: base_api,
async: true,
data: data,
dataType: 'json',
success: (res_data) => {
ZZLog(res_data);
if(res_data['code'] != "0") {
ZZAlertInfo(res_data['info']);
} else {
let log_list = res_data['result'];
let log_html = '';
let _room_name = '';
log_list = log_list.reverse();
log_list.forEach((v, i) => {
log_html += `
${v.true_name} |
${v.create_time} |
${v.log_desc.replace(/\;/g,' ')} |
`;
})
$('#log-table').html(log_html);
}
},
error: () => {
ZZAlertInfo(infoApiError);
}
});
}
//确认单
$('#top-btn-ok-d').on('click', function() {
window.location.href = base_api + "?type=order_HotelOrderDetailLevel&op=export&order_id=" + order_id;
})
//修改单
$('#top-btn-update-d').on('click', function() {
window.location.href = base_api + "?type=order_HotelOrderDetailLevel&op=export&order_id=" + order_id;
})
//取消单
$('#top-btn-cancel-d').on('click', function() {
window.location.href = base_api + "?type=order_HotelOrderDetailLevel&op=export&order_id=" + order_id;
})
//入住时间
$('#start_date').on('changeDate', function(e) {
changeStartEndDate();
})
//离店时间
$('#end_date').on('changeDate', function(e) {
changeStartEndDate();
})
function changeStartEndDate() {
let start_date = $('#start_date').children().eq(0).val();
let end_date = $('#end_date').children().eq(0).val();
let s_s = start_date.replace(/\-/g, '');
let e_s = end_date.replace(/\-/g, '');
let days = e_s - s_s - 0;
$('#datediff').html(`共${days}晚`);
let hotel_id = $('#rz-hotel-name').attr('data-hotel-id');
let room_type = $('#rz-hotel-room').attr('data-room-type');
let base_room_type = $('#rz-hotel-room').attr('data-base-room-type');
let org_id = $('#order_channel').val();
let data = {
"type": "order_ModifyHTOrderLevel",
"op": "stockGetList",
start_date,
end_date,
hotel_id,
room_type,
org_id,
"parent_room_type": base_room_type
}
ZZLog(JSON.stringify(data));
$.ajax({
type: "post",
url: base_api,
async: true,
data: data,
dataType: "json",
success: (res_data) => {
ZZLog(res_data);
if(res_data['code'] != "0") {
ZZAlertInfo(res_data['info']);
} else {
loadStockHtml(res_data);
}
},
error: () => {
ZZAlertInfo(infoApiError);
}
});
}
//加载库存相差
function loadStockHtml(res_data) {
let price_info_list = res_data['price_info_list'];
let stock_list = res_data['stock_list'];
let sumHTML = '';
price_info_list.forEach((v, i) => {
let HTML = `
[入住日期] |
[间数1]
|
[销售单价]
|
[采购成本价]
|
[销售总价] |
[渠道佣金] |
[利润] |
`;
HTML = HTML.replace('[入住日期]', v['run_date']);
//得到替换数量,逻辑:先判断超售oversell_flag,1为可以超售,如果可以超售则取data['order_list'][1]中的该天所有库存,超了不能下单。
let count = 0;
if(1 == v['oversell_flag'] && -1 != v['remaining_count']) {
stock_list.forEach((v2, i2) => {
if(v['run_date'] == v2['run_date']) {
count += parseInt(v2['remaining_count']);
if("228" == v2['stock_type']) { //买断
HTML = HTML.replace('[data-json-maiduan]', JSON.stringify(v2));
} else if("229" == v2['stock_type']) { //现询
HTML = HTML.replace('[data-json-xianxun]', JSON.stringify(v2));
} else if("230" == v2["stock_type"]) { //保留
HTML = HTML.replace('[data-json-baoliu]', JSON.stringify(v2));
} else {
ZZAlertInfo('没有该库存类型');
}
}
})
} else {
stock_list.forEach((v2, i2) => {
if(v['run_date'] == v2['run_date']) {
if("228" == v2['stock_type']) { //买断
count += parseInt(v2['remaining_count']);
HTML = HTML.replace('[data-json-maiduan]', JSON.stringify(v2));
} else if("229" == v2['stock_type']) { //现询
HTML = HTML.replace('[data-json-xianxun]', JSON.stringify(v2));
} else if("230" == v2["stock_type"]) { //保留
count += parseInt(v2['remaining_count']);
HTML = HTML.replace('[data-json-baoliu]', JSON.stringify(v2));
} else {
ZZAlertInfo('没有该库存类型');
}
}
})
count = parseInt(v['remaining_count'] == -1 ? 0 : v['remaining_count']);
}
let optionHTML = '';
for(let m = 0; m <= count; m++) {
if(m > 20) break;
let temp = ``;
optionHTML += temp;
}
HTML = HTML.replace('[间数2]', optionHTML);
HTML = HTML.replace(/\[销售单价]/g, v['price']);
HTML = HTML.replace(/\[采购成本价]/g, v['price']);
//佣金规则
let ling = 0;
let ling1 = ling.toFixed(2);
if(0 == v['commission_flag']) { //为0不返佣 为1返佣
HTML = HTML.replace(/\[渠道佣金]/g, '-');
} else {
HTML = HTML.replace(/\[渠道佣金]/g, ling1);
}
HTML = HTML.replace('[销售总价]', ling1);
HTML = HTML.replace('[利润]', ling1);
//将非超卖库存存入data-json
HTML = HTML.replace('[data-json]', JSON.stringify(v));
sumHTML += HTML;
})
sumHTML += temp_all_html;
$('#rz-table').html(sumHTML);
$('.room_count').on('change', function() {
$parent = $(this).closest('.tr_line');
tr_change($parent);
})
let hotel_child_order_detail = {};
if(cache_res_data.hasOwnProperty(order_id)) {
hotel_child_order_detail = cache_res_data[order_id]['hotel_child_order_detail'];
$('#rz-table .tr_line').each(function(index, dom) {
for(let n = 0; n < hotel_child_order_detail.length; n++) {
if(hotel_child_order_detail[n]['run_date'] == $(dom).find('td:first').text()) {
let dict = hotel_child_order_detail[n];
$(dom).find('.room_count').val(dict['total']); //间数
$(dom).find('.sale_single_price_txt').text(dict['order_price']); //销售单价
$(dom).find('.sale_single_price').attr('data-price', dict['order_price']);
$(dom).find('.sale_single_price').attr('value', dict['order_price']);
$(dom).find('.cai_base_price_txt').text(dict['base_price']); //采购成本价
$(dom).find('.cai_base_price').attr('data-price', dict['base_price']);
$(dom).find('.cai_base_price').attr('value', dict['base_price']);
$(dom).find('.tr_all_price').html(dict['all_price']); //销售总价
$(dom).find('.tr_profit_value').text(dict['benefit']); //利润
//根据不同类型,选择不同库存
let json_type = '';
if("228" == dict['stock_type']) json_type = "data-json-maiduan";
if("229" == dict['stock_type']) json_type = "data-json-xianxun";
if("230" == dict['stock_type']) json_type = "data-json-baoliu";
let tr_json_data = $(dom).attr(json_type);
if(tr_json_data != '' && tr_json_data.indexOf('[data-json') == -1) {
let tmp_data = JSON.parse(tr_json_data);
tmp_data['remaining_count'] = parseInt(tmp_data['remaining_count']) + parseInt(dict['total']);
var json_str = JSON.stringify(tmp_data);
$(dom).attr(json_type, json_str);
}
let count = parseInt($(dom).find('.room_count option:last').html());
let new_count = count + parseInt(dict['total']);
for(var i = count + 1; i <= new_count && i < 20; i++) {
$(dom).find('.room_count option:last').after('');
}
$(dom).find('.room_count').val(dict['total']).change();
}
}
})
}
//刷新总计
total_price_jisuan();
}
$('#btn-rz-update-xq').on('click', function() {
//1:修改入住需求 2:保存并生成修改单 3:保存
let btn_status = $(this).attr('data-btn-status') ? $(this).attr('data-btn-status') : "1";
if('1' == btn_status) {
ZZLog('修改入住需求');
$('#btn-rz-cancel').attr('data-main-status', '1');
$('#btn-rz-cancel').removeClass('hide_f');
$('#btn-rz-update-xsj').addClass('hide_f');
$('#btn-rz-update-cgj').addClass('hide_f');
//切换编辑状态
$('.update1_h').removeClass('hide_f');
$('.update1_s').addClass('hide_f');
changeStartEndDate();
click_three_btn($(this));
}
if('2' == btn_status || "3" == btn_status) {
ZZLog('保存入住需求');
commit($(this));
}
})
function commit($this) {
//提交的参数
let hotel_id = '';
let room_type = '';
if(cache_res_data.hasOwnProperty(order_id)) {
hotel_id = cache_res_data[order_id]['order_info']['hotel_id'];
room_type = cache_res_data[order_id]['order_info']['room_type'];
}
if('' == hotel_id || '' == room_type) {
ZZAlertInfo('缺少参数,逻辑出错');
return;
}
//获取联系人,联系方式,备注
var contacts = $('#customer_name').val().replace(/\,/g, ' ').trim();
var phone = $('#customer_phone').val();
var more = '',
total = 0;
//拒单标识0为不能拒单,1为可以拒单
var if_cancel = 0;
let cus_list = `{${contacts},${phone},${more}}`;
//最晚到店时间
let checkin_time = "23:59";
let org_num = $('#order_channel_order_id').val();
let org_id = $('#order_channel').val();
//房型列表
let room_list = '';
let room_count = 0;
let dan_yongj = 0;
let all_yongj = $('.all_commission').attr('data-value');
let all_profit = $('.all_profit').attr('data-value');
let temp_arr = [];
$('.tr_line').each(function(index, dom) {
let start_date = $(this).children().eq(0).text();
let all_count = $(this).find('.room_count').val();
room_count += parseInt(all_count) - 0;
if(all_count == 0) {
temp_arr.push('1');
// ZZAlertInfo('请选择库存');
// return;
}
let dan_jiesuan = $(this).find('.sale_single_price').val();
dan_yongj = 0;
if("-" == $(this).find('.tr_all_commission').text()) dan_yongj = 0;
if("-" != $(this).find('.tr_all_commission').text()) dan_yongj = parseFloat($(this).find('.tr_all_commission').text()) / parseInt(all_count);
//获得买断,保留,现询的价格与库存
let dict_maiduan = getJsonHtml($(this).attr('data-json-maiduan'));
let dict_baoliu = getJsonHtml($(this).attr('data-json-baoliu'));
let 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) {
temp_arr.push('2');
// ZZAlertInfo('存在成本价为零,请至对应房型列表确认');
// return;
}
//判断库存
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('出错了,不可能!!');
temp_arr.push('3');
// return;
}
room_list += '{\'\'' + start_date + '\'\',' + all_count + ',' + dan_jiesuan + ',' + dan_yongj + '}';
total += all_count;
})
if($.inArray('1', temp_arr) >= 0) {
ZZAlertInfo('请选择库存');
return;
} else if($.inArray('2', temp_arr) >= 0) {
ZZAlertInfo('存在成本价为零,请至对应房型列表确认');
return;
} else if($.inArray('3', temp_arr) >= 0) {
ZZAlertInfo('出错了,不可能!!');
return;
} else {}
let start_date = $('#start_date').children().eq(0).val();
let end_date = $('#end_date').children().eq(0).val();
let data = {
// type: "order_ModifyHTOrder",
// op: "modify_order",
type: "order_ModifyHTOrderLevel",
op: "orderUpdateCheckIn",
hotel_id: hotel_id,
room_type: room_type,
org_id: org_id,
org_num: org_num,
room_list: room_list,
room_count: room_count,
cus_list: cus_list,
contact: contacts,
mobile: phone,
start_date: start_date,
end_date: end_date,
// memo: more,
// total: total,//这两个参数 php没有接收
checkin_time: checkin_time,
if_cancel: if_cancel,
order_id: order_id,
total_commission: all_yongj,
benefit: all_profit
}
ZZLog(JSON.stringify(data));
$.ajax({
type: "post",
url: base_api,
async: true,
data: data,
dataType: "json",
success: (res_data) => {
ZZLog(res_data);
if(res_data['code'] != "0") {
ZZAlertInfo(res_data['info']);
} else {
//在这里写保存的操作
$('#btn-rz-cancel').addClass('hide_f');
$('#btn-rz-update-xsj').removeClass('hide_f');
$('#btn-rz-update-cgj').removeClass('hide_f');
//浏览状态
$('.update1_h').addClass('hide_f');
$('.update1_s').removeClass('hide_f');
$(this).attr('data-btn-status', '1');
$(this).html('修改入住需求');
httpLoadInfo();
}
},
error: () => {
ZZAlertInfo(infoApiError);
}
});
}
//修改销售价
$('#btn-rz-update-xsj').on('click', function() {
//1:修改销售价 2:保存销售价
let btn_status = $(this).attr('data-btn-status') ? $(this).attr('data-btn-status') : "1";
if('1' == btn_status) {
ZZLog('修改销售价');
$('#btn-rz-cancel').attr('data-main-status', '2');
$('#btn-rz-cancel').removeClass('hide_f');
$('#btn-rz-update-xq').addClass('hide_f');
$('#btn-rz-update-cgj').addClass('hide_f');
$(this).attr('data-btn-status', '2');
$(this).html(save_info);
//切换编辑状态
$('.update2_h').removeClass('hide_f');
$('.update2_s').addClass('hide_f');
}
if('2' == btn_status) {
ZZLog('保存销售价');
//在这里写保存的操作
$('#btn-rz-cancel').addClass('hide_f');
$('#btn-rz-update-xq').removeClass('hide_f');
$('#btn-rz-update-cgj').removeClass('hide_f');
$(this).attr('data-btn-status', '1');
$(this).html('修改销售价');
//浏览状态
$('.update2_h').addClass('hide_f');
$('.update2_s').removeClass('hide_f');
let room_list = [];
$('.tr_line').each(function(index, dom) {
let run_date = $(this).children().eq(0).text();
let old = $(this).find('.sale_single_price').attr('data-price');
let sale_single_price = $(this).find('.sale_single_price').val();
if(old != sale_single_price) {
let obj = {
run_date,
"order_price": sale_single_price
};
room_list.push(obj);
}
})
let data = {
type: "order_ModifyHTOrderLevel",
op: "orderUpdateXSJ",
order_id,
room_list: JSON.stringify(room_list)
}
$.ajax({
type: "post",
url: base_api,
async: true,
data: data,
dataType: "json",
success: (res_data) => {
ZZLog(res_data);
if(res_data['code'] != "0") {
ZZAlertInfo(res_data['info']);
} else {
httpLoadInfo();
}
},
error: () => {
ZZAlertInfo(infoApiError);
}
});
}
})
//修改采购价
$('#btn-rz-update-cgj').on('click', function() {
//1:修改采购价 2:保存并生成修改单 3:保存采购价
let btn_status = $(this).attr('data-btn-status') ? $(this).attr('data-btn-status') : "1";
if('1' == btn_status) {
ZZLog('修改采购价');
$('#btn-rz-cancel').attr('data-main-status', '3');
$('#btn-rz-cancel').removeClass('hide_f');
$('#btn-rz-update-xq').addClass('hide_f');
$('#btn-rz-update-xsj').addClass('hide_f');
//切换编辑状态
$('.update3_h').removeClass('hide_f');
$('.update3_s').addClass('hide_f');
click_three_btn($(this));
}
if('2' == btn_status || "3" == btn_status) {
ZZLog('保存采购价');
//在这里写保存的操作
$('#btn-rz-cancel').addClass('hide_f');
$('#btn-rz-update-xq').removeClass('hide_f');
$('#btn-rz-update-xsj').removeClass('hide_f');
$(this).attr('data-btn-status', '1');
$(this).html('修改采购价');
//浏览状态
$('.update3_h').addClass('hide_f');
$('.update3_s').removeClass('hide_f');
let cus_list = [];
$('.tr_line').each(function(index, dom) {
let run_date = $(this).children().eq(0).text();
let old = $(this).find('.cai_base_price').attr('data-price');
let base_price = $(this).find('.cai_base_price').val();
if(old != base_price) {
let obj = {
run_date,
"base_price": base_price
};
cus_list.push(obj);
}
})
let data = {
type: "order_ModifyHTOrderLevel",
op: "orderUpdateCGJ",
order_id,
cus_list: JSON.stringify(cus_list)
}
$.ajax({
type: "post",
url: base_api,
async: true,
data: data,
dataType: "json",
success: (res_data) => {
ZZLog(res_data);
if(res_data['code'] != "0") {
ZZAlertInfo(res_data['info']);
} else {
httpLoadInfo();
}
},
error: () => {
ZZAlertInfo(infoApiError);
}
});
}
})
//入住需求取消
$('#btn-rz-cancel').on('click', function() {
//data-main-status 1:修改入住需求 2:修改销售价 3:修改采购价
var btn_main_status = $(this).attr('data-main-status') ? $(this).attr('data-main-status') : "1";
if('1' == btn_main_status) {
//修改入住需求
ZZLog('入住需求取消-修改入住需求');
$('#btn-rz-update-xq').html('修改入住需求');
$('#btn-rz-update-xq').attr('data-btn-status', '1');
}
if('2' == btn_main_status) {
//修改销售价
ZZLog('入住需求取消-修改销售价');
$('#btn-rz-update-xsj').html('修改销售价');
$('#btn-rz-update-xsj').attr('data-btn-status', '1');
}
if('3' == btn_main_status) {
//修改采购价
ZZLog('入住需求取消-修改采购价');
$('#btn-rz-update-cgj').html('修改采购价');
$('#btn-rz-update-cgj').attr('data-btn-status', '1');
}
$(this).addClass('hide_f');
$('#btn-rz-update-xq').removeClass('hide_f');
$('#btn-rz-update-xsj').removeClass('hide_f');
$('#btn-rz-update-cgj').removeClass('hide_f');
$('.update1_s').removeClass('hide_f');
$('.update1_h').addClass('hide_f');
$('.update2_s').removeClass('hide_f');
$('.update2_h').addClass('hide_f');
$('.update3_s').removeClass('hide_f');
$('.update3_h').addClass('hide_f');
if(cache_res_data.hasOwnProperty(order_id)) {
loadHtml(cache_res_data[order_id]);
}
})
//客人修改
$('#btn-customer-update').on('click', function() {
//1:客人信息修改 2:保存并生成修改单 3:保存
ZZLog('客人信息修改');
let btn_status = $(this).attr('data-btn-status') ? $(this).attr('data-btn-status') : "1";
if('1' == btn_status) {
$('#btn-customer-cancel').removeClass('hide_f');
click_customer_update1($(this));
$('.update4_h').removeClass('hide_f');
$('.update4_s').addClass('hide_f');
}
if('2' == btn_status || '3' == btn_status) {
customer_cancel_css();
let customer_name = $('#customer_name').val().trim();
let customer_mobile = $('#customer_phone').val().trim();
let old_customer_name = $('#customer_name_txt').text();
let old_customer_mobile = $('#customer_phone_txt').text();
if(old_customer_name == customer_name && old_customer_mobile == customer_mobile) {
return;
}
let data = {
type: "order_ModifyHTOrderLevel",
op: "customerUpdate",
order_id,
customer_name,
customer_mobile
}
$.ajax({
type: "post",
url: base_api,
async: true,
data: data,
dataType: 'json',
success: (res_data) => {
ZZLog(res_data);
if(res_data['code'] != "0") {
ZZAlertInfo(res_data['info']);
} else {
httpLoadInfo();
httpLoadLog(); //重新加载log
}
},
error: () => {
ZZAlertInfo(infoApiError);
}
});
}
})
function click_customer_update1($this) {
let btn_status = '';
let btn_info = '';
let status_arr1 = ["313"];
let status_arr2 = ["198", "382"];
if($.inArray(temp_order_status, status_arr1) >= 0) {
btn_status = '3';
btn_info = save_info;
}
if($.inArray(temp_order_status, status_arr2) >= 0) {
btn_status = '2';
btn_info = save_update_info;
}
// //1.录单
// if("557" == temp_docking_type) {
// }
// //2.直连
// if("556" == temp_docking_type) {
// }
$this.attr('data-btn-status', btn_status);
$this.html(btn_info);
}
//客人取消
$('#btn-customer-cancel').on('click', function() {
ZZLog('客人信息取消');
customer_cancel_css();
})
$('.comment-type').on('click', function() {
$('.comment-type0').removeClass('comment_selected');
$('.comment-type1').removeClass('comment_selected');
$(this).addClass('comment_selected');
if($(this).hasClass('comment-type0')) {
//内部备注
$(this).removeClass('btn-default');
$(this).addClass('btn-primary');
$('#btn-order-remark-save-update-d').html('保存');
$('.comment-type1').removeClass('btn-primary');
$('.comment-type1').addClass('btn-default');
}
if($(this).hasClass('comment-type1')) {
//公共备注
$(this).removeClass('btn-default');
$(this).addClass('btn-primary');
let btn_info = '';
let status_arr1 = ['313'];
let status_arr2 = ["198", "382"];
if($.inArray(temp_order_status, status_arr1) >= 0) btn_info = save_info;
if($.inArray(temp_order_status, status_arr2) >= 0) btn_info = save_update_info;
$('#btn-order-remark-save-update-d').html(btn_info);
// $('#btn-order-remark-save-update-d').html('保存并生成修改单');
$('.comment-type0').removeClass('btn-primary');
$('.comment-type0').addClass('btn-default');
}
})
//备注保存并生成修改单
$('#btn-order-remark-save-update-d').on('click', function() {
ZZLog('备注保存并生成修改单');
let comment_type = $('.comment_selected').attr('data-value');
let comment_txt = $('#comment-txt').val();
let data = {
type: "order_ModifyHTOrderLevel",
op: "commentAdd",
order_id,
comment_type,
comment_txt
}
$.ajax({
type: "post",
url: base_api,
async: true,
data: data,
dataType: "json",
success: (res_data) => {
ZZLog(res_data);
if(res_data['code'] != "0") {
ZZAlertInfo(res_data['info']);
} else {
$('#comment-txt').val('');
$('#comment-type').val('0');
httpLoadInfo();
}
},
error: () => {
ZZAlertInfo(infoApiError);
}
});
})
//客人取消
function customer_cancel_css() {
$('#btn-customer-cancel').addClass('hide_f');
$('#btn-customer-update').attr('data-btn-status', '1');
$('#btn-customer-update').html('修改');
$('.update4_h').addClass('hide_f');
$('.update4_s').removeClass('hide_f');
}
//时间戳转换函数
function getLocalTime(nS) {
return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/, ' ');
}
//取出html存入的json
function getJsonHtml(data) {
if(data && data.indexOf('[') == -1) {
var data_info = JSON.parse(data);
return data_info;
} else {
return 0
}
}
//制保留2位小数,如:2,会在2后面补上00.即2.00
function toDecimal2(x) {
var f = parseFloat(x);
if(isNaN(f)) {
return false;
}
var f = Math.round(x * 100) / 100;
var s = f.toString();
var rs = s.indexOf('.');
if(rs < 0) {
rs = s.length;
s += '.';
}
while(s.length <= rs + 2) {
s += '0';
}
return s;
}
function click_three_btn($this) {
let btn_status = '';
let btn_info = '';
let status_arr1 = ['313'];
let status_arr2 = ["198", "382"];
if($.inArray(temp_order_status, status_arr1) >= 0) {
btn_status = '3';
btn_info = save_info;
}
if($.inArray(temp_order_status, status_arr2) >= 0) {
btn_status = '2';
btn_info = save_update_info;
}
$this.attr('data-btn-status', btn_status);
$this.html(btn_info);
}