`)
}
})
$('#resultMulti tbody').html("");
$('#resultMulti').show();
$('.order-tracking-customer').hide();
(async(ids)=>{
for(let i=0; i < ids.length; ++i){
let id = ids[i].trim();
let response = await fetch('https://online-gateway.ghn.vn/order-tracking/public-api/client/tracking-logs',{
method:'POST',
headers:{
'Content-Type': 'application/json'
},
body:JSON.stringify({order_code:id})
});
let json = await response.json();
//callog
let jsonCallLog = null;
if(filter.findIndex(x=>x=="call_times")!=-1){
let callLogResponse = await fetch('https://fe-online-gateway.ghn.vn/order-tracking/public-api/client/call-logs?order_code='+id);
jsonCallLog = await callLogResponse.json();
}
let html = `
${id}
`;
if(json.code==200){
//check tracking_logs UNPACKED_AT_LASTMILE
let UNPACKED_AT_LASTMILE = json.data.tracking_logs.filter(x=>x.action_code=="UNPACKED_AT_LASTMILE").slice(-1);
//console.log(UNPACKED_AT_LASTMILE);
let khogannhat=json.data.tracking_logs.slice(-1);
//console.dir(khogannhat [0]);
//console.log("cai can xuat" + UNPACKED_AT_LASTMILE.toString());
let datastoring1=json.data.tracking_logs.filter(x=>x.status=="storing").slice(-1);
//XUẤT TIME TỚI KHO
//check datastoring (trang thai storing) neu don hang khong luân chuyển qua inside
if(filter.findIndex(x=>x=="time")!=-1&&datastoring1[0]){
//html +=`
`};
if(UNPACKED_AT_LASTMILE.length>0){
//xuất kho hiện tại
if(filter.findIndex(x=>x=="buucucgiao")!=-1){
if(UNPACKED_AT_LASTMILE.length>0){
//console.dir(khogannhat);
html += `
${UNPACKED_AT_LASTMILE[0].location.address}
`;
}else{
html += `
${khogannhat[0].location.address}
`;
}
//html += `
${UNPACKED_AT_LASTMILE[0].location.address}
`;
}
}else{
//console.dir(khogannhat);
if(!UNPACKED_AT_LASTMILE){
html += `
Chưa đến bưu cục giao
`;
}else{
html += `
${khogannhat[0].location.address}
`;
}
/*if(filter.findIndex(x=>x=="time")!=-1){
html +=`
`;
}*/
}
//xuất bưu cục lấy
if(filter.findIndex(x=>x=="buucuclay")!=-1){
let SCAN_TO_STORING = json.data.tracking_logs.find(x=>x.action_code=="SCAN_TO_STORING");
let PICKED_AT_WAREHOUSE=json.data.tracking_logs.find(x=>x.action_code=="PICKED_AT_WAREHOUSE");
let RECEIVE_FROM_CLIENT=json.data.tracking_logs.find(x=>x.action_code=="RECEIVE_FROM_CLIENT");
if(SCAN_TO_STORING){
html += `
${SCAN_TO_STORING.location.address}
`;
}else{
if(PICKED_AT_WAREHOUSE){
html += `
${PICKED_AT_WAREHOUSE.location.address}
`;
}else{
if(RECEIVE_FROM_CLIENT){
html += `
${RECEIVE_FROM_CLIENT.location.address}
`;
}else{
html +=`
`;
}
}
}
}
//xuất trạng thái
if(filter.findIndex(x=>x=="status")!=-1){
let status = json.data.order_info.status;
if(json.data.order_info.status == "delivered"){
html +=`
${json.data.order_info.status_name}
`;
}else if(status=="delivery_fail" || status=="return"){
html +=`
${json.data.order_info.status_name}
`;
}else{
html +=`
${json.data.order_info.status_name}
`;
}
}
//xuất lần giao
if(filter.findIndex(x=>x=="langiao")!=-1){
let langiao = json.data.tracking_logs.filter(x=>x.status=="delivering").length;
let COLLECT_DELIVERING_MONEY=json.data.tracking_logs.filter(x=>x.action_code=="COLLECT_DELIVERING_MONEY").length;
if(COLLECT_DELIVERING_MONEY>0){
langiao=langiao-1;
}
if(langiao>2) html += `
${langiao} lần
`;
else html += `
${langiao} lần
`;
}
//xuất log gọi
if(filter.findIndex(x=>x=='call_times')!=-1){
if(jsonCallLog.code==200){
let callsTime = jsonCallLog.data.length;
let callsTimeSuccess = jsonCallLog.data.filter(x=>x.duration > 0).length;
html += `
${callsTime} Cuộc gọi/ ${callsTimeSuccess} thành công
`;
}else{
html += `
${jsonCallLog.message}
`;
}
}
//xuất Bắn kiểm
if(filter.findIndex(x=>x=="bankiem")!=-1){
let bankiemdongiao = json.data.tracking_logs.find(x=>x.status=="delivery_fail_to_storing");
let bankiemdonlay = json.data.tracking_logs.find(x=>x.status=="picked_to_storing");
let delivered = json.data.order_info.status == "delivered";
let status = json.data.order_info.status;
let action = json.data.order_info.action;
let status_name = json.data.order_info.status_name;
let scantostoring=json.data.tracking_logs.find(x=>x.action_code=="SCAN_TO_STORING");
//check trạng thái hiện tại
if(action=="SCAN_TO_STORING"|action=="PACKED_TO_SORTING"){
html += `
Đã được bắn kiểm
`;
}else{
html += `
Chưa được bắn kiểm
`;
}
}
//xuất lý do + tên NV
if(filter.findIndex(x=>x=='GhiChuGHN')!=-1|filter.findIndex(x=>x=='name_NV')!=-1|filter.findIndex(x=>x=='reason')!=-1){
let data1=json.data;
let tenNV=0;
//ALL DATA CHO NAY
console.dir(data1);
let status=json.data.order_info.status;
//Lay trang thai cuoi cung cua don hang
let trangthaicuoi=json.data.tracking_logs.slice(-1).pop();
//console.dir(trangthaicuoi);
let trangthaikecuoi=json.data.tracking_logs.slice(-2)[0];
//console.dir(trangthaikecuoi);
//Trang thai tra hang
if(trangthaicuoi.status=="waiting_to_return_to_storing"|trangthaicuoi.status=="return"|trangthaicuoi.status=="waiting_to_return"){
tenNV+=1;
let nhanviengiaocuoi=json.data.tracking_logs.filter(x=>x.status=="delivery_fail");
let nhanviencuoicunggiao=nhanviengiaocuoi.filter(x=>x.action_code=="DELIVER_FAILED").slice(-1);
//console.dir(nhanviencuoicunggiao);
if(nhanviencuoicunggiao.length>0){
html += `
`;
if(nhanviencuoicunggiao[0].reason!=null){
html += `
${nhanviencuoicunggiao[0].reason.split("-")[0]}
`;
}else{
html += `
${nhanviencuoicunggiao[0].status_name}
`;
}
}else{
tenNV+=1;
let nhanviengiaocuoi2=json.data.tracking_logs.filter(x=>x.status=="return").slice(-1);
if(nhanviengiaocuoi2.length>0){
html += `
${nhanviengiaocuoi2[0].executor["employee_id"]}
`;
html += `
${nhanviengiaocuoi2[0].executor["name"]}
`;
//html += `
${nhanviengiaocuoi2[0].reason.split("-")[0]}
`;
}
}
}
//returned
if(trangthaicuoi.status=="returned"){
tenNV+=1;
let returned=json.data.tracking_logs.filter(x=>x.status=="returned").slice(-1);
//console.dir(returned);
html += `
${returned[0].executor["employee_id"]}
`;
html += `
${returned[0].executor["name"]}
`;
html += `
`;
}
//returning
if(trangthaicuoi.status=="returning"){
tenNV+=1;
let returning=json.data.tracking_logs.filter(x=>x.status=="returning").slice(-1);
//console.dir(returning);
html += `
${returning[0].executor["employee_id"]}
`;
html += `
${returning[0].executor["name"]}
`;
html += `
`;
}
//"pick_fail"
if(trangthaicuoi.status=="pick_fail"){
tenNV+=1;
let pick_fail=json.data.tracking_logs.filter(x=>x.status=="pick_fail").slice(-1);
//console.dir(pick_fail);
html += `
${pick_fail[0].executor["employee_id"]}
`;
html += `
${pick_fail[0].executor["name"]}
`;
html += `
`;
}
//"picking"
if(trangthaicuoi.status=="picking"){
tenNV+=1;
let picking=json.data.tracking_logs.filter(x=>x.status=="picking").slice(-1);
//console.dir(picking);
html += `
${picking[0].executor["employee_id"]}
`;
html += `
${picking[0].executor["name"]}
`;
html += `
`;
}
//Trang thai hang that lac
if(trangthaicuoi.status=="lost"){
tenNV+=1;
let delivering= json.data.tracking_logs.filter(x=>x.status=="delivering").slice(-1);
if(delivering.length!=0){
html += `
${delivering[0].executor["employee_id"]}
`;
html += `
${delivering[0].executor["name"]}
`;
html +=`
`;
}
}
//trang thai dang giao
if(trangthaicuoi.status=="delivering"){
tenNV+=1;
let delivering= json.data.tracking_logs.filter(x=>x.status=="delivering").slice(-1);
html += `
${delivering[0].executor["employee_id"]}
`;
html += `
${delivering[0].executor["name"]}
`;
html +=`
`;
}
//trang thai da lay hang
if(trangthaicuoi.status=="picked"){
tenNV+=1;
//alert("DA VO");
/*console.dir(trangthaikecuoi);
if(trangthaikecuoi.action_code=="PACKED_TO_SORTING" && trangthaikecuoi.status=="storing"){
alert("abc");
html += `
${picked.executor["employee_id"]}
`;
html += `
${picked.executor["name"]}
`;
html +=`
`;
}*/
let picked= json.data.tracking_logs.find(x=>x.status=="picked");
//console.dir("picked="&picked);
html += `
`;}
/*console.dir(trangthaikecuoi);
if(trangthaikecuoi.action_code=="PACKED_TO_SORTING" && trangthaikecuoi.status=="storing"){
alert("abc");
html += `
${picked.executor["employee_id"]}
`;
html += `
${picked.executor["name"]}
`;
html +=`
`;
}*/
let picked=json.data.tracking_logs.filter(x=>x.status=="picked").slice(-1);
//console.dir(picked);
if(picked.length==0){
tenNV+=1;
let DELIVER_FAILED=json.data.tracking_logs.filter(x=>x.action_code=="DELIVER_FAILED").slice(-1);
if(DELIVER_FAILED.length!=0){
html += `
${DELIVER_FAILED[0].executor["employee_id"]}
`;
html += `
${DELIVER_FAILED[0].executor["name"]}
`;
html +=`
`;
}
}else{
tenNV+=1;
html += `
${picked[0].executor["employee_id"]}
`;
html += `
${picked[0].executor["name"]}
`;
html +=`
`;
}
}
//trang thai giao that bai
if(trangthaicuoi.status=="delivery_fail"|trangthaicuoi.status=="delivery_fail_to_storing"|trangthaicuoi.status=="return_transporting"|(trangthaicuoi.action_code=="UNPACKED_AT_LASTMILE"&& trangthaicuoi.status=="storing")|(trangthaicuoi.action_code=="PACKED_TO_SORTING" && trangthaicuoi.status=="storing")){
tenNV+=1;
let deliveryfail=json.data.tracking_logs.filter(x=>x.status=="delivery_fail").slice(-1);
if(trangthaicuoi.action_code=="UNPACKED_AT_LASTMILE"&& trangthaicuoi.status=="storing"){
html += `
`;
html += `
`;
html += `
`;
}else{
tenNV+=1;
//alert('vo');
if (deliveryfail.length!=0){
//let reason=deliveryfail[0].reason.split("-")[0];
//alert (reason);
html += `
${deliveryfail[0].executor["employee_id"]}
`;
html += `
${deliveryfail[0].executor["name"]}
`;
if(deliveryfail[0].reason!=null){
let reason=deliveryfail[0].reason.split("-")[0];
html += `
${reason}
`;
}else{
let reason=deliveryfail[0].status_name;
html += `
${reason}
`;
}
}
}
}
//trang thai da giao hang
if(trangthaicuoi.status=="delivered"){
tenNV+=1;
let delivered=json.data.tracking_logs.filter(x=>x.status=="delivered").slice(-1);
html += `
${delivered[0].executor["employee_id"]}
`;
html += `
${delivered[0].executor["name"]}
`;
html +=`
`;
//alert("vo");
}
//trang thai da giao hang
//trạng thái storing
//All of retied - tat ca cac trang thai con lai
let cactrangthai=["delivered","delivery_fail","picked_to_storing","picked","pick_fail","returning","returned","waiting_to_return_to_storing"];
if(!trangthaicuoi.status.includes(cactrangthai))
{
if(tenNV==0){html +=`
`;html +=`
`;html +=`
`;}
}
//console.log(tenNV);
}else{/*html +=`
`;*/}
//xuất ID SHOP + tên shop
if(filter.findIndex(x=>x=='clientID')!=-1){
let ready_to_pick = json.data.tracking_logs.find(x=>x.status=="ready_to_pick");
//console.dir (ready_to_pick);
html += `
${ready_to_pick.executor["client_id"]}
`;
}
if(filter.findIndex(x=>x=='clientName')!=-1){
let ready_to_pick = json.data.tracking_logs.find(x=>x.status=="ready_to_pick");
//console.dir (ready_to_pick);
html += `
${ready_to_pick.executor["name"]}
`;
}
//Xuất time cập nhật - chỉ hiển thị khi đơn GTC/Giao that bai
if(filter.findIndex(x=>x=='timeUpdate')!=-1){
let timeUP=0;
let trangthaicuoi=json.data.tracking_logs.slice(-1).pop();
let trangthaikecuoi=json.data.tracking_logs.slice(-2)[0];
//console.dir(trangthaikecuoi);
if(trangthaicuoi.status=="delivered"){
timeUP+=1;
//alert("vo");
let delivered=json.data.tracking_logs.filter(x=>x.status=="delivered").slice(-1);
html += `
`;
}
//"returned"
//delivering
if(timeUP==0){
html +=`
`;
}
/*if(trangthaicuoi.status=="delivering"|trangthaicuoi.status=="returning"|(trangthaicuoi.status=="storing" && trangthaicuoi.action_code=="UNPACKED_AT_LASTMILE")|trangthaicuoi.status=="picking"){
html +=`
`;
}*/
//else{html +=`
`;}
}
//Check revert
if(filter.findIndex(x=>x=="revert")!=-1){
let revert = json.data.tracking_logs.find(x=>x.status=="waiting_to_return_to_storing");
//console.dir(revert);
if(revert){
html += `
Đã đc revert ${moment(revert.action_at).fromNow()}
`;
}
}
//Check revert
if(filter.findIndex(x=>x=="timeEp")!=-1){
let khogannhat=json.data.tracking_logs.slice(-1);
console.dir(khogannhat);
let EpGiao = json.data.tracking_logs.find(x=>x.action_code=="START_DELIVERY_TRIP");
let CANCEL_COLLECT_DELIVERING_MONEY = json.data.tracking_logs.find(x=>x.action_code=="CANCEL_COLLECT_DELIVERING_MONEY");
console.dir(EpGiao);
let EpLay = json.data.tracking_logs.find(x=>x.action_code=="START_PICKING_TRIP");
console.dir(EpLay);
let EpTra = json.data.tracking_logs.find(x=>x.action_code=="START_RETURN_TRIP");
console.dir(EpTra);
//Chỉ xuất khi trạng thái cuối ở kho kontum
if(khogannhat[0].location.warehouse_id==1184|khogannhat[0].location.warehouse_id==1955|khogannhat[0].location.warehouse_id==2310){
if(CANCEL_COLLECT_DELIVERING_MONEY){
html += `
Đã đc ép giao ${moment(CANCEL_COLLECT_DELIVERING_MONEY.action_at).format('DD/MM/YYYY, HH:mm')}
`
}
if(EpGiao){
if(EpGiao.location.warehouse_id==khogannhat[0].location.warehouse_id){
html += `
Đã đc ép giao ${moment(EpGiao.action_at).format('DD/MM/YYYY, HH:mm')}
`;
}
}
if(EpLay){
if(EpLay.location.warehouse_id==khogannhat[0].location.warehouse_id){
html += `
Đã đc ép lấy ${moment(EpLay.action_at).format('DD/MM/YYYY, HH:mm')}
`;
}
}
if(EpTra){
if(EpTra.location.warehouse_id==khogannhat[0].location.warehouse_id){
html += `
Đã đc ép trả ${moment(EpTra.action_at).format('DD/MM/YYYY, HH:mm')}
`;
}
}
}
if(EpGiao){
//html += `
Đã đc revert ${moment(revert.action_at).fromNow()}
`;
}
}
//console.log(html);
//Xuất đén quận giao
if(filter.findIndex(x=>x=="denQuan")!=-1){
let order_info=json.data.order_info;
//console.dir(order_info);
html += `
${order_info.to_address}
`;
}
//Xuất time tạo đơn
if(filter.findIndex(x=>x=="timeCreate")!=-1){
let timeCreate=json.data.tracking_logs.find(x=>x.status=="ready_to_pick");
if(timeCreate){
html += `
Đã đc tạo lúc ${moment(timeCreate.action_at).format('DD/MM/YYYY, HH:mm')}
`;
}else{
html+='
';
}
}
//Xuất time tạo LC
if(filter.findIndex(x=>x=="transferToTruck")!=-1){
//alert("voo");
let timeTransfer=json.data.tracking_logs.find(x=>x.action_code=="TRANSFER_TO_TRUCK");
//console.log(timeTransfer);
if(timeTransfer){
html += `
// ==UserScript== // @name Dũng Tàu // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author CrissAnger + Dũng Tàu // @match https://donhang.ghn.vn/* // @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js // @require https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.27.0/moment-with-locales.min.js // @resource IMPORTED_CSS https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css // @grant GM_addStyle // @grant GM_getResourceText // ==/UserScript== // Tạo nút bấm
// Tìm kiếm nâng cao const checkTrips = function() { const input = prompt("Nhập danh sách mã chuyến đi cần bắn kiểm:"); const inputs = input.split("\n"); inputs.forEach(function(input) { const URL = "https://nhanh.ghn.vn/trip/check-scan?id=" + input; window.open(URL, "_blank"); }); };
// Add button to run script const button = document.createElement("button"); button.innerHTML = "Bắn kiểm hàng loạt"; button.classList.add("button-search", "block-center", "btn", "btn-primary"); button.setAttribute("data-toggle", "modal"); button.style.margin = "10px"; button.style.backgroundColor = "orange"; button.style.color = "white"; button.style.position = "fixed"; button.style.top = "2%"; button.style.left = "89%"; button.style.transform = "translate(-50%, -50%)"; button.style.border = "none"; button.addEventListener("click", checkTrips); document.body.appendChild(button); // const checkTrips2 = function() { const input2 = prompt("Nhập danh sách mã chuyến đi cần mở:"); const inputs2 = input2.split("\n"); inputs2.forEach(function(input2) { const URL2 = "https://nhanh.ghn.vn/trip/detail?id=" + input2 +"&limit=1000&tab=order"; window.open(URL2, "_blank"); }); };
// Add button to run script const button2 = document.createElement("button2"); button2.innerHTML = "Mở chuyến đi"; button2.classList.add("button2-search", "block-center", "btn", "btn-primary"); button2.setAttribute("data-toggle", "modal"); button2.style.margin = "10px"; button2.style.backgroundColor = "orange"; button2.style.color = "white";
button2.style.position = "fixed"; button2.style.top = "2%"; button2.style.left = "80%"; button2.style.transform = "translate(-50%, -50%)"; button2.style.border = "none";
button2.addEventListener("click", checkTrips2); document.body.appendChild(button2);
// Không biết (function() { 'use strict'; //jQuery('head').append(
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
) jQuery(document).ready(function($) { //console.log("inject loaded"); moment.locale('vi'); class GHN_MULTICHECK{ constructor(){ this.initProperties(); this.initHTML(); this.initEvent(); } initProperties(){ this.filter = [ {name:"time", value:"Thời gian Tới Kho"}, {name:"time_end", value:"Thời gian Kết thúc giao"}, {name:"buucucgiao", value:"Kho Hiện Tại"}, {name:"status", value:"Trạng thái"}, {name:"langiao", value:"Lần giao"}, {name:"call_times", value:"Cuộc gọi"}, {name:"GhiChuGHN", value:"Mã NV"}, {name:"name_NV", value:"Tên NV"}, {name:"reason", value:"Lý Do"}, {name:"buucuclay", value:"Bưu Cục Lấy"}, {name:"bankiem", value:"Check Bắn Kiểm"}, {name:"clientID", value:"Mã Shop"}, {name:"clientName", value:"Tên Shop"}, {name:"timeUpdate", value:"Thời gian cập nhật"}, {name:"revert", value:"check Revert"}, {name:"timeEp", value:"Time Ép CD"}, {name:"denQuan",value:"Đến Quận"}, {name:"timeCreate",value:"Thời gian tạo"}, {name:"transferToTruck",value:"Tạo LC"}, {name:"NVLay",value:"NVLAY"}, {name:"Ten shop",value:"Ten shop"}, {name:"SMEORKA",value:"SME-KA"}, ] } initHTML(){ $('.header-container .row .col-md-8').removeClass('col-md-8').addClass('col-md-10'); $('#root .header').append(`Tìm kiếm nâng cao
) $('.Flex.content').prepend(