From 1e955583470b47f7636eaba800c52c258ac24296 Mon Sep 17 00:00:00 2001 From: wanglizhong <wlz> Date: 星期一, 28 四月 2025 21:26:10 +0800 Subject: [PATCH] fix:将开单人跟单人放到服务单中 --- admin_save.gds | 15 ServiceOrder.gds | 321 +++++++++++++++++++++++++- web.config | 2 API/v1/web.config111 | 0 DispatchOrder.gds | 312 ------------------------- Report_DispatchDetailed_Data.php | 26 +- 6 files changed, 337 insertions(+), 339 deletions(-) diff --git a/API/v1/web.config b/API/v1/web.config111 similarity index 100% rename from API/v1/web.config rename to API/v1/web.config111 diff --git a/DispatchOrder.gds b/DispatchOrder.gds index 2e4289f..684717f 100644 --- a/DispatchOrder.gds +++ b/DispatchOrder.gds @@ -876,289 +876,7 @@ </div> - <div class="field"> - <!-- 寮�鍗曚汉 --> - <% - EntourageID_OpenUser = "-8" - departmentID_OpenUser = "9" - OpenUserID = "" - OpenUserName = "" - OpenUserRatio = "" - OpenerAndFollowerEnableModify = False - if isDepartment("020140")=1 then - OpenerAndFollowerEnableModify=True - End If - - If DispatchOrdID<>"" Then - openSql="select * from ServiceOrderCommissionDetails where ServiceOrderID="&DispatchOrdID&" and PersonType='Opener'" - rs.open openSql,objConn,1,1 - If not rs.Eof Then - OpenUserID = rs("PersonID") - OpenUserName = rs("PersonName") - OpenUserRatio = rs("CommissionRatio") - End If - rs.close() - End If - %> - - <div class="label" style="float: left;margin-left: 0px;"><label for="input-small">寮�鍗曚汉:</label></div> - <div class="input" style="float:left;margin-left: 70px;"> - <input id="Entourage_<%=EntourageID_OpenUser%>" name="OpenUserID" type="hidden" value="<%=OpenUserID%>"> - <input type="text" id="EntourageName_<%=EntourageID_OpenUser%>" name="OpenUserName" <% if OpenerAndFollowerEnableModify=False Then%> disabled <% end If%> class="small" <%If OpenUserID="" Or OpenerAndFollowerEnableModify=True Then%>onclick="javascript:JS_EntourageOpen('<%=EntourageID_OpenUser%>','-<%=departmentID_OpenUser%>');"<%End If%> style="width:138px;" value="<%=OpenUserName%>" readonly="true"> - </div> - <% - followerCount = 0 - showFollower = False - If DispatchOrdID<>"" Then - followerSqlCount="select count(1) from ServiceOrderCommissionDetails where ServiceOrderID="&DispatchOrdID&" and PersonType='Follower'" - rs.open followerSqlCount,objConn,1,1 - If Not rs.EOF Then - ' 鑾峰彇鏌ヨ缁撴灉 - followerCount = rs.Fields(0).Value - if followerCount>0 then - showFollower = True - else - showFollower = False - end if - Else - ' 濡傛灉璁板綍闆嗕负绌猴紝灏嗙粨鏋滆涓� 0 - followerCount = 0 - showFollower = False - End If - rs.close() - End If - EditFollower=True - showTopFollowerAdd=True - if showFollower=True then - showTopFollowerAdd=False - End If - if OpenerAndFollowerEnableModify=False Then - EditFollower=False - showTopFollowerAdd=False - End If - - - - %> - - <div class="label" style="float: left;margin-left: 226px;"><label for="input-small">鎻愭垚姣斾緥(%):</label></div> - <div class="input" style="float:left;margin-left: 86px;"> - <input type="text" id="OpenUserRatio" name="OpenUserRatio" <% if EditFollower=False Then%> disabled <% end If%> value="<%=OpenUserRatio%>" class="small" style="width:50px;"> - </div> - <div class="input" style="float:left;margin-left: 10px;"> - <button class="ui-state-default" <% If showTopFollowerAdd=False then %> style='display:none' <% End If%> id="inputTopAddFollower" onclick="return showFollower();">娣诲姞璺熷崟浜�</button> - </div> - </div> - <div class="field" id="followerDiv" <% If showFollower<>True then %> style="display:none;" <% end if%>> - <!-- 璺熷崟浜� --> - <input type="hidden" id="hidFollowerCount" name="FollowersCount" value="<%=followerCount%>"/> - <div class="label" style="float: left;margin-left: 10px;"><label for="input-small">璺熷崟浜�:</label></div> - <div class="input" style="float:left;margin-left: 70px;"> - <div id="FollowersList"> - <% - FollowerCount = 1 - EntourageID_Follower = "-9" - departmentID_Follower = "9" - if DispatchOrdID<>"" then - followerSql="select * from ServiceOrderCommissionDetails where ServiceOrderID="&DispatchOrdID&" and PersonType='Follower'" - rs.open followerSql,objConn,1,1 - FollowerIndex=1 - do while not rs.Eof - FollowerID = rs("PersonID") - FollowerName = rs("PersonName") - FollowerRatio = rs("CommissionRatio") - - %> - <div class="follower-item"> - <input name="FollowerID_<%=FollowerIndex%>" id="FollowerId_<%=FollowerIndex%>" type="hidden" value="<%=FollowerID%>"> - <input type="text" name="FollowerName_<%=FollowerIndex%>" <% if EditFollower=False Then %> disabled <% End If%> id="FollowerName_<%=FollowerIndex%>" class="small" <%If FollowerID="" Or isDepartment("020140")=1 Then%>onclick="javascript:JS_EntourageOpen('<%=EntourageID_Follower%>_<%=FollowerCount%>','-<%=departmentID_Follower%>');"<%End If%> style="width:138px;" value="<%=FollowerName%>" readonly="true"> - <div class="label" style="float: left;margin-left: 226px;"><label for="input-small">鎻愭垚姣斾緥(%):</label></div> - <div class="input" style="float:left;margin-left: 87px;"> - <input type="text" id="FollowerRatio_<%=FollowerIndex%>" <% if EditFollower=False Then %> disabled <% End If%> name="FollowerRatio_<%=FollowerIndex%>" class="small" style="width:50px;" value="<%=FollowerRatio%>" /> - </div> - <div class="input" style="float:left;margin-left: 10px;"> - <button <% if EditFollower=False Then %> style="display:none" <% End If%> onclick="return removeFollower();">鍒犻櫎</button> - </div> - </div> - <% - FollowerIndex=FollowerIndex+1 - rs.movenext - loop - rs.close() - End If - %> - </div> - <button <% if EditFollower=False Then %> style="display:none" <% End If%> class="ui-state-default" onclick="return addFollower()">娣诲姞璺熷崟浜�</button> - </div> - - </div> - <style> - /* 鍏朵粬宸叉湁鏍峰紡... */ - .follower-item { - margin-bottom: 10px; /* 姣忎釜璺熷崟浜洪」涔嬮棿鐨勯棿璺� */ - clear: both; /* 娓呴櫎娴姩 */ - overflow: hidden; /* 澶勭悊娴姩鍏冪礌 */ - } - .follower-item input { - margin-right: 10px; /* 杈撳叆妗嗕箣闂寸殑闂磋窛 */ - } - </style> - <script LANGUAGE="javascript"> - function showFollower(){ - document.getElementById("followerDiv").style.display=""; - document.getElementById("inputTopAddFollower").style.display="none"; - addFollower() - return false; - - } - function checkOpenerAndFollower(){ - // 鑾峰彇寮�鍗曚汉淇℃伅 - var openerNameInput = document.getElementById("EntourageName_<%=EntourageID_OpenUser%>"); - var openerName = openerNameInput.value; - var openerRatioInput = document.getElementById("OpenUserRatio"); - var openerRatio = openerRatioInput.value; - - // 妫�娴嬪紑鍗曚汉濮撳悕鏄惁涓虹┖ - //if (openerName === "") { - // alert("寮�鍗曚汉濮撳悕涓嶈兘涓虹┖"); - // return false; - //} - - // 妫�娴嬪紑鍗曚汉鎻愭垚姣斾緥鏄惁涓虹┖ - if (openerName !="" && openerRatio === "") { - alert("寮�鍗曚汉鎻愭垚姣斾緥涓嶈兘涓虹┖"); - return false; - } - - // 瀛樺偍璺熷崟浜哄鍚嶅拰鎻愭垚姣斾緥 - var followerNames = []; - var followerRatios = []; - var followersList = document.getElementById('FollowersList'); - var followerItems = followersList.getElementsByClassName('follower-item'); - - // 閬嶅巻璺熷崟浜猴紝鏀堕泦濮撳悕鍜屾彁鎴愭瘮渚嬪苟杩涜妫�娴� - for (var i = 0; i < followerItems.length; i++) { - var followerNameInput = followerItems[i].querySelector('input[name^="FollowerName_"]'); - var followerName = followerNameInput.value; - var followerRatioInput = followerItems[i].querySelector('input[name^="FollowerRatio_"]'); - var followerRatio = followerRatioInput.value; - - // 妫�娴嬭窡鍗曚汉濮撳悕鏄惁涓虹┖ - if (followerName === "") { - alert("璺熷崟浜哄鍚嶄笉鑳戒负绌�"); - return false; - } - - // 妫�娴嬭窡鍗曚汉鎻愭垚姣斾緥鏄惁涓虹┖ - if (followerRatio === "") { - alert("璺熷崟浜烘彁鎴愭瘮渚嬩笉鑳戒负绌�"); - return false; - } - - followerNames.push(followerName); - followerRatios.push(parseFloat(followerRatio)); - } - - // 灏嗗紑鍗曚汉鎻愭垚姣斾緥杞崲涓烘诞鐐规暟 - openerRatio = parseFloat(openerRatio); - - // 妫�娴嬮�昏緫 1: 寮�鍗曚汉涓庤窡鍗曚汉姣斾緥鍔犺捣涓嶈兘瓒呰繃 100 - var totalRatio = openerRatio; - for (var j = 0; j < followerRatios.length; j++) { - totalRatio += followerRatios[j]; - } - if (totalRatio > 100) { - alert("寮�鍗曚汉涓庤窡鍗曚汉鎻愭垚姣斾緥鎬诲拰涓嶈兘瓒呰繃 100%"); - return false; - } - - // 妫�娴嬮�昏緫 2: 寮�鍗曚汉涓庤窡鍗曚汉涓嶈鍑虹幇閲嶅 - if (followerNames.includes(openerName)) { - alert("寮�鍗曚汉涓庤窡鍗曚汉涓嶈兘閲嶅"); - return false; - } - - // 妫�娴嬮�昏緫 3: 澶氫釜璺熷崟浜轰箣闂翠篃涓嶈鍑虹幇閲嶅 - var uniqueFollowerNames = []; - for (var k = 0; k < followerNames.length; k++) { - if (uniqueFollowerNames.includes(followerNames[k])) { - alert("璺熷崟浜轰箣闂翠笉鑳介噸澶�"); - return false; - } - uniqueFollowerNames.push(followerNames[k]); - } - - return true; - } - function addFollower() { - - var followersList = document.getElementById('FollowersList'); - var newFollower = document.createElement('div'); - newFollower.className = 'follower-item'; - var followerCount = followersList.children.length + 1; - newFollower.innerHTML = ` - <input id="Entourage_<%=EntourageID_Follower%>_${followerCount}" name="FollowerID_${followerCount}" type="hidden" value=""> - <input type="text" id="EntourageName_<%=EntourageID_Follower%>_${followerCount}" name="FollowerName_${followerCount}" class="small" onclick="javascript:JS_EntourageOpen('<%=EntourageID_Follower%>_${followerCount}','-<%=departmentID_Follower%>');" style="width:138px;" value="" readonly="true"> - <div class="label" style="float: left;margin-left: 226px;"><label for="input-small">鎻愭垚姣斾緥(%):</label></div> - <div class="input" style="float:left;margin-left: 87px;"> - <input type="text" id="FollowerRatio_${followerCount}" name="FollowerRatio_${followerCount}" class="small" style="width:50px;"> - </div> - <div class="input" style="float:left;margin-left: 10px;"> - <button onclick="return removeFollower();">鍒犻櫎</button> - </div> - `; - followersList.appendChild(newFollower); - addFollowerCount(1); - return false; - } - function removeFollower(index){ - var followersList = document.getElementById('FollowersList'); - - var followerItems = followersList.getElementsByClassName('follower-item'); - // 濡傛灉浼犲叆浜� index 鍙傛暟锛屽垹闄ゆ寚瀹氱储寮曠殑鍏冪礌锛涘惁鍒欏垹闄ゆ渶鍚庝竴涓厓绱� - var elementToRemove = index !== undefined ? followerItems[index] : followersList.lastElementChild; - if (elementToRemove) { - elementToRemove.remove(); - } - followersList = document.getElementById('FollowersList'); - let len=followersList.children.length; - - // 鏇存柊鍓╀綑鍏冪礌鐨� name 灞炴�у拰绱㈠紩 - var newFollowerCount = 1; - for (var i = 0; i < len; i++) { - var item = followerItems[i]; - var followerIdInput = item.querySelector('input[name^="FollowerID_"]'); - var followerNameInput = item.querySelector('input[name^="FollowerName_"]'); - var followerRatioInput = item.querySelector('input[name^="FollowerRatio_"]'); - if (followerIdInput) { - followerIdInput.name = `FollowerID_${newFollowerCount}`; - followerIdInput.id = `FollowerId_${newFollowerCount}`; - } - if (followerNameInput) { - followerNameInput.name = `FollowerName_${newFollowerCount}`; - followerNameInput.id = `FollowerName_${newFollowerCount}`; - } - if (followerRatioInput) { - followerRatioInput.name = `FollowerRatio_${newFollowerCount}`; - followerRatioInput.id = `FollowerRatio_${newFollowerCount}`; - } - newFollowerCount++; - } - if(followersList.children.length==0){ - document.getElementById("followerDiv").style.display="none"; - document.getElementById("inputTopAddFollower").style.display=""; - } - addFollowerCount(-1); - return false; - } - function addFollowerCount(val){ - var hid=document.getElementById("hidFollowerCount"); - var oldv=hid.value; - hid.value=parseInt(oldv)+val; - } - - </script> <%If isDepartment("070127")=1 Then%> <div class="field"> <%'涓昏浼佸井瀹㈡湇 @@ -1585,10 +1303,7 @@ <script LANGUAGE="javascript"> //淇濆瓨璋冨害鍗�(鏂板) function form1_submit24_1(){ - let checkResult=checkOpenerAndFollower(); - if(!checkResult){ - return; - } + DispatchOrdPerfomance=document.getElementById('DispatchOrdPerfomance').value; //缁╂晥璁′环 ServiceOrdTraTxnPrice=document.getElementById('ServiceOrdTraTxnPrice').value; //鎴愪氦浠� //if ((DispatchOrdPerfomance=='0' || DispatchOrdPerfomance=='') && ServiceOrdTraTxnPrice!='0') @@ -1609,10 +1324,7 @@ } //淇濆瓨璋冨害鍗�(淇敼) function form1_submit25_1(){ - let checkResult=checkOpenerAndFollower(); - if(!checkResult){ - return; - } + DispatchOrdPerfomance=document.getElementById('DispatchOrdPerfomance').value; //缁╂晥璁′环 ServiceOrdTraTxnPrice=document.getElementById('ServiceOrdTraTxnPrice').value; //鎴愪氦浠� if(document.getElementById("RV_PointE_TXT")!=null){ @@ -1641,10 +1353,7 @@ } //涓嬪彂璋冨害鍗�(鏂板) function form1_submit24_2(){ - let checkResult=checkOpenerAndFollower(); - if(!checkResult){ - return; - } + DispatchOrdPerfomance=document.getElementById('DispatchOrdPerfomance').value; //缁╂晥璁′环 ServiceOrdTraTxnPrice=document.getElementById('ServiceOrdTraTxnPrice').value; //鎴愪氦浠� //if ((DispatchOrdPerfomance=='0' || DispatchOrdPerfomance=='') && ServiceOrdTraTxnPrice!='0') @@ -1665,10 +1374,7 @@ } //涓嬪彂璋冨害鍗�(淇敼) function form1_submit25_2(){ - let checkResult=checkOpenerAndFollower(); - if(!checkResult){ - return; - } + DispatchOrdPerfomance=document.getElementById('DispatchOrdPerfomance').value; //缁╂晥璁′环 ServiceOrdTraTxnPrice=document.getElementById('ServiceOrdTraTxnPrice').value; //鎴愪氦浠� //if ((DispatchOrdPerfomance=='0' || DispatchOrdPerfomance=='') && ServiceOrdTraTxnPrice!='0') @@ -1689,10 +1395,7 @@ } //瀹℃牳閫氳繃璋冨害鍗�(淇敼) function form1_submit28_1(){ - let checkResult=checkOpenerAndFollower(); - if(!checkResult){ - return; - } + DispatchOrdPerfomance=document.getElementById('DispatchOrdPerfomance').value; //缁╂晥璁′环 ServiceOrdTraTxnPrice=document.getElementById('ServiceOrdTraTxnPrice').value; //鎴愪氦浠� //if ((DispatchOrdPerfomance=='0' || DispatchOrdPerfomance=='') && ServiceOrdTraTxnPrice!='0') @@ -1716,10 +1419,7 @@ } //瀹℃牳涓嶉�氳繃璋冨害鍗�(淇敼) function form1_submit28_2(){ - let checkResult=checkOpenerAndFollower(); - if(!checkResult){ - return; - } + if(confirm("纭畾瀹℃牳涓嶉�氳繃璋冨害鍗�?")) { document.getElementById("MessageContents_form1").value=document.getElementById("MessageContents").value; diff --git a/Report_DispatchDetailed_Data.php b/Report_DispatchDetailed_Data.php index c44f2d0..aa4a10a 100644 --- a/Report_DispatchDetailed_Data.php +++ b/Report_DispatchDetailed_Data.php @@ -327,15 +327,15 @@ /** * 鏍规嵁 DispatchOrdID 鏌ユ壘寮�鍗曚汉鍙婅窡鍗曚汉鍒楄〃 * - * @param int $DispatchOrdID 璋冨害鍗� ID + * @param int $ServiceOrdID 璋冨害鍗� ID * @param object $conn 鏁版嵁搴撹繛鎺ュ璞� * @return array 鍖呭惈寮�鍗曚汉鍙婅窡鍗曚汉淇℃伅鐨勬暟缁� */ -function getDispatchOrderStaff($DispatchOrdID, $conn) { +function getDispatchOrderStaff($ServiceOrdID, $conn) { $staffList = []; // 鏌ヨ寮�鍗曚汉淇℃伅 - $sqlDispatcher = "select PersonName,CommissionRatio from ServiceOrderCommissionDetails where ServiceOrderID='$DispatchOrdID' and PersonType='Opener'"; + $sqlDispatcher = "select PersonName,CommissionRatio from ServiceOrderCommissionDetails where ServiceOrderID='$ServiceOrdID' and PersonType='Opener'"; $dataDispatcher = sqlsrv_query($conn, $sqlDispatcher); if ($dataDispatcher && sqlsrv_has_rows($dataDispatcher)) { @@ -345,7 +345,7 @@ } // 鏌ヨ璺熷崟浜哄垪琛� - $sqlEntourage = "select PersonName,CommissionRatio from ServiceOrderCommissionDetails where ServiceOrderID='$DispatchOrdID' and PersonType='Follower'"; + $sqlEntourage = "select PersonName,CommissionRatio from ServiceOrderCommissionDetails where ServiceOrderID='$ServiceOrdID' and PersonType='Follower'"; $dataEntourage = sqlsrv_query($conn, $sqlEntourage); if ($dataEntourage) { $entourageList = []; @@ -381,7 +381,7 @@ if($data == true){ $FormArray=array(); //琛ㄥご - $FormArray[0]=array("搴忓彿","鏈嶅姟鍗曞彿","璋冨害鍗曞彿","绾у埆","鍒嗗尯","棰勭害绫诲瀷","璋冨害鍗曠姸鎬�","鏃ユ湡","鏃堕棿","鐝","鑱旂郴浜�","鑱旂郴鐢佃瘽","鎮h�呭鍚�","閿�鍞�","浠嬬粛浜�","瀹㈡湇","璋冨害","鏉ユ簮","鏄惁浼佸井鎴愪氦","涓昏浼佸井瀹㈡湇","鍏朵粬浼佸井瀹㈡湇","鎯呮櫙缂栧彿","浼佸井缁╂晥","鎬婚儴涓嬪彂","鏀彺鎬婚儴","鎵垮寘缁�","鍖哄煙","绫诲瀷","鍑哄彂鐪佷唤","鍑哄彂甯�","鍑哄彂鍖�","杞嚭鍖婚櫌","杞嚭绉戝","杞嚭搴婁綅","杞叆鐪佷唤","杞叆甯�","杞叆鍖�","杞叆鍖婚櫌","杞叆绉戝","鎬绘垚浜や环","绯荤粺鎶ヤ环鍙傝��","绛夊緟璐�","鎷呮灦璐�","灞呭ICU璐�","璺濈(鍏噷)","鏀粯鏂瑰紡","浣跨敤鍛煎惛鏈�","杞︾墝","鍑鸿溅鎴愬憳","鍑鸿溅宀椾綅","鍖绘姢鍑鸿溅鏃堕棿(鍒嗛挓)","寮�鍗曚汉","寮�鍗曚汉鎻愭垚姣斾緥","璺熷崟浜�","璺熷崟浜烘彁鎴愭瘮渚�","璺熷崟浜�","璺熷崟浜烘彁鎴愭瘮渚�","璺熷崟浜�","璺熷崟浜烘彁鎴愭瘮渚�"); + $FormArray[0]=array("搴忓彿","鏈嶅姟鍗曞彿","璋冨害鍗曞彿","绾у埆","鍒嗗尯","棰勭害绫诲瀷","璋冨害鍗曠姸鎬�","鏃ユ湡","鏃堕棿","鐝","鑱旂郴浜�","鑱旂郴鐢佃瘽","鎮h�呭鍚�","閿�鍞�","浠嬬粛浜�","瀹㈡湇","璋冨害","鏉ユ簮","鏄惁浼佸井鎴愪氦","涓昏浼佸井瀹㈡湇","鍏朵粬浼佸井瀹㈡湇","鎯呮櫙缂栧彿","浼佸井缁╂晥","鎬婚儴涓嬪彂","鏀彺鎬婚儴","鎵垮寘缁�","鍖哄煙","绫诲瀷","鍑哄彂鐪佷唤","鍑哄彂甯�","鍑哄彂鍖�","杞嚭鍖婚櫌","杞嚭绉戝","杞嚭搴婁綅","杞叆鐪佷唤","杞叆甯�","杞叆鍖�","杞叆鍖婚櫌","杞叆绉戝","鎬绘垚浜や环","绯荤粺鎶ヤ环鍙傝��","绛夊緟璐�","鎷呮灦璐�","灞呭ICU璐�","璺濈(鍏噷)","鏀粯鏂瑰紡","浣跨敤鍛煎惛鏈�","杞︾墝","鍑鸿溅鎴愬憳","鍑鸿溅宀椾綅","鍖绘姢鍑鸿溅鏃堕棿(鍒嗛挓)","寮�鍗曚汉","寮�鍗曚汉鎻愭垚姣斾緥","璺熷崟浜�","璺熷崟浜烘彁鎴愭瘮渚�","璺熷崟浜�","璺熷崟浜烘彁鎴愭瘮渚�","璺熷崟浜�","璺熷崟浜烘彁鎴愭瘮渚�","璺熷崟浜�","璺熷崟浜烘彁鎴愭瘮渚�"); if ($is_CSV==1){array_push($FormArray[0],"浠诲姟澶囨敞");} $FormArrayX=count($FormArray[0]); if (sqlsrv_rows_affected($data)==0) { @@ -401,11 +401,11 @@ $isRespirator="鏄�"; } //璇诲彇鏁版嵁--End - + $ServiceOrdID=$rs['ServiceOrdID']; //鍐欏叆鏁扮粍 $FormArray[$i][0]=$i+(($page-1)*$page_size); If ($OrdType=="2") { - $FormArray[$i][1]="<a href='ServiceOrder.gds?ServiceOrdID=".$rs['ServiceOrdID']."&OrdDateType=4&OrdClassList=&h_menu1_1=1' target='_blank'>".$rs['ServiceOrdNo']."</a>"; + $FormArray[$i][1]="<a href='ServiceOrder.gds?ServiceOrdID=".$ServiceOrdID."&OrdDateType=4&OrdClassList=&h_menu1_1=1' target='_blank'>".$rs['ServiceOrdNo']."</a>"; if (!empty($rs['DispatchOrdNo'])) { $FormArray[$i][2]="<a href='DispatchOrder.gds?DispatchOrdID=".$rs['DispatchOrdID']."&OrdDateType=4&OrdClassList=&h_menu1_1=1' target='_blank'>".$rs['DispatchOrdNo']."</a>"; }else{ @@ -522,7 +522,7 @@ $FormArray[$i][48]=$rs['EntourageName']; $FormArray[$i][49]=$rs['EntouragePost']; $FormArray[$i][50]=$rs['Stime2']; - $rs2=getDispatchOrderStaff($rs['DispatchOrdID'], $conn); + $rs2=getDispatchOrderStaff($ServiceOrdID, $conn); //濡傛灉 $rs2 涓虹┖锛岃缃粯璁ゅ�� if (empty($rs2)) { $FormArray[$i][51]='--'; @@ -541,9 +541,9 @@ $FormArray[$i][54+$j]=$value['FollowerRatio']; $j++; } - if($count<3){ - //琛ヨ冻3涓� - while($j<3){ + if($count<4){ + //琛ヨ冻4涓� + while($j<4){ $FormArray[$i][53+$j*2]='--'; $FormArray[$i][54+$j*2]=''; $j++; @@ -556,8 +556,10 @@ $FormArray[$i][56]=''; $FormArray[$i][57]='--'; $FormArray[$i][58]=''; + $FormArray[$i][59]='--'; + $FormArray[$i][60]=''; } - if ($is_CSV==1){$FormArray[$i][59]=$rs['ServiceOrdTaskRemarks'];} + if ($is_CSV==1){$FormArray[$i][61]=$rs['ServiceOrdTaskRemarks'];} $i++; //鍐欏叆鏁扮粍--End diff --git a/ServiceOrder.gds b/ServiceOrder.gds index db338b0..21baf3a 100644 --- a/ServiceOrder.gds +++ b/ServiceOrder.gds @@ -1181,6 +1181,289 @@ </div> </div> + <div class="field"> + <!-- 寮�鍗曚汉 --> + <% + EntourageID_OpenUser = "-8" + departmentID_OpenUser = "9" + OpenUserID = "" + OpenUserName = "" + OpenUserRatio = "" + OpenerAndFollowerEnableModify = False + if isDepartment("020140")=1 then + OpenerAndFollowerEnableModify=True + End If + + If ServiceOrdID<>"" Then + openSql="select * from ServiceOrderCommissionDetails where ServiceOrderID="&ServiceOrdID&" and PersonType='Opener'" + rs.open openSql,objConn,1,1 + If not rs.Eof Then + OpenUserID = rs("PersonID") + OpenUserName = rs("PersonName") + OpenUserRatio = rs("CommissionRatio") + End If + rs.close() + End If + %> + + <div class="label" style="float: left;margin-left: 0px;"><label for="input-small">寮�鍗曚汉:</label></div> + <div class="input" style="float:left;margin-left: 70px;"> + <input id="Entourage_<%=EntourageID_OpenUser%>" name="OpenUserID" type="hidden" value="<%=OpenUserID%>"> + <input type="text" id="EntourageName_<%=EntourageID_OpenUser%>" name="OpenUserName" <% if OpenerAndFollowerEnableModify=False Then%> disabled <% end If%> class="small" <%If OpenUserID="" Or OpenerAndFollowerEnableModify=True Then%>onclick="javascript:JS_EntourageOpen('<%=EntourageID_OpenUser%>','-<%=departmentID_OpenUser%>');"<%End If%> style="width:138px;" value="<%=OpenUserName%>" readonly="true"> + </div> + <% + followerCount = 0 + showFollower = False + If ServiceOrdID<>"" Then + followerSqlCount="select count(1) from ServiceOrderCommissionDetails where ServiceOrderID="&ServiceOrdID&" and PersonType='Follower'" + rs.open followerSqlCount,objConn,1,1 + If Not rs.EOF Then + ' 鑾峰彇鏌ヨ缁撴灉 + followerCount = rs.Fields(0).Value + if followerCount>0 then + showFollower = True + else + showFollower = False + end if + Else + ' 濡傛灉璁板綍闆嗕负绌猴紝灏嗙粨鏋滆涓� 0 + followerCount = 0 + showFollower = False + End If + rs.close() + End If + EditFollower=True + showTopFollowerAdd=True + if showFollower=True then + showTopFollowerAdd=False + End If + if OpenerAndFollowerEnableModify=False Then + EditFollower=False + showTopFollowerAdd=False + End If + + + + %> + + <div class="label" style="float: left;margin-left: 226px;"><label for="input-small">鎻愭垚姣斾緥(%):</label></div> + <div class="input" style="float:left;margin-left: 86px;"> + <input type="text" id="OpenUserRatio" name="OpenUserRatio" <% if EditFollower=False Then%> disabled <% end If%> value="<%=OpenUserRatio%>" class="small" style="width:50px;"> + </div> + <div class="input" style="float:left;margin-left: 10px;"> + <button class="ui-state-default" <% If showTopFollowerAdd=False then %> style='display:none' <% End If%> id="inputTopAddFollower" onclick="return showFollower();">娣诲姞璺熷崟浜�</button> + </div> + </div> + + <div class="field" id="followerDiv" <% If showFollower<>True then %> style="display:none;" <% end if%>> + <!-- 璺熷崟浜� --> + <input type="hidden" id="hidFollowerCount" name="FollowersCount" value="<%=followerCount%>"/> + <div class="label" style="float: left;margin-left: 10px;"><label for="input-small">璺熷崟浜�:</label></div> + <div class="input" style="float:left;margin-left: 70px;"> + <div id="FollowersList"> + <% + FollowerCount = 1 + EntourageID_Follower = "-9" + departmentID_Follower = "9" + if ServiceOrdID<>"" then + followerSql="select * from ServiceOrderCommissionDetails where ServiceOrderID="&ServiceOrdID&" and PersonType='Follower'" + rs.open followerSql,objConn,1,1 + FollowerIndex=1 + do while not rs.Eof + FollowerID = rs("PersonID") + FollowerName = rs("PersonName") + FollowerRatio = rs("CommissionRatio") + + %> + <div class="follower-item"> + <input name="FollowerID_<%=FollowerIndex%>" id="FollowerId_<%=FollowerIndex%>" type="hidden" value="<%=FollowerID%>"> + <input type="text" name="FollowerName_<%=FollowerIndex%>" <% if EditFollower=False Then %> disabled <% End If%> id="FollowerName_<%=FollowerIndex%>" class="small" <%If FollowerID="" Or isDepartment("020140")=1 Then%>onclick="javascript:JS_EntourageOpen('<%=EntourageID_Follower%>_<%=FollowerCount%>','-<%=departmentID_Follower%>');"<%End If%> style="width:138px;" value="<%=FollowerName%>" readonly="true"> + <div class="label" style="float: left;margin-left: 226px;"><label for="input-small">鎻愭垚姣斾緥(%):</label></div> + <div class="input" style="float:left;margin-left: 87px;"> + <input type="text" id="FollowerRatio_<%=FollowerIndex%>" <% if EditFollower=False Then %> disabled <% End If%> name="FollowerRatio_<%=FollowerIndex%>" class="small" style="width:50px;" value="<%=FollowerRatio%>" /> + </div> + <div class="input" style="float:left;margin-left: 10px;"> + <button <% if EditFollower=False Then %> style="display:none" <% End If%> onclick="return removeFollower();">鍒犻櫎</button> + </div> + </div> + <% + FollowerIndex=FollowerIndex+1 + rs.movenext + loop + rs.close() + End If + %> + </div> + <button <% if EditFollower=False Then %> style="display:none" <% End If%> class="ui-state-default" onclick="return addFollower()">娣诲姞璺熷崟浜�</button> + </div> + + </div> + <style> + /* 鍏朵粬宸叉湁鏍峰紡... */ + .follower-item { + margin-bottom: 10px; /* 姣忎釜璺熷崟浜洪」涔嬮棿鐨勯棿璺� */ + clear: both; /* 娓呴櫎娴姩 */ + overflow: hidden; /* 澶勭悊娴姩鍏冪礌 */ + } + .follower-item input { + margin-right: 10px; /* 杈撳叆妗嗕箣闂寸殑闂磋窛 */ + } + </style> + <script LANGUAGE="javascript"> + function showFollower(){ + document.getElementById("followerDiv").style.display=""; + document.getElementById("inputTopAddFollower").style.display="none"; + addFollower() + return false; + + } + function checkOpenerAndFollower(){ + // 鑾峰彇寮�鍗曚汉淇℃伅 + var openerNameInput = document.getElementById("EntourageName_<%=EntourageID_OpenUser%>"); + var openerName = openerNameInput.value; + var openerRatioInput = document.getElementById("OpenUserRatio"); + var openerRatio = openerRatioInput.value; + + // 妫�娴嬪紑鍗曚汉濮撳悕鏄惁涓虹┖ + //if (openerName === "") { + // alert("寮�鍗曚汉濮撳悕涓嶈兘涓虹┖"); + // return false; + //} + + // 妫�娴嬪紑鍗曚汉鎻愭垚姣斾緥鏄惁涓虹┖ + if (openerName !="" && openerRatio === "") { + alert("寮�鍗曚汉鎻愭垚姣斾緥涓嶈兘涓虹┖"); + return false; + } + + // 瀛樺偍璺熷崟浜哄鍚嶅拰鎻愭垚姣斾緥 + var followerNames = []; + var followerRatios = []; + var followersList = document.getElementById('FollowersList'); + var followerItems = followersList.getElementsByClassName('follower-item'); + + // 閬嶅巻璺熷崟浜猴紝鏀堕泦濮撳悕鍜屾彁鎴愭瘮渚嬪苟杩涜妫�娴� + for (var i = 0; i < followerItems.length; i++) { + var followerNameInput = followerItems[i].querySelector('input[name^="FollowerName_"]'); + var followerName = followerNameInput.value; + var followerRatioInput = followerItems[i].querySelector('input[name^="FollowerRatio_"]'); + var followerRatio = followerRatioInput.value; + + // 妫�娴嬭窡鍗曚汉濮撳悕鏄惁涓虹┖ + if (followerName === "") { + alert("璺熷崟浜哄鍚嶄笉鑳戒负绌�"); + return false; + } + + // 妫�娴嬭窡鍗曚汉鎻愭垚姣斾緥鏄惁涓虹┖ + if (followerRatio === "") { + alert("璺熷崟浜烘彁鎴愭瘮渚嬩笉鑳戒负绌�"); + return false; + } + + followerNames.push(followerName); + followerRatios.push(parseFloat(followerRatio)); + } + + // 灏嗗紑鍗曚汉鎻愭垚姣斾緥杞崲涓烘诞鐐规暟 + openerRatio = parseFloat(openerRatio); + + // 妫�娴嬮�昏緫 1: 寮�鍗曚汉涓庤窡鍗曚汉姣斾緥鍔犺捣涓嶈兘瓒呰繃 100 + var totalRatio = openerRatio; + for (var j = 0; j < followerRatios.length; j++) { + totalRatio += followerRatios[j]; + } + if (totalRatio > 100) { + alert("寮�鍗曚汉涓庤窡鍗曚汉鎻愭垚姣斾緥鎬诲拰涓嶈兘瓒呰繃 100%"); + return false; + } + + // 妫�娴嬮�昏緫 2: 寮�鍗曚汉涓庤窡鍗曚汉涓嶈鍑虹幇閲嶅 + if (followerNames.includes(openerName)) { + alert("寮�鍗曚汉涓庤窡鍗曚汉涓嶈兘閲嶅"); + return false; + } + + // 妫�娴嬮�昏緫 3: 澶氫釜璺熷崟浜轰箣闂翠篃涓嶈鍑虹幇閲嶅 + var uniqueFollowerNames = []; + for (var k = 0; k < followerNames.length; k++) { + if (uniqueFollowerNames.includes(followerNames[k])) { + alert("璺熷崟浜轰箣闂翠笉鑳介噸澶�"); + return false; + } + uniqueFollowerNames.push(followerNames[k]); + } + + return true; + } + function addFollower() { + + var followersList = document.getElementById('FollowersList'); + var newFollower = document.createElement('div'); + newFollower.className = 'follower-item'; + var followerCount = followersList.children.length + 1; + newFollower.innerHTML = ` + <input id="Entourage_<%=EntourageID_Follower%>_${followerCount}" name="FollowerID_${followerCount}" type="hidden" value=""> + <input type="text" id="EntourageName_<%=EntourageID_Follower%>_${followerCount}" name="FollowerName_${followerCount}" class="small" onclick="javascript:JS_EntourageOpen('<%=EntourageID_Follower%>_${followerCount}','-<%=departmentID_Follower%>');" style="width:138px;" value="" readonly="true"> + <div class="label" style="float: left;margin-left: 226px;"><label for="input-small">鎻愭垚姣斾緥(%):</label></div> + <div class="input" style="float:left;margin-left: 87px;"> + <input type="text" id="FollowerRatio_${followerCount}" name="FollowerRatio_${followerCount}" class="small" style="width:50px;"> + </div> + <div class="input" style="float:left;margin-left: 10px;"> + <button onclick="return removeFollower();">鍒犻櫎</button> + </div> + `; + followersList.appendChild(newFollower); + addFollowerCount(1); + return false; + } + function removeFollower(index){ + var followersList = document.getElementById('FollowersList'); + + var followerItems = followersList.getElementsByClassName('follower-item'); + // 濡傛灉浼犲叆浜� index 鍙傛暟锛屽垹闄ゆ寚瀹氱储寮曠殑鍏冪礌锛涘惁鍒欏垹闄ゆ渶鍚庝竴涓厓绱� + var elementToRemove = index !== undefined ? followerItems[index] : followersList.lastElementChild; + if (elementToRemove) { + elementToRemove.remove(); + } + followersList = document.getElementById('FollowersList'); + let len=followersList.children.length; + + // 鏇存柊鍓╀綑鍏冪礌鐨� name 灞炴�у拰绱㈠紩 + var newFollowerCount = 1; + for (var i = 0; i < len; i++) { + var item = followerItems[i]; + var followerIdInput = item.querySelector('input[name^="FollowerID_"]'); + var followerNameInput = item.querySelector('input[name^="FollowerName_"]'); + var followerRatioInput = item.querySelector('input[name^="FollowerRatio_"]'); + if (followerIdInput) { + followerIdInput.name = `FollowerID_${newFollowerCount}`; + followerIdInput.id = `FollowerId_${newFollowerCount}`; + } + if (followerNameInput) { + followerNameInput.name = `FollowerName_${newFollowerCount}`; + followerNameInput.id = `FollowerName_${newFollowerCount}`; + } + if (followerRatioInput) { + followerRatioInput.name = `FollowerRatio_${newFollowerCount}`; + followerRatioInput.id = `FollowerRatio_${newFollowerCount}`; + } + newFollowerCount++; + } + if(followersList.children.length==0){ + document.getElementById("followerDiv").style.display="none"; + document.getElementById("inputTopAddFollower").style.display=""; + } + addFollowerCount(-1); + return false; + } + function addFollowerCount(val){ + var hid=document.getElementById("hidFollowerCount"); + var oldv=hid.value; + hid.value=parseInt(oldv)+val; + } + + </script> <%If isDepartment("070127")=1 Then%> <div class="field"> <%'涓昏浼佸井瀹㈡湇 @@ -1483,22 +1766,30 @@ <script LANGUAGE="javascript"> //鐢熸垚鍜ㄨ鍗�(鏂板) function form1_submit19_1(){ - document.form1.action = "admin_save.gds"; - document.form1.admin_save.value = "19"; - document.form1.NEWOrder.value = ""; - document.form1.ServiceOrdState.value = "1"; - document.getElementById("zhezhao").style.display="block"; - document.getElementById("login").style.display="block"; - form1.submit(); + let checkResult=checkOpenerAndFollower(); + if(!checkResult){ + return; + } + document.form1.action = "admin_save.gds"; + document.form1.admin_save.value = "19"; + document.form1.NEWOrder.value = ""; + document.form1.ServiceOrdState.value = "1"; + document.getElementById("zhezhao").style.display="block"; + document.getElementById("login").style.display="block"; + form1.submit(); } //鐢熸垚鏈嶅姟鍗�(鏂板) function form1_submit19_2(){ - document.form1.action = "admin_save.gds"; - document.form1.admin_save.value = "19"; - document.form1.ServiceOrdState.value = "2"; - document.getElementById("zhezhao").style.display="block"; - document.getElementById("login").style.display="block"; - form1.submit(); + let checkResult=checkOpenerAndFollower(); + if(!checkResult){ + return; + } + document.form1.action = "admin_save.gds"; + document.form1.admin_save.value = "19"; + document.form1.ServiceOrdState.value = "2"; + document.getElementById("zhezhao").style.display="block"; + document.getElementById("login").style.display="block"; + form1.submit(); } //鐢熸垚鏃犳晥鐢佃瘽(鏂板) function form1_submit19_4(){ @@ -1527,6 +1818,10 @@ } //鐢熸垚/淇濆瓨鏈嶅姟鍗�(淇敼) function form1_submit20_2(){ + let checkResult=checkOpenerAndFollower(); + if(!checkResult){ + return; + } document.getElementById("MessageContents_form1").value=document.getElementById("MessageContents").value; document.form1.action = "admin_save.gds"; document.form1.admin_save.value = "20"; diff --git a/admin_save.gds b/admin_save.gds index 0c14d20..d88bfc6 100644 --- a/admin_save.gds +++ b/admin_save.gds @@ -1050,8 +1050,9 @@ rs.close() ServiceOrdNo = ServiceOrdClass& year(now())&Right("0"&month(now()),2)&Right("0"&day(now()),2) & "-"&Right("00"&ServiceOrdNo,3) - - +'淇濆瓨寮�鍗曚汉鍙婃彁鎴愭瘮渚嬬殑鍑芥暟 +SaveOpenerCommission ServiceOrdID +SaveFollowers ServiceOrdID '鍜ㄨ鍗曡浆涓烘湇鍔″崟('鑷姩瀹℃牳) If ServiceOrdState="2" then sql="update ServiceOrder set ServiceOrd_NS_ID="&session("adminID")&",ServiceOrd_NS_Time=getdate(),ServiceOrd_AP_Check=1,ServiceOrd_AP_Time=getdate(),ServiceOrd_AP_ID="&session("adminID")&" where ServiceOrdID="&ServiceOrdID @@ -1314,7 +1315,9 @@ ServiceOrd_Check = SafeRequest(Request.form("ServiceOrd_Check")) '褰撳墠瀹℃牳鎿嶄綔 EditDataForm = SafeRequest(Request.form("EditDataForm")) '褰撳墠淇敼椤圭洰 - +'淇濆瓨寮�鍗曚汉鍙婃彁鎴愭瘮渚嬬殑鍑芥暟 +SaveOpenerCommission ServiceOrdID +SaveFollowers ServiceOrdID Call RequestForm(Origin) session("Origin")=Origin @@ -1836,6 +1839,7 @@ End If End If + Response.Redirect ReturnURL&"&SystemMessageType=3&SMT="&SMT Response.End%> @@ -2063,8 +2067,6 @@ sql="update DispatchOrd set DispatchOrdTraSDTime='"&DispatchOrdTraSDTime&"' where DispatchOrdID="&DispatchOrdID objConn.Execute sql End If -SaveOpenerCommission DispatchOrdID -SaveFollowers DispatchOrdID '鍐欏叆闄勫姞椤圭洰璐圭敤 If AddMoneyType<>"" And AddMoneyType<>"0" And AddMoney>0 And StretcherMoney>0 Then @@ -2409,8 +2411,7 @@ ServiceOrdTraEnd = SafeRequest(Request.form("ServiceOrdTraEnd")) '杞叆鍦板潃 EditDataForm = SafeRequest(Request.form("EditDataForm")) '褰撳墠淇敼椤圭洰 -SaveOpenerCommission DispatchOrdID -SaveFollowers DispatchOrdID + If ServiceOrdTraStreet<>"" Then DispatchOrdTraStreet=ServiceOrdTraStreet If ServiceOrdTraVia<>"" Then DispatchOrdTraVia=ServiceOrdTraVia diff --git a/web.config b/web.config index 2ee158a..2930d14 100644 --- a/web.config +++ b/web.config @@ -17,7 +17,7 @@ <remove name="FastCGI" /> <add name="gds" path="*.gds" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\System32\inetsrv\asp.dll" resourceType="File" preCondition="bitness64" /> <add name="FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="D:\project\鎬ユ晳杞繍\code\php\php-cgi.exe" resourceType="File" requireAccess="Script" /> - <add name="php" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\php\php-cgi.exe" resourceType="File" requireAccess="Script" /> + </handlers> <httpErrors errorMode="DetailedLocalOnly" /> -- Gitblit v1.9.1