From 770c739aeadfd1025bd6b64aa6790201b0b1047d Mon Sep 17 00:00:00 2001
From: wtt <1985833171@qq.com>
Date: 星期二, 22 四月 2025 13:02:59 +0800
Subject: [PATCH] Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API

---
 WebAPI/Controllers/项目管理/工程项目/PM_ProjectBillController.cs | 1703 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,682 insertions(+), 21 deletions(-)

diff --git "a/WebAPI/Controllers/\351\241\271\347\233\256\347\256\241\347\220\206/\345\267\245\347\250\213\351\241\271\347\233\256/PM_ProjectBillController.cs" "b/WebAPI/Controllers/\351\241\271\347\233\256\347\256\241\347\220\206/\345\267\245\347\250\213\351\241\271\347\233\256/PM_ProjectBillController.cs"
index 82f7912..748f631 100644
--- "a/WebAPI/Controllers/\351\241\271\347\233\256\347\256\241\347\220\206/\345\267\245\347\250\213\351\241\271\347\233\256/PM_ProjectBillController.cs"
+++ "b/WebAPI/Controllers/\351\241\271\347\233\256\347\256\241\347\220\206/\345\267\245\347\250\213\351\241\271\347\233\256/PM_ProjectBillController.cs"
@@ -10,7 +10,7 @@
 using System.Web.Http;
 using System.Windows.Forms;
 using WebAPI.Models;
-
+using SyntacticSugar.constant;
 namespace WebAPI.Controllers.椤圭洰绠$悊.宸ョ▼椤圭洰
 {
     public class PM_ProjectBillController : ApiController
@@ -34,11 +34,21 @@
         public DAL.ClsPM_ProjectMoneyBillMain BillNew4 = new DAL.ClsPM_ProjectMoneyBillMain();   //椤圭洰璐圭敤鍗曞搴斿崟鎹被
         public DAL.ClsPM_ProjectMoneyBillMain BillOld4 = new DAL.ClsPM_ProjectMoneyBillMain();
 
+        public DAL.ClsPM_ProjectBeginBillMain BillNew5 = new DAL.ClsPM_ProjectBeginBillMain();   //椤圭洰鍚姩鍗曞搴斿崟鎹被
+        public DAL.ClsPM_ProjectBeginBillMain BillOld5 = new DAL.ClsPM_ProjectBeginBillMain();
+
+        public DAL.ClsPM_ProjectEndBillMain BillNew6 = new DAL.ClsPM_ProjectEndBillMain();   //椤圭洰楠屾敹鍗曞搴斿崟鎹被
+        public DAL.ClsPM_ProjectEndBillMain BillOld6 = new DAL.ClsPM_ProjectEndBillMain();
+
+        public DAL.ClsGy_ProjectMoneyBOMBill BillNew7 = new DAL.ClsGy_ProjectMoneyBOMBill();   //椤圭洰璐圭敤娓呭崟瀵瑰簲鍗曟嵁绫�
+        public DAL.ClsGy_ProjectMoneyBOMBill BillOld7 = new DAL.ClsGy_ProjectMoneyBOMBill();
+
         #region 宸ョ▼椤圭洰 鏂板/缂栬緫
         #region 宸ョ▼椤圭洰 琛ㄥご鏁版嵁
         public class PM_ProjectBill_Main
         {
             public int HInterID;
+            public string HBillSubType;
             public string HBillNo;
             public string HProNumber;
             public string HProName;
@@ -89,6 +99,71 @@
             public string HPicNo;
             public string HWorkTask;
             public string HProjectNote;
+            public string HContacts;
+            public string HContactNumber;
+            public int HDeptID;
+
+            public int HSupplierID;                  //鍒嗗寘鍗曚綅锛坓y_supllier锛�
+            public int HMangerEmpID;                 //绠$悊鍛橈紙gy_Employee锛�
+            public string HMaterPlanDate;               //鏉愭枡璁″垝 
+            public int HWorkerID;                    //鏂藉伐鍛橈紙gy_Employee锛�
+            public double HPlanWorkTimes;               //璁″垝宸ユ湡
+            public double HRelWorkTimes;                //瀹為檯宸ユ湡
+            public string HTestDate;                    //璇曞帇鏃ユ湡
+            public int HTestCheckerID;               //璇曞帇楠屾敹浜猴紙gy_Employee锛�
+            public string HTestNote;                    //璇曞帇璁板綍锛堝瘜鏂囨湰锛�
+            public string HSewageDate;                  //鎺掓薄鏃ユ湡
+            public string HWaterSupplyDate;             //閫氭按鏃ユ湡
+            public string HWorkNote;                    //绔e伐璧勬枡锛堝瘜鏂囨湰锛�
+            public string HWorkProcNote;                //鏂藉伐瀹屾垚鎯呭喌锛堝瘜鏂囨湰锛�
+
+            public double HYuSuanMoney;                 //棰勭畻閫犱环
+            public double HHeTongMoney;                 //鍚堝悓閫犱环
+            public double HJieSuanMoney;                //缁撶畻閫犱环
+            public double HShenJiMoney;                 //瀹¤閫犱环
+            public double HCaiLiaoMoney;                //鏉愭枡璐�
+            public double HAnZhuangMoney;               //瀹夎璐�
+            public double HBanZuMoney;                  //鐝粍宸ヨ垂
+            public double HYuShouKuanMoney;             //棰勬敹娆�
+            public double HGongFeiMoney;                //宸ヨ垂缁撹处
+            public double HJieZhangMoney;				//缁撶畻缁撹处
+
+            public int HTaskClassID; //浠诲姟澶х被(Gy_TaskClass)
+            public int HTaskClassEntryID; //浠诲姟椤圭洰鍒嗙被(Gy_TaskClass)
+            public string  HTaskAddress; //浠诲姟鍦扮偣 
+            public string  HBreakStatus; //鎹熷潖鎯呭喌 
+            public string  HWaterLeakage; //婕忔按閲� 
+            public string  HPipeDiameter; //绠″緞 
+            public string  HPipeMaterial; //绠¢亾鏉愯川 
+            public string  HAlarmEmp; //鎶ユ紡浜� 
+            public string  HAlarmLink; //鎶ユ紡浜鸿仈绯荤數璇� 
+            public string  HReceEmp; //鍙楃悊浜� 
+            public string  HReceTime; //鍙楃悊鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級 
+            public double HTaskMaterMoney; //浠诲姟鏉愭枡璐� 
+            public double HTaskSetupMoney; //浠诲姟瀹夎璐� 
+            public double HTaskOtherMoney; //浠诲姟闄勫睘璐� 
+            public double HTaskExamMoney; //浠诲姟鑰冩牳璐� 
+            public double HTaskWorkMoney; //浠诲姟宸ヨ垂 
+            public bool  HIsAccount; //鏄惁缁撹处(澶嶉�夋)
+            public string  HAccountDate; //缁撶畻缁撹处鏃ユ湡 
+            public string  HAccountWorkMoneyDate; //宸ヨ垂缁撹处鏃ユ湡 
+            public bool HIsCheckExam; //鏄惁瀹℃牳鑰冩牳璐�(澶嶉�夋)
+            public bool HIsCheckWorkMoney; //鏄惁瀹℃牳宸ヨ垂(澶嶉�夋)
+            public string  HInfoBackTime; //鍥炲鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級 
+            public string HInfoBackMan; //鍥炲浜� 
+            public string HInfoNote; //鍥炲鍐呭(瀵屾枃鏈級 
+            public string  HTaskBTime; //浠诲姟寮�濮嬫椂闂达紙骞存湀鏃ユ椂鍒嗙锛� 
+            public string  HTaskETime; //浠诲姟瀹屽伐鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級 
+            public string  HTaskNote; //浠诲姟璇︾粏鍐呭锛堝瘜鏂囨湰锛� 
+            public string  HTaskWorkEmp; //宸ヤ綔浜哄憳锛堝瘜鏂囨湰锛� 
+            public string  HBeginCloseValveTime; //寮�濮嬪叧闃�鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級 
+            public string  HEndCloseValveTime; //缁撴潫鍏抽榾鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級
+            public long  HCloseValveQty; //鍏抽榾鍙暟
+            public string  HBeginOpenValveTime; //寮�濮嬪紑闃�鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級 
+            public string  HEndOpenValveTime; //缁撴潫寮�闃�鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級 
+            public long HOpenValveQty; //寮�闃�鍙暟
+            public string  HValveWorkEmp; //鎿嶄綔浜哄憳
+            public string  HTaskRemark; //浠诲姟澶囨敞锛堝瘜鏂囨湰锛�
 
         }
         #endregion
@@ -204,7 +279,7 @@
                 int HYear = int.Parse(mainList[0].HDate.Split('-')[0]);
                 int HPeriod = int.Parse(mainList[0].HDate.Split('-')[1]);
                 string HBillType = "4750";
-                string HBillSubType = "";
+                string HBillSubType = mainList[0].HBillSubType;
                 int HInterID = mainList[0].HInterID;
                 string HDate = mainList[0].HDate;
                 string HBillNo = mainList[0].HBillNo;
@@ -241,6 +316,73 @@
                 string HPicNo = mainList[0].HPicNo;
                 string HWorkTask = mainList[0].HWorkTask;
                 string HProjectNote = mainList[0].HProjectNote;
+                string HContacts = mainList[0].HContacts;
+                string HContactNumber = mainList[0].HContactNumber;
+                int HDeptID = mainList[0].HDeptID;  //閮ㄩ棬
+
+                int HSupplierID = mainList[0].HSupplierID;                      //鍒嗗寘鍗曚綅锛坓y_supllier锛�
+                int HMangerEmpID = mainList[0].HMangerEmpID;                    //绠$悊鍛橈紙gy_Employee锛�
+                string HMaterPlanDate = mainList[0].HMaterPlanDate;             //鏉愭枡璁″垝 
+                int HWorkerID = mainList[0].HWorkerID;                          //鏂藉伐鍛橈紙gy_Employee锛�
+                double HPlanWorkTimes = mainList[0].HPlanWorkTimes;             //璁″垝宸ユ湡
+                double HRelWorkTimes = mainList[0].HRelWorkTimes;               //瀹為檯宸ユ湡
+                string HTestDate = mainList[0].HTestDate;                       //璇曞帇鏃ユ湡
+                int HTestCheckerID = mainList[0].HTestCheckerID;                //璇曞帇楠屾敹浜猴紙gy_Employee锛�
+                string HTestNote = mainList[0].HTestNote;                       //璇曞帇璁板綍锛堝瘜鏂囨湰锛�
+                string HSewageDate = mainList[0].HSewageDate;                   //鎺掓薄鏃ユ湡
+                string HWaterSupplyDate = mainList[0].HWaterSupplyDate;         //閫氭按鏃ユ湡
+                string HWorkNote = mainList[0].HWorkNote;                       //绔e伐璧勬枡锛堝瘜鏂囨湰锛�
+                string HWorkProcNote = mainList[0].HWorkProcNote;               //鏂藉伐瀹屾垚鎯呭喌锛堝瘜鏂囨湰锛�
+
+                double HYuSuanMoney = mainList[0].HYuSuanMoney;                 //棰勭畻閫犱环
+                double HHeTongMoney = mainList[0].HHeTongMoney;                 //鍚堝悓閫犱环
+                double HJieSuanMoney = mainList[0].HJieSuanMoney;               //缁撶畻閫犱环
+                double HShenJiMoney = mainList[0].HShenJiMoney;                 //瀹¤閫犱环
+                double HCaiLiaoMoney = mainList[0].HCaiLiaoMoney;               //鏉愭枡璐�
+                double HAnZhuangMoney = mainList[0].HAnZhuangMoney;             //瀹夎璐�
+                double HBanZuMoney = mainList[0].HBanZuMoney;                   //鐝粍宸ヨ垂
+                double HYuShouKuanMoney = mainList[0].HYuShouKuanMoney;         //棰勬敹娆�
+                double HGongFeiMoney = mainList[0].HGongFeiMoney;               //宸ヨ垂缁撹处
+                double HJieZhangMoney = mainList[0].HJieZhangMoney;				//缁撶畻缁撹处
+
+                int HTaskClassID = mainList[0].HTaskClassID; //浠诲姟澶х被(Gy_TaskClass)
+                int HTaskClassEntryID = mainList[0].HTaskClassEntryID; //浠诲姟椤圭洰鍒嗙被(Gy_TaskClass)
+                string HTaskAddress = mainList[0].HTaskAddress; //浠诲姟鍦扮偣 
+                string HBreakStatus = mainList[0].HBreakStatus; //鎹熷潖鎯呭喌 
+                string HWaterLeakage = mainList[0].HWaterLeakage; //婕忔按閲� 
+                string HPipeDiameter = mainList[0].HPipeDiameter; //绠″緞 
+                string HPipeMaterial = mainList[0].HPipeMaterial; //绠¢亾鏉愯川 
+                string HAlarmEmp = mainList[0].HAlarmEmp; //鎶ユ紡浜� 
+                string HAlarmLink = mainList[0].HAlarmLink; //鎶ユ紡浜鸿仈绯荤數璇� 
+                string HReceEmp = mainList[0].HReceEmp; //鍙楃悊浜� 
+                string HReceTime = mainList[0].HReceTime; //鍙楃悊鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級 
+                double HTaskMaterMoney = mainList[0].HTaskMaterMoney; //浠诲姟鏉愭枡璐� 
+                double HTaskSetupMoney = mainList[0].HTaskSetupMoney; //浠诲姟瀹夎璐� 
+                double HTaskOtherMoney = mainList[0].HTaskOtherMoney; //浠诲姟闄勫睘璐� 
+                double HTaskExamMoney = mainList[0].HTaskExamMoney; //浠诲姟鑰冩牳璐� 
+                double HTaskWorkMoney = mainList[0].HTaskWorkMoney; //浠诲姟宸ヨ垂 
+                bool HIsAccount = mainList[0].HIsAccount; //鏄惁缁撹处(澶嶉�夋)
+                string HAccountDate = mainList[0].HAccountDate; //缁撶畻缁撹处鏃ユ湡 
+                string HAccountWorkMoneyDate = mainList[0].HAccountWorkMoneyDate; //宸ヨ垂缁撹处鏃ユ湡 
+                bool HIsCheckExam = mainList[0].HIsCheckExam; //鏄惁瀹℃牳鑰冩牳璐�(澶嶉�夋)
+                bool HIsCheckWorkMoney = mainList[0].HIsCheckWorkMoney; //鏄惁瀹℃牳宸ヨ垂(澶嶉�夋)
+                string HInfoBackTime = mainList[0].HInfoBackTime; //鍥炲鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級 
+                string HInfoBackMan = mainList[0].HInfoBackMan; //鍥炲浜� 
+                string HInfoNote = mainList[0].HInfoNote; //鍥炲鍐呭(瀵屾枃鏈級 
+                string HTaskBTime = mainList[0].HTaskBTime; //浠诲姟寮�濮嬫椂闂达紙骞存湀鏃ユ椂鍒嗙锛� 
+                string HTaskETime = mainList[0].HTaskETime; //浠诲姟瀹屽伐鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級 
+                string HTaskNote = mainList[0].HTaskNote; //浠诲姟璇︾粏鍐呭锛堝瘜鏂囨湰锛� 
+                string HTaskWorkEmp = mainList[0].HTaskWorkEmp; //宸ヤ綔浜哄憳锛堝瘜鏂囨湰锛� 
+                string HBeginCloseValveTime = mainList[0].HBeginCloseValveTime; //寮�濮嬪叧闃�鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級 
+                string HEndCloseValveTime = mainList[0].HEndCloseValveTime; //缁撴潫鍏抽榾鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級
+                long HCloseValveQty = mainList[0].HCloseValveQty; //鍏抽榾鍙暟
+                string HBeginOpenValveTime = mainList[0].HBeginOpenValveTime; //寮�濮嬪紑闃�鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級 
+                string HEndOpenValveTime = mainList[0].HEndOpenValveTime; //缁撴潫寮�闃�鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級 
+                long HOpenValveQty = mainList[0].HOpenValveQty; //寮�闃�鍙暟
+                string HValveWorkEmp = mainList[0].HValveWorkEmp; //鎿嶄綔浜哄憳
+                string HTaskRemark = mainList[0].HTaskRemark; //浠诲姟澶囨敞锛堝瘜鏂囨湰锛�
+
+
                 if (OperationType == 2)
                 {
                     ds = oCN.RunProcReturn("select * from PM_ProjectBillMain where HBillNo ='" + HBillNo + "'", "PM_ProjectBillMain");
@@ -260,7 +402,9 @@
                 {
                     string sql = "insert into PM_ProjectBillMain" +
                         "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate,HBillNo,HBillStatus,HRemark,HMaker,HMakeDate,HProNumber,HProName,HCusID,HBeginDate,HEndDate,HSumMoney," +
-                        "HProMoney,HWorkMoney,HOtherMoney,HProType,HPMEmpID,HWorkEmpID,HDepEmpID,HConWorkDays,HDepDays,HLastMoney,HPayCusID,HOrgID,HMaterID,HProjectClassID,HBuildComp,HBuildAddress,HWorkNo,HReDate,HPicNo,HWorkTask,HProjectNote) " +
+                        "HProMoney,HWorkMoney,HOtherMoney,HProType,HPMEmpID,HWorkEmpID,HDepEmpID,HConWorkDays,HDepDays,HLastMoney,HPayCusID,HOrgID,HMaterID,HProjectClassID,HBuildComp,HBuildAddress,HWorkNo,HReDate,HPicNo,HWorkTask,HProjectNote,HContacts,HContactNumber" +
+                        ",HSupplierID,HMangerEmpID,HMaterPlanDate,HWorkerID,HPlanWorkTimes,HRelWorkTimes,HTestDate,HTestCheckerID,HTestNote,HSewageDate,HWaterSupplyDate,HWorkNote,HWorkProcNote,HYuSuanMoney,HHeTongMoney,HJieSuanMoney,HShenJiMoney,HCaiLiaoMoney,HAnZhuangMoney,HBanZuMoney,HYuShouKuanMoney,HGongFeiMoney,HJieZhangMoney," +
+                        "HTaskClassID,HTaskClassEntryID,HTaskAddress,HBreakStatus,HWaterLeakage,HPipeDiameter,HPipeMaterial,HAlarmEmp,HAlarmLink,HReceEmp,HReceTime,HTaskMaterMoney,HTaskSetupMoney,HTaskOtherMoney,HTaskExamMoney,HTaskWorkMoney,HIsAccount,HAccountDate,HAccountWorkMoneyDate,HIsCheckExam,HIsCheckWorkMoney,HInfoBackTime,HInfoBackMan,HInfoNote,HTaskBTime,HTaskETime,HTaskNote,HTaskWorkEmp,HBeginCloseValveTime,HEndCloseValveTime,HCloseValveQty,HBeginOpenValveTime,HEndOpenValveTime,HOpenValveQty,HValveWorkEmp,HTaskRemark,HDeptID)" +
                         "values(" +
                         "" + HYear +
                         "," + HPeriod +
@@ -300,7 +444,38 @@
                         "','" + HPicNo +
                         "','" + HWorkTask +
                         "','" + HProjectNote +
-                        "')";
+                        "','" + HContacts +
+                        "','" + HContactNumber +
+                        "','" + HSupplierID + "'" + 
+                        ",'" + HMangerEmpID + "'" + 
+                        ",'" + HMaterPlanDate + "'" + 
+                        ",'" + HWorkerID + "'" + 
+                        ",'" + HPlanWorkTimes + "'" + 
+                        ",'" + HRelWorkTimes + "'" + 
+                        ",'" + HTestDate + "'" + 
+                        ",'" + HTestCheckerID + "'" + 
+                        ",'" + HTestNote + "'" + 
+                        ",'" + HSewageDate + "'" + 
+                        ",'" + HWaterSupplyDate + "'" + 
+                        ",'" + HWorkNote + "'" + 
+                        ",'" + HWorkProcNote + "'" + 
+                        ",'" + HYuSuanMoney + "'" + 
+                        ",'" + HHeTongMoney + "'" + 
+                        ",'" + HJieSuanMoney + "'" + 
+                        ",'" + HShenJiMoney + "'" + 
+                        ",'" + HCaiLiaoMoney + "'" + 
+                        ",'" + HAnZhuangMoney + "'" + 
+                        ",'" + HBanZuMoney + "'" + 
+                        ",'" + HYuShouKuanMoney + "'" + 
+                        ",'" + HGongFeiMoney + "'" + 
+                        ",'" + HJieZhangMoney + "'" +
+                        ",'" + HTaskClassID + "'" + ",'" + HTaskClassEntryID + "'" + ",'" + HTaskAddress + "'" + ",'" + HBreakStatus + "'" + ",'" + HWaterLeakage + "'" + ",'" + HPipeDiameter + "'" + ",'" + HPipeMaterial + "'" + 
+                        ",'" + HAlarmEmp + "'" +",'" + HAlarmLink + "'" + ",'" + HReceEmp + "'" + ",'" + HReceTime + "'" + ",'" + HTaskMaterMoney + "'" + ",'" + HTaskSetupMoney + "'" + ",'" + HTaskOtherMoney + "'" +
+                        ",'" + HTaskExamMoney + "'" + ",'" + HTaskWorkMoney + "'" + ",'" + (HIsAccount?1:0) + "'" + ",'" + HAccountDate + "'" + ",'" + HAccountWorkMoneyDate + "'" + ",'" + (HIsCheckExam ? 1 : 0) + "'" +
+                        ",'" + (HIsCheckWorkMoney ? 1 : 0) + "'" + ",'" + HInfoBackTime + "'" + ",'" + HInfoBackMan + "'" + ",'" + HInfoNote + "'" + ",'" + HTaskBTime + "'" +
+                        ",'" + HTaskETime + "'" + ",'" + HTaskNote + "'" + ",'" + HTaskWorkEmp + "'" + ",'" + HBeginCloseValveTime + "'" + ",'" + HEndCloseValveTime + "'" +
+                        ",'" + HCloseValveQty + "'" + ",'" + HBeginOpenValveTime + "'" + ",'" + HEndOpenValveTime + "'" + ",'" + HOpenValveQty + "'" + ",'" + HValveWorkEmp + "'" + ",'" + HTaskRemark + "','" + HDeptID + "'" +
+                        ")";
 
                     //涓昏〃
                     oCN.RunProc(sql);
@@ -310,14 +485,14 @@
                 else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0)                    //缂栬緫
                 {
                     string sql = "update PM_ProjectBillMain set " +
-                        "HYear = " + HYear +
-                        ",HPeriod = " + HPeriod +
-                        ",HBillType = '" + HBillType +
-                        "',HBillSubType = '" + HBillSubType +
-                        "',HDate = '" + HDate +
-                        "',HBillNo = '" + HBillNo +
-                        "',HBillStatus = " + HBillStatus +
-                        ",HRemark = '" + HRemark +
+                        //"HYear = " + HYear +
+                        //",HPeriod = " + HPeriod +
+                        //",HBillType = '" + HBillType +
+                        //"',HBillSubType = '" + HBillSubType +
+                        //"',HDate = '" + HDate +
+                        "HBillNo = '" + HBillNo +
+                        //"',HBillStatus = " + HBillStatus +
+                        "',HRemark = '" + HRemark +
                         "',HUpdater = '" + HUpdater +
                         "',HUpdateDate = '" + HUpdaterDate +
                         "',HProNumber = '" + HProNumber +
@@ -347,8 +522,39 @@
                         "',HPicNo = '" + HPicNo +
                         "',HWorkTask = '" + HWorkTask +
                         "',HProjectNote ='" + HProjectNote +
-                        "' where HInterID = " + HInterID;
+                        "',HContacts ='" + HContacts +
+                        "',HContactNumber ='" + HContactNumber +
 
+                        "',HSupplierID = '" + HSupplierID +
+                        "',HMangerEmpID = '" + HMangerEmpID +
+                        "',HMaterPlanDate = '" + HMaterPlanDate +
+                        "',HWorkerID = '" + HWorkerID +
+                        "',HPlanWorkTimes = '" + HPlanWorkTimes +
+                        "',HRelWorkTimes = '" + HRelWorkTimes +
+                        "',HTestDate = '" + HTestDate +
+                        "',HTestCheckerID = '" + HTestCheckerID +
+                        "',HTestNote = '" + HTestNote +
+                        "',HSewageDate = '" + HSewageDate +
+                        "',HWaterSupplyDate = '" + HWaterSupplyDate +
+                        "',HWorkNote = '" + HWorkNote +
+                        "',HWorkProcNote = '" + HWorkProcNote +
+                        "',HYuSuanMoney = '" + HYuSuanMoney +
+                        "',HHeTongMoney = '" + HHeTongMoney +
+                        "',HJieSuanMoney = '" + HJieSuanMoney +
+                        "',HShenJiMoney = '" + HShenJiMoney +
+                        "',HCaiLiaoMoney = '" + HCaiLiaoMoney +
+                        "',HAnZhuangMoney = '" + HAnZhuangMoney +
+                        "',HBanZuMoney = '" + HBanZuMoney +
+                        "',HYuShouKuanMoney = '" + HYuShouKuanMoney +
+                        "',HGongFeiMoney = '" + HGongFeiMoney +
+                        "',HJieZhangMoney = '" + HJieZhangMoney +
+                        "',HTaskClassID = '" + HTaskClassID + "',HTaskClassEntryID = '" + HTaskClassEntryID + "',HTaskAddress = '" + HTaskAddress + "',HBreakStatus = '" + HBreakStatus + "',HWaterLeakage = '" + HWaterLeakage + "',HPipeDiameter = '" + HPipeDiameter +
+                        "',HPipeMaterial = '" + HPipeMaterial + "',HAlarmEmp = '" + HAlarmEmp + "',HAlarmLink = '" + HAlarmLink + "',HReceEmp = '" + HReceEmp + "',HReceTime = '" + HReceTime + "',HTaskMaterMoney = '" + HTaskMaterMoney +
+                        "',HTaskSetupMoney = '" + HTaskSetupMoney + "',HTaskOtherMoney = '" + HTaskOtherMoney + "',HTaskExamMoney = '" + HTaskExamMoney + "',HTaskWorkMoney = '" + HTaskWorkMoney + "',HIsAccount = '" + (HIsAccount?1:0) + "',HAccountDate = '" + HAccountDate +
+                        "',HAccountWorkMoneyDate = '" + HAccountWorkMoneyDate + "',HIsCheckExam = '" + (HIsCheckExam?1:0) + "',HIsCheckWorkMoney = '" + (HIsCheckWorkMoney?1:0) + "',HInfoBackTime = '" + HInfoBackTime + "',HInfoBackMan = '" + HInfoBackMan + "',HInfoNote = '" + HInfoNote +
+                        "',HTaskBTime = '" + HTaskBTime + "',HTaskETime = '" + HTaskETime + "',HTaskNote = '" + HTaskNote + "',HTaskWorkEmp = '" + HTaskWorkEmp + "',HBeginCloseValveTime = '" + HBeginCloseValveTime + "',HEndCloseValveTime = '" + HEndCloseValveTime +
+                        "',HCloseValveQty = '" + HCloseValveQty + "',HBeginOpenValveTime = '" + HBeginOpenValveTime + "',HEndOpenValveTime = '" + HEndOpenValveTime + "',HOpenValveQty = '" + HOpenValveQty + "',HValveWorkEmp = '" + HValveWorkEmp + "',HTaskRemark = '" + HTaskRemark + "',HDeptID = '" + HDeptID + "'" +
+                        " where HInterID = " + HInterID;
                     oCN.RunProc(sql);
 
                     //鍒犻櫎瀛愯〃
@@ -520,6 +726,100 @@
                     string sql = sql1 + sWhere + " order by 鍗曟嵁鍙� desc";
                     ds = oCN.RunProcReturn(sql, "h_v_PM_ProjectBillList");
                 }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = columnNameList;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 宸ョ▼椤圭洰鍒嗛〉鍒楄〃
+        [Route("PM_ProjectBill/page")]
+        [HttpGet]
+        public object PM_ProjectBillPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                //if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBillQuery", 1, false, user))
+                //{
+                //    objJsonResult.code = CodeConstant.FAIL;
+                //    objJsonResult.count = CountConstant.FAIL;
+                //    objJsonResult.Message = "鎮ㄦ病鏈夎妯″潡鏉冮檺,璇蜂笌绠$悊鍛樿仈绯伙紒";
+                //    objJsonResult.data = null;
+                //    return objJsonResult;
+                //}
+
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_PM_ProjectBillList " + page + "," + size + ",''", "h_p_PM_ProjectBillList");
+                }
+                else
+                {
+                    sWhere = sWhere.Replace("'", "''");
+                    ds = oCN.RunProcReturn("exec h_p_PM_ProjectBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_PM_ProjectBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                objJsonResult.code = CodeConstant.SUCCEED;
+                objJsonResult.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.list = columnNameList;
+                objJsonResult.data = ds.Tables[0];
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = CodeConstant.FAIL;
+                objJsonResult.count = CountConstant.FAIL;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region (浠诲姟绫伙級鐨勫伐绋嬮」鐩柊澧� 鏍规嵁浠诲姟澶х被 浠诲姟椤圭洰鍒嗙被 鏃ユ湡 鏇存柊 椤圭洰浠g爜
+        [Route("PM_ProjectBill/GetHProjectHNumber")]
+        [HttpGet]
+        public object GetHProjectHNumber( int HDeptID, DateTime HDate,int HTaskClassID,int HTaskClassEntryID)
+        {
+            DataSet ds;
+            try
+            {
+                List<object> columnNameList = new List<object>();
+
+
+                ds = oCN.RunProcReturn("exec h_p_Xt_GetMaxBillNo_SubType '4750','" + HDate + "','" + HTaskClassID + "','" + HTaskClassEntryID + "','" + HDeptID + "'", "h_p_Xt_GetMaxBillNo_SubType");
 
                 //娣诲姞鍒楀悕
                 foreach (DataColumn col in ds.Tables[0].Columns)
@@ -1239,6 +1539,44 @@
                 return objJsonResult;
             }
         }
+        #endregion
+
+        #region 宸ョ▼椤圭洰  浠诲姟瀹夎璐� 銆佷换鍔¤�冩牳璐广�佷换鍔¢檮灞炶垂銆佷换鍔″伐璐�  閫夋嫨椤圭洰璐圭敤鍒嗙被杩斿洖 瀵瑰簲鍒嗙被鐨勯」鐩垂鐢�
+        [Route("PM_ProjectBill/getGy_Project")]
+        [HttpGet]
+        public object getGy_Project(string HItemID)
+        {
+            try
+            {
+    
+                ds = oCN.RunProcReturn("select top 1 * from Gy_ProjectMoney where HProjectMoneyClassID='"+HItemID+ "' and isnull(HCheckEmp,'') !='' and HStopflag=0 order by HItemID desc", "Gy_ProjectMoney");
+
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "璇ラ」鐩垂鐢ㄥ垎绫讳笅鐨勯」鐩垂鐢ㄦ棤鏁版嵁";
+                    objJsonResult.data = null;                 
+                    return objJsonResult;
+                }
+
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
         #endregion
 
         #region 鏈堝害闃舵璁″垝淇濆瓨/缂栬緫
@@ -3255,7 +3593,7 @@
                     if (refSav == "Add")
                     {
                         //鍗曟嵁鍙锋槸鍚﹂噸澶�
-                        if (BillNew1.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID))
+                        if (BillNew5.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID))
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -3266,7 +3604,7 @@
                     }
                     if (refSav == "Update")
                     {
-                        if (BillOld1.ShowBill(oItem.HInterID, ref s) == false)
+                        if (BillOld5.ShowBill(oItem.HInterID, ref s) == false)
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -3275,7 +3613,7 @@
                             return objJsonResult;
                         }
                         //鍒ゆ柇鏄惁鍙紪杈�
-                        if (BillOld1.omodel.HChecker != "" && BillOld1.omodel.HChecker != null)
+                        if (BillOld5.omodel.HChecker != "" && BillOld5.omodel.HChecker != null)
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -3283,7 +3621,7 @@
                             objJsonResult.data = 1;
                             return objJsonResult;
                         }
-                        if (BillOld1.omodel.HBillStatus > 1)
+                        if (BillOld5.omodel.HBillStatus > 1)
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -3893,7 +4231,7 @@
                     if (refSav == "Add")
                     {
                         //鍗曟嵁鍙锋槸鍚﹂噸澶�
-                        if (BillNew1.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID))
+                        if (BillNew6.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID))
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -3904,7 +4242,7 @@
                     }
                     if (refSav == "Update")
                     {
-                        if (BillOld1.ShowBill(oItem.HInterID, ref s) == false)
+                        if (BillOld6.ShowBill(oItem.HInterID, ref s) == false)
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -3913,7 +4251,7 @@
                             return objJsonResult;
                         }
                         //鍒ゆ柇鏄惁鍙紪杈�
-                        if (BillOld1.omodel.HChecker != "" && BillOld1.omodel.HChecker != null)
+                        if (BillOld6.omodel.HChecker != "" && BillOld6.omodel.HChecker != null)
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -3921,7 +4259,7 @@
                             objJsonResult.data = 1;
                             return objJsonResult;
                         }
-                        if (BillOld1.omodel.HBillStatus > 1)
+                        if (BillOld6.omodel.HBillStatus > 1)
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -4464,6 +4802,1329 @@
         }
         #endregion
 
+        #region 椤圭洰璐圭敤娓呭崟
 
+        #region 椤圭洰璐圭敤娓呭崟 淇濆瓨/缂栬緫
+        /// <summary>
+        /// 椤圭洰璐圭敤娓呭崟
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <returns></returns>
+        [Route("PM_ProjectBill/SaveGy_ProjectMoneyBOMBill")]
+        [HttpPost]
+        public object Save锘縂y_ProjectMoneyBOMBill([FromBody] JObject sMainSub)
+        {
+            var _value = sMainSub["sMainSub"].ToString();
+            string msg1 = _value.ToString();
+            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+            string msg2 = sArray[0].ToString();
+            string msg3 = sArray[1].ToString(); //瀛愯〃
+            string refSav = sArray[2].ToString();//鎿嶄綔鏂瑰紡鏁版嵁绫诲瀷 1娣诲姞 3淇敼 2 澶嶅埗
+            string user = sArray[3].ToString();//鐢ㄦ埛鍚�
+
+            string UserName = "";
+            string s = "";
+            ListModels oListModels = new ListModels();
+            try
+            {
+                //淇濆瓨鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log_second("PM_ProjectMoneyBOMBill_Edit", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "淇濆瓨澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                DAL.ClsGy_ProjectMoneyBOMBill oBill = new DAL.ClsGy_ProjectMoneyBOMBill();
+                List<Model.Cls锘縂y_ProjectMoneyBOMBillMain> lsmain = new List<Model.Cls锘縂y_ProjectMoneyBOMBillMain>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                //搴忓垪鍖栦富琛ㄦ暟鎹�
+                var jsonString = "[" + msg2.ToString() + "]";
+                lsmain = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.Cls锘縂y_ProjectMoneyBOMBillMain>>(jsonString);
+                foreach (Model.Cls锘縂y_ProjectMoneyBOMBillMain oItem in lsmain)
+                {
+                    if (refSav == "Add")
+                    {
+                        //鍗曟嵁鍙锋槸鍚﹂噸澶�
+                        if (BillNew7.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鍙烽噸澶嶏紒涓嶅厑璁镐繚瀛橈紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                    }
+                    if (refSav == "Update")
+                    {
+                        if (BillNew7.ShowBill(oItem.HInterID, ref s) == false)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "姝ゅ崟鎹湁璇紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                        //鍒ゆ柇鏄惁鍙紪杈�
+                        if (BillNew7.omodel.HChecker != "" && BillNew7.omodel.HChecker != null)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "姝ゅ崟鎹凡缁忚瀹℃牳锛屼笉鍏佽淇敼锛�";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                        if (BillNew7.omodel.HBillStatus > 1)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "姝ゅ崟鎹浜庝笉鍙紪杈戠姸鎬侊紝涓嶅厑璁镐慨鏀癸紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+
+                    }
+                    UserName = oItem.HMaker;  //鍒跺崟浜�
+                    oItem.HBillType = "3338";
+                    oItem.HBillSubType = "3338";
+
+
+
+                    //oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
+                    oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
+                    oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
+
+                    if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛佹病鏈夊崟鎹棩鏈燂紝鏃犳硶淇濆瓨锛�";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+                    oBill.omodel = oItem;
+                }
+                // 琛ㄤ綋鏁版嵁
+                //鎸� },{鏉ユ媶鍒嗘暟缁� //鍘绘帀銆愬拰銆�
+                msg3 = msg3.Substring(1, msg3.Length - 2);
+                msg3 = msg3.Replace("\\", "");
+                msg3 = msg3.Replace("\n", "");  //\n
+                List<Model.Cls锘縂y_ProjectMoneyBOMBillSub> ls = new List<Model.Cls锘縂y_ProjectMoneyBOMBillSub>();
+                jsonString = "[" + msg3.ToString() + "]";
+                ls = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.Cls锘縂y_ProjectMoneyBOMBillSub>>(jsonString);
+                int i = 0;
+                foreach (Model.Cls锘縂y_ProjectMoneyBOMBillSub oItemSub in ls)
+                {
+                    i++;
+                    oItemSub.HEntryID = i;
+                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                    oItemSub.HCloseType = false;   //鍏抽棴绫诲瀷
+
+                    oBill.DetailColl.Add(oItemSub);
+
+                }
+                //淇濆瓨
+                //淇濆瓨瀹屾瘯鍚庡鐞�
+                bool bResult;
+                if (refSav == "Add")
+                {
+
+                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                else if (refSav == "Update")
+                {
+                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                else
+                {
+                    bResult = false;
+                }
+                if (bResult)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "淇濆瓨鎴愬姛锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString();
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 椤圭洰璐圭敤娓呭崟鍒楄〃 鏌ヨ
+        /// <summary>
+        /// 杩斿洖椤圭洰璐圭敤娓呭崟鍒楄〃
+        ///鍙傛暟锛歴tring sql銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("PM_ProjectBill/getGy_ProjectMoneyBOMBillList")]
+        [HttpGet]
+        public object get锘縂y_ProjectMoneyBOMBillList(string sWhere, string user)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log_second("PM_ProjectMoneyBOMBill_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏌ヨ澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select * from h_v_Gy_ProjectMoneyBOMBillList order by 鍗曟嵁鍙� desc", "锘縣_v_Gy_ProjectMoneyBOMBillList");
+                }
+                else
+                {
+                    string sql1 = "select * from h_v_Gy_ProjectMoneyBOMBillList where 1 = 1 ";
+                    string sql = sql1 + sWhere + " order by 鍗曟嵁鍙� desc";
+                    ds = oCN.RunProcReturn(sql, "锘縣_v_Gy_ProjectMoneyBOMBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = columnNameList;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 椤圭洰璐圭敤娓呭崟鍒楄〃 鑾峰彇缂栬緫鍒楄〃鏁版嵁
+
+        [Route("PM_ProjectBill/Gy_ProjectMoneyBOMBillEditList")]
+        [HttpGet]
+        public object Gy_ProjectMoneyBOMBillMainEditList(string HInterID, string User)
+        {
+            try
+            {
+                List<DataTable> tableList = new List<DataTable>();
+
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("PM_ProjectMoneyBOMBill_Edit", 1, false, User))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏌ヨ澶辫触!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (HInterID == null || HInterID.Equals(""))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓嶈兘涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                ds = oCN.RunProcReturn("select * from h_v_Gy_ProjectMoneyBOMBillList where HInterID =" + HInterID, "h_v_Gy_ProjectMoneyBOMBillList");
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "false锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                else
+                {
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "Sucess锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 椤圭洰璐圭敤娓呭崟鍒楄〃 瀹℃牳/鍙嶅鏍稿姛鑳�
+        [Route("PM_ProjectBill/CheckGy_ProjectMoneyBOMBill")]
+        
+        [HttpGet]
+        public object CheckGy_ProjectMoneyBOMBill(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈夊鏍告潈闄�
+                if (!DBUtility.ClsPub.Security_Log("PM_ProjectMoneyBOMBill_Check", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愬鏍�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (string.IsNullOrWhiteSpace(HInterID))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                ClsPub.CurUserName = user;
+                BillOld1.MvarItemKey = "Gy_ProjectMoneyBOMBillMain";
+                oCN.BeginTran();//寮�濮嬩簨鍔�
+
+                //Type 1 瀹℃牳  2  鍙嶅鏍�
+                if (Type == 1)
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡瀹℃牳
+                    DataSet ds;
+                    string sql = "select * from " + BillOld1.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld1.MvarItemKey);
+                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘鍐嶆瀹℃牳锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //瀹℃牳鍗曟嵁
+                        if (!BillOld1.CheckBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅鏍�
+                    DataSet ds;
+                    string sql = "select * from " + BillOld1.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld1.MvarItemKey);
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘杩涜鍙嶅鏍革紒";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍙嶅鏍革紒";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶉渶瑕佸弽瀹℃牳!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //鍙嶅鏍稿崟鎹�
+                        if (!BillOld1.AbandonCheck(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+
+                oCN.Commit();//鎻愪氦浜嬪姟
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鎵ц鎴愬姛锛�";
+                objJsonResult.data = null;
+                return objJsonResult; ;
+
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎵ц澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 椤圭洰璐圭敤娓呭崟鍒楄〃 鍏抽棴/鍙嶅叧闂姛鑳�
+        [Route("PM_ProjectBill/CloseGy_ProjectMoneyBOMBill")]
+        [HttpGet]
+        public object CloseGy_ProjectMoneyBOMBill(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈夊垹闄ゆ潈闄�
+                if (!DBUtility.ClsPub.Security_Log("PM_ProjectMoneyBOMBill_Close", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愬叧闂�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (string.IsNullOrWhiteSpace(HInterID))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                ClsPub.CurUserName = user;
+                BillOld7.MvarItemKey = "Gy_ProjectMoneyBOMBillMain";
+                oCN.BeginTran();//寮�濮嬩簨鍔�
+
+                //Type 1 鍏抽棴  2  鍙嶅叧闂�
+                if (Type == 1)
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍏抽棴
+                    DataSet ds;
+                    string sql = "select * from " + BillOld7.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld7.MvarItemKey);
+                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+
+                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //鍏抽棴鍗曟嵁
+                        if (!BillOld7.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅叧闂�
+                    DataSet ds;
+                    string sql = "select * from " + BillOld7.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld7.MvarItemKey);
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸啀鍙嶅叧闂�!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //鍙嶅叧闂崟鎹�
+                        if (!BillOld7.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+
+                oCN.Commit();//鎻愪氦浜嬪姟
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鎵ц鎴愬姛锛�";
+                objJsonResult.data = null;
+                return objJsonResult; ;
+
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎵ц澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 椤圭洰璐圭敤娓呭崟鍒楄〃 浣滃簾/鍙嶄綔搴熷姛鑳�
+        [Route("PM_ProjectBill/DropGy_ProjectMoneyBOMBill")]
+        [HttpGet]
+        public object DropGy_ProjectMoneyBOMBillMain(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈変綔搴熸潈闄�
+                if (!DBUtility.ClsPub.Security_Log("PM_ProjectMoneyBOMBill_Drop", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愪綔搴�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (string.IsNullOrWhiteSpace(HInterID))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                ClsPub.CurUserName = user;
+                BillOld7.MvarItemKey = "Gy_ProjectMoneyBOMBillMain";
+                oCN.BeginTran();//寮�濮嬩簨鍔�
+
+                //Type 1 浣滃簾  2  鍙嶄綔搴�
+                if (Type == 1)
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡浣滃簾
+                    DataSet ds;
+                    string sql = "select * from " + BillOld7.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld7.MvarItemKey);
+                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘杩涜浣滃簾!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶉渶瑕佸啀浣滃簾!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //浣滃簾鍗曟嵁
+                        if (!BillOld7.Cancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = "浣滃簾澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶄綔搴�
+                    DataSet ds;
+                    string sql = "select * from " + BillOld7.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld7.MvarItemKey);
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘杩涜浣滃簾!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈綔搴�!涓嶉渶瑕佸啀鍙嶄綔搴�!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //鍙嶄綔搴熷崟鎹�
+                        if (!BillOld7.AbandonCancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = "鍙嶄綔搴熷け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+
+                oCN.Commit();//鎻愪氦浜嬪姟
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鎵ц鎴愬姛锛�";
+                objJsonResult.data = null;
+                return objJsonResult; ;
+
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎵ц澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 椤圭洰璐圭敤娓呭崟鍒楄〃 鍒犻櫎
+        /// <summary>
+        ///鍙傛暟锛歴tring HInterID銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("PM_ProjectBill/DeleteGy_ProjectMoneyBOMBill")]
+        [HttpGet]
+        public object DeleteGy_ProjectMoneyBOMBillMain(string HInterID, string user)
+        {
+            try
+            {
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("PM_ProjectMoneyBOMBill_Delete", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犲垹闄ゆ潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (HInterID == null || HInterID.Equals(""))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓嶈兘涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                oCN.BeginTran();
+
+                oCN.RunProc("delete from Gy_ProjectMoneyBOMBillMain   where HInterID = " + HInterID);
+
+                oCN.RunProc("delete from Gy_ProjectMoneyBOMBillSub   where HInterID = " + HInterID);
+
+                oCN.Commit();
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鍒犻櫎鎴愬姛锛�";
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 椤圭洰璐圭敤娓呭崟 琛屽叧闂�/琛屽弽鍏抽棴
+        /// <summary>
+        /// </summary>
+        /// <param name="HInterID">鍗曟嵁ID</param>
+        /// <param name="IsAudit">鍏抽棴(1),鍙嶅叧闂�(2)</param>
+        /// <param name="CurUserName">鍏抽棴浜�</param>
+        /// <returns></returns>
+        [Route("PM_ProjectBill/CloseRowGy_ProjectMoneyBOMBill")]
+        [HttpGet]
+        public object CloseRowGy_ProjectMoneyBOMBill(int HInterID, int HEntryID, int IsAudit, string CurUserName)
+        {
+            string ModRightNameCheck = "PM_ProjectMoneyBOMBill_Close";
+            string SubBillName = "Gy_ProjectMoneyBOMBillSub";                   //瀛愯〃琛ㄥ悕
+            DBUtility.ClsPub.CurUserName = CurUserName;
+            DataSet ds = null;
+            try
+            {
+                //妫�鏌ユ潈闄�
+                if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "琛屽叧闂け璐ワ紒鏃犳潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //HInterID鏁版嵁鍒ゆ柇
+                if (HInterID <= 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID灏忎簬0锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //瀵笻InterID杩涜绫诲瀷鐨勮浆鎹�
+                DAL.ClsGy_ProjectMoneyBOMBill oBill = new DAL.ClsGy_ProjectMoneyBOMBill();              //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
+                {
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜琛屽叧闂紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (oBill.omodel.HCloseMan.Trim() != "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘杩涜琛屽叧闂紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (oBill.omodel.HChecker.Trim() == "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜琛屽叧闂紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    string sql = "select * from " + SubBillName + " where HInterID = " + HInterID + " and HEntryID = " + HEntryID;
+                    ds = oCN.RunProcReturn(sql, "Cg_POOrderBillSub");
+                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "璇ヨ鏁版嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (IsAudit == 1)  //琛屽叧闂垽鏂�
+                    {
+                        if (ds.Tables[0].Rows[0]["HCloseMan"].ToString().Trim() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "琛屽凡鍏抽棴!涓嶈兘鍐嶆琛屽叧闂紒";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    if (IsAudit == 2) //琛屽弽鍏抽棴鍒ゆ柇
+                    {
+                        if (ds.Tables[0].Rows[0]["HCloseMan"].ToString().Trim() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "琛屾湭鍏抽棴!涓嶉渶瑕佸啀琛屽弽鍏抽棴锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+
+                        //鍒ゆ柇琛屾槸鍚︿负鑷姩鍏抽棴
+                        string temp = ds.Tables[0].Rows[0]["HCloseType"].ToString();
+                        if (ds.Tables[0].Rows[0]["HCloseType"].ToString() == "False")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "琛屽弽鍏抽棴澶辫触!琛屼负鑷姩鍏抽棴锛屼笉鑳借繘琛屾墜鍔ㄥ弽鍏抽棴锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                //杩涜闇�瑕佽繘琛岀殑琛屽叧闂�/琛屽弽鍏抽棴鎿嶄綔
+                if (IsAudit == 1) //琛屽叧闂彁浜�
+                {
+                    //琛屽叧闂彁浜�
+                    if (oBill.CloseRow(lngBillKey, HEntryID, oBill.omodel.HBillNo, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "琛屽叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "琛屽叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (IsAudit == 2) //琛屽弽鍏抽棴鎻愪氦
+                {
+                    //琛屽弽鍏抽棴鎻愪氦
+                    if (oBill.CancelRow(lngBillKey, HEntryID, oBill.omodel.HBillNo, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍏抽棴澶辫触鎴栬�呭弽鍏抽棴澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+        #endregion
+
+
+        #region 椤圭洰璐圭敤寰呭鏍稿垪琛�
+        #region 宸ョ▼椤圭洰璐圭敤寰呭鏍稿垪琛�
+        [Route("PM_ProjectBill/NeedCheckQuery")]
+        [HttpGet]
+        public object PM_ProjectBillNeedCheckQuery(string user)
+        {
+            DataSet ds;
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                //if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBillQuery", 1, false, user))
+                //{
+                //    objJsonResult.code = CodeConstant.FAIL;
+                //    objJsonResult.count = CountConstant.FAIL;
+                //    objJsonResult.Message = "鎮ㄦ病鏈夎妯″潡鏉冮檺,璇蜂笌绠$悊鍛樿仈绯伙紒";
+                //    objJsonResult.data = null;
+                //    return objJsonResult;
+                //}
+                //sWhere = sWhere.Replace("'", "''");
+                ds = oCN.RunProcReturn("exec h_p_PM_ProjectBillNeedCheckQuery ", "h_p_PM_ProjectBillNeedCheckQuery");
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                objJsonResult.code = CodeConstant.SUCCEED;
+                objJsonResult.count = CountConstant.SUCCEED;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.list = columnNameList;
+                objJsonResult.data = ds.Tables[0];
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = CodeConstant.FAIL;
+                objJsonResult.count = CountConstant.FAIL;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 宸ョ▼椤圭洰璐圭敤 瀹℃牳/鍙嶅鏍�
+        
+        [Route("PM_ProjectBill/AuditTaskMoney")]
+        [HttpGet]
+        public object AuditTaskMoney(string HInterID, string Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈夊鏍告潈闄�
+                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectBill_Check", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愬鏍�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (string.IsNullOrWhiteSpace(HInterID))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                ClsPub.CurUserName = user;
+                BillOld.MvarItemKey = "PM_ProjectBillMain";
+                oCN.BeginTran();//寮�濮嬩簨鍔�
+                DataSet ds;
+                string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+                ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //Type 浠诲姟瀹夎璐瑰鏍告爣璁�
+                if (Type == "SetupMoneyCheck")
+                {
+                    if (ds.Tables[0].Rows[0]["HTaskSetupMoneyCheckFlag"].ToString() == "False")
+                    {
+                        oCN.RunProcReturn("update PM_ProjectBillMain set HTaskSetupMoneyCheckFlag = 1 where HInterID = " + HInterID, "PM_ProjectBillMain");
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "璐圭敤宸插鏍革紒";
+                        objJsonResult.data = null;
+                        return objJsonResult; ;
+                    }
+                }
+                //浠诲姟闄勫睘瀹℃牳
+                else if (Type == "OtherMoneyCheck")
+                {
+                    if (ds.Tables[0].Rows[0]["HTaskOtherMoneyCheckFlag"].ToString() == "False")
+                    {
+                        oCN.RunProcReturn("update PM_ProjectBillMain set HTaskOtherMoneyCheckFlag = 1 where HInterID = " + HInterID, "PM_ProjectBillMain");
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "璐圭敤宸插鏍革紒";
+                        objJsonResult.data = null;
+                        return objJsonResult; ;
+                    }
+                }
+                //浠诲姟鑰冩牳璐瑰鏍�
+                else if (Type == "ExamMoneyCheck")
+                {
+                    if (ds.Tables[0].Rows[0]["HTaskExamMoneyCheckFlag"].ToString() == "False")
+                    {
+                        oCN.RunProcReturn("update PM_ProjectBillMain set HTaskExamMoneyCheckFlag = 1 where HInterID = " + HInterID, "PM_ProjectBillMain");
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "璐圭敤宸插鏍革紒";
+                        objJsonResult.data = null;
+                        return objJsonResult; ;
+                    }
+                }
+                //浠诲姟宸ヨ垂瀹℃牳鏍囪
+                else if (Type == "WorkMoneyCheck")
+                {
+                    if (ds.Tables[0].Rows[0]["HTaskWorkMoneyCheckFlag"].ToString() == "False")
+                    {
+                        oCN.RunProcReturn("update PM_ProjectBillMain set HTaskWorkMoneyCheckFlag = 1 where HInterID = " + HInterID, "PM_ProjectBillMain");
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "璐圭敤宸插鏍革紒";
+                        objJsonResult.data = null;
+                        return objJsonResult; ;
+                    }
+                }
+                //鍙嶅鏍歌垂鐢�
+                else if (Type == "UnCheck")
+                {
+                    
+                    oCN.RunProcReturn("update PM_ProjectBillMain set HTaskWorkMoneyCheckFlag = 0,HTaskExamMoneyCheckFlag = 0,HTaskOtherMoneyCheckFlag = 0,HTaskSetupMoneyCheckFlag = 0 where HInterID = " + HInterID, "PM_ProjectBillMain");
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "瀹℃牳绫诲瀷涓嶅瓨鍦紒";
+                    objJsonResult.data = null;
+                    return objJsonResult; ;
+                }
+
+                oCN.Commit();//鎻愪氦浜嬪姟
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鎵ц鎴愬姛锛�";
+                objJsonResult.data = null;
+                return objJsonResult; ;
+
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎵ц澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #endregion
+
+        #region 椤圭洰璐圭敤寰呬繚瀛樺垪琛�
+        #region 宸ョ▼椤圭洰璐圭敤寰呬繚瀛樺垪琛�
+        [Route("PM_ProjectBill/NeedSaveQuery")]
+        [HttpGet]
+        public object PM_ProjectBillNeedSaveQuery(string user)
+        {
+            DataSet ds;
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                //if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBillQuery", 1, false, user))
+                //{
+                //    objJsonResult.code = CodeConstant.FAIL;
+                //    objJsonResult.count = CountConstant.FAIL;
+                //    objJsonResult.Message = "鎮ㄦ病鏈夎妯″潡鏉冮檺,璇蜂笌绠$悊鍛樿仈绯伙紒";
+                //    objJsonResult.data = null;
+                //    return objJsonResult;
+                //}
+                //sWhere = sWhere.Replace("'", "''");
+                ds = oCN.RunProcReturn("exec h_p_PM_ProjectBillNeedSaveQuery ", "h_p_PM_ProjectBillNeedSaveQuery");
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                objJsonResult.code = CodeConstant.SUCCEED;
+                objJsonResult.count = CountConstant.SUCCEED;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.list = columnNameList;
+                objJsonResult.data = ds.Tables[0];
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = CodeConstant.FAIL;
+                objJsonResult.count = CountConstant.FAIL;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 宸ョ▼椤圭洰璐圭敤 淇濆瓨鍙嶄繚瀛�
+
+        [Route("PM_ProjectBill/SaveTaskMoney")]
+        [HttpGet]
+        public object SaveTaskMoney(string HInterID, string Type, string user,int HMoney)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈夊鏍告潈闄�
+                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectBill_edit", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愬鏍�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (string.IsNullOrWhiteSpace(HInterID))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                ClsPub.CurUserName = user;
+                BillOld.MvarItemKey = "PM_ProjectBillMain";
+                oCN.BeginTran();//寮�濮嬩簨鍔�
+                DataSet ds;
+                string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+                ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //Type 浠诲姟瀹夎璐逛繚瀛樻爣璁�
+                if (Type == "SetupMoneySave")
+                {
+                    if (ds.Tables[0].Rows[0]["HTaskSetupMoneySaveFlag"].ToString() == "False")
+                    {
+                        oCN.RunProcReturn("update PM_ProjectBillMain set HTaskSetupMoneySaveFlag = 1,HTaskSetupMoney="+HMoney+" where HInterID = " + HInterID, "PM_ProjectBillMain");
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "璐圭敤宸蹭繚瀛橈紒";
+                        objJsonResult.data = null;
+                        return objJsonResult; ;
+                    }
+                }
+                //浠诲姟闄勫睘淇濆瓨
+                else if (Type == "OtherMoneySave")
+                {
+                    if (ds.Tables[0].Rows[0]["HTaskOtherMoneySaveFlag"].ToString() == "False")
+                    {
+                        oCN.RunProcReturn("update PM_ProjectBillMain set HTaskOtherMoneySaveFlag = 1,HTaskOtherMoney=" + HMoney + " where HInterID = " + HInterID, "PM_ProjectBillMain");
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "璐圭敤宸蹭繚瀛橈紒";
+                        objJsonResult.data = null;
+                        return objJsonResult; ;
+                    }
+                }
+                //浠诲姟鑰冩牳璐逛繚瀛�
+                else if (Type == "ExamMoneySave")
+                {
+                    if (ds.Tables[0].Rows[0]["HTaskExamMoneySaveFlag"].ToString() == "False")
+                    {
+                        oCN.RunProcReturn("update PM_ProjectBillMain set HTaskExamMoneySaveFlag = 1,HTaskExamMoney=" + HMoney + "  where HInterID = " + HInterID, "PM_ProjectBillMain");
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "璐圭敤宸蹭繚瀛橈紒";
+                        objJsonResult.data = null;
+                        return objJsonResult; ;
+                    }
+                }
+                //浠诲姟宸ヨ垂淇濆瓨鏍囪
+                else if (Type == "WorkMoneySave")
+                {
+                    if (ds.Tables[0].Rows[0]["HTaskWorkMoneySaveFlag"].ToString() == "False")
+                    {
+                        oCN.RunProcReturn("update PM_ProjectBillMain set HTaskWorkMoneySaveFlag = 1,HTaskWorkMoney=" + HMoney + " where HInterID = " + HInterID, "PM_ProjectBillMain");
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "璐圭敤宸蹭繚瀛橈紒";
+                        objJsonResult.data = null;
+                        return objJsonResult; ;
+                    }
+                }
+                //鍙嶄繚瀛樿垂鐢�
+                else if (Type == "UnSave")
+                {
+
+                    oCN.RunProcReturn("update PM_ProjectBillMain set HTaskWorkMoneySaveFlag = 0,HTaskExamMoneySaveFlag = 0,HTaskOtherMoneySaveFlag = 0,HTaskSetupMoneySaveFlag = 0 where HInterID = " + HInterID, "PM_ProjectBillMain");
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "瀹℃牳绫诲瀷涓嶅瓨鍦紒";
+                    objJsonResult.data = null;
+                    return objJsonResult; ;
+                }
+
+                oCN.Commit();//鎻愪氦浜嬪姟
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鎵ц鎴愬姛锛�";
+                objJsonResult.data = null;
+                return objJsonResult; ;
+
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎵ц澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #endregion
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1