Beispiel #1
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);
        }
Beispiel #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["MST10011_GetData"];


                Dictionary <string, List <DataRow> > dicSetProducts = new Dictionary <string, List <DataRow> >();
                string         strKey  = string.Empty;
                List <DataRow> hinList = new List <DataRow>();
                foreach (DataRow rw in updTbl.Rows)
                {
                    strKey = rw["セット品番"].ToString() + "_" + rw["色"].ToString();

                    if (dicSetProducts.Keys.Contains(strKey))
                    {
                        hinList.Add(rw);
                        dicSetProducts[strKey] = hinList;
                    }
                    else
                    {
                        hinList = new List <DataRow>();
                        hinList.Add(rw);
                        dicSetProducts.Add(strKey, hinList);
                    }
                }

                foreach (string key in dicSetProducts.Keys)
                {
                    List <DataRow> kouseihinList = dicSetProducts[key];
                    M09_HIN        hinban        = null;
                    for (int i = 0; i < kouseihinList.Count; i++)
                    {
                        DataRow rw             = kouseihinList[i];
                        string  strJishaHinban = rw["セット品番"].ToString();
                        string  strIro         = string.IsNullOrEmpty(rw["色"].ToString()) ? null : rw["色"].ToString();

                        if (i == 0)
                        {
                            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;
                            }

                            var delData = context.M10_SHIN.Where(w => w.品番コード == hinban.品番コード).ToList();
                            if (delData != null)
                            {
                                foreach (M10_SHIN dtl in delData)
                                {
                                    context.M10_SHIN.DeleteObject(dtl);
                                }

                                context.SaveChanges();
                            }
                        }

                        string strKoseiHinban = rw["構成品番"].ToString();
                        string strKoseiIro    = string.IsNullOrEmpty(rw["構成品色"].ToString()) ? null : rw["構成品色"].ToString();

                        M09_HIN koseihinban = null;
                        if (strKoseiIro == null)
                        {
                            koseihinban = context.M09_HIN.Where(c => c.自社品番 == strKoseiHinban &&
                                                                c.自社色 == null).FirstOrDefault();
                        }
                        else
                        {
                            koseihinban = context.M09_HIN.Where(c => c.自社品番 == strKoseiHinban &&
                                                                c.自社色 == strKoseiIro).FirstOrDefault();
                        }

                        if (koseihinban == null)
                        {
                            continue;
                        }

                        M10_SHIN addHin = new M10_SHIN();

                        addHin.品番コード   = hinban.品番コード;
                        addHin.部品行     = i + 1;
                        addHin.構成品番コード = koseihinban.品番コード;
                        addHin.使用数量    = int.Parse(rw["使用数量"].ToString());
                        addHin.登録者     = loginUserId;
                        addHin.登録日時    = DateTime.Now;
                        addHin.最終更新者   = loginUserId;
                        addHin.最終更新日時  = DateTime.Now;

                        context.M10_SHIN.AddObject(addHin);
                    }
                }

                context.SaveChanges();
            }
        }