/// <summary> /// DataRowをM10_SHIN_Memberクラスにコンバートする /// </summary> /// <param name="row"></param> /// <returns></returns> private M10_SHIN_Member getM10SHIN_ConvertMemberRow(DataRow row) { M10_SHIN_Member mem = new M10_SHIN_Member(); mem.品番コード = int.Parse(row["品番コード"].ToString()); mem.行 = int.Parse(row["行"].ToString()); mem.材料品番 = row["材料品番"].ToString(); mem.数量 = row["数量"].ToString().Trim(); return(mem); }
/// <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); }