From a027508b5818236d0a46bc7036394c63978a68b0 Mon Sep 17 00:00:00 2001
From: yzh <snbbt@21cn.com>
Date: 星期二, 10 五月 2022 11:44:32 +0800
Subject: [PATCH] 充值功能优化,客户表增加余额、订单表增加充值金额

---
 web/web/Bin/Dao.dll                                        |    0 
 web/Dao/GwOrderDao.cs                                      |   14 ++-
 web/Lib/Model.pdb                                          |    0 
 web/Model/obj/Debug/Model.pdb                              |    0 
 web/Dao/obj/Debug/Dao.csproj.FileListAbsolute.txt          |    1 
 web/Dao/obj/Debug/Dao.pdb                                  |    0 
 web/Dao/GwClientDao.cs                                     |    7 +
 web/Lib/Dao.dll                                            |    0 
 web/web/GwOrderCreate.aspx.cs                              |   15 ++-
 web/Dao/obj/Debug/Dao.dll                                  |    0 
 web/Model/obj/Debug/Model.dll                              |    0 
 web/Dao/obj/Debug/Dao.csproj.AssemblyReference.cache       |    0 
 web/web/Bin/Model.pdb                                      |    0 
 web/.vs/Web/v16/.suo                                       |    0 
 web/Lib/Model.dll                                          |    0 
 web/web/GwOrder.ashx                                       |  118 ++++++++++++++++++++---------
 web/Model/Model/GwOrder.cs                                 |    2 
 web/UMCLib/obj/Debug/UMCLib.csproj.AssemblyReference.cache |    0 
 web/web/GwOrderCreate.aspx                                 |   30 ++++++-
 web/web/GwOrderAudit.aspx                                  |   35 ++++++--
 web/web/Bin/Model.dll                                      |    0 
 web/Lib/Dao.pdb                                            |    0 
 web/web/Bin/Dao.pdb                                        |    0 
 23 files changed, 160 insertions(+), 62 deletions(-)

diff --git a/web/.vs/Web/v16/.suo b/web/.vs/Web/v16/.suo
index e87f054..d2abaeb 100644
--- a/web/.vs/Web/v16/.suo
+++ b/web/.vs/Web/v16/.suo
Binary files differ
diff --git a/web/Dao/GwClientDao.cs b/web/Dao/GwClientDao.cs
index 2e72a86..6387790 100644
--- a/web/Dao/GwClientDao.cs
+++ b/web/Dao/GwClientDao.cs
@@ -155,6 +155,12 @@
             return OracleHelper.ExecuteSql("UPDATE GW_SP SET ALARM_MOBILE=:ALARM_MOBILE,BALANCE_THRESHOLD=:BALANCE_THRESHOLD WHERE CLIENT_ID=:CLIENT_ID", OracleHelper.Connection, new OracleParameter(":ALARM_MOBILE", (object)client.AlarmMobile), new OracleParameter(":BALANCE_THRESHOLD", (object)client.BalanceThreshold), new OracleParameter(":CLIENT_ID", (object)client.ClientID)) > 0;
         }
 
+        //鏇存柊鍏呭�奸噾棰滱MOUNT
+        public bool UpdateClientAmount(GwClient client)
+        {
+            return OracleHelper.ExecuteSql("UPDATE GW_CLIENT SET BALANCE=:BALANCE, TOP_UP_AMOUNT_TOTAL=:TOP_UP_AMOUNT_TOTAL WHERE CLIENT_ID=:CLIENT_ID", OracleHelper.Connection, new OracleParameter(":BALANCE", (object)client.Balance), new OracleParameter(":TOP_UP_AMOUNT_TOTAL", (object)client.Top_up_Amount_Total), new OracleParameter(":CLIENT_ID", (object)client.ClientID)) > 0;
+        }
+
         /// <summary>
         /// 鏇存柊璐﹀彿鐨勪俊鎭�
         /// </summary>
@@ -266,6 +272,7 @@
             o.Agent = oracleReaderWrapper.GetString("AGENT", "");
             o.AlarmMobile = oracleReaderWrapper.GetString("ALARM_MOBILE", "");
             o.BalanceThreshold = oracleReaderWrapper.GetInt("BALANCE_THRESHOLD", 0);
+            o.Balance = oracleReaderWrapper.GetInt("BALANCE", 0);
             o.PermissionData = oracleReaderWrapper.GetString("PERMISSION_DATA", "");
             o.Id = oracleReaderWrapper.GetInt("ID", 0);
             o.Certification_Status = oracleReaderWrapper.GetInt("CERTIFICATION_STATUS", 0);
diff --git a/web/Dao/GwOrderDao.cs b/web/Dao/GwOrderDao.cs
index 0d9c47f..5c5090f 100644
--- a/web/Dao/GwOrderDao.cs
+++ b/web/Dao/GwOrderDao.cs
@@ -170,11 +170,11 @@
         {
             StringBuilder stringBuilder = new StringBuilder();
             stringBuilder.Append("INSERT INTO GW_ORDER ( ");
-            stringBuilder.Append(" ORDER_ID, SP_ID, CLIENT_ID, PRODUCT_ID, COMBO_ID, BASIC_NUM, GIVING_NUM, PRICE, ORDER_NUM_TOTAL, ORDER_AMOUNT_TOTAL, BEFORE_BALANCE_NUM ");
+            stringBuilder.Append(" ORDER_ID, SP_ID, CLIENT_ID, PRODUCT_ID, COMBO_ID, BASIC_NUM, GIVING_NUM, PRICE, ORDER_NUM_TOTAL, ORDER_AMOUNT_TOTAL, PAY_AMOUNT, BEFORE_BALANCE_NUM ");
             stringBuilder.Append(" , CREATOR, CREATE_TIME, STATUS, REMARK ");
             //stringBuilder.Append(" , AUDITOR, AUDIT_TIME ");
             stringBuilder.Append(" ) ");
-            stringBuilder.Append(" VALUES (:ORDER_ID, :SP_ID, :CLIENT_ID, :PRODUCT_ID, :COMBO_ID, :BASIC_NUM, :GIVING_NUM, :PRICE, :ORDER_NUM_TOTAL, :ORDER_AMOUNT_TOTAL, :BEFORE_BALANCE_NUM ");
+            stringBuilder.Append(" VALUES (:ORDER_ID, :SP_ID, :CLIENT_ID, :PRODUCT_ID, :COMBO_ID, :BASIC_NUM, :GIVING_NUM, :PRICE, :ORDER_NUM_TOTAL, :ORDER_AMOUNT_TOTAL, :PAY_AMOUNT, :BEFORE_BALANCE_NUM ");
             stringBuilder.Append(" , :CREATOR, :CREATE_TIME, :STATUS, :REMARK ");
             //stringBuilder.Append(" , :AUDITOR, :AUDIT_TIME ");
             stringBuilder.Append("  ) ");
@@ -193,6 +193,7 @@
                 new OracleParameter(":PRICE", (object)o.Price),
                 new OracleParameter(":ORDER_NUM_TOTAL", (object)o.OrderNumTotal),
                 new OracleParameter(":ORDER_AMOUNT_TOTAL", (object)o.OrderAmountTotal),
+                new OracleParameter(":PAY_AMOUNT", (object)o.PayAmount),
                 new OracleParameter(":BEFORE_BALANCE_NUM", (object)o.BeforeBalanceNum),
                 new OracleParameter(":CREATOR", (object)o.Creator),
                 new OracleParameter(":CREATE_TIME", (object)o.CreateTime),
@@ -219,16 +220,17 @@
         }
 
         //鏇存柊璁㈠崟淇敼鍓嶄綑棰�
-        public bool UpdateBalanceAndStatus(int basicNum, int givingNum, int orderNumTotal, int orderAmountTotal, int beforeGivingNum , int orderStatus, string orderId )
+        public bool UpdateBalanceAndStatus(int basicNum, int givingNum, int orderNumTotal, int orderAmountTotal, int payAmount , int beforeGivingNum, int orderStatus, string orderId )
         {
             if (string.IsNullOrEmpty(orderId))
                 return false;
             //status:4-鍙栨秷
-            return OracleHelper.ExecuteSql("update GW_ORDER SET BASIC_NUM=:BASIC_NUM, GIVING_NUM=:GIVING_NUM, ORDER_NUM_TOTAL=:ORDER_NUM_TOTAL, ORDER_AMOUNT_TOTAL=:ORDER_AMOUNT_TOTAL, BEFORE_BALANCE_NUM=:BEFORE_BALANCE_NUM, STATUS = :STATUS where ORDER_ID=:ORDER_ID", OracleHelper.Connection
+            return OracleHelper.ExecuteSql("update GW_ORDER SET BASIC_NUM=:BASIC_NUM, GIVING_NUM=:GIVING_NUM, ORDER_NUM_TOTAL=:ORDER_NUM_TOTAL, ORDER_AMOUNT_TOTAL=:ORDER_AMOUNT_TOTAL, PAY_AMOUNT=:PAY_AMOUNT, BEFORE_BALANCE_NUM=:BEFORE_BALANCE_NUM, STATUS = :STATUS where ORDER_ID=:ORDER_ID", OracleHelper.Connection
                 , new OracleParameter(":BASIC_NUM", (object)basicNum)
                 , new OracleParameter(":GIVING_NUM", (object)givingNum)
                 , new OracleParameter(":ORDER_NUM_TOTAL", (object)orderNumTotal)
                 , new OracleParameter(":ORDER_AMOUNT_TOTAL", (object)orderAmountTotal)
+                , new OracleParameter(":PAY_AMOUNT", (object)payAmount)
                 , new OracleParameter(":BEFORE_BALANCE_NUM", (object)beforeGivingNum)
                 , new OracleParameter(":STATUS", (object)orderStatus)
                 , new OracleParameter(":ORDER_ID", (object)orderId)
@@ -249,6 +251,7 @@
                 new OracleParameter(":PRICE", (object)o.Price),
                 new OracleParameter(":ORDER_NUM_TOTAL", (object)o.OrderNumTotal),
                 new OracleParameter(":ORDER_AMOUNT_TOTAL", (object)o.OrderAmountTotal),
+                new OracleParameter(":PAY_AMOUNT", (object)o.PayAmount),
                 new OracleParameter(":BEFORE_BALANCE_NUM", (object)o.BeforeBalanceNum),
                 new OracleParameter(":CREATOR", (object)o.Creator),
                 new OracleParameter(":CREATE_TIME", (object)o.CreateTime),
@@ -264,7 +267,7 @@
             stringBuilder.Append(" , PRODUCT_ID =:PRODUCT_ID ");
             stringBuilder.Append(" , COMBO_ID =:COMBO_ID ");
             stringBuilder.Append(" , BASIC_NUM=:BASIC_NUM, GIVING_NUM=:GIVING_NUM, PRICE=:PRICE, ORDER_NUM_TOTAL=:ORDER_NUM_TOTAL, ORDER_AMOUNT_TOTAL=:ORDER_AMOUNT_TOTAL ");
-            stringBuilder.Append(" , BEFORE_BALANCE_NUM =:BEFORE_BALANCE_NUM, CREATOR=:CREATOR, CREATE_TIME=:CREATE_TIME ");
+            stringBuilder.Append(" , PAY_AMOUNT =:PAY_AMOUNT, BEFORE_BALANCE_NUM =:BEFORE_BALANCE_NUM, CREATOR=:CREATOR, CREATE_TIME=:CREATE_TIME ");
             stringBuilder.Append(" , STATUS=:STATUS, REMARK=:REMARK ");
             stringBuilder.Append(" WHERE ORDER_ID=:ORDER_ID ");
 
@@ -311,6 +314,7 @@
             o.Price = oracleReaderWrapper.GetInt("PRICE", 0);
             o.OrderNumTotal = oracleReaderWrapper.GetInt("ORDER_NUM_TOTAL", 0);
             o.OrderAmountTotal = oracleReaderWrapper.GetInt("ORDER_AMOUNT_TOTAL", 0);
+            o.PayAmount = oracleReaderWrapper.GetInt("PAY_AMOUNT", 0);
             o.BeforeBalanceNum = oracleReaderWrapper.GetInt("BEFORE_BALANCE_NUM", 0);
             o.Creator = oracleReaderWrapper.GetString("CREATOR", "");
             o.CreateTime = oracleReaderWrapper.GetDateTime("CREATE_TIME");
diff --git a/web/Dao/obj/Debug/Dao.csproj.AssemblyReference.cache b/web/Dao/obj/Debug/Dao.csproj.AssemblyReference.cache
index 747cbcc..bddb077 100644
--- a/web/Dao/obj/Debug/Dao.csproj.AssemblyReference.cache
+++ b/web/Dao/obj/Debug/Dao.csproj.AssemblyReference.cache
Binary files differ
diff --git a/web/Dao/obj/Debug/Dao.csproj.FileListAbsolute.txt b/web/Dao/obj/Debug/Dao.csproj.FileListAbsolute.txt
index 33649b6..45be178 100644
--- a/web/Dao/obj/Debug/Dao.csproj.FileListAbsolute.txt
+++ b/web/Dao/obj/Debug/Dao.csproj.FileListAbsolute.txt
@@ -7,7 +7,6 @@
 D:\Company\SMGW_NewWeb\web\Dao\obj\Debug\Dao.pdb
 C:\AYZH\work\Git_Rep\SMGW_NewWeb\web\Lib\Dao.dll
 C:\AYZH\work\Git_Rep\SMGW_NewWeb\web\Lib\Dao.pdb
-C:\AYZH\work\Git_Rep\SMGW_NewWeb\web\Dao\obj\Debug\Dao.csproj.AssemblyReference.cache
 C:\AYZH\work\Git_Rep\SMGW_NewWeb\web\Dao\obj\Debug\Dao.csproj.CoreCompileInputs.cache
 C:\AYZH\work\Git_Rep\SMGW_NewWeb\web\Dao\obj\Debug\Dao.csproj.CopyComplete
 C:\AYZH\work\Git_Rep\SMGW_NewWeb\web\Dao\obj\Debug\Dao.dll
diff --git a/web/Dao/obj/Debug/Dao.dll b/web/Dao/obj/Debug/Dao.dll
index 5894de4..463204a 100644
--- a/web/Dao/obj/Debug/Dao.dll
+++ b/web/Dao/obj/Debug/Dao.dll
Binary files differ
diff --git a/web/Dao/obj/Debug/Dao.pdb b/web/Dao/obj/Debug/Dao.pdb
index a28080c..5b8ba2a 100644
--- a/web/Dao/obj/Debug/Dao.pdb
+++ b/web/Dao/obj/Debug/Dao.pdb
Binary files differ
diff --git a/web/Lib/Dao.dll b/web/Lib/Dao.dll
index 5894de4..463204a 100644
--- a/web/Lib/Dao.dll
+++ b/web/Lib/Dao.dll
Binary files differ
diff --git a/web/Lib/Dao.pdb b/web/Lib/Dao.pdb
index a28080c..5b8ba2a 100644
--- a/web/Lib/Dao.pdb
+++ b/web/Lib/Dao.pdb
Binary files differ
diff --git a/web/Lib/Model.dll b/web/Lib/Model.dll
index f8609b7..26230f0 100644
--- a/web/Lib/Model.dll
+++ b/web/Lib/Model.dll
Binary files differ
diff --git a/web/Lib/Model.pdb b/web/Lib/Model.pdb
index 94b2a97..8b3f111 100644
--- a/web/Lib/Model.pdb
+++ b/web/Lib/Model.pdb
Binary files differ
diff --git a/web/Model/Model/GwOrder.cs b/web/Model/Model/GwOrder.cs
index e3ff54f..cad08b0 100644
--- a/web/Model/Model/GwOrder.cs
+++ b/web/Model/Model/GwOrder.cs
@@ -29,6 +29,8 @@
 
         public int OrderAmountTotal { get; set; }
 
+        public int PayAmount { get; set; }
+
         public int BeforeBalanceNum { get; set; }
 
         public string Creator { get; set; }
diff --git a/web/Model/obj/Debug/Model.dll b/web/Model/obj/Debug/Model.dll
index f8609b7..26230f0 100644
--- a/web/Model/obj/Debug/Model.dll
+++ b/web/Model/obj/Debug/Model.dll
Binary files differ
diff --git a/web/Model/obj/Debug/Model.pdb b/web/Model/obj/Debug/Model.pdb
index 94b2a97..8b3f111 100644
--- a/web/Model/obj/Debug/Model.pdb
+++ b/web/Model/obj/Debug/Model.pdb
Binary files differ
diff --git a/web/UMCLib/obj/Debug/UMCLib.csproj.AssemblyReference.cache b/web/UMCLib/obj/Debug/UMCLib.csproj.AssemblyReference.cache
index 519d9ba..bf88f7e 100644
--- a/web/UMCLib/obj/Debug/UMCLib.csproj.AssemblyReference.cache
+++ b/web/UMCLib/obj/Debug/UMCLib.csproj.AssemblyReference.cache
Binary files differ
diff --git a/web/web/Bin/Dao.dll b/web/web/Bin/Dao.dll
index 5894de4..463204a 100644
--- a/web/web/Bin/Dao.dll
+++ b/web/web/Bin/Dao.dll
Binary files differ
diff --git a/web/web/Bin/Dao.pdb b/web/web/Bin/Dao.pdb
index a28080c..5b8ba2a 100644
--- a/web/web/Bin/Dao.pdb
+++ b/web/web/Bin/Dao.pdb
Binary files differ
diff --git a/web/web/Bin/Model.dll b/web/web/Bin/Model.dll
index f8609b7..26230f0 100644
--- a/web/web/Bin/Model.dll
+++ b/web/web/Bin/Model.dll
Binary files differ
diff --git a/web/web/Bin/Model.pdb b/web/web/Bin/Model.pdb
index 94b2a97..8b3f111 100644
--- a/web/web/Bin/Model.pdb
+++ b/web/web/Bin/Model.pdb
Binary files differ
diff --git a/web/web/GwOrder.ashx b/web/web/GwOrder.ashx
index 30c4bfd..63ae6de 100644
--- a/web/web/GwOrder.ashx
+++ b/web/web/GwOrder.ashx
@@ -9,6 +9,7 @@
 {
     private GwOrderDao _Dao = new GwOrderDao();
     private GwSpDao _GwSpDao = new GwSpDao();
+    private GwClientDao _GwClientDao = new GwClientDao();
     private GwOpGroupDao _GwOpGroupDao = new GwOpGroupDao();
     private GwProductDao _GwProductDao = new GwProductDao();
     private SysXhDao _SysXhDao = new SysXhDao();
@@ -286,6 +287,10 @@
         string orderId = context.GetString("orderId");
         int basicNum = context.GetInt("basicNum");
         int givingNum = context.GetInt("givingNum");
+        string clientId = "";
+        int payAmount = 0;
+        int tmpPayAmount = Math.Max((int) (context.GetDecimal("payAmount", new Decimal(4, 0, 0, false, (byte) 2)) * new Decimal(1000)), 1);
+        payAmount = tmpPayAmount;
         //double price = context.GetDecimal(price);
         int num = Math.Max((int) (context.GetDecimal("price", new Decimal(4, 0, 0, false, (byte) 2)) * new Decimal(1000)), 1);
         string remark = context.GetString("remark");
@@ -307,7 +312,7 @@
         if (gwOrder.Status !=0 && gwOrder.Status !=1)
             throw new ArgumentException("璇ヨ鍗曞凡澶勭悊,鎿嶄綔澶辫触锛�");
 
-
+        clientId = gwOrder.ClientId;
 
         //鑾峰彇璁㈠崟瀹℃牳娴佺▼
         string flowGroup = null;    //娴佺▼缁勫悎
@@ -417,10 +422,11 @@
         }
         else if(status==1)
         {
-                int beforeBasicNum = 0;
-                int beforeGivingNum = 0;
-                int balance = 0;
-            if(string.IsNullOrEmpty(nextFlowCode))
+            int beforeBasicNum = 0;
+            int beforeGivingNum = 0;
+            int balance = 0;
+            int topUpAmountTotal = 0;
+            if (string.IsNullOrEmpty(nextFlowCode))
             {
                 orderStatus = 2;
 
@@ -429,12 +435,17 @@
 
                 beforeBasicNum = gwSp.BasicNum;
                 beforeGivingNum = gwSp.GivingNum;
-                balance = Convert.ToInt32(gwSp.Balance);
+                //balance = Convert.ToInt32(gwSp.Balance);
 
-                    //涓�1-棰勪粯璐�
-                if (gwSp.ChargeType.Equals("1") && gwSp.Balance < num * basicNum )
+                //鑾峰彇瀹㈡埛淇℃伅
+                GwClient gwClient = _GwClientDao.Get(gwSp.ClientID);
+                balance =  int.Parse(gwClient.Balance.ToString() );
+                topUpAmountTotal = int.Parse(gwClient.Top_up_Amount_Total.ToString() );
+
+                //涓�1-棰勪粯璐�
+                if (gwSp.ChargeType==1 && (balance + payAmount) < num * basicNum)
                 {
-                        throw new ArgumentException("璐﹀彿浣欓涓嶈冻锛岃鑱旂郴绠$悊鍛橈紒");
+                    throw new ArgumentException("瀹㈡埛浣欓鍙婂厖鍊奸噾棰濅笉瓒宠喘涔帮紝璇疯皟鏁村悗鎻愪氦锛�");
                 }
 
                 //gwSp.Balance = balance - num * basicNum;
@@ -446,6 +457,18 @@
                     , beforeGivingNum + givingNum
                     , spId
                     );
+
+
+                //鏈夊厖鍊奸噾棰濇椂锛屾洿鏂板鎴风疮璁″厖鍊奸噾棰濓紙鍘橈級
+                if (payAmount > 0) {
+                    //GwClient gwClient = new GwClient();
+                    gwClient = new GwClient();
+                    gwClient.Top_up_Amount_Total = topUpAmountTotal + payAmount;    //绱閲戦:鍗曚綅锛堝帢锛�
+                    gwClient.Balance = ((balance + payAmount) - num * basicNum) ;   //璐︽埛浣欓:鍗曚綅锛堝帢锛�
+                    gwClient.ClientID = clientId;
+
+                    _GwClientDao.UpdateClientAmount(gwClient);
+                }
             }
             else
             {
@@ -462,8 +485,8 @@
             //newGwOrder.OrderAmountTotal = basicNum * num ;
             //newGwOrder.BeforeBalanceNum = beforeGivingNum + beforeGivingNum;
             //newGwOrder.Status = orderStatus;
-                //鏇存柊璁㈠崟
-               _Dao.UpdateBalanceAndStatus(basicNum, givingNum, basicNum + givingNum, basicNum * num, beforeGivingNum + beforeGivingNum,orderStatus, orderId );
+            //鏇存柊璁㈠崟
+            _Dao.UpdateBalanceAndStatus(basicNum, givingNum, basicNum + givingNum, basicNum * num, payAmount,  beforeGivingNum + beforeGivingNum, orderStatus, orderId );
 
             //Dao.Update(newGwOrder);
 
@@ -496,6 +519,7 @@
 
         int orderNumTotal = context.GetInt("orderNumTotal", 0);
         int orderAmountTotal = context.GetInt("orderAmountTotal", 0);
+        int payAmount = 0;
         int beforeBalanceNum = context.GetInt("beforeBalanceNum", 0);
         //瀹㈡湇浜哄憳鎻愪氦璁㈠崟鏃剁殑鐘舵�佷负1-瀹℃牳涓��
         int status = 1; //0-寰呭鏍革紙宸叉彁浜わ級锛�1-瀹℃牳涓紱2-瀹℃牳閫氳繃锛�3-瀹℃牳涓嶉�氳繃锛�4-鍙栨秷锛涚敵璇疯鍗曞湪鏈鏍告儏鍐典笅鍙互鍙栨秷銆�
@@ -503,6 +527,8 @@
         DateTime createTime = DateTime.Now;
         string creator = context.OperatorID;
 
+        int tmpPayAmount = Math.Max((int) (context.GetDecimal("payAmount", new Decimal(4, 0, 0, false, (byte) 2)) * new Decimal(1000)), 1);
+        payAmount = tmpPayAmount;
         int num = Math.Max((int) (context.GetDecimal("price", new Decimal(4, 0, 0, false, (byte) 2)) * new Decimal(1000)), 1);
         price = num;
 
@@ -523,9 +549,32 @@
             throw new ArgumentException("璐﹀彿涓嶈兘涓虹┖锛�");
         }
 
-        if (basicNum<=0 && givingNum <= 0)
+        if (basicNum<=0 && givingNum <= 0 && payAmount <=0)
         {
-            throw new ArgumentException("鍩烘湰鏉℃暟鎴栬禒閫佹潯鏁板繀椤诲ぇ浜庨浂锛�");
+            throw new ArgumentException("鍏呭�奸噾棰濇垨鍩烘湰鏉℃暟鎴栬禒閫佹潯鏁板繀椤诲ぇ浜庨浂锛�");
+        }
+
+        //鑾峰彇璐﹀彿淇℃伅
+        GwSp gwSp = _GwSpDao.Get(spId);
+        int balance = 0;
+        if (gwSp == null)
+        {
+            throw new ArgumentException("璐﹀彿涓嶅瓨鍦紒");
+        }
+        else if (gwSp.Status==0)
+        {
+            throw new ArgumentException("璐﹀彿宸茬鐢紒");
+        }
+
+
+        //鑾峰彇瀹㈡埛淇℃伅
+        GwClient gwClient = _GwClientDao.Get(gwSp.ClientID);
+        balance =  int.Parse(gwClient.Balance.ToString() );
+
+        //涓�1-棰勪粯璐�
+        if (gwSp.ChargeType==1 && (balance + payAmount) < num * basicNum)
+        {
+            throw new ArgumentException("瀹㈡埛浣欓鍙婂厖鍊奸噾棰濅笉瓒宠喘涔帮紝璇疯皟鏁村悗鎻愪氦锛�");
         }
 
         //鑾峰彇璁㈠崟瀹℃牳娴佺▼
@@ -588,18 +637,6 @@
             throw new ArgumentException("鐢ㄦ埛娌℃湁鍏呭�兼潈闄愶紝璇疯仈绯荤鐞嗗憳锛�");
         }
 
-
-        //鑾峰彇璁㈠崟淇℃伅
-        GwSp gwSp = _GwSpDao.Get(spId);
-        if (gwSp == null)
-        {
-            throw new ArgumentException("璐﹀彿涓嶅瓨鍦紒");
-        }
-        else if (gwSp.Status==0)
-        {
-            throw new ArgumentException("璐﹀彿宸茬鐢紒");
-        }
-
         productId = gwSp.ProductId;
         price = gwSp.Price;
 
@@ -620,6 +657,7 @@
             Price = price,    //鍗曚环鎹㈢畻
             OrderNumTotal = orderNumTotal,
             OrderAmountTotal = orderAmountTotal,
+            PayAmount = payAmount,
             BeforeBalanceNum = beforeBalanceNum,
             Status = status,
             Remark = remark,
@@ -628,19 +666,22 @@
 
         });
 
-
-        string auditId = _SysXhDao.getXh("GW_ORDER_AUDIT");  //鑾峰彇鐢熸垚璁㈠崟瀹℃牳ID
-        this._GwOrderAuditDao.Add(new GwOrderAudit()
+        //娴佺▼缁勫悎涓虹┖鏃�
+        if (!string.IsNullOrEmpty(flowGroup))
         {
-            AuditId = auditId,
-            OrderId = orderId,
-            AuditSort = sort,
-            AuditStatus = status,
-            Auditor = creator,
-            //AuditReason = null,
-            AuditTime = createTime
+            string auditId = _SysXhDao.getXh("GW_ORDER_AUDIT");  //鑾峰彇鐢熸垚璁㈠崟瀹℃牳ID
+            this._GwOrderAuditDao.Add(new GwOrderAudit()
+            {
+                AuditId = auditId,
+                OrderId = orderId,
+                AuditSort = sort,
+                AuditStatus = status,
+                Auditor = creator,
+                //AuditReason = null,
+                AuditTime = createTime
 
-        });
+            });
+        }
 
 
         return new JsonPageResult(true, "鐢熸垚璁㈠崟淇℃伅鎴愬姛锛�");
@@ -660,11 +701,15 @@
 
         int orderNumTotal = context.GetInt("orderNumTotal", 0);
         int orderAmountTotal = context.GetInt("orderAmountTotal", 0);
+        int payAmount = 0;
         int beforeBalanceNum = context.GetInt("beforeBalanceNum", 0);
         int status = 0;
         string remark = context.GetString("remark");
         DateTime createTime = DateTime.Now;
         string creator = context.OperatorID;
+
+        int tmpPayAmount = Math.Max((int) (context.GetDecimal("payAmount", new Decimal(4, 0, 0, false, (byte) 2)) * new Decimal(1000)), 1);
+        payAmount = tmpPayAmount;
 
         int num = Math.Max((int) (context.GetDecimal("price", new Decimal(4, 0, 0, false, (byte) 2)) * new Decimal(1000)), 1);
         price = num;
@@ -703,6 +748,7 @@
             Price = price,    //鍗曚环鎹㈢畻
             OrderNumTotal = orderNumTotal,
             OrderAmountTotal = orderAmountTotal,
+            PayAmount = payAmount,
             BeforeBalanceNum = beforeBalanceNum,
             Status = status,
             Remark = remark,
diff --git a/web/web/GwOrderAudit.aspx b/web/web/GwOrderAudit.aspx
index 738d998..8a35dea 100644
--- a/web/web/GwOrderAudit.aspx
+++ b/web/web/GwOrderAudit.aspx
@@ -51,6 +51,7 @@
                 $("#orderDialog #price").val(r.Message.Price / 1000, 0.00).attr("readonly", "readonly");
                 $("#orderDialog #orderNumTotal").val(r.Message.OrderNumTotal, 0).attr("readonly", "readonly");
                 $("#orderDialog #orderAmountTotal").val(r.Message.OrderAmountTotal / 1000, 0).attr("readonly", "readonly");
+                $("#orderDialog #payAmount").val(r.Message.PayAmount / 1000, 0).attr("readonly", "readonly");
                 $("#orderDialog #beforeBalanceNum").val(r.Message.BeforeBalanceNum, 0).attr("readonly", "readonly");
                 $("#orderDialog #creator").val(r.Message.Creator).attr("readonly", "readonly");
                 $("#orderDialog #createTime").val(r.Message.CreateTime).attr("readonly", "readonly");
@@ -83,11 +84,12 @@
                 $("#orderDialog #clientId").val(r.Message.ClientId).attr("disabled", "disabled");
                 $("#orderDialog #productId").val(r.Message.ProductId).attr("disabled", "disabled");
                 //$("#orderDialog #comboId").val(r.Message.ComboId);
-                $("#orderDialog #basicNum").val(r.Message.BasicNum, 0).attr("readonly", "readonly");
-                $("#orderDialog #givingNum").val(r.Message.GivingNum, 0).attr("readonly", "readonly");
+                $("#orderDialog #basicNum").val(r.Message.BasicNum, 0).attr("readonly", false);
+                $("#orderDialog #givingNum").val(r.Message.GivingNum, 0).attr("readonly", false);
                 $("#orderDialog #price").val(r.Message.Price / 1000, 0.00).attr("readonly", "readonly");
                 $("#orderDialog #orderNumTotal").val(r.Message.OrderNumTotal, 0).attr("readonly", "readonly");
                 $("#orderDialog #orderAmountTotal").val(r.Message.OrderAmountTotal / 1000, 0).attr("readonly", "readonly");
+                $("#orderDialog #payAmount").val(r.Message.PayAmount / 1000, 0).attr("readonly", false);
                 $("#orderDialog #beforeBalanceNum").val(r.Message.BeforeBalanceNum, 0).attr("readonly", "readonly");
                 $("#orderDialog #creator").val(r.Message.Creator).attr("readonly", "readonly");
                 $("#orderDialog #createTime").val(r.Message.CreateTime).attr("readonly", "readonly");
@@ -141,11 +143,12 @@
             var orderId = $("#orderId").val();
             var basicNum = $("#basicNum").val();
             var givingNum = $("#givingNum").val();
+            var payAmount = $("#payAmount").val();            
             var price = $("#price").val();
             var auditReason = $("#auditReason").val();
             mytek.confirm("鏄惁纭畾瀹℃牳閫氳繃璇ヤ俊鎭紵", "鏁版嵁鏇存柊鍚庡皢鏃犳硶鎭㈠锛岃璋ㄦ厧鎿嶄綔锛�", function (b) {
                 if (b) {
-                    $.post("gwOrder.ashx", { "action": "audit", status: 1, spId: spId, orderId: orderId, basicNum: basicNum, givingNum: givingNum, price: price, auditReason: auditReason }, function (result) {
+                    $.post("gwOrder.ashx", { "action": "audit", status: 1, spId: spId, orderId: orderId, basicNum: basicNum, givingNum: givingNum, payAmount: payAmount, price: price, auditReason: auditReason }, function (result) {
                         mytek.alert(result.Message, result.OK, function () {
                             loadPageList();
                         });
@@ -161,11 +164,12 @@
             var orderId = $("#orderId").val();
             var basicNum = $("#basicNum").val();
             var givingNum = $("#givingNum").val();
+            var payAmount = $("#payAmount").val();
             var price = $("#price").val();
             var auditReason = $("#auditReason").val();
             mytek.confirm("鏄惁纭畾瀹℃牳涓嶉�氳繃璇ヤ俊鎭紵", "鏁版嵁鏇存柊鍚庡皢鏃犳硶鎭㈠锛岃璋ㄦ厧鎿嶄綔锛�", function (b) {
                 if (b) {
-                    $.post("gwOrder.ashx", { "action": "audit", status: 0, spId: spId, orderId: orderId, basicNum: basicNum, givingNum: givingNum, price: price, auditReason: auditReason }, function (result) {
+                    $.post("gwOrder.ashx", { "action": "audit", status: 0, spId: spId, orderId: orderId, basicNum: basicNum, givingNum: givingNum, payAmount: payAmount, price: price, auditReason: auditReason }, function (result) {
                         mytek.alert(result.Message, result.OK, function () {
                             loadPageList();
                         });
@@ -336,7 +340,7 @@
                                 璁㈠崟鍩烘湰鏉℃暟</label>
                             <div class="col-sm-4">
                                 <div class="input-group">
-                                <input type="text" class="form-control" name="basicNum" id="basicNum" value="" maxlength="5"
+                                <input type="text" class="form-control" name="basicNum" id="basicNum" value="" maxlength="10"
                                     onkeyup="value=value.replace(/[^\d\.]/g,'')" onpaste="value=value.replace(/[^\d\.]/g,'')"
                                     oncontextmenu="return false" /><span class="input-group-addon">鏉� </span>
                                 </div>
@@ -347,7 +351,7 @@
                                 璁㈠崟璧犻�佹潯鏁�</label>
                             <div class="col-sm-4">
                                 <div class="input-group">
-                                <input type="text" class="form-control" name="givingNum" id="givingNum" value="" maxlength="5"
+                                <input type="text" class="form-control" name="givingNum" id="givingNum" value="" maxlength="10"
                                     onkeyup="value=value.replace(/[^\d\.]/g,'')" onpaste="value=value.replace(/[^\d\.]/g,'')"
                                     oncontextmenu="return false" /><span class="input-group-addon">鏉� </span>
                                 </div>
@@ -358,7 +362,7 @@
                                 鍗曚环</label>
                             <div class="col-sm-4">
                                 <div class="input-group">
-                                    <input type="text" class="form-control" name="price" id="price" value="" maxlength="5"
+                                    <input type="text" class="form-control" name="price" id="price" value="" maxlength="10"
                                         onkeyup="value=value.replace(/[^\d\.]/g,'')" onpaste="value=value.replace(/[^\d\.]/g,'')"
                                         oncontextmenu="return false" /><span class="input-group-addon">鍏�/鏉� </span>
                                 </div>
@@ -369,7 +373,7 @@
                                 璁㈠崟鎬绘潯鏁�</label>
                             <div class="col-sm-4">
                                 <div class="input-group">
-                                <input type="text" class="form-control" name="orderNumTotal" id="orderNumTotal" value="" maxlength="5"
+                                <input type="text" class="form-control" name="orderNumTotal" id="orderNumTotal" value="" maxlength="10"
                                     onkeyup="value=value.replace(/[^\d\.]/g,'')" onpaste="value=value.replace(/[^\d\.]/g,'')"
                                     oncontextmenu="return false" /><span class="input-group-addon">鏉� </span>
                                 </div>
@@ -380,7 +384,18 @@
                                 璁㈠崟鎬婚噾棰�</label>
                             <div class="col-sm-4">
                                 <div class="input-group">
-                                <input type="text" class="form-control" name="orderAmountTotal" id="orderAmountTotal" value="" maxlength="5"
+                                <input type="text" class="form-control" name="orderAmountTotal" id="orderAmountTotal" value="" maxlength="10"
+                                    onkeyup="value=value.replace(/[^\d\.]/g,'')" onpaste="value=value.replace(/[^\d\.]/g,'')"
+                                    oncontextmenu="return false" /><span class="input-group-addon">鍏� </span>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <label class="col-sm-2 control-label">
+                                鍏呭�奸噾棰�</label>
+                            <div class="col-sm-4">
+                                <div class="input-group">
+                                <input type="text" class="form-control" name="payAmount" id="payAmount" value="" maxlength="10"
                                     onkeyup="value=value.replace(/[^\d\.]/g,'')" onpaste="value=value.replace(/[^\d\.]/g,'')"
                                     oncontextmenu="return false" /><span class="input-group-addon">鍏� </span>
                                 </div>
@@ -391,7 +406,7 @@
                                 鍏呭�煎墠璐﹀彿浣欓</label>
                             <div class="col-sm-4">
                                 <div class="input-group">
-                                <input type="text" class="form-control" name="beforeBalanceNum" id="beforeBalanceNum" value="" maxlength="5"
+                                <input type="text" class="form-control" name="beforeBalanceNum" id="beforeBalanceNum" value="" maxlength="10"
                                     onkeyup="value=value.replace(/[^\d\.]/g,'')" onpaste="value=value.replace(/[^\d\.]/g,'')"
                                     oncontextmenu="return false" /><span class="input-group-addon">鏉� </span>
                                 </div>
diff --git a/web/web/GwOrderCreate.aspx b/web/web/GwOrderCreate.aspx
index 43cd897..e4fe91d 100644
--- a/web/web/GwOrderCreate.aspx
+++ b/web/web/GwOrderCreate.aspx
@@ -76,7 +76,7 @@
                     </div>
                     <div class="form-group classes-span classes-span-1">
                         <label class="col-sm-2 control-label">
-                            鐢ㄦ埛浣欓</label>
+                            瀹㈡埛浣欓</label>
                         <div class="col-sm-6">
                             <div class="input-group">
                                 <input type="text" class="form-control" value="<%=(double)Balance/1000 %>" 
@@ -85,12 +85,23 @@
                             </div>
                         </div>
                     </div>
+                    <div class="form-group classes-span classes-span-1">
+                        <label class="col-sm-2 control-label">
+                            鍏呭�奸噾棰�</label>
+                        <div class="col-sm-6">
+                            <div class="input-group">
+                                <input type="text" class="form-control" name="payAmount" id="payAmount" value="" maxlength="10"
+                                    onkeyup="value=value.replace(/[^\d\.]/g,'')" onpaste="value=value.replace(/[^\d\.]/g,'')"
+                                    oncontextmenu="return false" /><span class="input-group-addon">鍏� </span>
+                            </div>
+                        </div>
+                    </div>
                     <div class="form-group">
                         <label class="col-sm-2 control-label">
                             璁㈠崟鍩烘湰鏉℃暟</label>
                         <div class="col-sm-6">
                             <div class="input-group">
-                            <input type="text" class="form-control" name="basicNum" id="basicNum" value="" maxlength="5"
+                            <input type="text" class="form-control" name="basicNum" id="basicNum" value="" maxlength="10"
                                 onkeyup="value=value.replace(/[^\d\.]/g,'')" onpaste="value=value.replace(/[^\d\.]/g,'')"
                                 oncontextmenu="return false" /><span class="input-group-addon">鏉� </span>
                             </div>
@@ -101,7 +112,7 @@
                             璁㈠崟璧犻�佹潯鏁�</label>
                         <div class="col-sm-6">
                             <div class="input-group">
-                            <input type="text" class="form-control" name="givingNum" id="givingNum" value="" maxlength="5"
+                            <input type="text" class="form-control" name="givingNum" id="givingNum" value="" maxlength="10"
                                 onkeyup="value=value.replace(/[^\d\.]/g,'')" onpaste="value=value.replace(/[^\d\.]/g,'')"
                                 oncontextmenu="return false" /><span class="input-group-addon">鏉� </span>
                             </div>
@@ -131,7 +142,9 @@
 
             var spId = $("#spId").val();
             var clientId = $("#clientId").val();
-            var productId = $("#productId").val();
+            var productId = $("#productId").val();            
+            var price = $("#price").val();
+            var payAmount = $("#payAmount").val();
             var basicNum = $("#basicNum").val();
             var givingNum = $("#givingNum").val();
             var remark = $("#remark").val();
@@ -140,9 +153,14 @@
 
                 if (b) {
 
-                    $.post("gwOrder.ashx", { action: "add", spId: spId, clientId: clientId, productId: productId, basicNum: basicNum, givingNum: givingNum, remark: remark }, function (r) {
+                    $.post("gwOrder.ashx", { action: "add", spId: spId, clientId: clientId, productId: productId, price: price, payAmount:payAmount, basicNum: basicNum, givingNum: givingNum, remark: remark }, function (r) {
+
                         mytek.alert(r.Message, r.OK, function () {
-                            //loadPageList();
+                            if (r.OK) {
+                                window.location = "GwSp.aspx";
+                            } else {
+                                mytek.alert(r.Message, false);
+                            }
                         });
 
                     });
diff --git a/web/web/GwOrderCreate.aspx.cs b/web/web/GwOrderCreate.aspx.cs
index 749e8ae..89b4cc8 100644
--- a/web/web/GwOrderCreate.aspx.cs
+++ b/web/web/GwOrderCreate.aspx.cs
@@ -50,9 +50,16 @@
                     throw new ArgumentException("璐﹀彿鐘舵�佸凡鍋滅敤锛�");
 
                 }
-                else
+
+
+                GwClient gwClient = new GwClient();
+                using (GwClientDao gwClientDao = new GwClientDao())
                 {
-                    this.GwOrder = new GwOrder();
+                    gwClient = gwClientDao.Get(gwSp.ClientID);
+                }
+
+
+                this.GwOrder = new GwOrder();
                     this.GwOrder.SpId = gwSp.SpID;
                     this.GwOrder.ClientId = gwSp.ClientID;
                     this.GwOrder.ProductId = gwSp.ProductId;
@@ -60,8 +67,8 @@
                     this.GwOrder.BasicNum = gwSp.BasicNum;  //鍩烘湰鏉℃暟
                     this.GwOrder.GivingNum = gwSp.GivingNum;
 
-                    this.Balance = gwSp.Balance;    //浣欓
-                }
+                //this.Balance = gwSp.Balance;    //浣欓
+                this.Balance = long.Parse(gwClient.Balance.ToString() );    //浣欓
             }
             else
             {

--
Gitblit v1.9.1