appendModel

append model in orderDetailAddPage

Pada tanggal 03 Agustus 2022. Lihat %(latest_version_link).

// ==UserScript==
// @name         appendModel
// @namespace    http://tampermonkey.net/
// @version      1.20
// @description  append model in orderDetailAddPage
// @author       FengXia
// @match        http://47.107.106.156/*
// @icon
// @grant        none
// @license MIT
// ==/UserScript==

// todo 增加时间
//
// (function() {
//     let oldxhr=window.XMLHttpRequest;
//     function newobj(){}
//     let swap_string = `
// <td>备注:</td>
// <td>
// <input type="text" style="width: 150px;" name="remark" id="remark" onfocus="frm_focus('remark');" onblur="frm_blur('remark');">
// </td>
// <td>规格:</td>
// <td>
// <input id="order_model" class="len150 readonly" readonly="readonly" name="model" placeholder="">
// </td>
// </tr>
// <tr>
// <td>最新采购价:</td>
// <td><input id="order_price" class="len150 readonly" readonly="readonly" name="newstorageprice" placeholder="">
// </td>
// </tr>`;
//     let order_string = `
// <td>备注:</td>
// <td>
// <input type="text" style="width: 150px;" name="remark" id="remark" onfocus="frm_focus('remark');" onblur="frm_blur('remark');">
// </td>
// <td>规格:</td><td><input id="order_model" class="len150 readonly" readonly="readonly" name="model" placeholder=""></td>
// </tr>
// <tr>
// <td>最新采购价:</td>
// <td><input id="order_price" class="len150 readonly" readonly="readonly" name="newstorageprice" placeholder="">
// </td>
// </tr>`;
//     let document_string;
//     let search_string = /(<td>备注)[\s\S]*(<\/tr>)$/gm;
//     let xhr_string = /^{"totalbox":.+,"total":.+,/g;
//     window.XMLHttpRequest=function(){
//         let tagetobk=new newobj();
//         tagetobk.oldxhr=new oldxhr();
//         let handle={
//             get:    function(target, prop, receiver) {
//                 if(prop==='oldxhr'){
//                     return Reflect.get(target,prop);
//                 }
//                 if(typeof Reflect.get(target.oldxhr,prop)==='function')
//                 {
//                     if(Reflect.get(target.oldxhr,prop+'proxy')===undefined)
//                     {
//                         target.oldxhr[prop+'proxy']=(...funcargs)=> {
//                             let result=target.oldxhr[prop].call(target.oldxhr,...funcargs)
//                             // console.log('函数劫持获取结果',result)
//                             return result;
//                         }
//
//                     }
//                     return Reflect.get(target.oldxhr,prop+'proxy')
//                 }
//                 if(prop.indexOf('response')!==-1)
//                 {
//                     //console.log('属性劫持结果',Reflect.get(target.oldxhr,prop))
//                     let inputblur =document.querySelector('input[name="saleorderid"]');
//                     if (inputblur){
//                         inputblur.addEventListener("keypress", fireFoxHandler, true);
//                     }
//                     let inputOrder =document.querySelector('#sales-sourceid-orderAddPage');
//                     if (inputOrder){
//                         inputOrder.addEventListener("focusout", AddListener,true);
//                     }
//                     let out_order =document.querySelector('#sales-sourceid-rejectBillAddPage');
//                     if (out_order){
//                         out_order.addEventListener("focusout", addListenerOutOrder,true);
//                     }
//                     if (!document.querySelector("#password")) {
//                         document_string = Reflect.get(target.oldxhr, prop);
//                         if (document_string.search("<form id=\"sales-form-orderDetailAddPage\">") != -1) {
//                             document_string = document_string.replace(search_string, order_string);
//                             return document_string;
//                         } else if (document_string.search(" <form id=\"sales-form-swapOrderDetailAddPage\">") != -1) {
//                             document_string = document_string.replace(search_string,swap_string);
//                             return document_string;
//                         } else if (document.querySelector('#order_price')) {
//                             try {
//                                 let xhrString = JSON.parse(document_string);
//                                 let customer = document.querySelector('#sales-customer-showid-orderAddPage a');
//                                 let modelString = xhrString.detail.goodsInfo.model;
//                                 let products_string = xhrString.detail.goodsInfo.id;
//                                 let newbuyprice  = xhrString.detail.goodsInfo.newbuyprice;
//                                 document.querySelector('#order_price').setAttribute("placeholder", newbuyprice);
//                                 document.querySelector('#order_model').setAttribute("placeholder", modelString);
//                                 if (customer) {
//                                     addHistoryPrice();
//                                     showCustomerSalesFlowList(customer.innerText, products_string);
//                                 }
//                                 return Reflect.get(target.oldxhr, prop)
//                             } catch (err) {
//                                 return Reflect.get(target.oldxhr, prop)
//                             }
//                         }
//
//                     }
//                 }
//                 return Reflect.get(target.oldxhr,prop);
//             },
//             set(target, prop, value) {
//                 return Reflect.set(target.oldxhr, prop, value);
//             },
//             has(target, key) {
//                 debugger;
//                 return Reflect.has(target.oldxhr,key);
//             }
//         }
//
//         let ret = new Proxy(tagetobk, handle);
//
//         return ret;
//         let ops=document.querySelector('#sales-form-orderDetailAddPage .ops');
//     }
// })();
//
// // 查询订单号重复
// function QueryCustomerOrder(customer,order){
//     let xhr = new XMLHttpRequest();
//     let url = new URL('http://47.107.106.156:8888/sales/getOrderList.do');
//     let query_date = getIntervalDate();
//     url.searchParams.set('businessdate', query_date.start_date);
//     url.searchParams.set('businessdate1', query_date.end_date);
//     url.searchParams.set('id', '');
//     url.searchParams.set('salesdept', '');
//     url.searchParams.set('customerid', customer);
//     url.searchParams.set('status', '');
//     url.searchParams.set('sourceid', order);
//     url.searchParams.set('goodsid', '');
//     url.searchParams.set('printsign', '');
//     url.searchParams.set('queryprinttimes', '');
//     url.searchParams.set('urgentlevel', '');
//     url.searchParams.set('lineid', '');
//     url.searchParams.set('isstoragelock', '0');
//     url.searchParams.set('salesuserArrs', '');
//     url.searchParams.set('page', '1');
//     url.searchParams.set('rows', '200');
//     url.searchParams.set('sort', 'addtime');
//     url.searchParams.set('order', 'desc');
//
//     // 2. 配置它:从 URL /article/.../load GET-request
//     xhr.open('post', url);
//
//     // 3. 通过网络发送请求
//     xhr.send();
//
//     // 4. 当接收到响应后,将调用此函数
//     xhr.onload = function() {
//         if (xhr.status != 200) { // 分析响应的 HTTP 状态
//             alert(`Error ${xhr.status}: ${xhr.statusText}`); // 例如 404: Not Found
//         } else { // 显示结果
//             let xhrString = JSON.parse(xhr.response)
//             // console.log(xhrString)
//             if (xhrString.total > 0){
//                 let i = 0;
//                 let orderNo='';
//                 for (; i < xhrString.rows.length;i++) {
//                     if (xhrString.rows[i].status != '5'){
//                         orderNo += `${xhrString.rows[i].id},`
//                     }
//                 }
//                 if (orderNo){
//                     alert( `有重复订单,订单号为${orderNo}`);
//                 }
//             }
//             // alert(`Done, got ${xhr.response.length} bytes`); // response 是服务器响应
//         }
//     };
//
//     xhr.onerror = function() {
//         alert("Request failed");
//     };
//
// }
//
//
// function fireFoxHandler(evt){
//     if (evt.keyCode == 13){
//         let inputString =document.querySelector('input[name="saleorderid"]');
//         let alertString = document.querySelector('#alertTd')
//
//         let querySet = FormatString(inputString.value);
//         CheckString(querySet);
//
//         inputString.select();
//     }
// }
//
//
// function FormatString(inputString){
//     // console.log(inputString,inputString.length);
//     let regString,queryString,orderType;
//     if (inputString.length === 7){
//         regString = new RegExp('XD22'+inputString);
//         queryString = "td[field=\"orderid\"]";
//         orderType = 'sale';
//
//     } else if (inputString.length === 9){
//         regString = new RegExp(`THTZD-2022${inputString}`);
//         queryString = "td[field=\"id\"]";
//         orderType = 'out';
//
//     } else if (inputString.length === 8){
//         regString = new RegExp(`HHD-2022${inputString}`);
//         queryString = "td[field=\"sourceid\"]";
//
//     } else if (inputString.length === 11){
//         regString = new RegExp(`${inputString}`);
//         queryString = "td[field=\"orderid\"]";
//         orderType = 'sale';
//     }
//     let querySet = {
//         'regString':regString,
//         'queryString':queryString,
//         'orderType':orderType
//     }
//     return querySet
// }
//
// function CheckString(querySet,booleanH = true) {
//     if (querySet.regString){
//         let orderId = document.querySelectorAll(querySet.queryString);
//         let booleanSelect = false ;
//         let selectString = /datagrid-row-selected/;
//         let regH = /[^F]HHD-\d{8}-\d{3}/;
//         let orderString;
//         for (let num = 0;num< orderId.length;num++){
//             orderString = orderId[num].parentNode;
//             if (orderId[num].innerText.search(querySet.regString)>=0 && orderString.className.search(selectString) < 0){
//                 orderString.click();
//                 booleanSelect = true;
//             }
//         }
//         if (booleanSelect){
//             AddAlertTd('已经选择')
//             return
//         } else {
//             let orderString = querySet.regString.toString();
//             let newOrder = orderString.replace(/\//g,'')
//             let customer = document.querySelector('#account-customerid-salesInvoiceSourceQueryPage-hidden');
//             let temp =customer.getAttribute('object')
//             let customerTemp ='';
//             if (temp){
//                 let customerString = JSON.parse(temp);
//                 customerTemp =customerString.id;
//             }
//             if (querySet.orderType === 'sale'){
//                 CheckSaleOrder(newOrder,customerTemp);
//                 return
//             } else if (querySet.orderType === 'out'){
//                 CheckOutOrder(newOrder,customerTemp);
//                 return
//             }
//         }
//     } else {
//         AddAlertTd('请输入正确单号')
//         return
//     }
// }
//
// function AddAlertTd(alertString) {
//     let alertTd = document.querySelector('#alertTd');
//     if (alertTd) {
//         // console.log(alertTd.innerHTML);
//         alertTd.innerHTML =alertString;
//     } else {
//         let alertTr = document.querySelectorAll('form[id="account-form-query-salesInvoiceSouceBill"] tr');
//         let createTd = document.createElement("td");
//         createTd.innerHTML=`<font color="red" id="alertTd" >${alertString}</font>`
//         alertTr[2].appendChild(createTd);
//     }
// }
//
// function AddListener(){
//     let customerInput = document.querySelector('#sales-customer-showid-orderAddPage a');
//     let inputOrder = document.querySelector('#sales-sourceid-orderAddPage');
//     if (inputOrder.value){
//         QueryCustomerOrder(customerInput.innerText,inputOrder.value);
//     }
// }
//
// function addListenerOutOrder(){
//     let customer = document.querySelector('#sales-customer-showid-dispatchBillAddPage');
//     let out_order = document.querySelector('#sales-sourceid-rejectBillAddPage');
//     if (out_order.value){
//         console.log(customer.innerText.slice(3),out_order.value);
//         queryOutOrder(customer.innerText.slice(3),out_order.value);
//
//     }
// }
//
// function CheckSaleOrder(orderId,customer) {
//     let xhr = new XMLHttpRequest();
//     let url = new URL('http://47.107.106.156:8888/sales/getReceiptList.do');
//     let returnString;
//     let query_date = getIntervalDate()
//     url.searchParams.set('businessdate', '');
//     url.searchParams.set('businessdate1', '');
//     url.searchParams.set('id', orderId);
//     url.searchParams.set('customersort', '');
//     url.searchParams.set('detailOrder', '0');
//     url.searchParams.set('customerid', customer);
//     url.searchParams.set('indooruserid', '');
//     url.searchParams.set('salesuser', '');
//     url.searchParams.set('isinvoice', '-1');
//     url.searchParams.set('status', '');
//     url.searchParams.set('accounttype', '');
//     url.searchParams.set('salesarea', '');
//     url.searchParams.set('ispassdue', '');
//     url.searchParams.set('brandid', '');
//     url.searchParams.set('isbook', '');
//     url.searchParams.set('isledger', '');
//     url.searchParams.set('deliveryid', '');
//     url.searchParams.set('sourceid', '');
//     url.searchParams.set('goodsid', '');
//     url.searchParams.set('page', '1');
//     url.searchParams.set('rows', '100');
//     url.searchParams.set('sort', 'id');
//     url.searchParams.set('order', 'desc');
//
//     // 2. 配置它:从 URL /article/.../load GET-request
//     xhr.open('post', url);
//
//     // 3. 通过网络发送请求
//     xhr.send();
//
//     // 4. 当接收到响应后,将调用此函数
//     xhr.onload = function() {
//         if (xhr.status != 200) { // 分析响应的 HTTP 状态
//             alert(`Error ${xhr.status}: ${xhr.statusText}`); // 例如 404: Not Found
//         } else { // 显示结果
//             let xhrString = JSON.parse(xhr.response)
//             // console.log(xhrString)
//             if (xhrString.total > 0){
//                 let rows = xhrString.rows;
//                 if (rows[0].status === '4'){
//                     AddAlertTd('已经核销');
//                     return
//                 }else if(rows[0].status === '2'){
//                     AddAlertTd('未验收');
//                     return
//                 } else if(rows[0].isinvoice === '4' || rows[0].isinvoice === '1'){
//                     AddAlertTd('已经申请抽单');
//                     return
//                 }else{
//                     AddAlertTd('未出库');
//                     return
//                 }
//             } else {
//                 AddAlertTd('请输入正确单号');
//                 return
//             }
//             // alert(`Done, got ${xhr.response.length} bytes`); // response 是服务器响应
//
//         }
//     };
//     xhr.onerror = function() {
//         alert("Request failed");
//     };
//     return returnString
// }
//
//
// function CheckOutOrder(orderId,customer) {
//     let xhr = new XMLHttpRequest();
//
//     let url = new URL('http://47.107.106.156:8888/sales/getRejectBillList.do');
//     url.searchParams.set('businessdate', '');
//     url.searchParams.set('businessdate1', '');
//     url.searchParams.set('salesdept','');
//     url.searchParams.set('indooruserid', '');
//     url.searchParams.set('ysbusinessdate', '');
//     url.searchParams.set('ysbusinessdate1', '');
//     url.searchParams.set('isinvoice', '3');
//     url.searchParams.set('id', orderId);
//     url.searchParams.set('goodsid', '');
//     url.searchParams.set('billtype', '');
//     url.searchParams.set('isbook', '');
//     url.searchParams.set('customerid', customer);
//     url.searchParams.set('ysprintsign', '');
//     url.searchParams.set('queryysprinttimes', '0');
//     url.searchParams.set('isledger', '');
//     url.searchParams.set('status', '');
//     url.searchParams.set('page', '1');
//     url.searchParams.set('rows', '20');
//     url.searchParams.set('sort', 'addtime');
//     url.searchParams.set('order', 'desc');
//
//     // 2. 配置它:从 URL /article/.../load GET-request
//     xhr.open('post', url);
//
//     // 3. 通过网络发送请求
//     xhr.send();
//
//     // 4. 当接收到响应后,将调用此函数
//     xhr.onload = function() {
//         if (xhr.status != 200) { // 分析响应的 HTTP 状态
//             alert(`Error ${xhr.status}: ${xhr.statusText}`); // 例如 404: Not Found
//         } else { // 显示结果
//             let xhrString = JSON.parse(xhr.response)
//             // console.log(xhrString)
//             if (xhrString.total > 0){
//                 let rows = xhrString.rows;
//                 if (rows[0].isinvoice === '2'){
//                     AddAlertTd('已经核销');
//                     return
//                 } else if (rows[0].isinvoice === '1'){
//                     AddAlertTd('已经申请抽单');
//                     return
//                 }
//             } else {
//                 AddAlertTd('未验收');
//                 return
//             }
//             // alert(`Done, got ${xhr.response.length} bytes`); // response 是服务器响应
//
//         }
//     };
//     xhr.onerror = function() {
//         alert("Request failed");
//     };
// }
//
// // 查询退货单号重复
// function queryOutOrder(customer,order_id){
//     let xhr = new XMLHttpRequest();
//     let url = new URL(' http://47.107.106.156:8888/sales/getRejectBillList.do');
//     let query_date = getIntervalDate();
//     url.searchParams.set('businessdate', query_date.start_date);
//     url.searchParams.set('businessdate1', query_date.end_date);
//     url.searchParams.set('storageid','');
//     url.searchParams.set('id','');
//     url.searchParams.set('confirmstatus','');
//     url.searchParams.set('goodsid','');
//     url.searchParams.set('billtype','');
//     url.searchParams.set('source','9');
//     url.searchParams.set('status','');
//     url.searchParams.set('sourceid','');
//     url.searchParams.set('printsign','');
//     url.searchParams.set('queryprinttimes','0');
//     url.searchParams.set('customerid',customer);
//     url.searchParams.set('page','1');
//     url.searchParams.set('rows','1000');
//     url.searchParams.set('sort','addtime');
//     url.searchParams.set('order','desc');
//
//     // 2. 配置它:从 URL /article/.../load GET-request
//     xhr.open('post', url);
//
//     // 3. 通过网络发送请求
//     xhr.send();
//
//     // 4. 当接收到响应后,将调用此函数
//     xhr.onload = function() {
//         if (xhr.status != 200) { // 分析响应的 HTTP 状态
//             alert(`Error ${xhr.status}: ${xhr.statusText}`); // 例如 404: Not Found
//         } else { // 显示结果
//             let xhrString = JSON.parse(xhr.response)
//             // console.log(xhrString)
//             if (xhrString.total > 0){
//                 let i = 0;
//                 let orderNo='';
//                 for (; i < xhrString.rows.length;i++) {
//                     if (xhrString.rows[i].remark === order_id || xhrString.rows[i].sourceid === order_id ){
//                         orderNo += `${xhrString.rows[i].id},`
//                     }
//                 }
//                 if (orderNo){
//                     alert( `有重复单,单号为${orderNo}`);
//                 }
//             }
//             // alert(`Done, got ${xhr.response.length} bytes`); // response 是服务器响应
//         }
//     };
//
//     xhr.onerror = function() {
//         alert("Request failed");
//     };
// }
//
// function getIntervalDate(){
//     let date = new Date();
//     let end_date = `${date.getFullYear()}-${(date.getMonth()+1).toString().padStart(2,"0")}-${date.getDate().toString().padStart(2,'0')}`;
//     date.setDate(date.getDate()-90);
//     let start_date = `${date.getFullYear()}-${date.getMonth().toString().padStart(2,"0")}-${date.getDate().toString().padStart(2,'0')}`;
//     let query_date ={
//         'start_date':start_date,
//         'end_date':end_date
//     }
//     return query_date
// }
//
// // 添加历史价格
// function addHistoryPrice() {
//     let add_bool = document.querySelector('#addhistoryprice')
//     if (!add_bool) {
//         let div_parent = document.querySelector('#sales-dialog-orderAddPage-content').parentNode;
//         div_parent.style.width = '1201px'
//         let title_string = `
// <div class="panel window" id="addhistoryprice" style="width: 600px; left:601px">
// <div class="panel-header panel-header-noborder window-header" style="width: 600px;">
// <div class="panel-title" style="">商品历史价格</div>
// </div>
// <div class="easyui-layout layout easyui-fluid" data-options="fit:true" style="width: 600px; height: 424px;">
// <div class="panel layout-panel layout-panel-center" style="width: 600px; left: 0px; top: 0px;">
// <div data-options="region:'center',border:false" title="" class="panel-body panel-body-noheader panel-body-noborder layout-body" style="width: 600px; height: 424px;">
// <table cellpadding="0" cellspacing="0">
// <tbody>
// <tr class="datagrid-header-row">
// <td class="len120">日期</td>
// <td class="len80">仓库</td>
// <td class="len80">单位</td>
// <td class="len100">数量</td>
// <td class="len100">单价</td>
// <td class="len120">金额</td>
// </tr>
// </tbody></table>
// <table cellpadding="0" cellspacing="0">
// <tbody id="table_row">
// </tbody></table>
// </div>
// </div>
// </div>
// </div>
// `
//         div_parent.insertAdjacentHTML('afterbegin', title_string);
//     }
// }
//
// // 查询销售情况流水明细
// function showCustomerSalesFlowList(customer,products){
//     let xhr = new XMLHttpRequest();
//     let url = new URL('http://47.107.106.156:8888/report/finance/showCustomerSalesFlowList.do');
//     let query_date = getIntervalDate();
//     url.searchParams.set("businessdate1", "2022-03-01");
//     url.searchParams.set("businessdate2", query_date.end_date);
//     url.searchParams.set("goodsid", products);
//     url.searchParams.set("salesuser", "");
//     url.searchParams.set("batchno", "");
//     url.searchParams.set("goodssort", "");
//     url.searchParams.set("customerid", customer);
//     url.searchParams.set("pcustomerid", "");
//     url.searchParams.set("salesarea", "");
//     url.searchParams.set("customersort","");
//     url.searchParams.set("salesdept", "");
//     url.searchParams.set("brandid", "");
//     url.searchParams.set("orderid", "");
//     url.searchParams.set("type", "");
//     url.searchParams.set("invoice1", "1");
//     url.searchParams.set("writeoff1","1");
//     url.searchParams.set("invoice2", "1");
//     url.searchParams.set("writeoff2", "1");
//     url.searchParams.set("id", "");
//     url.searchParams.set("storageid", "");
//     url.searchParams.set("supplierid", "");
//     url.searchParams.set("page", "1");
//     url.searchParams.set("rows", "1000");
//     // 2. 配置它:从 URL /article/.../load GET-request
//     xhr.open('post', url);
//
//     // 3. 通过网络发送请求
//     xhr.send();
//
//     // 4. 当接收到响应后,将调用此函数
//     xhr.onload = function() {
//         if (xhr.status != 200) { // 分析响应的 HTTP 状态
//             alert(`Error ${xhr.status}: ${xhr.statusText}`); // 例如 404: Not Found
//         } else { // 显示结果
//             let xhrString = JSON.parse(xhr.response)
//             // console.log(xhrString)
//             let table_html = '';
//             let table_parentNode = document.querySelector("#table_row");
//             if (xhrString.total > 0){
//                 let row_data = xhrString.rows;
//                 let x = 1;  //用x取余来做斑马格
//                 for (let row_num in row_data){
//                     table_html = `
// <tr class="${(x%2 ==0) ?"datagrid-row-alt datagrid-row":"datagrid-row"}">
// <td class="len120">${row_data[row_num].addtime}</td>
// <td class="len80">${row_data[row_num].deliverystoragename}</td>
// <td class="len80">${row_data[row_num].unitname}</td>
// <td class="len100">${row_data[row_num].unitnum}</td>
// <td class="len100">${row_data[row_num].price}</td>
// <td class="len120">${row_data[row_num].taxamount}</td>
// </tr>
// ` + table_html;
//                     x=++x;
//                 }
//             }
//             table_parentNode.innerHTML=table_html;
//             // alert(`Done, got ${xhr.response.length} bytes`); // response 是服务器响应
//         }
//     };
//
//     xhr.onerror = function() {
//         alert("Request failed");
//     };
// }