/// <summary> /// M10_SHINのデータ更新 /// </summary> /// <param name="myProductCode">自社品番</param> /// <param name="updList">材料品情報リスト</param> /// <param name="pLoginUserCode">担当者ID</param> /// <returns></returns> public int Update(string myProductCode, string myColorCode, DataSet updDs, int pLoginUserCode) { DataTable updTbl = updDs.Tables["result"]; using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); if (string.IsNullOrEmpty(myColorCode)) { myColorCode = null; } // -- 対象品番情報を削除 -- // ①対象品番の取得 var target = context.M09_HIN.Where(w => w.自社品番 == myProductCode && (myColorCode == null ? w.自社色 == null : w.自社色 == myColorCode)).FirstOrDefault(); // 対象データが取得できなかった場合は処理終了 if (target == null) { return(0); } // ②対象品番のセット品番情報を削除 var del = context.M10_SHIN.Where(w => w.品番コード == target.品番コード).ToList(); if (del == null) { return(0); } foreach (var tar in del) { context.M10_SHIN.DeleteObject(tar); } // -- 対象品番情報を登録 -- int rowCount = 1; foreach (DataRow row in updTbl.Rows) { M10_SHIN_Member mem = getM10SHIN_ConvertMemberRow(row); // 材料品番が未入力は登録なしとする if (string.IsNullOrEmpty(mem.材料品番)) { continue; } int qty = int.Parse(mem.数量); M10_SHIN m10 = new M10_SHIN(); m10.品番コード = target.品番コード; m10.部品行 = rowCount; m10.構成品番コード = mem.品番コード; m10.使用数量 = qty; m10.登録者 = pLoginUserCode; m10.登録日時 = DateTime.Now; m10.最終更新者 = pLoginUserCode; m10.最終更新日時 = DateTime.Now; context.M10_SHIN.ApplyChanges(m10); rowCount++; } context.SaveChanges(); } return(1); }
/// <summary> /// セット品番マスタ登録処理 /// </summary> /// <param name="ds"> /// データセット /// [0:updTbl]登録・更新対象のデータテーブル /// [1:delTbl]削除対象のデータテーブル /// </param> public void Update(DataSet ds, int loginUserId) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); // データ登録・更新 DataTable updTbl = ds.Tables["MST10011_GetData"]; Dictionary <string, List <DataRow> > dicSetProducts = new Dictionary <string, List <DataRow> >(); string strKey = string.Empty; List <DataRow> hinList = new List <DataRow>(); foreach (DataRow rw in updTbl.Rows) { strKey = rw["セット品番"].ToString() + "_" + rw["色"].ToString(); if (dicSetProducts.Keys.Contains(strKey)) { hinList.Add(rw); dicSetProducts[strKey] = hinList; } else { hinList = new List <DataRow>(); hinList.Add(rw); dicSetProducts.Add(strKey, hinList); } } foreach (string key in dicSetProducts.Keys) { List <DataRow> kouseihinList = dicSetProducts[key]; M09_HIN hinban = null; for (int i = 0; i < kouseihinList.Count; i++) { DataRow rw = kouseihinList[i]; string strJishaHinban = rw["セット品番"].ToString(); string strIro = string.IsNullOrEmpty(rw["色"].ToString()) ? null : rw["色"].ToString(); if (i == 0) { if (strIro == null) { hinban = context.M09_HIN.Where(c => c.自社品番 == strJishaHinban && c.自社色 == null).FirstOrDefault(); } else { hinban = context.M09_HIN.Where(c => c.自社品番 == strJishaHinban && c.自社色 == strIro).FirstOrDefault(); } if (hinban == null) { continue; } var delData = context.M10_SHIN.Where(w => w.品番コード == hinban.品番コード).ToList(); if (delData != null) { foreach (M10_SHIN dtl in delData) { context.M10_SHIN.DeleteObject(dtl); } context.SaveChanges(); } } string strKoseiHinban = rw["構成品番"].ToString(); string strKoseiIro = string.IsNullOrEmpty(rw["構成品色"].ToString()) ? null : rw["構成品色"].ToString(); M09_HIN koseihinban = null; if (strKoseiIro == null) { koseihinban = context.M09_HIN.Where(c => c.自社品番 == strKoseiHinban && c.自社色 == null).FirstOrDefault(); } else { koseihinban = context.M09_HIN.Where(c => c.自社品番 == strKoseiHinban && c.自社色 == strKoseiIro).FirstOrDefault(); } if (koseihinban == null) { continue; } M10_SHIN addHin = new M10_SHIN(); addHin.品番コード = hinban.品番コード; addHin.部品行 = i + 1; addHin.構成品番コード = koseihinban.品番コード; addHin.使用数量 = int.Parse(rw["使用数量"].ToString()); addHin.登録者 = loginUserId; addHin.登録日時 = DateTime.Now; addHin.最終更新者 = loginUserId; addHin.最終更新日時 = DateTime.Now; context.M10_SHIN.AddObject(addHin); } } context.SaveChanges(); } }