Пример #1
0
        /// <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["updTbl"];
                foreach (DataRow rw in updTbl.Rows)
                {
                    // 変更なしデータは処理対象外とする
                    if (rw.RowState == DataRowState.Unchanged)
                    {
                        continue;
                    }

                    M02_BAIKA_Search row = getRowData(rw);
                    // 対象データ取得
                    var data =
                        context.M02_BAIKA
                        .Where(w => w.得意先コード == row.得意先コード && w.枝番 == row.得意先コード枝番 && w.品番コード == row.品番コード)
                        .FirstOrDefault();

                    if (data == null)
                    {
                        // 新規登録
                        M02_BAIKA bik = new M02_BAIKA();
                        bik.得意先コード = row.得意先コード;
                        bik.枝番     = row.得意先コード枝番;
                        bik.品番コード  = row.品番コード ?? -1;
                        bik.単価     = row.単価;
                        bik.登録者    = loginUserId;
                        bik.登録日時   = DateTime.Now;
                        bik.最終更新者  = loginUserId;
                        bik.最終更新日時 = DateTime.Now;

                        context.M02_BAIKA.ApplyChanges(bik);
                    }
                    else
                    {
                        // データ更新
                        data.単価     = row.単価;
                        data.最終更新者  = loginUserId;
                        data.最終更新日時 = DateTime.Now;
                        data.AcceptChanges();
                    }
                }

                // データ削除
                DataTable delTbl = ds.Tables["delTbl"];
                foreach (DataRow rw in delTbl.Rows)
                {
                    M02_BAIKA_Search row = getRowData(rw);

                    // 対象データ取得
                    var data =
                        context.M02_BAIKA
                        .Where(w => w.得意先コード == row.得意先コード && w.枝番 == row.得意先コード枝番 && w.品番コード == row.品番コード)
                        .FirstOrDefault();

                    if (data == null)
                    {
                        continue;
                    }

                    context.M02_BAIKA.DeleteObject(data);
                    data.AcceptChanges();
                }

                context.SaveChanges();
            }
        }
Пример #2
0
        /// <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["MST19011_GetData"];
                foreach (DataRow rw in updTbl.Rows)
                {
                    string  strJishaHinban = rw["自社品番"].ToString();
                    string  strIro         = string.IsNullOrEmpty(rw["色"].ToString()) ? null : rw["色"].ToString();
                    M09_HIN hinban;

                    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;
                    }

                    int i得意先コード = int.Parse(rw["得意先コード"].ToString());
                    int i枝番     = int.Parse(rw["枝番"].ToString());

                    // 対象データ取得
                    var data =
                        context.M02_BAIKA
                        .Where(w => w.得意先コード == i得意先コード &&
                               w.枝番 == i枝番 &&
                               w.品番コード == hinban.品番コード)
                        .FirstOrDefault();

                    if (data == null)
                    {
                        // 新規登録
                        M02_BAIKA m02baika = new M02_BAIKA();
                        m02baika.得意先コード = i得意先コード;
                        m02baika.枝番     = i枝番;
                        m02baika.品番コード  = hinban.品番コード;
                        m02baika.単価     = decimal.Parse(rw["単価"].ToString());
                        m02baika.登録者    = loginUserId;
                        m02baika.登録日時   = DateTime.Now;
                        m02baika.最終更新者  = loginUserId;
                        m02baika.最終更新日時 = DateTime.Now;

                        context.M02_BAIKA.ApplyChanges(m02baika);
                    }
                    else
                    {
                        // データ更新
                        data.単価     = decimal.Parse(rw["単価"].ToString());
                        data.最終更新者  = loginUserId;
                        data.最終更新日時 = DateTime.Now;
                        data.削除者    = null;
                        data.削除日時   = null;

                        data.AcceptChanges();
                    }
                }
                context.SaveChanges();
            }
        }