using System; using System.Collections.Generic; using System.Linq; using System.Text; using ICSSoft.Frame.Data.Entity; using ICSSoft.Base.Config.DBHelper; using System.Data; using ICSSoft.Base.Config.AppConfig; namespace ICSSoft.Frame.Data.DAL { public class ICSINVReceiptDetailDAL { public static List SearchItemInfoList(string dsconn) { try { List returntype = new List(); string sql = @"select [ID],[INVCODE],[INVNAME],[INVDESC] from [ICSINVENTORY] where INVTYPE='物料'"; sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0]; foreach (DataRow dr in dt.Rows) { FormICSINVENTORYUIModel itemmodel = new FormICSINVENTORYUIModel(); itemmodel.ID = dr["ID"].ToString(); itemmodel.INVCODE = dr["INVCODE"].ToString(); itemmodel.INVNAME = dr["INVNAME"].ToString(); itemmodel.INVDESC = dr["INVDESC"].ToString(); if (!returntype.Contains(itemmodel)) returntype.Add(itemmodel); } return returntype; } catch (Exception ex) { throw ex; } } #region 新增和修改 public static void Add(List DetailInfoList, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { foreach (FormICSINVReceiptDetailUIModel info in DetailInfoList) { bool isNew = false; var line = db.ICSINVReceiptDetail.SingleOrDefault(a => a.ID == info.ID); if (line == null) { isNew = true; line = new ICSINVReceiptDetail(); line.ID = AppConfig.GetGuid(); line.ReceiptID = info.ReceiptID; line.ReceiptNO = info.ReceiptNO; line.ReceiptLine = info.ReceiptLine; line.RECSTATUS = "新建"; line.IQCStatus = "新建"; line.MOCODE = ""; line.QualifyQTY = Convert.ToDecimal(0); line.ACTQTY = 0; line.RECUSER = ""; line.INVUSER = ""; line.ISINSTORAGE = "N"; } line.ORDERNO = info.ORDERNO; line.ORDERLINE = info.ORDERLINE; line.MEMO = info.MEMO; line.ITEMCODE = info.inv.INVCODE; line.PLANQTY = info.PLANQTY; line.VenderLotNO = info.VenderLotNO; line.RECTIME = DateTime.Now; line.MUSER = AppConfig.UserId; line.MUSERName = AppConfig.UserName; line.MTIME = DateTime.Now; line.WorkPoint = AppConfig.WorkPointCode; if (isNew) { db.ICSINVReceiptDetail.InsertOnSubmit(line); } db.SubmitChanges(); } db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } #endregion #region 查询 public static List SearchInfoByID(string dID, string dsconn) { List returndetail = new List(); string sql = @"select a.[ID],a.[ReceiptLine],a.[ORDERNO],a.[ORDERLINE],a.[RECSTATUS],a.[IQCStatus],a.[MEMO], b.[INVCODE],b.[INVNAME],a.[PLANQTY],a.[QualifyQTY],a.[VenderLotNO],a.[ACTQTY], a.[RECTIME],a.[RECUSER],a.[INVUSER],a.[ISINSTORAGE], c.[MOCODE] as cMOCODE,c.[MODESC] from ICSINVReceiptDetail a left join ICSINVENTORY b on b.INVCODE=a.ITEMCODE left join ICSMO c on c.MOCODE=a.MOCODE where a.ID='{0}' "; sql = string.Format(sql, dID); DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0]; foreach (DataRow dr in dt.Rows) { FormICSINVReceiptDetailUIModel returnInfo = new FormICSINVReceiptDetailUIModel(); returnInfo.ID = dr["ID"].ToString(); returnInfo.ReceiptLine = Convert.ToInt32(dr["ReceiptLine"].ToString()); returnInfo.ORDERNO = dr["ORDERNO"].ToString(); returnInfo.ORDERLINE = Convert.ToInt32(dr["ORDERLINE"].ToString().Equals("") ? "0" : dr["ORDERLINE"].ToString()); returnInfo.RECSTATUS = dr["RECSTATUS"].ToString(); returnInfo.IQCStatus = dr["IQCStatus"].ToString(); returnInfo.MEMO = dr["MEMO"].ToString(); //returnInfo.MOCODE = dr["MOCODE"].ToString(); //returnInfo.ITEMCODE = dr["ITEMCODE"].ToString(); //string motest=dr["cMOCODE"].ToString(); //if (!motest.Equals("")) //{ // returnInfo.mo = new FormICSMOUIModel(); // returnInfo.mo.MOCODE = dr["cMOCODE"].ToString(); // returnInfo.mo.MODESC = dr["MODESC"].ToString(); //} returnInfo.inv = new FormICSINVENTORYUIModel(); returnInfo.inv.INVCODE = dr["INVCODE"].ToString(); returnInfo.inv.INVNAME=dr["INVNAME"].ToString(); returnInfo.PLANQTY = Convert.ToDecimal(dr["PLANQTY"].ToString()); //returnInfo.QualifyQTY = Convert.ToDecimal(dr["QualifyQTY"].ToString().Equals("") ? "0" : dr["QualifyQTY"].ToString()); returnInfo.VenderLotNO = dr["VenderLotNO"].ToString(); //returnInfo.ACTQTY = Convert.ToInt32(dr["ACTQTY"].ToString().Equals("") ? "0" : dr["ACTQTY"].ToString()); //returnInfo.RECTIME = Convert.ToDateTime(dr["RECTIME"].ToString()); //returnInfo.RECUSER = dr["RECUSER"].ToString(); //returnInfo.INVUSER = dr["INVUSER"].ToString(); //returnInfo.ISINSTORAGE = dr["ISINSTORAGE"].ToString(); if (!returndetail.Contains(returnInfo)) { returndetail.Add(returnInfo); } } return returndetail; } #endregion #region 删除 public static void deleteInfo(List detailIDList, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { var lines = db.ICSINVReceiptDetail.Where(a => detailIDList.Contains(a.ID)); db.ICSINVReceiptDetail.DeleteAllOnSubmit(lines); db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } #endregion #region 产品明细代码是否存在 public static bool IsIncluding(string Rid,int RLine, string workpoint,string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { var line = db.ICSINVReceiptDetail.SingleOrDefault(a => a.ReceiptLine == RLine && a.ReceiptID == Rid && a.WorkPoint == workpoint); if (line == null) return true; else return false; } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } #endregion } }