| using System; | 
| using System.Collections.Generic; | 
| using System.Text; | 
| using System.Data; | 
|   | 
| namespace DAL | 
| { | 
|     public class ClsGy_BarCodeBill_Ctl:DBUtility.ClsGy_Base_Ctl  | 
|     { | 
|         SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();  | 
|         //原代码 用于 替换子项目 | 
|         public string HOldNumber; | 
|         public Model.ClsGy_BarCodeBill_WMS_Model oModel = new Model.ClsGy_BarCodeBill_WMS_Model(); | 
|         public const string ModRightName = "Gy_BarCodeBillList"; | 
|         public const string ModRightNameEdit = ModRightName + "_Edit";      //删除 | 
|         public const string ModRightNameDelete = ModRightName + "_Delete";  //作废 | 
|         public const string ModRightNamePrint = ModRightName + "_Print";    //打印 | 
|         //新增 | 
|         public override bool AddNew() | 
|         { | 
|              | 
|             try | 
|             { | 
|                 oCn.BeginTran(); | 
|                 //oCn.RunProc("Insert into " + MvarItemKey + " " + | 
|                 //    " (HNumber,HName,HHelpCode,HShortNumber,HParentID" + | 
|                 //    ",HLevel,HEndFlag,HStopflag,HRemark,HEnglishName) " + | 
|                 //    " Values('" + oModel.HNumber + "','" + oModel.HName + "','" + oModel.HHelpCode + "','" + oModel.HShortNumber + "'," + oModel.HParentID.ToString() + | 
|                 //    "," + oModel.HLevel.ToString() + "," + Convert.ToString(oModel.HEndFlag ? 1 : 0) + "," + Convert.ToString(oModel.HStopflag ? 1 : 0) + ",'" + oModel.HRemark + "','" + oModel.HEnglishName + "')", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 //修改上级为非末级代码 | 
|                 //oCn.RunProc("Update " + MvarItemKey + " set HEndflag=0 where HItemID=" + oModel.HParentID, ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 oCn.Commit(); | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 oCn.RollBack(); | 
|                 throw (e); | 
|             } | 
|         } | 
|   | 
|         //修改 | 
|         public override bool ModifyByID(Int64 sItemID) | 
|         { | 
|             try | 
|             { | 
|                 oCn.BeginTran(); | 
|                 //oCn.RunProc("Update " + MvarItemKey + " set " + | 
|                 //    " HNumber='" + oModel.HNumber + "'" + | 
|                 //    ",HName='" + oModel.HName + "'" + | 
|                 //    ",HShortNumber='" + oModel.HShortNumber + "'" + | 
|                 //    ",HHelpCode='" + oModel.HHelpCode + "'" + | 
|                 //    ",HLevel=" + oModel.HLevel.ToString() + | 
|                 //    ",HParentID=" + oModel.HParentID.ToString() + | 
|                 //    ",HEndflag=" + Convert.ToString(oModel.HEndFlag ? 1 : 0) + | 
|                 //    ",HStopflag=" + Convert.ToString(oModel.HStopflag ? 1 : 0) + | 
|                 //    ",HEnglishName='" + oModel.HEnglishName + "'" + | 
|                 //    ",HRemark= '" + oModel.HRemark + "' Where HItemID=" + sItemID, ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 //修改子项目代码 | 
|                 //oCn.RunProc("exec h_p_Gy_UpdateNumber '" + MvarItemKey + "','" + oModel.HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 ////将上级 为非末级 | 
|                 //oCn.RunProc("Update " + MvarItemKey + " set HEndflag=0 where HItemID=" + oModel.HParentID, ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 // | 
|                 oCn.Commit(); | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 oCn.RollBack(); | 
|                 throw (e); | 
|             } | 
|         } | 
|         //根据代码判断信息 | 
|         public override bool HavParentCode(string sCode, Int64 sItemID) | 
|         { | 
|             DataSet DS; | 
|             try | 
|             { | 
|                 DS = oCn.RunProcReturn("Select * from " + MvarItemKey + " Where HStopflag=0 and HNumber='" + sCode + "' and HItemID<>" + sItemID, MvarItemKey, ref Pub_Class.ClsPub.sExeReturnInfo); | 
|                 if (DS.Tables[0].Rows.Count == 0) | 
|                     return false; | 
|                 else | 
|                 { | 
|                     oModel.HItemID = Convert.ToInt64(DS.Tables[0].Rows[0]["HItemID"]);  | 
|                     return true; | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 throw (e); | 
|             } | 
|         } | 
|   | 
|         //更新打印次数 | 
|         public bool Set_PrintQty(string sBarCode) | 
|         { | 
|             try | 
|             { | 
|                 oCn.BeginTran(); | 
|                 //更新 打印次数 | 
|                 oCn.RunProc("update Gy_BarCodeBill set HPrintQty=isnull(HPrintQty,0)+1 where HBarCode='" + sBarCode + "'", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 oCn.Commit(); | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 oCn.RollBack(); | 
|                 throw (e); | 
|             } | 
|         } | 
|   | 
|         //批量更新打印次数 | 
|         public bool Set_EPrintQty(string sBarCode) | 
|         { | 
|             try | 
|             { | 
|                 oCn.BeginTran(); | 
|                 //更新 打印次数 | 
|                 oCn.RunProc("exec h_p_Gy_BarCodePrintQty_Update '" + sBarCode + "'", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 oCn.Commit(); | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 oCn.RollBack(); | 
|                 throw (e); | 
|             } | 
|         } | 
|   | 
|         //打印前判断条码是否已打印过 | 
|         public bool Set_BPrintQty(string sBarCode, ref string sReturn) | 
|         { | 
|             DataSet DS; | 
|             try | 
|             { | 
|                 DS = oCn.RunProcReturn("exec h_p_Gy_BarCodeBPrintQty '" + sBarCode + "'", "h_p_Gy_BarCodeBPrintQty", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 if (DS == null || DS.Tables[0].Rows.Count == 0) | 
|                 { | 
|                     oCn.CnClose(); | 
|                     oCn.CnDispose(); | 
|                     sReturn = "null未知错误"; | 
|                     return true; | 
|                 } | 
|                 else | 
|                 { | 
|                     //已打印过 | 
|                     if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0][0]) == "1") | 
|                     { | 
|                         oCn.CnClose(); | 
|                         oCn.CnDispose(); | 
|                         sReturn = DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0][1]); | 
|                         return true; | 
|                     } | 
|                     else | 
|                     { | 
|                         oCn.CnClose(); | 
|                         oCn.CnDispose(); | 
|                         sReturn = "正常!"; | 
|                         return false; | 
|                     } | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 sReturn = e.Message; | 
|                 throw (e); | 
|             } | 
|         } | 
|   | 
|         public bool DeleteByMul(string[] sSQL, ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 oCn.BeginTran(); | 
|                 //更新 打印次数 | 
|                 for (int i = 0; i < sSQL.Length; i++) | 
|                 { | 
|                     oCn.RunProc(sSQL[i], ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 } | 
|                 sReturn = DBUtility.ClsPub.sExeReturnInfo; | 
|                 oCn.Commit(); | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 oCn.RollBack(); | 
|                 throw (e); | 
|             } | 
|         } | 
|   | 
|   | 
|   | 
|         //--------------------------------------------------------- | 
|         //New | 
|   | 
|         //作废条码 | 
|         public bool Cancelltion(string sHItemID, string sHBarCode, string sHDeleteMan) | 
|         { | 
|             try | 
|             { | 
|                 oCn.BeginTran(); | 
|                 string[] NewBarCode; | 
|                 NewBarCode = sHBarCode.Split(Convert.ToChar("#")); | 
|   | 
|                 //作废条码 | 
|                 oCn.RunProc("update Gy_BarCodeBill set HStopflag=1,HDeleteMan='" + sHDeleteMan + "',HDeleteDate=getdate() where HItemID in (" + sHItemID + ")", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 //写入系统日志 | 
|                 for (int i = 0; i <= NewBarCode.Length - 1; i++) | 
|                 { | 
|                     oCn.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + DBUtility.ClsPub.CurUserName + "','" + DBUtility.ClsPub.ComputerName + "','作废条码:" + NewBarCode[i] + "','WMS系统-条码档案列表模块','" + DBUtility.ClsPub.IPAddress + "','作废'", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 } | 
|                 oCn.Commit(); | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 oCn.RollBack(); | 
|                 throw (e); | 
|             } | 
|         } | 
|   | 
|         //反作废条码 | 
|         public bool UnCancelltion(string sHItemID, string sHBarCode, string sSourceQtyCtl, ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 oCn.BeginTran(); | 
|                 string[] NewBarCode; | 
|                 NewBarCode = sHBarCode.Split(Convert.ToChar("#")); | 
|                 //反作废条码前进行判断 | 
|                 DataSet DS = oCn.RunProcReturn("exec h_p_Gy_BarCodeBill_UnCancelltion '" + sHItemID + "','" + sSourceQtyCtl + "'", "h_p_Gy_BarCodeBill_UnCancelltion", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 if (DS == null || DS.Tables[0].Rows.Count <= 0) | 
|                 { | 
|                     oCn.CnClose(); | 
|                     oCn.CnDispose(); | 
|                     sReturn = "反作废条码前判断发生错误!"; | 
|                     return false; | 
|                 } | 
|                 else | 
|                 { | 
|                     if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0][0]) == "1") | 
|                     { | 
|                         oCn.CnClose(); | 
|                         oCn.CnDispose(); | 
|                         sReturn = DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HRemark"]); | 
|                         return false; | 
|                     } | 
|                     else | 
|                     { | 
|                         //反作废条码 | 
|                         oCn.RunProc("update Gy_BarCodeBill set HStopflag=0,HDeleteMan='',HDeleteDate=null where HItemID in (" + sHItemID + ")", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                         //写入系统日志 | 
|                         for (int i = 0; i <= NewBarCode.Length - 1; i++) | 
|                         { | 
|                             oCn.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + DBUtility.ClsPub.CurUserName + "','" + DBUtility.ClsPub.ComputerName + "','反作废条码:" + NewBarCode[i] + "','WMS系统-条码档案列表模块','" + DBUtility.ClsPub.IPAddress + "','反作废'", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                         } | 
|                         oCn.Commit(); | 
|                         return true; | 
|                     } | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 oCn.RollBack(); | 
|                 throw (e); | 
|             } | 
|         } | 
|   | 
|         //单条删除条码 | 
|         public bool DeleteBill(long sHItemID, string sHBarCode, ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 oCn.BeginTran(); | 
|                 //删除条码前进行判断 | 
|                 DataSet DS = oCn.RunProcReturn("exec h_p_Gy_BarCodeBill_Delete_Before " + sHItemID + ",'" + sHBarCode + "'", "h_p_Gy_BarCodeBill_Delete_Before", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 if (DS == null || DS.Tables[0].Rows.Count <= 0) | 
|                 { | 
|                     oCn.CnClose(); | 
|                     oCn.CnDispose(); | 
|                     sReturn = "删除条码前判断发生错误!"; | 
|                     return false; | 
|                 } | 
|                 else | 
|                 { | 
|                     if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0][0]) == "1") | 
|                     { | 
|                         oCn.CnClose(); | 
|                         oCn.CnDispose(); | 
|                         sReturn = DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HRemark"]); | 
|                         return false; | 
|                     } | 
|                     else | 
|                     { | 
|                         //删除条码 | 
|                         oCn.RunProc("Delete from Gy_BarCodeBill where HItemID = " + sHItemID, ref DBUtility.ClsPub.sExeReturnInfo); | 
|                         //写入系统日志 | 
|                         oCn.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + DBUtility.ClsPub.CurUserName + "','" + DBUtility.ClsPub.ComputerName + "','删除条码:" + sHBarCode + "','WMS系统-条码档案列表模块','" + DBUtility.ClsPub.IPAddress + "','删除'", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                         oCn.Commit(); | 
|                         return true; | 
|                     } | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 oCn.RollBack(); | 
|                 throw (e); | 
|             } | 
|         } | 
|   | 
|         //批量删除条码 | 
|         public bool MulDeleteBill(string sHItemID, string sHBarCode, ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 oCn.BeginTran(); | 
|                 string[] NewBarCode; | 
|                 NewBarCode = sHBarCode.Split(Convert.ToChar("#")); | 
|                 //批量删除条码前进行判断 | 
|                 DataSet DS = oCn.RunProcReturn("exec h_p_Gy_BarCodeBill_MulDelete_Before '" + sHItemID + "','" + sHBarCode + "'", "h_p_Gy_BarCodeBill_MulDelete_Before", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 if (DS == null || DS.Tables[0].Rows.Count <= 0) | 
|                 { | 
|                     oCn.CnClose(); | 
|                     oCn.CnDispose(); | 
|                     sReturn = "批量删除条码前判断发生错误!"; | 
|                     return false; | 
|                 } | 
|                 else | 
|                 { | 
|                     if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0][0]) == "1") | 
|                     { | 
|                         oCn.CnClose(); | 
|                         oCn.CnDispose(); | 
|                         sReturn = DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HRemark"]); | 
|                         return false; | 
|                     } | 
|                     else | 
|                     { | 
|                         //批量删除条码 | 
|                         oCn.RunProc("Delete from Gy_BarCodeBill where HItemID in (" + sHItemID + ")", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                         //写入系统日志 | 
|                         for (int i = 0; i <= NewBarCode.Length - 1; i++) | 
|                         { | 
|                             oCn.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + DBUtility.ClsPub.CurUserName + "','" + DBUtility.ClsPub.ComputerName + "','批量删除条码:" + NewBarCode[i] + "','WMS系统-条码档案列表模块','" + DBUtility.ClsPub.IPAddress + "','批量删除'", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                         } | 
|                         oCn.Commit(); | 
|                         return true; | 
|                     } | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 oCn.RollBack(); | 
|                 throw (e); | 
|             } | 
|         } | 
|   | 
|         //条码生成模块调用    条码打印前,条码打印次数控制(是否超过允许可打印次数) | 
|         public bool Set_CheckPrintQty_SD(Int64 HInterID, long PrintQty, ref string sReturn) | 
|         { | 
|             DataSet DS; | 
|             string sBarCode = ""; | 
|             DS = oCn.RunProcReturn("select stuff((select ','+HBarCode from Gy_BarCodeBill with(nolock) where HPrintQty >=" + PrintQty + " and HBarCodeType = '唯一条码' and HInterID = " + HInterID + " for xml path('')),1,1,'')", "Gy_BarCodeBill"); | 
|             if (DS == null || DS.Tables[0].Rows.Count == 0) | 
|             { | 
|                 sReturn = "正常!"; | 
|                 return false; | 
|             } | 
|             else | 
|             { | 
|                 sBarCode = DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0][0]); | 
|                 if (sBarCode == "") | 
|                 { | 
|                     sReturn = "正常!"; | 
|                     return false; | 
|                 } | 
|                 else | 
|                 { | 
|                     sReturn = "条码编号:" + DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0][0]) + ",已打印" + PrintQty + " 次,不允许再次预览打印!"; | 
|                     return true; | 
|                 } | 
|             } | 
|         } | 
|   | 
|         //条码档案列表模块调用    条码打印前,条码打印次数控制(是否超过允许可打印次数) | 
|         public bool Set_CheckPrintQty(string sBarCodeItemID, long PrintQty, ref string sReturn) | 
|         { | 
|             DataSet DS; | 
|             string sBarCode = ""; | 
|             DS = oCn.RunProcReturn("select stuff((select ','+HBarCode from Gy_BarCodeBill with(nolock) where HPrintQty >=" + PrintQty + " and HBarCodeType = '唯一条码' and HItemID in (" + sBarCodeItemID + ") for xml path('')),1,1,'')", "Gy_BarCodeBill"); | 
|             if (DS == null || DS.Tables[0].Rows.Count == 0) | 
|             { | 
|                 sReturn = "正常!"; | 
|                 return false; | 
|             } | 
|             else | 
|             { | 
|                 sBarCode = DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0][0]); | 
|                 if (sBarCode == "") | 
|                 { | 
|                     sReturn = "正常!"; | 
|                     return false; | 
|                 } | 
|                 else | 
|                 { | 
|                     sReturn = "条码编号:" + DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0][0]) + ",已打印" + PrintQty + " 次,不允许再次预览打印!"; | 
|                     return true; | 
|                 } | 
|             } | 
|         } | 
|   | 
|         //条码生成模块调用    条码打印后,更新条码打印次数 | 
|         public bool Set_UpdatePrintQty_SD(Int64 HInterID) | 
|         { | 
|             try | 
|             { | 
|                 oCn.BeginTran(); | 
|                 //更新 条码打印次数 | 
|                 oCn.RunProc("update Gy_BarCodeBill set HPrintQty=isnull(HPrintQty,0)+1 where HInterID = " + HInterID, ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 oCn.Commit(); | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 oCn.RollBack(); | 
|                 throw (e); | 
|             } | 
|         } | 
|   | 
|         //条码档案列表模块调用    条码打印后,更新条码打印次数 | 
|         public bool Set_UpdatePrintQty(string sBarCodeItemID) | 
|         { | 
|             try | 
|             { | 
|                 oCn.BeginTran(); | 
|                 //更新 条码打印次数 | 
|                 oCn.RunProc("update Gy_BarCodeBill set HPrintQty=isnull(HPrintQty,0)+1 where HItemID in (" + sBarCodeItemID + ")", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 oCn.Commit(); | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 oCn.RollBack(); | 
|                 throw (e); | 
|             } | 
|         } | 
|   | 
|   | 
|   | 
|   | 
|         //构造函数 | 
|         public ClsGy_BarCodeBill_Ctl() | 
|         { | 
|             MvarItemKey = "Gy_BarCodeBill"; | 
|             MvarReportTitle = "条码档案设置"; | 
|             oModel = new Model.ClsGy_BarCodeBill_WMS_Model(); | 
|         }  | 
|     } | 
| } |