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