/// <summary> /// 入金明細情報の更新をおこなう /// </summary> /// <param name="context"></param> /// <param name="dt"></param> /// <param name="userId"></param> /// <returns></returns> private int setT11_NYKNDTL_Update(TRAC3Entities context, DataTable dt, int userId) { // 登録済みデータを物理削除 int i伝票番号 = AppCommon.IntParse(dt.DataSet.Tables[TABLE_HEADER].Rows[0]["伝票番号"].ToString()); var delData = context.T11_NYKNDTL.Where(w => w.伝票番号 == i伝票番号).ToList(); if (delData != null) { foreach (T11_NYKNDTL dtl in delData) { context.T11_NYKNDTL.DeleteObject(dtl); } context.SaveChanges(); } int rowIdx = 1; // 明細追加 foreach (DataRow row in dt.Rows) { if (row.RowState == DataRowState.Deleted) { continue; } T11_NYKNDTL nykndtl = new T11_NYKNDTL(); T11_NYKNDTL dtlData = convertDataRowToT11_NYKNDTL_Entity(row); if (dtlData.金種コード <= 0) { continue; } nykndtl.伝票番号 = dtlData.伝票番号; nykndtl.行番号 = rowIdx; nykndtl.金種コード = dtlData.金種コード; nykndtl.金額 = dtlData.金額; nykndtl.期日 = dtlData.期日; nykndtl.摘要 = dtlData.摘要; nykndtl.登録者 = userId; nykndtl.登録日時 = DateTime.Now; nykndtl.最終更新者 = userId; nykndtl.最終更新日時 = DateTime.Now; context.T11_NYKNDTL.ApplyChanges(nykndtl); rowIdx++; } context.SaveChanges(); return(1); }
/// <summary> /// DataRow型をT11_NYKNDTLに変換する /// </summary> /// <param name="drow"></param> /// <returns></returns> private T11_NYKNDTL convertDataRowToT11_NYKNDTL_Entity(DataRow drow) { T11_NYKNDTL nykndtl = new T11_NYKNDTL(); DataRow wkRow = drow.Table.Clone().NewRow(); if (drow.RowState == DataRowState.Deleted) { // 対象が削除行の場合 // 対象データの参照ができるようにする DataTable wkTbl = drow.Table.Copy(); wkTbl.RejectChanges(); var orgCode = drow["行番号", DataRowVersion.Original]; foreach (DataRow dr in wkTbl.Select(string.Format("行番号 = {0}", orgCode))) { wkRow.ItemArray = dr.ItemArray; break; // 複数取る事はないと思うが念の為 } } else { wkRow.ItemArray = drow.ItemArray; } nykndtl.伝票番号 = AppCommon.IntParse(wkRow["伝票番号"].ToString()); nykndtl.行番号 = AppCommon.IntParse(wkRow["行番号"].ToString()); nykndtl.金種コード = AppCommon.IntParse(wkRow["金種コード"].ToString()); nykndtl.金額 = AppCommon.IntParse(wkRow["金額"].ToString()); if (wkRow["期日"] != null && string.IsNullOrEmpty(wkRow["期日"].ToString())) { nykndtl.期日 = null; } else { nykndtl.期日 = DateTime.Parse(wkRow["期日"].ToString()); } nykndtl.摘要 = wkRow["摘要"].ToString(); return(nykndtl); }