|  |  | 
 |  |  | using Newtonsoft.Json.Linq; | 
 |  |  | using Newtonsoft.Json; | 
 |  |  | using Newtonsoft.Json.Linq; | 
 |  |  | using System; | 
 |  |  | using System.Collections.Generic; | 
 |  |  | using System.Data; | 
 |  |  | 
 |  |  | { | 
 |  |  |     public class Sc_WorkBillSortBillController : ApiController | 
 |  |  |     { | 
 |  |  |         private json objJsonResult = new json(); | 
 |  |  |         private json objJsonResult = new json();     | 
 |  |  |         public DataSet ds = new DataSet(); | 
 |  |  |         public WebServer webserver = new WebServer(); | 
 |  |  |         SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
 |  |  | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 List<object> columnNameList = new List<object>(); | 
 |  |  |                 //æ¥çæé | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log("Sc_WorkBillSortBill_Query", 1, false, user)) | 
 |  |  |                 { | 
 |  |  | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 ds = oCN.RunProcReturn("select * from  h_v_JIT_Sc_WorkBillSortBillList where 1=1" + sWhere + "order by hmainid desc ", "h_v_JIT_Sc_WorkBillSortBillList"); | 
 |  |  |  | 
 |  |  |                 ds = oCN.RunProcReturn("select * from  h_v_JIT_Sc_WorkBillSortBillList_Left where 1=1" + sWhere + " order by åæ®å· desc ", "h_v_JIT_Sc_WorkBillSortBillList"); | 
 |  |  |            | 
 |  |  |                     foreach (DataColumn col in ds.Tables[0].Columns)//éådsä¸ç¬¬ä¸ä¸ªè¡¨ï¼Tables[0]ï¼çææåï¼Columnsï¼æ¯æ¬¡å¾ªç¯ä¸ï¼colåé伿æå½ååçå¼ç¨ | 
 |  |  |                     { | 
 |  |  |                         Type dataType = col.DataType; //è·åå½åæ°æ®ç±»åä¼ å
¥ èªå®ä¹åédatadataType | 
 |  |  |                         string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; //åç¬¦ä¸²æ¼æ¥         // å°åååæ°æ®ç±»åä¿¡æ¯æ¼æ¥æä¸ä¸ªJSONæ ¼å¼çå符串 | 
 |  |  |                         columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//è·åå°DataColumnå对象çåå | 
 |  |  |                     | 
 |  |  |                 } | 
 |  |  |                 objJsonResult.code = "1"; | 
 |  |  |                 objJsonResult.count = 1; | 
 |  |  |                 objJsonResult.Message = "Sucessï¼"; | 
 |  |  |                 objJsonResult.data = ds.Tables[0]; | 
 |  |  |              | 
 |  |  |                 objJsonResult.data = ds.Tables[0];//代ç å°ç¬¬ä¸ä¸ªDataTableï¼ç´¢å¼ä¸º0ï¼èµå¼ç»objJsonResultçdata屿§ | 
 |  |  |                 objJsonResult.list = columnNameList;//å°columnNameListèµå¼ç»objJsonResultçlist屿§ | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  | 
 |  |  |             string msg2 = sArray[0].ToString(); | 
 |  |  |             string msg3 = sArray[1].ToString(); | 
 |  |  |  | 
 |  |  |             int hentryid = int.Parse(sArray[2].ToString());//å表ç顺åºid | 
 |  |  |             int OperationType = int.Parse(sArray[3].ToString());//æ°æ®ç±»å 1添堠3ä¿®æ¹ | 
 |  |  |             string user = sArray[4].ToString(); | 
 |  |  |             int OperationType = int.Parse(sArray[2].ToString());//æ°æ®ç±»å 1添堠3ä¿®æ¹ | 
 |  |  |             string user = sArray[3].ToString(); | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log("Sc_WorkBillSortBill_Edit", 1, false, user)) | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log("Sc_WorkBillSortBill_Edit", 1, false, user))  | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  | 
 |  |  |  | 
 |  |  |                 omdelMian = Newtonsoft.Json.JsonConvert.DeserializeObject<Sc_WorkBillSortBillMain>(msg2); | 
 |  |  |                 string BillType = "4610"; | 
 |  |  |  | 
 |  |  |                 ds = ds = oCN.RunProcReturn($"select * from  h_v_JIT_Sc_WorkBillSortBillList where hmainid={omdelMian.HInterID} and  åæ®å·='{omdelMian.HBillNo}'", "h_v_JIT_Sc_WorkBillSortBillList"); | 
 |  |  |                 if (ds.Tables[0].Rows.Count > 0) | 
 |  |  |                 { | 
 |  |  |                     OperationType = 3; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 if (OperationType == 1)//æ°å¢ | 
 |  |  |                 { | 
 |  |  | 
 |  |  |                 } | 
 |  |  |                 else if (OperationType == 3) | 
 |  |  |                 { | 
 |  |  |  | 
 |  |  |                     ds = oCN.RunProcReturn($"select * from  Sc_WorkBillSortBillMain where HMainSourceInterID={omdelMian.HMainSourceInterID}" + | 
 |  |  |                       $" and HMainSourceEntryID={omdelMian.HMainSourceEntryID} and HICMOBillNo='{omdelMian.HICMOBillNo}' and HICMOEntrySEQ={omdelMian.HICMOEntrySEQ} and HSourceID={omdelMian.HSourceID}", "Sc_WorkBillSortBillMain"); | 
 |  |  |                     if ((ds.Tables[0].Rows.Count == 1 && ds.Tables[0].Rows[0]["HInterID"].ToString() != omdelMian.HInterID.ToString())) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = "çäº§èµæºæéå¤,请修æ¹!"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     //ä¿®æ¹ | 
 |  |  |                     oCN.RunProc($"update Sc_WorkBillSortBillMain set HDate='{omdelMian.HDate}',HUpDater='{omdelMian.HMaker}',HUpDateDate=GETDATE()" + | 
 |  |  |                                   $", HRemark='{omdelMian.HRemark}', HPrintQty={(omdelMian.HPrintQty == null ? 0 : omdelMian.HPrintQty)}" + | 
 |  |  | 
 |  |  |                                   $", HHangUp='{(omdelMian.HHangUp == true ? 1 : 0)}' where HInterID={omdelMian.HInterID}"); | 
 |  |  |                 } | 
 |  |  |                 //ä¿åå表 | 
 |  |  |                 objJsonResult = AddBillSub(msg3, hentryid); | 
 |  |  |                 objJsonResult = AddBillSub(msg3); | 
 |  |  |                 if (objJsonResult.code == "0") | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public json AddBillSub(string msg3, int hentryid) | 
 |  |  |         public json AddBillSub(string msg3) | 
 |  |  |         { | 
 |  |  |             //è·åè¡¨æ ¼æ°æ® | 
 |  |  |             ds = oCN.RunProcReturn($"select * from  h_v_JIT_Sc_WorkBillSortBillList where åæ®å·='{omdelMian.HBillNo}'", "h_v_JIT_Sc_WorkBillSortBillList"); | 
 |  |  |  | 
 |  |  |             //å é¤å表 | 
 |  |  |             oCN.RunProc("delete from Sc_WorkBillSortBillSub where HInterID='" + omdelMian.HInterID.ToString() + "' and HEntryID='" + hentryid + "'"); | 
 |  |  |             oCN.RunProc("delete from Sc_WorkBillSortBillSub where HInterID='" + omdelMian.HInterID.ToString() + "'"); | 
 |  |  |  | 
 |  |  |             omodelsub = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Sc_WorkBillSortBillSub>>(msg3); | 
 |  |  |             int i = 1; | 
 |  |  |             //æå
¥å表 | 
 |  |  |             foreach (Models.Sc_WorkBillSortBillSub oSub in omodelsub) | 
 |  |  |             { | 
 |  |  |                 oCN.RunProc("insert into Sc_WorkBillSortBillSub(HInterID,HEntryID,HRemark,HMasterDate,HQty" + | 
 |  |  |                 oCN.RunProc("insert into Sc_WorkBillSortBillSub(HInterID,HSEQ,HRemark,HMasterDate,HQty" + | 
 |  |  |                             ", HRptFinishQty, HTimes, HUseTimes, HBTimes, HETimes" + | 
 |  |  |                             ", HDateSub, HCloseMan, HEntryCloseDate, HCloseTypeSub, HColumn" + | 
 |  |  |                             ", HLockedSub, HComplete, HStatusTag, HIsHandModify)" + | 
 |  |  |                             $"values({omdelMian.HInterID}, {(hentryid == -1 ? i : omodelsub.Count==1? hentryid:i==1? hentryid:(i+ds.Tables[0].Rows.Count-1))}, '{oSub.HRemark}', '{oSub.HMasterDate}', {(oSub.HQty == null ? 0: oSub.HQty)}" + | 
 |  |  |                             $"values({omdelMian.HInterID}, {i}, '{oSub.HRemark}', '{oSub.HMasterDate}', {(oSub.HQty == null ? 0: oSub.HQty)}" + | 
 |  |  |                             $", {(oSub.HRptFinishQty == null ? 0: oSub.HRptFinishQty)}, {(oSub.HTimes == null ? 0: oSub.HTimes)}, {(oSub.HUseTimes == null ? 0: oSub.HUseTimes)}, '{oSub.HBTimes}', '{oSub.HETimes}'" + | 
 |  |  |                             $", '{oSub.HDateSub}', '{oSub.HCloseMan}', '{oSub.HEntryCloseDate}', {(oSub.HCloseTypeSub == true ? 1 : 0)}, '{oSub.HColumn}'" + | 
 |  |  |                             $", '{(oSub.HLockedSub == true ? 1 : 0)}', '{oSub.HComplete}', '{(oSub.HStatusTag == true ? 1 : 0)}', '{(oSub.HIsHandModify == true ? 1 : 0)}')"); | 
 |  |  | 
 |  |  |         #region æ¥è®¡åå·¥å å é¤ | 
 |  |  |         [Route("Sc_WorkBillSortBill/DelWorkBillSortBillList")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object DelWorkBillSortBillList(string HInterID, string HEntryID, string User) | 
 |  |  |         public object DelWorkBillSortBillList(string HInterID,int DataType, string User) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 ds = oCN.RunProcReturn("select * from h_v_JIT_Sc_WorkBillSortBillList where 1=1 and hmainid=" + HInterID, "h_v_JIT_Sc_WorkBillSortBillList"); | 
 |  |  |  | 
 |  |  |                 if (ds.Tables[0].Rows.Count > 0) | 
 |  |  |                 //DataType 1=æ¥è®¡åå·¥å å¤éå é¤   2=æ¥è®¡åå¹³å°å¤éå é¤ | 
 |  |  |                 if (DataType == 1) | 
 |  |  |                 { | 
 |  |  |                     if (ds.Tables[0].Rows[0]["åæ®ç¶æ"].ToString() != "1") | 
 |  |  |                     var NumData = HInterID.Split(','); | 
 |  |  |  | 
 |  |  |                     for (int i = 0; i < NumData.Length; i++) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = "å½ååæ®ä¸è½å é¤ï¼"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                         var NumData_T = NumData[i].Split('_'); | 
 |  |  |  | 
 |  |  |                         ds = oCN.RunProcReturn("select * from h_v_JIT_Sc_WorkBillSortBillList_Left where 1=1 and hmainid=" + NumData_T[0], "h_v_JIT_Sc_WorkBillSortBillList"); | 
 |  |  |  | 
 |  |  |                         if (ds.Tables[0].Rows.Count > 0) | 
 |  |  |                         { | 
 |  |  |                             if (ds.Tables[0].Rows[0]["åæ®ç¶æ"].ToString() != "1") | 
 |  |  |                             { | 
 |  |  |                                 objJsonResult.code = "0"; | 
 |  |  |                                 objJsonResult.count = 0; | 
 |  |  |                                 objJsonResult.Message = "å½ååæ®ä¸è½å é¤ï¼"; | 
 |  |  |                                 objJsonResult.data = null; | 
 |  |  |                                 return objJsonResult; | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  |                             oCN.BeginTran();//å¼å¯äºå¡ | 
 |  |  |  | 
 |  |  |                             if (ds.Tables[0].Rows.Count == 1) | 
 |  |  |                             { | 
 |  |  |                                 oCN.RunProc($"delete from Sc_WorkBillSortBillMain where HInterID={ NumData_T[0]}"); | 
 |  |  |                             } | 
 |  |  |                             oCN.RunProc($"delete from Sc_WorkBillSortBillSub where HInterID={ NumData_T[0]} and HEntryID={ NumData_T[1]}"); | 
 |  |  |  | 
 |  |  |                             oCN.Commit();//ç»æäºå¡ | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     objJsonResult.code = "1"; | 
 |  |  |                     objJsonResult.count = 1; | 
 |  |  |                     objJsonResult.Message = "å é¤æåï¼"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 else if (DataType == 2) | 
 |  |  |                 { | 
 |  |  |                     var NumData = HInterID.Split(','); | 
 |  |  |  | 
 |  |  |                     oCN.BeginTran();//å¼å¯äºå¡ | 
 |  |  |  | 
 |  |  |                     if (ds.Tables[0].Rows.Count == 1) | 
 |  |  |                     for (int i = 0; i < NumData.Length; i++) | 
 |  |  |                     { | 
 |  |  |                         oCN.RunProc($"delete from Sc_WorkBillSortBillMain where HInterID={HInterID}"); | 
 |  |  |                         ds = oCN.RunProcReturn("select * from h_v_JIT_Sc_WorkBillSortBillList where 1=1 and hmainid=" + NumData[i], "h_v_JIT_Sc_WorkBillSortBillList"); | 
 |  |  |  | 
 |  |  |                         if (ds.Tables[0].Rows.Count > 0) | 
 |  |  |                         { | 
 |  |  |                             if (ds.Tables[0].Rows[0]["åæ®ç¶æ"].ToString() != "1") | 
 |  |  |                             { | 
 |  |  |                                 objJsonResult.code = "0"; | 
 |  |  |                                 objJsonResult.count = 0; | 
 |  |  |                                 objJsonResult.Message = "å½ååæ®ä¸è½å é¤ï¼"; | 
 |  |  |                                 objJsonResult.data = null; | 
 |  |  |                                 return objJsonResult; | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  |                             oCN.BeginTran();//å¼å¯äºå¡ | 
 |  |  |  | 
 |  |  |                             oCN.RunProc($"delete from Sc_WorkBillSortBillSub where HInterID={ NumData[i]}"); | 
 |  |  |                             oCN.RunProc($"delete from Sc_WorkBillSortBillMain where HInterID={ NumData[i]}"); | 
 |  |  |  | 
 |  |  |                             oCN.Commit();//ç»æäºå¡ | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     oCN.RunProc($"delete from Sc_WorkBillSortBillSub where HInterID={HInterID} and HEntryID={HEntryID}"); | 
 |  |  |  | 
 |  |  |                     oCN.Commit();//ç»æäºå¡ | 
 |  |  |  | 
 |  |  |                     objJsonResult.code = "1"; | 
 |  |  |                     objJsonResult.count = 1; | 
 |  |  |                     objJsonResult.Message = "å é¤æåï¼"; | 
 |  |  | 
 |  |  |  | 
 |  |  |                 if (ds.Tables[0].Rows.Count > 0) | 
 |  |  |                 { | 
 |  |  |                     if (ds.Tables[0].Rows[0]["åæ®ç¶æ"].ToString() == "2") | 
 |  |  |                     if (ds.Tables[0].Rows[0]["åæ®ç¶æ"].ToString() == "3") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = "å½ååæ®æ£å¨å®¡æ ¸,ä¸è½å
³éï¼"; | 
 |  |  |                         objJsonResult.Message = "å½å忮已å
³éï¼"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |         #region æ¥è®¡åå·¥å åå
³é | 
 |  |  |         [Route("Sc_WorkBillSortBill/CancelCloseBillWorkBillSortBillList")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object CancelCloseBillWorkBillSortBillList(string HInterID, string User) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 //å
³éæé | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log_second("Sc_WorkBillSortBill_Close", 1, false, User)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "æ æéå
³éï¼"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 ds = oCN.RunProcReturn("select * from h_v_JIT_Sc_WorkBillSortBillList where 1=1 and hmainid=" + HInterID, "h_v_JIT_Sc_WorkBillSortBillList"); | 
 |  |  |  | 
 |  |  |                 if (ds.Tables[0].Rows.Count > 0) | 
 |  |  |                 { | 
 |  |  |                     if (ds.Tables[0].Rows[0]["åæ®ç¶æ"].ToString() != "3") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = "å½ååæ®æ²¡æå¤äºå
³éç¶æï¼"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     oCN.BeginTran();//å¼å¯äºå¡ | 
 |  |  |                     string HBillStatus = ds.Tables[0].Rows[0]["审核人"].ToString() == "" ? "1" : "2"; | 
 |  |  |                     oCN.RunProc("update Sc_WorkBillSortBillMain set HBillStatus='" + HBillStatus + "',HCloseMan='',HCloseDate=null   where HInterID=" + HInterID + ""); | 
 |  |  |  | 
 |  |  |                     oCN.Commit();//ç»æäºå¡ | 
 |  |  |  | 
 |  |  |                     objJsonResult.code = "1"; | 
 |  |  |                     objJsonResult.count = 1; | 
 |  |  |                     objJsonResult.Message = "å
³éæåï¼"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  |                 objJsonResult.count = 0; | 
 |  |  |                 objJsonResult.Message = "å½ååæ®ä¸åå¨,æ æ³å
³éï¼"; | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 oCN.RollBack();//åæ»äºå¡ | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  |                 objJsonResult.count = 0; | 
 |  |  |                 objJsonResult.Message = e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |     } | 
 |  |  | } |