using System; using System.Collections.Generic; using System.Linq; using System.Text; using ICSSoft.Frame.Data.Entity; using ICSSoft.Base.Config.AppConfig; using System.Data; using ICSSoft.Base.Config.DBHelper; namespace ICSSoft.Frame.Data.DAL { public class ICSStorageDAL { public static void AddAndEdit(ICSStorage Storage, string Appconstr) { FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { bool isNew = false; var line = db.ICSStorage.SingleOrDefault(a => a.Serial == Storage.Serial); if(line==null){ isNew = true; line = new ICSStorage(); line.Serial = AppConfig.GetGuid(); } var names = db.ICSStorage.Where(a => a.StorageName == Storage.StorageName && a.Serial != line.Serial); var codes = db.ICSStorage.Where(a => a.StorageCode == Storage.StorageCode && a.Serial != line.Serial); //var StorageLotInfoLog = db.ICSStorageLotInfoLog.SingleOrDefault(a => a.Stack_Serial == Storage.Serial); var SStack = db.ICSStack.SingleOrDefault(a => a.Storage_Serial == Storage.Serial); if (names.Count() > 0) { throw new Exception("仓库名称已存在"); } if (codes.Count() > 0) { throw new Exception("仓库编号已存在"); } //if (StorageLotInfoLog != null || SStack != null) //{ // throw new Exception("库房正在使用中无法修改!!"); //} line.StorageCode = Storage.StorageCode; line.StorageName = Storage.StorageName; line.MUSER=Storage.MUSER; line.MUSERName = Storage.MUSERName; line.WorkPoint = AppConfig.WorkPointCode; line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss"); if (isNew) db.ICSStorage.InsertOnSubmit(line); db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } } public static ICSStorage select(String guid, String Appconstr) { FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); ICSStorage entity = new ICSStorage(); try { var line = db.ICSStorage.SingleOrDefault(a => a.Serial == guid); //var StorageLotInfoLog = db.ICSStorageLotInfoLog.Where(a=>a.Storage_Serial==guid); var Stack = db.ICSStack.Where(a =>a.Storage_Serial==guid); //if (StorageLotInfoLog.ToList().Count > 0 || Stack.ToList().Count> 0) //{ // throw new Exception("库房正在使用中无法修改"); //} return (ICSStorage)line; } catch (Exception ex) { throw ex; } } public static ICSStorage selectByID(String guid, String con) { FramDataContext db = new FramDataContext(con); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); ICSStorage entity = new ICSStorage(); try { var line = db.ICSStorage.SingleOrDefault(a => a.Serial == guid); return (ICSStorage)line; } catch (Exception ex) { throw ex; } } public static ICSStorage selectByCode(String storagecode, String Appconstr) { FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { var line = db.ICSStorage.SingleOrDefault(a => a.StorageCode == storagecode); //entity.Serial = line.Serial; //entity.StorageCode = line.StorageCode; //entity.StorageName = line.StorageName; //entity.MUSER = line.MUSER; //entity.MTIME = line.MTIME; //entity.EATTRIBUTE1 = line.EATTRIBUTE1; return (ICSStorage)line; } catch (Exception ex) { throw new Exception(ex.Message); } } public static void delete(List guidList) { FramDataContext db = new FramDataContext(AppConfig.AppConnectString); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { //var line = db.ICSStorageLotInfoLog.Where(a => guidList.Contains(a.Storage_Serial)); var line1 = db.ICSStack.Where(a => guidList.Contains(a.Storage_Serial)); if (line1.Count() > 0) { throw new Exception("库房正在使用中无法删除!!"); } var lines = db.ICSStorage.Where(a => guidList.Contains(a.Serial)); db.ICSStorage.DeleteAllOnSubmit(lines); db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } public static void SelectERP(string ERPName) { string sql = @"UPDATE b SET b.StorageCode = a.cWhCode, b.StorageName = a.cWhName,b.EATTRIBUTE1 = CONVERT(NVARCHAR(50),a.dModifyDate,21) FROM (SELECT cWhCode,cWhName,a.dModifyDate,b.EATTRIBUTE1 FROM {1}.dbo.Warehouse a LEFT JOIN [dbo].[ICSStorage] b ON a.cWhCode = b.StorageCode AND a.dModifyDate = b.EATTRIBUTE1 WHERE dWhEndDate IS NULL AND b.StorageCode IS NULL) a INNER JOIN [ICSStorage] b ON a.cWhCode = b.StorageCode INSERT INTO [dbo].[ICSStorage] SELECT NEWID(),cWhCode,cWhName,'', '',GETDATE(),a.dModifyDate,'{0}' FROM {1}.dbo.Warehouse a LEFT JOIN [dbo].[ICSStorage] b ON a.cWhCode = b.StorageCode WHERE dWhEndDate IS NULL AND b.StorageCode IS NULL"; sql = string.Format(sql,AppConfig.WorkPointCode, ERPName); DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql); //return DBHelper.ExecuteDataset(AppConfig.GetDataBaseConnectStringByKey("[DB.ERP]"), CommandType.Text, sql).Tables[0]; } public static void SaveInfo(DataTable data, string Appconstr) { FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { for (int i = 0; i < data.Rows.Count; i++) { var StorageCode=data.Rows[i]["库房编号"].ToString(); var StorageName=data.Rows[i]["库房名称"].ToString(); ICSStorage code = new ICSStorage(); code.Serial = AppConfig.GetGuid(); code.StorageCode = StorageCode; code.StorageName = StorageName; code.MUSER = AppConfig.UserId; code.MUSERName = AppConfig.UserName; code.WorkPoint = AppConfig.WorkPointCode; code.MTIME = Convert.ToDateTime(AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss").ToString()); db.ICSStorage.InsertOnSubmit(code); } db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } finally { db.Connection.Close(); } } public static void SaveConnect(string Connecting,string StorageSerial1,Dictionary ConnList) { FramDataContext db = new FramDataContext(Connecting); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { List SerialList = new List(); bool isNew = false; //foreach (string Serial in ConnList.Keys) //{ // //var line = db.ICSStorage2Storage.SingleOrDefault(a => a.Serial == Serial); // //if (line == null) // //{ // // isNew = true; // // line = new ICSStorage2Storage(); // // line.Serial = Serial; // //} // line.Storage1Serial = StorageSerial1; // line.Storage2Serial = ConnList[Serial]; // line.MTIME = DateTime.Now; // line.MUSER = AppConfig.UserId; // line.MUSERName = AppConfig.UserName; // SerialList.Add(Serial); // if (isNew) db.ICSStorage2Storage.InsertOnSubmit(line); //} //var lines = db.ICSStorage2Storage.Where(a => a.Storage1Serial == StorageSerial1 && !SerialList.Contains(a.Serial)); //db.ICSStorage2Storage.DeleteAllOnSubmit(lines); db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { throw ex; } } } }