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 ICSLLDisposeInFoDAL { #region AddandEditList // public static void AddandEditList(List ItemLotList, string Appconstr) // { // FramDataContext db = new FramDataContext(Appconstr); // db.Connection.Open(); // db.Transaction = db.Connection.BeginTransaction(); // try // { // foreach (ICSLLDisposeInFo lineNew in ItemLotList) // { // bool isNew = false; // var line = db.ICSLLDisposeInFo.SingleOrDefault(a => a.LOTNO == lineNew.LOTNO && a.ItemCode == lineNew.ItemCode && a.DocNo == lineNew.DocNo && a.LineNo == lineNew.LineNo); // if (line == null) // { // isNew = true; // line = new ICSLLDisposeInFo(); // line.ID = AppConfig.GetGuid(); // } // line.LOTNO = lineNew.LOTNO; // line.ItemCode = lineNew.ItemCode; // line.ItemName = lineNew.ItemName; // line.BarCodeQty = lineNew.BarCodeQty; // line.DisposeInQty = lineNew.DisposeInQty; // line.SupplierName = lineNew.SupplierName; // line.DocNo = lineNew.DocNo; // line.LineNo = lineNew.LineNo; // line.LineNo = lineNew.LineNo; // line.CompleteInformation = lineNew.CompleteInformation; // line.ReleaseStatus = lineNew.ReleaseStatus; // line.MUSER = lineNew.MUSER; // line.MUSERName = lineNew.MUSERName; // line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss"); // line.WorkPoint = lineNew.WorkPoint; // if (isNew) db.ICSLLDisposeInFo.InsertOnSubmit(line); // db.SubmitChanges(); // } // db.Transaction.Commit(); // UpdatePoLine(ItemLotList, Appconstr); // } // catch (Exception ex) // { // db.Transaction.Rollback(); // throw new Exception(ex.Message); // } // } // public static void UpdatePoLine(List ItemLotList, string dsconn) // { // try // { // foreach (ICSLLDisposeInFo lineNew in ItemLotList) // { // //根据物料条码和RCV行获取U8采购单行和RCV实际到货数量 // string sql = @"SELECT a.BarCodeNo ,--条码 // b.RcvDocNo ,--收货单号 // b.RcvLineNo ,--行号 // b.RcvLineStoreQty ,--实到数量 // b.RcvLineSrcPOSrcDocNo ,--源采购单号 // b.RcvLineSrcPOSrcDocLineNo --源采购单行 // FROM WM_BarCode a inner JOIN dbo.WM_RCVShip b ON a.RCVShipguid = b.guid // and a.SrcType = 'WM_RCVShip' // where 1=1 // AND b.RcvDocNo='{0}' AND b.RcvLineNo='{1}'"; // sql = string.Format(sql, lineNew.DocNo, lineNew.LineNo); // DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; // if (dt != null && dt.Rows.Count > 0) // { // //判断 到货数量 等于(ReleaseStatus=1 and Completelnformation=1)的数量之和 + ReleaseStatus=0 的数量之和 // //回写 U9 PO行上 DescFlexSegments_PrivateDescSeg20=1 // //判断 到货数量 大于(ReleaseStatus=1 and Completelnformation=1)的数量之和 + ReleaseStatus=0 的数量之和 // //回写 U9 PO行上 DescFlexSegments_PrivateDescSeg20=0 // string sql1 = @"select SUM(ISNULL(DisposeInQty,0)) DisposeInQty, DocNo , [LineNo] from ICSLLDisposeInFo // where DocNo = '{0}' AND [LineNo] = '{1}' // AND ((ReleaseStatus=1 and CompleteInformation=1) OR ReleaseStatus=0) // GROUP BY DocNo , [LineNo]"; // sql1 = string.Format(sql1, lineNew.DocNo, lineNew.LineNo); // DataTable dt1 = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql1).Tables[0]; // if (dt1 != null && dt1.Rows.Count > 0) // { // if (Convert.ToDecimal(dt.Rows[0]["RcvLineStoreQty"].ToString()) == Convert.ToDecimal(dt1.Rows[0]["DisposeInQty"].ToString())) // { // string sql2 = @"UPDATE a SET a.DescFlexSegments_PrivateDescSeg20=1 // FROM dbo.PM_POLine a // LEFT JOIN dbo.PM_PurchaseOrder b ON a.PurchaseOrder=b.ID // WHERE b.DocNo='{0}' AND a.DocLineNo='{1}'"; // sql2 = string.Format(sql2, dt.Rows[0]["RcvLineSrcPOSrcDocNo"].ToString(), dt.Rows[0]["RcvLineSrcPOSrcDocLineNo"].ToString()); // DBHelper.ExecuteNonQuery(AppConfig.GetDataBaseConnectStringByKey("[DB.ERP]"), CommandType.Text, sql2); // } // else if (Convert.ToDecimal(dt.Rows[0]["RcvLineStoreQty"].ToString()) > Convert.ToDecimal(dt1.Rows[0]["DisposeInQty"].ToString())) // { // string sql2 = @"UPDATE a SET a.DescFlexSegments_PrivateDescSeg20=0 // FROM dbo.PM_POLine a // LEFT JOIN dbo.PM_PurchaseOrder b ON a.PurchaseOrder=b.ID // WHERE b.DocNo='{0}' AND a.DocLineNo='{1}'"; // sql2 = string.Format(sql2, dt.Rows[0]["RcvLineSrcPOSrcDocNo"].ToString(), dt.Rows[0]["RcvLineSrcPOSrcDocLineNo"].ToString()); // DBHelper.ExecuteNonQuery(AppConfig.GetDataBaseConnectStringByKey("[DB.ERP]"), CommandType.Text, sql2); // } // } // else//查询不到数据默认到货数量大,回写0 // { // string sql2 = @"UPDATE a SET a.DescFlexSegments_PrivateDescSeg20=0 // FROM dbo.PM_POLine a // LEFT JOIN dbo.PM_PurchaseOrder b ON a.PurchaseOrder=b.ID // WHERE b.DocNo='{0}' AND a.DocLineNo='{1}'"; // sql2 = string.Format(sql2, dt.Rows[0]["RcvLineSrcPOSrcDocNo"].ToString(), dt.Rows[0]["RcvLineSrcPOSrcDocLineNo"].ToString()); // DBHelper.ExecuteNonQuery(AppConfig.GetDataBaseConnectStringByKey("[DB.ERP]"), CommandType.Text, sql2); // } // } // } // } // catch (Exception ex) // { // throw ex; // } // } // private static DataTable SQlReturnData(SqlCommand cmd) // { // DataTable dt = new DataTable(); // SqlDataAdapter dr = new System.Data.SqlClient.SqlDataAdapter(); // dr.SelectCommand = cmd; // dr.Fill(dt); // return dt; // } #endregion //public static void EditCompleteInformation(ICSLLDisposeInFo ItemLot, string Appconstr) //{ // FramDataContext db = new FramDataContext(Appconstr); // db.Connection.Open(); // db.Transaction = db.Connection.BeginTransaction(); // try // { // bool isNew = false; // var line = db.ICSLLDisposeInFo.SingleOrDefault(a => a.LOTNO == ItemLot.LOTNO && a.ItemCode == ItemLot.ItemCode && a.DocNo == ItemLot.DocNo && a.LineNo == ItemLot.LineNo); // if (line == null) // { // isNew = true; // line = new ICSLLDisposeInFo(); // line.ID = AppConfig.GetGuid(); // } // line.CompleteInformation = ItemLot.CompleteInformation; // line.MUSER = ItemLot.MUSER; // line.MUSERName = ItemLot.MUSERName; // line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss"); // if (isNew) db.ICSLLDisposeInFo.InsertOnSubmit(line); // db.SubmitChanges(); // db.Transaction.Commit(); // } // catch (Exception ex) // { // db.Transaction.Rollback(); // throw new Exception(ex.Message); // } //} //public static void LLDisposeAgainEdit(List ItemLotList, string Appconstr) //{ // FramDataContext db = new FramDataContext(Appconstr); // db.Connection.Open(); // db.Transaction = db.Connection.BeginTransaction(); // try // { // foreach (ICSLLDisposeInFoAgain lineNew in ItemLotList) // { // bool isNew = false; // var line = db.ICSLLDisposeInFoAgain.SingleOrDefault(a => a.LOTNO == lineNew.LOTNO && a.ItemCode == lineNew.ItemCode); // if (line == null) // { // isNew = true; // line = new ICSLLDisposeInFoAgain(); // line.ID = AppConfig.GetGuid(); // } // line.LOTNO = lineNew.LOTNO; // line.ItemCode = lineNew.ItemCode; // line.ItemName = lineNew.ItemName; // line.BarCodeQty = lineNew.BarCodeQty; // line.DisposeInQty = lineNew.DisposeInQty; // line.SupplierName = lineNew.SupplierName; // line.DocNo = lineNew.DocNo; // line.LineNo = lineNew.LineNo; // line.MUSER = lineNew.MUSER; // line.MUSERName = lineNew.MUSERName; // line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss"); // line.WorkPoint = lineNew.WorkPoint; // line.EATTRIBUTE1 = lineNew.EATTRIBUTE1; // if (isNew) db.ICSLLDisposeInFoAgain.InsertOnSubmit(line); // db.SubmitChanges(); // } // db.Transaction.Commit(); // } // catch (Exception ex) // { // db.Transaction.Rollback(); // throw new Exception(ex.Message); // } //} public static void LLDisposeAgainEditByLOTNO(List ItemLotList, string Appconstr) { FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { foreach (ICSLLDisposeInFoAgain lineNew in ItemLotList) { //判断是否存在自定义档案,不存在则自动生成一条确认数据 //if (!GetUserCodeIsTrue(lineNew.LOTNO, Appconstr)) //{ bool isNew = false; var line = db.ICSLLDisposeInFoAgain.SingleOrDefault(a => a.LOTNO == lineNew.LOTNO && a.ItemCode == lineNew.ItemCode); if (line == null) { isNew = true; line = new ICSLLDisposeInFoAgain(); line.ID = AppConfig.GetGuid(); } line.LOTNO = lineNew.LOTNO; line.ItemCode = lineNew.ItemCode; line.ItemName = lineNew.ItemName; line.BarCodeQty = lineNew.BarCodeQty; line.DisposeInQty = lineNew.DisposeInQty; line.SupplierName = lineNew.SupplierName; line.DocNo = lineNew.DocNo; line.LineNo = lineNew.LineNo; line.MUSER = lineNew.MUSER; line.MUSERName = lineNew.MUSERName; line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss"); line.WorkPoint = lineNew.WorkPoint; line.EATTRIBUTE1 = lineNew.EATTRIBUTE1; if (isNew) db.ICSLLDisposeInFoAgain.InsertOnSubmit(line); db.SubmitChanges(); //} } db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } } private static bool GetUserCodeIsTrue(string LotNo, string Appconstr) { bool isTrue = false; string sql = string.Format(@"SELECT * FROM Sys_EnumValues WHERE EnumKey='080' AND EnumValue=(SELECT MUSERCode FROM WM_RCVShip WHERE guid =(SELECT RCVShipguid FROM WM_BarCode WHERE BarCodeNo='{0}'))", LotNo); DataTable dt = DBHelper.ExecuteDataset(Appconstr, CommandType.Text, sql).Tables[0]; if (dt != null && dt.Rows.Count > 0) { isTrue = true; } return isTrue; } } }