Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }