From 1ce68427c1d414c39261a26bca710fbf4fd9a6e5 Mon Sep 17 00:00:00 2001
From: hzj <1831054011@qq.com>
Date: 星期四, 14 八月 2025 09:56:11 +0800
Subject: [PATCH] feat:新增旧单据编号搜索单据和修改福祉车价格计算

---
 admin_save.gds        |    5 ++
 API/v3/OrderPrice.gds |   20 +++++-----
 ServiceOrder.gds      |   17 ++++++++
 OrdSearch.gds         |   19 +++++++++
 ServiceOrder_List.gds |   21 ++++++----
 camepay               |    1 
 6 files changed, 63 insertions(+), 20 deletions(-)

diff --git a/API/v3/OrderPrice.gds b/API/v3/OrderPrice.gds
index b832f77..8ceb106 100644
--- a/API/v3/OrderPrice.gds
+++ b/API/v3/OrderPrice.gds
@@ -287,19 +287,19 @@
 		If IRid<>0 Then
 			'鎵嬪姩鎶ヤ环
 			If InStr(Address,"鐧戒簯鏈哄満")>0 Or InStr(Address,"鐧戒簯鍥介檯鏈哄満")>0 Then
-				IRPrice=489
+				IRPrice=298
 				IRlimit1=5
 				IRDtPrice=6	
 			ElseIf InStr(Address,"骞垮窞鍗楃珯")>0 Then
-				IRPrice=389
+				IRPrice=298
 				IRlimit1=5
 				IRDtPrice=6
 			ElseIf InStr(Address,"骞垮窞鐧戒簯绔�")>0 Then
-				IRPrice=389
+				IRPrice=298
 				IRlimit1=5
 				IRDtPrice=6
 			ElseIf InStr(Address,"骞垮窞涓滅珯")>0 Then
-				IRPrice=359
+				IRPrice=298
 				IRlimit1=5
 				IRDtPrice=6
 			'ElseIf StartArea="鐧戒簯鍖�" Then
@@ -307,15 +307,15 @@
 			'	IRlimit1=5
 			'	IRDtPrice=6
 			elseIf StartArea="瓒婄鍖�" Or StartArea="鑽旀咕鍖�" Or StartArea="娴风彔鍖�" Or StartArea="澶╂渤鍖�"  Or StartArea="榛勫煍鍖�"  Or StartArea="鐧戒簯鍖�" Then
-				IRPrice=169
+				IRPrice=99
 				IRlimit1=5
 				IRDtPrice=6
 			elseif StartArea="鐣鍖�" Then
-				IRPrice=219
+				IRPrice=99
 				IRlimit1=5
 				IRDtPrice=6
 			ElseIf StartArea="鑺遍兘鍖�" Then
-				IRPrice=169
+				IRPrice=99
 				IRlimit1=5
 				IRDtPrice=6
 			ElseIf StartArea="澧炲煄鍖�" And  Isluxury="0" Then
@@ -338,7 +338,7 @@
 				IRDtPrice=6
 				IsOrdinary="1"
 			ElseIf StartArea="鍗楁矙鍖�" And Isluxury="1" Then
-				IRPrice=359
+				IRPrice=99
 				IRlimit1=5
 				IRDtPrice=6
 				IsOrdinary="1"
@@ -390,7 +390,7 @@
 				OrderPriceFRM = OrderPriceFRM & "+"&WaitingInt&"*"&IRWaitingCost
 				OrderPriceTXT = OrderPriceTXT&"绛夊緟璐圭敤:"&WaitingInt*IRWaitingCost&"鍏僜n"
 			End If
-			If ServiceOrdApptDate<>"" Then	'闈炲伐浣滄椂闂存湇鍔¤垂鐢�20250624锛屽懆涓�~鍛ㄤ簲鏅氫笂22鐐瑰悗鑷虫棭涓�7鐐规暣鍓嶄负1.3鍊�
+			If ServiceOrdApptDate<>"" Then	'闈炲伐浣滄椂闂存湇鍔¤垂鐢�20250812锛屽懆涓�~鍛ㄤ簲鏅氫笂21鐐�30鍒嗗悗鑷虫棭涓�7鐐规暣鍓嶄负1.3鍊�
 				sql="select SpecialRatio from SpecialDates where SpecialDates='"&formatdatetime(ServiceOrdApptDate,2)&"'"
 				rs.open sql,objConn,1,1
 				if not rs.Eof Then
@@ -398,7 +398,7 @@
 					OrderPriceFRM = OrderPriceFRM & OrderPrice*(SpecialRatio-1)
 					OrderPriceTXT = OrderPriceTXT&"鑺傚亣鏃ユ椂闂存湇鍔¤垂鐢�:"&OrderPrice*(SpecialRatio-1)&"鍏僜n"
 					OrderPrice=OrderPrice*SpecialRatio
-				ElseIf (hour(ServiceOrdApptDate)>=22 Or hour(ServiceOrdApptDate)<7)  Then
+				ElseIf (hour(ServiceOrdApptDate)>=21 And minute(ServiceOrdApptDate)>=30) Or hour(ServiceOrdApptDate)<7  Then
 					OrderPriceFRM = OrderPriceFRM & OrderPrice*0.3
 					OrderPriceTXT = OrderPriceTXT&"闈炲伐浣滄椂闂存湇鍔¤垂鐢�:"&OrderPrice*0.3&"鍏僜n"
 					OrderPrice=OrderPrice*1.3
diff --git a/OrdSearch.gds b/OrdSearch.gds
index 5753390..1b0db3e 100644
--- a/OrdSearch.gds
+++ b/OrdSearch.gds
@@ -45,6 +45,25 @@
 		searchSql=" CONVERT(VARCHAR(10),ServiceOrd_CC_Time,120)=CONVERT(VARCHAR(10),'"&Year(now())&"-"&Mid(searchTXT,1,2)&"-"&Mid(searchTXT,3,2)&"',120) and Right('00'+convert(varchar(3),ServiceOrdNo),3)='"&Right(searchTXT,3)&"' "
 	ElseIf OrdSearchType="1" And Len(searchTXT)=5 And IsNumeric(searchTXT) Then
 		searchSql=" CONVERT(VARCHAR(10),ServiceOrd_CC_Time,120)=CONVERT(VARCHAR(10),'"&Year(now())&"-"&Right("0"&Month(now()),2)&"-"&Mid(searchTXT,1,2)&"',120) and Right('00'+convert(varchar(3),ServiceOrdNo),3)='"&Right(searchTXT,3)&"' "
+	ElseIf Len(searchTXT)=14 And Mid(searchTXT,11,1)="-" Then
+    searchSql=" Old_ServiceOrdID_TXT='"&searchTXT&"' "
+    ' 濡傛灉閫氳繃Old_ServiceOrdID_TXT鎵惧埌璁板綍锛屽垯浣跨敤ServiceOrdID閲嶆柊鎼滅储
+    Set rsOld = Server.CreateObject("ADODB.Recordset")
+    rsOld.Open "select top 1 ServiceOrdID from ServiceOrder where " & searchSql, objConn, 1, 1
+    If Not rsOld.EOF Then
+      Dim foundServiceOrdID
+      foundServiceOrdID = rsOld("ServiceOrdID")
+      rsOld.Close
+      Set rsOld = Nothing
+      ' 浣跨敤鎵惧埌鐨凷erviceOrdID閲嶆柊鎼滅储
+      Response.Redirect "/ServiceOrder_List.gds?h_menu1_1=1&UnitNameID=0&OrdClassList=0&searchTXT="&foundServiceOrdID
+      Response.End()
+    Else
+      rsOld.Close
+      Set rsOld = Nothing
+      ' 鍘熸湁14浣嶇紪鍙锋媶鍒嗛�昏緫
+      searchSql=" ServiceOrdClass='"&Left(searchTXT,2)&"' and CONVERT(VARCHAR(10),ServiceOrd_CC_Time,120)=CONVERT(VARCHAR(10),'"&Mid(searchTXT,3,4)&"-"&Mid(searchTXT,7,2)&"-"&Mid(searchTXT,9,2)&"',120) and Right('00'+convert(varchar(3),ServiceOrdNo),3)='"&Right(searchTXT,3)&"' "
+    End If
 	ElseIf Len(searchTXT)=14 And Not IsNumeric(Left(searchTXT,2)) And IsNumeric(Mid(searchTXT,3,8)) And IsNumeric(Right(searchTXT,3)) And Mid(searchTXT,11,1)="-" Then
 		searchSql=" ServiceOrdClass='"&Left(searchTXT,2)&"' and CONVERT(VARCHAR(10),ServiceOrd_CC_Time,120)=CONVERT(VARCHAR(10),'"&Mid(searchTXT,3,4)&"-"&Mid(searchTXT,7,2)&"-"&Mid(searchTXT,9,2)&"',120) and Right('00'+convert(varchar(3),ServiceOrdNo),3)='"&Right(searchTXT,3)&"' "
 	ElseIf Len(searchTXT)=10 And IsNumeric(searchTXT) Then
diff --git a/ServiceOrder.gds b/ServiceOrder.gds
index 0d7ee52..4720add 100644
--- a/ServiceOrder.gds
+++ b/ServiceOrder.gds
@@ -125,6 +125,7 @@
 		OrderLevel			= rs("OrderLevel")				'鏌ョ湅绛夌骇
 		ServiceOrd_AP_Check	= rs("ServiceOrd_AP_Check")
 		IsLocking			= rs("IsLocking")			'璐㈠姟閿佸畾
+		Old_ServiceOrdID_TXT = rs("Old_ServiceOrdID_TXT") '鍘熷鍗曟嵁缂栧彿
 		ServiceOrdNo			= ServiceOrdClass& year(rs("ServiceOrd_CC_Time"))&Right("0"&month(rs("ServiceOrd_CC_Time")),2)&Right("0"&day(rs("ServiceOrd_CC_Time")),2) & "-"&Right("00"&rs("ServiceOrdNo"),3)
 		If InStr(session("admin_OrderClass"),ServiceOrdClass)>0 Or isDepartment("070109")=1 Then 
 			Call OA_Running("鎵撳紑鏈嶅姟鍗�:"&ServiceOrdNo&" ID:"&ServiceOrdID)
@@ -1529,7 +1530,21 @@
 								<input name="ServiceOrd_work_ID" type="hidden" value="<%=ServiceOrd_work_ID%>">
 								<input name="ServiceOrd_work_IDs" type="hidden" value="<%=ServiceOrd_work_IDs%>">
 							<%End If%>
-							
+							<div class="field">			            
+								<div class="label" style="float: left;margin-left: 0px;">
+								<label for="input-small">鍘熷鍗曟嵁缂栧彿:</label></div>					
+<div class="input" style="float:left;margin-left: 84px;">
+	<input type="text" id="Old_ServiceOrdID_TXT" name="Old_ServiceOrdID_TXT" 
+    class="small <% If ServiceOrdState=4 Then %>error<% Else %>valid<% End If %>"
+    style="width: 98px;"
+    value="<% If Old_ServiceOrdID_TXT <> "" Then %>
+            <%=Server.HTMLEncode(Old_ServiceOrdID_TXT)%>
+          <% Else %>
+            [鏈叧鑱擼
+          <% End If %>">
+								</div> 
+								</div>
+
 				<%If OrderLevel<>1 Or isDepartment("020111")=1 Then%>
 						<!-- 鏈嶅姟鍗曟暟鎹� -->
 						<!--#INCLUDE FILE="ServiceOrder_Data.gds" -->
diff --git a/ServiceOrder_List.gds b/ServiceOrder_List.gds
index 692ec29..13bd567 100644
--- a/ServiceOrder_List.gds
+++ b/ServiceOrder_List.gds
@@ -759,9 +759,11 @@
 				searchSql=" CONVERT(VARCHAR(10),ServiceOrd_CC_Time,120)=CONVERT(VARCHAR(10),'"&Year(now())&"-"&Right("0"&Month(now()),2)&"-"&Mid(searchTXT,1,2)&"',120) and Right('00'+convert(varchar(3),ServiceOrdNo),3)='"&Right(searchTXT,3)&"' "
 			  ElseIf Len(searchTXT)=14 And Not IsNumeric(Left(searchTXT,2)) And IsNumeric(Mid(searchTXT,3,8)) And IsNumeric(Right(searchTXT,3)) And Mid(searchTXT,11,1)="-" Then
 				searchSql=" ServiceOrdClass='"&Left(searchTXT,2)&"' and CONVERT(VARCHAR(10),ServiceOrd_CC_Time,120)=CONVERT(VARCHAR(10),'"&Mid(searchTXT,3,4)&"-"&Mid(searchTXT,7,2)&"-"&Mid(searchTXT,9,2)&"',120) and Right('00'+convert(varchar(3),ServiceOrdNo),3)='"&Right(searchTXT,3)&"' "
-			  ElseIf Len(searchTXT)=10 And IsNumeric(searchTXT) Then
-				searchSql=" ServiceOrdID="&Right(searchTXT,10)&" "
-			  ElseIf Mid(searchTXT,1,4)="out|" Then	' and DispatchOrdState in (8)
+			  ElseIf Len(searchTXT)=14 And Mid(searchTXT,11,1)="-" Then
+    searchSql=" Old_ServiceOrdID_TXT='"&searchTXT&"' "
+  ElseIf Len(searchTXT)=10 And IsNumeric(searchTXT) Then
+    searchSql=" ServiceOrdID="&Right(searchTXT,10)&" "
+  ElseIf Mid(searchTXT,1,4)="out|" Then	' and DispatchOrdState in (8)
 				searchSql=" (ServiceOrdPtOutHosp in (select vid from dictionary where vType=1 and vtitle='HospName' and vtext='"&Mid(searchTXT,5)&"')) and ServiceOrd_CC_Time "&SqlOrdDateType
 			  ElseIf Mid(searchTXT,1,3)="in|" Then
 				searchSql=" (ServiceOrdPtInHosp in (select vid from dictionary where vType=1 and vtitle='HospName' and vtext='"&Mid(searchTXT,4)&"')) and ServiceOrd_CC_Time "&SqlOrdDateType
@@ -872,7 +874,7 @@
 			'缁勬垚璁$畻鎬婚〉鏁癝QL
 			total_sql = "select ServiceOrdID "&sqlWhere
 			'缁勬垚鏄剧ず缁撴灉SQL
-			Result_sql = "select ServiceOrdID,ServiceOrdNo,ServiceOrdClass,ServiceOrdAreaType,ServiceOrdType,ServiceOrdState,ServiceOrdStartDate,ServiceOrdApptDate,ServiceOrdCoName,ServiceOrdCoPhone,ServiceOrdPtAge,ServiceOrdPtSex,ServiceOrdTraProvince,ServiceOrdTraCity,ServiceOrdTraStreet,ServiceOrdTraEnd,ServiceOrdTraVia,ServiceOrdTraDistance,ServiceOrdTraSDTime,ServiceOrdTraTxnPrice,ServiceOrd_CC_ID,ServiceOrd_CC_Time,ServiceOrd_NS_ID,ServiceOrd_NS_Time,ServiceOrd_AP_Check,ServiceOrd_AP_ID,ServiceOrd_AP_Time,ServiceOrdVIP,ServiceOrdUnitID,ServiceOrdUnitRemarks,ServiceOrdIntroducer,ServiceOrdOperationRemarks,ServiceOrdPtOutHospID,ServiceOrdPtOutHosp,ServiceOrdPtInHospID,ServiceOrdPtInHosp,ServiceOrdCancelReasonTXT,ServiceOrdCancelReason,FromHQ_is,ServiceOrd_Sale_ID,ServiceOrdPoints,row_number() over (order by ServiceOrdID desc) n  "&sqlWhere
+			Result_sql = "select ServiceOrdID,ServiceOrdNo,ServiceOrdClass,ServiceOrdAreaType,ServiceOrdType,ServiceOrdState,ServiceOrdStartDate,ServiceOrdApptDate,ServiceOrdCoName,ServiceOrdCoPhone,ServiceOrdPtAge,ServiceOrdPtSex,ServiceOrdTraProvince,ServiceOrdTraCity,ServiceOrdTraStreet,ServiceOrdTraEnd,ServiceOrdTraVia,ServiceOrdTraDistance,ServiceOrdTraSDTime,ServiceOrdTraTxnPrice,ServiceOrd_CC_ID,ServiceOrd_CC_Time,ServiceOrd_NS_ID,ServiceOrd_NS_Time,ServiceOrd_AP_Check,ServiceOrd_AP_ID,ServiceOrd_AP_Time,ServiceOrdVIP,ServiceOrdUnitID,ServiceOrdUnitRemarks,ServiceOrdIntroducer,ServiceOrdOperationRemarks,ServiceOrdPtOutHospID,ServiceOrdPtOutHosp,ServiceOrdPtInHospID,ServiceOrdPtInHosp,ServiceOrdCancelReasonTXT,ServiceOrdCancelReason,FromHQ_is,ServiceOrd_Sale_ID,ServiceOrdPoints,Old_ServiceOrdID_TXT,row_number() over (order by ServiceOrdID desc) n  "&sqlWhere
 			'闄勫姞缁撴灉SQL
 			Additional_sql = ",StretcherMoney=isnull((select sum(StretcherMoney) from DispatchOrd where ServiceOrdIDDt=ServiceOrdID),0),ContractMode_is=isnull((select COUNT(id) from ServiceOrd_TransferMode where ServiceOrdTMID=ServiceOrdID and TransferModeID=7),0),UserPointsCost=isnull((select sum(Points_Score) from UserPoints where Points_State<>4 and Points_Type=1 and ServiceOrdIDDt=ServiceOrdID),0)"
 
@@ -989,11 +991,12 @@
 			  ServiceOrdCancelReason= rs("ServiceOrdCancelReason")
 			  FromHQ_is				= rs("FromHQ_is")				'鏄惁鏈夎浆鍐呴儴杞彂
 			  ContractMode_is		= rs("ContractMode_is")			'鏄惁鎵垮寘缁勪换鍔�
-			  If isDepartment("010401")=0 Then
-				ServiceOrdNo			= ServiceOrdClass& year(rs("ServiceOrd_CC_Time"))&Right("0"&month(rs("ServiceOrd_CC_Time")),2)&Right("0"&day(rs("ServiceOrd_CC_Time")),2) & "-"&Right("00"&rs("ServiceOrdNo"),3)
-			  Else
-				ServiceOrdNo	= ServiceOrdClass&ServiceOrdID
-			  End If
+			  Old_ServiceOrdID_TXT	= rs("Old_ServiceOrdID_TXT")	'鏃ф湇鍔″崟鍙�
+  If isDepartment("010401")=0 Then
+	ServiceOrdNo = ServiceOrdClass& year(rs("ServiceOrd_CC_Time"))&Right("0"&month(rs("ServiceOrd_CC_Time")),2)&Right("0"&day(rs("ServiceOrd_CC_Time")),2) & "-"&Right("00"&rs("ServiceOrdNo"),3)
+  Else
+	ServiceOrdNo	= ServiceOrdClass&ServiceOrdID
+  End If
 
 			  i=i+1
 
diff --git a/admin_save.gds b/admin_save.gds
index e821f28..cf5812d 100644
--- a/admin_save.gds
+++ b/admin_save.gds
@@ -1053,6 +1053,11 @@
 
 SaveOpenerCommission ServiceOrdID
 SaveFollowers ServiceOrdID
+' 鏂板鏉′欢鏇存柊璇彞
+sql = "UPDATE ServiceOrder SET Old_ServiceOrdID_TXT = '" & Replace(ServiceOrdNo, "'", "''") & "' " & _
+      "WHERE ServiceOrdID = " & ServiceOrdID & " AND (Old_ServiceOrdID_TXT IS NULL OR Old_ServiceOrdID_TXT = '[鏈叧鑱擼')"
+objConn.Execute sql
+
 '鍜ㄨ鍗曡浆涓烘湇鍔″崟('鑷姩瀹℃牳)
 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
diff --git a/camepay b/camepay
new file mode 160000
index 0000000..9b8a715
--- /dev/null
+++ b/camepay
@@ -0,0 +1 @@
+Subproject commit 9b8a7157bb9c401de973a4107f74ff3e723ec156

--
Gitblit v1.9.1