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