// ==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");
// };
// }