/// <summary> /// 出金明細情報の更新をおこなう /// </summary> /// <param name="context"></param> /// <param name="dt"></param> /// <param name="userId"></param> /// <returns></returns> private int setS02_PAYDTL_Update(TRAC3Entities context, DataTable dt, int userId) { // 登録済みデータを物理削除 int i伝票番号 = AppCommon.IntParse(dt.DataSet.Tables[TABLE_HEADER].Rows[0]["伝票番号"].ToString()); var delData = context.T12_PAYDTL.Where(w => w.伝票番号 == i伝票番号).ToList(); if (delData != null) { foreach (T12_PAYDTL dtl in delData) { context.T12_PAYDTL.DeleteObject(dtl); } context.SaveChanges(); } int rowIdx = 1; // 明細追加 foreach (DataRow row in dt.Rows) { if (row.RowState == DataRowState.Deleted) { continue; } T12_PAYDTL paydtl = new T12_PAYDTL(); T12_PAYDTL dtlData = convertDataRowToT12_PAYDTL_Entity(row); if (dtlData.金種コード <= 0) { continue; } paydtl.伝票番号 = dtlData.伝票番号; paydtl.行番号 = rowIdx; paydtl.金種コード = dtlData.金種コード; paydtl.金額 = dtlData.金額; paydtl.期日 = dtlData.期日; paydtl.摘要 = dtlData.摘要; paydtl.登録者 = userId; paydtl.登録日時 = DateTime.Now; paydtl.最終更新者 = userId; paydtl.最終更新日時 = DateTime.Now; context.T12_PAYDTL.ApplyChanges(paydtl); rowIdx++; } context.SaveChanges(); return(1); }
/// <summary> /// DataRow型をS02_PAYDTLに変換する /// </summary> /// <param name="drow"></param> /// <returns></returns> private T12_PAYDTL convertDataRowToT12_PAYDTL_Entity(DataRow drow) { T12_PAYDTL paydtl = new T12_PAYDTL(); 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; } paydtl.伝票番号 = AppCommon.IntParse(wkRow["伝票番号"].ToString()); paydtl.行番号 = AppCommon.IntParse(wkRow["行番号"].ToString()); paydtl.金種コード = AppCommon.IntParse(wkRow["金種コード"].ToString()); paydtl.金額 = AppCommon.IntParse(wkRow["金額"].ToString()); if (wkRow["期日"] != null && string.IsNullOrEmpty(wkRow["期日"].ToString())) { paydtl.期日 = null; } else { paydtl.期日 = DateTime.Parse(wkRow["期日"].ToString()); } paydtl.摘要 = wkRow["摘要"].ToString(); return(paydtl); }