| using System; | 
| using System.Collections.Generic; | 
| using System.Text; | 
| using System.Data;  | 
|   | 
| namespace DAL | 
| { | 
|     public  class ClsSc_ICMOSortBill | 
|     { | 
|   | 
|         public string MvarItemKey; | 
|         public string MvarReportTitle; | 
|         public long HRelationInterID; | 
|         public List<Cls_ICTLDetail> oDetailColl = new List<Cls_ICTLDetail>(); | 
|         public List<Model.ClsSc_ICMOSortBillMain> MainColl = new List<Model.ClsSc_ICMOSortBillMain>(); | 
|         SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); | 
|         public bool FillTag=false; | 
|         public ClsSc_ICMOSortBill() | 
|         { | 
|             MvarItemKey = "3708"; | 
|             MvarReportTitle = "生产计划排程"; | 
|         } | 
|   | 
|         #region 固定代码 | 
|          | 
|         ~ClsSc_ICMOSortBill() | 
|         { | 
|             //DetailColl = null; | 
|             MainColl = null; | 
|         } | 
|         //删除子表 | 
|         public void DeleteBillSub(Int64 lngBillKey) | 
|         { | 
|             oCn.RunProc("Delete From Sc_ICMOSortBillSub where HInterID=" + lngBillKey.ToString()); | 
|         } | 
|         //删除主表 | 
|         public void DeleteBillMain(Int64 lngBillKey) | 
|         { | 
|             oCn.RunProc("Delete From Sc_ICMOSortBillMain where HInterID=" + lngBillKey.ToString()); | 
|         } | 
|         //删除单据 | 
|         public bool DeleteBill(Int64 lngBillKey, ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 oCn.BeginTran(); | 
|                 //删除关联  | 
|                 //删除明细表 | 
|                 DeleteBillSub(lngBillKey); | 
|                 //删除主表 | 
|                 DeleteBillMain(lngBillKey); | 
|                 sReturn = "删除单据成功!"; | 
|                 oCn.Commit(); | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 sReturn = e.Message; | 
|                 oCn.RollBack(); | 
|                 return false; | 
|             } | 
|         } | 
|         | 
|      | 
|         #endregion | 
|          | 
|         //新增单据 | 
|         public bool AddBill(Int64 sDeptID,ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 long lInterID = 0; | 
|                 string sBillNo = ""; | 
|                 //得到mainid | 
|                 HRelationInterID = DBUtility.ClsPub.CreateBillID(MvarItemKey, ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 //若MAINDI重复则重新获取 | 
|                 oCn.BeginTran(); | 
|                 //按部门删除 | 
|                 oCn.RunProc("update Sc_ICMOSortBillMain set HDeleteMan='System',HDeleteDate=getdate()  where HDeleteMan='' and  HDeptID=" + sDeptID.ToString()); | 
|                 // | 
|                 //主表 | 
|                 foreach (Model.ClsSc_ICMOSortBillMain oMain in MainColl) | 
|                 { | 
|                     //lInterID = DBUtility.ClsPub.CreateBillID(MvarItemKey, ref DBUtility.ClsPub.sExeReturnInfo); | 
|                     oCn.RunProc("Insert Into Sc_ICMOSortBillMain   " + | 
|                     "(HYear,HPeriod,HInterID,HBillNo,HBillType,HDate" + | 
|                     ",HDeptID,HMaterID,HSourceID,HUnitID,HSplitNo,HYX" + | 
|                     ",HPlanBeginDate,HPlanEndDate,HPlanQty,HSplitPlanQty,HSplitRelationQty,HRelationQty" + | 
|                     ",HKTQ,HWorkQty,HReadyTimes,HRemark,HMaker,HMakeDate,HSourceInterID" + | 
|                     ",HSourceEntryID,HSourceBillNo,HSourceBillType,HICMOInterID,HICMOBillNo,HSeOrderBillNo" + | 
|                     ",HSeOrderInterID,HSeOrderEntryID,HRelationInterID,HWorkerID,HGroupID" + | 
|                     ") " + | 
|                     " values ('" + oMain.HYear.ToString() + "','" + oMain.HPeriod.ToString() + "'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo.Trim() + "','" + MvarItemKey + "','" + oMain.HDate.ToShortDateString() + "'" + | 
|                     "," + oMain.HDeptID.ToString() + "," + oMain.HMaterID.ToString() + "," + oMain.HSourceID.ToString() + "," + oMain.HUnitID.ToString() + ",'" + oMain.HSplitNo.Trim() + "'," + oMain.HYX.ToString() + | 
|                     ",'" + oMain.HPlanBeginDate.ToShortDateString() + "','" + oMain.HPlanEndDate.ToShortDateString() + "'," + oMain.HPlanQty.ToString() + "," + oMain.HSplitPlanQty.ToString() + "," + oMain.HSplitRelationQty.ToString() + "," + oMain.HRelationQty.ToString() + | 
|                     "," + DBUtility.ClsPub.BoolToString(oMain.HKTQ) + "," + oMain.HWorkQty.ToString() + "," + oMain.HReadyTimes.ToString() + ",'" + oMain.HRemark + "','" + DBUtility.ClsPub.CurUserName + "',getdate()," + oMain.HSourceInterID.ToString() + | 
|                     "," + oMain.HSourceEntryID.ToString() + ",'" + oMain.HSourceBillNo + "','" +oMain.HSourceBillType + "'," + oMain.HICMOInterID.ToString() + ",'" + oMain.HICMOBillNo.Trim() + "','" + oMain.HSeOrderBillNo.Trim() + "'" + | 
|                     "," + oMain.HSeOrderInterID.ToString() + "," + oMain.HSeOrderEntryID.ToString() + "," + HRelationInterID.ToString() + "," + oMain.HWorkerID.ToString() + "," + oMain.HGroupID.ToString() + | 
|                     ") "); | 
|   | 
|                     //插入子表 | 
|                     foreach (Model.ClsSc_ICMOSortBillSub oSub in oMain.DetailColl) | 
|                     { | 
|                         oCn.RunProc("Insert into Sc_ICMOSortBillSub " + | 
|                            " (HInterID,HEntryID,HMasterDate,HDate" + | 
|                            ",HQty,HStatusTag,HiForeColor,HiBackColor" + | 
|                            ",HRemark,HCloseMan,HCloseType" + | 
|                            ") " + | 
|                            " values (" | 
|                            + oMain.HInterID.ToString()  + "," + oSub.HEntryID.ToString() + ",'" + oSub.HMasterDate.ToShortDateString() + "','" + oSub.HDate.ToShortDateString() + "'" + | 
|                            "," +DBUtility.ClsPub.isSingle(oSub.HQty) + "," + oSub.HStatusTag.ToString() + ",'" + oSub.HiForeColor.ToString() + "','" + oSub.HiBackColor.ToString() + | 
|                            "','" + oSub.HRemark + "','" + oSub.HCloseMan + "'," + DBUtility.ClsPub.BoolToString(oSub.HCloseType) + | 
|                            ") "); | 
|                     } | 
|                      | 
|                 } | 
|                  | 
|                 sReturn = "新增单据成功!"; | 
|                 oCn.Commit(); | 
|                 ////存入生产状态表 | 
|                 oCn.RunProc("exec h_p_Sc_ICMOBillStatus_Add " + sDeptID.ToString()); | 
|                 // | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 sReturn = e.Message; | 
|                 oCn.RollBack(); | 
|                 return false; | 
|             } | 
|         } | 
|         //显示单据 | 
|         public bool ShowBill(Int64 lngBillKey, ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 //查询主表 | 
|                 DataSet Ds; | 
|                 DataSet DsSub; | 
|                 Ds = oCn.RunProcReturn("Select * from Sc_ICMOSortBillMain Where HRelationInterID=" + lngBillKey.ToString() + " and HICMOInterID in (select HInterID from h_v_K3_ICMOBillUnCloseList) ", "Sc_ICMOSortBillMain"); | 
|                 if(Ds.Tables[0].Rows.Count==0) | 
|                 { | 
|                     sReturn = "单据未找到!"; | 
|                     return false; | 
|                 } | 
|                 //赋值 | 
|                 MainColl.Clear(); | 
|                 for (int i = 0; i < Ds.Tables[0].Rows.Count; i++) | 
|                 { | 
|                     Model.ClsSc_ICMOSortBillMain oMain = new Model.ClsSc_ICMOSortBillMain(); | 
|                     oMain.HRelationInterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[i]["HRelationInterID"]);  | 
|                     oMain.HYear = DBUtility.ClsPub.isInt(Ds.Tables[0].Rows[i]["HYear"]); | 
|                     oMain.HPeriod = DBUtility.ClsPub.isInt(Ds.Tables[0].Rows[i]["HPeriod"] ); | 
|                     oMain.HInterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[i]["HInterID"] ); | 
|                     oMain.HBillNo = Ds.Tables[0].Rows[i]["HBillNo"].ToString(); | 
|                     oMain.HDate = Convert.ToDateTime(Ds.Tables[0].Rows[i]["HDate"].ToString().Trim()); | 
|                     oMain.HDeptID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[i]["HDeptID"].ToString()); | 
|                     oMain.HMaterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[i]["HMaterID"].ToString()); | 
|                     oMain.HGroupID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[i]["HGroupID"].ToString()); | 
|                     oMain.HWorkerID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[i]["HWorkerID"].ToString()); | 
|                     oMain.HUnitID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[i]["HUnitID"].ToString()); | 
|                     oMain.HSourceID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[i]["HSourceID"]); | 
|                     oMain.HSplitNo = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[i]["HSplitNo"].ToString()); | 
|                     oMain.HYX = DBUtility.ClsPub.isInt(Ds.Tables[0].Rows[i]["HYX"]);  | 
|                     oMain.HPlanBeginDate = Convert.ToDateTime(Ds.Tables[0].Rows[i]["HPlanBeginDate"]); | 
|                     oMain.HPlanEndDate = Convert.ToDateTime(Ds.Tables[0].Rows[i]["HPlanEndDate"]); | 
|                     oMain.HPlanQty = DBUtility.ClsPub.isDoule(Ds.Tables[0].Rows[i]["HPlanQty"]); | 
|                     oMain.HSplitPlanQty = DBUtility.ClsPub.isDoule(Ds.Tables[0].Rows[i]["HSplitPlanQty"]); | 
|                     oMain.HSplitRelationQty = DBUtility.ClsPub.isDoule(Ds.Tables[0].Rows[i]["HSplitRelationQty"]); | 
|                     oMain.HRelationQty = DBUtility.ClsPub.isDoule(Ds.Tables[0].Rows[i]["HRelationQty"]); | 
|                     oMain.HKTQ = DBUtility.ClsPub.isBool(Ds.Tables[0].Rows[i]["HKTQ"]); | 
|                     oMain.HReadyTimes = DBUtility.ClsPub.isDoule(Ds.Tables[0].Rows[i]["HReadyTimes"]); | 
|                     oMain.HRemark = Ds.Tables[0].Rows[i]["HRemark"].ToString().Trim(); | 
|                     // | 
|                     oMain.HMaker = Ds.Tables[0].Rows[i]["HMaker"].ToString().Trim(); | 
|                     oMain.HMakeDate = Ds.Tables[0].Rows[i]["HMakeDate"].ToString().Trim(); | 
|                     oMain.HUpDateDate = Ds.Tables[0].Rows[i]["HUpDateDate"].ToString().Trim(); | 
|                     oMain.HUpDater = Ds.Tables[0].Rows[i]["HUpDater"].ToString().Trim(); | 
|                     oMain.HCheckDate = Ds.Tables[0].Rows[i]["HCheckDate"].ToString().Trim(); | 
|                     oMain.HChecker = Ds.Tables[0].Rows[i]["HChecker"].ToString().Trim(); | 
|                     oMain.HCloseDate = Ds.Tables[0].Rows[i]["HCloseDate"].ToString().Trim(); | 
|                     oMain.HCloseMan = Ds.Tables[0].Rows[i]["HCloseMan"].ToString().Trim(); | 
|                     oMain.HDeleteDate = Ds.Tables[0].Rows[i]["HDeleteDate"].ToString().Trim(); | 
|                     oMain.HDeleteMan = Ds.Tables[0].Rows[i]["HDeleteMan"].ToString().Trim(); | 
|                     // | 
|                     oMain.HSourceInterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[i]["HSourceInterID"].ToString()); | 
|                     oMain.HSourceEntryID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[i]["HSourceEntryID"].ToString()); | 
|                     oMain.HSourceBillType = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[i]["HSourceBillType"].ToString()); | 
|                     oMain.HSourceBillNo = Ds.Tables[0].Rows[i]["HSourceBillNo"].ToString().Trim(); | 
|                     oMain.HICMOInterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[i]["HICMOInterID"]); | 
|                     oMain.HICMOBillNo = Ds.Tables[0].Rows[i]["HICMOBillNo"].ToString().Trim(); | 
|                     oMain.HSeOrderInterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[i]["HSeOrderInterID"]); | 
|                     oMain.HSeOrderEntryID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[i]["HSeOrderEntryID"]); | 
|                     oMain.HSeOrderBillNo = Ds.Tables[0].Rows[i]["HSeOrderBillNo"].ToString().Trim(); | 
|                     // | 
|                     DsSub = oCn.RunProcReturn("Select * from Sc_ICMOSortBillSub Where HInterID=" + oMain.HInterID.ToString(), "Sc_ICMOSortBillSub"); | 
|                     oMain.DetailColl.Clear();//清空 | 
|                     for (int j = 0; j < DsSub.Tables[0].Rows.Count; j++) | 
|                     { | 
|                         Model.ClsSc_ICMOSortBillSub oSub = new Model.ClsSc_ICMOSortBillSub(); | 
|                         oSub.HInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[j]["HInterID"]); | 
|                         oSub.HEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[j]["HEntryID"]); | 
|                         oSub.HMasterDate = DBUtility.ClsPub.isDate(DsSub.Tables[0].Rows[j]["HMasterDate"]); | 
|                         oSub.HDate = DBUtility.ClsPub.isDate(DsSub.Tables[0].Rows[j]["HDate"]); | 
|                         oSub.HQty = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[j]["HQty"]); | 
|                         oSub.HStatusTag = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[j]["HStatusTag"]); | 
|                         oSub.HiForeColor = DsSub.Tables[0].Rows[j]["HiForeColor"].ToString(); | 
|                         oSub.HiBackColor = DsSub.Tables[0].Rows[j]["HiBackColor"].ToString(); | 
|                         oSub.HRemark = DsSub.Tables[0].Rows[j]["HRemark"].ToString().Trim(); | 
|                         oSub.HCloseMan = DsSub.Tables[0].Rows[j]["HCloseMan"].ToString().Trim(); | 
|                         oSub.HCloseType = (bool)DsSub.Tables[0].Rows[j]["HCloseType"]; | 
|                         oMain.DetailColl.Add(oSub); | 
|                     } | 
|                     // | 
|                     MainColl.Add(oMain); | 
|                 } | 
|                 //循环 | 
|                  | 
|                 sReturn = "显示单据成功!"; | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 sReturn = e.Message; | 
|                 return false; | 
|             } | 
|         } | 
|         //得到该部门HRelationInterID | 
|         public Int64 GetRelationInterIDByDept(Int64 sDeptID) | 
|         { | 
|             DataSet DS ; | 
|             try | 
|             { | 
|                 DS = oCn.RunProcReturn("Select isnull(max(HRelationInterID),0) HRelationInterID  from Sc_ICMOSortBillMain Where HDeptID=" + sDeptID + "  and Hdeleteman='' ", "Sc_ICMOSortBillMain"); | 
|                 if (DS.Tables[0].Rows.Count == 0) | 
|                     return 0; | 
|                 else | 
|                 { | 
|   | 
|                     return DBUtility.ClsPub.isLong(DS.Tables[0].Rows[0]["HRelationInterID"]); | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 return 0; | 
|             } | 
|         } | 
|   | 
|         //设置本行 资源 产能,拆分汇报数量 | 
|         public Single GetSourceWorkQty(Int64 sMaterID,Int64 sProcID,Int64 sSourceID) | 
|         { | 
|             DataSet DS ; | 
|             try | 
|             { | 
|                 DS = oCn.RunProcReturn("exec h_p_Sc_SetSourceWorkQty "+sMaterID.ToString()+","+sProcID.ToString()+","+sSourceID.ToString(), "xt_xtgnb"); | 
|                 if (DS.Tables[0].Rows.Count == 0) | 
|                     return 0; | 
|                 else | 
|                 { | 
|                     return DBUtility.ClsPub.isSingle(DS.Tables[0].Rows[0]["HWorkQty"]); | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 return 0; | 
|             } | 
|         } | 
|   | 
|         //设置本行 资源  ,拆分汇报数量 | 
|         public bool GetSourceRelationQty(Int64 ICMOInterID, Int64 sSourceID, ref Single RelationQty, ref Single SplitRelationQty) | 
|         { | 
|             DataSet DS ; | 
|             try | 
|             { | 
|                 DS = oCn.RunProcReturn("exec h_p_Sc_SetSourceRelationQty " + ICMOInterID.ToString() + "," + sSourceID.ToString(), "xt_xtgnb"); | 
|                 if (DS.Tables[0].Rows.Count == 0) | 
|                 { | 
|                     RelationQty = 0; | 
|                     SplitRelationQty = 0; | 
|                     return false; | 
|                 } | 
|                 else | 
|                 { | 
|                     RelationQty = DBUtility.ClsPub.isSingle(DS.Tables[0].Rows[0]["RelationQty"]); | 
|                     SplitRelationQty = DBUtility.ClsPub.isSingle(DS.Tables[0].Rows[0]["SplitRelationQty"]); | 
|                     return true; | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 RelationQty = 0; | 
|                 SplitRelationQty = 0; | 
|                 return false; | 
|             } | 
|         } | 
|   | 
|         //得到最新排程时间 | 
|         public DateTime GetNewSetup(Int64 HDeptID) | 
|         { | 
|             try | 
|             { | 
|                 DataSet DS = oCn.RunProcReturn("select top 1 HMakeDate from Sc_ICMOSortBillMain Where HDeptID=" + HDeptID.ToString() + " and HDeleteMan='' order by HDate desc", "Sc_ICMOSortBillMain"); | 
|                 if (DS == null || DS.Tables[0].Rows.Count == 0) | 
|                 { | 
|                     return DateTime.Today; | 
|                 } | 
|                 else | 
|                 { | 
|                     return DBUtility.ClsPub.isDate(DS.Tables[0].Rows[0]["HMakeDate"]); | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 throw (e); | 
|             } | 
|         } | 
|   | 
|   | 
|         //填充投料单 | 
|         public void FillData(Int64 HDeptID) | 
|         {  | 
|             string sSQL=""; | 
|             FillTag = false; | 
|             oDetailColl.Clear(); | 
|             sSQL = "exec h_v_Sc_GetICMOSortPPBOMQty " + HDeptID.ToString(); | 
|             try | 
|             { | 
|                 DataSet Ds = oCn.RunProcReturn(sSQL, "gy_Material"); | 
|                 if (Ds == null || Ds.Tables[0].Rows.Count == 0) | 
|                 { | 
|                     return; | 
|                 } | 
|                 for (int i = 0; i < Ds.Tables[0].Rows.Count; i++) | 
|                 { | 
|                     Cls_ICTLDetail oTL = new Cls_ICTLDetail(); | 
|                     oTL.BLS = DBUtility.ClsPub.isSingle(Ds.Tables[0].Rows[i]["BLS"]); | 
|                     oTL.DWYL = DBUtility.ClsPub.isSingle(Ds.Tables[0].Rows[i]["DWYL"]); | 
|                     oTL.FAuxQty = DBUtility.ClsPub.isSingle(Ds.Tables[0].Rows[i]["FAuxQty"]); | 
|                     oTL.FqtyPick = DBUtility.ClsPub.isSingle(Ds.Tables[0].Rows[i]["FqtyPick"]); | 
|                     oTL.GGXH = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[i]["GGXH"]); | 
|                     oTL.JHTLS = DBUtility.ClsPub.isSingle(Ds.Tables[0].Rows[i]["JHTLS"]); | 
|                     oTL.JLDW = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[i]["JLDW"]); | 
|                     oTL.LLS = DBUtility.ClsPub.isSingle(Ds.Tables[0].Rows[i]["LLS"]); | 
|                     oTL.MainGGXH = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[i]["MainGGXH"]); | 
|                     oTL.MainWLDM = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[i]["MainWLDM"]); | 
|                     oTL.MainWLMC = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[i]["MainWLMC"]); | 
|                     oTL.OrderAmount = DBUtility.ClsPub.isSingle(Ds.Tables[0].Rows[i]["OrderAmount"]); | 
|                     oTL.RQ = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[i]["RQ"]); | 
|                     oTL.SCRWDH = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[i]["SCRWDH"]); | 
|                     oTL.StockAmount = DBUtility.ClsPub.isSingle(Ds.Tables[0].Rows[i]["StockAmount"]); | 
|                     oTL.TLDH = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[i]["TLDH"]); | 
|                     oTL.WFS = DBUtility.ClsPub.isSingle(Ds.Tables[0].Rows[i]["WFS"]); | 
|                     oTL.WLDM = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[i]["WLDM"]); | 
|                     oTL.WLMC = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[i]["WLMC"]); | 
|                     oTL.YFSL = DBUtility.ClsPub.isSingle(Ds.Tables[0].Rows[i]["YFSL"]); | 
|                     oDetailColl.Add(oTL); | 
|                 } | 
|                 FillTag = true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 throw (e); | 
|             } | 
|         } | 
|         // | 
|         public List<Cls_ICTLDetail>  GetTLColl(string sSCRWDH) | 
|         { | 
|             List<Cls_ICTLDetail> oColl=new List<Cls_ICTLDetail>();   | 
|             foreach(Cls_ICTLDetail oTL in oDetailColl) | 
|             { | 
|                 if(oTL.SCRWDH.Trim()==sSCRWDH) | 
|                 { | 
|                     oColl.Add(oTL); | 
|                 } | 
|             } | 
|             return oColl; | 
|         } | 
|   | 
|         //设置计划开工日期 | 
|         public bool Sub_setPlanBeginDate(Int64 lngBillKey,DateTime sDate, ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 oCn.RunProc("exec h_p_K3_SetICMOSortBillBeginDate "+lngBillKey.ToString()+",'"+sDate.ToShortDateString()+"'" ); | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 sReturn = e.Message;  | 
|                 return false; | 
|             } | 
|         } | 
|   | 
|         //设置计划完工日期 | 
|         public bool Sub_setPlanEndDate(Int64 lngBillKey, DateTime sDate, ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 oCn.RunProc("exec h_p_K3_SetICMOSortBillEndDate " + lngBillKey.ToString() + ",'" + sDate.ToShortDateString() + "'"); | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 sReturn = e.Message; | 
|                 return false; | 
|             } | 
|         } | 
|   | 
|         //根据ID得到生产计划 | 
|         public DataSet Sub_GetScInfoByMainID(Int64 lngBillKey, ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 DataSet ds; | 
|                 ds = oCn.RunProcReturn("select  生产任务单号,部门名称,总计划数,本日计划,产品代码,产品名称,产品规格,资源名称,日期 from h_v_Sc_ICMOSortBillList Where HMainID="+lngBillKey.ToString(), "xt_xtgnb"); | 
|                 if (ds == null || ds.Tables[0].Rows.Count == 0) | 
|                 { | 
|                     return null; | 
|                 } | 
|                 return ds; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 sReturn = e.Message; | 
|                 return null; | 
|             } | 
|         } | 
|   | 
|         //根据信息 设置---是否缺料,确认时间 | 
|         public bool Sub_SetStatusByInfo(Int64 lSourceID,Int64 lSourceInterID,DateTime dDate, Int64 HStatus, ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 oCn.BeginTran(); | 
|                 // | 
|                 oCn.RunProc("exec h_p_Sc_SetICMOStatus_ReadyMater " + lSourceID.ToString() + "," + lSourceInterID.ToString() + ",'" + dDate.ToShortDateString() + "'," + HStatus.ToString() +",'" +DBUtility.ClsPub.CurUserName + "'"); | 
|                 // | 
|                 oCn.Commit(); | 
|                 // | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 sReturn = e.Message; | 
|                 oCn.RollBack(); | 
|                 return false; | 
|             } | 
|         } | 
|   | 
|         //根据信息 设置 计划执行 | 
|         public bool Sub_SetStartByInfo(Int64 lSourceID, Int64 lSourceInterID, DateTime dDate, Int64 HStatus, ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 oCn.BeginTran(); | 
|                 // | 
|                 oCn.RunProc("exec h_p_Sc_SetICMOStatus_ReadyStart " + lSourceID.ToString() + "," + lSourceInterID.ToString() + ",'" + dDate.ToShortDateString() + "'," + HStatus.ToString() + ",'" + DBUtility.ClsPub.CurUserName + "'"); | 
|                 // | 
|                 oCn.Commit(); | 
|                 // | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 sReturn = e.Message; | 
|                 oCn.RollBack(); | 
|                 return false; | 
|             } | 
|         } | 
|   | 
|         ///<summary> | 
|         ///查询生产计划是否结案 | 
|         ///</summary> | 
|         ///<param name="lngBillKey">生产状态表ID</param> | 
|         ///<returns>False为未结案,True为已结案</returns> | 
|         public bool Sub_GetICMOSortClose(Int64 lngBillKey, ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 DataSet Ds; | 
|                 Ds = oCn.RunProcReturn("exec h_p_Sc_GetICMOSortClose " + lngBillKey.ToString(), "xt_xtgnb"); | 
|                 if (Ds.Tables[0].Rows.Count == 0) | 
|                 { | 
|                     return false; | 
|                 } | 
|                 else | 
|                 { | 
|                     return true; | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 sReturn = e.Message; | 
|                 return false; | 
|             } | 
|         } | 
|   | 
|     } | 
|   | 
| } |